Haveged

出自 ArchWiki

此文章或章节已过时。

原因:自从 kernel v5.6 之后,使用 Haveged 服务已过时,参见 haveged 的 README[1][2]。此页面需要重写以专注于库和用户空间的使用。(在 Talk:Haveged 中讨论)

haveged 项目 旨在提供一个易于使用的、不可预测的 随机数生成器,它基于 HAVEGE 算法的改编。创建 Haveged 是为了解决 Linux 随机设备中可能在某些工作负载下发生的低熵情况,尤其是在无头服务器上。

警告: 生成熵的质量无法保证,有时会受到质疑(参见 LCE:不要用随机数玩骰子在虚拟机上使用 haveged 作为熵源是否合适?)。请自行承担风险使用它,或将其与基于硬件的随机数生成器和 rng-tools 一起使用(参见 #替代方案 章节)

安装

安装 haveged 软件包。

启动启用 haveged.service

列出可用熵

此文章或章节已过时。

原因:随机池现在总是 256。参见 随机数生成#内核内置 RNG(在 Talk:Haveged 中讨论)

如果您不确定是否需要 haveged,请运行

# cat /proc/sys/kernel/random/entropy_avail

此命令显示您的服务器收集了多少熵。如果它相当低(<1000),您可能应该安装 haveged。否则,加密应用程序将阻塞,直到有足够的熵可用,这可能会导致 wlan 速度缓慢,如果您的服务器是 软件接入点

您应该再次使用此命令来验证安装 haveged 后熵池增加了多少。

替代方案

除非您有不信任系统上任何硬件随机数生成器的特定理由,否则您应该首先尝试将它们与 rng-tools 一起使用,如果结果证明不够(或者如果您没有可用的硬件随机数生成器),则使用 Haveged。

虚拟机

正如在 在虚拟机上使用 haveged 作为熵源是否合适? 中讨论的那样,haveged 是否在虚拟环境中提供高质量的熵是有争议的。Haveged 依赖于 rdtsc 指令,该指令可能在虚拟机中虚拟化,从而导致较低数量的熵。在某些虚拟机监控程序上,可以禁用 rdtsc 的虚拟化,理论上这将允许 haveged 提供更高质量的熵。

此文章或章节正在考虑移除。

原因:此设置不再推荐用于 ESXi 3.5,详细说明其“伪性能计数器”替代品超出了文章主题。[3](在 Talk:Haveged 中讨论)

要在 VMware ESXi 中禁用 rdtsc 指令的虚拟化,请将设置 monitor_control.virtual_rdtsc = "FALSE" 添加到虚拟机的 .vmx 配置文件中。VMware 建议在执行需要虚拟机中精确的实时源的测量时使用此设置。[4][死链 2024-07-30 ⓘ]

参见