CHAP - Challenge Handshake Authentication Protocol
Das Challenge Handshake Authentication Protocol, kurz CHAP, ist ein Authentifizierungsverfahren über das Point-to-Point-Protocol (PPP). CHAP wird verwendet, um sich per PPP in eine Computernetzwerk einzuwählen und sich dort mit Benutzername und Passwort zu authentifizieren. CHAP wurde entwickelt, um die Sicherheitsrisiken des Authentifizierungsverfahrens PAP zu verringern.
CHAP ist ein Verfahren, das bei der Anmeldung an den Internet-Zugang beim Internet-Provider (ISP) per Modem oder ISDN-Adapter verwendet wird. Neben CHAP existieren noch MS-CHAP von Microsoft in der Version 1 und 2.
Ablauf der Authentifizerung mit CHAP
Dieses Verfahren wird als 3-Wege-Handshake bezeichnet. Der Ablauf bei CHAP wird vom Server gesteuert.
- Hat sich der Client eingewählt wird er vom Server zur Authentifizierung aufgefordert. Der Server schickt dazu einen zufälligen Wert (Challenge) an den Client.
- Der Client bildet aus der Zufallszahl und dem Passwort einen Hashwert (z. B. mit MD5) und überträgt ihn an den Server (Response).
- Der Server bildet ebenfalls aus der Zufallszahl und dem hinterlegten Passwort einen Hashwert. Stimmt der Hashwert des Clients mit dem des Servers überein wird die Authentifizierung akzeptiert (Accept). Wenn nicht, wird sie abgelehnt (Reject).
Da CHAP in der Regel als Teil in den PPP-Verbindungsaufbau eingebettet ist, wird nach erfolgreicher Authentifizierung der PPP-Verbindungsaufbau fortgesetzt. Wie CHAP in den Verbindungsaufbau einer Punkt-zu-Punkt-Verbindung eingebettet ist, kann man im PPP-Verbindungsaufbau sehr schön sehen.
Während der PPP-Verbindung können die Benutzerdaten periodisch geprüft werden. Man bezeichnet diesen Vorgang als Re-Authentifizierung.
Sicherheitsrisiken von CHAP
Wird die Verbindung abgehört bekommt der Lauscher nur den Hashwert, aber nicht das Passwort. Aus dem Hashwert lassen sich die Benutzerdaten nur mit viel Aufwand ermitteln.
Trotzdem kann ein Angreifer die Benutzerdaten durch eine Man-in-the-Middle-Attacke ausspähen. Dabei schaltet sich der Angreifer zwischen Client und Server. Er gaukelt dem Client eine PAP- und dem Server eine CHAP-Authentifizierung vor.
Was an CHAP unschön ist, dass das Passwort im Server unverschlüsselt gespeichert sein muss. Denn nur dann kann der Server den Hashwert bilden. Das bedeutet, dass für die beteiligten Systeme scharfe Sicherheitsrichtlinien vorhanden sein müssen.