Chyba że jestem całkowicie zdezorientowany i tak nie jest.
Chcę wiedzieć, czy / dev / urandom zyska zwiększoną entropię, jeśli wezmę sprzętowy RNG i podłączę jego entropię do / dev / random.
Tak więc, inaczej mówiąc, jeśli miałbym zwiększyć entropię / dev / random o X bitów / sekundę (to znaczy, / dev / random po wstrzyknięciu pozwala próbkować X bitów / sekundę) czy to zwiększenie przeniesienia entropii przejdzie na urandom?
Odpowiedzi:
Nie jest tak naprawdę dokładne stwierdzenie, że
/dev/urandom
próbki/dev/random
. Zamiast tego dwie pule są wspierane przez to samo źródło entropii. Kiedy liczba entropii puli osiągnie zero, resetują one ponownie ze wspólnej puli wejściowej. Więc jeśli podasz entropię wejścia jądra w jakiś sposób, może on użyć tego dla jednego/dev/random
lub/dev/urandom
, w zależności od tego, który zostanie odczytany.Jest jednak
/dev/urandom
również ograniczony w częstości, w jakiej może poprosić o ponowne posadzenie. Domyślnie można go ponownie uruchamiać tylko co 60 sekund.Nic z tego tak naprawdę nie ma znaczenia w praktyce, ponieważ dopóki pula jest początkowo zaszczepiona co najmniej 128 bitami entropii, przewidywanie dowolnego wyniku wymagałoby nie tylko zobaczenia poprzednich wyników, ale także złamania zastosowanych algorytmów, w tym co najmniej rezystancji preimage SHA-1 ( który pozostaje nieprzerwany ).
źródło
To zależy od wdrożenia. Ale zwykle
/dev/random
i/dev/urandom
wyciągaj entropię z tej samej puli, więc tak będzie.źródło
W Linuksie wszelkie dane zapisane w / dev / random lub / dev / urandom są kopiowane zarówno do puli blokującej (źródło losowości dla / dev / random), jak i puli nieblokującej (źródło losowości dla / dev / urandom).
Wystarczy spojrzeć na funkcję random_write .
Ale dane zapisane do / dev / random nie są liczone przez wewnętrzny estymator entropii (w końcu niektórzy lokalni przeciwnicy mogą próbować przekierować / dev / zero lub inne wysoce nielosowe źródło do / dev / random), więc jeśli masz problemy z blokowaniem / dev / random, pisanie do / dev / random nie pomaga.
W Linuksie pisz do / dev / random (lub / dev / urandom, bez różnicy), ale zawsze czytaj z / dev / urandom (gdy jest on zaszczepiony - właściwie najlepszym sposobem jest użycie nowego wywołania systemowego getrandom ).
Nie wiem, jak to działa w innych Unikach.
źródło