Challenge-Handshake Authentication Protocol — Wikipédia

Challenge Handshake Authentication Protocol (CHAP) est un protocole d'authentification pour PPP à base de challenge, ce qui le rend bien plus sûr que son prédécesseur PAP. Ce protocole est défini dans la RFC 1994. Il est aussi utilisé par le protocole iSCSI afin qu'Initiator et Target iSCSI s'authentifient éventuellement mutuellement.

L'objectif de CHAP est que le pair s'authentifie auprès d'un authentificateur sans échange de mot de passe en clair sur le réseau et sans que l'échange puisse être rejoué par un tiers à l'écoute. La contrainte est que chaque partie partage un « secret » (mot de passe) commun. Microsoft a développé la variante MS-CHAP qui supprime cette contrainte.

Dès le début de la connexion, CHAP réclame la preuve de l’identité du correspondant, en lui demandant de chiffrer une information, le défi (« challenge »). Le correspondant ne peut relever le défi que s’il possède effectivement la clé unique et secrète, le « secret », qu'ils partagent (ceci peut être un mot de passe).

  1. Après l'établissement de la connexion, l'authentificateur envoie le défi au pair. C'est une valeur d'au plus 255 octets générée aléatoirement ce qui lui confère le caractère non rejouable.
  2. Le pair répond avec une valeur calculée sur la base du défi et du « secret » en utilisant une fonction de hachage à sens unique, telle que MD5. Concrètement il concatène le secret et le défi et calcule l'identifiant (par exemple MD5) de l'ensemble. Il envoie la réponse à l'authentificateur.
  3. L'authentificateur effectue la même opération (ce qui nécessite la connaissance du secret) et compare avec le résultat reçu. Il accepte ou refuse la connexion en le notifiant au pair.
  4. À intervalle régulier, CHAP renvoie un nouveau défi au pair.

L'utilisation du protocole CHAP implique que la base de mots de passe soit stockée en clair sur l'authentificateur, ou chiffré avec un protocole réversible.