Odpowiedź X86 polega na upewnieniu się, że maszyna wirtualna nie przechwytuje RdRand ani RdSeed. Ufasz maszynie wirtualnej w wielu sprawach, to jedna z nich.
Wystarczająco niedawne RNGd na post Snady Bridge CPU będzie (lub może być polecone) używać RdRand lub RdSeed, a niezakończony RdRand lub RdSeed zostaje entropijny w maszynie wirtualnej. / dev / random następnie działa z rzeczywistym (nie wirtualnym) źródłem entropii.
To nie jest przypadek. Jest tam właśnie w dokumentacji architektury Intel.
W przypadku sprzętowego źródła entropii opartego na urządzeniu (IE używa sterownika jądra, aby go udostępnić), potrzebujesz maszyny wirtualnej do prawidłowej wirtualizacji źródła fizycznego. Nie mam pojęcia, czy to robią, a jeśli tak, to dla jakich urządzeń.
Jeśli twój RNGd nie ma opcji drng poniżej, zaktualizuj go. Jeśli twój sprzęt nie ma szybkiego sprzętu RNG, jesteś skazany i powinieneś rozważyć użycie innego sprzętu ze względów bezpieczeństwa.
# 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>.