在使用正确的搜索词进行了广泛的谷歌搜索之后,我在DigitalOcean上看到了这篇不错的文章。我只是在这里引用相关部分。
Linux上有两种常规的随机设备:/ dev / random和/ dev / urandom。最好的随机性来自/ dev /
random,因为它是一个阻塞设备,它将等待直到有足够的熵来继续提供输出。假设您的熵足够了,您应该从/ dev /
urandom中看到相同的随机性。但是,由于它是一种非阻塞设备,即使熵池用完了,它也将继续产生“随机”数据。这可能会导致质量较低的随机数据,因为更可能重复以前的数据。当生产服务器上的可用熵不足时,尤其是当该服务器执行加密功能时,可能会发生很多坏事。
因此,这有潜在的安全风险。
填充熵池的解决方案解决方案:已避险Linux已经从不同的硬件来源获得了质量很好的随机数据,但是由于无头机器通常没有键盘或鼠标,因此产生的熵要少得多。磁盘和网络I /
O代表了这些机器的大多数熵生成源,并且它们产生的熵非常稀疏。由于极少数无头机器(例如服务器或云服务器/虚拟机)具有任何可用的专用硬件RNG解决方案,因此存在一些用户域解决方案,可使用比硬盘(如视频卡)“噪音大”的设备的硬件中断来产生额外的熵,声卡等。不幸的是,这再次成为服务器的问题,因为它们通常不包含任何一个
如何安装Haveged基于HAVEGE原理,并且先前基于其关联的库,Haveged允许根据处理器上代码执行时间的变化来生成随机性。由于即使在相同的环境下,在相同的硬件上,一段代码几乎都不可能花费相同的准确时间来执行,因此运行单个或多个程序的时机应该适合于植入随机源。重复执行循环之后,使用处理器时间戳计数器(TSC)的差异,已实现的实现会播发系统的随机源(通常是/
dev / random)
请按照本文中的步骤。https://www.digitalocean.com/community/tutorials/how-to-setup-
additional-entropy-for-cloud-servers-using-
haveged
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)