Haveged
haveged 项目 旨在提供一个易于使用的、不可预测的 随机数生成器,它基于 HAVEGE 算法的改编。创建 Haveged 是为了解决 Linux 随机设备中可能在某些工作负载下发生的低熵情况,尤其是在无头服务器上。
警告: 生成熵的质量无法保证,有时会受到质疑(参见 LCE:不要用随机数玩骰子 和 在虚拟机上使用 haveged 作为熵源是否合适?)。请自行承担风险使用它,或将其与基于硬件的随机数生成器和 rng-tools 一起使用(参见 #替代方案 章节)
安装
列出可用熵
如果您不确定是否需要 haveged,请运行
# cat /proc/sys/kernel/random/entropy_avail
此命令显示您的服务器收集了多少熵。如果它相当低(<1000),您可能应该安装 haveged。否则,加密应用程序将阻塞,直到有足够的熵可用,这可能会导致 wlan 速度缓慢,如果您的服务器是 软件接入点。
您应该再次使用此命令来验证安装 haveged 后熵池增加了多少。
替代方案
除非您有不信任系统上任何硬件随机数生成器的特定理由,否则您应该首先尝试将它们与 rng-tools 一起使用,如果结果证明不够(或者如果您没有可用的硬件随机数生成器),则使用 Haveged。
虚拟机
正如在 在虚拟机上使用 haveged 作为熵源是否合适? 中讨论的那样,haveged 是否在虚拟环境中提供高质量的熵是有争议的。Haveged 依赖于 rdtsc 指令,该指令可能在虚拟机中虚拟化,从而导致较低数量的熵。在某些虚拟机监控程序上,可以禁用 rdtsc 的虚拟化,理论上这将允许 haveged 提供更高质量的熵。
要在 VMware ESXi 中禁用 rdtsc 指令的虚拟化,请将设置 monitor_control.virtual_rdtsc = "FALSE"
添加到虚拟机的 .vmx 配置文件中。VMware 建议在执行需要虚拟机中精确的实时源的测量时使用此设置。[4][死链 2024-07-30 ⓘ]