Dies ist die Microsoft-Version des Challenge-Handshake-Authentication-Protocol, einer Authentifizierungsmethode, die zum Beispiel beim Zugriff auf das WLAN mittels RADIUS Verwendung findet. Ein CHAP versucht die Übertragung des Usernamen und des Passworts im Klartext bei der Authentifizierung zu vermeiden. Dies geschieht, indem der Server dem Client eine Challenge (Rechenaufgabe, konkret ein MD5-Hash) gibt und ihm für diese Challenge eine Zufallszahl sendet. Der Client und der Server berechnen jeweils das Ergebnis aus einer Kombination aus der Zufallszahl und dem gespeicherten Passwort. Der Client schickt sein Ergebnis an den Server, der dieses mit seinem Ergebnis verglicht. Sind die Ergebnisse übereinstimmend, dann waren es die verwendeten Passwörter mit an Sicherheit grenzender Wahrscheinlichkeit auch.
MS-CHAPv1 wurde bereits für Windows 95 entworfen und später bei der Entwicklung von PPTP als MS-CHAPv2 erneuert. Seine Besonderheit ist die gegenseitige Authentifizierung durch Client und Server. Also muss sich nicht nur der Client gegenüber dem Server ausweisen, sondern auch der Server muss dem Client beweisen, dass er auch wirklich über dessen Benutzerdaten verfügt. Der Schlüssel zur Verschlüsselung wird vom Passwort und vom Challenge String abgeleitet. Auf diese Weise kommt bei jeder Verbindung ein anderer Schlüssel zum Einsatz. Und es wird in beide Richtungen unterschiedliche Schlüssel verwendet.
Im Rahmen der Suche nach Unzulänglichkeiten der Sicherheit von PPTP wurde eine Möglichkeit gefunden MS-CHAPv2 zu knacken (https://penguin-breeder.org/pptp/download/pptp_mschapv2.pdf). Über die Nachstellung des WLANs mit einem gleicher SSID und dortiger Bereitstellung eines gefälschten RADIUS-Servers. Danach kann der Server brute force testen. MSCHAP in PEAP einzubetten hilft, sofern der Client das CA-Zertifikat des Servers kennt und erfolgreich verifiziert. Will man ganz sicher gehen muss man auf EAP-TLS ausweichen.
Zuletzt bearbeitet am 21. April 2020 von Adrian Kowar