Protected Extensible Authentication Protocol

Protected Extensible Authentication Protocol

Protected Extensible Authentication Protocol, Protected EAP, ou plus simplement PEAP, est une méthode de transfert sécurisée d'informations d'authentification, créée au départ pour les réseaux sans fil. Ce protocole a été développé conjointement par Microsoft, RSA Security et Cisco Systems. C’est un standard ouvert de l'IETF.

PEAP n'est pas une méthode de chiffrement, c'est une procédure pour authentifier un client sur un réseau.

Sommaire

Introduction

PEAP est très semblable à 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 à n'utiliser une infrastructure à clés publiques (PKI) que du côté serveur, pour protéger l'authentification par la création d'un tunnel TLS. Dans ces deux standards, l'utilisation d'une clef publique côté client est optionnelle. PEAP impose une identification interne (inner authentication) par une autre méthode EAP, alors que TTLS autorise toute méthode d'identification interne CHAP, PAP, MS-CHAP, MS-CHAPv2 ou méthode EAP.

Il existe 2 versions de PEAP certifiées WPA (mise à jour) et WPA2 :

  • PEAPv0/EAP-MSCHAPv2 (seule méthode d'identification interne), aussi appelé PEAP version Microsoft
  • PEAPv1/EAP-GTC ou EAP-TLS, ou EAP-MS-CHAP-V2, aussi appelé PEAP version Cisco

PEAP se déroule en 2 phases :

  1. La phase 1 ou 'identification externe' permet l'authentification du serveur grâce à une infrastructure à clés publiques. Une fois le serveur authentifié il y a création d'un tunnel sécurisé qui permettra à la phase 2 d'être chiffrée.
  2. La phase 2 ou 'identification interne' permet l'authentification du client au travers du tunnel chiffré.

PEAPv0/EAP-MSCHAPv2

PEAPv0/EAP-MSCHAPv2 est la version la plus utilisée de PEAP. C'est à cette version que l'on fait référence lorsque l'on parle de PEAP sans plus de précisions. Après EAP-TLS, PEAP est l'EAP le plus utilisé. Cette version utilise la version de Microsoft du protocole CHAP (Challenge Handshake Authentication Protocol). Il est basé sur un challenge. Si le correspondant arrive à déchiffrer le challenge envoyé (chiffré avec la clef publique) c'est qu'il dispose bien de la clef secrète. Ce qui prouve son identité.

Il existe des implémentations de ce protocole dans de nombreuses marques d'AP, On trouve des implémentations de ce protocole pour Windows, Linux, MacOs, ... Les systèmes suivants le supportent nativement : MAC OS 10.3 et supérieur, Windows 2000 SP4, Windows XP, Windows Mobile 2003 et supérieur et Windows CE 4.2. La partie serveur est nativement présente dans Windows 2003 Serveur.

MSCHAPv2 est sensible aux attaques de dictionnaire. Mais avec le protocole PEAP ce n'est pas un problème car les informations circulent dans un canal sécurisé.

PEAPv0 comporte une autre faiblesse. Il transmet le logon en dehors du tunnel TLS. L'utilisation d'un sniffer peut permettre de récupérer un nom d'utilisateur valide. Grâce à cette information un individu mal intentionné peut provoquer un DOS en verrouillant les utilisateurs valides. Ce problème est résolu dans PEAPv2.

Cette version de PEAP est définie dans les brouillons Internet de l'IETF draft-kamath-pppext-eap-mschapv2-01.txt et draft-kamath-pppext-peapv0-00.txt

Format de Trames

+---------------+---------------+---------------+---------------+
|     Code      |   Identifier  |            Length             |
+---------------+---------------+---------------+---------------+ 
|     Type      |   OpCode      |  MS-CHAPv2-ID |  MS-Length...
+---------------+---------------+---------------+---------------+
|   MS-Length   |     Data...
+---------------+---------------

Code :

Le champ code est sur 1 octet, il sert à définir le type de trame :
1 - Request
2 - Response

Identifier :

Le champ Identifier est sur un octet, il sert à faire correspondre les réponses avec les requêtes

Length :

Le champ Length fait 2 octets, il indique la taille du paquet EAP avec l'en-tête.

Type :

Le champ Type définit sur un octet le type de protocole EAP utilisé
26 - EAP MS-CHAP-V2

OpCode :

Le champ OpCode est sur un octet, il identifie le type de paquets EAP MS-CHAP-v2 :

1 Challenge
2 Response
3 Success
4 Failure
7 Change-Password

MS-CHAPv2-ID :

Le champ identifiant MS-CHAPv2 est sur 1 octet, il permet de faire correspondre les requêtes et les réponses MS-CHAPv2

MS-Length :

le champ MS-length est sur 2 octets et doit être identique au champ Length moins 5.

Data :

Le format de ce champ est déterminé par le champ OpCode

Scénario

Client Authentificateur
<--- EAP-Request/Identity
EAP-Response/Identity (MyID) --->
<--- EAP-Request/EAP-Type=PEAP, V=0 (PEAP Start, S bit set)
EAP-Response/EAP-Type=PEAP, V=0 (TLS client_hello) --->
<--- EAP-Request/EAP-Type=PEAP, V=0 (TLS server_hello, TLS certificate, [TLS server_key_exchange,][TLS certificate_request,] TLS server_hello_done)
EAP-Response/ EAP-Type=PEAP, V=0 ([TLS certificate,] TLS client_key_exchange, [TLS certificate_verify,] TLS change_cipher_spec, TLS finished) --->
<--- EAP-Request/EAP-Type=PEAP, V=0 (TLS change_cipher_spec, TLS finished)
EAP-Response/EAP-Type=PEAP --->
Tunnel TLS créé : À partir de là les messages sont envoyés dans le tunnel TLS c'est également ici que débute le protocole MS-CHAPv2 pour l'échange de l'identité du client.
<--- EAP-Requete/Identité
EAP-Response/Identité (MyID) --->
<--- EAP-Requete/EAP-Type=EAP MS-CHAP-V2(Challenge)
EAP-Reponse/EAP-Type=EAP-MS-CHAP-V2 (Reponse) --->
<--- EAP-Requete/EAP-Type=EAP-MS-CHAP-V2 (Succes)
EAP-Reponse/EAP-Type=EAP-MS-CHAP-V2(Succes) --->
Fin du tunnel TLS (les messages suivants sont envoyés en clair)
<--- EAP-Success

PEAPv1/EAP-GTC

PEAPv1/EAP-GTC a été créé par Cisco pour être une alternative à PEAPv0/EAP-MSCHAPv2. Bien que PEAP ait été développé conjointement par Microsoft, Cisco et RSA, Microsoft n’a jamais intégré cette version de PEAP dans ses OS. EAP-GTC n'est donc pas présent nativement sur les systèmes Microsoft. Cisco préfère supporter ses autres protocoles LEAP ou EAP-FAST Plutôt que PEAP. Cette version de PEAP est très peu utilisée.

Cette version de PEAP est définie dans le brouillon draft-josefsson-pppext-eap-tls-eap-05.txt

Format de trame

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Code      |   Identifier  |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |   Flags   |Ver|  Data...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Code :

  • 1 - Request
  • 2 - Response

Identifier : Ce champ sur un octet permet de faire correspondre les requêtes et les réponses.

Length : ce champ fait 2 octets, il indique la taille du paquet EAP

Type : 25 - PEAP

Flags :

   0 1 2 3 4 5
  +-+-+-+-+-+-+
  |L M S R R R|
  +-+-+-+-+-+-+
  L = Length included
  M = More fragments
  S = PEAP start
  R = Réservé, doit être à zéro

Le bit L sert à indiquer la présence des champs suivants. Le bit M est à 1. Le bit S est à 1 pour les message PEAP Start.

Version :

   0 1
  +-+-+
  |R 1|
  +-+-+
  R = Réservé, doit être à zéro

Data : Ce champ est déterminé par le format du champ Code Field

Scénario

Client Authentificateur
<--- EAP-Request/Identity
EAP-Response/Identity (MyID) --->
<--- EAP-Request/EAP-Type=PEAP(PEAP Start, S bit set)
EAP-Response/EAP-Type=PEAP(TLS client_hello) --->
<--- EAP-Request/EAP-Type=PEAP(TLS server_hello, TLS certificate, [TLS server_key_exchange,] [TLS certificate_request,] TLS server_hello_done)
EAP-Response/EAP-Type=PEAP ([TLS certificate,] TLS client_key_exchange, [TLS certificate_verify,] TLS change_cipher_spec, TLS finished) --->
<--- EAP-Request/EAP-Type=PEAP (TLS change_cipher_spec, TLS finished)
Le tunnel TLS est établi. À partir de là les messages sont envoyés aux travers du tunnel TLS
EAP-Response/EAP-Type=PEAP --->
<--- EAP-Request/Identity
EAP-Response/Identity (MyID) --->
<--- EAP-Request/EAP-Type=X
EAP-Response/EAP-Type=X or NAK --->
<--- EAP-Request/EAP-Type=X
EAP-Response/EAP-Type=X --->
<--- EAP-Success
Fin du tunnel TLS. À partir de là les messages sont envoyés en clair.

PEAPv2

PEAPv2 est le successeur de PEAPv0. Cette version corrige plusieurs faiblesses (dont la transmission du nom de l' utilisateur en dehors du tunnel TLS). Elle a été développée par Microsoft, Cisco Systems et Extundo. Elle corrige les faiblesses de la version 0

Pour l'instant, il n'existe pas beaucoup d'implémentation de cette version. Elle est peu utilisée à l'heure actuelle.

Cette version de PEAP est définie dans le brouillon Internet de IETF draft-josefsson-pppext-eap-tls-eap-10.txt

PEAPV2 requiert que le service RADIUS établisse la clé maîtresse qui servira à la génération des autres clés requises aux chiffrements. L’implantation de PEAPv2 demande peu d’effort à déployer et est considérée comme sécuritaire par l’industrie.

Format de trame

  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Code      |   Identifier  |            Length             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |   Flags | Ver |    Fragment Message Length
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Fragment Message Length     |    TLS Message Length
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     TLS Message Length        |      TLS Data...
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |             Outer TLVs...
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Code :

  • 1 - Request
  • 2 - Response

Identifier : le champ Identifier fait un octet et permet de faire correspondre les requêtes et les réponses.

Length : le champ Length fait 2 octets; il donne la longueur du paquet EAP

Type : 25 - PEAP

Flags :

      0 1 2 3 4
     +-+-+-+-+-+
     |L M S T R|
     +-+-+-+-+-+
     L = Length included
     M = More fragments
     S = PEAP start
     T = TLS Length included
     R = Reserved (must be zero)

Le bit L sert à indiquer la présence des champs suivants. Le bit M est à 1. Le bit S est à 1 pour les message PEAP Start. Le bit T permet d'indiquer la présence du champ TLS Message Length field.

Version :

      0 1 2
     +-+-+-+
     |R|1|0|
     +-+-+-+
     R = Réservé, doit être à zéro

Fragmented Message Length : Ce champ fait 4 octets, il n'est présent que si le bit L est à 1. Il donne la taille du message après le champ Flag.

TLS Message Length : Ce champ fait 4 octets, il est présent seulement si le bit T est à 1. Il définit la taille totale des données TLS.

TLS Data : ce champ contient des paquets TLS encapsulés.

Outer TLVs : Ce champ est optionnel, il permet d'aider à établir le tunnel TLS

Scénario

A. Echange de l'identité en clair

Dans cette version, une partie de l'identité est donnée en clair mais cette "demi-identité" n'est pas suffisante pour qu'un pirate utilise l'identité pour provoquer un déni de service (DOS) en verrouillant les utilisateurs dont il a pu récupérer la "demi-identité".

Client Authentificateur
<--- EAP-Request/Identity
EAP-Response/Identity (MyID1) --->
Une partie de l’identité est envoyée en clair.
<--- EAP-Request/EAP-Type=PEAP, V=2 (PEAP Start, S bit set)
EAP-Response/EAP-Type=PEAP, V=2 (TLS client_hello)--->
<--- EAP-Request/EAP-Type=PEAP, V=2 (TLS server_hello, TLS certificate,[TLS server_key_exchange,][TLS certificate_request,] TLS server_hello_done)
EAP-Response/EAP-Type=PEAP, V=2([TLS certificate,] TLS client_key_exchange,[TLS certificate_verify,] TLS change_cipher_spec, TLS finished) --->
<--- EAP-Request/EAP-Type=PEAP, V=2(TLS change_cipher_spec, TLS finished, EAP-Request/EAP-Type=EAP-TLV [EAP-Payload-TLVEAP-Request/Identity)
// Le tunnel TLS est créé. L’identité est protégée par TLS. Les paquets EAP-TLV n’ont pas d’en-tête EAP.
EAP-TLV [EAP-Payload-TLV EAP-Response/Identity (MyID2) --->
<--- EAP-TLV [EAP-Payload-TLVEAP-Request/EAP-Type=X
EAP-TLV [EAP-Payload-TLVEAP-Response/EAP-Type=X --->
Fin de la protection.
<--- EAP-TLV [Result TLV (Success), Crypto-Binding TLV (Version=2, received-version=2, Nonce, B1_MAC),Intermediate-Result TLV (Success)]
EAP-TLV [Result TLV (Success),Intermediate-Result TLV (Success), Crypto-Binding TLV (Version=2, received-version=2,Nonce, B2_MAC)] --->
Fin du tunnel TLS (les messages sont à présent envoyés en text clair).
<--- EAP-Success

B. Scénario sans échange de texte en clair

Dans cette version il n'y pas d'échange d'identité en clair.

Client Authentificateur
<--- EAP-Request/EAP-Type=PEAP, V=2(PEAP Start, S bit set)
EAP-Response/EAP-Type=PEAP, V=2 (TLS client_hello) --->
<--- EAP-Request/EAP-Type=PEAP, V=2 (TLS server_hello, TLS certificate, [TLS server_key_exchange,] [TLS certificate_request,] TLS server_hello_done)
EAP-Response/EAP-Type=PEAP, V=2 ([TLS certificate,] TLS client_key_exchange, [TLS certificate_verify,] TLS change_cipher_spec, TLS finished) --->
<--- EAP-Request/EAP-Type=PEAP, V=2 (TLS change_cipher_spec, TLS finished, EAP-TLV [EAP-Payload-TLV (EAP-Request/Identity)])
Tunnel TLS créé (les messages sont envoyés via le tunnel TLS)
EAP-TLV [EAP-Payload-TLV EAP-Response/Identity (MyID) --->
<--- EAP-TLV [EAP-Payload-TLV EAP-Type=EAP-Request/EAP-Type=X EAP-TLV [EAP-Payload-TLV
[EAP-Response/EAP-Type=X or NAK] --->
<--- EAP-TLV [EAP-Payload-TLV EAP-Request/EAP-Type=X
EAP-TLV [EAP-Payload-TLV EAP-Response/EAP-Type=X --->
<--- EAP-TLV [Crypto-Binding TLV=(Version=2, Received-version=2, Nonce, B1_MAC),Intermediate-Result TLV(Success), Result TLV (Success)]
EAP-TLV [Crypto-Binding TLV=(Version=2,Received-version=2, Nonce, B2_MAC), Intermediate-Result TLV (Success), Result TLV (Success)] --->
Fin du tunnel TLS (les messages sont envoyés en clair)
<--- EAP-Success

Voir aussi


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Protected Extensible Authentication Protocol de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • Protected Extensible Authentication Protocol — PEAP is also an acronym for Personal Egress Air Packs. Protected Extensible Authentication Protocol, Protected EAP, or simply PEAP (pronounced peep ), is a method to securely transmit authentication information, including passwords, over wired or …   Wikipedia

  • Extensible Authentication Protocol — Pour les articles homonymes, voir EAP. Extensible Authentication Protocol (EAP) est un mécanisme d identification universel, fréquemment utilisé dans les réseaux sans fil (ex : de type Wi Fi) et les liaisons point à point. Sommaire 1… …   Wikipédia en Français

  • Extensible Authentication Protocol — Extensible Authentication Protocol, or EAP, is a universal authentication framework frequently used in wireless networks and Point to Point connections. It is defined in RFC 3748, which has been updated by RFC 5247. Although the EAP protocol is… …   Wikipedia

  • Lightweight Extensible Authentication Protocol — The Lightweight Extensible Authentication Protocol (LEAP) is a proprietary wireless LAN authentication method developed by Cisco Systems. Important features of LEAP are dynamic WEP keys and mutual authentication (between a wireless client and a… …   Wikipedia

  • Authentication protocol — An authentication protocol is a type of cryptographic protocol with the purpose of authenticating entities wishing to communicate securely.Authentication protocol may refer to: * Challenge handshake authentication protocol (CHAP) * Extensible… …   Wikipedia

  • Diameter (protocol) — Internet protocol suite Application layer BGP DHCP DNS FTP HTTP …   Wikipedia

  • Wi-Fi Protected Access — (WPA and WPA2) is a certification program administered by the Wi Fi Alliance to indicate compliance with the security protocol created by the Wi Fi Alliance to secure wireless computer networks. This protocol was created in response to several… …   Wikipedia

  • Wi-Fi protected access — (WPA et WPA2) est un mécanisme pour sécuriser les réseaux sans fil de type Wi Fi. Il a été créé en réponse aux nombreuses et sévères faiblesses que des chercheurs ont trouvées dans le mécanisme précédent, le WEP. WPA respecte la majorité de la… …   Wikipédia en Français

  • Wi-fi protected access — (WPA et WPA2) est un mécanisme pour sécuriser les réseaux sans fil de type Wi Fi. Il a été créé en réponse aux nombreuses et sévères faiblesses que des chercheurs ont trouvées dans le mécanisme précédent, le WEP. WPA respecte la majorité de la… …   Wikipédia en Français

  • Wi-Fi Protected Access — (WPA et WPA2) est un mécanisme pour sécuriser les réseaux sans fil de type Wi Fi. Il a été créé en réponse aux nombreuses et sévères faiblesses que des chercheurs ont trouvées dans le mécanisme précédent, le WEP. WPA respecte la majorité de la… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”