Skip to content

Zufall berechnen (unter Windows)

Für diverse Anwendungen (insbesondere Kryptografie) benötigt man einen Zufallszahlengenerator. Dieser sammelt aufgrund von verschiedenen Ereignissen (Tastatureingabe, Mausbewegung, Netzverkehr etc.) Werte und berechnet daraus Zahlen. Diese sollen möglichst gleichverteilt und zufällig aussehen. Insbesondere ist es wichtig, dass sich aus einer bekannten Ausgabefolge nicht die nächsten oder vorhergehenden Zahlen berechnen lassen. Denn das wäre dann wohl kein Zufall mehr.

Das Team um Zvi Gutterman hat im letzten Jahr den Zufallszahlengenerator von Linux untersucht. Bis auf Probleme bei festplattenlosen Routern waren sie von der Qualität des Generators überzeugt. Lediglich die fehlende Zusammenarbeit mit den Maintainern und der, sagen wir, eigenwillige Code wurde bemängelt. Nun haben sie sich den Zufallszahlengenerator von Windows angeschaut. Schon der Abstrakt verheißt nichts gutes:

The implication of these findings is that a buffer overflow attack or a similar attack can be used to learn a single state of the generator, which can then be used to predict all random values, such as SSL keys, used by a process in all its past and future operation. This attack is more severe and more efficient than known attacks, in which an attacker can only learn SSLkeys if it is controlling the attacked machine at the time the keys are used.

Sie haben den Binärcode einer Windows-2000-Installation untersucht. Der Code des Generators ist wohl seit Windows 95 bis Windows XP im wesentlichen gleich geblieben. Er nimmt Entropie aus dem System entgegen, hasht das und wendet dann RC4 an. Das bedeutet, wenn man einmal den Status des Generators kennenlernt, kann man alle weiteren Zufallswerte berechnen. Das wird dadurch erleichtert, dass der Generator im Benutzerraum läuft und nur alle 128 kB neu initialisiert wird. Weiterhin kann man auch alte Zufallswerte berechnen, wenn man den Status kennt. Der Aufwand beträgt laut der Veröffentlichung O(223), lässt sich also auf modernen Architekturen binnen Sekunden oder Minuten berechnen.

Alles in allem scheint damit der ZUfallszahlengenerator unter Windows seinen Namen nicht zu verdienen. Die Autoren geben einige Hinweise zur Verbesserung. Allerdings können die nur von Microsoft umgesetzt werden. Ein Grund mehr für Freie Software.

Trackbacks

Stefans Home on : Purer Zufall - oder nicht?

Show preview
Qbi hat auf zwei Veröffentlichungen hingewiesen, in denen die Zufallszahlengeneratoren von Windows und Linux untersucht wurden. Linux schnitt hierbei sehr brauchbar ab, bei Windows 2000 hingegen wurden eklatante Schwachstellen entdeckt. Dieselben Problem

Comments

Display comments as Linear | Threaded

No comments

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
BBCode format allowed
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

You can use [geshi lang=lang_name [,ln={y|n}]][/geshi] tags to embed source code snippets.
Form options
cronjob