Entropia na maszynach wirtualnych

12

Jak zapewne wiesz, generowanie entropii na maszynie wirtualnej nie jest tak łatwe, jak na „normalnym” komputerze. Generowanie klucza gpg na maszynie wirtualnej może chwilę potrwać, nawet przy użyciu odpowiednich narzędzi.

Istnieje wiele innych funkcji kryptograficznych, które nie są tak świadome entropii, jak gpg.

Czy można więc powiedzieć, że szyfrowanie jest mniej bezpieczne na maszynie wirtualnej?

dbanck
źródło
1
Liczby losowe z „prawdziwej” maszyny nie są na początku losowe (chyba że masz sprzętowy generator liczb losowych, z których większość nie). Wszystkie są na początku pseudolosowe, a entropia jest generowana w ten sam sposób. Jeśli jest wolna na maszynie wirtualnej, spowalnia ją platforma wirtualizacji (zgaduję, że nie używasz hiperwizora typu 1).
Chris S

Odpowiedzi:

6

Przede wszystkim powiem, że wcale nie jestem ekspertem od bezpieczeństwa.

Ponieważ tworzenie klucza gpg jest używane /dev/randomjako generator liczb losowych, jest tak samo bezpieczne na maszynie wirtualnej, jak na prawdziwej maszynie.
/dev/randomjest urządzeniem blokującym i przestanie dostarczać losowość przekraczającą dostępną kwotę. Możesz sprawdzić swoją dostępną losowość do
cat /proc/sys/kernel/random/entropy_avail(powinno wynosić około 2000 )

W maszynie wirtualnej dostępna losowość jest rzeczywiście niższa niż na prawdziwej maszynie, z powodu braku dostępu do sprzętu.
Możesz zwiększyć entropię, np. Stosując klucze entropii i / lub przełączając się na maszynę niezwirtualizowaną.

Dostępny jest miły artykuł na temat entropii na maszynach wirtualnych. Niestety obie części artykułu są teraz dostępne tylko w pamięci podręcznej Google.

Entropia ma dalszy wpływ na dowolne szyfrowanie ssl / tls. Tak więc użycie /dev/urandomlub dowolne, nie tak naprawdę losowe źródło ma rzeczywiście wpływ na bezpieczeństwo twoich aplikacji.

Pod względem wiarygodności w /dev/urandomporównaniu z prawdziwą przypadkowością;
przepraszam, nie jestem w stanie udzielić ci porządnej odpowiedzi.

Więcej informacji na ten temat można znaleźć na stronie http://security.stackexchange.com i / lub przeczytać np. ten post

nce
źródło
1
/dev/urandomkorzysta z kryptograficznie bezpiecznego PRNG (obsadzonego tą samą pulą co /dev/random), więc nie powinno być problemu, o ile w tej puli była wystarczająca początkowa entropia. Rozsiewanie go z puli entropii maszyny nadrzędnej może mieć sens.
Paŭlo Ebermann
3

Tak, w większości przypadków kryptografia jest mniej bezpieczna na maszynie wirtualnej niż na „prawdziwym” serwerze.

Ten ostatni może przynajmniej zebrać entropię z jakiegoś faktycznego sprzętu. W rzeczywistości działanie części sprzętu jest - w większości przypadków - związane z jakimś zjawiskiem fizycznym, które zawsze podlega niewielkim zmianom, losowym według wszystkich relacji. Ponieważ serwery zwykle działają bardzo długo bez resetowania, wynikowa pula entropii będzie w końcu mieć wystarczającą jakość.

Maszyny wirtualne mają trzy problemy.

  1. Sprzęt, który widzą, nie jest prawdziwy, dlatego nie ma na nie wpływu żadne zjawisko fizyczne. Będą mogli zbierać entropię w znacznie wolniejszy sposób.
  2. Maszyny wirtualne są resetowane znacznie częściej niż prawdziwe serwery i mogą nawet nie mieć czasu na zebranie wystarczającej ilości entropii (dlatego dobrze jest zapisać bieżący stan entropii podczas zamykania i używać jej do zasilania puli entropii podczas ponownego uruchamiania).
  3. Podczas gdy prawdziwy serwer może mieć szansę na określenie, kiedy ma do czynienia ze złą pulą entropii, maszyna wirtualna będzie łatwiej działać pod wrażeniem, że pula entropii jest dobra (ponieważ została pobrana z HW, ale nie wiedząc, że HW jest nie rzeczywiste), ale tak naprawdę jest złe.

Najlepszym rozwiązaniem jest, aby maszyna wirtualna po prostu się poddała i zdała sobie sprawę, że widziany sprzęt jest złym źródłem entropii. Następnie zorganizuj usługę sieci lokalnej w celu dystrybucji wysokiej jakości entropii (patrz Broker Entropy ). „Serwer entropii” może wyodrębniać losowość z ogólnego oprogramowania sprzętowego (w takim przypadku musi działać przez wystarczający czas i musi mieć przyzwoity system operacyjny) lub z określonego oprogramowania kryptograficznego (układ TPM, układ kłódki VIA itp.).

Maszyna wirtualna korzystająca z takiej usługi może być nawet bardziej bezpieczna (pod względem kryptograficznym) niż „prawdziwy” serwer, który właśnie się uruchomił.

SquareRootOfTwentyThree
źródło