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

时间:2018-03-20 08:37:07

标签: c++ encryption openssl

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

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

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

1 个答案:

答案 0 :(得分:3)

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

可能在没有熵源的情况下安全地保护客户端通信 - 但是我会非常紧张的是,错过了需要该位熵的协议的关键部分。

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

您的选择是:

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

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

如果您对您的通信协议是否需要额外的熵有特定的疑问,https // crypto.stackexchange.com会有很多人愿意讨论如何执行此操作的详细信息。