/dev/random

Aus Foxwiki
(Weitergeleitet von /dev/urandom)

/dev/random - Zeichenorientierte virtuelle Gerätedatei die Zufallszahlen hoher Qualität liefert

Beschreibung

Da für netzwerkorientierte Systeme wie Unix Kryptographie-Dienste und damit Zufallszahlen eine bedeutende Rolle spielen, kommt dieser Datei und dem dahinterstehenden Treiber eine wichtige Bedeutung zu.

Zufallsgenerator sammelt Umgebungsrauschen von Gerätetreibern und anderen Quellen in einem Entropie-„Pool“
  • Der Generator speichert auch eine Abschätzung über die Anzahl der Bits im Entropie-Pool
  • Aus diesem „Pool“ werden die Zufallszahlen generiert
Beim Lesen gibt /dev/random nur solange Zufallszahlen zurück, bis die abgeschätzte Entropiemenge erschöpft ist
  • dann blockieren Lesezugriffe auf /dev/random, bis zusätzliches Umgebungsrauschen erhalten wurde.[1][2] /dev/random sollte ausreichend sein für Anwendungszwecke, die auf eine sehr hohe Qualität der Zufälligkeit angewiesen sind, wie etwa Verschlüsselung (beispielsweise One-Time-Pads oder Schlüsselerzeugung)
  • Aus Geschwindigkeitsgründen wird in der Praxis oft nur der „Seed“ eines Pseudo-Zufallszahlengenerators von /dev/random gelesen (z. B. in OpenSSL, PGP und GnuPG).
Der aktuelle Füllstand des Entropie-Pools lässt sich unter Linux aus der Datei /proc/sys/kernel/random/entropy_avail ermitteln.
  • Eine Ausgabe der Datei liefert die verfügbare Entropie in Bit, wobei das Maximum von 4096 Bit einem vollständig gefüllten „Pool“ entspricht.

/dev/urandom

Aus /dev/urandom (unlimited random) können wie aus /dev/random Zufallszahlen gelesen werden.

/dev/urandom blockiert nicht, wenn eine definierte Entropieschwelle unterschritten wird

In diesem Fall kann nicht ganz ausgeschlossen werden, dass es einem Angreifer gelingt, die erzeugten Pseudozufallszahlen im Nachhinein zu berechnen.[3]

Standardisierung

/dev/random (wie auch /dev/urandom) ist weder im Filesystem Hierarchy Standard 2.3 noch in der Single UNIX Specification 3.0 spezifiziert.
  • Der Linux-Kernel stellte 1994 als erstes Betriebssystem ein /dev/random-Gerät bereit, woraufhin andere unixoide Betriebssysteme nachzogen,[4][5] so zum Beispiel FreeBSD 2.2 ab Juni 2000[6] oder Solaris 9 ab 2002.[7]

Implementierungen

In FreeBSD findet ein auf dem Yarrow-Algorithmus basierender Generator Verwendung[8]. AIX verwendet seit AIX 5.2 ebenfalls eine Yarrow-Implementation.[9]

In Linux verhält sich /dev/random seit 2020 wie /dev/urandom, da dessen Zufallszahlen mittlerweile als praktikabel selbst für kryptographische Zwecke angesehen werden.[10]

Verbesserung der Entropie

Über Software lässt sich die Entropie verbessern sowie der Entropie-Pool vergrößern, damit mehr Zufallszahlen zur Verfügung stehen
Mit der GNU-Software rng-tools lassen sich unter Linux und ähnlichen Betriebssystemen physikalische Zufallszahlengeneratoren einbinden.[11]

Anwendung

Siehe auch

  1. /dev/zero

Weblinks

  1. https://en.wikipedia.org/wiki//dev/random