man 4 random
hat eine sehr vage Beschreibung der Linux-Kernel-Entropiequellen:
Der Zufallszahlengenerator sammelt Umgebungsgeräusche von Gerätetreibern und anderen Quellen in einem Entropiepool.
Das Papier Entropy transfers im Linux Random Number Generator ist auch nicht viel spezifischer. Es listet auf:
add_disk_randomness()
,add_input_randomness()
, undadd_interrupt_randomness()
.
Diese Funktionen stammen von random.c
, der folgenden Kommentar enthält:
Zu den Zufälligkeitsquellen aus der Umgebung gehören Timings zwischen Tastaturen
, Interrupt-Timings von einigen Interrupts und andere
Ereignisse, die sowohl (a) nicht deterministisch als auch (b) schwer für einen
> Außenstehender zu messen.
Weiter unten gibt es eine Funktion add_hwgenerator_randomness(...)
zeigt Unterstützung für Hardware-Zufallszahlengeneratoren an.
Alle diese Informationen sind eher vage (oder erfordern im Fall des Quellcodes ein tiefes Wissen über den Linux-Kernel, um sie zu verstehen). Welche Entropiequellen werden tatsächlich verwendet, und unterstützt der Linux-Kernel standardmäßig Hardware-Zufallszahlengeneratoren?
Akzeptierte Antwort:
Die meisten Standard-PC-Hardware verfügt heutzutage über einen Zufallszahlengenerator. VIA Semiconductor setzt sie seit vielen Jahren in ihre Prozessoren ein; der Linux-Kernel hat dafür den via-rng-Treiber. Ich zähle 34 Quellmodule in drivers/char/hw_random/
Verzeichnis im neuesten Quellbaum, einschließlich Treibern für Intel- und AMD-Hardware und für Systeme mit einem TPM-Gerät. Sie können den rng-Daemon (rngd) ausführen, um zufällige Daten in den Kernel-Entropie-Pool zu schieben.