La longueur minimale du mot de passe recommandée est d'environ 8 caractères. Existe-t-il donc une longueur maximale standard/recommandée pour le mot de passe?
Bruce Schneier a quelques articles intéressants sur les politiques de mot de passe.
Mots de passe du monde réel - couvrant la longueur, la complexité et les mots de passe courants des mots de passe.
Conseils de mot de passe - certaines choses à faire et à ne pas faire, y compris:
- UTILISEZ un gestionnaire de mots de passe
- MODIFIEZ fréquemment les mots de passe. Je change le mien tous les six mois ...
- Ne réutilisez pas les anciens mots de passe.
- N'UTILISEZ PAS de mots de passe composés de mots du dictionnaire, d'anniversaires, de noms de famille et d'animaux domestiques, d'adresses ou de toute autre information personnelle.
- NE PAS accéder à des comptes protégés par mot de passe sur des réseaux Wi-Fi ouverts - ou tout autre réseau auquel vous ne faites pas confiance - sauf si le site est sécurisé via https.
et beaucoup plus
Modification des mots de passe - une discussion détaillée sur la fréquence à laquelle vous devez changer en fonction de l'environnement d'utilisation et des menaces.
La réponse à celle-ci, comme beaucoup de questions de sécurité, est "ça dépend".
Il y a plusieurs facteurs à considérer lors de l'examen de la longueur du mot de passe. Le premier est certaines des choses contre lesquelles un long mot de passe est conçu pour se protéger, qui est généralement une force brute d'attaque par devinette de mot de passe (en ligne ou hors ligne).
Pour deviner les mots de passe en ligne, si vous avez une politique de verrouillage relativement agressive (par exemple, 3 tentatives incorrectes puis un verrouillage indéfini), il est peu probable que les attaques contre un seul compte réussissent à moins que l'attaquant ait une bonne idée de ce qu'est le mot de passe. va être.
Si vous recherchez des attaques contre une grande population d'utilisateurs avec la même politique de verrouillage, où l'attaquant peut déterminer les noms d'utilisateur (par exemple, les forums Web), l'élément le plus important est probablement que les mots de passe utilisés ne sont pas des vraiment communs.
Soit dit en passant, une chose à surveiller du côté du verrouillage de compte, c'est que les politiques agressives ici pour les applications en ligne peuvent rendre une attaque par déni de service assez facile, sans contre-mesures supplémentaires.
S'il y a un risque de force brute hors ligne, la force du mot de passe devient plus importante. le problème ici est que l'amélioration de la puissance de traitement et des méthodes d'attaque en font une cible mouvante en termes de force. De manière réaliste, je dirais que vous examinerez plus de 10 caractères et une application stricte que les mots de passe ne figurent pas sur les listes de dictionnaires courantes (comme @andy dit que les phrases secrètes sont une bonne option ici).
Un autre facteur à considérer ici est votre base d'utilisateurs et la façon dont l'application est utilisée. Dans certains cas, je dirais que des exigences de mot de passe très strictes peuvent en fait conduire à une application moins sécurisée. Si vous avez une application où les utilisateurs sont au même endroit (par exemple, de nombreuses applications d'entreprise) et que vous rendez la politique de mot de passe très "forte" (en termes de longueur de mot de passe et d'exigences de rotation), il est probable que les utilisateurs commencent écrire leurs mots de passe, ce qui va probablement à l'encontre de l'un des objectifs de sécurité de cette application en premier lieu.
Une bonne source d'informations beaucoup plus à ce sujet est un livre intitulé Authentification: From Passwords to Public Keys
De bonnes réponses jusqu'à présent, mais je voudrais suggérer une autre possibilité: phrases de passe . Comme le suggère StackOverflow propre de Jeff Atwood, si vous n'êtes pas interdit par des limitations techniques, vous pouvez envisager d'autoriser et de suggérer des phrases de passe. Vous pourriez les appliquer, mais cela aliénerait probablement certains utilisateurs sur la plupart des sites. En raison de leur longueur, ils peuvent être beaucoup plus difficiles à déchiffrer, et ils peuvent également être plus faciles à retenir qu'un mot de passe comme "A1lUrB @ se!" ou des choses comme ça.
Si vous allez hacher le mot de passe, pourquoi définir une limite supérieure?
Ce n'est pas comme si vous deviez vous soucier d'atteindre la limite de caractères maximale sur les champs de texte, sur le Web ou autrement. Ainsi, vous pourriez imaginer simplement définir un maximum de quelques centaines de caractères juste pour limiter certaines conditions aux limites des champs de texte que vous utilisez.
Bien sûr, si vous parlez de générer un mot de passe que vous allez essayer d'utiliser sur plusieurs sites, alors tant pis; personne ne semble être d'accord là-dessus. Pire encore, j'ai trouvé des sites qui ont des limites de caractères max différentes sur différents champs de saisie, donc pour vous connecter, vous devez d'abord le taper mal avant de recevoir un champ différent qui autorise plus de caractères. Bien sûr, si chaque site laisse simplement les capacités minimales attendues d'un champ de texte typique sans essayer de le limiter artificiellement, alors environ 2k caractères seraient autorisés, et vous n'auriez pas à vous en soucier du tout.
Modifié pour ajouter: quelque chose mentionné en passant ici m'a fait faire une pause:
vous devez adapter le travail de hachage à ce qui est disponible et raisonnable sur vos serveurs ou appareils. Par exemple, nous avons eu un bug mineur de déni de service dans Discourse où nous avons permis aux gens d'entrer jusqu'à 20 000 mots de passe de caractères dans le formulaire de connexion
Il peut donc être utile de limiter à la fois la définition et la tentative de mots de passe si vous hachez les choses d'une manière censée être aussi coûteuse que possible en termes de calcul. Quelques centaines de personnages pourraient encore empêcher les choses d'exploser trop, tout en étant bien plus qu'un utilisateur ne pourrait jamais essayer.
Il ne doit pas y avoir de longueur maximale de mot de passe - si l'utilisateur accepte d'utiliser un mot de passe très long, il doit alors être recommandé, pas bloqué.
Le logiciel étant ce qu'il est, plusieurs systèmes imposeront une limite sur la taille du mot de passe, principalement en raison d'un problème d'interface graphique, d'une mauvaise programmation ou d'une compatibilité descendante avec des systèmes beaucoup plus anciens. Par exemple, les anciens systèmes Unix utilisaient un processus de hachage de mot de passe qui n'utilisait que les huit premiers caractères et ignorait totalement tous les autres. De même, les anciens systèmes Windows avaient une limite interne à 14 caractères. Par conséquent, il est préférable que le mot de passe, lorsqu'il est tronqué à ses 14 premiers caractères, soit toujours "fort".
Cependant, la seule limite sur la taille maximale du mot de passe doit être la patience de l'utilisateur. Il n'y a aucun intérêt à appliquer quoi que ce soit ici.
Un minimum commun aujourd'hui est de 12 caractères, ce qui est à peine assez grand pour empêcher le craquage par force brute par une organisation raisonnablement bien financée dans un délai raisonnable.
En ce qui concerne la longueur maximale; voici quelques réflexions: un mot de passe de plus de quelques centaines d'octets est presque certainement malveillant (par exemple, tentative d'injection SQL). Notez également que si vous hachez votre mot de passe (et si vous ne l'êtes pas, vous devez recommencer), les mots de passe plus long que votre sortie de hachage n'ajoutent plus d'entropie. Notez que par "plus long", je veux dire le même nombre de bits dans votre espace de clés, pas la même longueur de caractère. Donc, tout en autorisant des mots de passe plus longs que la longueur de hachage devrait être autorisé comme point de commodité, il ne serait pas logique d'un point de vue mathématique qu'une telle chose soit obligatoire .
Exiger une casse mixte double la taille de votre alphabet, ce qui génère des retours de complexité énormes et devrait probablement être requis. Exiger des caractères numériques ajoute peut-être 20% de plus à votre alphabet, ce qui n'est pas aussi important, et exiger des symboles ajoute peut-être 16% à 40% de plus (en fonction des symboles que vous comptez), et encore une fois, pas un retour tout aussi important, mais qui ne devrait certainement pas être refusé.
Personnellement, j'opterais pour l'utilisation d'un générateur de mots de passe (comme lastpass.com ou 1password) pour générer et utiliser des mots de passe de 8 caractères minimum et 32 caractères maximum (car tous les sites ne prennent pas en charge une longueur de mot de passe supérieure à 10 ou 15) et utiliser un mot de passe principal pour l'authentification (cela dépend encore une fois de votre confiance sur des sites comme lastpass.com) ou d'un utilitaire 1password chiffré côté client pour Mac et Windows).
Il n'est pas conseillé d'utiliser un ensemble de mots de passe pour tous les sites. Les forums en particulier m'envoient des mots de passe en texte brut. Certains sites ont la possibilité d'envoyer un mot de passe simple au cas où vous utilisez la fonction "Mot de passe oublié".
Habituellement, les restrictions sont configurées sur le serveur (pour les sites Web). Nous devons blâmer les serveurs que nous utilisons pour ne pas définir de restrictions sur les mots de passe des utilisateurs.
En bref, utilisez des mots de passe différents à chaque fois. Si vous avez plus de 10 à 15 mots de passe à retenir, il est temps de commencer à utiliser un gestionnaire de mots de passe "sécurisé". (Pour mémoire, le gestionnaire de mots de passe Firefox n'est pas du tout sécurisé)
16 caractères.
Cela vous donne 96 bits selon Wikipedia , ce qui est bien au-delà de tout ce qui peut être fissuré selon cet article.
Personnellement, j'utilise un programme de mot de passe pour mon téléphone portable, combiné à la fonction de mot de passe principal de Firefox. Mon mot de passe principal compte plus de 25 caractères et est basé sur Dice Ware, ce qui le rend assez facile à mémoriser. Presque tous mes mots de passe sont régénérés au hasard, car Firefox s'en souvient quand même pour moi.
J'étais chez un client où l'agent de sécurité était fou. Il voulait utiliser toutes les politiques de complexité de mot de passe possibles. (Novell eDirectory a BEAUCOUP de problèmes de complexité des mots de passe, et il voulait utiliser un plugin supplémentaire pour en ajouter plus!)
Au point, il serait impossible de générer un mot de passe dont on puisse se souvenir. Je m'attendais à ce que les masses non lavées le trouvent, et le goudron et le plume après sa mise en œuvre.
En d'autres termes, vous pouvez aller trop loin.
En 2019, le caractère aléatoire requis pour un mot de passe/phrase de passe sécurisé est:
Il est impossible de se souvenir de vingt d'entre eux, donc ne mémorisez que quelques-uns des plus importants que vous utilisez régulièrement. Par exemple, vous pouvez mémoriser celui de votre compte de messagerie et celui de votre gestionnaire de mots de passe. Pour tout le reste, stockez les mots de passe dans un gestionnaire de mots de passe.
Pertinent: L'utilisateur moyen a-t-il vraiment besoin d'un gestionnaire de mots de passe?
La réponse la plus votée est un "oui" clair.
Pertinent: Dans quelle mesure les gestionnaires de mots de passe sont-ils sûrs?
D'après la réponse du haut, par paj28 (c'est moi qui souligne):
pour la plupart des gens, ces risques sont acceptables, et je dirais que l'approche utilisant un gestionnaire de mots de passe [pour] la plupart de vos mots de passe est meilleure que d'utiliser le même mot de passe partout - qui semble être la principale alternative. Mais je ne stockerais pas tous les mots de passe là-dedans; faites un effort pour mémoriser vos plus importants, comme les services bancaires en ligne.
Les gestionnaires de mots de passe couramment mentionnés sont KeePass (X), 1Password et LastPass. Celui de votre navigateur dépend: lorsque vous utilisez Firefox avec un mot de passe principal, c'est presque aussi bien que d'utiliser un mot de passe dédié. Si votre navigateur ne nécessite pas de mot de passe avant de pouvoir accéder aux mots de passe, il n'est pas très sécurisé (mais les détails dépendent de l'implémentation exacte, qui est un sujet à part entière).
Lorsque vous créez une application, voici quelques considérations utiles:
Comment hacher en toute sécurité les mots de passe?
Résumé: utilisez Scrypt ou Argon2, aussi lentement que possible. Si ceux-ci ne sont pas disponibles, Bcrypt ou PBKDF2 sont des alternatives acceptables. Ajouter à la fois sel et poivre .
Dois-je avoir une longueur maximale de mot de passe?
Résumé: uniquement contre les attaques DoS, donc quelques kilo-octets environ.
Implémenter le hachage de mot de passe côté client
Divulgation complète: je renvoie à ma propre réponse parce que je pense que c'est la plus complète. Assurez-vous de lire également les opinions des autres.
Vous vous demandez peut-être "pourquoi mon PIN ne contient que 4 chiffres? Cela suffit pour garder mon compte bancaire en sécurité!") Il y a ne question dédiée à cela , mais le résumé est deux choses: vous avez besoin de votre carte bancaire pour l'accès (un deuxième facteur d'authentification), et la puce vous verrouille après 3 tentatives.
Les sites Web sont beaucoup plus indulgents, donc un attaquant peut faire plus de tentatives. De plus, les sites Web devraient être piratés tôt ou tard, après quoi l'attaquant peut casser efficacement votre mot de passe haché.
La plupart des sites Web stockent votre mot de passe avec une sorte de cryptage unidirectionnel, appelé hachage. Il n'y a pas de clé de déchiffrement. En appliquant à nouveau le même algorithme de hachage, le système peut comparer le mot de passe (que vous venez de taper) à celui enregistré (à partir de la base de données) et savoir s'ils sont égaux. Mais avec seulement la base de données, vous ne pouvez pas connaître le mot de passe d'origine.
Dans le passé, les méthodes de hachage rapide étaient courantes. Cela signifie également qu'un attaquant, qui a obtenu le hachage, peut demander à son ordinateur d'effectuer des milliards de tentatives par seconde sur un ordinateur de jeu moyen. En supposant dix milliards de tentatives par seconde, un mot de passe aléatoire à 11 caractères se maintient pendant environ 165 ans. Et ce n'est qu'un joueur, imaginez que vous avez accès aux données de l'entreprise qui intéressent certains concurrents étrangers: avec une puissance de calcul supplémentaire, ces 165 années se transforment soudainement en quelques mois de fissuration. Et l'année prochaine, il y aura de nouveaux processeurs plus rapides pour le même prix, ce qui réduira à nouveau la puissance. C'est pourquoi douze caractères est le minimum pour un mot de passe fort: ce caractère supplémentaire ajoute littéralement dix mille ans au temps de craquage (165 ans contre 10 230 ans), et est sécurisé dans un avenir prévisible.
Soit dit en passant, le calcul de la force du mot de passe est simple: variations^length / guesses_per_time
. Les variations sont le nombre d'éléments uniques et la longueur est le nombre d'éléments que vous utilisez. Donc, si vous utilisez uniquement des chiffres, il existe dix variantes (de 0 à 9). Si vous utilisez des mots d'un dictionnaire, il y a cependant beaucoup de mots dans le dictionnaire. Ensuite, guesses_per_time est à quelle vitesse vous supposez que l'attaquant peut se fissurer. Une valeur raisonnable est de dizaines de milliards par seconde.
Exemple: 10^14/10e9/3600
vous montre combien d'heures il faudrait pour déchiffrer un code à 14 chiffres, lorsque vous supposez 10e9 tentatives par seconde (il y a 3600 secondes en une heure, 60 * 60).
Certains sites Web sont intelligents et utilisent un algorithme de hachage lent. Nous ne pouvons pas dire lesquels, car le serveur fait le hachage, vous ne pouvez donc pas le voir de l'extérieur. Si tel est le cas, une seule estimation prendra beaucoup plus de temps à calculer (pour le serveur, mais aussi pour un attaquant). Dans un cas raisonnable, un attaquant bien financé ne peut faire que cinquante mille suppositions par seconde, auquel cas un mot de passe à 9 caractères serait suffisant. Mais 9 personnages aléatoires sont déjà très difficiles à mémoriser pour de nombreux comptes différents, surtout si vous ne les utilisez pas tous régulièrement. Par conséquent, un gestionnaire de mots de passe est nécessaire pour vraiment avoir une sécurité dans les mots de passe.
Mais est-il vraiment nécessaire d'avoir des mots de passe uniques? Pourquoi ne pas réutiliser des mots de passe forts sur quelques sites différents? Parce que les sites Web sont souvent compromis. Ce n'est pas un événement quotidien, mais essayez de saisir votre ou vos adresses e-mail dans haveibeenpwned.com : cela arrive certainement beaucoup. C'est ainsi que les comptes sont le plus souvent piratés: réutilisation des mots de passe. Les compromis entre les gestionnaires de mots de passe sont beaucoup moins courants.