Sven Rautenberg: SHA1 Verschlüsselung: Verständnisfrage

Beitrag lesen

Moin!

Ich beschäftige mich für ein Projekt gerade mit dem Verschlüsseln von Zugangsdaten. Dazu möchte ich statt "Benutzername + Passwort + Hostname" einfach den zugehörigen Hash-Wert zur Kontrolle an den Server übermitteln.

Du willst also die Sicherheit erhöhen. Wie? [...]
Sicherheit erhälst du bei Logins nur durch Verschlüsselung, beispielsweise mit SSL. Alles andere ist Spielkram, macht das Verfahren komplizierter, fehleranfälliger, benutzerunfreundlicher, aber kein bißchen sicherer.

Quatsch. Schonmal von CHAP gehört?

Was hilft dir dein CHAP gegen einen Angriff, der einfach Usernamen und Passworte ausprobiert?

Das ist doch meine Argumentation: Was hilft es, das gesamte Konstrukt NACH dem Login kompliziert sicher zu machen (wobei es eine simple Methode dafür gibt, die SSL heißt), wenn aber das Login selbst nicht sicher ist.

Der Angriff auf vom Benutzer definierbare Passworte ist immer noch einer mit der höchsten Erfolgsquote.

Im Javascrpit wird dann sha1 von user+pass+challenge berechnet und dann rausgesendet. Den challenge kennt der Server (er hatte ihn ja generiert und gesendet) und kann damit die angaben überprüfen. Um ihn zu unterstützen wird noch user mitgesendet.

Und genau das kann ich, da dein Vorgehen bekannt ist, mit beliebigen generierten oder bekannten Usernamen und Passworten ebenfalls machen.

Dein CHAP erhöht also lediglich die Sicherheit beim Belauschen des Passwortes, nicht die Sicherheit gegen Einloggen. Und es enthält keinerlei Sicherheit gegen Mithören der Verbindung und Abgreifen der danach transferierten Dateninhalte.

PS: Wenn man das Passwort auf dem Server nicht im Klartext gespeichert hat, sondern z.B. mit md5 gecrypted, erhöht das die Sicherheit in diesem Szenario eigentlich auch nicht mehr.

Was die Datenübermittlung angeht, sicher nicht. Was die Datenspeicherung auf dem Server angeht, selbstverständlich.

Und es erfordert dann zusätzlich, dass das Passwort in deinem CHAP natürlich identisch behandelt wird.

Und zu irgendeinem Zeitpunkt muß zwangsläufig auch einmal ein unverschlüsseltes Passwort übermittelt werden: Wenn es geändert werden soll!

Ich bleibe dabei: Es ist unsinnig, sich komplizierte Session- oder Loginpasswortverschleierungsmechanismen auszudenken. Wenn man Sicherheit haben möchte, muß man auf Standards zurückgreifen, und die lauten: 1. SSL, 2. Sichere Benutzerpassworte. SSL schließt das Abhören von Passworten aus, und ordentliche Passworte verhindern den direkten Angriff durch Ausprobieren.

Deinen unfreundlichen Angriff mit "Quatsch" schiebe ich mal auf die unchristliche Uhrzeit, zu der man eigentlich keine gesalzenen Postings mehr verfassen sollte.

- Sven Rautenberg

--
"Love your nation - respect the others."