Comme souvent en informatique, des solutions ont été déployées sans avoir vraiment prévu les risques associés. Mais nous vivons dans un monde de brutes, et tôt ou tard, les besoins de protection nous rattrapent.
(Wired Equivalent Privacy). Basée sur une solution de clé de chiffrement statique partagée par tous les membres d'un même réseau Wi-Fi, avec un algorithme de chiffrement devenu aujourd'hui plutôt faible, il a été clairement démontré que cette protection n'en est plus une, et nous ne nous attarderons pas dessus.
Sachez simplement qu'avec des outils comme airodump, aircrack et aireplay, il est possible, de découvrir une clé WEP en quelques dizaines de minutes, voire moins.
Devant la panique générée par la découverte des failles de WEP, et alors même que les différents partenaires travaillaient à l'élaboration d'une norme destinée à sécuriser les réseaux sans fils, il a fallu mettre en place un procédé de secours : le « Wifi Protected Access », issu des travaux non encore aboutis de la norme qui est depuis finalisée et connue sous le doux nom de 802.11i.
WPA apparaît comme un ensemble de rustines logicielles, destiné à boucher les plus gros trous de sécurité du WEP, tout en ayant comme contrainte de pouvoir fonctionner sur le matériel existant. Il est donc possible en général d'exploiter WPA sur du matériel conçu pour WEP.
WPA n'est finalement qu'un compromis, acceptable si l'on doit intégrer à son réseau du matériel ancien, ne supportant pas les méthodes de chiffrement préconisées par 802.11i.
Ce n'est rien de plus que l'appellation commerciale de la norme 802.11i. Cette norme a été finalisée en 2004 et donc, le matériel n'a des chances d'être compatible que s'il a été conçu aux environs de cette date. Le chiffrement préconisé nécessite la présence d'un composant matériel dédié.
WPA comme WPA2 peuvent s'utiliser de deux manières.
La méthode dite « personnelle », c'est-à-dire celle qui est préconisée pour les particuliers disposant d'un petit réseau peu stratégique, fait appel à une clé de chiffrement partagée, la PSK (Pre Shared Key). Cette clé, au contraire de WEP, ne sert pas directement au chiffrement des données. Elle sert de base à la création de clés dérivées, qui sont non seulement différentes pour chaque session (deux utilisateurs d'un même réseau, même s'ils disposent de la même PSK, utiliseront des clés de session différentes), mais encore d'un usage limité dans le temps. Ces clés sont renégociées fréquemment en cours de session, ce qui rend leur découverte nettement plus difficile.
Reste que toute la sécurité repose sur la PSK qui est commune à tous les utilisateurs, et qu'un secret, plus il est partagé, moins il devient secret.
Cette solution (actuellement WPA2-PSK) reste tout à fait acceptable dans le cas d'un réseau sans fils domestique, à la condition d'utiliser une PSK non évidente. Pratiquement, la clé PSK est une suite numérique, calculée à partir d'une « phrase secrète » en ASCII et du SSID du point d'accès. Il faut une phrase secrète qui satisfasse les règles de non évidence classiques (« Ahjk7£&£_#1-[qht » vaut mieux que « SalutLesMecs », votre nom, votre date de naissance, celle de la petite dernière…).
Ici, nous avons plus de moyens techniques et surtout, plus de besoins de sécurité. Il n'y a pas de clé partagée. Nous ferons appel à un système d'authentification centralisé, allié à un protocole défini par la norme 802.1x.
Typiquement, nous aurons à mettre en place un serveur d'authentification de type RADIUS (Remote Authentication Dial-In User Service) et un point d'accès supportant la norme 802.1x (finalisée en 2001).
Il n'y a, encore une fois, aucun secret partagé, tout le système cryptographique sera construit pendant et après le processus d'authentification, comme nous allons le voir en détail.
Nous allons avoir besoin de plusieurs briques logicielles, dont certaines nous sont déjà familières, d'autres moins.
Un serveur d'authentification est connecté au point d'accès, par réseau filaire. Le type de serveur d'authentification n'est pas défini par les normes, mais clairement, c'est le protocole RADIUS qui est sous-entendu, c'est celui que nous utiliserons. RADIUS est un protocole applicatif, qui s'appuie sur UDP, IP et Ethernet.
Entre le point d'accès et la station cliente, nous sommes sur du 802.11 (WI-FI). Au dessus, nous trouverons 802.1x.
EAP (Extensible Authentication Protocol) va passer au dessus de 802.1x dans les airs et au dessus de RADIUS sur les fils, pour transporter le mode d'authentification choisi (TLS, PEAP, TTLS ou d'autres encore, mais considérés comme moins sûrs).
Dans la suite de cet exposé, nous nous intéresserons surtout à TLS (Transport Layer Security), qui fait appel à des certificats x509 sur le serveur RADIUS comme sur le client.