Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Mots de passe et mécanismes d’authentification (Thomas Pornin)

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Piratage informatique
Piratage informatique
Chargement dans…3
×

Consultez-les par la suite

1 sur 32 Publicité

Mots de passe et mécanismes d’authentification (Thomas Pornin)

Les mots de passe sont le mécanisme d'authentification le plus courant, à l'interface entre les utilisateurs humains et les protocoles cryptographiques. Choisir et gérer des mots de passe, et les utiliser pour authentifier des utilisateurs, est un travail complexe. Dans cette présentation, nous verrons comment choisir un bon mot de passe, estimer son entropie, et l'utiliser dans un protocole d'authentification. Nous verrons aussi comment on attaque des mots de passe (dictionnaires, "rainbow tables") et comment on se protège de ces attaques. Nous finirons par un aperçu des protocoles dits "PAKE" (Password-Authenticated Key Exchange) qui permettent de résoudre le problème intrinsèque des mots de passe, à savoir l'augmentation de puissance des ordinateurs face à la stagnation de la puissance des cerveaux humains.

Les mots de passe sont le mécanisme d'authentification le plus courant, à l'interface entre les utilisateurs humains et les protocoles cryptographiques. Choisir et gérer des mots de passe, et les utiliser pour authentifier des utilisateurs, est un travail complexe. Dans cette présentation, nous verrons comment choisir un bon mot de passe, estimer son entropie, et l'utiliser dans un protocole d'authentification. Nous verrons aussi comment on attaque des mots de passe (dictionnaires, "rainbow tables") et comment on se protège de ces attaques. Nous finirons par un aperçu des protocoles dits "PAKE" (Password-Authenticated Key Exchange) qui permettent de résoudre le problème intrinsèque des mots de passe, à savoir l'augmentation de puissance des ordinateurs face à la stagnation de la puissance des cerveaux humains.

Publicité
Publicité

Plus De Contenu Connexe

Les utilisateurs ont également aimé (20)

Similaire à Mots de passe et mécanismes d’authentification (Thomas Pornin) (15)

Publicité

Plus par Hackfest Communication (14)

Plus récents (20)

Publicité

Mots de passe et mécanismes d’authentification (Thomas Pornin)

  1. 1. ´ Mots de passe et mecanismes d’authentification Thomas Pornin Hackfest 2010 Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 1 / 29
  2. 2. Plan 1 Notions fondamentales 2 Stockage 3 Authentification 4 Conclusion Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 2 / 29
  3. 3. Notions fondamentales ´ Definition ´ Definition Un mot de passe est une information confidentielle, qu’un utilisateur ´ ´ ´ ´ peut memoriser et reproduire precisement dans un dispositif d’entree. ´ Il s’agit de faire le lien entre une identite physique et le monde ´ numerique (des 0 et des 1...). Mot et passphrase NIP mots de passe graphiques Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 3 / 29
  4. 4. Notions fondamentales ´ Concurrent : biometrie ´ ´ ` Biometrie : des informations attachees a l’utilisateur : empreintes digitales reconnaissance faciale ´ scan retinien ` Problemes : ´ ´ L’information est specifique mais pas forcement confidentielle. ´ ´ L’information biometrique n’est pas precise. ´ ´ ´ ` La specificite n’est pas verifiable a distance. ´ L’information n’est pas detachable. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 4 / 29
  5. 5. Notions fondamentales ` Concurrent : carte a puce ` ` ˆ ´ Carte a puce : l’information secrete est sous le controle d’un materiel ´ ´ blinde capable de s’en servir pour des operations cryptographiques complexes. ` Problemes : Cout (production, distribution). ˆ Importante latence initiale. La carte n’est pas attachee a l’utilisateur −→ on rend l’utilisateur ´ ` responsable. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 5 / 29
  6. 6. Notions fondamentales Entropie ´ Definition ˆ L’entropie est une mesure de ce qu’un mot de passe aurait pu etre. entropie de n bits = en essayant des mots de passe possibles, on trouve le bon en, en moyenne, 2n−1 essais. ´ L’entropie qualifie le processus de selection du mot de passe, pas le ˆ mot de passe lui-meme. Les utilisateurs choisissent des mots de passe de faible entropie. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 6 / 29
  7. 7. Notions fondamentales Entropie : exemples et mesure 6 lettres minuscules : 266 ≈ 228.2 Deux lettres, deux chiffres, deux lettres, deux chiffres : ix71yn45 di30lz43 to71sy30 np37kj76 entropie : 264 × 104 ≈ 232.1 ´ Quand tous les mots de passe possibles ne sont pas equiprobables, la ´ mesure de l’entropie est plus compliquee. John the Ripper : outil de craquage par essais de mots courants et variantes. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 7 / 29
  8. 8. Notions fondamentales Faiblesse des mots de passe 1980 : vs 25 kOps/s Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 8 / 29
  9. 9. Notions fondamentales Faiblesse des mots de passe 1980 : vs 25 kOps/s 2010 : vs 25 GOps/s Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 8 / 29
  10. 10. Notions fondamentales Faiblesse des mots de passe 1980 : vs 25 kOps/s 2010 : vs 25 GOps/s Les mots de passe sont devenus un million de fois plus faibles en 30 ans. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 8 / 29
  11. 11. Notions fondamentales Imposer un bon mot de passe Encadrer le choix est difficile (quality meter vs entropie). L’utilisateur est hostile : ´ ´ ´ la securite n’est pas une fonctionnalite ´ ` ´ ´ ı ´ le perimetre de securite est mal maˆtrise ´ grand inventivite dans le contournement On peut tenter de responsabiliser l’utilisateur (inapplicable dans de nombreux contextes). Entropie atteignable en pratique : environ 32 bits. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 9 / 29
  12. 12. Stockage Contexte : stockage password, data ´ ´ ` ` Contexte : authentification sur un canal protege aupres d’un systeme ` ˆ ´ sur . On s’inquiete des conditions de stockage cote serveur. ˆ serveur Web SSL (https://) /etc/passwd ou /etc/shadow Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 10 / 29
  13. 13. Stockage Hachage Une fonction de hachage est une transformation : ´ portant sur des donnees binaires arbitraires avec une sortie de taille fixe ´ publique et deterministe rapide ´ irreversible et sans collisions Exemples : MD5, SHA-1, SHA-256, Tiger. On peut aussi ´ deriver un hachage d’une fonction de chiffrement par blocs. ´ Principe : on stocke le mot de passe hache. On recalcule le hachage ´ lors de la verification. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 11 / 29
  14. 14. Stockage Attaque efficace Attaque basique : on essaye des mots de passe possibles. PC Intel Core2 Q6600 : 48 millions SHA-1 par seconde GPU NVidia 9800 GTX+ : 160 millions SHA-1 par seconde ´ Un mot de passe de 32 bits d’entropie ne resiste que 13 secondes ! Contremesure : rendre le hachage plus lent : ´ hacher la concatenation de 10000 copies du mot de passe ´ hacher la sortie recursivement ´ Ceci ralentit l’attaquant et l’utilisateur legitime. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 12 / 29
  15. 15. Stockage Attaques et partage Partage : l’attaquant fait un hachage pour attaquer plusieurs mots de passe. ` Attaque parallele : l’attaquant a une copie de /etc/passwd ` (/etc/shadow) et cherche a obtenir le mot de passe d’un utilisateur quelconque. ´ ´ Table precalculee : les hachages de nombreux mots de passe ´ ´ courants sont stockes dans une table triee : l’attaque est une simple lecture. ´ ´ Google est une grosse table precalculee. Exemple : chercher 721a9b52bfceacc503c056e3b9b93cfa . Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 13 / 29
  16. 16. Stockage ´ Compromis temps/memoire de Hellman (1980) ´ Le compromis temps/memoire de Hellman est une technique de ´ ´ compression d’une table precalculee. H R H R H H R H π1 −→ v1 −→ π2 −→ v2 −→ π3 −→ · · · −→ vt−1 −→ πt −→ vt ´ On ne stocke que les debuts et fins de chaˆne (π1 , vt ). Pour l’attaque, ı ´ on part du hachage attaque et on recalcule la chaˆne correspondante. ı Pour supporter les collisions de chaˆnes, il faut plusieurs fonctions de ı ´ reduction R, et plusieurs tables. Cout : ˆ ´ stockage divise par t l’attaque necessite t 2 invocations de H ´ Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 14 / 29
  17. 17. Stockage Rainbow tables (2003) Une rainbow table est une optimisation sur le compromis de Hellman : H 1 R H 2 R H H Rt−1 H π1 −→ v1 −→ π2 −→ v2 −→ π3 −→ · · · −→ vt−1 −→ πt −→ vt Moins de collisions de chaˆnes, donc moins de tables. Le cout CPU est ı ˆ ´ divise par deux. Variantes : fuzzy / thick / thin rainbow tables. Cout initial ˆ La construction de la table doit passer par tous les mots de passes attaquables. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 15 / 29
  18. 18. Stockage Salt ´ Definition ` Une salt est un parametre public qui modifie le hachage d’un mot ´ de passe (la salt selectionne la fonction de hachage). ´ Idealement, chaque mot de passe utilise une salt unique. ´ Moyen simple : choisir une salt aleatoire de taille suffisante pour que la ´ reutilisation soit hautement improbable : 16 octets sont plus que suffisants ´´ ´ une nouvelle salt pour chaque mot de passe cree ou change ´ ´ la salt est stockee en clair avec le hache Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 16 / 29
  19. 19. Stockage Exemple ` Obtenu sur un systeme Linux (Ubuntu 10.04) : $6$NmmN5L0O$vqOf3DuGNf.CHVpIcJZ9u2LmVS.NWhifwipwp fmZVMMQxamKXAlVGg0VMo1ScMQsSBtdXbrssLO/MpSKh7rLz. $ ´ separateur 6 fonction de hachage (6 = SHA-512) NmmN5L0O salt vqOf3D... ´ mot de passe hache (encodage Base64) ´ Le hachage est une mixture compliquee qui implique environ 5000 invocations de SHA-512 et de multiples insertions du mot de passe et de la salt. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 17 / 29
  20. 20. Authentification Contexte : authentification password, data ` Contexte : authentification a distance ; l’attaquant peut agir sur le canal de transmission. HTTP PPP (RTC, ADSL) appariment Bluetooth Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 18 / 29
  21. 21. Authentification HTTP : Basic ´ ´ Specifie dans la RFC 2617. 1 ˆ Le client envoie sa requete. 2 ´ Le serveur repond 401 (Unauthorized) avec : WWW-Authenticate: Basic realm="Foo" 3 ` ˆ Le client envoie a nouveau sa requete avec : Authorization: Basic dXNlcjpwYXNz (encodage Base64 de username:password). ´ ´ ´ Simple presentation du mot de passe en clair. Securite nulle dans la plupart des cas. HTTPS quasiment obligatoire. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 19 / 29
  22. 22. Authentification HTTP : Digest ´ ´ Specifie dans la RFC 2617. ´ Principe : le serveur envoie un nonce ; le client repond par H(π||n||u) (n = nonce, u = nom de l’utilisateur et URL requise). ˆ ´ ´ auth-int : controle d’integrite optionnel : ˆ un nouveau nonce par requete ˆ ´ le hachage couvre le corps de la requete ou de la reponse Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 20 / 29
  23. 23. Authentification HTTP : Digest Hachage simple : mauvaise protection face aux attaques par dictionnaire. Gestion de multiples nonce (complexe, sensible aux pannes). auth-int ne couvre que le corps : changer les nonces forcer l’utilisation d’une fonction de hachage forcer l’utilisation de auth ˆ modifier d’autres entetes (Redirect...) Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 21 / 29
  24. 24. Authentification HTTP : Digest Hachage simple : mauvaise protection face aux attaques par dictionnaire. Gestion de multiples nonce (complexe, sensible aux pannes). auth-int ne couvre que le corps : changer les nonces forcer l’utilisation d’une fonction de hachage forcer l’utilisation de auth ˆ modifier d’autres entetes (Redirect...) HTTP Digest n’est que marginalement plus sure que Basic. SSL/TLS ˆ quasiment indispensable. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 21 / 29
  25. 25. Authentification Attaques offline et online ´ Attaque offline : l’attaquant peut verifier un mot de passe sur ses ` ` propres systemes. Exemple : retrouver le mot de passe a partir de ´ son hache. ´ Attaque online : l’attaquant ne peut verifier un mot de passe qu’en ` interagissant avec un systeme qui connaˆt ce mot de passe. Ce ı ` ´ ´ systeme peut limiter arbitrairement le debit des reponses ` (exemple : code PIN sur carte a puce). Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 22 / 29
  26. 26. Authentification PAKE ´ Password-Authenticated Key Exchange designe un protocole ´ ´ d’etablissement de cle avec authentification mutuelle selon un secret ´ partage. ` Les protocoles PAKE protegent contre les attaques offline. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 23 / 29
  27. 27. Authentification EKE ´ Encrypted Key Exchange : publie par Bellovin et Merritt en 1992. ´ Principe : on chiffre symetriquement (avec le mot de passe comme ´ ´ ´ cle) les messages d’un protocole d’etablissement de cle. ´ ˆ ´ Le chiffrement symetrique doit etre unverifiable. L’attaquant (actif) doit choisir a priori un mot de passe, sous peine ˆ ` ´ ´ d’etre a l’exterieur de l’etablissement de cle. ´ Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 24 / 29
  28. 28. Authentification Diffie-Hellman p nombre premier, grand (1024 bits) q nombre premier, moins grand (160 bits), q divise p − 1 g generateur d’ordre q (1 < g < p, g q = 1 mod p) ´ ´ A B a g mod p a ∈R [1, q-1] g b mod p b ∈R [1, q-1] K = (g a )b = (g b )a = g ab mod p Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 25 / 29
  29. 29. Authentification Full Domain Hash ´ Definition Un Full Domain Hash est une fonction de hachage dont la sortie est ´ ´ ´ ´ ` precisement un ensemble specifique donne, ou chaque valeur est ´ equiprobable. ´ Soit H une fonction de hachage. On calcule F (x) pour une entree x : 1 Soit y = H(1||x)||H(2||x)||...||H(n||x) ou n est choisi pour que la ` ´ ` ´ ` taille de y soit legerement superieure a celle de p (par exemple, p a 1024 bits et y fait 1536 bits). 2 ´ Soit z = y mod p (interpretation des bits en un entier, puis ´ reduction modulaire). 3 F (x) = z (p−1)/q mod p. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 26 / 29
  30. 30. Authentification EKE avec Diffie-Hellman p nombre premier, grand (1024 bits) q nombre premier, moins grand (160 bits), q divise p − 1 g generateur d’ordre q (1 < g < p, g q = 1 mod p) ´ ´ w ´ mot de passe hache : w = F (π||A||B) A B a w·g mod p a ∈R [1, q-1] w·g b mod p b ∈R [1, q-1] K = (g a )b = (g b )a = g ab mod p Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 27 / 29
  31. 31. Authentification EKE avec Diffie-Hellman ´ ´ ´ ˆ ´ Une fois la cle echangee, elle doit etre utilisee dans un protocole ´ ´ ´ assurant l’integrite (et la confidentialite). ´ L’authentification est implicite : pas de garantie d’avoir parle avec le ´ ´ vrai client / serveur avant d’avoir echange des messages proteges ´ ´ par K . ´ ´ Un autre protocole PAKE standard : SRP (RFC 2945, integre dans TLS avec RFC 5054). Mais il y a des brevets... Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 28 / 29
  32. 32. Conclusion Conclusion ` ´ Les mots de passe ne sont pas un probleme resolu. ` Les mots de passe sont un probleme qui s’aggrave avec le temps. ` ´ Les systemes et protocoles doivent devenir resistants aux attaques offline. ` On ne connaˆt pas de systeme de remplacement indiscutable. ı Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 29 / 29

×