Hello,
- 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. Bitte stelle das noch klarer:
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
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).
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.
d) was sollte bezüglich der Sicherheit bei einer falschen oder abgelaufenen Session-ID
geschehen?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg