Der defekte Zufallszahlengenerator von Planet Poker
In diesem Artikel werde ich einen Blick auf die Zufallszahlengeneratoren der Online-Pokeranbieter werfen. Insbesondere werde ich einen Blick weit zurück auf Planet Poker werfen. Diesem Anbieter wurde vor über 20 Jahren, im Jahr 1999 ein grober Fehler im Zufallszahlengenerator nachgewiesen.
Ende der neunziger Jahre war Planet Poker der erste Echtgeld-Pokeranbieter im Internet. Davor versuchten Spieler, über den IRC (Internet Relay Chat) oder sogar über das Usenet zu pokern. Planet Poker war das erste Programm, die es Pokerenthusiasten ermöglichte, um echtes Geld zu spielen. Der Urvater von GG, Stars und Co. litt jedoch unter einem defekten Zufallszahlengenerator, der es den Spielern ermöglichte, die Karten des Gegners mit ziemlicher Sicherheit vorherzusagen.
Planet Poker oder: Wie wir lernten beim Online-Poker zu betrügen
Im Jahr 1999 veröffentlichte das Software-Sicherheitsunternehmen Cigital ein Paper, in dem es die eklatanten Fehler im RNG von Planet Poker, dem ersten Online-Poker-Anbieter überhaupt, aufzeigte und wie diese ausgenutzt werden konnten. Unter dem Titel How We Learned to Cheat at Online Poker zeigte Cigital, dass das Zufallszahlengenerator von Planet Poker elementare Fehler aufwies und dass es möglich war, die Karten der anderen Spieler sowie Turn und River korrekt vorherzusagen, wenn man nur seine eigenen Karten und drei Board-Karten kannte.
Wie funktionierte der Zufallszahlengenerator von Planet Poker?
Der Zufallszahlengenerator von Planet Poker war ein sehr einfaches Programm. Vor jedem Spiel wurde ein sortierter Kartensatz (dargestellt durch die Zahlen 0 bis 51) gemischt, indem zufällig ausgewählte Karten im Kartensatz viele Male hintereinander ausgetauscht wurden.
Wenn der Zufallszahlengenerator zum Beispiel die Zahlen 7 und 40 ausspuckte, wurde die Karte an Position 7 im Deck mit der Karte an Position 40 vertauscht. Wenn diese zufälligen Vertauschungen oft genug durchgeführt werden, führt dies zu einem gut (und völlig zufällig) gemischten Deck.
Was war das Problem mit dem RNG von Planet Poker?
Das Problem mit dem Zufallszahlengenerator von Planet Poker war, dass er viel zu einfach war.
Gute Zufallszahlen mit einem einfachen Computer ohne externe Hilfsmittel zu generieren, ist überraschend schwierig, denn deterministische Maschinen (und nichts anderes sind Computer) können echte Zufälligkeit nicht einfach so reproduzieren.
Zu Beginn wird der Zufallszahlengenerator mit einem echten Zufallswert gefüttert. Aus diesem Wert erzeugt er alle folgenden Zufallszahlen. Einfache Zufallszahlengeneratoren verwenden einen einfachen Indikator als solch einen Initialwert: die Anzahl der Millisekunden, die an diesem Tag bereits vergangen sind. Die interne Uhr des Computers misst diese Zeit, und die Zahl ändert sich eintausend Mal pro Sekunde.
Für viele Anwendungen ist diese Methode völlig ausreichend. Der Computer schaut auf die Uhr, sieht, dass zum Beispiel seit Mitternacht (das wäre kurz nach 10 Uhr) 36.113.984 Millisekunden vergangen sind, und mit dieser Zahl wird der Zufallszahlengenerator gefüttert, um in den nächsten Schritten über einen anderen Algorithmus zufällig aussehende Zahlen auszuspucken. Wenn man etwas später neue Zufallszahlen benötigt, schaut der Computer wieder auf die Uhr, findet eine neue Millisekundenzahl und produziert neue Zufallszahlen.
Die auf diese Weise ausgespuckten Zahlen sind zwar nicht wirklich zufällig (weil sie deterministisch ermittelt werden), aber in vielen Fällen spielt das überhaupt keine Rolle. Solange ein externer Beobachter die Zufallszahlen nicht vorhersagen kann, spielt es keine Rolle, ob sie deterministisch oder mit einer echten Zufallsquelle ermittelt wurden.
Zu simpel, um Karten zu mischen
So weit, so gut - aber die Millisekunden, die nach Mitternacht verstrichen sind, zu verwenden, ist etwas zu einfach, um Karten zu mischen. Ein Tag hat nur etwa 86,4 Millionen Millisekunden. Und damit gibt es gerade mal so viele Möglichkeiten, wie ein Deck über diesen Zufallszahlengenerator gemischt werden kann.
Aber es gibt etwa 80 Undecillion (das ist eine 8 gefolgt von 67 Nullen) Möglichkeiten, ein Deck zu mischen. Diese Zahl ist astronomisch viel größer als die Anzahl der verschiedenen Decks, die Planet Poker's Zufallszahlengenerator bereitstellen könnte.
Sobald man auch die ungefähre Serverzeit kennt, kann man die Anzahl der möglichen Decks noch weiter eingrenzen. Die Jungs von Cigital waren in der Lage, die Anzahl der Möglichkeiten für ein einzelnes Deck auf unter 200.000 zu einem bestimmten Zeitpunkt zu reduzieren. Dann mussten sie nur noch alle Tische ein paar Tage lang beobachten und alle Karten, die sie sahen, in einer Datenbank speichern. Mit diesen Informationen konnten sie das Deck in der Datenbank sehr leicht anhand einiger weniger Karten finden und kannten alle anderen Karten von früheren Gelegenheiten, bei denen das gleiche Deck ausgegeben wurde.
Normalerweise genügte es, dass sie ihre eigenen Hole Cards und den Flop kannten und somit genau wussten, welches Deck der RNG von Planet Poker gerade produziert hatte. Das bedeutete, dass sie den Turn, den River und die Karten aller Gegner einfach aus ihrer Datenbank ablesen konnten.
Das Problem von Planet Poker war schlicht, dass der Algorithmus, der zur Generierung der Zufallszahlen verwendet wurde, zu simpel war.
Die Folgen für Planet Poker
Im Jahr 1999, als Cigital den Fehler entdeckte, war Online-Poker noch eine winzige Nische und kein Milliardengeschäft, wie es heute der Fall ist. Es gab nur sehr wenige Spieler an den Planet Poker-Tischen und niemand hatte das Wissen oder die technischen Möglichkeiten, den kaputten Zufallszahlgenerator so zu nutzen, wie Cigital es getan hatte.
Cigital war auf Software-Sicherheit spezialisiert und hatte Zugang zum Quellcode von Planet Poker. Nur so war es ihnen möglich, den Fehler auf so spektakuläre Weise zu demonstrieren. Der Fall Planet Poker führte jedoch dazu, dass alle zukünftigen Pokeranbieter viel mehr Geld für ausgefeiltere Zufallszahlengeneratoren ausgaben. Planet Poker änderte sofort den Algorithmus und praktisch alle nachfolgenden Anbieter verwendeten ebenfalls einen Hardware-Zufallszahlengeneratoren, der echte Zufallszahlen generiert.
Wie diese echten Zufallszahlengeneratoren funktionieren, werden wir in einem weiteren Artikel dieser Serie erklären.