password cracking - ssticactes.sstic.org/sstic07/password_cracking/sstic07... · rainbow tables...
TRANSCRIPT
![Page 1: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/1.jpg)
www.thalesgroup.com/securitysystems
14 J
une ,
200
7
Password crackingEtat de l’art et avancées
![Page 2: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/2.jpg)
www.thalesgroup.com/securitysystems
14 J
une ,
200
7
IPV6 snakes on a planeFeaturing le vote électronique
![Page 3: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/3.jpg)
www.thalesgroup.com/securitysystems2
14 J
une ,
200
7
Casser les mots de passe?
Kraal:a721a…Phil:affa9…Sid:0decf…Cancun:7ca44…Nono:e6967…Jme:4f596…Bartavelle:3dc68…
![Page 4: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/4.jpg)
www.thalesgroup.com/securitysystems3
14 J
une ,
200
7
Casser les mots de passe?
Kraal:+backPhil:*pasgros*Sid:JamaisSansMonAXCancun:easyfr4gNono:<3patrickJme:faitchierBartavelle:troutrou
![Page 5: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/5.jpg)
www.thalesgroup.com/securitysystems4
14 J
une ,
200
7
Pourquoi faire?
Pourquoi casser les mots de passe?
� Audit des mots de passe� Résistance à une attaque online
� Élévation des privilèges� Mots de passe identiques sur différents systèmes
� Malheureusement, ypcat
� Remplir le rapport� Le plus beau trophée
� Statistiques
� Le fun� Mots de passe ridicules
![Page 6: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/6.jpg)
www.thalesgroup.com/securitysystems5
14 J
une ,
200
7
Le stockage des mots de passe
Message Sel
Hachage
Mot de
passe
« haché »
Conversion
Haché
« stocké »Condensat
![Page 7: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/7.jpg)
www.thalesgroup.com/securitysystems
14 J
une ,
200
7
Techniques de cassage
![Page 8: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/8.jpg)
www.thalesgroup.com/securitysystems7
14 J
une ,
200
7
Calcul distribué
Processus parallèle
� Casser N mots de passes à la fois sur N hôtes
� Comment distribuer le travail?� Générer le Nième mot de passe
� Optimisations?� Multiples travaux de cassage
� Le problème des graines
![Page 9: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/9.jpg)
www.thalesgroup.com/securitysystems8
14 J
une ,
200
7
Rainbow Tables
Générer des une chaînes
� MDPn+1 = Réduction( Hachage ( MDPn ) )
La fonction de réduction
� Est surjective (de l’ensemble des hachages vers l’ensemble des MDP àtester)
� Consiste à générer le Nième mot de passe d’un ensemble� Changement de base
� Markov
![Page 10: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/10.jpg)
www.thalesgroup.com/securitysystems9
14 J
une ,
200
7
Dictionnaires et mutateurs
De nombreux mots de passe sont construits en faisant varier un mot connu:
� Modification de la casse
� Ajouts de chiffres / caractères spéciaux en fin de mot de passe
� Écriture phonétique
En fonction des cultures d’entreprises, une attaque par dictionnaire permet de révéler entre 30% et 80% des mots de passe (avec un bon dictionnaire).
![Page 11: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/11.jpg)
www.thalesgroup.com/securitysystems10
14 J
une ,
200
7
Attaque par force brute
Consiste à tester tous les arrangements de N caractères dont la taille est inférieure à une certaine valeur
Pas très malin, mais utile dans certaines circonstance
� Il est facile d’ordonner les mots de passe, et rapide de connaître le nième mot de passe sans générer les précédents
� Permet de garantir la découverte de mots de passe courts
� Dur de faire plus rapide
lapiklapillapimlapinlapiolapiplapiqlapirlapislapitlapiulapivlapiwlapixlapiylapizlapjalapjb
![Page 12: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/12.jpg)
www.thalesgroup.com/securitysystems11
14 J
une ,
200
7
Méthodes « à l’arrache » : john
Utilise une méthode probabiliste fonction de la fréquence d’apparition des lettres
� Très rapide
� Il est presque impossible de générer le nième mot de passe sans calculer les précédents
� « Entraîner » le programme avec des dictionnaires de différents langages ne semble pas avoir beaucoup d’effet
� Plus efficace que la force brute
lappylappalappolappilappYlapprlapp2lappAlapp$lapp3lappElappblapinlapielapitlapiplapidlapiglapi1
![Page 13: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/13.jpg)
www.thalesgroup.com/securitysystems12
14 J
une ,
200
7
Méthodes « scientifiques » : chaînes de Markov
Utilise également une méthode probabiliste fonction de la fréquence d’apparition des lettres
� Moyennement rapide
� Il est trivial de générer le nième mot de passe sans calculer les précédents
� Ne permet de générer qu’une quantité de mots de passe finie
� N’est actuellement proposée par aucun outil public
lapililapilllapilolapillapimalapimlapinalapindlapinelapinilapinnlapinolapintlapinlapiolapiplapirlapisalapise
![Page 14: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/14.jpg)
www.thalesgroup.com/securitysystems13
14 J
une ,
200
7
Les chaînes de Markov?
Pour une chaîne de degrés n, nous supposons que:
� La probabilité d’apparition d’une lettre dans un mot de passe est fonction des n précédentes lettres
� La probabilité qu’un mot de passe soit sélectionné est égal au produit des probabilités d’apparition de toutes ses lettres
� Le but du jeu est de ne sélectionner que les mots dont la probabilitéd’apparition est inférieure à une certaine valeur
P(lapin) = P(l) . P(a|l) . P(p|a) . P(i|p) . P(n|i)
ln(P(lapin)) = ln(P(l)) + ln(P(a|l)) + ln(P(p|a)) + ln(P(i|p)) + ln(P(n|i))
-10.ln(P(lapin)) = -10.ln(P(l)) – 10.ln(P(a|l)) –10.ln(P(p|a)) – 10.ln(P(i|p)) – 10.ln(P(n|i))
= P’(lapin)
![Page 15: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/15.jpg)
www.thalesgroup.com/securitysystems14
14 J
une ,
200
7
Les chaînes de Markov?
Après avoir sélectionné un seuil maximum N, on désigne par EN l’ensemble des mots de passe x tels que P’(x)<N
� Calculer la quantité de mots de passe contenus dans EN
� Ordonner les éléments de EN
� Extraire le Nième élément de EN
� Évaluer la quantité de mots de passe à casser contenus dans ENTaux de découverte
0
10
20
30
40
50
60
70
80
90
100
0 100
200
300
400
500
600
700
Probabilité markovienne
Tau
x
![Page 16: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/16.jpg)
www.thalesgroup.com/securitysystems15
14 J
une ,
200
7
Le Graal du consultant
� Il est possible d’assigner une « note » à un mot de passe
� Il est possible de faire des statistiques
� Il est possible d’avoir des indicateurs
� C’est néanmoins un bon critère de force
![Page 17: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/17.jpg)
www.thalesgroup.com/securitysystems
14 J
une ,
200
7
En pratique
![Page 18: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/18.jpg)
www.thalesgroup.com/securitysystems17
14 J
une ,
200
7
Outils utilisés : classiques
� John the Ripper� Supporte tous les formats de stockage communs
� De nombreux patches� Amélioration des performances
� Support de nouveaux ciphers
� Mutateurs efficaces� Langage spécifique (!= brainfuck)
� Bonnes optimisations
� Bob the Butcher� Excellent nom
� Fonctionne (ou pas)
� Seulement force brute
� Roadmap alléchante
� Projet officieusement mort
![Page 19: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/19.jpg)
www.thalesgroup.com/securitysystems18
14 J
une ,
200
7
Outils utilisés : compromis temps mémoire
� Rainbowcrack� Très populaire
� Supporte de nombreux types de hachages
� Ne pas essayer de lire le source
� Peu efficace
� Ophcrack� Efficace
� Interface graphique
� Pas très souple
![Page 20: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/20.jpg)
www.thalesgroup.com/securitysystems19
14 J
une ,
200
7
Les biais des outils
Choix de la langue, de la disposition du clavier
� La distribution des caractères varie selon les langues
� Les caractères spéciaux ne sont pas toujours (jamais) supportés
� Les choix de charset ne sont pas toujours heureux� RainbowCrack selectionne les caractères spéciaux suivants
dans alphanum+14: !@#$%^&*()-_+= et le caractère espace
� Ça ne couvre que 12.8% des occurrence de caractères spéciaux
� On peut en couvrir 99% en selectionnant: .-!* et espace
� Sans parler des caractères non ASCII > 127
![Page 21: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/21.jpg)
www.thalesgroup.com/securitysystems20
14 J
une ,
200
7
Comparaisons des outils
0
10
20
30
40
50
60
70
80
90
100
0,001 0,01 0,1 1 10 100
Markov
John "classique"
Brute Force
John incremental charset de base
John incremental charset fr
Markov + BF 2 chars
![Page 22: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/22.jpg)
www.thalesgroup.com/securitysystems
14 J
une ,
200
7
Techniques d’optimisation
![Page 23: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/23.jpg)
www.thalesgroup.com/securitysystems22
14 J
une ,
200
7
Premier round MD4 - description
Le premier round effectue l’opération suivante:a’ = RotationGauche(a + ((b & c) | (~b & d)) + X[0], 3)
Aveca = 0x01234567, b = 0x89abcdef, c = 0xfedcba98, d = 0x76543210
X[0] : 4 premiers octets du message à hacher
ab cd X
etnon
et
ou
+
+
rot
a’
and ecx, ebxnot ebxand ebx, edxor ecx, ebxadd eax, ecxadd eax, [esi]ror eax, 3
![Page 24: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/24.jpg)
www.thalesgroup.com/securitysystems23
14 J
une ,
200
7
Contraintes d’optimisation
� Ordonnancement, choix des instructions� Dépendances entre les instructions
� Unités d’exécution parallèles
� Hyperthreading
� Gestion de la mémoire� Présence en cache
� Niveau de cache
� Vitesse de la mémoire
![Page 25: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/25.jpg)
www.thalesgroup.com/securitysystems24
14 J
une ,
200
7
Premier round MD4 – dans le CPU
and ecx, ebxnot ebxand ebx, edxor ecx, ebxadd eax, ecxadd eax, [esi]ror eax, 3
Load
Pipeline
Sens de traversée
Cycle : 0
![Page 26: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/26.jpg)
www.thalesgroup.com/securitysystems25
14 J
une ,
200
7
Premier round MD4 – dans le CPU
and ecx, ebxnot ebxand ebx, edxor ecx, ebxadd eax, ecxadd eax, [esi]ror eax, 3
and ecx, ebxLoad
Pipeline
Sens de traversée
Cycle : 1
![Page 27: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/27.jpg)
www.thalesgroup.com/securitysystems26
14 J
une ,
200
7
Premier round MD4 – dans le CPU
and ecx, ebxnot ebxand ebx, edxor ecx, ebxadd eax, ecxadd eax, [esi]ror eax, 3
and ecx, ebx
not ebx
Load
Pipeline
Sens de traversée
Cycle : 2
![Page 28: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/28.jpg)
www.thalesgroup.com/securitysystems27
14 J
une ,
200
7
Premier round MD4 – dans le CPU
and ecx, ebxnot ebxand ebx, edxor ecx, ebxadd eax, ecxadd eax, [esi]ror eax, 3
and ecx, ebx
not ebxLoad
Pipeline
Sens de traversée
Cycle : 3
![Page 29: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/29.jpg)
www.thalesgroup.com/securitysystems28
14 J
une ,
200
7
Premier round MD4 – dans le CPU
and ecx, ebxnot ebxand ebx, edxor ecx, ebxadd eax, ecxadd eax, [esi]ror eax, 3
not ebx
Load
Pipeline
Sens de traversée
Cycle : 4
![Page 30: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/30.jpg)
www.thalesgroup.com/securitysystems29
14 J
une ,
200
7
Premier round MD4 – dans le CPU
and ecx, ebxnot ebxand ebx, edxor ecx, ebxadd eax, ecxadd eax, [esi]ror eax, 3
and ebx, edx
Load
Pipeline
Sens de traversée
Cycle : 5
![Page 31: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/31.jpg)
www.thalesgroup.com/securitysystems30
14 J
une ,
200
7
Premier round MD4 – SIMD
SIMD : Single Instruction Multiple DataUne instruction est exécutée sur un vecteur
MMX : 8 vecteurs de 64 bits (soit 2 entiers 32 bits)SSE : 8 vecteurs de 128bits (soit 4 entiers 32 bits)SSE 64bits : 16 vecteurs de 128bits (soit 4 entiers 32 bits)
a0/a1/a2/a3b0/b1/b2/b3
c0/c1/c2/c3d0/d1/d2/d3 X0/X1/X2/X3
etnonet
ou
+
+
rot
a’0/a’1/a’2/a’3
![Page 32: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/32.jpg)
www.thalesgroup.com/securitysystems31
14 J
une ,
200
7
Processeur CELL
Processeur multicore cadencé à 3.2GHzUn cœur PPC64 classique, mais lentEn théorie 8 cœurs « SPE », dont 6 utilisables sur PS3 sous linux
Spécificités des cœurs SPE:Instructions vectoriellesJeu d’instructions complet128 registres de 128 bits256ko de mémoire dédiéePas d’accès direct à la RAM centrale
![Page 33: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/33.jpg)
www.thalesgroup.com/securitysystems32
14 J
une ,
200
7
L’enfer du CELL
� Choix des algorithmes� La génération des MDP candidats est
pénible sur les SPU
� Casse tête des transferts de mémoire asynchrones
� Écriture du programme� Deux assembleurs différents dans un
même fichier ELF
� L’assembleur des SPU est parfait
� Challenge de l’élimination des sauts
� La PPU est largement plus lente que les SPU
![Page 34: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/34.jpg)
www.thalesgroup.com/securitysystems33
14 J
une ,
200
7
Illustration : interdépendances
lqr TMP2_0, (md4_buffer+in*16*PARA+0);lqr TMP2_1, (md4_buffer+in*16*PARA+16);lqr TMP2_2, (md4_buffer+in*16*PARA+32);lqr TMP2_3, (md4_buffer+in*16*PARA+48);xor TMP1_0, tc0, td0;xor TMP1_1, tc1, td1;xor TMP1_2, tc2, td2;xor TMP1_3, tc3, td3;and TMP1_0, TMP1_0, tb0;and TMP1_1, TMP1_1, tb1;and TMP1_2, TMP1_2, tb2;and TMP1_3, TMP1_3, tb3;xor TMP1_0, TMP1_0, td0;xor TMP1_1, TMP1_1, td1;xor TMP1_2, TMP1_2, td2;xor TMP1_3, TMP1_3, td3;a TMP2_0, TMP2_0, ta0;a TMP2_1, TMP2_1, ta1;a TMP2_2, TMP2_2, ta2;a TMP2_3, TMP2_3, ta3;a TMP1_0, TMP1_0, TMP2_0;a TMP1_1, TMP1_1, TMP2_1;a TMP1_2, TMP1_2, TMP2_2;a TMP1_3, TMP1_3, TMP2_3;roti ta0, TMP1_0, rot;roti ta1, TMP1_1, rot;roti ta2, TMP1_2, rot;roti ta3, TMP1_3, rot;
lqr TMP2_0, (md4_buffer+in*16*PARA+0);
xor TMP1_0, tc0, td0;
and TMP1_0, TMP1_0, tb0;
xor TMP1_0, TMP1_0, td0;
a TMP2_0, TMP2_0, ta0;
a TMP1_0, TMP1_0, TMP2_0;
roti ta0, TMP1_0, rot;
![Page 35: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/35.jpg)
www.thalesgroup.com/securitysystems34
14 J
une ,
200
7
Les FPGA
� Qu’est ce que c’est?
� C’est pas mal …� Seule la logique nécessaire est « cablée »
� Ça ne coûte presque rien
� C’est amusant
� … mais pas top� Logique de programmation incomparable aux CPUs
� Très pénible à débugger
� Compétence électronique nécessaires pour exploiter pleinement
![Page 36: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/36.jpg)
www.thalesgroup.com/securitysystems35
14 J
une ,
200
7
Performances des FPGA
� Moi� MD4
� 7M mdp/s
� 75$
� Copacobana� 120 puces
� 4 cœurs par puce
� 120M DES/s par cœur
� Casse DES en moins de 14 jours
� 10.000$
![Page 37: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/37.jpg)
www.thalesgroup.com/securitysystems36
14 J
une ,
200
7
Comparaison entre tout ça
� CPU « standard »� Déjà présents
� Compétence répandue
� C’est déjà ça
� CELL� Console de jeux achetée par la société
� Plaisir de programmation
� Compétence plus rare
� Parfait pour jouer
� FPGA� Meilleur rapport vitesse/prix
� Exotique
� Demande une compétence rare
� Parfait pour les machines dédiées
![Page 38: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/38.jpg)
www.thalesgroup.com/securitysystems
14 J
une ,
200
7
Conclusion
![Page 39: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/39.jpg)
www.thalesgroup.com/securitysystems38
14 J
une ,
200
7
Conseil de choix de mot de passe
� Stockage du mot de passe� Inutile d’utiliser un mot de passe très fort en LM
� Caractères spéciaux� Un caractère accentué rendra le cassage impossible
� Sauf par HSC
� Ne *jamais* utiliser un mot de passe ridicule� Sautera toujours aux yeux dans les rapports d’audit
� Critères habituels� Longueur
� Taille du charset
� Est impossible à mémoriser
![Page 40: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/40.jpg)
www.thalesgroup.com/securitysystems39
14 J
une ,
200
7
Attaques futures
� Meilleures méthodes de choix de mots de passe candidats� Markov degrés supérieur
� Heuristiques
� Autres
� Rainbowtables� Abandon de RainbowCrack
� Fonction de réduction markovienne
� Bob the Butcher� Solution ultime, sur le papier
![Page 41: Password cracking - SSTICactes.sstic.org/SSTIC07/Password_Cracking/SSTIC07... · Rainbow Tables Générer des une chaînes MDP n+1 = Réduction( Hachage ( MDP n) ) La fonction de](https://reader036.vdocument.in/reader036/viewer/2022070718/5ede0595ad6a402d66694921/html5/thumbnails/41.jpg)
www.thalesgroup.com/securitysystems
14 J
une ,
200
7
Questions / RéponsesMerci de votre attention