22
WEP et Cracker des mots de passe Pierre-Alain Fouque mercredi 27 novembre 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é

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

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é

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é

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é

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é

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é

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é

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é

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é

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é

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é

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é

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é

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é

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é

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é

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 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é

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é

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é

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é

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é

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é

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