Rya*_*her 9 random virtualization cryptography
/ dev/random和/ dev/urandom使用环境噪声来产生随机性.
使用虚拟化服务器,在一个硬件配置上可以有多个操作系统实例.这些操作系统都将从相同的环境噪声中获取随机性.
这是否意味着随机数生成器强度降低,因为所有操作系统实例都基于相同输入的计算?或者,是否将环境噪声划分为不共享?
如果后者是真的,我可以看到这降低了/ dev/urandom的有效性,因为它重用了它的内部池并减少了环境输入,降低了熵.
/ dev/random应该没问题,因为它会阻塞,直到获得足够的噪声......除非OS实例都共享输入.
那么,问题是:虚拟化对加密强随机数生成器的影响是什么,特别是那些使用环境噪声的生成器?
我无法快速找到任何参考资料,但在我看来,熵是从设备的内核数据结构中导出的,而不是实际设备本身。由于无论虚拟化如何,这些都是独立的,所以我怀疑答案并不多。
[编辑]查看内核源代码(实际上是补丁历史记录)后,看起来 Linux 至少从键盘按下、鼠标活动、中断计时(但不是所有中断)和块设备请求完成时间中收集熵。在虚拟化系统上,我怀疑鼠标/键盘事件会非常低,因此不会对收集的熵做出贡献。据推测,这会被额外的网络 I/O 中断活动所抵消,但目前尚不清楚。在这方面,我认为它与非VM服务器没有太大区别。