Microsoft a mis au point une version spécifique de CHAP, baptisée MS-CHAP (Microsoft Challenge Handshake Authentication Protocol version 1, noté parfois MS-CHAP-v1), améliorant globalement la sécurité.
En effet, le protocole CHAP implique que l'ensemble des mots de passe des utilisateurs soient stockés en clair sur le serveur, ce qui constitue une vulnérabilité potentielle.
Ainsi MS-CHAP propose une fonction de hachage propriétaire permettant de stocker un hash intermédiaire du mot de passe sur le serveur. Lorsque la machine distante répond au défi, elle doit ainsi préalablement hacher le mot de passe à l'aide de l'algorithme propriétaire.
Le protocole MS-CHAP-v1 souffre malheureusement de failles de sécurité liées à des faiblesses de la fonction de hachage propriétaire.
La version 2 du protocole MS-CHAP, baptisée MS-CHAP-V2, a été définie en Janvier 2000 dans la RFC 2759. Cette nouvelle version du protocole définit une méthode dite « d'authentification mutuelle », permettant au serveur d'authentification et à la machine distante de vérifier leurs identités respectives. Le processus d'authentification mutuelle de MS-CHAP v2 fonctionne de la manière suivante :