Attaquer WEP: la théorie

Pourquoi est ce qu'on insiste tant pour que plus personne n'utilise WEP? Eh bien vous devez sans doute le savoir mais il existe tout un tas de vulnérabilités liées à ce protocole et ça, on le doit notamment à une mauvaise implémentation des IV ainsi qu'à l'algorithme de chiffrement RC4.

Le premier gros problème de WEP c'est la taille des clés dont la taille est beaucoup trop faible entre 5 et 13 caractères. La seconde c'est le principe même d'IV. 

Comme nous l'avons vu précédemment, l'IV (de 24 bits) est concaténé avec la clé de chiffrement afin de créer un simulat d'aléatoire:

Les 24 bits utilisés pour coder l'IV permettent de créer environ 17 millions d'IV's uniques. Parmis ces 17 millions d'IV disponibles certains ont très vite été considéré comme étant beaucoup trop faibles pour être utilisé. D'ailleurs une attaque cryptographique entière sur le protocole RC4 repose sur ces IV's faibles: l'attaque FMS. Pour la petite anecdote, l'exploitaion de ces IV's faibles à forcer les constructeurs à modifier, à plusieurs reprise, le firmware de leurs points d'accès Wi-Fi afin d'interdire leurs utilisations.

Au delà de ces IV's faibles se cachent un autre problème: le nombre trop peu élévé d'IV's disponibles. En effet l'une des règles d'utilisation du protocole RC4 implique qu'une clé de chiffrement ne doit pas être utilisé pour chiffrer deux messages différents. Or comme nous l'avons vu nous pouvons au maximum créer un peu moins de 17 millions de clé de chiffremnt différentes et, vous vous en doutez, une borne Wi-Fi émet un nomber assez conséquent de paquets. De manière générale il a été montré qu'il était possible de collecter tous les IV's (et donc toutes les clés de chiffrement possibles) en écoutant passivement un réseau pendant 5 heures (et encore, ça c'était il y a plus de 10 ans).

Alors pourquoi est ce que ça devient dangereux de chiffrer deux messages avec le même IV? Eh bien parce que mathématiquement nous obtenons ces égalités:

M1 XOR C = C1
M2 XOR C = C2

Ce qui équivaut à dire que:

M1 XOR M2 = C1 XOR C2

Or comme nous connaissons C1, C2 et M1 nous pouvons obtenir M2

La seconde règle d'utilisation de l'algorithme RC4 n’est pas respectée non plus puisqu’il n’y a aucun filtrage des données obtenues après l’utilisation de l’algorithme du RC4. En fait on devrait jetter les 512 premiers octets afin d’éviter de tomber sur une clé dites faible c’est à dire facilement crackable. Par exemple, les clés qui commencent par « 00 00 FD » ont 14 % de chance de produire une sortie qui commence par « 00 00 ». On peut donc procéder à une attaque statistique afin de casser RC4.

Dernière règle, on ne doit pass chiffrer plus de 2^36 octets de données avec une même clé ce qui, encore une fois, n'est évidemment pas respecté à cause du faible nombre d'IV disponibles.

Toutes ces vulnérabilités cryptographiques offrent un certain nombre d'attaque contre le WEP que je détaillerai dans des articles à part.