36
Mots de Passe 1 École de technologie supérieure (ÉTS) Département de génie électrique MGR850 Hiver 2014

Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Mots de Passe

1 École de technologie supérieure (ÉTS) Département de génie électrique

MGR850 – Hiver 2014

Page 2: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Pourquoi utiliser des mots de passe ??

Question de coût :

– les mots de passe sont gratuits

• C’est nous qui les choisissons et non pas le contraire

• A cause de leur caractère pratique :

– un administrateur système peut réinitialiser un mot de

passe plus facilement que d’attribuer un nouveau

doigt à un utilisateur …

Mot de passe

2

Page 3: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Mot de passe

3

Source: http://www.kweeper.com/calvin/image/243431

Page 5: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Comparaison clés vs. mots de passe

• Clés cryptographiques, par exemple 64 bits

– Il y a 264 clés différentes possibles

– La clé peut être choisie aléatoirement : un attaquant doit alors tenter

263 clés en moyenne

• Mots de passe, par exemple de 8 caractères

– Chaque caractère a en théorie 8 bits soit 256 valeurs possibles

différentes : il y a donc en théorie 2568 = 264 mots de passe

possibles

– Mais les utilisateurs ne choisissent pas leur mot de passe

aléatoirement : un attaquant a nettement moins de 263 mots de

passe à tester (attaques par dictionnaire).

Mot de passe

6

Page 6: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Choix de mots de passe

Étude sur les mots de passes choisis par 218 étudiants en 1ère année de

psychologie :

• 45% utilisent leur propre nom pour au moins l’un de leurs mots

de passe

• 2/3 des mots de passe sont conçus à partir d’une caractéristique

personnelle, la plupart du reste l’étant à partir de celles de

proches

• Noms propres et dates d’anniversaire sont les principales

informations utilisées pour construire 50% des mots de passe

Mot de passe

7

Page 7: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Choix de mots de passe

• Quasiment tous les sondés réutilisent des mots de passe, et 2/3

des mots de passe sont des doublons (e.g., HelloHello)

• 1/3 des sondés ont déjà oublié un mot de passe, et plus de la

moitié les conservent par écrit

Source: Alan S. Brown, Elisabeth Bracken, Sandy Zoccoli, King Douglas

(2004). Generating and remembering passwords. Applied Cognitive

Psychology, 18, 641-651.

Mot de passe

8

Page 9: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Étude sur 10,000 comptes de Windows

Live capturés en 2009

La plupart des mots de passes sont de longueur

de 6 à 9 caractères. En moyenne 8 caractères.

42 %; utilisent seulement les lettres minuscules

: de ‘a’ jusqu’à ‘z’.

3 %; utilisent un mélange de lettres minuscules et

majuscules.

19 %; des mots de passe numériques

30 %; mélange de lettres et de chiffres

6 %; mélange de lettres et de chiffres et autres

caractères.

Mot de passe

10

Source: http://www.acunetix.com/blog/news/statistics-from-10000-leaked-hotmail-passwords/#

TOP 10 – Mot de passe vs. frequence

123456 64

123456789 18

alejandra 11

111111 10

alberto 9

tequiero 9

alejandro 9

12345678 9

1234567 8

estrella 7

Page 11: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Mot de passe

12

Top 25 1. Password

2. 123456

3. 12345678

4. qwerty

5. abc123

6. monkey

7. 1234567

8. Letmein

9. trustno1

10. dragon

11.Baseball

12.111111

13. iloveyou

14. master

15. sunshine

16. ashley

17. bailey

18. passw0rd

19. shadow

20. 123123

21. 654321

22. superman

23. qazwsx

24.michael

25. football

Source: http://splashdata.com/splashid/worst-passwords/

SplashData Inc. a révélé son top 25 des pires

mots de passe de l’année 2011,

avec 'Password' (Oui, c’est ca) et '123456' en

tête de liste

Password est encore dans le top

des tops en 2012!!!

Page 13: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Qualité des mots de passe

Mot de passe

14

Mots de passe Pour le craquer il faut Un PC

P4s$W0Rd En 3 jours

W$W2012W%z En 58 années

MGR850$%CoursH14 En12 trillion d’années

$MgR850$X-H14_etS En 931 trillion years

Page 15: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Mot de passe

16

• Loi de Moore (Intel)

Théoriquement, le nombre de transistors qui peuvent

être montés dans un circuit intégré double

approximativement tous les deux ans.

Facteurs accélérant la faiblesse des mots de passe !

Popularité des quad core (et nombre de cœurs encore

plus élevé) processeurs.

Les nouvelles méthodes de programmation qui

permettent à n'importe quel PC d’utiliser le GPU sur

certaines cartes graphiques

Page 16: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Mot de passe

17

• Il a été prouvé possible de cracker des mots de passes

a l’aide de carte graphique (GPGPU computing ) Exemple avec une carte graphique Radeon 5770 et d’outil de

brute-force et le NTLM hash des mots de passe

Le mot de passe “fjR8n” peut être craqué

‒ Avec un CPU: 24 seconds, à un taux de 9.8 million d’essaies

de mot de passe par seconde.

‒ Avec le GPU, moins d’1 seconde à un taux de 3.3 billion

d’essaies de mot de passe par seconde.

Un mot de passe de 6 caractères (pYDbL6),

‒ Un CPU : 1 heure 30 minutes

‒ GPU: seulement 4 secondes

Un mot de passe de 7 caractères (fh0GH5h),

‒ CPU : 4 jours,

‒ GPU: 17 minutes 30 seconds

Source: http://mytechencounters.wordpress.com/2011/04/03/gpu-password-cracking-crack-a-windows-password-using-a-graphic-card/

Page 17: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Attaques sur les mots de passe

Un attaquant peut :

• Cibler un compte particulier

• Cibler n’importe quel compte sur le système

• Cibler n’importe quel compte sur n’importe quel système

• Un seul mot de passe vulnérable peut suffire!

Chemin d’attaque usuel :

• Extérieur -> compte utilisateur -> compte administrateur

Mot de passe

20

Page 18: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Échecs répétés d’authentification

Supposons que le système verrouille un compte utilisateur après 3

échecs d’authentification (mot de passe invalide).

Combien de temps doit durer ce verrouillage ?

• 15 secondes

• 15 minutes

• Jusqu’à ce que l’administrateur déverrouille manuellement le

compte utilisateur ?

Avantages et inconvénients de chaque approche ?

Mot de passe

21

Page 19: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Piratage de Twitter, 5 janvier 2009 http://www.wired.com/threatlevel/2009/01/professed-twitt/

• Un américain de 18 ans a piraté twitter par force brute

• Cause : Twitter autorisait un nombre illimité d’échecs

d’authentification consécutifs.

• Le mot de passe du compte administrateur ‘Crystal’ a été facile a

deviner ‘happiness’… !

• Il a ensuite réinitialisé les mots de passe des comptes ‘officiels’ de

Barack Obama, Britney Spears et Fox News… et a commencé à

diffuser de faux messages…

Mot de passe

22

Page 20: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Stockage des mots de passe

• Ce n’est pas une bonne idée de stocker les mots de passe de tous

les utilisateurs tels quels au risque que le fichier tombe entre les

mains de mauvaises personnes …

• Comment valider le mot de passe présenté par un utilisateur ?

• Solution cryptographique :

– stocker la valeur de hachage du mot de passe de chaque utilisateur : h(MdP)

Mot de passe

23

Page 21: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Stockage des mots de passe

• Quand un utilisateur s’authentifie, on calcule la valeur de hachage du

mot de passe fourni et on la compare à la valeur stockée h(MdP).

• Si un pirate capture le fichier de mots de passe, il n’obtient que les

valeurs hachées

• Il lui faut alors trouver un mot de passe m’ tel que h(m’) soit égal à la

valeur stockée dans le fichier : une attaque par dictionnaire est

toujours possible

Mot de passe

24

Page 22: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Une attaque par dictionnaire plus rapide…

• L’attaquant peut accélérer considérablement la vitesse d’une attaque

par dictionnaire en pré-calculant une table arc en ciel (Rainbow table)

contenant les valeurs de hachage de tous les mots du dictionnaire.

– Taille de NTHASH tables ~ 8.5 GB

• Ce calcul n’est à faire qu’une seule fois : la table ainsi constituée peut

être réutilisée pour chaque nouvelle attaque

• Ainsi, lorsqu’il obtient un fichier contenant les valeurs de hachage, il

lui suffit de les « rechercher »dans sa table pour trouver un mot de

passe acceptable

Mot de passe

25

Page 23: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

26

Rainbow Table (création)

Page 24: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Rainbow Table (recherche)

27

Page 25: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Rainbow Table (collision)

28

Page 26: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

29

Rainbow Table (les couleurs)

Page 27: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

30

Rainbow Table (recherche) • Le mot de passe de l’empreinte 19330d1d ?

– Empreinte dans la table MAIS mdp non stocké (le 4 ème).

– Mdp(19330d1d)= R3oHoR2oHoR1oH(aaaa)=Ipwu

• Le mot de passe de l’empreinte 44d06651 ?

– Empreinte absente de la table,Il faut chercher la bonne entrée:

– HoR3(44d06651), HoR3oHoR2(44d06651) Bingo !

– HoR3oHoR2(44d06651)= da09d7dc 2 ème mdp dans RBT

– Mdp(44d06651)= R1oH(qwer)=gsur

1 4 3 2

1 4 3 2

?

?

Page 28: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

• L'ajout d'un sel (salt) consiste à concaténer une chaîne aléatoire au mot de passe avant de l'envoyer dans la fonction de hachage

• Le sel est stocké avec le mot de passe dans la base de données

• Résout le problème des rainbow tables populaires • Augmente la complexité de l'attaque dictionnaire

define('SALT', '377fba9d324d42e92dd21a003ec414a9'); function computeHash($plainText) { return sha1(SALT . $plainText); }

31

Hachage + sel naïf

Page 29: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

• Sel (salt) global: permet toujours le pré-calcul de rainbow tables: • Permet d'attaquer la base de données en entier avec une attaque

de dictionnaire ou exhaustive

• Mot de passes identiques vont toujours être évidents à

l'œil

• CWE-760: Use of a One-Way Hash with a Predictable Salt

32

Sel naïf - Problèmes

Page 30: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

• Ajouter le sel (salt) different pour chaque mot de passe au lieu de globalement.

• On stocke le sel directement dans le champ password. • Les attaquants doivent maintenant tenter de craquer chaque

entrée de la table de mot de passe séparément

C'est une très bonne solution! Améliorations possibles?

define('SALT_LENGTH', 9); function generateHash($plainText, $salt = null) { if ($salt == null) { $salt = substr(md5(uniqid(rand(), true)), 0, SALT_LENGTH); } else { $salt = substr($salt, 0, SALT_LENGTH); } return $salt . sha1($salt . $plainText); }

33

Sel naïf - Solution

Page 31: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

• Problème: Les fonctions de hachage ont été conçues pour être performantes pourtant la vitesse est votre ennemi ici car rapide veut dire qu'un attaquant peut rapidement faire son attaque exhaustive (rainbow table rapidement calculée)

• Solution

o En plus du sel par mot de passe, o On fait 1000 itérations de l'empreinte dans une boucle o ou encore, on concatène 1000 fois le mot de passe et le

sel avant de faire l'empreinte • Ici on ralentit l'attaquant de 1000 fois mais on ne peut se

permettre se genre de ressources pour authentifier un usager

Presque parfait, que manque-t-il?

34

Key stretching

Page 32: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Contre-mesure

• Stocker les mots de passe des utilisateurs hachés avec un ‘sel’

aléatoire s, différent pour chaque utilisateur : h(s || MdP)

• Pour chaque utilisateur, on stocke (s, h(s || MdP)) : s n’est pas secret,

cela ressemble à un vecteur d’initialisation (IV)

• On peut valider facilement le mot de passe fourni par un utilisateur

pour s’authentifier

• Un attaquant sera obligé de recalculer un dictionnaire de valeurs de

hachage complet pour chaque utilisateur

Mot de passe

35

Page 33: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

• La réutilisation de mots de passe est un fait confirmé. Afin de défendre ses utilisateurs, il faut appliquer une méthode de hachage appropriée.

• Si vous choisissez: "j'ai oublié mon mot de

passe" et que vous recevez votre mot de passe en clair, pensez-y bien!

36

Conclusion

Page 34: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

1. Nicolas Pioch, Authetification, 19 mai 2009,

http://maubkn.imingo.net/phpdown/rubrique.php?id_rubrique=61

2. How a cheap graphics card could crack your password in under a

second. PC Pro blog

http://www.pcpro.co.uk/blogs/2011/06/01/how-a-cheap-graphics-

card-could-crack-your-password-in-under-a-

second/#ixzz2BJgguqDM

3. http://howsecureismypassword.net/

37

Références

Page 35: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Références

4. Password Reuse Is All Too Common, Research Shows, http://www.pcworld.com/businesscenter/article/219303/password_reuse_is_all_too_common_research_shows.html

5. CWE-257: Storing Passwords in a Recoverable Format, http://cwe.mitre.org/data/definitions/257.html

6. Password lists, http://www.skullsecurity.org/wiki/index.php/Passwords

7. Rainbow Tables, http://en.wikipedia.org/wiki/Rainbow_table 8. Free Rainbow

Tables, http://www.freerainbowtables.com/en/tables2/ 9. IGHASHGPU, attaques exhaustives par GPU,

http://www.golubev.com/hashgpu.htm

38

Page 36: Mots de Passe - Cours...Choix de mots de passe • Quasiment tous les sondés réutilisent des mots de passe, et 2/3 des mots de passe sont des doublons (e.g., HelloHello) • 1/3

Références

CWE-522: Insufficiently Protected Credentials, http://cwe.mitre.org/data/definitions/522.html CWE-759: Use of a One-Way Hash without a Salt, http://cwe.mitre.org/data/definitions/759.html CWE-760: Use of a One-Way Hash with a Predictable Salt, http://cwe.mitre.org/data/definitions/760.html CAPEC-49: Password Brute Forcing, http://capec.mitre.org/data/definitions/49.html The Importance of Being Canonical, Robert David Graham, http://erratasec.blogspot.com/2009/02/importance-of-being-canonical.html Enough With The Rainbow Tables: What You Need To Know About Secure Password Schemes, Thomas Ptacek, http://chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables-what-you-need-to-know-about-s.html PHP Security Consortium: Password Hashing, http://phpsec.org/articles/2005/password-hashing.html Portable PHP password hashing framework, Openwall, http://www.openwall.com/phpass/ Passwords lists and dictionaries, http://www.skullsecurity.org/wiki/index.php/Passwords Stronger Key Derivation via Sequential Memory-Hard Functions, Colin Percival, http://www.tarsnap.com/scrypt/scrypt.pdf

39