Apache 如何解释多个 SSLRandomSeed 源

Apache 如何解释多个 SSLRandomSeed 源

在我的 Apache 配置中,有以下几行:

SSLRandomSeed connect builtin
SSLRandomSeed connect file:/dev/random
SSLRandomSeed connect file:/dev/urandom 1024

/dev/randomApache 究竟是如何解释这一点的?它是否首先尝试内置,然后如果失败则转到?如果它使用/dev/random/dev/random然后耗尽熵,它是否会自动切换到/dev/urandom?是否有某个 Apache 文档可以解释所有这些?

答案1

Apache 文档中没有说明,但查看ssl_engine_rand.c(此处为 apache 2.2.21)您可以看到该函数ssl_rand_seed遍历所有定义的 SSLRandomSeed 源,最终调用 OpenSSLRAND_seed函数,除非出现故障。

参考 OpenSSL 手册页RAND_seed,每次成功调用它都会为 PRNG 的状态添加熵。

最后,它会询问 OpenSSL 种子是否足够RAND_status

因此,如果您定义多个源,它将使用所有有效的源,并结合它们的熵。

相关内容