Il est stupidement simple de contourner la plupart des ensembles de règles de complexité de mot de passe évaluables indépendamment; longueur minimale, exigences de cas, exigences de caractères non alpha. "Password1", à moins que votre nom ne soit Joe Password, dépassera la plupart des systèmes de règles car il compte au moins 8 caractères, avec une majuscule et un nombre. C'est aussi la première chose que tout crackbot essaiera.
La règle cardinale de toute exigence de complexité de mot de passe est: Plus vous rendez votre système à utiliser, moins il y aura de personnes qui l'utiliseront . Cela va bien au-delà des règles de complexité des mots de passe, mais comme l'écran de connexion (et l'écran d'enregistrement de l'utilisateur auquel vous vous connectez généralement à partir de là) sont la première véritable interaction de l'utilisateur avec votre système, plus c'est désagréable, moins vos utilisateurs en voudront. pour y faire face, et avec vous. Ceci est particulièrement important si vous essayez de «vendre» votre système à des utilisateurs comme un produit dont ils ne savaient pas qu'ils avaient besoin, ou s'il existe de nombreuses alternatives à vous sur le marché (comme un forum en ligne). Les utilisateurs dans cette situation diront très rapidement "foutez-le, je suis sorti", et il est peu probable que vous les récupériez tous.
Quelques règles supplémentaires suivent naturellement. La première est que vous informez l'utilisateur clairement et simplement des règles que vous avez en place, avant qu'il ne saisisse quoi que ce soit . Ce n’est pas un problème de sécurité que les règles de complexité que vous appliquez soient de notoriété publique, à moins que ces règles réduisent l’entropie possible des mots de passe acceptables (ce que peuvent faire des règles comme une longueur maximale) , et votre utilisateur sera beaucoup moins frustré par votre système qu'il ne le serait s'il devait apprendre les règles par rétro-ingénierie.
Une autre règle est: ne vous écartez pas trop des règles attendues par les utilisateurs . La plupart des utilisateurs sont assez intelligents pour comprendre que la complexité minimale est pour leur propre bien, et ils savent également que les barres de la plupart des sites et des applications sont de hauteur similaire (6 à 8 caractères minimum, une lettre majuscule et un chiffre, ne peuvent en contenir de quelques mots évidents comme "mot de passe"). Appliquer des mots de passe ridiculement longs et compliqués au-delà de la norme implicite (minimum 20 caractères, au moins deux groupes d'au moins 4 chiffres chacun et au moins 5 symboles) ne fera qu'énerver les gens, même si vous leur dites d'avance.
La dernière méta-règle que j'énoncerai est, ne pas appliquer une règle pour elle-même . N'utilisez jamais une règle simplement parce que vous avez vu un autre site ou application le faire, ou même simplement parce que c'est une bonne pratique. Il y a des raisons derrière les meilleures pratiques, mais vous devez connaître et comprendre ces raisons, y compris pourquoi elles peuvent ne pas s'appliquer à votre situation, avant de scotcher une politique de sécurité.
Le jeu de règles que j'aime habituellement est:
- Longueur minimale de 8 caractères.
- Soit une casse mixte, des symboles numériques ou .
- Ne peut pas être composé uniquement d'un mot du dictionnaire.
- Ne peut contenir aucune partie de votre nom, nom d'utilisateur ou date de naissance (si je connais ces choses)
- Impossible d'avoir un "mot de passe interdit" être 50 % ou plus du mot de passe. Les mots de passe interdits incluent tous ceux qui sont déjà apparus sur la liste des 25 meilleurs de SplashData, y compris la plupart des plus grands comme "Password", "letmein", "12345678", etc., ainsi que toute chaîne qui est "intéressante" en sécurité informatique ("correcthorsebatterystaple" , "orpheanbeholderscrydoubt") et tout mot de passe précédemment utilisé et connu pour avoir été compromis. La liste complète serait relativement courte et facilement affichée aux utilisateurs via un lien de la liste des règles.