Comprendre et Configurer l'Authentification CHAP PPP ccnp_cch ccnp_cch
Sommaire - Introduction - Avantages - Prérequis - Configuration de CHAP - Authentification unidirectionnelle et bidirectionnelle - Commandes de configuration et Options - Exemple d'échange ccnp_cch
Introduction ccnp_cch CHAP (Challenge Handshake Authentication potocol - RFC 1994) vérifie l'identité du proche en utilisant un échange en trois étapes. Les étapes générales réalisées par CHAP sont les suivantes: 1. Après l'établissement complet de la liaison, l'authentificateur transmet un message de challenge au proche. 2. Le proche répond avec une valeur calculée en utilisant une fonction de hachage unidirectionnelle (MD5). 3. L'authentificateur teste la réponse avec son propre calcul de la valeur attendue. Si les deux valeurs correspondent, l'authentification est correcte sinon la connexion est libérée. Avantages: Cette méthode d'authentification dépend d'un "secret" connu uniquement par le proche et l'authentificateur. Le secret n'est pas transmis sur la ligne. Bien que l'authentification soit unidirectionnelle par défaut, en négociant CHAP dans les deux sens vous pouvez utiliser le même "secret" pour une authentification mutuelle. Prérequis: • Valider PPP (Point to Point Protocol) sur l'interface en utilisant la commande encapsulation ppp. • Vous devez être capable de lire et de comprendre les informations affichées par la commande debug ppp negotiation. • L'authentification ppp ne commence pas tant que la phase LCP ( Link Control Protocol) n'est pas achevée et à l'état "ouverte" (open). Si la commande debug ppp negotiation n'indique pas "LCP Open" alors essayez de résoudre le problème. Note: Ce document ne concerne pas MS-CHAP (Version 1 ou 2). Pour plus d'information reférerez-vous au document MS-CHAP support et MS-CHAP Version 2. ccnp_cch
Configuration de CHAP ccnp_cch La configuration de CHAP est simple et rapide. Le schéma ci-dessous représente deux routeurs connectés à un réseau commuté . RTC/RNIS hostname RG username RD password zx123 interface async 0 encapsulation ppp ppp authentication CHAP hostname RD username RG password zx123 interface async 0 encapsulation ppp ppp authentication CHAP Réalisez les étapes suivantes comme guide de configuration pour l'authentification CHAP. 1. Sur l'interface choisie, spécifiez encapsulation ppp 2. Validez l'utilisation de l'authentification CHAP sur les deux routeurs avec la commande ppp authentication chap. 3. Configurez les noms d'utilisateurs et les mots de passe. Utilisez la commande username <username> password <password> dans laquelle username est le nom de host du proche. • Les mots de passe doivent être identiques à chaque extrémité • Le nom d'utilisateur et le mot de passe sont sensibles à la casse. Note: Par défaut, le routeur utilise son nom de host pour s'identifier avec le proche. Cependant, le nom d'utilisateur CHAP peut être changé en utilisant la commande ppp chap hostname. ccnp_cch
Authentification unidirectionnelle et bidirectionnelle CHPAP est défini comme une méthode d'authentification unidirectionnelle. Cependant, l'utilisation de CHAP dans les deux sens crée une authentification bidirectionnelle. Même avec une authentification bidirectionnelle un échange en trois étapes est exécuté pour chaque sens par chaque extrémité. Dans l'implémentation Cisco de CHAP, par défaut la partie appelée doit authentifier la partie appelante (à moins que l'authentification ne soit pas validée). L'authentification unidirectionnelle est la fonction minimum. Si la partie appelante veut authentifier la partie appelée, cela entrainera une authentification bidirection- nelle. L'authentification unidirectionnelle est souvent requise pour une connexion avec des équipements autres que Cisco. Pour une authentification unidirectionnelle, il faut utiliser la comme suivante sur le routeur appelant : ppp authentication chap callin Le tableau suivant montre comment utiliser l'option callin. Type d'authentification Client (calling) Serveur d'accès (called) Unidirectionnelle ppp authentication chap callin chap Bidirectionnelle ccnp_cch
Commandes de configuration CHAP et options Le tableau suivant liste les commandes CHAP et les options Commande Description ppp authentication {chap|ms-chap| pap} [callin|default] Valide l'authentification locale du proche PPP distant avec le protocole spécifié ppp chap hostname username Définit un CHAP hostname spécifique ppp chap password password Définit un mot de passe CHAP ppp direction <callin|callout|dedicated> Force le sens de l'appel Cette commande est utilisée quand un routeur ne peut déterminer seul si l'appel est entrant ou sortant. ppp chap refuse [callin] Dévalide l'authentification distante par un proche (validé par défaut). Avec cette commande, l'authentification CHAP est dévalidée pour tous les appels ce qui signifie que toutes les tentatives d'appel du proche avec authentification seront refusées. L'option callin spécifie que le routeur refuse de répondre à l'authentification CHAP reçue du proche mais demande au proche de répondre à l'authentification CHAP ppp chap wait L'appelant doit s'authentifier en premier ppp max-bad-auth value Autorise plusieurs tentatives d'authentitification (0 par défaut) ppp chap splitnames Cette commande cachée autorise différents "hostname" pour une identification CHAP ( dévalidé par défaut) ppp chap ignoreus Cette commande cachée ignore le challenge CHAP avec le nom local ( validé par défaut) ccnp_cch ccnp_cch
Exemple d'échange Appel Challenge ccnp_cch Les schémas et commentaires suivants montrent les évènements qui se produisent durant une authentification CHAP entre deux routeurs. Ceci ne représente pas les messages affichés par la commande debug ppp negotiation. Appel L'utilisateur appelle 3640-1 766-1 Les étapes suivantes sont liées au schéma ci-dessus: 1. L'appel arrive sur le routeur 3640-1. L'interface d'entrée est configurée avec la commande ppp authentication chap. 2. La couche LCP négocie CHAP et MD5. 3. Un challenge CHAP du 3640-1 vers le routeur appelant est requis pour cet appel. Challenge L'utilisateur appelle 3640-1 766-1 id random 01 La figure ci-dessus illustre l'échange du message de challenge entre les deux routeurs: 1. Un paquet Challenge est formé avec les champs suivants: - 01 = Identificateur du type de paquet Challenge - id = Numéro de séquence identifiant le paquet Challenge - random = Valeur aléatoire générée par le routeur - 3640-1 = Nom d'authentificationdu challenger 2. Les valeurs id et ramdom sont mémorisées par le routeur appelé 3. Le paquet Challenge est transmis au routeur appelant. Une liste des challenges en attente est maintenue. ccnp_cch
Réponse(1) ccnp_cch L'utilisateur appelle 3640-1 766-1 id random 01 user pass 3640-1 pc1 hash MD5 La figure ci-dessus illustre la réception et le traitement MD5 du message Challenge reçu du proche . Le routeur traite le paquet challenge entrant de la façon suivante: 1. La valeur id est entrée dans le générateur de "hash" MD5 2. La valeur ramdom est entrée dans le générateur MD5 3. Le nom 3640-1 est utilisé pour rechercher le mot de passe et le vérifier. Le routeur cherche une entrée dans la configuration correspondant au username du message challenge. username 2640-1 password pc1 4. Le mot de passe est entré dans le générateur de "hash" MD5 Le résultat est un Challenge CHAP MD5 qui seraransmis en réponse. ccnp_cch
Réponse(2) ccnp_cch L'utilisateur appelle 3640-1 766-1 id random 01 user pass 3640-1 pc1 hash MD5 La figure ci-dessus illustre comment le paquet de réponse CHAP transmis vers l'authentificateur est construit. Les étapes sont: 1. Le paquet de réponse est formé avec les champs d'information suivants: - 02 = Identificateur du type de paquet CHAP (Réponse) - id = Numéro de séquence recopié du paquet Challenge reçu - hash = Résultat du générateur de "hash" MD5 - 766-1 = Nom d'authentification de cet équipement. Ce nom est utilisé par le proche pour vérifier l'identité avec l'entrée username/password configurée. 2. Le paquet de réponse est transmis au challenger 02 ccnp_cch
Vérification ccnp_cch L'utilisateur appelle 3640-1 766-1 id random 01 user pass 3640-1 pc1 hash MD5 La figure ci-dessus illustre comment l'authentificateur traite le paquet de réponse CHAP reçu. 1. L'id est utilisé pour retrouver le paquet de Challenge original. 2. L'id est entré dans le générateur de "hash" MD5. 3. La valeur originale random du challenge est entrée dans le générateur de "hash" MD5. 4. Le nom 766-1 est utilisé pour vérifier le mot de passe d'après une des sources suivantes: • Base de données locale (routeur) contenant le nom et le mot de passe • Serveur Radius ou TACACS+ 5. Le mot de passe est entré dans le générateur de "hash" MD5 6. La valeur "hash" reçue dans le paquet de réponse est comparée à celle calculée L'authentification CHAP réussie si les deux valeurs sont identiques. 02 766-1 pc1 = ? ccnp_cch
Résultat ccnp_cch L'utilisateur appelle 3640-1 766-1 3640-1 id random 01 user pass 3640-1 pc1 user pass 766-1 pc1 766-1 id hash 02 hash MD5 hash MD5 03 id OK Authentifié La figure ci-dessus illustre la transmission du message authentification réussie au routeur appelant. Si l'authentificaton est réussie, un message est formé avec les champs suivants: - 03 = Type de message CHAP ( Succès) - id = id copié du message de réponse - OK Authentifié - Message en clair pour informer l'utilisateur Si l'authentificaton ne réussit pas, un message est formé avec les champs suivants: - 04 = Type de message CHAP ( Echec) - Non Authentifié - Message en clair pour informer l'utilisateur Note: Cet exemple décrit une authentification unidirectionnelle. Pour une authentification bidirectionnelle, le processus entier est exécuté par les deux extrémités, cependant le routeur appelant initie le premier challenge. ccnp_cch