Quelle doit être la force d'un mot de passe

Ce que mesure réellement l'entropie en bits, pourquoi la longueur l'emporte sur la soupe de symboles, ce que coûte la réutilisation, et quelle place occupent les phrases de passe et les gestionnaires de mots de passe.

Pour un compte que vous n'aimeriez pas perdre, employez un mot de passe généré aléatoirement d'au moins 16 caractères, ou une phrase de passe d'au moins 5 mots tirés au hasard, et servez-vous-en sur un seul site. Cela représente 65 à 95 bits d'entropie, largement hors de portée de la force brute, et la partie « un seul site » compte davantage que la force elle-même. Le raisonnement derrière ces chiffres suit ci-dessous.

L'entropie en bits

L'entropie mesure le nombre de possibilités également probables parmi lesquelles le mot de passe a été tiré, exprimé en puissance de deux. 40 bits d'entropie signifient une possibilité sur 2^40, soit environ mille milliards, et chaque bit supplémentaire double le travail nécessaire pour le deviner. La formule est bits = longueur x log2(taille du jeu de caractères) : les lettres minuscules valent donc 4,7 bits chacune, les lettres et chiffres 5,95, tout l'ASCII imprimable 6,57, et un mot tiré d'une liste de 7 776 mots 12,9 :

Mot de passeEntropie
8 lettres minuscules38 bits
12 lettres et chiffres71 bits
12 caractères, ASCII complet79 bits
16 lettres et chiffres95 bits
5 mots aléatoires65 bits
6 mots aléatoires78 bits

Ce calcul ne tient que si le mot de passe est issu d'un véritable procédé aléatoire. Tr0ub4dor&3 fait 11 caractères tirés d'un jeu de 95, ce que la formule évalue à 72 bits, mais c'est un mot du dictionnaire assorti de substitutions prévisibles, et un outil de cassage l'atteint bien plus tôt. L'entropie décrit le générateur, pas la chaîne.

Ce que les bits vous achètent

La vitesse de devinette dépend de la façon dont le site a stocké le mot de passe. Face à un formulaire de connexion en service doté d'une limitation de débit, un attaquant obtient quelques tentatives par heure. Face à une base de données volée, tout dépend du hachage : un hachage rapide comme MD5 ou SHA-1 peut être essayé à des cadences énormes sur du matériel graphique grand public, alors qu'un hachage conçu pour les mots de passe comme bcrypt ou Argon2 est plus lent de plusieurs ordres de grandeur.

Ci-dessous, le pire des cas, un hachage rapide non salé à raison de dix milliards de tentatives par seconde supposées. Cela montre à quel point la courbe se plie, et ne constitue pas une mesure :

EntropieTemps pour épuiser tout l'espace
40 bitsEnviron deux minutes
50 bitsEnviron une journée
60 bitsQuelques années
70 bitsQuelques milliers d'années
80 bitsDes millions d'années

En moyenne, un attaquant réussit en la moitié de ce temps. La lecture pratique : en dessous de 50 bits, cela ne vaut pas grand-chose face à une attaque hors ligne ; de 60 à 70 bits convient pour la plupart des usages ; et à partir de 80 bits, vous resterez tranquille.

La longueur bat la soupe de symboles

Prenez un mot de passe de 12 caractères composé de lettres et de chiffres (71 bits). Y ajouter de la ponctuation, en élargissant le jeu de 62 à 95 caractères, vous amène à 79 bits. Ajouter deux lettres ou chiffres de plus vous amène à 83. Chaque caractère supplémentaire multiplie l'espace de recherche par tout l'alphabet, alors qu'élargir l'alphabet n'ajoute qu'environ 0,6 bit par caractère déjà présent. La longueur l'emporte, et continue de l'emporter.

Les règles de composition (« doit contenir une majuscule, un chiffre et un symbole ») poussent les gens vers un ensemble étroit de schémas : majuscule au début, chiffre et point d'exclamation à la fin. Les outils de cassage essaient ces transformations en premier. C'est l'une des raisons pour lesquelles les recommandations du NIST sur l'identité numérique se sont détournées des règles de composition et des changements périodiques imposés, au profit de la longueur et de vérifications face à des listes de mots de passe connus pour avoir fuité.

La réutilisation est le vrai risque

Presque personne ne voit son compte compromis par force brute. Ce qui arrive, c'est le bourrage d'identifiants : un site peu solide est piraté, les paires adresse et mot de passe sont publiées, et des outils automatisés essaient chaque paire sur des centaines d'autres services. Si vous avez utilisé le même mot de passe pour votre messagerie que pour le forum piraté, sa force n'a aucune importance. Il a été livré, pas deviné.

L'hameçonnage fonctionne de la même manière : un mot de passe de 30 caractères saisi dans une fausse page de connexion convaincante vaut exactement autant que password1. Donc, par ordre d'importance :

  1. Un mot de passe différent sur chaque site.
  2. L'authentification à deux facteurs sur tout ce qui compte, avant tout sur votre messagerie, puisqu'elle est la voie de réinitialisation de tout le reste.
  3. Assez de longueur pour qu'un cassage hors ligne soit sans espoir.

Les phrases de passe

Une phrase de passe est faite de plusieurs mots tirés au hasard dans une liste, par exemple harvest-cobalt-mural-drift-plinth. À 12,9 bits par mot, cinq mots font 65 bits et six en font 78.

Deux conditions font que cela fonctionne. Les mots doivent être choisis au hasard, par des dés ou par un logiciel, et non par vous. Et la force vient du nombre de mots, pas du séparateur ni d'une lettre passée en majuscule : les paroles d'une chanson ou une citation n'ont presque aucune entropie, parce qu'elles sont tirées d'un petit réservoir de choses que les gens disent.

Les phrases de passe gagnent leur place pour les rares mots de passe que vous tapez de mémoire : la session de votre appareil, le mot de passe maître de votre gestionnaire, le chiffrement de votre disque.

La place d'un gestionnaire

Un gestionnaire de mots de passe transforme « inventer et retenir 200 mots de passe uniques » en « retenir une longue phrase de passe ». Il génère des chaînes à forte entropie et les saisit sur le bon domaine, ce qui émousse l'hameçonnage puisqu'il ne remplira pas automatiquement un formulaire sur une adresse sosie.

Il concentre le risque, ce qui est une objection réelle et reste tout de même le meilleur compromis : un coffre protégé par une longue phrase de passe et un second facteur vaut mieux qu'un mot de passe partagé entre des dizaines de sites de qualité inconnue.

Une remarque sur le hachage

Le hachage est l'autre face de la connexion. Un service bien conçu stocke un hachage salé issu d'un algorithme délibérément lent, jamais le mot de passe lui-même, pour qu'une fuite ne livre pas immédiatement le texte en clair. Les hachages généralistes comme SHA-256 sont conçus pour être rapides, ce qui les rend excellents pour des sommes de contrôle de fichiers et mauvais pour stocker des mots de passe. Hacher vous-même votre mot de passe pour « le rendre plus fort » n'apporte rien : le résultat n'est jamais plus difficile à deviner que l'entrée.