contexte - ensimagc… · dh : server sends fg;p;ga mod pg k 1 server 5. server signals end of...
TRANSCRIPT
Contexte
Alice honnete
Bob honnete
Eve malhonnete
1
Identification
Qui es tu ?
Je suis Alice !
Bonjour
2
Authentification
Bonjour, je suis Alice
Prouve le !
Preuve
3
Authentification contre identification
I Durant une identification, Charlie obtient le nom
d’Alice.
I Durant une authentification, Charlie obtient une
preuve sur l’identite d’Alice.
I Durant cet exposee, nous verrons comment les utili-
sateurs s’authentifie sur a des services sur Internet.
4
Usurpation d’identite
Bonjour, je suis Alice
Prouve le !
Preuve
5
Attaques
I Usurpation d’identite : Eve arrive a s’authentifier
aupres de Charlie comme etant Alice.
I Vie privee : Eve arrive a suivre les faits et gestes
d’Alice.
I Deni de service : Eve empeche Alice de s’authen-
tifier aupres de Charlie.
6
Authentification par mot de passe
Régénération Enregistrement
StockageAuthentification
7
Enregistrement
I Choix d’un identifiant (login)
I Choix d’un mot de passe
8
Qu’est ce qu’un mot de passe ?
I Un mot de passe est une chaıne de caracteres choisies
arbitrairement par un etre humain !
I Souvent dans une conversation, on utilise le terme
aleatoire a la place d’arbitraire.
I Si un nombre aleatoire peut remplacer un nombre
arbitraire, l’inverse n’est pas vrai.
9
Chaıne de caracteresASCII
0 1 2 3 4 5 6 7 8 9 A B C D E F
000 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
002 SP ! ” # $ % & ’ ( ) * + , - . /
003 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
004 @ A B C D E F G H I J K L M N O
005 P Q R S T U V W X Y Z [ \ ] ˆ
006 ‘ a b c d e f g h i j k l m n o
007 p q r s t u v w x y z { | } ˜ DEL
I Lettres de l’alphabet (majuscules et minuscules)
I Chiffres
I Caracteres speciaux
I Comment composer son mot de passe ?
10
Combinatoire
# min. min.+maj. alphanum. imprimable
3 104 105 105 106
4 105 106 107 107
5 107 108 109 1010
6 108 1010 1010 1011
7 109 1012 1012 1013
8 1011 1013 1014 1015
14 1014 1024 1025 1027
I Il faut integrer tous les types de caracteres.
11
Comment choisir la longueur du mot de passe ?
# min. min.+maj. alphanum. imprimable
3 104 105 105 106
4 105 106 107 107
5 107 108 109 1010
6 108 1010 1010 1011
7 109 1012 1012 1013
8 1011 1013 1014 1015
14 1014 1024 1025 1027
I Il faut un mot de passe d’au moins 12 caracteres.
12
Mesure de la force d’un mot de passe
I Regles imposees a la creation :� Majuscules/minuscules/chiffres/. . . ,
� Longueur.
I “Force du mot de passe” :� Echec = mot de passe faible
� Succes 6= mot de passe fort
� Succes = acces au service
I Confiance relative donc.
I http://bit.ly/1eLPFQN
13
Mot de passe
Mot de passe Frequence
password 32027
123456 25969
12345678 8667
1234 5786
qwerty 5455
12345 4523
dragon 4321
I Les etres humains = mots de passe simples.
14
Stockage des mots de passe
I Comment stocker les mots de passe ?— en clair,
— ou pas en clair.
I Comment verifier un mot de passe ?— memcmp(mdp,mdp stocke),
— ou memcmp(H(mdp),H(mdp stocke)).
15
Stockage des mots de passe
I Eve attaque rarement directement Alice.
I Eve prefere attaquer Bob.
Obtenir les mots de passe de tous les utilisateurs.
I Donc pas une bonne idee de les stocker en clair.
16
Stockage des mots de passeChiffrement
I Option 1 :� mdp chiffre avec une clef,
� gestion clef de chiffrement ( ?),
� mdp dechiffre a la verification.
I Option 2 :� mdp chiffre avec une clef,
� clef partagee avec Alice,
� envoie mdp chiffre par Alice.
17
Stockage des mots de passeHachage
I Solution :� stockage empreinte du mdp,
� envoie empreinte mdp par Alice.
I Intuition : on veut une fonction a sens unique.
Difficile de calculer une pre-image.
18
Fonction a sens unique ?
I Trouver mdp ∈M tel que H(mdp) = d ?
I La reponse depend de 2 parametres :� |M| la taille de l’espace des mdp,
� la distribution des probabilites des mdp.
19
Taille de l’espace des mdp
I Si |M| est petit, Eve peut calculer :
(H(mdp1) , mdp1), · · · , (H(mdpM), mdpM)
I Avec cette table de hachage, Eve peut inverser d.
I Si |M| tres petit → calcul a la volee,
Sinon dictionnaire.
20
Attaque de Hellman
Cryptanalyse Temps Memoire Donnee
Recherche exhaustive 2` 1 1
Dictionnaire 1 (2`) 2` 1
Attaque de Hellman ? ? ?
I L’attaque de Hellman est entre la recherche exhaus-
tive et l’attaque par dictionnaire.
21
Chaıne d’empreinte
s eH H H H
Une chaıne de chiffres est definie par :r0 = s
ri = H(ri−1), 0 < i ≤ t
e = rt
22
Attaque de HellmanPre-calcul
I On construit n chaınes de chiffres avec n points de
depart differents (s1, s2, · · · , sn).
s1 e1
s2 e2
ensn
H
H
H H H
H
HHHH
H H
23
Attaque de HellmanPre-calcul
I On obtient n couples (si, ei).
I On choisit n et t tel que n× t = 2`.
I Le cout memoire M de notre pre-calcul est M = 2n.
I Le cout en temps T de notre pre-calcul est T =
n× t.
24
Attaque de HellmanPhase en ligne
I L’attaquant dispose d’une empreinte d = H(m).
I On recherche le couple (sj, ej) qui contient m.
1. si d = ej alors m = r(j)t−1
2. si d 6= ej, ∀1 ≤ j ≤ n alors
on calcule
{r′1 = H(d)
r′i = H(r′i−1)jusqu’a obtenir r′i = ej.
On a alors m = r(j)t−i−1.
25
Attaque de HellmanPhase en ligne
sj ej
H H H H
H H H HH
d
I Dans le pire cas, on recalcule m = r(j)t−i−1 en partant
de sj en t− 1 operations.
26
Attaque de HellmanAnalyse
I On choisit n = 2`/2 et t = 2`/2
I Recapitulatif :
Cryptanalyse Temps Memoire Donnee
Recherche exhaustive 2` 1 1
Dictionnaire 1 (2`) 2` 1
Hellman (idealise) 2`/2 (2`) 2`/2 1
27
Attaque de HellmanEn pratique
I On a fait l’hypothese que les chaınes sont parfaites :
Toutes les chaınes sont distinctes et couvrent n × t
empreintes possibles.
I Dans la pratique, les chaınes fusionnent !
I Hellman a montre que du fait des collisions la relation
optimale entre `, M et T est donnee par :
2`+1 = T ×M 2.
28
Attaque de HellmanComplete
I Au lieu d’avoir une table composee de n chaınes de
longueur t, on construit t tables.
I On a alors :
• T = t× t,
•M = 2n× t.
I Hellman a propose de prendre t = m = 2`3
29
Attaque de HellmanEn pratique
30
Recapitulatif
Cryptanalyse Temps Memoire Donnee
Recherche exhaustive 2` 1 1
Dictionnaire 1 (2`) 2` 1
Hellman (idealise) 2`/2 (2`) 2`/2 1
Hellman (reel) 22`/3 (2`) 22`/3 1
I Il existe plusieurs ameliorations a l’attaque d’Hell-
man :
• points distinguees de Rivest,
• rainbow table de Oeschlin,
• donnees multiples de Shamir (D > 1).
31
Lutter contre les TMTOs
I Empecher les TMTOs = Emploi de sel !
I d = H(sel||mdp)
I Le sel est public et stocke avec le mot de passe.
I Il est envoye a Alice pour recalculer l’empreinte salee.
I Si sel ∈ [0, n[, le TMTO coute n fois plus cher.
32
Distribution des probabilites des mdp
I |M| est grand maintenant.
I Si les probabilites d’occurrence sont uniformes, on ne
peut pas faire mieux que la recherche exhaustive.
mdp1 mdp2 · · · mdpip1 p2 · · · pi
I On suppose p1 > p2 > p3 > · · · > pi.
I On enumere les mdp par ordre decroissant !
33
Casseurs de mdp
I Casseurs de mdp : JtR, Hashcat. . .
Hardware # 106 MD5/s
Integrated GPU 11
ATI R9 280X 1228
NVIDIA Quadro 600 80
NVIDIA GTX 560 Ti 433
NVIDIA GTX 570 629
AMD HD 7970 2136
AMD HD 6990 3081
34
Casseurs de mdp
I Un casseur de mdp a deux modules :
• derivation de dictionnaire,
• moteurs cryptographiques.
I On doit fournir des dictionnaires :
• dictionnaires existants,
• utilisation de spiders.
35
Compliquer le travail des casseurs
I PBKDF2 : Password-Based Key Derivation Function 2
Fs F
mdp mdp mdp mdp
F F
t iterations
d
I Idee : iterer t fois un MAC (HMAC).
I Alternatives : bcrypt, scrypt ou Argon2.
36
La fuite Yahoo !
I Aout 2013 : vol des donnees de 1 milliard d’utilisateurs.
I ? 2014 : vol des donnees de 500 millions d’utilisateurs.
I Juillet 2016 : vente des mdp (200 millions de compte).
I Decembre 2016 : mise a jour des mots de passe.
I Fin 2016 : 23 actions judiciaires (USA) sont lancees contre
Yahoo !.
38
Perte de donnees et attaques
I Importance de detecter les attaques :� utilisation de canaris (faux comptes),
� honeywords.
I Honeywords a une architecture a 2 serveurs :
� serveur qui stocke plusieurs mdp par compte,
� serveur qui identifie le bon mdp.
39
Protocoles d’authentification
I Password Authentication Protocol
I Challenge-Handshake Authentication Protocol
I Extensible Authentication Protocol
40
Password Authentication Protocol
BobAlice
ack
Verification
login||mdp
I Pas de securite ! (identification sic)
41
Challenge-Handshake Authentication Protocol
BobAlice
ack
Verification
C
R = MD5(ID||pwd||C)
I Attaque contre le digest !
42
Extensible Authentication Protocol
TLS MD5 TTLS Other
Extensible Authentication Protocol
EAP over LAN
PPP 802.5 802.11802.3
43
EAP-TLSTLS 1.2
Client Server
1. Client sends 256-bit random number Rb and supported ciphers
2. Server sends 256-bit random number Rs and chosen cipher
3. Server sends certificate
4. DH : Server sends {g, p, ga mod p}K−1server
5. Server signals end of handshake6. DH : Client sends gb mod pRSA : Client sends {PS}KserverClient and server derive cipher keys Cb, Cs and integrity keys Ib, Isfrom Rb, Rs, PS7. Client sends MAC(dialog, Ib)
8. Server sends MAC(dialog, Is)
9. Client data takes the form {M1,MAC(M1, Ib)}Cb10. Server data takes the form {M2,MAC(M2, Is)}Cs
ClientHello
ServerHello
Certificate
ServerKeyExchange
ServerHelloDone
ClientKeyExchange
ChangeCipherSpec, Finished
ChangeCipherSpec, Finished
Application Data
Application Data
44