web-dev-qa-db-fra.com

Est-ce une pratique acceptable d'incrémenter uniquement un nombre lors du changement d'un mot de passe?

Remarque: je ne demande pas si ce schéma de mot de passe est le meilleur ou non (bien sûr qu'il ne l'est pas); je pose des questions sur son théorique ou pratique sécurité par rapport au schéma de mot de passe optimal basé sur les algorithmes couramment utilisés dans l'authentification et le cryptage. Comme je l'ai déjà dit dans ma question, mathématiquement ce schéma (tel que je l'ai défini ici) est aussi sécurisé que ce que les gens sont invités à le faire (mais le font rarement; bien que cela ne soit pas pertinent ici), mais je ne sais pas s'il existe des aspects étranges de l'authentification ou du chiffrement qui invalident l'analyse mathématique basée sur l'entropie seule.

Eh bien, j'ai eu cette pensée intéressante. Étant donné que les systèmes protégés par mot de passe nécessitent souvent que les utilisateurs changent fréquemment de mot de passe, de nombreuses personnes incrémentent simplement un compteur ajouté à un préfixe, tel que:

awefjio; 1

awefjio; 2

...

Je me demande si l'utilisation d'une telle famille de mots de passe est aussi sûre que le choix d'un nouveau mot de passe complètement aléatoire à chaque fois, tant que le préfixe est uniformément choisi au hasard et tant que chaque nouveau mot de passe aléatoire plus environ 10 bits. = J'ai ignoré les bits supplémentaires du compteur car cela pourrait être devinable dans une petite marge d'erreur compte tenu de la fréquence à laquelle les utilisateurs doivent changer leur mot de passe. Mathématiquement, ce schéma de mot de passe est assez bon car les 10 bits supplémentaires permettent à l'attaquant d'essayer 1024 fois plus longtemps pour casser le mot de passe par rapport à celui complètement aléatoire, en supposant que l'on ne change pas un mot de passe plus de 1024 fois. (Ici, je suppose que l'attaquant a en quelque sorte un hachage du mot de passe, y compris tout sel nécessaire.)

Maintenant, je connais un inconvénient évident à cela, c'est qu'un attaquant qui obtient en quelque sorte le mot de passe actuel connaîtra tous les mots de passe précédents, néanmoins cela semble complètement hors de propos dans la plupart des situations pratiques, où une fois connecté, l'utilisateur a un accès complet à son/son compte et n'a jamais besoin des anciens mots de passe.

D'où ma question; y a-t-il une raison concrète pour laquelle les utilisateurs ne devraient pas utiliser ce schéma pour changer les mots de passe? Je suppose que si la réponse est positive, cela dépendra des algorithmes d'authentification ou de chiffrement impliqués eux-mêmes, auquel cas je suis d'accord pour restreindre la question aux algorithmes les plus couramment utilisés.

Pour être clair, je ne pose que des questions sur la situation où:

  1. Les utilisateurs n'ont d'autre choix que de changer leurs mots de passe à une fréquence fixe et n'ont pas la possibilité d'utiliser un gestionnaire de mots de passe (comme sur un ordinateur de travail). Ils doivent donc décider d'un schéma. Cette question est de savoir si un régime particulier est meilleur qu'un autre.

  2. Choisissez une constante fixe n. J'ai en tête n ≥ 64 au minimum, si cela compte.

    une. Le premier schéma consiste à choisir une nouvelle chaîne aléatoire indépendante avec entropie à n bits à chaque fois que l'on doit changer le mot de passe.

    b. Le deuxième schéma consiste à choisir une chaîne aléatoire fixe avec une entropie (n + 10) bits et à ajouter un compteur qui est incrémenté à chaque fois que l'on doit changer le mot de passe.

La question est de savoir si (b) est au moins aussi sûr que (a) pour les types courants de systèmes protégés par mot de passe.

36
user21820

Si un attaquant a découvert votre mot de passe, il peut accéder au système jusqu'à ce que vous changiez le mot de passe. Changer les mots de passe empêche souvent les attaquants qui ont déjà votre mot de passe d'avoir un accès non détecté indéfiniment.

Maintenant, si votre mot de passe est secret-may16 et l'attaquant est verrouillé lorsque vous changez votre mot de passe, il va certainement essayer secret-june16 comme mot de passe. Donc, changer le mot de passe de manière prévisible n'est pas sûr.

70
Sjoerd

Vous ne devez pas utiliser ce schéma, car une fois ce mot de passe connu d'un attaquant, il peut dériver les mots de passe "ultérieurs".

Cela pourrait être le cas dans ces situations:

  • Le mot de passe est partagé entre vous et certaines autres personnes trompées, et un jour vous décidez de ne plus faire confiance à (l'une d'entre elles). Dans ce cas, ils pourraient facilement deviner les prochains mots de passe.
  • Un attaquant s'empare du mot de passe. Une fois qu'il le craque (ce qui peut prendre un certain temps), il peut alors deviner les dérivations du mot de passe.

En utilisant de tels "mots de passe numérotés", vous détruisez le (petit) avantage de sécurité de changer régulièrement de mots de passe.

Question connexe: Comment le fait de changer votre mot de passe tous les 90 jours augmente-t-il la sécurité?

35
Lukas

Changer seulement une partie du mot de passe est [citation nécessaire] très courant et une très mauvaise pratique.

L'entropie est une mesure de l'inconnu d'une chose. pour la première fois que vous choisissez un début fixe aléatoire ou un tout nouveau mot de passe, tous deux avec la même quantité d'entropie, les deux alternatives seront équivalentes. D'accord.

Pour le temps dont vous avez besoin pour changer votre mot de passe, si vous êtes complètement sûr qu'aucun mot de passe précédent ne sera découvert, vous êtes également bon. Parce que quelque chose qui n'est pas connu gardera la même quantité d'entropie.

Mais ... et il y a toujours un mais ... et si un mot de passe précédent est récupéré? Ou deux?

Cela peut arriver avec des sites/systèmes qui stockent les mots de passe précédents en texte brut. Peut également se produire avec des sites/systèmes qui stockent les mots de passe précédents sous forme de hachages.

Parce que le texte en clair, bien, montrera facilement que votre ancien mot de passe était IamGod_april16. Et quelqu'un essaiera d'utiliser IamGod_may16 ... Le simple fait de changer une partie, d'une manière prévisible, exposera facilement votre nouveau mot de passe.

Même s'il a été stocké en tant que hachage: il sera plus difficile lorsqu'il est correctement fait, mais que se passe-t-il si quelqu'un freine le hachage et découvre quel était votre mot de passe? Il pourra alors essayer IamGod_december18, et si vous n'avez pas changé votre schéma à l'avenir ... bang! J'ai été touché à cause d'une fuite survenue 2 ans auparavant.

Voir que cela n'a pas d'importance si la partie "IamGod_" est aléatoire, lisible par l'homme, ou autre chose: ce qui vous frappe, c'est qu'une partie de if peut divulguer des informations: le mois, le nombre, la lettre à la fin. .. même si votre schéma était "IamGodh", quelqu'un pourrait essayer "IamGodi", "IamGodj", etc.

Donc, la première partie de la réponse à votre question spécifique sur si le schéma (b) est moins, égal ou plus sécurisé que (a): il n'est pas plus sécurisé. Parce que si vous utilisez simplement un numéro changeant, un mois, une lettre changeante ... au final, il est très facile d'essayer de nouvelles combinaisons, que ce soit hors ligne ou dans un système en ligne.

Et il y a la deuxième partie: même si vous concevez un très bon schéma et que la partie changeante est au milieu du mot de passe ... que faire si quelqu'un récupère 2 anciens mots de passe ou plus? Et découvre qu'ils étaient "3VQ2NMkK", "3VQ3NMkK" et "3VQ4NMkK"? Eh bien, pouvez-vous voir un modèle?

Ainsi, (a) et (b) peuvent même être également sécurisés si votre schéma n'est pas détecté. Mais c'est une hypothèse forte que l'on peut concevoir un bon schéma, donc, en général, il est très sûr de supposer que (b) sera moins sûr, pour tout type de système.

Bien sûr, cela suppose que le système est cassé d'une manière ou d'une autre: que la base de données est divulguée parce que quelqu'un envahit un site, ou parce que des gens internes copient la base de données, ou que quelqu'un perd la bande de sauvegarde, ou que la jeune fille exécute un man-in-the- attaque médiane à l'intérieur de l'entreprise, ou parce qu'une mise à jour du site a divulgué le mot de passe, ou parce que l'attaque par cœur a révélé certains mots de passe, ou parce que l'entreprise a laissé un vieil ordinateur être disponible sur le réseau, ou ...

Étant donné que ces situations (et bien d'autres) échappent à votre contrôle, le conseil est de choisir le côté sûr: ne présumez pas que les anciens mots de passe ne seront pas divulgués.

11
woliveirajr

Garder un schéma spécifique n'est jamais une bonne idée même si les environnements d'entreprise qui nécessitent des mises à jour/changements fréquents de mot de passe. Par exemple, si, comme dans votre exemple, quelqu'un a conservé les mêmes caractères de base et n'a modifié le mot de passe que par un seul entier, quelqu'un qui apprend un ancien mot de passe peut utiliser le schéma pour prédire les changements. Prenons par exemple l'outil appelé "crunch". En utilisant l'exemple que vous avez fourni, toutes les permutations possibles du schéma peuvent être générées et utilisées dans une attaque par dictionnaire.

#!/bin/bash

crunch 9 9 0123456789 -t awefjio@@

Crunch will now generate the following amount of data: 1000 bytes
0 MB
0 GB
0 TB
0 PB
Crunch will now generate the following number of lines: 100 
awefjio00
awefjio01
awefjio02
awefjio03
awefjio04
awefjio05
awefjio06
awefjio07
awefjio08
awefjio09
awefjio10
.........

Et ainsi de suite. Le maintien d'un modèle de mot de passe prévisible facilite le piratage dans les forums de connexion au site Web protégés par des informations d'identification. Il est recommandé de créer un mot de passe unique et complètement nouveau à chaque fois. Une autre chose qui constitue une menace est l'étape de collecte d'informations du piratage. Plus un pirate informatique en apprend sur les habitudes, les goûts, les aversions, les passe-temps, les noms de famille, les dates de naissance, les dates d'événements spéciaux de la vie, etc.

Donc, pour répondre à votre question, non, ce n'est jamais, en aucun cas, une bonne pratique d'utiliser des incréments entiers simples avec des changements de mot de passe,

7
Yokai

Oui, ça l'est.

Obliger les utilisateurs à changer régulièrement de mot de passe est un élément contre-productif de sécurité (voir article de la SCEE ) car il oblige les utilisateurs à écrire leurs mots de passe. Si un attaquant a réussi à obtenir un mot de passe, il peut avoir plusieurs semaines pour installer des portes dérobées ou des gigaoctets Slurp de données sur le système de toute façon avant que le mot de passe ne soit modifié.

L'utilisation d'un schéma de numérotation simple vous permet de choisir un mot de passe dont vous pouvez vous souvenir sans l'écrire, puis vous pouvez jouer au système pour vous permettre de continuer à utiliser indéfiniment votre mot de passe mémorable.

Si votre mot de passe actuel a n bits d'entropie, il continuera à avoir autant d'entropie que tout autre n mot de passe d'entropie. Changer constamment de mot de passe ne change rien à cela. L'ajout d'un seul chiffre à la fin ajoute environ 2,3 bits ( ln (10) bits). Mais même si votre schéma de numérotation est si facilement devinable qu'il n'ajoute aucune entropie, vous avez toujours les bits n avec lesquels vous avez commencé.

Si l'algorithme de hachage utilisé est bon, alors un mot de passe a hachera ce qui semble être une chaîne aléatoire. Un autre mot de passe b donnera ce qui semble être une chaîne complètement différente (sauf dans le cas extraordinairement rare d'une collision de hachage). Il ne devrait y avoir aucun moyen possible, en examinant les deux hachages, de déterminer si les deux mots de passe sont complètement différents ou varient d'un seul caractère (peut-être un chiffre à la fin). S'il est possible de dire si un seul caractère a changé, alors votre algorithme de hachage est cassé et vous en avez besoin d'un meilleur.

Le même argument vaut pour tout système de chiffrement utilisé pour transférer des mots de passe d'un client vers un hôte. Si deux mots de passe similaires donnent des messages chiffrés similaires, le chiffrement est déjà inutile.

5
Simon B

Dans votre cas, la sécurité du schéma de séquençage est diminuée principalement en raison de facteurs non cryptologiques. Pensez à surfer à l'épaule. Si vous tapez le même mot de passe, jour après jour, année après année, vos collègues ou autres observateurs pourraient remarquer les tendances. Vous pouvez taper le même mot de passe à différents endroits qui ont différents niveaux de sécurité physique, comme un café, où une caméra ordinaire pourrait récupérer le mot de passe.

Considérez le cas où l'attaquant n'utilise pas les connaissances en même temps qu'il les apprend. Je suis peut-être un collègue qui a accidentellement observé votre mot de passe l'année dernière, mais cette année, nous sommes des rivaux amers pour le même compte. Connaître l'un de vos anciens mots de passe était qwerty1007 et un autre qwerty1011 signifie que je réussirai avec quelques suppositions assez simples.

En utilisant un modèle, vous augmentez le risque de perte sur une plus longue période de temps.

[Votre proposition ressemble superficiellement à un schéma commun utilisé par les systèmes d'authentification à deux facteurs. Un utilisateur doit entrer un mot de passe mémorisé, plus il doit entrer un code affiché sur son périphérique matériel.

Mais la raison pour laquelle il est sécurisé n'est pas que la sécurité est nettement améliorée par la taille du code du jeton; c'est que le système limitera le nombre de mots de passe incorrects + devinettes de code à un nombre fini, puis verrouillera l'ID utilisateur. ]

4
John Deters

Je voudrais développer un peu l'explication donnée par Sjoerd et l'aborder sous un angle quelque peu différent.

Tout d'abord, il faut se demander quel objectif de sécurité est atteint par le changement programmé (par opposition à réactif) des mots de passe? Pourquoi votre division de la sécurité ou votre document sur les meilleures pratiques vous obligent-ils à changer de mot de passe tous les deux mois?

Il y a deux raisons:

  1. pour compliquer les attaques par force brute

    Lorsque quelqu'un accède au hachage de votre mot de passe, il lui faudra un certain temps avant de réussir à le casser. Si le temps nécessaire pour effectuer une attaque par force brute est plus long que la période de validité du mot de passe, ils ne peuvent pas réellement profiter de l'obtention du mot de passe puisque vous l'avez déjà changé

  2. Limiter la durée pendant laquelle un mot de passe compromis peut être utile

    Les gens ne découvrent pas toujours que leur mot de passe a été compromis. Un changement de mot de passe régulier garantit que le mot de passe ne permet pas à l'attaquant d'entrer indéfiniment. (Bien sûr, dans certains cas, lorsqu'ils se trouvent une fois, ils sont toujours dus à des logiciels malveillants, apt est ce que vous avez, mais ce n'est pas toujours le cas.) Cela prend également en charge les situations où l'attaquant ne découvre le compromis que tardivement en raison de certaines circonstances.

  3. Pour limiter légèrement la réutilisation des mots de passe

    Les gens réutilisent souvent leurs mots de passe dans plusieurs systèmes (professionnels et privés). La plupart des systèmes privés (gmail, cette page Web d'inscription au centre sportif, etc.) ne forcent pas les changements de mot de passe réguliers, il est donc probable que même si l'utilisateur commence avec le même mot de passe partout où les changements de mot de passe le feront les différencier.

  4. Pour passer les attaques de hachage

    Si un attaquant n'accède qu'au hachage de votre mot de passe, il peut souvent utiliser ce hachage pour s'authentifier auprès des systèmes s'il est suffisamment sophistiqué. Changer le mot de passe sous-jacent changera le hachage et ainsi arrêtera à nouveau l'attaquant.

Nous pouvons maintenant nous demander comment les deux schémas que vous proposez se comparent aux objectifs que nous avons définis. Dans tous les cas où l'attaquant accède au texte brut de votre mot de passe (certainement 1,2), le premier schéma (incrémentation) est beaucoup plus faible que le second. Tout attaquant non mort cérébral essaiera l'incrémentation. Dans la troisième situation, il est un peu plus délicat de juger car cela dépend du fait que le mot de passe sur le service extérieur contient le compteur et en général quel est l'impact réel de la réglementation. Pour le quatrième objectif, l'incrémentation est à peu près à égalité avec le deuxième schéma en supposant que la fonction de hachage utilisée se comporte assez étroitement comme un Oracle aléatoire.

Dans l'ensemble, l'incrémentation du compteur sur un mot de passe est certainement beaucoup plus faible que le choix de nouveaux mots de passe arbitraires, mais tout dépend du type d'attaques que vous attendez.

3
DRF

Si votre base de données de mots de passe est divulguée, un bon mot de passe peut prendre un certain temps à se fissurer. À quel moment, très probablement, vous avez été obligé de changer votre mot de passe. Ce concept explique en grande partie pourquoi ces réinitialisations de mot de passe forcées "théâtre de sécurité" existent.

TOUTEFOIS, l'accès à votre compte est généralement géré à l'aide d'un script automatisé. Si la tentative de mot de passe échoue, le script a encore quelques tentatives jusqu'à verrouillage. Si, le 12 mai 2016, un mot de passe comme "fredJune15" a été rejeté et que le script a été informé que les données ont été acquises en juillet 2015, alors le script pourrait bien essayer fredApril15, fredApril12, fredApril16 avant le verrouillage: vous avez donné le script des indices sur les choses à essayer.

Si le script connaît la période de réinitialisation du mot de passe sur votre système, ou peut le deviner, il peut alors deviner avec un simple numéro d'incrémentation, combien de fois le nombre aura été incrémenté. Ainsi, "fred12", après sept périodes de réinitialisation forcée du mot de passe, sera presque certainement "fred19". Les périodes de réinitialisation de mot de passe sont presque toujours d'un mois, donc les deviner fonctionnera presque toujours.

À noter également: si vous utilisez le même mot de passe sur plusieurs systèmes, mais avec des numéros différents, car l'un est incrémenté à un rythme différent, ou parce que vous avez créé vos comptes à un moment différent, alors si un système est compromis, les deux systèmes le sont.

Donc en bref: non, générez un nouveau mot de passe aléatoire à chaque fois. Utilisez un gestionnaire de mots de passe. Si vous pouvez utiliser l'authentification à deux facteurs, faites-le.

1
Dewi Morgan

Vous devez lancer un nouveau mot de passe entier.

S'il n'y a pas de violation, je ne vois pas la valeur de la rotation constante des mots de passe. Cependant - lorsque vous faites pivoter les mots de passe, voici la clé:

Vous souhaitez régénérer le mot de passe à l'aide d'un système avec la même contrainte supposée sécurisée que celle utilisée pour le mot de passe d'origine. C'est à dire. l'incrémentation d'un nombre n'est PAS acceptable car vous n'effectuez qu'un changement d'un octet, car un générateur vous a probablement donné P3588swrOd4.

Donc, si vos règles de mot de passe sont 3 mots aléatoires réels "BadgerYtterbiumLancet" choisissant un nouveau mot non aléatoire, cela rend votre mot de passe beaucoup plus devinable, "BadgerFoxSquirrel".

L'autre gros problème avec la simple incrémentation des mots de passe est que cela crée une situation - disons que votre entreprise le fait depuis 10 ans ... les gens changent de mot de passe chaque mois. Vous créez des hachages de mots de passe dangereusement similaires les uns aux autres. (c'est pourquoi vous utilisez quelque chose de "aléatoire", de "choix" de mots de passe - les gens ont tendance à utiliser le mot de passe, une expression courante, etc.) Vous voulez autant d'unicité pour chaque mot de passe par rapport à l'autre - vous voulez traiter les nouveaux mots de passe pour la même chose que les nouveaux mots de passe. C'est à dire. Password1, Password2, 3,4,5, etc. cela se termine dans un très mauvais endroit. Pire encore, si vous êtes compromis et résolvez le problème, si vos données sont précieuses pour le pirate, vous pouvez parier qu'ils essaieront des variantes proches de ce qu'ils ont trouvé fonctionner auparavant.

En outre, il convient de noter qu'il n'est pas sûr pour les personnes extérieures à votre organisation (c'est-à-dire les employés licenciés/anciens) de connaître la méthode de génération de mot de passe. Encore une fois, c'est pourquoi je rappelle le "aléatoire" - personne ne devrait savoir prédire la génération de votre mot de passe au-delà de quelque chose de vague "ils ont choisi 4 mots aléatoires dans le dictionnaire" ou "ils ont utilisé un puissant générateur de mot de passe aléatoire".

1
Lilly

Lorsque je déchiffre des mots de passe, j'obtiendrai votre nouveau mot de passe dans la même seconde si tout ce que vous faites est d'augmenter. C'est parce que j'essaye les mots de passe ajoutés et ajoutés avant toute autre chose et seulement après les schémas liés à qwerty et la liste de base des mots de passe découverts depuis que mon expérience est ce que nous, les humains, sommes capables de faire.

0
sonofapharmacist

Ce n'est probablement pas la réponse la plus sûre, mais j'ai récemment entendu des conseils sur ce qu'il faut utiliser pour les mots de passe qui changent régulièrement: quel est votre objectif ou autre chose que vous avez hâte de faire au cours des X prochains mois? Utilisez-le pour créer un mot de passe. Donc, si vous partez en voyage à Disney World avant l'expiration de votre mot de passe, vous pouvez faire quelque chose comme Looking4wrd2SpaceMtn!

Dans X mois, lorsque ce mot de passe expirera, envisagez autre chose, peut-être un objectif sur lequel vous travaillez: Wrk-out-35mincard! O

Votre mot de passe ne peut pas être déduit des mots de passe précédents (si vous êtes intelligent à ce sujet), ils ont une longueur décente et ils vous aident à vous souvenir d'un objectif sur lequel vous travaillez ou d'un événement que vous attendez avec impatience.

Si l'astuce consiste à se souvenir du mot de passe et qu'il change fréquemment, je pense que ce n'est pas une option terrible.

0
Paul Pehrson

Vous pourriez être un peu en sécurité si votre suffixe ressemble à une année de naissance.

Si j'utilise myname1977 alors il y a moins, mais probablement pas zéro, de chance que quelqu'un connaissant ce mot de passe devine que je l'ai changé en myname1978.

Mais pourquoi prendre le risque? (fais ce que je dis, pas ce que je fais; j'augmente, mais seulement au travail, car c'est le seul endroit qui me demande de changer mon mot de passe et, en ce qui me concerne, tout le monde dans l'entreprise est libre de tout voir sur mon PC de travail. Votre kilométrage variera certainement).

Personnellement, je trouve Edward Lear pour être une grande source d'inspiration pour les mots de passe :-)

Et le plus simple, le plus mémorable, "cochez toutes les cases" de 8 caractères minimum, un chiffre, un majuscule et un caractère spécial est sûrement cat plus one big dog ALIAS cat+1Dog