Moin!
Danke für Deine Antwort. Scheint mal wieder die Ähnlichkeit des Gegensätzlichen zum Tragen gekommen. Ist mir alles bekannt, ich versuche im Gegenteil die Schwachstellen der etablierten Methoden auszumerzen.
Meinst du nicht, dass sowas von fähigeren Fachleuten nicht schon längst erledigt worden wäre, wenn es denn ginge?
Wenn man eine Anmeldefunktion sinnvoll erstellt hat, dann werden per HTTP die Anmeldedaten exakt _einmal_ vom Client zum Server übertragen. ...
Genau : unverschlüsselt ( meist im "Post"-Anhang des Http-Requests ) übers Netz. Und dann werden Server-seitig oft "niedliche" Bemühungen gestartet, über Fingerabdruck-Funktionen das in den Brunnen gefallene Kind wieder zu heben. So kommt der Mann in der Mitte aber viel zu einfach an Kennwörter als Reintext ran.
Tut mir leid, das ist mir zu wenig intelligent ! Mit JavaScript kann ich problemlos einen Md5-Schlüssel des Kennworts erzeugen. Damit wird schon mal vermieden, das Kennwort auch nur einmal als Reintext zu übertragen.
Das bringt dir serverseitig aber wenig, denn der Server nimmt dann ja nur das MD5 entgegen - als etwas komplexeres Klartextpasswort. Das abgehört und wieder benutzt werden kann, in einer manipulierten Clientumgebung.
Noch besser : Ich kann das Kennwort gemeinsam mit einem Server-seitig gelieferten Zufalls-Schlüssel vermengen und davon den Fingerabdruck übers Netz senden. Was der Mann in der Mitte in die Hände bekäme, wäre dann nur für die aktuelle Sitzung gültig - und würde für eine Wieder-Anmeldung rein gar nichts bringen.
Der Mann in der Mitte würde sowohl den kompletten Generierungsmechanismus wie auch den serverseitigen Zufallswert kennen und könnte alles beides auch manipulieren. Replay-Attacken sind typische Angriffsvektoren.
Als drittes könnte ich auch jede Manipulation der Daten und jeden Sitzungs-Diebstahl vermeiden - eben wenn ich nur die Möglichkeit hätte, in JavaScript einen Wert dauerhaft, aber ausschließlich lokal verfügbar zu machen ...
Du überschätzt dich maßlos. Wenn man sowas könnte, wäre es bereits erfunden, denn die Preise und Umständlichkeiten von SSL-Zertifikaten sind vielen Leuten ein Dorn im Auge.
Wenn's dir darum geht, Passwörter nicht im Klartext zu übertragen: HTTP-Authentifizierung "Digest" anstatt "Basic" sorgt dafür.
- Sven Rautenberg