Extensible Authentication Protocol ou EAP est un protocole de communication réseau embarquant de multiples méthodes d'authentification, pouvant être utilisé sur les liaisons point à point (RFC 2284[1]), les réseaux filaires et les réseaux sans fil (RFC 3748[2], RFC 5247[3]) tels que les réseaux Wi-Fi.
Plusieurs méthodes d'authentification sont prédéfinies (MD5, OTP, Generic Token Card, etc.) mais il est possible d'en rajouter sans qu'il soit nécessaire de changer ou de créer un nouveau protocole réseau.
Le protocole EAP
Le protocole EAP est :
Un protocole de communication réseau : il est constitué d'un échange de trames dans un format spécifique à EAP pour réaliser l'authentification d'un partenaire[RFC 1]
Un protocole extensible : quelques méthodes d'authentification sont prédéfinies (MD5, OTP, Generic Token Card, etc.) mais d'autres peuvent être ajoutées sans qu'il soit nécessaire de changer le protocole réseau ou d'en définir un nouveau[RFC 2]
Le protocole EAP a été proposé en mars 1998 dans la RFC 2284[4] et proposé comme standard Internet auprès de l'IETF.
Il est conçu pour fournir un mécanisme d'authentification pour les liaisons PPP (couche 2 du modèle OSI) afin d'autoriser ou interdire l'établissement de la couche réseau (couche 3 du modèle OSI)[RFC 1]. Ce protocole ne s'appuie donc pas sur le protocole IP (couche 3 du modèle OSI)[RFC 3].
La liaison PPP est définie entre un peer[note 1] et un authenticator[note 2],[RFC 1].
L'authenticator peut envoyer une requête au peer pour connaître son identité ou alors de déterminer son identité par l'interface de communication (Liaisons louées, Ligne dédiée, etc.)[RFC 1].
Cette identification est suivie d'une ou plusieurs requêtes envoyées par l'authenticator (obligatoire) avec un paramètre contenant la méthode d'authentification souhaitée[RFC 1] :
Le peer doit répondre à ce challenge et aura en fonction du résultat, un message envoyé par l'authenticator contenant un code[RFC 4] :
Code 3 : Succès (Établissement de la couche réseau)
Code 4 : Échec (Impossible d'établir la couche réseau)
Cette authentification peut être réalisée par l'authenticator lui-même ou déléguée à un service tiers (authentication server)[RFC 5].
L'authentification peut être demandée par chaque extrémité[réf. nécessaire]
En juin 2004, la RFC 3748[5] vient étendre le fonctionnement du protocole EAP aux réseaux définis dans le standard IEEE 802rendant obsolète la RFC 2284[4][RFC 6] :
Le protocole EAP sur ces réseaux est aussi connu sous le nom EAPOL[note 3],[RFC 7].
Bien que le protocole EAP possède un mécanisme de suppression de requêtes dupliquées et de retransmission de requêtes, il reste tributaire de la couche de liaison de données[RFC 8]. Par conséquent, des erreurs sur cette couche peuvent entraîner des erreurs d'authentification EAP[RFC 9].
Quand le protocole EAP est utilisé en conjonction avec un point d'accès réseau compatible 802.1X (sans-fil ou filaire), certaines méthodes EAP permettent de négocier une clé PMK (Pair-wise Master Key) entre le client et le point d'accès. Cette clé PMK peut ensuite être utilisée pour chiffrer les sessions TKIP ou CCMP.
Les standards WPA et WPA2 ont adopté 5 types d’EAP comme mécanismes officiels d’identification[réf. nécessaire] :
Mais EAP ne se limite pas à ces méthodes d'authentification. On présente ci-dessous des informations sur les EAP les plus connus.
Méthodes
LEAP
Lightweight Extensible Authentication Protocol (LEAP) est une implémentation propriétaire de EAP conçue par Cisco Systems.
Cisco a fait beaucoup d'efforts pour promouvoir ce protocole. Il a permis à d'autres fabricants de réaliser des produits « LEAP Compatible » au travers du programme CCX (Cisco Certified Extensions). Ce protocole n'est pas présent nativement sous Windows.
Il était connu pour être vulnérable aux attaques par dictionnaire comme EAP-MD5.
Mais il ne l'est plus depuis la version ASLEAP (2003) de Joshua Wright. Cisco continue de soutenir que LEAP est une solution sécurisée si l'on utilise des mots de passe suffisamment complexes. Mais tout le monde sait bien que dans la réalité, les mots de passe complexes sont rarement utilisés[non neutre]. De nouveaux protocoles comme EAP-TTLS ou PEAP ne rencontrent pas ce type de fragilité car ils créent un tunnel TLS pour sécuriser l'identification. De plus ces nouveaux protocoles étant plus ouverts, ils peuvent être utilisés sur des points d'accès de marque Cisco ou non.
EAP-TLS
EAP-TLS est un standard ouvert IETF. On le retrouve utilisé chez de nombreux fabricants de matériel sans fil. C’est le seul protocole EAP qui doit obligatoirement être implanté sur un matériel pour que ce dernier puisse porter le logo WPA ou WPA2.
Il offre une bonne sécurité. En effet il utilise deux certificats pour la création d'un tunnel sécurisé qui permet ensuite l'identification : un côté serveur et un côté client. Cela signifie que même si le mot de passe est découvert, il ne sera d'aucune utilité sans le certificat client. Bien que EAP-TLS fournisse une excellente sécurité, l'obligation de disposer d'un certificat client est peut-être son talon d'Achille. En effet lorsque l'on dispose d'un grand parc de machines, il peut s'avérer difficile et coûteux de gérer un certificat par machine. C'est pour se passer du certificat client que les protocoles PEAP et EAP-TTLS ont été créés.
TLS est considéré comme le successeur du standard SSL. Il utilise une Infrastructure à clés publiques pour sécuriser les communications d'identification entre les clients et le serveur RADIUS.
Il existe des implémentations client ou serveur pour : Microsoft, Cisco, Apple, Linux...
EAP-TLS est présent nativement dans MAC OS 10.3 et supérieur, Windows 2000 SP4, Windows XP, Windows Mobile 2003 et supérieur, et Windows CE 4.2.
EAP-MD5
EAP-MD5 est un autre standard ouvert IETF, mais il offre un niveau de sécurité faible. La fonction de hachage MD5 utilisée est vulnérable aux attaques par dictionnaire, et elle ne supporte pas les clefs WEP dynamiques.
EAP-TTLS
EAP-Tunneled Transport Layer Security, a été codéveloppé par Funk Software et Certicom ; c'est également un standard ouvert IETF. Il est supporté sur de nombreuses plates-formes, et offre un très bon niveau de sécurité. Il utilise des certificats X-509 uniquement sur le serveur d'identification. Le certificat est optionnel du côté client.
Le défaut de EAP-TTLS par rapport à PEAP est de ne pas être présent nativement sur les systèmes Microsoft et Cisco.
En revanche, il est légèrement plus sécurisé que PEAP car il ne diffuse pas le nom de l'utilisateur en clair.
EAP-FAST
EAP-Flexible Authentication via Secure Tunneling est une proposition de Cisco Systems pour pallier les faiblesses de LEAP. L'utilisation de certificats serveur est optionnelle dans EAP-FAST. Il utilise Protected Access Credential (PAC). EAP-FAST dispose de trois phases.
Phase 0 : Elle est optionnelle et permet de renseigner dynamiquement PAC. PAC peut être complété manuellement, auquel cas il n'y aura pas de phase 0.
Phase 1 : Le client et le serveur AAA (Authentication Authorization Accounting) utilisent PAC pour établir un tunnel TLS.
Phase 2 : Le client envoie les informations utilisateur à travers le tunnel.
EAP-FAST est défini dans un brouillon Internet IETF « draft-com-winget-eap-fast-03 ».
EAP-SIM est une méthode EAP pour les clients des réseaux Wi-Fi et des réseaux de téléphonie mobileGSM, UMTS et LTE. Il est utilisé pour l'identification et la distribution de clefs au travers des réseaux ; SIM signifie « Subscriber Identity Module ». EAP-SIM est décrit dans la RFC 4186[7].
Free Mobile a été le premier opérateur français à mettre en service ce protocole d'authentification en pour ses clients détenteurs du forfait illimité[8]. Cela permet aux abonnés d'accéder au réseau Free Wifi. SFR a activé mi-, sur l'ensemble de son réseau, ce service déployé depuis , d'abord en phase d’expérimentation limitée [9], sous le nom « Auto-connect ».
EAP-AKA
EAP-AKA (Authentication and Key Agreement) est une méthode EAP pour les clients des réseaux de téléphonie mobile de 3e génération (UMTS et CDMA2000). Elle est décrite dans la RFC 4187[10].
Contrairement à EAP-SIM, EAP-AKA permet de réaliser une authentification mutuelle de l'équipement utilisateur et du réseau. La longueur de la clé générée par accord mutuel est plus longue (128 bits) qu'avec EAP-SIM (64 bits)[11].
Ce protocole est principalement employé dans les cadres suivants[12]:
Authentification lors de l'attachement à un réseau de téléphonie mobile de 3e génération.
Réutilisation des éléments d'authentification du réseau mobile lors de l'attachement à un réseau sans fil [Wifi] qui appartient à l'opérateur.
EAP-AKA'
Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?
Encapsulation
Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?
Protected Extensible Authentication Protocol, Protected EAP, ou plus simplement PEAP, est une méthode de transfert sécurisée d'informations d'identification, pour les réseaux filaires et sans fil. Ce protocole a été développé conjointement par Microsoft, RSA Security et Cisco Systems. C’est un standard ouvert de l'IETF (Internet Engineering Task Force).
PEAP n'est pas une méthode de chiffrement, c'est une procédure pour identifier un client sur un réseau.
PEAP est très similaire à une autre méthode EAP : EAP-TTLS. Protected EAP a été créé pour contrer EAP-TTLS qui était jusque-là la seule méthode EAP à utiliser une Infrastructure à clés publiques (Public Key Infrastructure, PKI) que du côté serveur, pour la création d'un tunnel TLS protégeant l'identification. Dans ces deux standards, l'utilisation d'une clef publique côté client est optionnelle.
Il existe deux versions de PEAP certifiées WPA (mise à jour) et WPA2 :
La phase 1 permet l'identification du serveur grâce à une Infrastructure à clés publiques. Une fois le serveur identifié, il y a la création d'un tunnel sécurisé qui permettra à la phase 2 d'être chiffrée.
La phase 2 permet l'identification du client au travers du tunnel chiffré.