我已经尽我所能跟踪了mod_ssl和OpenSSL FIPS 代码,并且我相信当在 mod_ssl 中启用 FIPS 模式时,文件中SSLRandomSeed
给出的配置参数mod_ssl.conf
根本不会做任何有用的事情。
跟踪代码ssl_init_Module()
似乎表明ssl_rand_seed()
在设置 FIPS 模式之前调用了该函数。 ssl_rand_seed()
将从给定的 SSLRandomSeed 定义的源执行播种,但是一旦您切换到 FIPS 模式,DRBG 将从头开始重新创建,而不保留任何信息。
事实上,根据 OpenSSL 基本代码 e_os.h 中定义的 DEVRANDOM 宏,OpenSSL 的 FIPS 模式似乎不遗余力地从 /dev/urandom、/dev/random 和 /dev/srandom(按此顺序)获取源为标准 Linux 目标编译。
有没有人有这种组合的经验?
他们能否评论如何提供运行时选定的熵源,例如已处理的文件?每次我想更改随机源时,是否必须重新编译 OpenSSL 并提供新的 DEVRANDOM 定义?