我需要为我正在编写的应用程序提供合理的高质量随机数据。 Linux 为此提供了/dev/random 文件,这是理想的选择;但是,由于我的服务器是单服务虚拟机,因此它的熵源非常有限,这意味着/dev/random 很快就会耗尽。
我注意到,如果我从/dev/random 读取数据,在设备阻塞之前我只会获得 16 个左右的随机字节,同时等待更多的熵:
[duke@poopz ~]# hexdump /dev/random
0000000 f4d3 8e1e 447a e0e3 d937 a595 1df9 d6c5
<process blocks...>
如果我终止此过程,离开一个小时并重复该命令,同样只会生成 16 个字节左右的随机数据。
但是 - 如果我让命令运行相同的时间,则会收集更多、更多的随机数据。我由此假设,在给定的时间段内,系统会产生大量的熵,但 Linux 仅在您实际从/dev/random 读取时才利用它,如果不是,则丢弃它。如果是这样的话,我的问题是:
是否可以将 Linux 配置为缓冲/dev/random,以便从中读取产生更大的高质量随机数据突发?
对我来说,将/dev/random 缓冲作为程序的一部分并不困难,但我觉得在系统级别这样做会更优雅。我还想知道让 Linux 在内存中缓冲其随机数据是否会产生安全隐患。
最佳答案
听起来你需要一个 entropy deamon从其他来源为熵池提供数据。
关于linux - 让linux缓冲/dev/random,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5633877/