[Linux/Kernel] Schlechte Entropie-Schätzung bei /dev/random
(2001-10-11 18:41:55+00)
Die Kernel-Schnittstelle, welche Anwendungen mit kryptographisch sicheren Zufallszahlen versorgen soll, liefert strenggenommen keine Zufallszahlen mit dieser Eingeschaft.
Betroffene Systeme
- Systeme, die den Linux-Kernel einsetzen, und sich auf Zufallszahlen aus
/dev/random
verlassen, sind betroffen.
Einfallstor
Abhängig von der Anwendung, die diese Zufallszahlen verwendet.
Auswirkung/dev/random
liefert möglicherweise nicht kryptographisch sichere Zufallszahlen. Manche Anwendungen benötigen diese dringend, z.B. die Schlüsselerzeugung bei GnuPG.
Typ der Verwundbarkeit
nicht kryptographisch sichere Zufallszahlen (cryptographically weak random numbers)
Gefahrenpotential
niedrig (in der Praxis) bis mittel (ein weiterer Defekt in der Entropie-Buchhaltung sorgt dafür, daß der Effekt kaum Erscheinung tritt)
(Hinweise zur Einstufung des Gefahrenpotentials.)
Beschreibung
Über das Gerät /dev/random
stellt der Kernel Anwendungen kryptographisch sichere Zufallszahlen (cryptographically strong random numbers) zur Verfügung. Dazu zeichnet der Kernel Ereignisse mit hohem Grad an Zufall auf und fügt die gewonnenen Daten zu einem Entropiepool hinzu. Wenn eine Anwendung kryptographisch sichere Zufallszahlen anfordert, wird die Schätzung über die im Pool versammelte Entropie entsprechend reduziert; falls nicht genügend Entropie vorhanden ist, wird auf weitere zufällige Ereignisse gewartet.
Seit langem gibt es Spekulationen, ob die Schätzungen über die Zufälligkeit einiger Quellen für /dev/random
angemessen sind. Die gegenwärtige Meinung auf der Linux-Kernel-Malingliste scheint zu sein, daß die Schätzungen teilweise deutlich zu hoch sind. Die von /dev/random
gelieferten Zufallszahlen dürften damit nicht mehr uneingeschränkt als kryptographisch sicher gelten, auch wenn einem Angreifer wahrscheinlich auch Attacken auf einige Aspekte von SHA-1 (der vom Kernel hier verwendeten Einweg-Hashfunktion) zur Verfügung stehen müßten, bevor er diese Schwäche ausnützen kann.
Ein zweites Problem kompensiert das jedoch wieder, zumindest teilweise: Beim Lesen von /dev/random
wird die angenommene Entropie im Kernel-eigenen Pool durch einen Programmierfehler drastisch reduziert; sehr viel stärker, als nötig. Dadurch wird wesentlich früher auf neue zufällige Ereignisse gewartet, weshalb das erste Problem nicht so stark ins Gewicht fällt. Auf Systemen, bei denen gegenwärtige Hauptentropiequelle (die Maus, insbesondere die PS/2-Variante) wegfällt, ergibt sich jedoch ein Problem, daß es sehr lange dauert, bis sich Entropie ansammelt. Dadurch ist der großzügige Umgang mit Entropie im praktischen Betrieb sehr nachteilig, da z.B. lokale Benutzer alle Entropie abgreifen können und so wichtige Dienste behindern (denial of service).
Gegenmaßnahmen
Es ist zu erwarten, daß dieses Problem in einem der zukünftigen Linux-Kernels behoben wird. Gegenwärtig ist jedoch noch zusätzliches Testen erforderlich.
Hinweis
Die in diesem Text enthaltene Information wurde für die Mitglieder der Universität Stuttgart recherchiert und zusammengestellt. Die Universität Stuttgart übernimmt keinerlei Haftung für die Inhalte. Dieser Artikel darf ausschließlich in unveränderter Form und nur zusammen mit diesem Hinweis sowie dem folgenden Copyrightverweis veröffentlicht werden. Eine Veröffentlichung unter diesen Bedingungen an anderer Stelle ist ausdrücklich gestattet.
Copyright © 2022 RUS-CERT, Universität Stuttgart, https://cert.uni-stuttgart.de/
https://cert.uni-stuttgart.de/ticker/article.php?mid=500