Aus der urandom
Manpage:
Der Zufallszahlengenerator sammelt Umgebungsgeräusche von Gerätetreibern und anderen Quellen in einem Entropiepool. Der Generator hält auch eine Schätzung der Anzahl von Rauschbits im Entropiepool. Aus diesem Entropiepool werden Zufallszahlen erstellt.
Beim Lesen gibt das Gerät / dev / random nur zufällige Bytes innerhalb der geschätzten Anzahl von Rauschbits im Entropiepool zurück. / dev / random sollte für Anwendungen geeignet sein, die eine Zufälligkeit von sehr hoher Qualität erfordern, wie z. B. einmaliges Pad oder Schlüsselgenerierung. Wenn der Entropiepool leer ist, werden Lesevorgänge aus / dev / random blockiert, bis zusätzliches Umgebungsgeräusch erfasst wird.
Ein Lesevorgang vom / dev / urandom-Gerät blockiert nicht das Warten auf weitere Entropie . Wenn im Entropiepool nicht genügend Entropie vorhanden ist, sind die zurückgegebenen Werte theoretisch anfällig für einen kryptografischen Angriff auf die vom Treiber verwendeten Algorithmen. Kenntnisse darüber, wie dies zu tun ist, sind in der aktuellen nicht klassifizierten Literatur nicht verfügbar, aber es ist theoretisch möglich, dass ein solcher Angriff existiert. Wenn dies in Ihrer Anwendung ein Problem darstellt, verwenden Sie stattdessen / dev / random.
Beide verwenden ein PRNG, obwohl die Verwendung von Umweltdaten und Entropiepools es astronomisch viel schwieriger macht, das PRNG zu knacken, und unmöglich ist, ohne genau dieselben Umweltdaten zu erfassen.
Als Faustregel gilt, dass es ohne spezielle teure Hardware, die Daten beispielsweise von Quantenereignissen sammelt, keinen echten Zufallszahlengenerator gibt (dh ein RNG, das wirklich unvorhersehbare Zahlen erzeugt). Für kryptografische Zwecke reicht jedoch / dev / random oder / dev / urandom aus (die verwendete Methode ist für einen CPRNG-Generator für kryptografische Pseudozufallszahlen).
Der Entropiepool und das blockierende Lesen von / dev / random werden als Schutz verwendet, um die Unmöglichkeit der Vorhersage der Zufallszahl sicherzustellen. Wenn beispielsweise ein Angreifer den Entropiepool eines Systems erschöpft hat, ist es möglich, obwohl dies mit der heutigen Technologie höchst unwahrscheinlich ist, dass er die Ausgabe von / dev / urandom vorhersagen kann, die seit langem nicht mehr neu ausgesät wurde (obwohl dies der Fall ist) Dazu müsste der Angreifer auch die Fähigkeit des Systems ausschöpfen, mehr Entropien zu sammeln, was auch astronomisch unwahrscheinlich ist.
/dev/random
Bits? Gibt es eine Begrenzung für die Anzahl dieser Bits, die sie speichern?