Moin!
»» 2. Die Zufälligkeit der Funktion makeSID wäre auch erst mal anzuzweifeln. Da stecken mir zu viele Informationen drin, die keinesfalls zufällig sind: Zeit in Sekunden, Prozess-ID, und eine "Auswahl" an Textzeichen, die aus irgendeinem Grund in ihrer Zeichenvielfalt eingeschränkt wurden.
»»
»» Das allein sind für mich drei Anzeichen für "Vorsicht". Und da hilft auch nicht das Argument, dass die Funktion ja ausreichend "verschiedene" SIDs produziert und bei 500.000 Aufrufen kein Duplikat ausspuckt. Eine Zählschleife von 1 bis 500.000 produziert nämlich denselben Effekt.
»»
»» Nur mal so angedacht: Wenn der eine Request dem Opfer eine SID generiert, dann hat ein Angreifer im besten Fall eine ganze Sekunde lang Zeit, mit massenhaften Requests dieselbe Prozess-ID wie das Opfer zu bekommen - wenn er dann noch den Zufallsgenerator passend auf Startwert setzen kann (seed), dann kann er dieselbe SID bekommen.Das verstehe ich jetzt nicht ganz.
Erneutes Lesen hilft vielleicht.
a) man muss eine zur Zeit gültige SID auswürfeln oder besser sauber ermitteln...
soweit stimme ich Dir zu, dass eine Zählschleife bis 500.000 schnell durchlaufen ist
Du hast nicht verstanden, worauf sich 500.000 bezieht.
b) ob die SID gültig ist, kann man jedoch nur mittels passendem Request feststellen
der muss also auch durchgeführt werden und kostet Zeit, auch wenn ich 1000 zur gleichen
Zeit absenden kann (sie müssen ja auch angenommen werden).
Ja und? Erstmal will ich innerhalb einer Sekunde mit gesetztem identischen Zufallszahlengenerator alle 65536 Prozess-IDs - oder zumindest alle die, die derzeit von einem Webserverprozess belegt sind - abgreifen und in nutzbare Session-IDs verwandeln. Die Prüfung auf Gültigkeit kommt dann später und hat Zeit.
c) ob ich nun z.B. bei einer 200er Antwort den Anzugreifenden mit seiner SID getroffen habe
oder nur irgendeine gerade gültige Session-ID, ist ungeklärt. Auch das muss noch
ermittelt werden und kostet (etwas) Zeit.
Ja und? Ob die Session "aktiv" ist im Sinne von "wurde gerade von einem User initiiert, und ich habe die SID richtig geraten", zeigt sich recht schnell, wenn man dann einfach die Seite mit den Benutzereinstellungen aufruft, oder sonst wahrnehmbare Zeichen für den Namen des eingeloggten Users betrachtet.
d) was sollte bezüglich der Sicherheit bei einer falschen oder abgelaufenen Session-ID
geschehen?
Nichts. Die Session-ID hat außer der Identifikation "desselben" Browsers keine Bedeutung und insbesondere keine zeitliche Begrenzung ihrer Gültigkeitsdauer.
- Sven Rautenberg