openssl 是否需要熵用于生成证书和密钥以外的其他目的?

Does openssl need entropy for other purposes than generating the certificate and key?

本文关键字:密钥 其他 证书 是否 用于 openssl      更新时间:2023-10-16

环境:程序是用 C/C++ 编写的,适用于 ubuntu 16.04 - 不需要跨平台解决方案。

我正在编写一个http网络守护进程,并且chroot中没有/dev/urandom,或者chroot中的任何其他熵系统。

我知道为了生成密钥/证书,openssl 肯定需要熵。但是一旦它们被生成,并且您只使用密钥/证书来加密与服务器的客户端通信 - 服务器守护程序是否仍然需要熵源?

是的。

它需要熵来生成随机数,以及一些非对称签名方案。

有可能在没有熵源的情况下安全地保护客户端通信 - 但我会非常紧张,因为人们错过了协议中需要那一点熵的关键部分。

此外,如果你想要完全的前向保密,你将需要熵来生成临时 [EC]DH 密钥。

您的选择是:

  • 咨询专业密码学家,设计一个不需要熵(超出初始密钥)的协议。 确保他们可以构造/指向协议安全的证据。
  • 在你的肚子里/dev/urandom
  • 正如James K Polk在评论中建议的那样:在用户空间中实现一个熵收集守护进程。 但是,您可能需要咨询专家以确定您是否有足够的熵。

旁白:当您说"加密客户端通信"时,我认为您实际上正在使用某种经过身份验证的加密方案(例如AES + HMAC或AES-GCM)。 如果没有,你可能会遇到比缺乏熵更大的问题。

如果您对通信协议是否需要额外的熵有具体问题,https//crypto.stackexchange.com 充满了愿意讨论如何做到这一点的细节的人。