Définition de l'authentification CHAP
Qu'est-ce que le protocole CHAP ?
Le protocole CHAP (Challenge Handshake Authentication Protocol) est un protocole d'authentification élaboré par l'Internet Engineering Task Force (IETF). Il servait à l'origine à établir des sessions authentifiées par le protocole point à point (PPP), mais il est aussi utilisé par RADIUS et Diameter.
L'authentification CHAP est plus sécuritaire que la procédure PAP (Password Authentication Procedure) — qui envoie les mots de passe en clair — et offre une protection contre le rejeu. Elle est toutefois potentiellement vulnérable aux attaques sur le chemin et par dictionnaire, et elle nécessite une clé prépartagée pour l'authentification.
Comment fonctionne l'authentification CHAP ?
Le protocole CHAP utilise une poignée de main en trois temps pour établir une session authentifiée entre un utilisateur et un serveur. Avant de pouvoir utiliser CHAP, le client et le serveur doivent établir un secret partagé qui servira au processus défi-réponse de CHAP.
Les trois étapes de l'authentification CHAP sont :
- Paquet de défi : le paquet de défi est envoyé par le serveur et comprend une valeur d'identifiant (qui s'incrémente), une valeur de défi aléatoire et un champ de nom servant à retrouver le secret partagé.
- Paquet de réponse : après avoir reçu le paquet de défi, le client calcule la valeur de réponse en utilisant une fonction de hachage à sens unique pour hacher la valeur de défi, l'identifiant et le secret partagé. Le client renvoie ensuite ce condensé, l'identifiant et le nom au serveur.
- Paquet de succès ou d'échec : lorsque le serveur reçoit le paquet de réponse, il calcule le même condensé à partir du défi, de l'identifiant et du secret partagé. Si le résultat correspond au condensé du paquet de réponse, le serveur envoie un paquet de succès. Sinon, il envoie le paquet d'échec.
Si le processus d'authentification réussit, l'utilisateur est authentifié. Le serveur enverra aussi périodiquement des défis tout au long de la session pour vérifier qu'il communique toujours avec l'utilisateur authentifié.
Avantages du protocole CHAP
CHAP offre quelques avantages par rapport à des protocoles d'authentification semblables (comme PAP), notamment :
- Sécurité : CHAP offre une sécurité supérieure à PAP, qui envoie les informations d'authentification en clair plutôt que d'utiliser une fonction de hachage.
- Protection contre le rejeu : l'identifiant incrémentiel et la valeur de défi aléatoire de CHAP empêchent un attaquant de rejouer la réponse légitime d'un utilisateur légitime pour obtenir l'accès.
Inconvénients de CHAP
Cependant, CHAP a aussi ses désavantages, notamment :
- Clé prépartagée : CHAP dépend d'une clé prépartagée pour authentifier les utilisateurs. Cela peut limiter l'évolutivité du protocole.
- Authentification unidirectionnelle : CHAP authentifie le client auprès du serveur, mais n'offre pas d'authentification mutuelle.
- Vulnérabilité aux attaques sur le chemin : CHAP est vulnérable aux attaques sur le chemin, dans lesquelles un attaquant intercepte les paquets CHAP entre un client et un serveur et les utilise pour s'authentifier auprès du serveur.
- Vulnérabilité aux attaques par dictionnaire : si les paquets CHAP ne sont pas chiffrés, un attaquant peut intercepter les messages CHAP et effectuer une attaque par dictionnaire ou une recherche par force brute pour découvrir le secret partagé.
Conclusion
CHAP est un protocole d'authentification utilisé à l'origine par PPP et adopté depuis par d'autres protocoles. Il utilise un processus en trois étapes pour authentifier les utilisateurs et est plus sécuritaire que PAP, mais il a aussi ses inconvénients, comme sa vulnérabilité aux attaques sur le chemin et sa dépendance à une clé prépartagée pour l'authentification.
L'équipe KZero
Découvrez d'autres contenus instructifs rédigés par l'équipe compétente de KZero dans notre section de blogues et de guides.