- Challenge Handshake Authentication Protocol
-
Das Challenge Handshake Authentication Protocol (CHAP) ist ein Authentifizierungsprotokoll, das im Rahmen von Point-to-Point Protocol (PPP) eingesetzt wird. PPP ist auf der Sicherungsschicht in der Internetprotokollfamilie angesiedelt.
CHAP ist im RFC 1994 spezifiziert. Im Gegensatz zum Vorläufer Password Authentication Protocol (PAP) wird beim CHAP mehr Wert auf die Sicherheit bei der Übertragung der Passwörter gelegt. Die Authentifizierung erfolgt in drei Schritten:
- Ein Client initiiert eine Verbindung zu einem Einwahlserver, und dieser verlangt eine Authentifizierung mittels CHAP. Dabei wird ein zufälliger Wert (die Challenge) an den Client übertragen, der sich authentifizieren muss.
- Der Client bildet aus der Zufallszahl und dem Passwort einen Hashwert mittels einer one-way Hashfunktion (zum Beispiel MD5) und überträgt diesen an den Einwahlserver. Unter der Annahme, dass die verwendete Hashfunktion eine Einwegfunktion ist, lässt sich das Passwort nicht wieder errechnen.
- Der Einwahlserver errechnet ebenfalls einen Hashwert aus der Zufallszahl und dem bei ihm (im Klartext) hinterlegten Passwort. Wenn dieser mit dem vom zu authentifizierenden Rechner gesendeten Wert übereinstimmt, ist die Authentifizierung erfolgreich.
In einem zufälligen Abstand sendet der Einwahlserver erneut einen zufälligen Wert (die Challenge) an den Client, und die Schritte 1–3 werden wiederholt.
Ein Angreifer, der die Kommunikation mithört, empfängt somit nur den zufälligen Wert und den Hashwert. Normalerweise kann er damit nichts anfangen, da das Passwort nicht übertragen wird. Dennoch kann ein Angreifer einen Man-In-The-Middle-Angriff durchführen, wenn auf Client-Seite sowohl CHAP als auch PAP aktiviert sind. Server und Client handeln zum Beispiel CHAPv2 aus, ein Angreifer könnte die Verbindung unterbrechen und dem Client sagen, dass der Server PAP erwartet. Der Client schickt daraufhin ein PAP-ACK an den Angreifer und dieser ein CHAPv2-ACK an den Server. Anschließend wird ein Challenge-REQ vom Server geschickt, und der Client schickt dem Angreifer Benutzerkennung und Passwort, von welchem dann die Challenge-RES kommt. Der Server nimmt dies entweder an oder lehnt es ab (ACK, NACK).
Neben der im RFC beschrieben CHAP-Implementation existieren noch die Varianten MS-CHAPv1 (RFC 2433) und MS-CHAPv2 (RFC 2759) der Firma Microsoft.
Weblinks
- RFC 1994 – PPP Challenge Handshake Authentication Protocol
- Beschreibung auf TCP/IP-Info (mit detaillierter Grafik)
Kategorie:- Netzwerkprotokoll (Sicherungsschicht)
Wikimedia Foundation.