# Wi-Fi Protected Access

Wi-Fi Protected Access (WPA), Wi-Fi Protected Access 2 (WPA2), et Wi-Fi Protected Access 3 (WPA3) sont des mécanismes utilisés pour sécuriser les réseaux sans-fil de type Wi-Fi. La première version a été créée au début des années 2000 en réponse aux nombreuses et graves faiblesses que des chercheurs ont trouvées dans le mécanisme précédent, le WEP.
En janvier 2018, la Wi-Fi Alliance annonce la dernière version en date (WPA3) avec des améliorations de sécurité notables par comparaison avec le WPA2.

## Présentation

WPA respecte la majorité de la norme IEEE 802.11i et a été prévu comme une solution intermédiaire pour remplacer le WEP en attendant que la norme 802.11i soit terminée. WPA a été conçu pour fonctionner, après mise à jour de leur micro-logiciel, avec toutes les cartes Wi-Fi, mais pas nécessairement avec la première génération des points d'accès Wi-Fi.
WPA2, son successeur ratifié en 2004, comprend tous les éléments obligatoires de la norme 802.11i. C'est la version de la norme 802.11i certifiée par la Wi-Fi Alliance. En particulier, la norme WPA2 impose de prendre en charge le mécanisme CCMP, lequel s'appuie sur AES. Le protocole CCMP est considéré comme complètement sécurisé ; en mai 2004, le NIST l'a approuvé. Il est pris en charge depuis 2005 sur Windows XP et par tous les Macintosh comportant une carte Airport Extreme.
Les deux mécanismes fournissent une bonne sécurité, si l'on respecte deux points importants :
* l'utilisateur doit encore souvent faire le choix explicite d'activer WPA ou WPA2 en remplacement du WEP, car le WEP reste habituellement le choix de chiffrement par défaut sur la plupart des équipements ;
* lorsque le mode « WPA personnel » (WPA-Personal) est utilisé, ce qui est le choix le plus probable pour les particuliers et les PME, une phrase secrète plus longue que les classiques mots de passe de six à huit caractères utilisés par les utilisateurs est nécessaire pour assurer une sécurité complète.
WPA3, disponible depuis 2018, offre deux modes différents : personnel ou professionnel. WPA3-Personal utilise l'algorithme « Simultaneous Authentication of Equals » (SAE) à la place de la méthode par phrase secrète et possède la propriété de de confidentialité persistante. WPA3-Personal est plus robuste face à des attaques par dictionnaires que WPA2-Personal. WPA3-Enterprise se base sur WPA2-entreprise mais offre deux niveaux de sécurités : un de 128-bits de sécurité et utilisant EAP, AES-CCMP 128 et HMAC-256 de sécurité ; et l'autre de 192 bits de sécurité se basant sur EAP-TLS sur courbes elliptiques de 382 bits, AEC-GCMP-256 et HMAC-SHA384.

## Les technologies WPA

On peut classer les technologies WPA selon trois axes : la version (dans l'ordre chronologique), le groupe d'utilisateurs visés (en termes de simplicité de la distribution de la clé d'authentification), ou le protocole de chiffrement (des données elles-mêmes) utilisé :
selon la version :
* WPA : la version initiale de WPA, qui améliore la sécurité offerte par l'ancien protocole WEP. WPA utilise en général le protocole de chiffrement TKIP (voir plus loin).
* WPA2 : également connu sous le nom IEEE 802.11i-2004, ce successeur de WPA remplace le chiffrement TKIP par CCMP pour plus de sécurité. La compatibilité WPA2 est obligatoire pour les équipements certifiés Wi-Fi depuis 2006.
selon le groupe d'utilisateurs visés :
* WPA personnel (WPA-Personal) : connu également sous le nom de mode à secret partagé ou WPA-PSK (Pre-shared key), WPA personnel est conçu pour les réseaux personnels ou de petites entreprises, car il n'y a pas besoin d'utiliser un serveur d'authentification. Chaque équipement du réseau sans fil s'authentifie auprès du point d'accès en utilisant la même clé sur 256 bits.
* WPA entreprise (WPA-Enterprise) : connu également sous le nom de mode WPA-802.1X ou WPA-EAP, WPA entreprise est conçu pour les réseaux d'entreprise et demande que l'on installe un serveur d'authentification RADIUS. C'est plus compliqué à mettre en place, mais offre plus de sécurité, car cette méthode ne repose pas sur des phrases secrètes, vulnérables aux attaques par dictionnaire. Le protocole EAP (Extensible Authentication Protocol) est utilisé pour l'authentification. EAP existe en plusieurs variantes, dont EAP-TLS, EAP-TTLS et EAP-SIM.
Remarque : WPA personnel et WPA entreprise concernent à la fois WPA et WPA2.
selon le protocole de chiffrement :
* TKIP (Temporal Key Integrity Protocol) : une clé de 128 bits est utilisée pour chaque paquet. On génère une nouvelle clé pour chaque paquet. TKIP est utilisé par WPA.
* CCMP : un mécanisme de chiffrement qui s'appuie sur AES et qui est plus fort que TKIP. On fait parfois référence à cette méthode de chiffrement sous le nom d'AES plutôt que sous le nom de CCMP. CCMP est utilisé par WPA2.
De nos jours, bon nombre de points d'accès Wi-Fi utilisés à titre personnel sont réglés par défaut soit en WPA en mode clé partagée (PSK) avec le chiffrement TKIP, soit en WPA2 en mode clé partagée avec chiffrement CCMP, et prennent également en charge le mode entreprise.

## Historique

WPA a été créé par la Wi-Fi Alliance, une association d'entreprises, qui possède les droits sur le sigle Wi-Fi et qui certifie le matériel portant ce sigle. Les certifications des implantations du WPA ont commencé en avril 2003 et sont devenues obligatoires en novembre 2003. La norme 802.11i complète a été ratifiée en juin 2004.
WPA a été conçu pour être utilisé en collaboration avec un serveur d'identification 802.1X chargé de distribuer les différentes clés à chaque utilisateur. Cependant, il peut aussi être utilisé dans un mode moins sécurisé, appelé pre-shared key (PSK), dans lequel tous les utilisateurs partagent une même phrase secrète. La Wi-Fi Alliance désigne la version pre-shared key, WPA-Personal ou WPA2-Personal et la version avec identification 802.1X WPA-Enterprise ou WPA2-Enterprise.
Les données sont chiffrées en utilisant l'algorithme de chiffrement par flot RC4, avec une clé de 128 bits et un vecteur d'initialisation (initialization vector ou IV en anglais) de 48 bits. Une des améliorations majeures du WPA par rapport au WEP est le protocole Temporal Key Integrity Protocol (TKIP), qui échange de manière dynamique les clés lors de l'utilisation du système. Ce protocole, associé au vecteur d'initialisation beaucoup plus grand que dans le WEP, empêche certaines attaques sur WEP aujourd'hui bien connues.
En plus de l'identification et du chiffrement, WPA garantit aussi une intégrité nettement améliorée des données. Le cyclic redundancy check (CRC) utilisé pour le WEP est, de manière intrinsèque, peu sûr : il est possible d'altérer les données et de mettre à jour le CRC du message sans connaître la clé WEP. Un algorithme d'identification des messages (message authentication code ou MAC en anglais, mais appelé MIC pour Message Integrity Code dans le cadre du WPA) plus sécurisé est utilisé pour le WPA : il s'agit d'un algorithme prénommé « Michael ». Le MIC utilisé pour le WPA inclut, de plus, un compteur de trame qui empêche les attaques par rejeu, une autre faiblesse du WEP.
Le WPA a été conçu comme une étape intermédiaire sur le chemin vers une meilleure sécurité de la norme 802.11. Ceci pour deux raisons. Premièrement, le travail sur la norme 802.11i a duré beaucoup plus longtemps que prévu, s'étalant sur quatre ans pendant lesquels l'inquiétude au sujet de la sécurité des réseaux sans fil allait grandissante. Deuxièmement, il rassemble, dans un sous-ensemble de la norme 802.11i, les éléments qui sont compatibles avec le WEP des tout premiers adaptateurs 802.11b. Des mises à jour WPA ont été fournies pour la très grande majorité des cartes Wi-Fi déjà existantes. Les points d'accès vendus avant 2003 ont généralement besoin d'être remplacés.
En augmentant la taille des clés et des vecteurs d'initialisation, en réduisant le nombre de paquets envoyés avec des clés (re)liées, et en ajoutant un mécanisme d'identification des messages, le WPA rend la pénétration d'un réseau local sans fil beaucoup plus difficile. L'algorithme Michael est l'algorithme le plus résistant que les concepteurs du WPA pouvaient inclure sans abandonner la compatibilité avec la plupart des anciennes cartes réseaux. Cependant, cet algorithme est sujet à une attaque par contrefaçon de paquets. Pour limiter ce risque, les réseaux WPA s'arrêtent pendant 30 secondes dès qu'une tentative d'attaque est détectée.

## Failles de sécurité connues
### Attaque Beck et Tews visant TKIP

En novembre 2008, deux chercheurs allemands en sécurité, Erik Tews et Martin Beck, ont annoncé avoir découvert une faille de sécurité dans le mécanisme de sécurité WPA utilisé avec l'algorithme TKIP (Temporal Key Integrity Protocol). TKIP est un protocole basé sur le mécanisme WEP auquel ont été ajoutés des éléments de sécurité supplémentaires au travers d'un code d'authentification de message (MAC appelé MIC (Message Integrity Code) dans le standard WPA) et d'une meilleure rotation des clés de chiffrement. Un prérequis nécessaire à l'exploitation de la vulnérabilité est le support des extensions IEEE 802.11e concernant la QoS (qualité de service).
Les mécanismes WPA et WPA2 utilisant CCMP (ou, par extension, AES) ne sont pas vulnérables à cette attaque et restent considérés comme sûrs lorsqu'en mode PSK (Pre-Shared Key ou clé partagée) le point d'accès Wi-Fi est configuré avec une clé partagée suffisamment robuste.
Les détails concernant cette faille ont été exposés de façon détaillée durant la conférence PacSec les 12 et 13 novembre 2008 à Tokyo.
Martin Beck a intégré l'outil pour exploiter cette faille dans son outil d'audit de sécurité des liaisons sans fil, nommé Aircrack-ng. Il est toutefois assez facile de contrevenir à cette faille en forçant la négociation des clés toutes les deux minutes ce qui ne laisse pas assez de temps pour que l'attaque réussisse.

### Amélioration de l'attaque Beck et Tews visant TKIP

À la fin du mois d'août 2009, deux japonais Masakatu Morii et Toshihiro Ohigashi mettent au point une attaque permettant, en une minute, de falsifier des paquets de type ARP ou DNS. Celle-ci utilise une amélioration de l'attaque Beck-Tews en la combinant à une attaque de type "middle-man". Elle n'affecte une fois encore que le WPA-TKIP (mais il n'est plus nécessaire de prendre en charge les extensions QoS).

### Vulnérabilité controversée Hole 196

En juillet 2010, un chercheur, Md Sohail Ahmad, technology manager chez AirTight, a annoncé la découverte d'une faille (nommée « Hole 196 ») dans le protocole WPA2, jusqu'alors considéré comme le plus sécurisé des mécanismes de sécurité WiFi existants.
Il s'agit d'une méthode permettant à un utilisateur authentifié sur un point d'accès (ayant donc préalablement la connaissance de la clé partagée et s'étant associé sur le point d'accès) d'injecter du trafic à destination des autres machines également associées au même point d'accès, tout en évitant de se faire détecter par le point d'accès. Un pirate disposant de la clé partagée pourrait donc procéder à une attaque de l'homme du milieu, ce qui lui permettrait d'accéder au trafic d'un autre utilisateur connecté, voire de modifier au vol ces informations.
La méthode n'utilise pas de potentielle vulnérabilité de l'algorithme de chiffrement AES sur lequel repose WPA2-CCMP, et n'utilise pas non plus d'attaque par force brute pour casser le mécanisme WPA2. Plus techniquement, la méthode utilise la clé de groupe (GTK, Group Transient Key) qui est commune à toutes les stations associées au point d'accès et qui permet au point d'accès de transmettre des trames chiffrées au contenu similaire à toutes les stations. Cependant la véritable identité de l'expéditeur de ces trames chiffrées n'est pas vérifiée de façon sécurisée.
Cette faille n'a pas été corrigée, cependant la communauté des experts en sécurité a souligné le caractère limité de l'attaque du fait que celle-ci requiert de connaître la clé partagée et ne permet pas de la trouver si elle n'est pas connue.
Le nom Hole 196 (trou 196 en anglais) a été choisi car c'est à la page 196 de la description du standard WPA2 que se trouve la faille exploitée par cette vulnérabilité.

### Vulnérabilité d'octobre 2017 "KRACK"

En octobre 2017, une vulnérabilité baptisée KRACK (Key Reinstallation Attacks) qui permet une attaque du type attaque de l'homme du milieu (en anglais man in the middle) a été révélée$^,$. Cette vulnérabilité concerne la plupart des réseaux wifi publics et privés. Les correctifs sont proposés par la plupart des constructeurs.

### Faille "Krook" de 2020

Une faille de puces WPA2 a été détectée lors des déconnexions d'un réseau Wi-Fi. C'est lors d'une RSA Conference que les experts en sécurité informatique d’ESET ont révélé cette faille qui touche selon les chercheurs des composants électroniques utilisés dans environ 1 milliard de smartphones.

### Dragonblood

En avril 2019, cette attaque met à mal WPA3 sans condamner définitivement cette version. Elle rappelle cependant le besoin constant d'amélioration de la sécurité des réseaux sans fils et la nécessité de mettre à jour les équipements existants avec les normes les plus avancées.

## La sécurité dans le mode pre-shared key

Le mode pre-shared key (PSK, aussi connu comme Personal mode) a été conçu pour les réseaux individuels ou de PME qui ne peuvent se permettre le coût et la complexité d'une solution utilisant un serveur d'identification 802.1X. Chaque utilisateur doit saisir une phrase secrète pour accéder au réseau. La phrase secrète peut contenir de 8 à 63 caractères ASCII ou 64 symboles hexadécimaux (256 bits). Si une phrase secrète sous forme de caractères ASCII est utilisée, elle sera au préalable convertie vers une clé de 256 bits que l'on nomme Pairwise Master Key ou PMK en appliquant une fonction de dérivation de clé PBKDF2 qui utilise le SSID comme sel et 4096 itérations de HMAC-SHA1.
Utiliser une suite aléatoire de caractères hexadécimaux reste plus sûr – une phrase secrète reste, toutes proportions gardées, sujette à une attaque par dictionnaire – mais la clé est alors plus difficile à écrire et à retenir. La plupart des systèmes d'exploitation permettent à l'utilisateur de stocker la phrase secrète sur l'ordinateur (en règle générale sous forme de PMK), afin de ne pas avoir à la saisir à nouveau. La phrase secrète doit rester stockée dans le point d'accès Wi-Fi.
Cependant, les phrases secrètes que les utilisateurs ont l'habitude d'utiliser rendent le système vulnérable aux attaques par force brute sur les mots de passe. Des programmes réalisant ce type d'attaque sur des systèmes WPA-PSK ou WPA2-PSK sont disponibles sur Internet, c'est le cas de WPA Cracker. De plus, le temps nécessaire pour réaliser une attaque peut être réduit par un facteur 20 et plus grâce à l'utilisation de technologies telles que CUDA ou OpenCL tirant parti de la puissance de traitement massivement parallèle des cartes graphiques actuelles, en utilisant par exemple l'outil pyrit.
Ces attaques peuvent être contrecarrées en utilisant conjointement à WPA et à WPA2 un secret d'au moins 5 mots générés par la méthode Diceware ou 14 caractères complètement aléatoires. Pour une sécurité maximum, 8 mots générés par la méthode Diceware ou 22 caractères aléatoires devraient être utilisés. Les phrases secrètes devraient, de plus, être changées dès qu'une personne ayant un accès au réseau n'est plus autorisée à l'utiliser ou bien dès qu'un équipement connecté au réseau est perdu ou compromis.
Certains constructeurs ont tenté d'éviter l'emploi par les utilisateurs de phrases secrètes faibles en fournissant une procédure permettant de générer et de distribuer des clés robustes. Cette procédure est accessible par le biais d'une interface logicielle ou matérielle utilisant un mécanisme externe pour ajouter un adaptateur Wi-Fi à un réseau. Ces mécanismes incluent la pression d'un bouton (pour Broadcom SecureEasySetup et Buffalo AirStation One-Touch Secure Setup) et la saisie logicielle d'un challenge (pour Atheros JumpStart).

## Les différents mécanismes EAP disponibles pour WPA-Enterprise et WPA2-Enterprise

La Wi-Fi Alliance a annoncé l'intégration de mécanismes EAP (Extensible Authentication Protocol) supplémentaires dans son programme de certification pour les modes WPA-Enterprise et WPA2-Enterprise. Ainsi, a-t-on la certitude que les produits certifiés WPA-Enterprise peuvent interopérer entre eux. Auparavant, seul le mécanisme EAP-TLS (Transport Layer Security) était certifié par la Wi-Fi Alliance.
Les différents mécanismes EAP inclus dans le programme de certification sont :
* EAP-TLS (précédemment testé)
* EAP-TTLS/MSCHAPv2
* PEAPv0/EAP-MSCHAPv2
* PEAPv1/EAP-GTC
* EAP-SIM
D'autres mécanismes EAP peuvent être pris en charge par les clients et les serveurs 802.1X. Cette certification est une tentative pour faire interopérer les mécanismes EAP les plus courants. L'échec de la Wi-Fi Alliance à réaliser cette interopérabilité est actuellement un des problèmes majeurs empêchant le déploiement de solutions 802.1X au sein de réseaux hétérogènes.