aktuelle.kurse/old_m133/4_Modulinhalte_und_Uebungen/01-Grundlagen/03-PHP-einfach/einf_php_session_erraten.php.htm

48 lines
3.0 KiB
HTML
Raw Normal View History

2022-02-24 09:37:43 +01:00
<html>
<head>
<title>PHP-Einfach.de - PHP Einf&uuml;hrung - Sessions</title>
<meta name="Author" content="Andavos">
<meta name="Publisher" content="Andavos">
<meta name="Copyright" content="Andavos">
<meta name="Keywords" content="Clan, Aufbau, Webdesign, HTML, Einf&uuml;hrung, PHP, Scripte, Erkl&auml;rung, Bilder, Infos, Anleitung">
<meta name="Description" content="Auf Clanwissen.de.vu bekommen Sie erkl&auml;rt, wie man eine Homepage erstellt. Au&szlig;erdem bekommen Sie n&uuml;tzliche Tipps zum Webdesign. PHP wird auch erkl&auml;rt und man kann gute Scripte herunterladen. ">
<meta name="Page-topic" content="Clan-Aufbau, Webdesign, PHP, Bilder">
<meta name="Audience" content="Alle">
<meta name="Content-language" content="DE">
<meta name="Page-type" content="Anleitung">
<meta name="Robots" content="INDEX,FOLLOW">
<link rel="stylesheet" href="css/main.css" tppabs="http://www.php-einfach.de/offline/css/main.css" type="text/css">
</head>
<body text="#000000" bgcolor="#F0F0F0" link="#303030" alink="#000000" vlink="#303030">
<h3>Session ID durch zufall erraten</h3>
<div class="tabelle">
Nat&uuml;rlich kann der Dieb auch eine Session ID erraten, allerdings ist dies sehr unwahrscheinlich. <br><br>
Denn die Session ID benutzt eine 128-Bit-Zahl (in hexadezimaler Darstellung) als ID. Also sind 2<sup>128</sup> ID's m&ouml;glich, also ca. 3,402 * 10<sup>38</sup>, also eine Zahl mit 38 Nullen. <br>
<br>
Allerdings kann man nur aktive Session-ID's &uuml;bernehmen, weil inaktive Sessions gel&ouml;scht werden. <br><br>
Gehen wir mal von einer Milliarde aktiver Sessions aus (was immerhin ein sechstel Weltbev&ouml;lkerung ist, die <b>gleichzeitig</b> auf dem Server seien w&uuml;rden). Dann hat man durchschnittlich schon nach 3,4 * 10 <sup>29</sup> Versuchen eine aktive Session-ID gefunden. Wie lange braucht man daf&uuml;r? Wenn man pro Sekunde wiederum genau eine Milliarde Session-IDs pr&uuml;fen k&ouml;nnte, w&uuml;rde man 3,4 * 10 <sup>20</sup> Sekunden brauchen, um durchschnittlich mit Sicherheit eine aktive ID zu finden, vielleicht auch nur die H&auml;lfte der Zeit: 1,7 * 10 <sup>20</sup> Sekunden. Also grob 5 * 10<sup>12</sup> Jahre (in Worten: 5 Billionen Jahre). Da ja mindestens 128 Bit = 32 Byte an Daten zur &Uuml;bermittlung der Session-ID &uuml;bertragen werden m&uuml;&szlig;ten, ben&ouml;tigte man daf&uuml;r eine Datenrate von 3,2 Gigabyte pro Sekunde - das w&auml;re immerhin schaffbar. Dummerweise ist ein HTTP-Request nicht so klein (meinstens min. ca. 1000 Byte), alleine das w&uuml;rde also die Anzahl der Tests pro Sekunde beschr&auml;nken. <br><br>
Die Chance, dass die erste getestete Session ID richtig ist, betr&auml;gt 1 zu 3,402 * 10<sup>38</sup>. Beim Lotto hat man eine Chance von 1 zu 1,4 * 10<sup>7</sup>, man kann also sagen das ein 6er beim Lotto ca. 10<sup>31</sup> (10 Quintillionen) mal Wahrscheinlicher ist als beim ersten Raten eine g&uuml;ltige Session ID zu finden, bzw. es ist wahrscheinlicher, dass beim Lotto f&uuml;nf mal nacheinander die gleichen Zahlen gezogen werden.
<br>
</div>
</body>
</html>