Rechnernetze
Home Nach oben Stichworte

Authentisierung durch Passwörter

Um sich zu authentisieren, können zwei Partner A und B Passwörter austauschen.

A erzeugt Ek(PA) Þ B
A Ü Ek(PB) erzeugt von B

Ein Angreifer Z kann sich dazwischen schalten und mit A und B Schlüssel kA bzw. kB nach dem Diffie-Hellman-Verfahren vereinbaren. Der Austausch von Passwörtern ermöglicht keine eindeutige Identifizierung der jeweiligen Gegenstelle.

A erzeugt EkA(PA) Þ Z erzeugt PA=DkA(EkA(PA)) und EkB(PA) Þ B
A Ü EkA(PB) erzeugt von Z aus PB=DkB(EkB(PB)) Ü EkB(PB) erzeugt von B

Der Austausch von Passwörtern kann jedoch einfach sicher gemacht werden, indem sich A und B abwechselnd jeweils die Hälften der beiden verschlüsselten Passwörter Ek(PA) bzw. Ek(PB) senden.

A erzeugt Ek(PA)|links Þ B
A Ü Ek(PB)|links erzeugt von B
A erzeugt Ek(PA)|rechts Þ B
A Ü Ek(PB)|rechts erzeugt von B

B sendet die erste Hälfte seines verschlüsselten Passworts erst, nachdem er die erste Hälfte von A's verschlüsseltem Passwort erhalten hat. A sendet die zweite Hälfte seines verschlüsselten Passworts erst, nachdem er die erste Hälfte von B's verschlüsseltem Passwort erhalten hat. Und schließlich sendet B die zweite Hälfte seines verschlüsselten Passworts erst, nachdem er die zweite Hälfte von A's verschlüsseltem Passwort erhalten hat.

Hat sich ein aktiver Angreifer Z in die Leitung eingeschaltet und mit A und B jeweils einen eigenen Schlüssel vereinbart, so kann Z zwar einen geheimen Text entschlüsseln und ihn neu verschlüsselt an B senden,

A erzeugt EkA(H) Þ

EkB(H) erzeugt von Z aus PB=DkB(EkB(H))

Þ

B,

aber die verschlüsselten Passworthälften können nicht ohne die jeweilige andere Hälfte entschlüsselt werden.

A erzeugt EkA(PA)|links Þ Z erzeugt ?=DkA(EkA(PA)|links) und EkB(?) Þ B
A Ü Z erzeugt ?=DkB(EkB(PB)|links) und EkA(?) Ü EkB(PB)|links erzeugt von B
A erzeugt EkA(PA)|rechts Þ Z erzeugt ?=DkA(EkA(PA)|rechts) und EkB(?) Þ B
A Ü Z erzeugt ?=DkB(EkB(PB)|rechts) und EkA(?) Ü EB(PB)|rechts erzeugt von B

Kann garantiert werden, dass die Schlüssel kA und kB verschieden sind, so kann erst nach Erhalt der vollständigen verschlüsselten Passwörter an der Gegenstelle das jeweilige Passwort dechiffriert werden. Damit kann die Verbindung authentisiert werden. Allerdings kann ein Lauscher natürlich die Passwörter erlauschen, so dass diese nach einmaligem Gebrauch "verbrannt" sind.

Dieses lässt sich nur vermeiden, indem das Passwort "verschlüsselt" geschickt wird, beispielsweise durch eine Hashfunktion. Die berechnet aus dem Passwort und einem Einmal-Tag, z.B. aktueller Uhrzeit/Datum, einen Hashwert, und sendet statt des Passworts diesen Hashwert, zusammen mit dem Einmal-Tag, verschlüsselt mit dem neuen Schlüssel. Der Empfänger kennt das Passwort und kann die Hashberechnung nachvollziehen. Die Ergebnisse müssen übereinstimmen. Ein Angreifer findet nur den Hashwert und kann aus diesem und dem Einmal-Tag nicht das Passwort berechnet.