Présentation du protocole WEP Les réseaux sans-fil de type WLAN (Wireless Local Area Networks), sont de plus en plus utilisés dans les entreprises en raison de leur facilité de déploiement et de leur coût relativement faible. Les caractéristiques des WLAN sont décrites dans la norme IEEE 802.11 (ISO/IEC 8802-11). Cette norme définit le protocole WEP (Wired Equivalent Privacy) comme protocole de sécurité pour les réseaux sans-fils. Comme son nom l’indique, il est censé être aussi sécurisé qu’un réseau câblé. Il a été conçu pour éviter l’écoute clandestine des données qui transitent sur un WLAN par toute personne munie d'une carte Wi-Fi et située dans le périmètre de réception des ondes émises par les autres équipements. Le WEP repose sur un algorithme de chiffrement par flots à clé symétrique : RC4. Algorithme RC4 RC4 est un algorithme de génération de bits pseudo aléatoires. Il permet, à partir d’une clé secrète d’obtenir une séquence binaire aléatoire et unique de même longueur du texte clair. Ensuite, il procède à faire un XOR bit par bit pour obtenir la forme chiffrée. Le destinataire va faire un XOR entre la séquence reçue et la séquence aléatoire originale pour retrouver le message en clair. Propriétés d’une ou eXclusif (XOR) : -facile à implémenter en hardware -lorsqu’on applique XOR 2 fois, on obtient la valeur d’origine Cryptage : Clef ⊕ texte clair = > texte crypté Décryptage : Clef ⊕ texte crypté = > texte clair Problème : Transmettre la séquence aléatoire Solution : Utiliser une séquence de chiffrement pseudo aléatoires (keystream). RC4 peut produire des bits aléatoires en continu à partir d’une table d’états donnée. Si le destinataire peut reconstruire la table d’états donnée, il pourra régénérer la suite aléatoire et déchiffrer le message. La table d’états (permutation) est construite par le KSA à partir de la clé de chiffrement. La clé sert à configurer la table d’états et la table d’états sert à générer un flux binaire pseudo-aléatoire (PRGA). Key Scheduling Algorithm (KSA) Algorithme d’initialisation de RC4 : K est une cle de longueur L. S est une permutation des entiers de 0 à 255. Initialisation de la permutation initiale for i in 0 to 255 do S[i] := i end for j := 0 Mélange de S dépendant de K for i in 0 to 255 do j := (j + S[i] + K[i % L]) % 256 swap(S[i], S[j]) end for Une fois son état interne initialisé, RC4 peut générer un par un des octets pseudo aléatoires. Pseudo Random Generator Algorithm (PRGA) i := i + 1 j := j + S[i] swap(S[i], S[j]) octet := S[(S[i] + S[j]) mod 256] retourner octet Schéma de la génération d’un octet par RC4