В моей конфигурации Apache у меня есть следующие строки:
SSLRandomSeed connect builtin
SSLRandomSeed connect file:/dev/random
SSLRandomSeed connect file:/dev/urandom 1024
Как именно это интерпретирует Apache? Сначала он пытается встроить, а затем переходит на /dev/random
если это не удается? Если он использует /dev/random
, и /dev/random
тогда заканчивается энтропия, он автоматически переключается на /dev/urandom
? Есть ли где-нибудь документ Apache, объясняющий все это?
Это не указано в документации Apache, но глядя на ssl_engine_rand.c
(здесь apache 2.2.21) вы можете видеть, что функция ssl_rand_seed
перебирает все определенные источники SSLRandomSeed, в конечном итоге вызывая OpenSSL RAND_seed
функции, если не произойдет сбоя.
Ссылаясь на справочную страницу OpenSSL для RAND_seed
, каждый успешный вызов к нему будет добавлять энтропию к состоянию ГПСЧ.
В конце он спрашивает OpenSSL, достаточно ли раздачи. RAND_status
.
Итак, если вы определите много источников, он будет использовать все, что работает, и комбинировать их энтропию.