L'authentification CHAP utilise la notion de défi et de réponse, ce qui signifie que le pair (l'authentificateur) défie l'appelant (l'authentifié) de prouver son identité. Le défi comprend un nombre aléatoire et un ID unique généré par l'authentificateur. L'appelant doit utiliser l'ID, le nombre aléatoire et ses informations d'identification de sécurité CHAP pour générer la réponse adéquate (protocole de transfert) à envoyer au pair.
Les informations d'identification et de connexion de sécurité CHAP CHAP nom d'utilisateur et inclure CHAP un "secret" CHAP. Le secret CHAP est une chaîne arbitraire, connue à la fois de l'appelant et le PPP pair avant qu'ils ne négocient une liaison. Vous pouvez configurer les informations d'identification de sécurité CHAP dans la base de données CHAP, /etc/ppp/chap-secrets.
La base de données CHAP est mise en oeuvre dans le fichier /etc/ppp/chap-secrets. Les machines de chaque côté de la liaison PPP doivent disposer de leurs informations d'identification CHAP mutuelles dans leurs fichiers /etc/ppp/chap-secrets pour que l'authentification réussisse.
La syntaxe du fichier /etc/ppp/chap-secrets est la suivante.
myclient myserver secret5748 *
Signification des paramètres :
Nom d'utilisateur CHAP de l'appelant. Ce nom peut être identique au nom d'utilisateur UNIX de l'appelant, ou bien différent.
Nom de la machine distante, souvent un serveur d'appel entrant.
Secret CHAP de l'appelant.
Adresse IP associée à l'appelant. L'astérisque (*) représente n'importe quelle adresse IP.
L'authentification CHAP se déroule dans l'ordre indiqué ci-après.
Figure 8-2 Ordre de l'authentification CHAP
Deux pairs sur le point d'initialiser la communication conviennent d'un secret à utiliser pour l'authentification lors de la négociation d'une liaison PPP.
Les administrateurs des deux machines ajoutent le secret, les noms d'utilisateur CHAP et d'autres informations d'identification CHAP dans la base de données /etc/ppp/chap-secrets de leur machine respective.
L'appelant (l'authentifié) appelle le pair distant (l'authentificateur).
L'authentificateur génère un numéro aléatoire et un ID, et envoie ces données à l'authentifié sous forme de défi.
L'authentifié recherche le nom et le secret du pair dans sa base de données /etc/ppp/chap-secrets.
L'authentifié calcule une réponse en appliquant l'algorithme de calcul MD5 au secret et au défi de numéro aléatoire du pair. Ensuite, l'authentifié envoie pour réponse les résultats à l'authentificateur.
L'authentificateur recherche le nom et le secret de l'authentifié dans sa base de données /etc/ppp/chap-secrets,
L'authentificateur calcule son propre chiffre en appliquant MD5 au numéro généré en tant que défi et secret pour l'authentifié dans la base de données /etc/ppp/chap-secrets.
L'authentificateur compare les résultats avec la réponse de l'appelant. Si les deux valeurs sont identiques, le pair a authentifié l'appelant et la négociation de liaison se poursuit. Dans le cas contraire, la liaison est interrompue.