Robustesse d'un mot de passe

La robustesse d'un mot de passe est la mesure de la capacité d'un mot de passe à résister au cassage de mot de passe.

On mesure la robustesse d'un mot de passe en estimant le nombre de tentatives nécessaires à un attaquant pour casser le mot de passe.

La robustesse d'un mot de passe est une fonction de

  • la longueur du mot de passe (un mot de passe de 10 caractères est plus robuste qu'un mot de passe de 6 caractères);
  • sa complexité, c'est-à-dire du nombre de symboles différents utilisés pour construire le mot de passe (à longueur égale, un mot de passe permettant des chiffres et des lettres sera plus robuste qu'un mot de passe ne permettant que des chiffres) ;
  • du caractère aléatoire du mot de passe (le mot de passe 428195 est plus robuste que le mot de passe 123456 qui est un mot de passe très populaire[1].

L'entropie comme mesure de la robustesse d'un mot de passe

Dans l'industrie informatique, la robustesse d'un mot de passe est exprimée en termes d'entropie de Shannon, mesurée en bits. Il s'agit d'un concept de la théorie de l'information. Au lieu de mesurer la robustesse par le nombre de combinaisons de caractères qu'il faut tester pour trouver le mot de passe avec certitude, on utilise le logarithme en base 2 de ce nombre. Cette mesure est appelée l'entropie du mot de passe. Un mot de passe avec une entropie de 42 bits calculée de la sorte serait aussi robuste qu'une chaîne de 42 bits choisie au hasard.

En d'autres termes, un mot de passe de 42 bits de robustesse ne serait brisé de façon certaine qu'après 242 (4 398 046 511 104) tentatives lors d'une attaque par force brute. L'ajout d'un bit d'entropie à un mot de passe double le nombre de tentatives requises, ce qui rend la tâche de l'attaquant deux fois plus difficile. En réalité, en moyenne, un attaquant devra essayer la moitié des mots de passe possibles avant de trouver le bon[2].

Entropie des mots de passe aléatoires

Un mot de passe aléatoire est une chaîne de symboles d'une longueur spécifiée, tirée d'un ensemble de symboles et produite par un processus de sélection aléatoire dans lequel chaque symbole a la même probabilité d'être sélectionné. Les symboles peuvent être des caractères individuels d'un jeu de caractères (par exemple, le jeu de caractères ASCII), des syllabes conçues pour former des mots de passe prononçables ou même des mots d'une liste de mots (formant ainsi une phrase secrète).

La robustesse des mots de passe aléatoires dépend de l'entropie réelle du générateur de nombres aléatoires sous-jacent. Malheureusement, souvent, les générateurs de nombres aléatoires ne sont pas vraiment aléatoires, mais pseudo aléatoires. Certains générateurs de mots de passe utilisent des générateurs de nombres aléatoires trouvés dans des bibliothèques de programmation offrant une entropie limitée. Heureusement, la plupart des systèmes d'exploitation modernes proposent aussi des générateurs de nombres aléatoires puissants sur le plan cryptographique et adaptés à la génération de mots de passe robustes.

Pour les mots de passe générés par un processus qui sélectionne de manière aléatoire une chaîne de symboles de longueur « L », à partir d'un ensemble de « N » symboles, le nombre de mots de passe possibles est le nombre de symboles N élevé à la puissance L, i.e. NL.

Augmenter L ou N renforcera le mot de passe généré. La force d'un mot de passe aléatoire, telle que mesurée par l'entropie de Shannon, est simplement le logarithme binaire ou log2 du nombre de mots de passe possibles, en supposant que chaque symbole du mot de passe est produit indépendamment. Ainsi, l'entropie H d'un mot de passe aléatoire est donnée par la formule

où « N » est le nombre de symboles possibles et « L » est le nombre de symboles du mot de passe. « H » est mesuré en bits[2],[3].

Entropie par symbole

Selon la formule précédente, l'entropie augmente avec la longueur du mot de passe et chaque addition d'un symbole augmente l'entropie d'une valeur constante qui dépend du nombre de symboles dans l'ensemble de symboles duquel le symbole est tiré.

Le tableau suivant indique l'augmentation de l'entropie obtenue en allongeant un mot de passe d'un symbole pour différents ensembles de symboles.

Entropie par symbole pour différents ensembles de symboles
Ensemble de symbolesNombre de
symboles « N »
Entropie par
symbole « H »
Chiffres arabes (0–9) (e.g. PIN)103,322 bits
Nombres hexadécimaux (0–9, A–F) (e.g. WEP keys)164,000 bits
Alphabet latin insensible à la casse (a–z or A–Z)264,700 bits
Caractères alphanumériques insensible à la casse (a–z or A–Z, 0–9)365,170 bits
Alphabet latin sensible à la casse (a–z, A–Z)525,700 bits
Caractères alphanumériques sensible à la casse (a–z, A–Z, 0–9)625,954 bits
Caractères imprimables ASCII sauf l'espace946,555 bits
Caractères imprimables ASCII956,570 bits
Caractères imprimables ASCII étendu2187,768 bits
Nombre binaire de 8 bits (0–255 or 8 bits or 1 byte)2568,000 bits
Liste de mots de Diceware777612,925 bits par mot

Longueur d'un mot de passe pour atteindre une certaine entropie

En augmentant la longueur d'un mot de passe, on augmente son entropie.

La longueur L nécessaire pour atteindre une robustesse H, avec un mot de passe tiré au hasard parmi un ensemble de N symboles se calcule de la façon suivante :

, arrondi au nombre entier suivant.

Le tableau suivant utilise cette formule pour afficher les longueurs requises de mots de passe pour obtenir divers niveau d'entropie pour des jeux de symboles courants. Notez que l'entropie désirée sera obtenue seulement si les mots de passe sont générés de façon parfaitement aléatoire.

La longueur "L" d'un mot de passe généré de manière parfaitement aléatoire nécessaire pour obtenir une entropie "H" pour les jeux de symboles contenant les symboles "N".
Entropie "H" désiréeChiffres arabesChiffres hexadécimauxAlphabet latin insensible à la casseCaractères alphanumériques insensible à la casseAlphabet latin sensible à la casseCaractères alphanumériques sensible à la casseCaractères imprimables ASCIICaractères imprimables ASCII étenduListe de mots de Diceware
8 bits
(1 byte)
322222221 mot
32 bits (4 bytes)1087766553 mots
40 bits (5 bytes)13109887764 mots
64 bits (8 bytes)2016141312111095 mots
80 bits (10 bytes)25201816151413117 mots
96 bits (12 bytes)29242119171715138 mots
128 bits (16 bytes)393228252322201710 mots
160 bits (20 bytes)494035312927252113 mots
192 bits (24 bytes)584841383433302515 mots
224 bits (28 bytes)685648444038352918 mots
256 bits (32 bytes)786455504543393320 mots

Recommandations pour des mots de passe robustes pour les mots de passe forts

Les humains sont notoirement inefficaces à générer des mots de passe robustes parce qu'ils ont tendance à générer des mots de passe faciles à retenir plutôt que des mots de passe contenant des caractères choisis aléatoirement. Selon une étude portant sur un demi-million d'utilisateurs, l'entropie moyenne des mots de passe a été estimée à 40,54 bits[4].

Ainsi, dans une analyse de plus de 3 millions de mots de passe de huit caractères, la lettre « e » a été utilisée plus de 1,5 million de fois, alors que la lettre « f » n'a été utilisée que 250 000 fois. Une distribution uniforme aurait utilisé chaque caractère environ 900 000 fois. Le nombre le plus couramment utilisé est « 1 », tandis que les lettres les plus courantes sont a, e, o et r[5].

Les utilisateurs utilisent rarement pleinement les grands jeux de caractères pour former des mots de passe. Par exemple, les résultats de piratage obtenus à partir d'un système de phishing sur MySpace en 2006 ont révélé 34 000 mots de passe, dont seulement 8,3% utilisaient des majuscules, des chiffres et des symboles[6].

Pour éviter les faiblesses mentionnées dans les paragraphes précédents et d'autres faiblesses semblables, les partisans de la sécurité des systèmes logiciels proposent les recommandations semblables[7],[8],[9],[10],[11] :

  • utiliser une longueur de mot de passe minimale de 8 caractères, si autorisé ;
  • inclure des caractères alphabétiques minuscules et majuscules, des chiffres et des symboles, si autorisé ;
  • générer des mots de passe au hasard lorsque cela est possible ;
  • ne pas utiliser le même mot de passe plusieurs fois (par exemple, sur plusieurs comptes d'utilisateurs et / ou systèmes logiciels) ;
  • éviter les répétitions de caractères, les motifs de clavier, les mots du dictionnaire, les séquences de lettres ou de chiffres, les noms d'utilisateur, les prénoms et les noms de famille, les liens romantiques (actuels ou passés) et les informations biographiques (numéros d'identification, noms d'ancêtres ou dates, par exemple) ;
  • ne pas utiliser d'informations qui sont ou pourraient devenir publiquement associées à l'utilisateur ou au compte ;
  • ne pas utiliser d'informations dont les collègues et / ou les connaissances de l'utilisateur pourraient savoir qu'elles sont associées à l'utilisateur ;
  • ne pas utiliser de mots de passe constitués d'une combinaison des composants faibles susmentionnés.

Certaines directives conseillent de ne pas écrire les mots de passe, tandis que d’autres, reconnaissant l'impossibilité pour l'utilisateur de mémoriser un grand nombre de mots de passe robustes différents, encouragent l’écriture de mots de passe tant que les listes de mots de passe écrites sont conservées dans un endroit sûr [12].

Gestionnaires de mots de passe

Un compromis raisonnable pour l'utilisateur qui doit gérer un grand nombre de mots de passe robustes consiste à les enregistrer dans un gestionnaire de mots de passe, qui comprend des applications autonomes, des modules d'extension de navigateur Web ou un gestionnaire intégré au système d'exploitation. Un gestionnaire de mots de passe permet à l'utilisateur d'utiliser des centaines de mots de passe différents et de ne devoir mémoriser qu'un seul mot de passe, celui qui ouvre la base de données de mots de passe chiffrée.

Inutile de dire que le mot de passe du gestionnaire de mots de passe doit être fort et bien protégé (non enregistré nulle part). La plupart des gestionnaires de mots de passe peuvent créer automatiquement des mots de passe robustes à l'aide d'un générateur de mot de passe aléatoire cryptographiquement sécurisé, ainsi que calculer l'entropie du mot de passe généré. Un bon gestionnaire de mots de passe (comme Keepass, recommandé par l'ANSSI) fournira une résistance contre les attaques telles que les enregistreurs de frappe, les enregistreurs de presse-papiers et diverses autres techniques d'espionnage de la mémoire.

Références

  1. (en) « Cyber Security Tip ST04-002 », Choosing and Protecting Passwords, US-CERT (consulté le ).
  2. « SP 800-63 – Electronic Authentication Guideline » (version du 12 juillet 2004 sur l'Internet Archive), NIST
  3. Schneier, B: Applied Cryptography, 2e, page 233 ff. John Wiley and Sons.
  4. Dinei Florencio et Cormac Herley, « A Large-Scale Study of Web Password Habits », Proceeds of the International World Wide Web Conference Committee, (lire en ligne[archive du ])
  5. (en) Mark Burnett, Perfect Passwords : Selection, Protection, Authentication, Syngress Publishing, , 181 p. (ISBN 1-59749-041-5), p. 181
  6. Bruce Schneier, « MySpace Passwords aren't so Dumb », Wired Magazine, (lire en ligne[archive du ], consulté le )
  7. Microsoft Corporation, Strong passwords: How to create and use them « https://web.archive.org/web/20080101132156/http://www.microsoft.com/protect/yourself/password/create.mspx »(ArchiveWikiwixArchive.isGoogle • Que faire ?),
  8. Bruce Schneier, Choosing Secure Passwords « https://web.archive.org/web/20080223002450/http://www.schneier.com/blog/archives/2007/01/choosing_secure.html »(ArchiveWikiwixArchive.isGoogle • Que faire ?),
  9. Google, Inc., How safe is your password? « https://web.archive.org/web/20080222225549/https://www.google.com/accounts/PasswordHelp »(ArchiveWikiwixArchive.isGoogle • Que faire ?),
  10. University of Maryland, Choosing a Good Password « https://web.archive.org/web/20140614022254/http://www.cs.umd.edu/faq/Passwords.shtml »(ArchiveWikiwixArchive.isGoogle • Que faire ?),
  11. Teri Bidwell, Hack Proofing Your Identity in the Information Age, Syngress Publishing, (ISBN 1-931836-51-5)
  12. « Write Down Your Password - Schneier on Security » (version du 13 avril 2008 sur l'Internet Archive)

Voir aussi

Articles connexes

  • Portail de la cryptologie
  • Portail de la sécurité informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.