Linux 内核长期以来一直尊重“nordrand”内核参数,以禁用内核使用英特尔 RDRAND 和 RDSEED 指令(如果不信任它们)——出于安全考虑,它们可能会被供应商破坏或遇到硬件/固件问题RdRand 用法。但 Linux 内核正准备放弃该内核参数,鼓励用户使用更通用的“random.trust_cpu”参数。
WireGuard 的 Jason Donenfeld 继续致力于清理 Linux 内核的随机/RNG 代码。他对这个兔子洞的最新工作是删除“nordrand”标志,以鼓励用户使用更通用的“random.trust_cpu”参数来指示他们是否信任他们的 CPU 的硬件 RNG 支持。
目前在 random.git 中排队:
“nordrand”标志是在 RDRAND 的早期添加的,当时人们担心仅仅使用它的值可能会损害 RNG。然而,这些天来,RDRAND 值不再直接使用,而是总是通过 RNG 的哈希函数,使得“nordrand”不再有用。
相反,正确的开关是“random.trust_cpu”,它不仅直接处理相关的信任问题,而且对多种 CPU 类型通用,而不仅仅是 x86。
但是,x86 RDRAND 确实有偶尔出现问题的历史。之前,当内核注意到一些奇怪的事情时,它会在 dmesg 中发出警告并建议启用“nordrand”。我们可以通过改进测试来改进这一点,然后在我们检测到它时采取自动禁用 RDRAND 的步骤’
除了 RDRAND 之外,还将基本健全性测试扩展到 RDSEED,如果其中一个失败,则禁用两者。
使用 RDRAND 改进的测试失败检测非常有用,因为偶尔用户,特别是 AMD 方面的用户报告了各种 RDRAND 问题。 用于指示您不信任 CPU 的 RNG
的通用random.trust_cpu=0支持早在 2018 年就已添加到内核中。
十年前,RdRand “Bull Mountain” 凭借 Ivy Bridge 在英特尔方面首次亮相。
鉴于 random.git 中补丁的时间安排,它可能会作为 Linux 5.20 的随机更改的一部分发送。
未经允许不得转载:表盘吧 » Linux 放弃“nordrand”选项——用户应该改用“random.trust_cpu”