Challenge Handshake Authentication Protocol (CHAP)


Das Challenge Handshake Authentication Protocol (CHAP) ist ein Authentifizierungsprotokoll, das wie PAP, im Rahmen von Point-to-Point Protocol (PPP) eingesetzt wird. Statt, dass wie bei PAP aber das Passwort direkt vom Client an die Ressource übertragen wird, setzt man bei CHAP auf einen Passwort-Hash gekoppelt mit einer Challenge.

Ablauf

  1. Client initiiert Verbindung zu einer Ressource, die eine Authentifizierung mittels CHAP verlangt und mit einem Zufallswert antwortet (Challenge).
  2. Mittels einer one-way Hashfunktion bildet der Client nun aus diesem Zufallswert und dem Passwort einen Hashwert und schickt diesen der Ressource.
  3. Die Ressource errechnet mit dem (im Klartext) hinterlegten Passwort und der Zufallszahl ebenfalls einen Hashwert und vergleicht diesen mit dem erhaltenen Hashwert vom Client. Sollte beide Werte übereinstimmen, ist die Authentifizierung erfolgreich.
CHAP Ablauf im Schaubbild

Sicherheit

Wird nun die Kommunikation zwischen Client und Ressource abgehört, erhält der Angreifer nur den Hashwert. Aus diesem kann dank Einwegfunktion nur unter sehr viel Aufwand die Benutzerdaten extrahiert werden. Anfällig ist aber CHAP gegenüber Man-in-the-Middle-Angriffe, bei denen der Angreifer sich zwischen Client und Ressource schaltet und zum Client, falls dieser sowohl PAP als auch CHAP anbietet, eine unsichere PAP-Verbindung aufbaut, während er mit der Ressource eine CHAP-Authentifizierung (mit den über PAP erhaltenen Benutzerdaten) durchführt.

Problematisch ist auch, wenn das Passwort auf der Ressource im Klartext gespeichert ist. Sollte ein Angreifer der Zugriff auf die Ressource gelingen, könnte er alle darauf abgespeicherten Passwörter abgreifen.

Im Vergleich zu PAP wird das Passwort nicht mehr im Klartext übertragen (Passwort bleibt aber auf dem Server im Klartext abgespeichert) und durch das nicht wiederholte verwenden der Challenges, sind Wiederholungsangriffe nicht möglich.

Artikel vom 26.02.2017