Le WEP : Wireless Encryption Protocol
Le Wireless Encrytion Protocol (Wep pour les les intimes) est basé
sur le standard RC4 auquel Microsoft a largement contribué. Le wep est
un cryptage "léger" (clef de 64 ou 128 bits) dont le plus gros défaut
est celui d'être statique. Mais attention car sur ces 64 ou 128 bits 24
passent en clair ! Ce qui nous donne un cryptage effectif en 40 bits
pour du 64 et du 104 pour le 128 !
D'où viennent ces 24 bits non cryptés ? Il s'agit des vecteurs d'initialisation(IV).
Comment le wep agit sur les paquets ?
>
il laisse passer les entêtes en clair (headers), en dessous les IV sont
les vecteurs d'initialisation, ils passent également en clair... et
c'est également le cas de l'ID qui correspond aux identifiants du
paquets.
> Le wep est fondé sur une clef secrète partagée en
noeuds du réseau. Petit problème de conception à l'origine de bien des
maux : cette clef secrète utilise 24 bits du vecteur d'initialisation
(qui passe en clair).
Qu'en déduisons nous ?
1/ qu'une clef de 64 bits ne fait en fait que 40 bits qui seront extrapolables des 24 qui passent en clair
2/Qu'une clef de 128 ne fait que 104 bits qui seront extrapolables des 24 qui passent en clair
----------------802.11 Header----------------------
---IV 0---|---IV1---| --- IV 2 ---|--------ID---------- |
---snap0---|---snap1---|---snap2---|---Protocole ID---|
====================================
--------------Couche des données--------------------|
====================================
----------checksum (contrôle des datas)----------------
====================================
Toutes
les attaques sur cet algorythme reposent sur le seul fait que le champ
IV soit en clair. Une simple analyse de traffic avec ethereal renseigne
ainsi sur les services disponibles, mais aussi sur la méthode de
chiffrement et d'authentification... et même la taille de la clef wep.
La négociation d'adresses mac apparait aussi assez clairement et on
peut en déduire ou non la restriction à l'authentification sur les
adresses mac.
Les paquets à intercepter deviennent intéressants
lorsque l'on obtient deux paquets ayants le même IV. Cette étape peut
être longue si le traffic est trop faibles, dnas quel cas un
bidouilleur ingénieux injectera du traffic artificiel en ayant
préalablement déterminé la taille de la clef utilisée pour se "forger"
un paquet à insérer dans tout ce traffic : un outil comme AirJack fait
ce genre de petites gâteries.
Pour les non initiés un cryptage
dit "statique" implique que les clefs générées doivent être changées
manuellement. On estime un cryptage fiable à partir du moment où le
temps nécessaire pour casser cette clef est supérieur à celui du
renouvellement de la cette même clef.
Le gros hic du WEP, c'est que
pour avoir la paix, il faudrait changer manuellement cette clef tous
les 1/4 d'heures, puisqu'à peine 20 minutes sont nécessaires si la
qualité de la clef n'est pas satisfaisante . Dans un tel contexte, il
s'avère que le WEP est, disons le avec des mots simples, un cryptage
non satisfaisant.
* Airsnort :
Airsnort est un logiciel
qui détecte les points d'accès Wlan, sniff les packets qui y
transitent, puis par analyse statistique à l'aide d'un script perl,
WEPCrack, qui comme son nom l'indique, chargé au démarage de Airsnort,
analysera les paquets crytés et effectuera un calcul statistique pour
déterminer la clef Wep du réseau écouté. WEPCRACK est une
implementation Perl de la faille décrite par Fluhrer, Mantin, et Shamir.
Cet outil se compose de 4 scripts :
# WeakIVGen.pl
Ce premier scrippt vous permet de spécifier une clef pour que WEPCrack génère le fichier "IVFile.log"
# prism-getIV.pl
ce
script permet la lecture des dumps Prism (prismdump) ou de votre
capture ethereal pour tenter d'y retrouver les intervals les plus
faibles dans le traffic encrypté. SI ces intervals faibles sont
trouvés, ils sont placés dans le fichier "IVFile.log"
Voici les commandes:
prismdump | prism-getIV.pl
prismdump > votre fichier de capture
prism-getIV.pl votre fichier de capture
# WEPCrack.pl
c'est
lui qui lit le IVFile.log, et utilise les sorties encryptées avec les
intervals faibles pour analyser statistiquement et déterminer par cette
approche la clef privée WEP, ça ne marche pas toujours du premier coup,
il vous faut de temps à autre réaliser des vérifications additionnelles
pour renforcer l'interval de confiance.
# prism-decode.pl
Ce
script lit les fichiers capturés par prismdump ou Ethereal puis décode
les trames hexadécimales. Ce script accepte les entrée STDIN ou celles
d'un fichier spécifié
ex
prismdump | prism-decode.pl
ou
prismdump > votre fichier de capture
puis enfin
prism-decode.pl votre fichier de capture

