Session ID durch zufall erraten

Natürlich kann der Dieb auch eine Session ID erraten, allerdings ist dies sehr unwahrscheinlich.

Denn die Session ID benutzt eine 128-Bit-Zahl (in hexadezimaler Darstellung) als ID. Also sind 2128 ID's möglich, also ca. 3,402 * 1038, also eine Zahl mit 38 Nullen.

Allerdings kann man nur aktive Session-ID's übernehmen, weil inaktive Sessions gelöscht werden.

Gehen wir mal von einer Milliarde aktiver Sessions aus (was immerhin ein sechstel Weltbevölkerung ist, die gleichzeitig auf dem Server seien würden). Dann hat man durchschnittlich schon nach 3,4 * 10 29 Versuchen eine aktive Session-ID gefunden. Wie lange braucht man dafür? Wenn man pro Sekunde wiederum genau eine Milliarde Session-IDs prüfen könnte, würde man 3,4 * 10 20 Sekunden brauchen, um durchschnittlich mit Sicherheit eine aktive ID zu finden, vielleicht auch nur die Hälfte der Zeit: 1,7 * 10 20 Sekunden. Also grob 5 * 1012 Jahre (in Worten: 5 Billionen Jahre). Da ja mindestens 128 Bit = 32 Byte an Daten zur Übermittlung der Session-ID übertragen werden müßten, benötigte man dafür eine Datenrate von 3,2 Gigabyte pro Sekunde - das wäre immerhin schaffbar. Dummerweise ist ein HTTP-Request nicht so klein (meinstens min. ca. 1000 Byte), alleine das würde also die Anzahl der Tests pro Sekunde beschränken.

Die Chance, dass die erste getestete Session ID richtig ist, beträgt 1 zu 3,402 * 1038. Beim Lotto hat man eine Chance von 1 zu 1,4 * 107, man kann also sagen das ein 6er beim Lotto ca. 1031 (10 Quintillionen) mal Wahrscheinlicher ist als beim ersten Raten eine gültige Session ID zu finden, bzw. es ist wahrscheinlicher, dass beim Lotto fünf mal nacheinander die gleichen Zahlen gezogen werden.