Ende der neunziger Jahr war Planet Poker der erste Echtgeld-Poker-Anbieter im Netz. Der Urahn von PokerStars und Co. litt allerdings an einem viel zu leicht durchschaubaren RNG.
Als Auskopplung unserer Serie Die wunderliche Welt der Wahrscheinlichkeiten wollen wir in diesem Artikel einen Blick auf die Zufallszahlengeneratoren (kurz RNG, Random Number Generator) von Online-Poker-Anbietern werfen. Im speziellen werfen zunächst wir einen Blick zurück auf Planet Poker – den Anbieter, welchem 1999 ein grob fehlerhafter RNG nachgewiesen wurde.
Der Fall Planet Poker
1999 veröffentlichte Cigital ein Paper, in dem das Sicherheitsunternehmen sehr anschaulich darlegte, welche krassen Fehler der RNG von PlanetPoker, der erste Online-Poker-Anbieter überhaupt, hatte und wie sich diese ausnutzen ließen.
Unter dem Titel How We Learned to Cheat at Online Poker (Wie wir lernten, beim Online-Poker zu betrügen), zeigte Cigital, dass der RNG von Planet Poker elementare Fehler aufwies und es mit vergleichsweise kleinem Aufwand möglich war, aus den eigenen Karten und drei Board-Karten die Karten der Mitspieler, sowie Turn und River korrekt vorherzusagen.
Wie funktionierte der RNG von Planet Poker
Der Zufallszahlengenerator von Planet Poker funktionierte nach einem denkbar einfachen Prinzip. Vor dem Spiel wurde ein sortiertes Deck (abgebildet durch die Zahlen 0 bis 51) gemischt indem mehrfach hintereinander zufällig ausgewählte Karten im Deck untereinander ausgetauscht wurden.
Wenn der RNG zum Beispiel die Zahlen 7 und 40 ausspuckte, wurden die Karte an Position 7 im Deck mit der Karte an Position 40 getauscht. Führt man diese zufälligen Vertauschungen hinreichend oft aus, ergibt sich daraus theoretisch ein gut (und völlig zufällig) gemischtes Deck, mit dem dann gespielt werden kann.
Würfel – ein ganz simpler RNGWas war am RNG von Planet Poker faul?
Das Problem beim Zufallszahlengenerator von Planet Poker war, dass er ein ganzes Stück zu simpel gestrickt war.
Um ohne externe Hilfsmittel mit einem einfachen Rechner gute Zufallszahlen zu erzeugen, muss man eine Menge Zinnober anstellen, denn per se können deterministische Maschinen (und Computer sind nichts anderes) keine echte Zufälligkeit abbilden.
In vielen Fällen behilft man sich damit, dass man ein bestimmtes Merkmal wählt und damit den Zufallszahlengenerator initial füttert. Ein gerne und häufig genommenes Merkmal ist die Anzahl der an diesem Tag bereits vergangenen Millisekunden. Die interne Uhr des Rechners misst diese Zeit und die Zahl verändert sich tausendmal pro Sekunde.
Für viele Anwendungsbereiche ist diese Methode hinreichend. Der Computer schaut auf die Uhr, sieht, es sind zum Beispiel 36.113.984 Millisekunden seit Mitternacht vergangen (das wäre kurz nach 10 Uhr morgens) und mit dieser Zahl wird der RNG gefüttert, um in den nächsten Schritten über einen weiteren Algorithmus zufällig aussehende Zahlen auszuspucken. Braucht man etwas später neue Zufallszahlen, schaut der Rechner wieder auf die Uhr, findet eine neue Millisekundenzahl und damit gibt es neue Zufallszahlen.
Die so ausgespuckten Zahlen sind zwar nicht wirklich zufällig (denn sie werden deterministisch bestimmt), aber das macht in vielen Fällen gar nichts aus. Denn ein externer Beobachter kann sie nicht vorherbestimmen und jede Millisekunde wird der Algorithmus neu gefüttert, so dass immer wieder neue Zufalls-Sequenzen erzeugt werden können.
Zu simpel, um Karten zu mischen
So weit, so gut – aber um Karten zu mischen ist dieses Verfahren ein wenig zu einfach. Denn an einem Tag gibt es insgesamt nur rund 86,4 Millionen Millisekunden. Und damit gibt es auch gerade mal so viele Möglichkeiten, wie ein Deck über diesen RNG gemischt werden kann.
Aber in Wirklichkeit gibt es rund 80 Undezillionen (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 der RNG von Planet Poker bereit stellen konnte.
Wenn man zusätzlich auch noch weiß, welche Serverzeit der Anbieter in etwa hat, lässt sich die Anzahl der möglichen Decks noch viel weiter einschränken.
Die Jungs von Cigital konnten die Anzahl der Möglichkeiten für ein einzelnes Deck zu einem bestimmten Zeitpunkt auf unter 200.000 reduzieren.
Dann mussten sie nur noch alle möglichen Mischungen vornehmen und in einer Datenbank speichern. Mit diesen Informationen konnten sie sehr einfach anhand einiger weniger Karten, das Deck in der Datenbank finden und kannten damit sämtliche anderen Karten.
In der Regel reichte es ihnen aus, die eigenen Holecards und den Flop zu kennen und damit wussten sie genau, welches Deck der RNG von Planet Poker gerade produziert hatte. Damit konnten sie Turn, River und die Karten aller Gegner einfach aus ihrer Datenbank auslesen.
Das Problem von Planet Poker war schlicht, dass der Algorithmus, mit denen die Zufallszahlen erzeugt wurden, zu simpel war.
Die Folgen des Planet-Poker-Fehlers
Ein sehr einfacher “Hardware-RNG”1999, als Cigital den Fehler aufdeckte, war Online-Poker noch eine minimale Nische und kein Milliardengeschäft wie heute. An den Tischen von Planet Poker saßen nur sehr weniger Spieler und keiner hatte das Wissen oder die technischen Möglichkeiten, den RNG auszuhebeln, so wie Cigital es gemacht hatte.
Cigital war auf Softwaresicherheit spezialisiert und hatte Zugriff auf den Quellcode von Planet Poker. Nur so war es ihnen möglich, den Fehler auf so spektakuläre Art und Weise zu demonstrieren.
Aber der Fall Planet Poker war der Startschuss zu wesentlich ausgereifteren Zufallszahlengeneratoren beim Online-Poker. Planet Poker wechselte den Algorithmus umgehend aus und faktisch alle Folgeanbieter setzten ferner auf einen Hardware-RNG, die echte Zufallszahlen generieren.
Wie diese funktionieren, wird im nächsten Artikel dieser Serie erklärt.
» How We Learned to Cheat at Online Poker, englisch
Dieser Artikel erschien auf PokerOlymp am 19.09.2016.