Wie Thilo sagte, aber ich werde ein wenig weiter :)
Ein Webserver ist staatenlos erklären! Dies ist wirklich das Problem des Authentifizierungsfalls. Sie können sich nicht einfach anmelden und dann sagen "Von nun an ist dieser Benutzer angemeldet" - Sie benötigen eine Möglichkeit, um herauszufinden, welcher Benutzer dieses Mal eine neue Site anfordert.
Eine gängige Methode hierfür ist die Implementierung von Sitzungen. Wenn Sie Ihren Netzwerkverkehr bei der Anmeldung per Paket-Sniff erfassen und dann auf einer Website surfen, bemerken Sie häufig Folgendes:
Anmelden: Sie werden Ihren Benutzernamen und Ihr Passwort an den Server übermitteln. Völlig unverschlüsselt! (SSL/HTTPS wird diese Anforderung verschlüsseln, um Man-in-the-Middle-Angriffe zu vermeiden)
Antwort: Sie erhalten eine zufällig generierte Zeichenfolge mit vielen seltsamen Zeichen. Diese werden normalerweise in einem Cookie gespeichert.
Anforderung einer Site, auf die Sie Zugriff haben sollten: Sie werden die zufällig generierte Zeichenfolge an den Server übertragen. Der Server sucht diese Zeichenfolge und stellt fest, dass sie mit Ihrer Sitzung verknüpft ist. Dadurch kann der Server Sie identifizieren und Ihnen Zugriff auf Ihre Websites gewähren.
.. Jetzt ist HTTP in sich nicht sicher. Das bedeutet, dass Ihr Passwort und Ihr Session-Cookie (der zufällig erzeugte String) vollständig unverschlüsselt übertragen werden. Wenn jemand Zugriff auf Ihren Datenverkehr hat (Trojaner, Router-Hijacking, was auch immer), kann er Ihren Benutzernamen/Ihr Passwort sehen, wenn Sie sich einloggen, wenn Sie nicht HTTPS verwenden. Dies gewährt ihm Zugriff auf Ihre Site, bis Sie Ihr Passwort ändern (es sei denn, er ändert es zuerst: P).In den übrigen Anfragen wird er in der Lage sein, Ihren Sitzungscookie zu erhalten, was bedeutet, dass er Ihre Identität für den Rest dieses Cookie-Lebenszyklus stehlen könnte ('bis Sie sich abmelden oder die Sitzung auf dem Server abläuft).
Wenn Sie sich sicher fühlen möchten, verwenden Sie HTTPS. Realistisch gesehen ist es jedoch viel einfacher, einen Keylogger in Ihren Computer zu integrieren, als Ihren gesamten Traffic zu lesen :)
(Oder wie andere darauf hingewiesen haben, verwenden Sie Cross-Site-Scripting zum Lesen Ihres Session-Cookies)
> "Realistischerweise ist es jedoch viel einfacher, einen Keylogger in Ihren Computer zu integrieren, als Ihren gesamten Datenverkehr zu lesen." Nun, mit drahtlosen Netzwerken scheint es sehr machbar (denke Konferenzen oder Cafés). – Thilo
Wahr, dass .. Vor allem an öffentlichen Hotspots – cwap
@Meeh: Korrektur in vierten Absatz: SSL wird nicht Hash, wird es verschlüsseln. Der Unterschied liegt hauptsächlich darin, dass SSL auf Grund des Leakings des Entschlüsselungsschlüssels anfällig für eine andere Reihe von Angriffen ist, während ein Hash nur dann reversibel ist, wenn der Hash-Algorithmus als schwach erkannt wird. –