web-dev-qa-db-fra.com

Avons-nous vraiment besoin d'un mot de passe long et compliqué pour les sites Web?

La plupart des sites Web qui gèrent des informations importantes (Gmail, par exemple) ont une sorte de protection par force brute. Parfois, si vous essayez plus de X fois, le compte sera verrouillé ou au moins vous donnera un captcha à résoudre.

Actuellement, tous les experts en sécurité continuent de dire la même chose: créer des caractères longs et mixtes, des mots de passe à haute entropie. Cela a beaucoup de sens si vous pensez à une clé RSA ou à quelque chose qui pourrait être déchiffré hors ligne, mais est-ce vraiment important lorsque nous parlons des mots de passe des comptes en ligne?

Par exemple, nous créons un mot de passe pour Gmail en utilisant seulement 6 lettres de l'alphabet anglais. Cela représente environ 26 ^ 6 = 309 millions de combinaisons. Si nous considérons que nous pouvons tester 1 mot de passe par seconde (ce qui, je pense, est plus rapide que nous ne le pouvons réellement, si vous prenez en compte les captchas Gmail), nous aurons besoin de 10 ans pour rompre et de 5 ans en moyenne.

Points à considérer:

  • Si vous utilisez le même mot de passe sur un site Web différent, un autre site Web pourrait être piraté et votre mot de passe exposé. Je suppose que le mot de passe est unique. Utilisé uniquement avec Gmail.
  • Si quelqu'un peut récupérer la base de données, il pourrait forcer le hachage de votre mot de passe hors ligne. Je suppose que le site Web utilise au moins un hachage salé (très peu probable que le pirate essaie de casser tous les mots de passe) et/ou il est très peu probable que la base de données soit piratée (c'est une hypothèse juste avec Gmail)
  • Je suppose également que votre mot de passe n'est pas un mot du dictionnaire ou quelque chose de facile à deviner. Cela devrait exclure la force brute de plusieurs comptes (par exemple, tester le même mot de passe commun sur plusieurs comptes).

Est-il sûr de supposer que nous n'avons pas besoin d'un mot de passe très long pour les sites Web dès que nous suivons les autres mesures de sécurité? Si nous suggérons que les gens utilisent un mot de passe long simplement parce qu'ils ne suivent normalement pas les autres conseils de sécurité (utilisez le même mot de passe entre les comptes, etc.). N'essayons-nous pas vraiment de corriger les symptômes et non la cause?

PS: Certaines autres questions concernent presque la même chose, mais les réponses considèrent toujours que la personne utilise le même mot de passe sur tous les sites Web ou que la base de données du site Web est facilement volée.

66
drpexe

Ce qui suit ne rend pas vraiment cette justice, mais en résumé ...

Dans un monde idéal, aucun mot de passe compliqué ne devrait être requis pour les ressources en ligne.

Mais, dans ce monde idéal, nous dépendons des administrateurs du système pour durcir les systèmes afin d'empêcher tout accès non autorisé au "fichier de mots de passe", ce qui suit minimisera le risque:

  • Configurer l'infrastructure en toute sécurité;
  • Appliquez rapidement les correctifs;
  • Avoir une certaine forme de surveillance pour identifier un compromis en cas de scénario d'exploitation zero-day (afin que les utilisateurs puissent être "informés" de changer leurs mots de passe);
  • Avoir et suivre des méthodologies de programmation/développement "sécurisées";
  • N'employez que des personnes de confiance.

La combinaison complète de ce qui est peu probable pour de nombreux sites.

Les faiblesses de la liste ci-dessus peut entraîner des exploits qui permettent de contourner complètement les mots de passe, mais quelle que soit la nature d'un exploit réussi, il y a fort à parier qu'après avoir obtenu un accès non autorisé à un système, les attaquants tenteront pour exfiltrer le fichier de mots de passe et ensuite le forcer brutalement pour faciliter la compromission des autres systèmes (en exploitant le recyclage des mots de passe).

Ainsi, bien qu'il n'y ait aucune garantie qu'un mot de passe fort (er) empêchera toutes les mauvaises choses, il peut aider à atténuer les faiblesses des solutions des fournisseurs (qu'elles soient connues ou non).

Pour éviter tout doute, nous dépendons également du fournisseur de services pour ce qui suit:

  • Appliquer le hachage et le salage aux mots de passe;
  • Assurez-vous que le mot de passe n'est jamais échangé en texte clair.

Je suppose que pour la plupart des utilisateurs finaux, la décision concernant la complexité et la longueur des mots de passe dépendra des informations auxquelles le site (et donc du mot de passe) donne accès.

Ma recommandation est la suivante: si c'est quelque chose d'important, utilisez un mot de passe complexe afin qu'en cas de compromission du système, les mots de passe des autres soient susceptibles d'être découverts en premier. Mais si quelque chose de trivial et de commodité est plus important, tentez un mot de passe plus faible, mais acceptez qu'un piratage pourrait entraîner la perte de l'accès au compte et/ou la divulgation d'informations du compte.

Pour de nombreux propriétaires de sites, je soupçonne que la décision d'exiger des mots de passe complexes est une combinaison de FUD et le désir de minimiser l'impact d'une défaillance critique des contrôles en augmentant le temps passé aux mots de passe par force brute, ce qui donne plus de temps pour rectifier et minimiser compromis sur le compte utilisateur (bien que si un attaquant a accès au hachage de mot de passe, il dispose probablement d'un accès suffisant au système pour compromettre le système de toute autre manière).

36
R15

La longue recommandation de mot de passe est de protéger les mots de passe contre le piratage si quelqu'un a accès au hachage de ce mot de passe.

Des outils comme hashcat peuvent facilement (en utilisant gpu) tester les hachages 93800M c/s md5

En tant qu'utilisateur, vous ne savez généralement pas comment le site stocke votre mot de passe, il est donc préférable d'utiliser un mot de passe long pour atténuer ces attaques.

33
DaniloNC

Choisir de bons mots de passe est difficile. Les humains et notre penchant pour les modèles ne sont tout simplement pas très bons dans ce domaine. Multipliez cela par les dizaines de comptes que nous accumulons au fil du temps, et c'est la racine du problème.

Alors oui, l'élimination des mauvais mots de passe et de la réutilisation des mots de passe peut résoudre le problème de la création de cibles souples, mais cela ne résout pas le problème racine de la maintenance de tous ces comptes et mots de passe, ce qui conduit à la mauvaise réutilisation des mots de passe et des mots de passe dans le premier endroit. Donc, c'est bien beau de dire "suivez simplement les bonnes politiques de sécurité par mot de passe" et vous serez en sécurité, mais sans vous attaquer au problème de la gestion des comptes, vous n'avez rien résolu.

Donc quelle est la réponse? Utilisez un gestionnaire de mots de passe. Cela résout le problème. Lorsque vous déchargez le problème de création et de gestion des mots de passe sur un outil spécialement conçu à cet effet, vous obtenez des mots de passe forts par défaut et vous n'avez plus jamais besoin de réutiliser un mot de passe. Ce n'est pas une solution parfaite (rien ne l'est) mais c'est le meilleur que nous ayons pour le moment et rend les questions de complexité et de longueur de mot de passe sans objet, car lorsque vous n'êtes pas celui qui doit créer et mémoriser le mot de passe, vous ne vous souciez plus combien il est complexe et long, seulement qu'il est généré avec suffisamment d'entropie pour le rendre solide, et un gestionnaire de mots de passe vous le donne.

31
Xander

Les seules hypothèses sensées pour tout développeur Web utilisant l'authentification par mot de passe local sont:

  1. que leurs utilisateurs vont utiliser le même mot de passe pour tout;

  2. que le site a déjà été compromis, même s'ils n'ont pas encore fini de l'écrire; et

  3. il y aura une responsabilité juridique très coûteuse attachée aux conséquences de ce compromis.

(Veuillez noter que je n'implique pas, ni ne suggère, que tous - ou même tous - les développeurs Web sont sensés ou connaissent suffisamment ce qu'ils sont. faire pour se rendre compte que ce qu'ils font serait fou s'ils savaient ce qu'ils faisaient. Les hachages simples, simples ou salés, sont suffisamment proches pour le calcul au texte brut comme pour ne rien faire de nos jours, et pourtant on trouve toujours du texte brut, du MD5 non salé, etc. dispersés sur le Web dans des soi-disant "tutoriels" que les gens copient et collent en production sur des serveurs partout.)

Ces hypothèses signifient que même si je gère un site avec une application extrêmement locale dédiée à permettre aux gens de répertorier des recommandations pour des gâteries de hamster bio sans gluten cultivées localement, je dois traiter votre mot de passe comme s'il s'agissait de votre Paypal, eBay et comptes de messagerie tous combinés (car il y a de fortes chances que ce soit le cas). Et cela signifie que pour protéger mon propre derrière plutôt précieux, je dois prendre au moins quelques mesures minimales pour protéger votre précieux derrière, que cela vous plaise ou non. Idéalement, cela signifie faire de votre mot de passe quelque chose qui ne peut pas être trivialement forcé par la brute (en utilisant un sel crypto-aléatoire et une fonction de dérivation de clé coûteuse) et en mettant une limite inférieure absolue sur le nombre de caractères (idéalement sans limite supérieure, dans des limites raisonnables) ), tout en vous permettant d'utiliser quelque chose dont vous vous souviendrez facilement (rien de tout cela "ne doit utiliser au moins un caractère accentué, un emoji et un hiragana". En d'autres termes, vous permettre d'utiliser un mot de passe très court expose mes fesses personnelles à des dangers injustifiés, alors ne vous attendez pas à ce que je le permette. Et c'est si mon site ne garde aucun secret sauf votre mot de passe. S'il y a des données personnelles réelles qui vous sont associées dont je suis responsable, attendez-vous à ce que ma paranoïa en votre nom augmente considérablement.

11
Stan Rogers

tiliser un mot de passe complexe pour un seul site sécurisé, c'est comme utiliser un verrou spécial sur la porte de votre appartement, ce qui rend l'ouverture de la porte plus longue et vous protège mieux contre 1% de tous les cambrioleurs

La plupart des réponses traitent de toutes sortes de scénarios d'attaque, ce qui pourrait compromettre votre mot de passe, mais pour décider si un mot de passe plus petit (6 caractères) est suffisant si vous ne l'utilisez que sur 1 seul site avec une bonne sécurité raisonnable, nous n'avons qu'à comparer un seul numéro :

Combien d'attaques fonctionnent bien mieux sur un mot de passe faible que sur un mot de passe fort?

Si la protection par force brute en ligne est suffisamment forte (une prémisse dans la question), le seul scénario d'attaque pertinent est le forçage brutal hors ligne. Dans tous les autres scénarios d'attaque (lecture de mot de passe en clair, vol de session, ingénierie sociale, phishing, falsification d'utilisateur), la complexité du mot de passe ne joue aucun rôle (s'il ne s'agit pas d'un mot de passe standard)

Alors, combien de% des attaques sur votre compte ou sur gmail utiliseront probablement un forçage brutal hors ligne possible de votre mot de passe? Probablement presque nul. Le forçage brutal ne fonctionnera qu'avec une version de hachage ou cryptée de votre mot de passe. Partout ailleurs, votre mot de passe est en texte brut (donc la complexité n'a pas d'importance) ou n'est pas du tout pertinent (par exemple, identifiant de session, accès direct d'un initié au serveur de stockage de courrier)

Les seuls cas où votre mot de passe est chiffré ou haché sont 1. le hachage salé dans la base de données et 2. le transfert de votre mot de passe via HTTPS

  1. Hash salé dans la base de données Si le pirate a effectivement accédé à la base de données où tous les mots de passe utilisateur sont stockés (probablement l'un des meilleurs points sécurisés de l'infrastructure) mais n'a pas pu accéder à d'autres services (comme un identifiant de session actif ou accès direct au compte) Ensuite, une attaque hors ligne contre votre hachage salé avec une attaque par force brute utiliserait rapidement votre mot de passe.

  2. Transfert HTTP Très improbable car l'attaquant devrait forcer votre flux HTTPS pour isoler votre mot de passe, donc la longueur du mot de passe n'a pas beaucoup d'importance.

Ainsi, le seul scénario dans lequel un long mot de passe vous protège réellement est si quelqu'un a accès au stockage de données (probablement) le plus sécurisé de l'infrastructure sans que personne ne le remarque - et sans suffisamment d'accès pour accéder plus facilement à votre compte. Je dirais que ce scénario est vraiment improbable, car dans le grand nombre de vulnérabilités et d'attaques contre votre compte, ce n'est qu'un type d'attaque improbable.

5
Falco

Il y a des problèmes avec quelques-unes de vos hypothèses.

309 millions est un chiffre ridiculement petit s'il y a une attaque hors ligne. Et lors d'une attaque hors ligne, même avec un bon sel, l'attaquant recherchera d'abord le fruit suspendu bas. C'est à dire. trouver les mots de passe qui se trouvent dans le dictionnaire, puis les mots de passe courts, puis d'autres mots de passe simples. Cependant, l'ampleur du problème est discutable - il est probable qu'un attaquant ayant accès à la base de données de mots de passe ait également accès à tout ce qu'il recherche. - Cela suppose qu'aucune réutilisation du mot de passe n'a lieu.

309 millions représentent, comme vous le constatez, un espace de recherche trop important pour être utilisé par la force brute dans une attaque en ligne. Cependant, vos hypothèses qui conduisent à ce nombre sont douteuses. En tant qu'espèce, nous sommes notoirement pauvres dans deux tâches pertinentes; venir avec des séquences véritablement aléatoires et se souvenir des séquences aléatoires. Cela signifie que votre entropie est nettement inférieure si vous avez sélectionné un mot de passe à 6 caractères. Cela peut être évité si vous utilisez un gestionnaire de mots de passe ou un utilitaire similaire, mais dans ce cas, vous pouvez également opter pour un mot de passe plus long pour vous protéger contre les attaques hors ligne.

En conclusion; obtenir une bonne entropie dans votre mot de passe dépend du caractère pr entropie et de la longueur de votre mot de passe. - Si vous avez une bonne entropie par caractère, vous pouvez accepter un mot de passe plus court. Cependant, c'est une approche qui convient mal à la plupart des humains, car nous nous souvenons mieux des chaînes plus longues avec une entropie inférieure par caractère que des chaînes plus courtes avec une entropie élevée par caractère. Nous aimons également générer des chaînes aléatoires, et les conseils que vous citez sont destinés aux personnes qui n'utilisent pas de gestionnaires de mots de passe pour générer des mots de passe.

5
Taemyr

Bien qu'il soit plus sûr de créer des mots de passe compliqués, je recommande toujours de les rendre faciles en même temps, et d'avoir également un caractère unique par site Web. La seule façon dont cela pourrait être une vulnérabilité est que vous tombiez dans une arnaque de phishing, c'est pourquoi il est important d'avoir plusieurs façons de récupérer votre adresse e-mail, car votre e-mail est votre moyen de récupérer d'autres comptes.

Voici les règles que j'utilise personnellement:

  • Au moins 8 ou 10 caractères, de préférence 12 ou plus
  • Utilisez quelque chose qui signifie quelque chose pour vous
  • Les abréviations ou l'utilisation d'un chiffre au lieu d'une lettre peuvent être faciles mais efficaces
  • Si vous le souhaitez, vous pouvez utiliser un préfixe ou un suffixe pour garder les mots de passe uniques

Ainsi, par exemple: ThisIsMyPassword14si

Utilisations: lettres majuscules, chiffres et suffixe de si pour l'échange de pile, et a une année de quelque chose qui signifie quelque chose personnellement. Ce type de mot de passe apparaît généralement toujours comme un mot de passe fort.

Il existe également plus de services qui vous permettent de vous connecter à l'aide d'un autre service basé sur des jetons. Je pense que c'est une excellente idée, car vous pouvez vous déconnecter chaque fois que vous souhaitez supprimer tout accès, et vous n'avez pas besoin d'un mot de passe pour chaque service (en supposant que les développeurs ont conçu le processus correctement). CEPENDANT, vous devez être plus prudent avec le mot de passe de ce service et avoir plusieurs options de récupération pour celui-ci au cas où vous le perdriez pour une raison quelconque.

Je pense que Google va dans la bonne direction ici, en ayant plusieurs options de récupération et une authentification à 2 facteurs. Le problème est que presque tout peut être usurpé si vous ne faites pas attention à la page réelle qui demande vos informations.

Espérons que dans le futur, il y aura un appareil sur vous, comme un téléphone mobile, qui pourra servir d'habilitation de sécurité pour les services Web. Les applications sont contrôlées par le distributeur, donc avoir une application par plate-forme pour obtenir la demande d'accès et demander votre autorisation sera la bonne façon de la gérer à l'avenir, nous n'avons donc pas à nous soucier de ce mot de passe individuel pour tout non-sens.

... un jour...

4
Mark

Ma réponse est simplement oui. Vous ne pouvez pas supposer que les sites utilisent des méthodes de hachage salées. Par exemple, le MD5 est toujours utilisé dans la nature et les gens pensent qu'il est parfaitement acceptable.

Mais avec un mécanisme de hachage fortement salé, il n'y a tout simplement aucun moyen pour que quelqu'un puisse accéder au mot de passe réel, même s'il s'agit d'un passe-bas. Surtout si votre serveur est correctement sécurisé et que votre API prend les précautions appropriées pour les attaques par force brute.

4
James_1x0

Vous avez oublié l'attaque physique locale! Un mot de passe long et complexe rend les repérages d'épaule beaucoup moins susceptibles de réussir. Même si quelqu'un regarde mon clavier, il n'aura pas mes mots de passe à moins qu'il ne soit Rainman. (ne peut pas commenter)

2
Irving Poe

Lorsque vous utilisez un système d'authentification fiable à deux facteurs, l'utilisation d'un mot de passe moins sécurisé est raisonnable. Il est toujours préférable d'utiliser un mot de passe difficile généré par un générateur de mot de passe en utilisant des majuscules et des minuscules, des chiffres et des symboles.

Mais les gens qui ne déploieront pas un tel mot de passe sécurisé; dans le cas d'un service offrant une authentification à deux facteurs, ces personnes peuvent se sentir raisonnablement en sécurité.

2
Shai

N'oublions pas que quelqu'un n'a pas besoin de forcer brutalement une cible. Ils peuvent essayer le même mot de passe avec de nombreuses cibles, ce qui rend les utilisateurs avec les mots de passe les plus courants vulnérables.

2
dibble