WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) •...
Transcript of WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) •...
![Page 1: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/1.jpg)
WEP et Cracker des mots de passe
Pierre-Alain Fouque
mercredi 27 novembre 13
![Page 2: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/2.jpg)
WEP, WPA et RC4...
mercredi 27 novembre 13
![Page 3: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/3.jpg)
RC4-WEP• Réseaux sans fil IEEE 802.11
• WEP Wired Equivalent Privacy
• Authentification et Chiffrement
• WEP: Clé 64 bits (24 bits d’IV + 40 bits de clé)
• 5 heures pour exhauster
• Crackers: Wep_crack, Wepdecrypt, AirSnort
• Clé plus longues (128 à 256 bits) ne sont pas des solutions !
mercredi 27 novembre 13
![Page 4: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/4.jpg)
WPA• Wi-Fi protected access ⊂ IEEE 802.11i
• Fonctionne 802.11b (11 Mbit/s sur bande 2,4 Ghz), 802.11a (54 Mbit/s sur 5 Ghz),...
• Mise à jour logicielle
• améliore confidentialité et authentification
• Chiffrement: TKIP (chiffrement), MIC (Message Integrity Check), IV=48 bits (évite rejeu)
mercredi 27 novembre 13
![Page 5: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/5.jpg)
TKIP (Temporal Key Integrity Protocol)
• Clé temporaire 128 bits (partagée entre clients et point d’accès radio)
• Combine la clé avec adresse MAC du client et IV de 16 octets pour fournir la clé
• TKIP utilise RC4 (comme WEP) mais la clé temporaire est changée tous les 10 000 paquets
• WEP utilise une clé statique (rarement modifiée)
• Authentification (absente dans WEP): 802.1x
• EAP (Extensible Authentication Protocol)
mercredi 27 novembre 13
![Page 6: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/6.jpg)
802.11i
• Nouveau standard: modification matérielle
• utilisation de l’AES (coprocesseur dédié)
• Mode CCM (Counter mode with CBCMAC)
mercredi 27 novembre 13
![Page 7: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/7.jpg)
RC4 PRGA• Stream cipher conçu par Ron Rivest (Ron’s Cipher 4)
• très facile d’implémentation en logiciel
• PRGA Algo: S initialisé à une permutation aléatoirei := 0j := 0while GeneratingOutput: i := (i + 1) mod 256 j := (j + S[i]) mod 256 swap values of S[i] and S[j] K := S[(S[i] + S[j]) mod 256] output Kendwhile
mercredi 27 novembre 13
![Page 8: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/8.jpg)
Initialisation (KSA Algo)
• RC4-WEP: IV suivi de la clé K
• Si longueur de clé <256 octets, on boucle
• Attaque de Fluhrer, Matin, Shamir (2001)
• Fréquence des premiers octets sorties non random
• Klein (2005): aircrack-ptw: 128-bit keys (<1 minute)
for i from 0 to 255 S[i] := iendforj := 0for i from 0 to 255 j := (j + S[i] + key[i mod keylength]) mod 256 swap values of S[i] and S[j]endfor
Permutation initiale
Permutation finale aléatoire
mercredi 27 novembre 13
![Page 9: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/9.jpg)
Attaque FMS (2001)• 128 bits = 3 octets d’IV initialement et 13 de clés k
• Supposons qu’on connaisse les n octets de début de la clé K et on veut retrouver l’octet K[n]=k[n-3](K[0]=IV[0],K[1]=IV[1],K[2]=IV[2],K[3]=k[0],...K[n-1]=k[n-4])
• Rem: on peut connaître l’état de la permutation S à l’issu de la n-ième étape de l’algo KSA et la valeur j
• Supposons: K[0]=IV[0]=n et K[1]=IV[1]=255. Supposons les valeurs de S ne sont modifiées qu’une seule fois dans KSA (aux indices 0,1, et n)
mercredi 27 novembre 13
![Page 10: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/10.jpg)
Attaque FMS 2001
• Supposons: K[0]=IV[0]=n et K[1]=IV[1]=255. Supposons les valeurs de S ne sont modifiées qu’une seule fois dans KSA (aux indices 0,1, et n)
• Alors z1=Sn-1[jn-1+Sn-1[n]+K[n]] avec jk la valeur de j à la k-ième itération de la boucle KSA et Sk la valeur de la table S à cette itération
• Les valeurs en bleues sont connues et en rouge ce qu’on recherche
• Facile de trouver K[n]
mercredi 27 novembre 13
![Page 11: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/11.jpg)
Analyse Attaque FMS• Sachant que IV[0]=n et IV[1]=255 (valeurs qui
ne sont pas chiffrées), quelle est la probabilité que les 3 valeurs ne soient pas modifiées plus d’une fois ? ≈1/e3
• Attaque: il faut utiliser plusieurs IV pour calculer la fréquence d’apparition de la bonne valeur de K[n]
• TP: simuler les chiffrements avec ces IVs• http://perso.eleves.ens-rennes.fr/~pkarp892/rc4KR1729.c (fichier seul complet)
• http://perso.eleves.ens-rennes.fr/~pkarp892/RC4KR.tar.bz2 (archive avec le squelette du fichier et le PRNG & Makefile)
mercredi 27 novembre 13
![Page 12: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/12.jpg)
Mots de passe
mercredi 27 novembre 13
![Page 13: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/13.jpg)
Entropie et nombre de mot de passe
• Généralement peu d’entropie
• alphabet de (26*2+10+8)=70 caractères
• longueur 6 caractères: (70)6=117649000000≈236.8
• longueur 8 caractères:708=249
• En général, pas complètement aléatoire... et l’entropie est réduite: H(X)=-∑ipilog(pi) X=source
• pi=fréquence d’apparition des lettres, si pi=1/#A, H(X)=36.8 pour longueur 6 caractères
mercredi 27 novembre 13
![Page 14: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/14.jpg)
NTLM mot de passe• En général, les mots de passe ne sont pas salés• LM Hash: Ne gère pas la casse
• Le mot de passe est séparé en deux éléments de 7 caractères.
• Si le mot de passe a une longueur inférieure à 14 caractères il est complété par des caractères nuls.
• Le hash de chaque morceau est calculé séparément. Ces valeurs sont utilisées pour créer 2 clés DES, une pour chaque 7-
octet. Chacune des deux clés est utilisée pour chiffrer la chaîne constante “KGS!@#$%”
• Les deux hashs concaténés forment le hash LM sur 128 bits.
• Salage: on stocke Hash(pw || sel)=h, sel
• Quand on reçoit pw’, on vérifie si H(pw’||sel)=h ?
• Coûte cher à l’adversaire de tester les sels
mercredi 27 novembre 13
![Page 15: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/15.jpg)
Authentification Windows• LM Hash: si on utilise les 95 caractères imprimables ASCII, il y
a 9514≈292 hachés différents
• Comme on découpe en 2 parties, il y a 957≈246 mots de passe de 7 caractères et comme la casse ne compte pas, seulement 697≈243
• Cassage par force brute en quelques heures...
• Attaque par dictionnaire: précalculer tous les hachés
• Pas de sels: technique pour éviter les attaques par dictionnaire
• Détecter petit mot de passe: termine par le chiffré de la clé 0, 0xAAD3B435B51404EE
• NTLM hash: MD4(mot de passe)=haché sur 128 bitsmercredi 27 novembre 13
![Page 16: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/16.jpg)
Logiciels• Attaque par dictionnaire / Rainbow Tables
• Logiciels • Brutus
• Cain and Abel
• Crack
• Aircrack-ng
• John the Ripper
• Airodump-ng
• L0phtCrack
• Metasploit Project
• Ophcrack
mercredi 27 novembre 13
![Page 17: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/17.jpg)
Rainbow Table
• Amélioration par rapport aux tables de Hellman (1977) pour rechercher des clés DES si on connaît un bloc A, DESK(A)
• Proposée par Philippe Oeschlin à l’EPFL en 2003
• Idée principale: Faire un gros précalcul en calculant toutes les valeurs (K,DESK(A)) et faire un compromis temps/mémoire efficace
mercredi 27 novembre 13
![Page 18: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/18.jpg)
Tables de Hellman• Idée: Faire des chaînes et ne retenir que la
première et la dernière valeurs
• Supposer que la valeur recherchée est quelque part dans la table, itérer la fonction et vérifier si on tombe sur une valeur finale d’une chaîne qui est dans la table
• Si c’est le cas, à partir de la valeur initiale de la chaîne correspondante, itérer la fonction f jusqu’à retrouver C=DESK(A)
• En général: f(K)=lsb(DESK(A)) de poids faibles
mercredi 27 novembre 13
![Page 19: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/19.jpg)
Analyse et Problèmes
• Analyse de complexité: N taille espace de recherche
• supposons que t soit la longueur des chaînes
• si on a m chaînes, on couvre une fraction mt/N
• si mt2≈N, on va avoir des collisions
• t tables avec t fonctions f différentes et chaque table contient mt valeurs
mercredi 27 novembre 13
![Page 20: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/20.jpg)
Rainbow tables• Arranger différemment les calculs pour
réduire qu’une collision interne devienne une collision pour le reste de la chaîne
mercredi 27 novembre 13
![Page 21: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/21.jpg)
Mots de passe et Rainbow Tables• Trouver un mot de passe à partir de son empreinte
(haché). Eg. le mot de passe Fgpyyih804423 est retrouvé en 160 secondes...
mercredi 27 novembre 13
![Page 22: WEP et Cracker des mots de passe - DIENSfouque/WEP+Rainbow.pdf · Initialisation (KSA Algo) • RC4-WEP: IV suivi de la clé K • Si longueur de clé](https://reader033.fdocuments.us/reader033/viewer/2022043005/5f8d26fc0d9377753160ddc3/html5/thumbnails/22.jpg)
Conclusions• RC4+WEP:
• RC4 rapide (mais sécurité non maîtrisée)
• Initialisation mauvaise: Mettre la clé avant l’IV
• Rainbow Tables:
• Inverser une fonction avec taille de l’entrée petite ou faible entropie
• Fonctionne aussi avec de petites clés par exemple communications GSM avec A5/1
• Saler les mots de passe !mercredi 27 novembre 13