X86的答案是确保您的VM不会捕获RdRand或RdSeed。您对VM信任很多,这就是其中之一。
后Snady Bridge CPU上的RNGd足够新,将(或被告知)使用RdRand或RdSeed,并且未捕获的RdRand或RdSeed会熵进入VM。然后,/ dev / random可以与真实的(而非虚拟的)熵源一起使用。
这不是偶然的。英特尔架构文档中就在那里。
对于基于设备的硬件熵源(IE使用内核驱动程序来共享它),您需要VM来正确虚拟化物理源。我不知道他们是否这样做,如果这样做,则针对哪些设备。
如果您的RNGd在下面没有drng选项,请对其进行更新。如果您的硬件没有快速的硬件RNG,那么您注定要失败,并且出于安全目的,应考虑使用其他硬件。
# rngd --help
Usage: rngd [OPTION...]
Check and feed random data from hardware device to kernel entropy pool.
-b, --background Become a daemon (default)
**-d, --no-drng=1|0 Do not use drng as a source of random number input**
(default: 0)
-f, --foreground Do not fork and become a daemon
-n, --no-tpm=1|0 Do not use tpm as a source of random number input
(default: 0)
-o, --random-device=file Kernel device used for random number output
(default: /dev/random)
-p, --pid-file=file File used for recording daemon PID, and multiple
exclusion (default: /var/run/rngd.pid)
-q, --quiet Suppress error messages
-r, --rng-device=file Kernel device used for random number input
(default: /dev/hwrng)
-s, --random-step=nnn Number of bytes written to random-device at a time
(default: 64)
-v, --verbose Report available entropy sources
-W, --fill-watermark=n Do not stop feeding entropy to random-device until
at least n bits of entropy are available in the
pool (default: 2048), 0 <= n <= 4096
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
Report bugs to Jeff Garzik <jgarzik@pobox.com>.