Existe-t-il des raisons valables pour interdire les caractères et limiter la longueur des mots de passe?

39

J'ai rencontré pas mal de sites qui limitent la longueur des mots de passe et / ou interdisent l'utilisation de certains caractères. Cela me limite car je veux élargir et allonger l'espace de recherche de mon mot de passe. Cela me donne également le sentiment inconfortable qu’ils ne soient peut-être pas en train d’être hachés.

Existe-t-il de bonnes raisons pour définir une longueur supérieure ou pour exclure des caractères dans les mots de passe?

chris
la source
26
Sûr! Il est plus facile de deviner les mots de passe des gens! : P
FrustratedWithFormsDesigner
4
Parlons-nous de raisons «techniques» valides ou de raisons «affaires» valides?
Martin York
1
@ Martin: Je pensais technique mais je suppose.
chris
11
@JYelton Pourquoi vous souciez-vous de la longueur du mot de passe d'origine? Le hachage aura toujours la même taille. J'espère bien que vous ne les
stockez

Réponses:

27

Non

Il n'y a pas de bonnes raisons.

EDIT: Je ne peux pas prouver qu'il n'y a pas de bonnes raisons, car on ne peut pas prouver un négatif. Je ne vois aucune bonne raison à cela - comme d'autres l'ont souligné, le hachage sera de la même taille, quelle que soit la taille de l'entrée, et l'élimination des caractères valides (du contexte de la question) ne fait que réduire l'espace d'états. La réponse semble évidente à première vue: il n'y a pas de bonnes raisons. Il peut y avoir un grand nombre de raisons qui semblent bonnes ou qui semblent bonnes, mais elles ne le sont pas. S'ils l'avaient été, quelqu'un l'aurait déjà posté ici, ou si ce n'était pas ici, alors certainement sur security.stackexchange.com, et cette réponse n'aurait pas été aussi fortement votée.

Steven A. Lowe
la source
3
Je suis d'accord, mais le commentaire de Kissaki à propos de l'encodage est valide. Certaines piles / programmeurs n'arrivent tout simplement pas à obtenir le codage correct, car se limiter à ASCII est un moyen peu coûteux de le faire fonctionner.
EdA-Qa mort-ora-y
10
Pourriez-vous au moins essayer d'élaborer? Soit vous ne le savez pas, ou vous avez des raisons de croire que les raisons courantes / existantes ne sont pas valables. En vous donnant le bénéfice du doute et en supposant le dernier, vous devriez expliquer pourquoi ces raisons ne sont pas valables.
Aaronaught
8
-1 - Je peux penser à plusieurs bonnes raisons de limiter les mots de passe à un jeu de caractères donné. De même, vous devez garder à l'esprit le fait de devoir prendre en charge les mots de passe de téléphones à clavier et ceux que vous tapez au clavier.
rjzii
9
-1. Aucune justification, juste opinion. Si vous voulez faire une déclaration générale, sauvegardez-la.
Michael K
4
Nous en discutons maintenant sur notre site de méta-discussion : il serait utile de comprendre pourquoi une réponse en un seul mot est si populaire et ce que nous pouvons faire pour améliorer la qualité de telles réponses.
25

Limiter la longueur peut être une mesure pour limiter le temps d'exécution du hachage ainsi que pour limiter la bande passante (et les deux sont vraiment marginaux). À part cela, il n'y a pas de bonne raison, surtout du point de vue de la sécurité.

On pourrait dire: «Les gens oublieront plus facilement les mots de passe longs», mais c’est vraiment une déclaration stupide qui ne va pas du tout au juste.

En ce qui concerne les caractères, tant que vous êtes conscient des problèmes d'encodage potentiels liés au transfert et / ou à la migration des données (par exemple, vous passerez d'ASCII à UTF-8 dans 2 ans), autoriser davantage de caractères ne peut être utile que pour la force des mots de passe.

Kissaki
la source
4
Compte tenu de la surcharge de tout protocole moderne, la longueur du protocole ne peut absolument pas être une bonne raison - autre qu'une limite haute comme 1K juste pour empêcher certaines attaques / absurdités.
EdA-Qa mort-ora-y
3
Limiter le temps d'exécution du hachage est généralement mauvais. Plus le calcul d'un hash est long, plus il est long à le forcer brutalement.
tdammers
Bien que ce soit vrai, c'est toujours un compromis. Vous ne voulez pas toujours calculer le meilleur hash qui prend le plus de temps. D'où une poignée de main asymétrique par rapport à un flux de données symétrique dans un VPN, etc.
Kissaki
17

Oui , il y a une raison pour les caractères spéciaux.

Désactiver les caractères spéciaux est davantage une question de convivialité que de sécurité. Tout d'abord, ils pourraient être mutilés par des problèmes d'encodage. Deuxièmement, même si vous vous engagez à toujours utiliser le même encodage, le problème du périphérique d’entrée demeure. Vous auriez besoin d'un clavier complet (ce qui élimine la plupart des appareils mobiles), avec la même disposition de clavier. Les versions ultérieures diffèrent non seulement entre les langues, mais également entre les systèmes d’exploitation. La présentation de Windows, Linux et OSX peut être légèrement différente. Je vois donc une bonne raison de ne pas laisser le mot de passe comme: √Ω≈ç∫∞§…¬å∑±.

vartec
la source
3
À moins que vous ne fournissiez un mot de passe à vos utilisateurs, c'est-à-dire que si ce sont eux qui le saisissent eux-mêmes, s'ils le souhaitent, ils choisissent d'utiliser un symbole mathématique étrange. Maintenant, je suis d’accord avec le problème du codage ici, bien que je trouve que c’est plus une excuse pour passer sous l’incompétence du radar qu’une véritable bonne raison d’empêcher certains caractères de manière arbitraire.
Newtopian
2
@new: ce n'est pas leur affaire. S'ils se tirent une balle dans le pied, ils percevront tout de même qu'il y a un problème avec votre application et appellent votre soutien.
vartec
7
@Newtopian: Je déteste quand, en tant qu'utilisateur, je suis circonscrit pour cause d'ignorance (par exemple, je ne peux pas spécifier un "+" dans mon adresse électronique). Parfois, cependant, il est bon de ne pas donner aux utilisateurs trop de corde pour se pendre. Je pense que c'est une telle occasion. Il ne s'agit pas d'empêcher "arbitrairement" certains personnages.
Zano
1
Vous préconisez donc que les Grecs, les Arabes, les Chinois et d’autres utilisent tous le format US-ASCII?
l0b0
@ l0: non, je préconise qu'ils utilisent des caractères normaux couramment utilisés dans leur langue plutôt que des caractères spéciaux, qui peuvent être absents dans certaines mises en page.
vartec
13

Il y a quelques années, le monde de la sécurité était un peu controversé lorsque les clients de Chase ont découvert que leurs mots de passe étaient insensibles à la casse. Il s’est avéré que leur page Web n’était qu’une interface pour le système backend OS / 400, vieux de 30 ans, qui présentait une limite technique qui l’ignorait. Le réparer coûterait apparemment des millions de dollars.

Le fait est qu’il peut exister de nombreuses raisons coûteuses de ne pas autoriser les mots de passe sur une certaine longueur.
(Notez que je ne tolère pas cette excuse ...)

BlueRaja - Danny Pflughoeft
la source
1
dans la mesure où c'est la seule bonne raison de limiter le mot de passe de quelque manière que ce soit ... uniquement si le système sous-jacent respecte ces limitations en premier lieu.
Newtopian
8

La plupart des banques, services informatiques, etc. qui appliquent des restrictions de mot de passe maximales ne le font pas pour des raisons techniques. Ils savent parfaitement comment fonctionne le hachage des mots de passe et comment stocker des mots de passe complexes. Ils imposent ces limitations car cela réduit le nombre d'appels d'assistance pour les personnes qui ont oublié leur mot de passe. Est-ce une bonne raison d'imposer ce genre de limitation? En aucun cas. Mais, néanmoins, c'est la raison principale.

Greg Jackson
la source
1
Je vois la réduction des appels au support comme un valid Business reason(personnellement, je ne crois pas qu'il y ait une corrélation)
Martin York Le
2
Eh bien, il existe d'autres moyens de réinitialiser les mots de passe ou d'éduquer les utilisateurs sur la manière de choisir des mots de passe suffisamment complexes et faciles à mémoriser. Mes derniers mots de passe au travail comptaient plus de 25 caractères et je n’ai eu aucun mal à m'en souvenir. Aussi, vraisemblablement, les personnes qui ont du mal à se rappeler leurs longs mots de passe choisiront toujours des mots de passe plus courts, bien que je ne sache pas combien de fois c'est vrai. Réduire les appels au support semble être une raison d’affaires valable, mais c’est toujours une mauvaise raison de limiter la longueur du mot de passe.
Greg Jackson
1
Je pense que mes (et beaucoup de personnes) trouveraient avec précision la saisie (pas seulement le souvenir) de 25 caractères sans voir la sortie presque impossible. J'ai jusqu'ici corrigé 5 fautes de frappe en tapant ceci!
Gerry
Eh bien, se rappeler n’est pas la même chose que taper. Se souvenir des mots de passe longs est très facile si vous savez comment les choisir. il suffit de choisir des lignes d’histoires ou de pièces de théâtre, ou des extraits de poèmes ou de paroles de chansons. Tant que vous changez une ou deux choses à l'intérieur (fautes d'orthographe intentionnelles, changez un mot en un mot qui sonne comme ça ou signifie la même chose, etc.), c'est assez facile et extrêmement sécurisé. Certes, la saisie peut être plus difficile, mais ce n'est pas une excuse pour les banques de vous forcer à saisir moins de 8/10/12 caractères.
Greg Jackson
essayez de taper ce mot de passe de 25 lettres sur un appareil mobile
Lie Ryan
7

Tous les périphériques d'entrée (matériels) ont souvent tous les caractères d'un clavier complet, ou de la même manière. Si on n'utilise pas de gestionnaire de mot de passe, on pourrait avoir du mal à entrer ce mot de passe, non? Et Unicode est encore loin d’être un standard.

Tour
la source
1
Habituellement, les personnes qui entrent des mots de passe utilisent le même matériel (ou la même classe de matériel) pour les créer et les authentifier. Je ne vois pas en quoi c'est un argument pour limiter la longueur ou les jeux de caractères. En ce qui concerne Unicode, lors de la création du côté serveur (la partie authentification), pourquoi limiter la taille ou les jeux de caractères? tout système nécessitant un mot de passe doit pouvoir contrôler la manière dont ce mot de passe est entré dans le système. Par conséquent, si vous avez besoin de l'unicode pour votre client, faites-le en sorte!
Newtopian
@Newtopian Vous supposez que vous n'avez pas à vous connecter à des systèmes hérités, ou à des systèmes indépendants de votre volonté.
Grahamparks
1
ils ont demandé une bonne raison, ce n'est pas une bonne raison
2
@Jarrod - Ne pas être capable de saisir un mot de passe n'est pas une bonne raison?! En tout cas, je ne vous ai pas vu proposer un meilleur (ou aucun).
Rook
3
@Rook vous ne devriez pas avoir utilisé ces caractères si vous saviez que vous ne pouviez pas venir les chercher à partir d' un appareil, qui ne fait pas une bonne raison de les limiter pour tout le monde, il en fait une bonne raison pour vous personnellement de ne pas les utiliser.
7

Existe-t-il de bonnes raisons pour définir une longueur supérieure ou pour exclure des caractères dans les mots de passe?

Je vais deviner et dire que certaines de ces restrictions sont dues au filtrage des personnages sur leur site Web ( & < > #) afin d'empêcher les pirates informatiques d'entrer. Tandis que d’autres sont les idées stupides qui émanent des comités de chefs pointus.

J'ai rencontré un certain nombre de décisions vraiment stupides (à mon avis) de "sécurité". Par exemple, une grande société d’investissement gère mes comptes IRA ainsi que ma pension. Pour faire tout contact avec la pension me oblige à taper mon mot de passe sur le téléphone (vous ne pouvez pas les atteindre autrement). Mon compte de courtage / IRA utilise des lettres (majuscules et minuscules) ainsi que des signes de ponctuation - aucun de ces caractères n'apparaît sur un pavé numérique. Si vous ne pouvez pas vous connecter avec le mot de passe par téléphone, cela vous permet de réinitialiser le mot de passe de votre compte de courtage sur quelque chose que vous pouvez saisir par téléphone.

Mon système de paie (pour la société de conseil pour laquelle je travaille) nécessite des chiffres, et uniquement des chiffres - cela leur permet d'utiliser la même base de données, que l'utilisateur appelle (je ne l'ai jamais fait) ou utilise l'interface Web (je l'utilise uniquement). .

Cela étant dit, il est temps de changer mon mot de passe au bureau. Ils ont de telles restrictions que je pense qu’il faudra environ une demi-journée pour trouver un mot de passe acceptable pour le système: au moins 2 lettres majuscules, au moins 2 lettres minuscules, au moins 2 chiffres (qui ne peuvent pas être +/- 1 du mot de passe précédent), au moins 2 caractères non alphanumériques, ne peut pas correspondre aux 24 derniers mots de passe, ne peut contenir aucune chaîne (en avant ou en arrière) qui est un mot (3 lettres ou plus) en anglais ( aussi quelques autres langues que je n'ai pas l'autorisation de savoir). Je pense que la longueur minimale est de 10 à 11 caractères.

Tangurena
la source
Oui j'ai vu ces personnages sur la liste noire.
Chris
5
Attaque simple: trouvez des notes autocollantes sous les claviers car personne ne peut se souvenir de leur mot de passe.
JeffO
@ Jeff, c'est correct. Si je laisse mon bloc-notes à la maison, les mots de passe sont trop compliqués à mémoriser. Je ne parviens donc pas à me connecter. Et sur le système de paie, je mets le nom d'utilisateur et le mot de passe dans le signet.
Tangurena
"ne peut contenir aucune chaîne (en avant ou en arrière) qui est un mot (3 lettres ou plus) en anglais" C'est celui-là qui m'a eu. Les attaques de dictionnaire ne sont efficaces que si le mot de passe contient des mots entiers, mais si le mot de passe complet ne contient que des mots entiers ... Eh bien, en réalité, un mot entier ou des phrases très courantes. Les mots de passe les plus sûrs et pratiques à utiliser sans écrire sont les mots de passe qui proviennent de livres, poèmes, paroles de chansons, etc. - changez quelques lettres en chiffres, mal orthographiez quelque chose et capitalisez de manière imprévisible sans que personne ne perde ce mot de passe.
Greg Jackson
1
Le filtrage des caractères est un signe certain d'un code non-testé en arrière-plan. Les développeurs doivent apprendre à échapper aux ficelles.
l0b0
5

Une des raisons pour limiter les caractères serait due à la manière dont le mot de passe est ensuite entré.

Plusieurs banques, par exemple, avec leurs sites Web Internet Banking, demandent des mots spécifiques à partir d'un mot de passe, et vous sélectionnez les caractères appropriés via une liste déroulante.

Ils font cela, vraisemblablement, de sorte que les enregistreurs de frappe ne puissent pas détecter la frappe, et donc connaître les [caractères de] votre mot de passe. Bien que je sache qu'il existe de nombreuses autres façons de contourner de telles mesures, par exemple la capture vidéo; il est toujours efficace contre les enregistreurs de frappe.

S'ils devaient autoriser tous les caractères, la longueur de la liste déroulante deviendrait encombrante et permettrait également une confusion entre des personnages similaires.

Megan Walker
la source
1
Il est certain que des personnes (techniques) voudraient tout simplement taper la lettre de toute façon?
Gerry le
@Gerry - il s'agit d'un comportement spécifique du navigateur plutôt que d'une norme absolue et qui dépend également des connaissances de l'utilisateur pour le rendre utilisable.
Jon Hopkins
Ma banque a utilisé une applet contextuelle d'un clavier pour une raison similaire. Mais il était trop difficile à utiliser et a reçu de nombreuses critiques pour son inaccessibilité (cela ne fonctionnait pas pour les lecteurs d'écran, les saisies alternatives, etc.)
jqa Le
1
@Jon - J'ai effectivement parlé de personnel technique, et je ne connais aucun navigateur Windows qui n'implémente pas au moins la première correspondance de caractères, car il s'agit du comportement standard de Windows - ne peut parler pour Mac et * nix
Gerry
1
@Gerry Le navigateur de mon téléphone Android ne le permet pas. Je pense que c'est la même chose pour beaucoup d'appareils mobiles.
RoundTower
2

Interdire les caractères spéciaux tels que tab serait valide. Vous pouvez vous connecter ou modifier votre mot de passe avec un caractère de tabulation en mode texte, mais vous ne pouvez pas l'utiliser dans une interface graphique ou un environnement Web. Un caractère de barre oblique inversée présentera également des problèmes multi-plateformes.

En fait, les mots de passe longs ne sont pas des mots de passe, mais des phrases secrètes. Votre utilisateur moyen ne se souvient pas de 2Z8d!% G # x mais il se souvient que «le nom de mon animal domestique est fido le chien». Un texte plus long est plus difficile à déchiffrer par la force brute et est beaucoup moins susceptible d’être écrit sur une note jointe à l’écran.

jqa
la source
Voir aussi xkcd.com/936
sergut
0

Lorsque les gens tapent, ils font des erreurs, appelées "fautes de frappe". Normalement, les gens voient leurs erreurs et les corrigent. Pour la saisie du mot de passe, vous ne pouvez généralement pas voir ce que vous avez tapé et vous ne pouvez donc pas corriger vos fautes de frappe. Vous faites des erreurs sans vous en rendre compte, soumettez votre mot de passe, et il revient sous la forme "mot de passe invalide". Puis tu réessaye. Puis tu réessaye.

Vous pouvez le considérer comme "3 petites fautes de frappe mineures et vous ne pouvez pas vous distinguer d'une attaque par force brute". Comment les systèmes se défendent-ils contre les attaques par force brute? Une réponse explicite " Trop de tentatives, partez, vous ne pourrez pas vous connecter même si vous réussissez correctement "? Augmentation exponentielle des retards dans la saisie du mot de passe, ce qui entraîne des délais d'attente trop longs pour le navigateur, rendant impossible la tentative de nouvelle connexion? Les approches varient, mais il y a toujours une conséquence dans un système bien conçu.

Vous pouvez le considérer comme "3 petites fautes de frappe mineures et vous obtenez alors une sorte de déni de service".

Au fur et à mesure que la longueur du mot de passe augmente le risque de fautes de frappe (et donc le risque de refuser l'accès d'une personne autorisée) augmente. Toute erreur dépassant environ 20 caractères sera fréquemment mal saisie (à moins que l'utilisateur ne soit intelligent / paresseux et stocke son mot de passe quelque part afin de pouvoir "copier / coller" sans se soucier des fautes de frappe, comme un joli fichier de texte brut sur son bureau appelé " mots de passe " .txt ").

Brendan
la source