GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So ermitteln Sie, welche Prozesse wie viel Entropie aus /dev/urandom verbrauchen

Die kurze Antwort ist 0, weil keine Entropie verbraucht wird.

Es gibt ein weit verbreitetes Missverständnis, dass Entropie verbraucht wird – dass jedes Mal, wenn Sie ein zufälliges Bit lesen, dies etwas Entropie aus der zufälligen Quelle entfernt. Das ist falsch. Sie „verbrauchen“ keine Entropie. Ja, die Linux-Dokumentation versteht es falsch.

Während des Lebenszyklus eines Linux-Systems gibt es zwei Phasen:

  1. Am Anfang ist nicht genug Entropie vorhanden. /dev/random wird blockieren, bis es glaubt, genug Entropie angehäuft zu haben; /dev/urandom liefert gerne Low-Entropie-Daten.
  2. Nach einiger Zeit ist genug Entropie im Pool des Zufallsgenerators vorhanden. /dev/random weist eine falsche Rate von „Entropie-Lauch“ zu und blockiert hin und wieder; /dev/urandom stellt gerne Zufallsdaten in Krypto-Qualität zur Verfügung.

FreeBSD macht es richtig:auf FreeBSD, /dev/random (oder /dev/urandom , was dasselbe ist) blockiert, wenn es nicht über genügend Entropie verfügt, und sobald dies der Fall ist, spuckt es weiterhin zufällige Daten aus. Unter Linux weder /dev/random noch /dev/urandom ist das Nützliche.

Verwenden Sie in der Praxis /dev/urandom , und stellen Sie bei der Bereitstellung Ihres Systems sicher, dass der Entropiepool gespeist wird (aus Festplatten-, Netzwerk- und Mausaktivität, aus einer Hardwarequelle, aus einer externen Maschine, …).

Während Sie versuchen könnten zu lesen, wie viele Bytes von /dev/urandom gelesen werden , das ist völlig sinnlos. Lesen von /dev/urandom erschöpft den Entropiepool nicht. Jeder Verbraucher verbraucht 0 Bit Entropie pro Zeiteinheit, die Sie nennen möchten.


Linux
  1. Wie portabel sind /dev/stdin, /dev/stdout und /dev/stderr?

  2. Wann sollte /dev/random vs. /dev/urandom verwendet werden?

  3. Wie füllt man eine Datei mit einem Stream aus /dev/urandom mit einer bestimmten Anzahl von Zeilen?

  4. So ordnen Sie /dev/sdX- und /dev/mapper/mpathY-Geräte vom /dev/dm-Z-Gerät zu

  5. Was sind /dev/zero- und /dev/null-Dateien in Linux

Wie kann /dev/random oder /dev/urandom mit base64 codiert werden?

Wie tauscht man /dev/sda mit /dev/sdb aus?

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Wie finde ich heraus, aus welchem ​​Ordner ein Prozess läuft?

DD von /dev/zero nach /dev/null ... was eigentlich passiert

Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0