Najwyraźniej / dev / random opiera się na przerwaniach sprzętowych lub podobnych nieprzewidywalnych aspektach fizycznego sprzętu. Ponieważ maszyny wirtualne nie mają fizycznego sprzętu, działanie cat /dev/random
na maszynie wirtualnej nic nie daje. Używam Ubuntu Server 11.04 jako hosta i gościa z libvirt / KVM.
Muszę skonfigurować Kerberos w maszynie wirtualnej, ale krb5_newrealm
po prostu zawiesza się na zawsze „Ładowanie losowych danych”, ponieważ system nie wytwarza żadnych.
Czy ktoś wie, jak to obejść? Czy możliwe jest przekazanie hosta / dev / random (który jest bardzo rozmowny) do vm, aby vm mógł użyć jego losowych danych?
Czytałem, że istnieje kilka alternatyw programowych, ale nie są one dobre dla kryptologii, ponieważ nie są wystarczająco losowe.
EDYCJA: Wygląda na to, że cat / dev / random na vm wytwarza dane wyjściowe, po prostu bardzo, bardzo powoli. Skonfigurowałem swoje królestwo, czekając około dwóch godzin na „Ładowanie losowych danych”. W końcu wystarczyło, aby kontynuować. Nadal jestem zainteresowany sposobem na przyspieszenie tego.
cat /proc/sys/kernel/random/entropy_avail
Wszystko, co zwiększa, które działa.python -c 'while True: import time; print str(time.sleep(1))[0:0] + open("/proc/sys/kernel/random/entropy_avail", "rb").read(),'
. Tak, to trudne do odczytania, ale nie widzę sposobu, aby wprowadzić nowe wiersze w komentarzach ...Używam haveged na wszystkich moich serwerach bezgłowych, które wykonują operacje kryptograficzne (np. Uzgadnianie TLS, Kerberos itp.). Powinien znajdować się w repozytorium pakietów większości wersji Ubuntu: http://packages.ubuntu.com/search?ke words=haveged&searchon=names&suite=all§ion=all
haveged używa algorytmu HAVAGE do wydobywania entropii ze stanu wewnętrznego współczesnych procesorów. Oto dokładne wyjaśnienie: http://www.irisa.fr/caps/projects/hipsor/
Możesz sprawdzić losowość wygenerowanej entropii za pomocą pakietu ent. W moich systemach wygenerowana entropia z haveged przeszła wszystkie testy losowości przez ent
źródło
Tak, możesz go wysiać z:
http://manpages.ubuntu.com/manpages/jaunty/man4/random.4.html
Możesz po prostu umieścić to w / dev / urandom i powinno ono zapełnić pulę entropii. Potrafiłem to potwierdzić przez:
Premia, jeśli polecenie ssh przechodzi przez router, więc generuje entropię * :)
źródło
To zadziałało dla mnie
Uruchomienie krb5_newrealm w maszynie wirtualnej może zająć dużo czasu (po wyświetleniu komunikatu „Ładowanie losowych danych”). Możesz użyć następującego hacka, aby trochę przyspieszyć.
opublikowane na http://fossies.org/linux/john/doc/Kerberos-Auditing-HOWTO.md
źródło
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.
źródło
Miałem również problemy z zawieszeniem się krb5_newrealm. To działało dla mnie dobrze, w oparciu o powyższą odpowiedź:
Możesz go zabić, gdy skończysz z potrzebą losowych danych. / dev / sda prawdopodobnie ma więcej danych niż potrzebujesz.
Uwaga: Nie jestem pewien, jak losowe są losowe dane generowane w ten sposób.
źródło