Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of...

Post on 24-Feb-2021

10 views 0 download

Transcript of Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of...

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

Perte de donnees et attaques

http://bit.ly/19xscQO

37

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