Obecnie testuję gpg --genkey
na maszynie wirtualnej z systemem Linux. Niestety, to oprogramowanie wydaje się polegać na /dev/random
gromadzeniu entropii i uprzejmie prosi użytkownika o ręczne wpisywanie ekranów po ekranach kryptograficznie losowych danych wejściowych, więc może ostatecznie skończyć się generowaniem klucza, i nie znalazłem parametru wiersza polecenia aby użyć innego pliku jako źródła entropii (facet w tym filmie napotyka ten sam problem ...).
Jednak użytkownik powinien mieć swobodę wyboru użycia, /dev/urandom
ponieważ nie ma w tym nic złego . Jest to głównie wspomnienie starszych algorytmów PRNG, które były słabsze z kryptograficznego punktu widzenia. Na przykład, chociaż strona NetBSD przyznaje, że to rozróżnienie może być nadal przydatne na bardzo wczesnym etapie uruchamiania, opisuje takie rozróżnienie jako „folklor” i „wyimaginowaną teorię, która broni tylko przed modelami zagrożeń fantasy” . Nikt nie zgadza się ani z ilością entropii wymaganą przez to polecenie, ani z faktem, że entropia jest faktycznie konsumowana, jak podano na stronie GPG („PROSZĘ, nie używaj tego polecenia, chyba że wiesz, co robisz, może to usunąć cenną entropię z systemu!” ).
Czytałem o ludziach instalujących rngd
demona i skonfigurowałem go tak, aby używał /dev/urandom
źródła entropii do zasilania /dev/random
, ale uważam, że taka praktyka jest bardzo brudna.
Próbowałem obejść ten problem w sposób FreeBSD, usuwając /dev/random
i łącząc go z /dev/urandom
:
rm /dev/random
ln -s /dev/urandom /dev/random
Widzę to jako ustawienie „Ufam /dev/urandom
jako źródło entropii” .
Obawiałem się, że napotkam jakiś błąd, ale wydaje się, że zapewnia oczekiwany wynik, ponieważ polecenie natychmiast powraca.
Moje pytanie brzmi: czy istnieje jakiś znany, praktyczny i niewłaściwy efekt uboczny linkowania /dev/random
do /dev/urandom
systemów Linux, jak to domyślnie wykonywane w systemach FreeBSD? Czy można przewidzieć ustawienie tego na stałe (na przykład w skrypcie na końcu procesu rozruchu) w przypadku powtarzających się problemów z powodu /dev/random
zablokowania niektórych usług?
W systemie Linux
/dev/random
daje losowe bity wysokiej jakości. Pochodzą one ze źródeł, które są nie do przewidzenia i nie powtarzalne, na zewnątrz maszyny. W przeciwieństwie do tego/dev/urandom
używa tych samych danych losowych co/dev/random
(jeśli są dostępne), jeśli nie ma, używa generatora liczb pseudolosowych, który jest deterministyczny . Dla większości celów jest to dość nieprzewidywalne, ale nie dla bardzo wymagających aplikacji, takich jak kryptografia, a tym bardziej dla tworzenia długowiecznych kluczy, takich jak GPG.źródło
/dev/urandom
jest w porządku dla kryptografii ./dev/urandom
, nie masz też powodu, by ufać GPG.urandom
vs. vs.random
, czy potwierdzasz, że zastąpienie/dev/random
pliku linkiem nie powinno mieć żadnego innego efektu ubocznego i być realną alternatywą dlarngd
sztuczki, o której wspomniałem?