Warum guter Zufall wichtig ist

Warum guter Zufall wichtig ist

IT-Sicherheitsprodukte wie die Firewall & VPN-Appliance genuscreen, die High Resistance Firewall genugate und der Security Laptop vs-top benötigen an vielen Stellen Zufallszahlen. Wie kann aber ein Computer überhaupt Zufallszahlen erzeugen, wenn er doch nur fest vorgegebene Programme abarbeitet? Und welche Sicherheitsprobleme können entstehen, wenn die erzeugten Zahlen nicht ausreichend zufällig sind?

Wenn in kryptografischen Algorithmen Daten gebraucht werden, die nicht von Angreifern erratbar sein dürfen, wird auf Zufallszahlengeneratoren zurückgegriffen. Beispielsweise werden die Schlüssel für Verschlüsselungs- und Signaturverfahren auf der Basis geeigneter Zufallszahlen erzeugt.

Anforderungen an Zufallszahlen

Damit sich Zufallszahlen nicht vorhersagen lassen, sollen sich in Zufallszahlenfolgen keine statistischen Regelmäßigkeiten erkennen lassen. Alle möglichen Zahlen sollen mit der gleichen Wahrscheinlichkeit auftreten. Inwieweit diese Anforderungen erfüllt werden, lässt sich mit statistischen Tests beurteilen, die die Eigenschaften der Zufallszahlenfolge mit mathematischen Modellen vergleichen und versuchen, Regelmäßigkeiten zu entdecken.

Angreifer dürfen auch dann keinen Vorteil gegenüber blindem Raten haben, wenn sie größere Teilmengen der bislang erzeugten Zufallszahlen kennen. Bereits generierte Zufallszahlen sollen daher die nachfolgenden Zufallszahlen möglichst nicht beeinflussen.

Umgekehrt soll es einem Angreifer, dem die Implementierung und der aktuelle Zustand des Zufallszahlengenerators bekannt geworden sind, nicht möglich sein, die vorher erstellten Zufallszahlen zu ermitteln. Ansonsten könnten bei einem erfolgreichen Einbruch in ein IT-System auch alle in der Vergangenheit erzeugten Schlüssel bekannt werden.

Wie kann ein Computer Zufallszahlen erzeugen?

Eine Möglichkeit, Zufallszahlen zu erzeugen, ist die Auswertung unvorhersehbarer physikalischer Ereignisse, z. B. das sogenannte Schrotrauschen einer Diode oder radioaktiver Zerfall. Diese Ereignisse werden geeignet detektiert und bestimmte Parameter daraus (z. B. die Zeitdifferenz zwischen den Ereignissen) als Zufallszahlen interpretiert.

Den meisten PCs und Laptops fehlt jedoch die spezielle Hardware für die Erkennung dieser physikalischen Ereignisse. Zudem ist die Menge auswertbarer Ereignisse pro Zeiteinheit nicht immer ausreichend, insbesondere für Anwendungen, die in kurzen Zeitabständen sehr viele Zufallszahlen benötigen.

Daher hat man zusätzlich Lösungen entwickelt, die Zufallszahlengeneratoren in Software implementieren. Dazu berechnet ein Algorithmus, ausgehend von einem Startwert mit einer festen Berechnungsvorschrift, der Reihe nach eine Folge von Zahlen.

Ein Beispiel für eine solche Berechnungsvorschrift ist AES-CTR. Die Zufallszahlenfolge entsteht, indem ein interner Zähler schrittweise hochgezählt und mit AES und einem geheimen Schlüssel verschlüsselt wird. Die nächste Zufallszahl ist also jeweils das Ergebnis der Verschlüsselung.

Aber wenn der Algorithmus festgelegt ist, wird dann nicht immer genau dieselbe Zahlenfolge generiert, wenn das Programm gestartet wird? Ja, das wäre tatsächlich so. Deshalb gehen in die Berechnung zusätzlich Informationen ein, die von außen kommen und hinreichend unbestimmt sind. Der Grad der Unbestimmtheit wird als Entropie bezeichnet.

SicherheitsschlösserKennt der Angreifer den Algorithmus, kann er den nächsten Wert berechnen

Im einfachsten Fall werden solche deterministischen Zufallszahlengeneratoren mit einem zufälligen Startwert, dem sogenannten Seed, initialisiert. Nur noch der Seed muss wirklich zufällig sein, den Rest erledigt der Algorithmus. Der Seed kann aus einem physikalischen Zufallszahlengenerator kommen, aber auch unvorhersehbare System-Ereignisse, z. B. Tastatureingaben, Mausbewegungen, Empfangszeitpunkte von Netzwerkpaketen oder Zugriffszeiten auf Festplatten können als Entropiequellen in die Berechnung einfließen.

Der interne Zustand des Zufallszahlengenerators muss geheim gehalten werden, denn wenn ein Angreifer den Algorithmus kennt, kann er aus dem internen Zustand den nächsten Wert berechnen. Auch Manipulationen am internen Zustand sind zu verhindern, denn sonst könnte ein Angreifer Einfluss auf die Zufallszahlen nehmen.

Das ist ein Grund, Zufallszahlengeneratoren im Betriebssystem-Kern zu implementieren, auf den Anwendungsprogramme keinen Zugriff haben. Alle modernen Betriebssysteme stellen Zufallszahlengeneratoren bereit, die von Anwendungsprogrammen benutzt werden können.

Fortgeschrittenere Zufallszahlengeneratoren werden außerdem auch während des Betriebs beständig mit weiteren, unvorhersagbaren Eingabedaten (Entropie) gefüttert.

Wenn der interne Zustand bekannt (oder erraten) worden ist, bleibt es damit für einen Angreifer schwierig, nicht nur die vorherigen, sondern auch die nachfolgenden Zufallszahlen zu bestimmen.

Sicherheitslücken aufgrund schlechter Zufallszahlen

Zufallszahlengeneratoren sind ein lohnendes Angriffsziel, denn es handelt sich um eine eng umgrenzte, isolierte Funktionalität, die von vielen Anwendungen und für viele sicherheitskritische Zwecke benutzt wird. An sich gute kryptografische Verfahren können durch einen schlechten Zufallszahlengenerator extrem geschwächt oder völlig unwirksam werden.

Gelingt es einem Angreifer beispielsweise, die Zufallszahlen vorherzusagen, die zur Erzeugung eines kryptographischen Schlüssels verwendet werden, kann er diesen Schlüssel ermitteln und dann vertrauliche Daten entschlüsseln oder falsche digitale Unterschriften ausstellen.

Hier sind einige Beispiele der letzten Jahre, bei denen schlechte Zufallszahlen zu Sicherheitsproblemen geführt haben:

  • Mitte 2008 wurde bekannt, dass die Debian GNU/Linux Distribution nach einer kleinen Änderung an der OpenSSL Krypto-Bibliothek Zufallszahlen mit sehr geringer Entropie erzeugte. Dadurch wurde es möglich, generierte kryptografische Schlüssel (z. B. für SSH, TLS oder OpenVPN) zu erraten und vertrauliche Daten mitzulesen oder gar in IT-Systeme einzudringen.
  • Letztes Jahr (2013) konnten Bitcoins gestohlen werden, die auf Android-Handys gespeichert waren, weil sich aufgrund einer fehlerhaften Initialisierung des Zufallszahlengenerators der für die Signierung der Transaktionen verwendete private Schlüssel ermitteln ließ.
  • Sony wollte durch digitale Signaturen verhindern, dass auf der Spielekonsole Playstation 3 Fremdprogramme ausgeführt werden (z. B. Spiele mit entferntem Kopierschutz). Der eingesetzte ECDSA-Signatur-Algorithmus braucht für jede Signatur frische Zufallszahlen. Sony wählte diese Zahlen aber nicht zufällig, sondern für alle Signaturen die gleiche Zahl. Auf diese Weise konnte im Jahr 2010 der private Schlüssel ermittelt werden, so dass Angreifer auch eigene Programme signieren und ausführen konnten.
  • Durch die Snowden-Enthüllungen wurde bekannt, dass die NSA in einen international genutzten Standard für Zufallszahlengeneratoren (NIST SP 800-90A) einen zusätzlichen Algorithmus eingefügt hatte, der eine Hintertür besaß, mit der die NSA die Zufallszahlen (und damit z. B. erzeugte Schlüssel) ermitteln konnten.

Was tut genua?

Diese Beispiele zeigen, wie wichtig die Erzeugung von Zufallszahlen für die Sicherheit ist. Bei den Common Criteria Zertifizierungen werden unserer Produkte daher die Zufallszahlengeneratoren und ihre Nutzung ganz besonders genau untersucht.

Insbesondere im Geheimschutz-Bereich kommen auch Smartcards zum Einsatz, die spezielle, zertifizierte Hardware beinhalten, um gute Zufallszahlen zu erzeugen. Wo es um die Sicherheit geht, wird also nichts dem Zufall überlassen.

Lesen Sie auch: Von Schlüsseln und anderen Geheimnissen

 

Bildquelle: © beermedia.de, Maksim Kabakou - Fotolia.com

 

 


Diskutieren Sie mit

Sie können diesen Artikel sofort ohne Registrierung als Gast-User kommentieren.

Registrieren Sie sich jetzt! Mit einem User Account genießen Sie Vorteile:
Ihr Kommentar wird sofort im genublog veröffentlicht und Sie werden über Reaktionen auf Ihre Kommentare informiert.

Bereits registrierte User gelangen hier zum Login.



Registrieren Sie sich jetzt! Mit einem User Account genießen Sie Vorteile:
Ihr Kommentar wird sofort im genublog veröffentlicht und Sie werden über Reaktionen auf Ihre Kommentare informiert.

Bereits registrierte User gelangen hier zum Login.