MS-CHAP - Microsoft CHAP
Das Microsoft Challenge Handshake Authentication Protocol, kurz MS-CHAP, ist ein Authentifizierungsverfahren. MS-CHAP wurde von Microsoft speziell für Windows NT, Windows 2000, Windows 95 und höher entwickelt. Dabei muss man zwischen der Version 1 und 2 unterscheiden. Sie wurden für unterschiedliche Zwecke entwickelt und sind deshalb zueinander inkompatibel. MS-CHAPv1 ist für die Authentifizierung von DFÜ-Verbindungen gedacht und entspricht in weiten Teilen dem standardmäßigen CHAP. MS-CHAPv2 ist ein Authentifizierungsverfahren für virtuelle private Netzwerkverbindungen (VPN).
MS-CHAPv2
Für das Tunneling-Protokoll PPTP hat Microsoft mit MS-CHAPv2 ein eigenes Authentifizierungsverfahren entwickelt. Seine Besonderheit ist die gegenseitige Authentifizierung durch Client und Server. Der Kryptografieschlüssel besteht aus dem Passwort und einem echten zufälligen Wert (Challenge String). Je ein Kryptografieschlüssel wir für Sende- und Empfangsrichtung verwendet. Dadurch ist die Sicherheit für RAS-Verbindungen deutlich höher.
MS-CHAPv2 unterstützt nur VPN-Verbindungen. Bei normalen DFÜ-Verbindungen kann MS-CHAPv2 nicht verwendet werden.
Ablauf der Authentifizierung bei MS-CHAPv2
MS-CHAP arbeitet wie ein 3-Wege-Handshake mit wechselseitiger Authentifizierung. 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.
- Der Server fordert den Client zur Authentifizierung auf (Challenge). Die Aufforderung besteht aus einer Sitzungs-ID (Session Identifier) und einem zufälligen Wert, dem Peer Challenge String.
- Der Client bildet aus dem Peer Challenge String, der Sitzungs-ID und seinem Passwort einen Hashwert (z. B. mit SHA-1). Dann schickt er Benutzername, einen eigenen zufälligen Wert und den gebildeten Hashwert an den Server zurück.
- Der Server prüft die Antwort und sendet eine Annahmebestätigung oder die Ablehnung. Die Annahme enthält die authentifizierte Antwort der gesendeten Challenge, den Peer Challenge String, die verschlüsselte Antwort des Clients und das MD4-gehashte Passwort.
- Der Client prüft die Antwort. Ist die Antwort fehlerfrei wird die Verbindung genutzt. Wenn nicht, dann bricht der Client die Verbindung ab.