环境:程序是用c / c ++编写的,用于ubuntu 16.04 - 无需跨平台解决方案。
我正在编写一个http网络守护进程,我在chroot中没有/ dev / urandom,或者chroot中没有任何其他熵系统。
我知道,为了生成密钥/证书,openssl肯定需要熵。但是一旦生成它们,并且您只使用密钥/证书来加密与服务器的客户端通信 - 服务器守护程序是否仍需要熵源?
答案 0 :(得分:3)
是
它需要熵来生成随机数,以及一些非对称签名方案。
可能在没有熵源的情况下安全地保护客户端通信 - 但是我会非常紧张的是,错过了需要该位熵的协议的关键部分。
此外,如果您想要完美的前向保密,您将需要熵来生成临时[EC] DH密钥。
您的选择是:
/dev/urandom
。除此之外:当您说“加密客户端通信”时,我认为您实际上正在使用某种经过身份验证的加密方案(例如AES + HMAC或AES-GCM)。如果没有,你可能比缺乏熵有更大的问题。
如果您对您的通信协议是否需要额外的熵有特定的疑问,https // crypto.stackexchange.com会有很多人愿意讨论如何执行此操作的详细信息。