Ihr System erfasst einige "echte" Zufallszahlen, indem es verschiedene Ereignisse im Auge behält: Netzwerkaktivität, Hardware-Zufallszahlengenerator (falls verfügbar; VIA-Prozessoren verfügen normalerweise über einen "echten" Zufallszahlengenerator) usw. Füttert diese an den Kernel-Entropie-Pool, der von / dev / random verwendet wird. Anwendungen, die eine extreme Sicherheit benötigen, neigen dazu, / dev / random als Entropiequelle oder mit anderen Worten als Zufallsquelle zu verwenden.
Wenn / dev / random keine verfügbare Entropie mehr hat, kann keine weitere Zufälligkeit mehr ausgegeben werden, und die Anwendung, die auf die Zufälligkeit wartet, bleibt stehen, bis weitere zufällige Informationen verfügbar sind. Das Beispiel, das ich während meiner Karriere gesehen habe, ist, dass der Cyrus IMAP-Dämon / dev / random für die Zufälligkeit verwenden wollte und seine POP-Sitzungen die zufälligen Zeichenfolgen in APOP-Verbindungen aus / dev / random generieren wollten. In einer geschäftigen Umgebung gab es mehr Anmeldeversuche als Datenverkehr, um die Datei / dev / random zu füttern -> alles kam zum Stillstand. In diesem Fall installierte ich rng-tools und aktivierte das rngd, das es hatte - das halbzufällige Zahlen von / dev / urandom nach / dev / random schaufelte, falls / dev / random keine "echte" Entropie mehr hatte.
Entropie ist ein Fachbegriff für "Zufälligkeit". Computer erzeugen Entropie nicht wirklich, sondern erfassen sie durch Betrachten von Dingen wie den Schwankungen der Festplattenrotationsgeschwindigkeiten (ein physikalisches Phänomen, das aufgrund von Reibung usw. sehr schwer vorherzusagen ist) eine mathmatical Formel mit echten Entropie Saatgut , dass es durch Messung Mausklicks, Festplatte Spinvariationen usw. Grob gesagt gefunden
entropy_avail
ist das Maß des Bits zur Zeit verfügbar zu lesenden von/dev/random
Es dauert eine Weile, bis der Computer die Entropie aus seiner Umgebung gelesen hat, es sei denn, er verfügt über eine coole Hardware wie eine verrauschte Diode oder ähnliches.
Wenn Sie über 4096 Entropiebits verfügen und eine Katze haben
/dev/random
, können Sie davon ausgehen, dass 512 Byte Entropie (4096 Bits) vor dem Blockieren der Datei gelesen werden können, während auf weitere Entropie gewartet wird.Wenn Sie zum Beispiel „
cat /dev/random
“ Ihre Entropie auf Null reduzieren. Zuerst werden Sie 512 Bytes zufälligen Müll bekommen, aber es wird aufhören und nach und nach werden Sie mehr zufällige Daten durchlaufen sehen.Dies ist jedoch nicht die Art und Weise, wie Menschen arbeiten sollten
/dev/random
. Normalerweise lesen Entwickler eine kleine Datenmenge, wie 128 Bit, und verwenden diese, um eine Art PRNG-Algorithmus zu erzeugen. Es ist höflich, nicht mehr Entropie/dev/random
als nötig zu lesen , da der Aufbau so lange dauert und als wertvoll angesehen wird. Wenn Sie es also entleeren, indem Siecat
die Datei wie oben beschrieben nachlässig tippen, werden andere Anwendungen/dev/random
blockiert , aus denen gelesen werden muss . Auf einem System bei der Arbeit stellten wir fest, dass viele Kryptofunktionen ausfielen. Wir haben festgestellt, dass ein Cron-Job ein Python-Skript aufruft, das ständig initialisiert wirdramdom.random()
bei jedem Lauf, der alle paar Sekunden lief. Um dieses Problem zu beheben, haben wir das Python-Skript so umgeschrieben, dass es als ein nur einmal initialisierter Daemon ausgeführt wurde und der Cron-Job Daten über XMLRPC liest, damit er/dev/random
beim Start nicht weiter liest .quelle
Weitere Informationen finden Sie unter: http://linux.die.net/man/4/random
quelle