FB18 - Das Forum für Informatik

fb18.de / Off-Topic / Hard- und Softwarefragen

Session Passwort

Session Passwort 2008-02-14 12:52
Popcorn
Ich habe gerade einen dieser (so zahlreichen [22]) auf dem Schlauch-Steh-Momente und sinniere über die Sicherheit von PHP-SessionIDs nach, ohne im Web eine rechte Antwort zu finden. Mal angenommen, man lässt für die Übergabe der ID nur Cookies zu, macht es dann noch gravierenden Unterschied, zusätzlich ein Session-Passwort zu vergeben?

- Wer den Datenverkehr auslesen kann, kann ein Session-Passwort aus einem Cookie, genau so leicht auslesen, wie die Session-ID.

- Beim Cookieklau macht es auch keinen Unterschied, ob man nun den Session-Cookie oder den mit dem Passwort klaut.

- Die Session-ID ist wohl ein MD5-Hash von irgendwas, vermutlich schwerer zu erraten, als der Hashwert eines durchschnittlichen Nutzerpassworts.

Aber irgendwie habe ich dennoch das Gefühl, irgendwas zu übersehen. Anyone?

RE: Session Passwort 2008-02-14 14:24
GroßerSchöpfer
Wenn jemand mitliest hast du eigentlich sowieso verloren. Deswegen sollte man eigentlich, bei allem was mit Passwörtern und personenbezogenen Daten stattfindet https benutzen, denn es ist ja heute eigentlich normal, das Leute öffentliche WLANs benutzen, und da kann eben irgendwer mitlesen, beim DSL Anschluss zu hause ist das nicht so einfach.

Das Problem bei Session IDs in URI ist halt, dass die sehr leicht nach aussen leaken, etwa durch referrer header usw., bei einem Cookie muss der böse dir schon java script code per XSS Angriff unterschieben, um das Cookie zu stehlen, das ist schon komplizierter. (Mal davon ausgegangen, er kann nicht direkt die Verbindung mitlesen.)

Achja, und warum irgendwas, was mit dem Passwort zusammenhängt in das Cookie tuen? Man kann doch auch bei hier eine zufällige Session-ID generieren, und die halt per Cookie übergeben, und nicht per URI.

RE: Session Passwort 2008-02-14 15:59
Popcorn
Das ist alles richtig, aber Du bist leider an meinem Posting vorbei. ;) Zum Beispiel schrieb ich bereits, dass ich die Daten nur per Cookie übermittel. Außerdem geht es mir nicht um https oder nicht. Ich kann es noch mal umformulieren, um es Deinem letzten Absatz anzuschließen: Wie zufällig ist die PHP-SessionID? So zufällig, dass sie selbst als Session-Passwort dienen kann oder ist ein eigenes notwendig. Um das mal zu veranschaulichen: Wenn sie schlicht fortlaufend wären, müsste der Angreifer sich ja nur einmal eine eigene besorgen und etwas mit den vorherigen IDs herumprobieren. Vielleicht gibt es sogar noch andere Aspekte. Darum drehen sich meine Gedanken.

Übrigens wegen der Geschichte mit dem XSS gibt es schon seit langer Zeit eine Option, dass der Browser Cookiedaten nicht bei Script-Aufrufen herausrückt. Leider unterstützt das derzeit glaube ich nur der IE.

RE: Session Passwort 2008-02-14 17:51
Anonymer User
Eine vom Server generierte nicht aufeinander aufbauende Zufallszahl sollte ausreichend sein. Das mit dem Passwort ist ne gaaanz schlechte Idee, vertrau mir ;)

RE: Session Passwort 2008-02-14 18:48
Popcorn
Eine vom Server generierte nicht aufeinander aufbauende Zufallszahl sollte ausreichend sein.
[22] Richtig, wenn sie zufällig genug ist. Daher immer noch meine Frage vom Anfang: Nehm ich hier mein Session-Passwort oder ist die PHP-Session-ID zufällig genug generiert.

Das mit dem Passwort ist ne gaaanz schlechte Idee, vertrau mir ;)
Dir ist aber schon klar, das ein Session-Passwort nicht wirklich anders als eine Zufallszahl ist und Du entweder nicht richtig gelesen hast oder Deinem gerade zuvor geschriebenen Satz widersprichst? :-)

RE: Session Passwort 2008-02-14 19:59
TriPhoenix
Bei nem Blick über den Quellcode spielen rein:

- Remote-Adresse
- Zeit in Sekunden und Mikrosekunden
- eine Pseudozufallszahl
- eine Entropiedatei, falls konfiguriert
- als Hashfunktion MD5 oder SHA1

Ich denke die tatsache, dass es gehasht ist und eine Pseudozufallszahl dahinter steckt, machts tendenziell schonmal schwierig.

RE: Session Passwort 2008-02-14 20:41
Muelli
Die Frage ist doch auch insofern irrelevant, da du deine PHP Session IDs prinzipiell selber bauen kannst und dann so viel Zufall mit reinspielen lassen kannst, wie du willst…

RE: Session Passwort 2008-02-14 20:55
TriPhoenix
Die Frage ist doch auch insofern irrelevant, da du deine PHP Session IDs prinzipiell selber bauen kannst und dann so viel Zufall mit reinspielen lassen kannst, wie du willst…

Naja, effektiv läuft doch die Frage darauf hinaus, ob man das muss oder ob das vorhandene gut genug ist. Ein Session-Passwort wäre ja nichts anderes.

RE: Session Passwort 2008-02-14 21:06
Popcorn
Genau, das war einer der beiden Hauptpunkte. Der andere war halt "Habe ich noch was übersehen?". Also danke für die Antwort Tri. :-)