Hallo Martin,
Bei einem Login-System zum Beispiel, lass ich bevor das Formular abgeschickt wird, name und pw noch verschlüsseln, erst dann wird das Formular weiter abgeschickt.
das erhöht aber nicht die Sicherheit. Gut, wenn einer den Datenverkehr abhört, kann er aus den verschlüsselten Daten vielleicht nicht so ohne weiteres das Original-Passwort bzw. den Original-Usernamen ablesen.
Aber das muss er ja auch gar nicht. Es genügt ja, wenn er genau diese verschlüsselten Bröckchen wieder an den Server schickt, um sich als berechtiger User auszugeben und Mist zu machen. Ob ich in einem Request nun im Klartext ?user=Manni&pw=trulla übertrage oder ?user=G7E76HLXD?pw=K4F04H, ist dem Quertreiber doch egal.
Ja und nein. Wenn man Challenge-Response mit Zufallswerten einsetzt, dann nicht unbedingt.
Beispiel: Auf dem Server liegen sowohl Username als auch Passwort im Klartext vor.
Der Server generiert beim Anzeigen des Loginformulars einen zufälligen String, den er sich auch in der Session merkt. Der Zufallsstring wird an den Client gesendet.
Wenn JS aktiv ist, entfernt JS vor dem Submit das Passwort aus dem Passwortfeld und füllt ein Hidden-Feld nach folgedem Schema auf: Hiddenfeld = Hashfunktion (Zufallsstring + Username + Passwort).
Der Server bekommt die Antwort, kennt bei sich in der Session noch den Zufallsstring und kann mit der Information, welcher Benutzername es ist, den gleichen Hashwert erzeugen. Diesen vergleicht er mit dem, den er vom Client bekommen hat. Stimmen sie überein, wurde das Passwort korrekt eingegeben.
Wenn der Server jedes Mal einen anderen Zufallswert schickt, dann kann ein Angreifer sich NICHT erfolgreich einloggen.
ALLERDINGS kann ein Angreifer - wenn er schon mitlesen kann - weiterhin die komplette andere Kommunikation mitlesen.
Sprich: Dieses Verfahren erhöht die Sicherheit nur dann, wenn die Zugangsdaten VIEL wichtiger sind als die Daten, die eigentlich übertragen werden. Dies kann zum Beispiel der Fall sein, wenn man einen Account auf einem Server hat, der auch für z.B. SSH gilt, den man aber auch zum Abrufen der Mails über ein Webmailinterface benutzt. Natürlich wäre die Verwendung von SSL für das Webmailinterface die VIEL BESSERE Lösung, aber manchmal steht einem das nicht zur Verfügung und da ist dieses bisschen zusätzliche Sicherheit durch Challenge-Response unter Umständen bereits ausreichend, um einen Unterschied zu machen.
Viele Grüße,
Christian