Jak mogę sprawdzić dostępną entropię?


14

W systemach linuxowych można sprawdzić dostępną entropię (przydatne, aby wiedzieć, czy używasz /dev/randomdo jakichkolwiek celów PRNG)

cat /proc/sys/kernel/random/entropy_avail

Jednak nie ma odpowiednika /procna komputerze Mac (AFAIK). Jak mogę sprawdzić dostępną entropię systemu na komputerze Mac? Używam OS X 10.7.3 (Lion)


Aby zaktualizować niektóre z moich komentarzy pod odpowiedzią Kyle'a - Jednym z powodów, dla których komputery Mac nie wyświetlają tych informacji, jest to, że nie są one potrzebne (w większości przypadków). Systemy Linux będą blokować połączenia, /dev/randomjeśli w puli nie ma wystarczającej ilości entropii. Na komputerach Mac okresowo dodaje się do puli entropii za pomocą SecurityServerdemona.

Jednak zauważa również, że jeśli z jakiegoś powodu demon zawiedzie, jakość wyjściowa spadnie bez żadnych oznak awarii :

Jakość jego produkcji zależy jednak od regularnego dodawania odpowiedniej entropii. Jeśli z SecurityServerjakiegoś powodu demon systemowy ulegnie awarii, jakość wydruku pogorszy się z upływem czasu bez wyraźnego wskazania samego urządzenia losowego.

Nawet jeśli ilość entropii nie jest łatwo dostępna, nie oznacza to, że jej nie ma i mogą istnieć przypadki, w których jej wiedza może być pomocna.


Czy naprawdę musisz to sprawdzić, czy po prostu upewnić się, że jest wystarczająco dużo rzeczy do użycia? Zobacz developer.apple.com/library/mac/#documentation/Darwin/Reference/… Cytat: „Programiści paranoiści mogą w pewnym stopniu przeciwdziałać temu ryzyku, zbierając wybraną przez siebie entropię (np. Od naciśnięcia klawisza lub taktowania myszy) i uruchamiając ją randombezpośrednio przed uzyskaniem ważne liczby losowe ”.
Chris W. Rea,

Muszę tylko upewnić się, że jest wystarczająco dużo do użycia.
rm -rf

Odpowiedzi:


6

To nie jest rozwiązanie, ale wyjaśnienie, w jaki sposób entropia jest gromadzona i używana w Linuksie.

Linux ma dwie różne pule entropii:

/dev/randoma /dev/urandom.

Ta pierwsza jest prawdziwą losową pulą, zasilaną przez źródła entropii systemu.
Ten ostatni jest bardziej PRNG, taki jak te znalezione w BSD i OS X.

Jednak nawet urandom wymaga ziarna „prawdziwej” losowej entropii, aby uzyskać wysokiej jakości dane pseudolosowe. W najnowszych jądrach całkowity brak entropii w / dev / random nadal nie blokuje urandomu, ale urandom ponownie użyje ostatniego ważnego ziarna, dopóki nie będzie dostępna więcej entropii. Ponieważ urandom jest nieblokujący, większość usług wymagających stałego strumienia entropii używa go zamiast polegać na / dev / random.

Wciąż jednak istnieją pewne usługi, takie jak różne pakiety SSL, które nie są w stanie poradzić sobie z pseudolosową entropią, ale wymagają naprawdę nieprzewidywalnego źródła entropii. W takim przypadku nie można użyć urandom (ani żadnego innego PRNG), a / dev / random wchodzi w grę.


2

Mac OS X po prostu używa Yarrow . Nawet FreeBSD poszedł dalej i przeszedł do ulepszonej wersji o nazwie „Fortuna”.

Siła krwawnika jest ograniczona rozmiarem klucza. Na przykład Yarrow-160 ma efektywny rozmiar klucza 160 bitów. Jeśli zabezpieczenia wymagają 256 bitów, Yarrow-160 nie jest w stanie wykonać zadania.

Podsumowując, jest to kolejne przypomnienie Priorytety Apple nie obejmują bezpieczeństwa / niezawodności ani niczego podobnego.


1

Mac OS X, podobnie jak FreeBSD, nie polega na zewnętrznych źródłach entropii. Zamiast tego wykorzystuje generator liczb pseudolosowych oparty na algorytmie Yarrow . Ponieważ używa algorytmu, a nie puli entropii, nie trzeba się upewnić, że entropia „wystarczy” - zawsze będziesz mógł czytać z / dev / random bez blokowania .

Tak więc, aby odpowiedzieć na twoje pytanie, chyba że jesteś „paranoikiem” i musisz oprzeć swoją entropię na źródłach zewnętrznych (naciśnięcia klawiszy / ruchy myszy / itp.), W takim przypadku musisz to zrobić sam, ilość dostępnej entropii dla / dev / losowe użycie jest zawsze nieskończone.


4
To nie jest do końca poprawne. Użycie algorytmu nie czyni go nieskończoną entropią. Oznacza to, że w Linuksie blokuje się, gdy pula entropii jest niska, podczas gdy w systemie Mac: „Dodatkowa entropia jest regularnie dostarczana do generatora przez demona SecurityServer z losowych pomiarów jittera jądra”. Zasadniczo dba o to, a także zapisuje trochę entropii na dysku do użycia natychmiast po uruchomieniu. Mówi także, że podczas gdy Krwawnik jest elastyczny, jakość zależy od regularnego dodawania entropii - czegoś, co nie będzie konieczne, jeśli byłaby naprawdę nieskończoną entropią
rm -rf

1
Mówi dalej: „Jeśli z jakiegoś powodu demon systemu SecurityServer zawiedzie, jakość wydruków z czasem spadnie bez wyraźnego wskazania samego urządzenia losowego”. Przyznaję, że OSX ułatwił nie martwienie się o rzeczywiste wartość entropii, ale to nie znaczy, że nie ma ... Btw, w moich cytatach powyżej
odsyłałem

@RM To prawda, zastanawiałem się bardziej nad tym, czy wywołanie / dev / random będzie blokowane, niż jakość entropii
Kyle Cronin

> chyba że jesteś „paranoikiem” - Mac OS X po prostu nie ma żadnej rozsądnej ilości losowości, którą można by nawet uznać za nieco bezpieczną
poige
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.