我如何知道我的机器是否有 RNG 硬件支持?

all*_*uin 13 random-number-generator

我看到了一个关于熵池问题的博客,并了解到有一种称为 RNG 的特殊硬件。我已经阅读了这个内核 RNG页面,但我仍然想知道是否有办法确定我的服务器是否支持硬件 RNG。

mr.*_*tic 9

“真正的”硬件 RNG 可能有两种类型:基于 CPU 的一种,以及基于芯片组或 PCI 的一种。(还有一些 USB 硬件 RNG,但我怀疑您已经注意到其中之一;-)

以下是 Linux 特定的。

对于基于 CPU 的,您可以检查/proc/cpuinfo线索,假设您的内核足够新以检测它们。对于英特尔 CPU,标志是rdrand,更多信息在这里:https : //unix.stackexchange.com/questions/43539/what-do-the-flags-in-proc-cpuinfo-mean

对于芯片组,如果您已CONFIG_HW_RANDOM在内核每个供应商的支持CONFIG_HW_RANDOM_INTEL ..._AMD等中启用,那么您的引导消息应指出是否找到了任何内容(例如“检测到 Intel 82802 RNG”)。如果它们作为模块存在,您可以尝试 ( modprobe intel-rng) 查看它是否加载,“No such device”表示未检测到硬件。并非所有驱动程序都始终打印“检测到 RNG”或“未检测到”,因此您最终可能会阅读源代码(/drivers/char/hw_random/内核源代码的目录)。

对于其他人,您可以查看lspci -v已识别的内容。