Menü
Security

Schwächen im Zufallszahlengenerator von Windows 2000

Von
vorlesen Drucken Kommentare lesen 156 Beiträge

Eine Analyse des Pseudozufallszahlengenerators (PRNG) von Windows 2000 hat bedenkliche Schwächen zu Tage gefördert. Israelische Wissenschaftler konnten erstmals die Funktionsweise des bislang unveröffentlichten Algorithmus rekonstruieren und einer Untersuchung unterziehen. Sie entwickelten Angriffe gegen den Generator, mit denen sich die erzeugten Zufallszahlen unter Umständen zurückberechnen oder vorhersagen lassen. Inwieweit sich die Erkenntnisse der Forscher auch auf die Zufallszahlengeneratoren von Windows XP oder Vista übertragen lassen, ist bislang nicht bekannt.

Die Vorhersagbarkeit von Pseudozufallszahlen eines Computersystems hat teils schwerwiegende Auswirkung auf die darauf laufenden Krypto-Anwendungen wie Verschlüsselungsprogramme, Banking-Software, DRM-Systeme oder SSL. Aus den Zahlen lassen sich unter Umständen die geheimen Schlüssel ableiten, mit denen solche Programme die verarbeiteten Daten gegen unbefugten Zugriff schützen. Ein PRNG, wie er von Windows 2000 eingesetzt wird, führt bei jedem Aufruf diverse Rechenoperationen auf seinen internen Zustandsregistern aus und versetzt sie damit in einen neuen Zustand. Einen geringen Teil der neuen Zustandsdaten liefert er als Zufallswert – in der Regel nach mehreren internen Durchläufen – an das aufrufende Programm zurück.

Wichtigstes Ergebnis der Wissenschaftler ist, dass sich aus einem einmal bekannten inneren Zustand die zuvor ausgegebenen Zufallszahlen mit einer Angriffskomplexität von 223 berechnen lassen, was in ihren Augen auf ein fehlerhaftes Generatordesign zurückzuführen ist. Angriffe dieser Komplexitätsklasse lassen sich in der Regel bereits mit PC-Hardware in kürzester Zeit berechnen. Außerdem läuft der Generator im Kontext der aufrufenden Anwendung und nicht wie auf anderen Systemen üblich im Kernel-Space. Dies erleichtert Angreifern erheblich, den inneren Zustand des PRNG auszulesen, beispielsweise durch eine Pufferüberlauf-Schwachstelle in der anvisierten Applikation.

Eine weitere Schwachstelle entdeckten die Wissenschaftler in der unsicheren Initialisierung der Zustandsregister. Demnach verwendet der Windows-PRNG zum Teil dafür diejenigen Daten, die sich zum Zeitpunkt seiner Initialisierung im Stack-Bereich des aufrufenden Programmes befinden. Die Werte auf dem Stack sind jedoch unter Umständen vorhersagbar.

Außerdem erfolgt laut den Forschern zu selten eine Auffrischung des internen PRNG-Zustandes mit Entropiedaten des Systems (etwa aus Mausbewegungen, Festplatten-Jitter oder Netzwerk-Delays): Lediglich nach jeweils 128 KByte produzierten Zufallsdaten fließen die schwer vorhersagbaren Entropiedaten in die Zustandsregister ein. Dies führt dazu, dass sich aus einem bekannten inneren Zustand alle Zufallszahlen innerhalb des 128-KByte-Fensters berechnen lassen.

Berichte über einen Pufferüberlauf im PRNG, über den Angreifer unter Umständen in Windows-Systeme einbrechen können, ließen sich indes nicht bestätigen. Zum Ausnutzen der nun entdeckten Schwächen muss ein Angreifer bereits über lokalen Zugriff auf den Windows-Rechner verfügen. Die vorgestellten Angriffe sind auch nur bedingt praxistauglich, weil sie zusätzlich bekannte Schwachstellen in den angegriffenen Applikationen oder Debugging-Möglichkeiten voraussetzen, um den internen PRNG-Zustand auslesen zu können. Dass in nächster Zeit darauf basierende, konkrete Angriffe gegen reale Applikationen entwickelt werden können, ist eher unwahrscheinlich.

Siehe dazu auch:

(cr)