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.

Enigma zu verkaufen

Bei Ebay gibt es gerade ein angeblich sehr gut erhaltenes Modell der Enigma zu verkaufen. Falls noch jemand Bedarf hat ... Achso, der Preis steht aktuell bei 18.100 USD

Update: Ebay hat das Angebot mittlerweile entfernt.

Das Chaos ist nah

In knapp vier Wochen ist es soweit. Das Chaos Communication Camp 2007 öffnet seine Pforten. Die Liste der Vorträge liest sich sehr vielversprechend und ich bedaure jetzt schon, dass ich mit hoher Wahrscheinlichkeit nicht hinfahren kann. Denn zum einen ist hier Prüfungszeit und zum anderen ist die Deadline für das Buch nahe. Daher hoffe ich auf gute Audioqualität und werde mich hinter den Rechner klemmen.

OpenSSL hat nun das FIPS-Zertifikat

Es ist gut ein Jahr her, da schrieb ich, dass OpenSSL ein Zertifikat nach FIPS-140 erhalten hat. Diese Zertifizierung wurde später wieder zurück gezogen und heute nun erfolgte die endgültige Zertifizierung. Im Gegensatz zum letzten Mal taucht die Software nun auch auf der Validation list auf. Insgesamt dauerte der Prozess fünf Jahre. Wenn man bedenkt, dass es normalerweise innerhalb von ein paar Monaten passiert, fragt man sich, wieso dass denn so lange dauerte. Zum einen liegt es daran, dass das Computer Module Validation Program (CMVP) im Normalfall Binärpakete auswertet. Bei OpenSSL hat der Nutzer aber die Wahl, vorkompilierte Software zu nutzen oder OpenSSL aus den Quellen zu bauen. Das waren die Damen und Herren nicht gewohnt und mussten offensichtlich einiges an den Testprozessen ändern. Weiterhin gab es dann noch neidische Konkurrenten. Diese beschwerten sich über die Software. Es führte sogar soweit, dass man behauptete, die Software enthalte kommunistischen Code. Denn ein Russe hat da mitentwickelt. Wie es in der Bürokratie halt so ist, kann man mit noch so großen Schauermärchen kommen. Alles wird geprüft und so zieht es sich in die Länge.

Aber nun ist der Prozess abgeschlossen. Wer will kann sich das OpenSSL FIPS Object Module (3,1MB) herunterladen.

Anforderungen für einen neuen Hash

Das NIST hat im Rahmen zweier Workshops die Vorbereitungen für eine neue Hashfunktion geschaffen. Vor einigen Tagen wurde nun ein Dokument veröffentlicht, dass die (vorläufig) minimalen Anforderungen an den Algorithmus beschreibt. Darin heißt es:

  • Der Algorithmus muss auf Basis einer weltweiten, nicht-exklusiven und gebührenfreien Lizenz öffentlich verfügbar sein.
  • Der Algorithmus muss auf einer breiten Basis von Hard- und Softwareplattformen implmentierbar sein.
  • Der Algorithmus muss Messagedigests von 224, 256, 384 und 512 Bit unterstützen (Maximallänge einer Nachricht mind. 264 Bits).

Möchtet ihr Vorschläge einbringen, sollte eine komplette Beschreibung des Hashes, C-Quellcode und weiteres enthalten sein. Weitere Details könnt ihr der PDF-Datei entnehmen. Im Rahmen einer Konferenz werden dann im vierten Quartal 2008 (sic!) die ersten Kandidaten gesichtet. Ich halte euch weiter auf dem laufenden.

Keysigning bei den Chemnitzer Linux-Tagen 2007

Am 3. und 4. März 2007 finden in Chemnitz wieder die Chemnitzer Linux-Tage statt. Neben vielen interessanten Vorträgen und Workshops gibt es auch wieder ein Keysigning. Wenn du daran teilnehmen möchtest, melde dich bei mir an und ich werde deinen Schlüssel mit zur Liste der Teilnehmer hinzufügen. Falls du noch nicht so recht weißt, was ein Keysigning ist und wie das abläuft, komme einfach vorher (genaue Zeiten stehen dann im Plan) vorbei. In einem kleinen Vortrag werde ich das Konzept vorstellen.

Weiterhin werde ich auch CAcert-Assurings anbieten. Wer daran Interesse hat, soll sich einfach kurz vorher bei mir melden. Das Assuring wird dann im Anschluss an die KSP stattfinden.

cronjob