´ Mots de passe et mecanismes d’authentification                         Thomas Pornin                          Hackfest 20...
Plan1   Notions fondamentales2   Stockage3   Authentification4   Conclusion    Thomas Pornin                       ´       ...
Notions fondamentales ´Definition ´DefinitionUn mot de passe est une information confidentielle, qu’un utilisateur       ´   ...
Notions fondamentales                 ´Concurrent : biometrie    ´                              ´   `Biometrie : des infor...
Notions fondamentales                   `Concurrent : carte a puce       `                         `                    ˆ ...
Notions fondamentalesEntropie  ´Definition                                                             ˆL’entropie est une ...
Notions fondamentalesEntropie : exemples et mesure6 lettres minuscules : 266 ≈ 228.2Deux lettres, deux chiffres, deux lett...
Notions fondamentalesFaiblesse des mots de passe1980 :                                              vs                  25...
Notions fondamentalesFaiblesse des mots de passe1980 :                                              vs                  25...
Notions fondamentalesFaiblesse des mots de passe1980 :                                              vs                  25...
Notions fondamentalesImposer un bon mot de passeEncadrer le choix est difficile (quality meter vs entropie).L’utilisateur e...
StockageContexte : stockage                                      password, data                                           ...
StockageHachageUne fonction de hachage est une transformation :                        ´    portant sur des donnees binair...
StockageAttaque efficaceAttaque basique : on essaye des mots de passe possibles.     PC Intel Core2 Q6600 : 48 millions SHA...
StockageAttaques et partagePartage : l’attaquant fait un hachage pour attaquer plusieurs mots depasse.                   `...
Stockage                 ´Compromis temps/memoire de Hellman (1980)                      ´Le compromis temps/memoire de He...
StockageRainbow tables (2003)Une rainbow table est une optimisation sur le compromis de Hellman :            H  1   R     ...
StockageSalt ´Definition                           `Une salt est un parametre public qui modifie le hachage d’un mot        ...
StockageExemple                  `Obtenu sur un systeme Linux (Ubuntu 10.04) :$6$NmmN5L0O$vqOf3DuGNf.CHVpIcJZ9u2LmVS.NWhif...
AuthentificationContexte : authentification                                        password, data                           ...
AuthentificationHTTP : Basic  ´ ´Specifie dans la RFC 2617. 1                             ˆ       Le client envoie sa requet...
AuthentificationHTTP : Digest  ´ ´Specifie dans la RFC 2617.                                                      ´Principe ...
AuthentificationHTTP : Digest    Hachage simple : mauvaise protection face aux attaques par    dictionnaire.    Gestion de ...
AuthentificationHTTP : Digest    Hachage simple : mauvaise protection face aux attaques par    dictionnaire.    Gestion de ...
AuthentificationAttaques offline et online                                       ´    Attaque offline : l’attaquant peut veri...
AuthentificationPAKE                                         ´Password-Authenticated Key Exchange designe un protocole  ´  ...
AuthentificationEKE                              ´Encrypted Key Exchange : publie par Bellovin et Merritt en 1992.         ...
AuthentificationDiffie-Hellman      p     nombre premier, grand (1024 bits)      q     nombre premier, moins grand (160 bits...
AuthentificationFull Domain Hash  ´DefinitionUn Full Domain Hash est une fonction de hachage dont la sortie est   ´ ´       ...
AuthentificationEKE avec Diffie-Hellman      p      nombre premier, grand (1024 bits)      q      nombre premier, moins gran...
AuthentificationEKE avec Diffie-Hellman              ´ ´        ´           ˆ         ´Une fois la cle echangee, elle doit e...
ConclusionConclusion                                      `    ´Les mots de passe ne sont pas un probleme resolu.         ...
Upcoming SlideShare
Loading in...5
×

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

2,174

Published on

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.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,174
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. ´ Mots de passe et mecanismes d’authentification Thomas Pornin Hackfest 2010Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 1 / 29
  2. 2. Plan1 Notions fondamentales2 Stockage3 Authentification4 Conclusion Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 2 / 29
  3. 3. Notions fondamentales ´Definition ´DefinitionUn 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 cryptographiquescomplexes. `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 fondamentalesEntropie ´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, ontrouve 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 fondamentalesEntropie : exemples et mesure6 lettres minuscules : 266 ≈ 228.2Deux lettres, deux chiffres, deux lettres, deux chiffres : ix71yn45 di30lz43 to71sy30 np37kj76entropie : 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 etvariantes. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 7 / 29
  8. 8. Notions fondamentalesFaiblesse des mots de passe1980 : vs 25 kOps/s Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 8 / 29
  9. 9. Notions fondamentalesFaiblesse des mots de passe1980 : vs 25 kOps/s2010 : vs 25 GOps/s Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 8 / 29
  10. 10. Notions fondamentalesFaiblesse des mots de passe1980 : vs 25 kOps/s2010 : vs 25 GOps/sLes mots de passe sont devenus un million de fois plus faibles en30 ans. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 8 / 29
  11. 11. Notions fondamentalesImposer un bon mot de passeEncadrer 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 contournementOn peut tenter de responsabiliser l’utilisateur (inapplicable dans denombreux contextes).Entropie atteignable en pratique : environ 32 bits. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 9 / 29
  12. 12. StockageContexte : 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. StockageHachageUne 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 collisionsExemples : 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. StockageAttaque efficaceAttaque 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. StockageAttaques et partagePartage : l’attaquant fait un hachage pour attaquer plusieurs mots depasse. ` 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. StockageRainbow 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 −→ vtMoins 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 passesattaquables. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 15 / 29
  18. 18. StockageSalt ´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. StockageExemple `Obtenu sur un systeme Linux (Ubuntu 10.04) :$6$NmmN5L0O$vqOf3DuGNf.CHVpIcJZ9u2LmVS.NWhifwipwpfmZVMMQxamKXAlVGg0VMo1ScMQsSBtdXbrssLO/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 5000invocations de SHA-512 et de multiples insertions du mot de passe etde la salt. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 17 / 29
  20. 20. AuthentificationContexte : authentification password, data `Contexte : authentification a distance ; l’attaquant peut agir sur lecanal de transmission. HTTP PPP (RTC, ADSL) appariment Bluetooth Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 18 / 29
  21. 21. AuthentificationHTTP : 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 laplupart des cas. HTTPS quasiment obligatoire. Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 19 / 29
  22. 22. AuthentificationHTTP : Digest ´ ´Specifie dans la RFC 2617. ´Principe : le serveur envoie un nonce ; le client repond parH(π||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. AuthentificationHTTP : 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. AuthentificationHTTP : 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. AuthentificationAttaques 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. AuthentificationPAKE ´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. AuthentificationEKE ´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. AuthentificationDiffie-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. AuthentificationFull Domain Hash ´DefinitionUn 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. AuthentificationEKE 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. AuthentificationEKE 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 dansTLS avec RFC 5054).Mais il y a des brevets... Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 28 / 29
  32. 32. ConclusionConclusion ` ´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 attaquesoffline. `On ne connaˆt pas de systeme de remplacement indiscutable. ı Thomas Pornin ´ Mots de passe et mecanismes d’authentification Hackfest 2010 29 / 29

×