contexte - ensimagc… · dh : server sends fg;p;ga mod pg k 1 server 5. server signals end of...

44
Contexte Alice honn^ ete Bob honn^ ete Eve malhonn^ ete 1

Upload: others

Post on 24-Feb-2021

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

Contexte

Alice honnete

Bob honnete

Eve malhonnete

1

Page 2: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

Identification

Qui es tu ?

Je suis Alice !

Bonjour

2

Page 3: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

Authentification

Bonjour, je suis Alice

Prouve le !

Preuve

3

Page 4: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 5: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

Usurpation d’identite

Bonjour, je suis Alice

Prouve le !

Preuve

5

Page 6: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 7: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

Authentification par mot de passe

Régénération Enregistrement

StockageAuthentification

7

Page 8: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

Enregistrement

I Choix d’un identifiant (login)

I Choix d’un mot de passe

8

Page 9: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 10: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 11: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 12: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 13: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 14: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 15: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 16: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 17: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 18: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 19: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 20: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 21: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 22: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 23: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 24: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 25: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 26: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 27: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 28: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 29: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 30: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

Attaque de HellmanEn pratique

30

Page 31: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 32: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 33: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 34: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 35: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 36: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 37: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

Perte de donnees et attaques

http://bit.ly/19xscQO

37

Page 38: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 39: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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

Page 40: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

Protocoles d’authentification

I Password Authentication Protocol

I Challenge-Handshake Authentication Protocol

I Extensible Authentication Protocol

40

Page 41: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

Password Authentication Protocol

BobAlice

ack

Verification

login||mdp

I Pas de securite ! (identification sic)

41

Page 42: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

Challenge-Handshake Authentication Protocol

BobAlice

ack

Verification

C

R = MD5(ID||pwd||C)

I Attaque contre le digest !

42

Page 43: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

Extensible Authentication Protocol

TLS MD5 TTLS Other

Extensible Authentication Protocol

EAP over LAN

PPP 802.5 802.11802.3

43

Page 44: Contexte - EnsimagC… · DH : Server sends fg;p;ga mod pg K 1 server 5. Server signals end of handshake 6. DH : Client sends gb mod p RSA : Client sends fPSgKserver Client and server

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