Sécurité Wifi : les bases
I. La nature "insécurisée" des réseaux sans fil
Utilisant les ondes radios pour transmettre le signal, les réseaux sans fils sont naturellement insécurisés. La propagation des ondes à travers les airs ne connait pas le confinement localisé et "physiquement protégé" des réseaux filaires.
Dans cette perspective, il semblait légitime et suffisant d'introduire dans le standard IEEE 802.11 un protocole de sécurité assurant autant d'intimité qu'un fil ... Le WEP ( Wired Equivalent Privacy) n'a d'ailleurs que cette seule prétention.
D'un point de vue pragmatique, les implémentations sans fil sont couramment laissées sans aucune mesure de sécurité. Mise en oeuvre facile et rapide, omission justifiée ou non, ignorance sont des éléments qui expliquent cet état de fait. Il suffit de se promener en rue avec un client wifi pour constater que l'on peut se connecter à l'Internet et aux réseaux locaux sans aucune difficulté.
A ce titre, la principale menace des réseaux sans fil est celle du "man-in-the-middle" : une attaque à partir de l'intérieur d'un réseau local. Elle se concrétisera par la présence de "points d'accès voyous" ("rogue APs") ou de clients wifi espions. Ces "intrus" peuvent être placés délibérément avec une volonté de nuisance. Mais le plus grand danger viendrait plutôt des utilisateurs, remplis des meilleures intentions, qui placent du matériel actif pour leur confort personnel ou même professionnel.
Egalement, on citera des attaques bien plus aisées et efficaces à mettre en oeuvre telles que :
- l'attaque par interférence rendant un réseau sans fil inopérant en polluant l'espace d'ondes aussi puissantes sur le même canal utilisé;
- l'attaque du déni de service en tentant d'envoyer des trames de contrôle qui rendent les services ou le matériel hors d'usage.
Aussi, la définition d'un SSID ou d'un filtrage MAC sur le point d'accès ne constituent en rien une sécurité suffisante :
- un logiciel tel que Netstumbler (http://www.netstumbler.com/) ou le logiciel airodump-ng de la suite aircrack-ng permet de connaitre le SSID même lorsqu'il est caché;
- une écoute du traffic permet de prendre connaissance d'adresses MAC autorisées (l'en-tête de trame contenant les adresses MAC ne sont pas encryptés par le WEP) et de les usurper (spoofing).
D'un autre point de vue, les logiciels (firmware, pilotes, systèmes d'exploitation) peuvent présenter des défauts de conception et des failles exploitables.
Enfin, on verra ci-dessous que le protocole WEP n'est pas exempt de faiblesses, ce n'est pas une nouveauté. Sans compétence particulière, une attaque WEP peut être menée uniquement avec des logiciels libres (voir Attaques WEP simple).
Quoi qu'il en soit , pour les petites entreprises ou la maison, le WEP sera mieux que rien. Toutefois, le WPA-PSK est largement disponible aujourd'hui et il augmentera considérablement la sécurité de ces petits réseaux.
II. Présentation brève du protocole WEP
Le WEP (Wired Equivalent Privacy) est le protocole initial de sécurité des réseaux WIFI. Il est déclaré dans le document IEEE 802.11. Le standard définit des méthodes d'authentification et d'encryption.
En matière d'authentification, on trouvera deux méthodes :
- L'authentification ouverte. Il s'agit d'une authentification nulle, pour le principe. Celle-ci consiste seulement à fournir le bon SSID (Service Set ID).
-
L'authentification partagée. Chaque intervenant dispose d'une
même
clé WEP. Le point d'accès envoie un message en clair au client qui
répond avec un message crypté avec la clé WEP. Dans ce cas seul le
client authentifie le point d'accès. Il s'agit d'une authentification
asymétrique.
"Le cryptage consiste à prendre un message, dit « en clair », et à le soumettre à un algorithme mathématique pour produire un texte « crypté ». Le décryptage est la transformation inverse. Les algorithmes de cryptage se servent le plus souvent d'une valeur, appelée clé, qui sert à crypter et à décrypter les données.
Le cryptage WEP utilise le chiffrement continu RC4 inventé par Ron Rivest de RSA Data Security, Inc. (RSADSI). L'algorithme de cryptage RC4 est un chiffrement en continu symétrique qui supporte les clés de longueur variable.
Le chiffrement en continu consiste à exécuter la fonction de cryptage ou de décryptage sur une unité du texte en clair (dans ce cas, la trame 802.11b).
Dans le cryptage symétrique, la clé est un élément d'information qui doit être partagé par les unités d'extrémité pour réaliser le cryptage et le décryptage.
RC4 autorise une clé de longueur variable, qui peut atteindre 256 octets contrairement à d'autres algorithmes dont la clé a une longueur fixe. L'IEEE a spécifié que les unités 802.11 devaient supporter les clés de 40 bits, avec la possibilité d'accepter des clés plus longues. Plusieurs constructeurs proposent le cryptage WEP à 128 bits dans leurs solutions WLAN.
Le protocole WEP est un chiffrement en continu, et il est indispensable de disposer d'un mécanisme pour garantir que le même texte en clair ne générera pas le même texte crypté. L'IEEE a stipulé l'utilisation d'un vecteur d'initialisation (IV) qui doit être concaténé avec la clé symétrique avant de générer le texte crypté en continu.
Ce vecteur d''initialisation est un nombre de 24 bits qui prend donc une
valeur entre 0 et 16 777 215. L'IEEE
suggère mais n'exige pas de modifier le vecteur d'initialisation
pour chaque trame. Comme l'émetteur génère le vecteur d'initialisation
sans schéma ni calendrier prédéfini, ce vecteur doit être envoyé en
clair au récepteur, dans la partie d'en-tête de la trame de données
802.11. Le récepteur peut ensuite concaténer le vecteur
d'initialisation reçu avec la clé WEP (la clé de base) stockée
localement pour décrypter la trame de données.
Comme le montre la figure suivante, l'algorithme RC4 ne crypte pas le texte en clair lui-même mais sert à générer un flux de clé unique pour la trame de données 802.11 concernée en reprenant le vecteur d'initialisation et la clé de base comme clé de cryptage. Le flux de clé unique ainsi obtenu est ensuite combiné avec le texte en clair et le tout est transformé par une fonction mathématique appelée XOR qui produit le texte chiffré."
Partie tirée de Cisco SAFE : Description détaillée de la sécurité pour les réseaux locaux sans fil
Une première faiblesse de la sécurité de base du WIFI est la gestion et la distribution des clés. Un administrateur devra configurer la même clé WEP sur tous les clients Wifi d'un réseau local. On notera que l'identification se fondra seulement sur les périphériques et non sur les utilisateurs.
Primo, la clé WEP unique ne permettra pas d'attribuer des ressources en fonction d'un profil utilisateur. Secundo, un périphique Wifi dérobé remet en cause l'ensemble de la sécurité d'un réseau local en obligeant l'administrateur à reconfigurer l'ensemble des clients. Cette dernière remarque est valable pour tout mécanisme à clé partagée dont WPA-PSK.
"Les cryptoanalystes Fluhrer, Mantin et Shamir (FMS) ont découvert des faiblesses inhérentes à l'algorithme RC4 de programmation des clés. Or l'algorithme RC4 utilisé par WEP se sert d'un vecteur d'initialisation de 24 bits et ne renouvelle pas les clés de cryptage de manière dynamique.
Fluhrer, Mantin et Shamir ont pu montrer que ces faiblesses pouvaient avoir des applications pratiques dans le décryptage des trames 802.11 qui utilisent WEP. Cette attaque se concentre sur une classe élargie de vecteurs d'initialisation faibles qui peuvent être générés par RC4 et met en évidence les méthodes qui permettent de « casser » la clé en utilisant certaines formes récurrentes des vecteurs d'initialisation. L'attaque appelée attaque FMS est pragmatique, mais le plus déconcertant est quelle est totalement passive. L'attaque FMS présente la dérivation théorique d'une clé WEP sur un éventail de paquets entre 100 000 et 1 000 000 cryptés avec la même clé."
Des informations techniques sur l'attaque FMS peuvent être obtenues sur :
- http://www.workingwireless.net/wireless/Documents/wireless_extreme/wep_attack.html
- http://www.cs.umd.edu/~waa/wireless.html
- http://www.securiteinfo.com/crypto/802_11.shtml
En améliorant les attaques statistiques mise en oeuvre par Korek avec du trafic capturé, on obtient d'excellents résultats.
Supposons qu'un attaquant connaisse exactement le texte clair d'un message crypté. Il peut utiliser cette connaissance pour construire des paquets cryptés. La procédure implique qu'il construise un nouveau message en calculant la somme de contrôle en l'occurence CRC-32 et en appliquant des changements minimes (bits flips) sur le trafic crypté original pour changer le texte en clair. Ce paquet peut être accepté par le point d'accès ou une station mobile légitime.
On peut aussi mener une attaque plus insidieuse qui vise à changer quelques bits dans le message et d'adapter correctement le CRC sans aucune connaissance du paquet pour en obtenir une version cryptée correcte. Par exemple, il pourrait être possible avec une connaissance partielle d'altérer des commande shell d'une session Telnet.
On peut encore aller plus loin. Un attaquant ne connait rien d'une trame capturée mais pourra comme expliqué plus haut modifier les bits d'adresses IP de destination et l'envoyer par une passerelle sur l'Internet. Vu que ce trafic quitte le réseau sans fil, il sera envoyé en clair sur l'inter-réseau.
IV. Solutions
Aujourd'hui, on peut dire que la sécurité sans fil est meilleure que les services fournis par défaut sur le fil. Les solutions proposées aujourd'hui proposent toutes une authentification 802.11 ouverte :
solution | authentification | Encryption | standard 802.11 |
---|---|---|---|
WPA Home ou WPA-PSK | Open | TKIP (PreSharedKey) | IEEE 802.11i |
WPA2 Home ou WPA2-PSK | Open | TKIP ou AES (PreSharedKey) | IEEE 802.11i |
WPA Enterprise | EAP/802.1x | TKIP | IEEE 802.11i |
WPA2 Enterprise | EAP/802.1x | TKIP ou AES (PreSharedKey) | IEEE 802.11i |
Les solutions pour les petits réseaux utilisent une clé partagée avec du TKIP (grosso modo du WEP amélioré) ou de l'AES avc authentification nulle et pour de plus grosses implémentation on peut utiliser une authentification des utilisateurs par un serveur Radius avec EAP/802.1x.
Encryption
Authentification
PEAP MS-chapv2 | EAp-fast | eap-tls | leap | |
---|---|---|---|---|
Tunnel TLS préalable | Oui | Oui | Oui | Non |
Autorisation Radius | Oui, MS-ISA, Cisco ACS, Juniper Odyssey (anc. Funk), MeetingHouse (nouv. Cisco) |
Oui, Cisco ACS | Oui, ouvert | Oui, Cisco ACS |
Serveur de certificat | Oui | Non | Oui | Non |
Certificat côté serveur | Oui | Non | Oui | Non |
Certificat côté client | Non | Non | Oui | Non |
Crédits utilisés | Mot de passe Windows | Mot de passe Windows, ... | ||
DB d'authentification | ||||
Standardisation | ||||
Pilotes | ||||
Avantages | ||||
Désavantages |