您可能知道,在虚拟机上生成熵与在“普通”电脑上生成熵并不那么容易。 在虚拟机上生成gpg-key可能需要一段时间,即使使用正确的工具。
还有更多的encryption函数不像gpg那样熵知道。
那么可以说,密码在虚拟机上的安全性较低吗?
首先,让我说我根本不是安全专家。
当gpg密钥创build使用/dev/random作为随机数字发生器时,它在虚拟机上和在真实机器上一样安全。
/dev/random是一个阻塞设备,并将停止提供任何超出可用数量的随机性。 你可以检查你的可用随机性
cat /proc/sys/kernel/random/entropy_avail (应该在2000左右)
在虚拟机器上,可用的随机性实际上比在真实机器上低,这是由于缺乏对硬件的访问。
您可以通过应用熵密钥和/或切换到非虚拟机器来增加熵。
在虚拟机上有一篇关于熵的文章 。 不幸的是,这篇文章的两个 部分现在只能在谷歌caching中使用。
熵对任何ssl / tlsencryption都有进一步的影响。 所以,使用/dev/urandom或任何非真正的随机源确实会影响应用程序的安全性。
就真正的随机性而言, /dev/urandom可靠程度如何;
我不能给你一个体面的答案,对不起。
有关这个主题的更多信息,你可以去http://security.stackexchange.com和/或阅读例如。 这篇文章
是的,在大多数情况下,密码在虚拟机上的安全性不如“真实”的服务器。
后者至less可以从一些实际的硬件收集熵。 实际上,一块HW的运行在大多数情况下都是受到一些物理现象的影响,这些现象总是会受到很小的变化,而且随处可见。 由于服务器通常运行很长时间而没有重置,因此所得的熵池将最终具有足够的质量。
虚拟机遭受三个问题。
最好的解决办法是让虚拟机简单地放弃,并意识到它所看到的硬件是一个不好的熵源。 然后,安排一个本地networking服务来分发高质量的熵(参见熵代理 )。 “熵服务器”可以从通用硬件(在这种情况下它必须运行足够的时间,并且它必须具有相当好的操作系统)或者从特定的encryption硬件(TPM芯片,威盛挂锁芯片等)中提取随机性。
使用这种服务的虚拟机甚至可能比刚引导的“真实”服务器更安全(密码方式)。