Question:
Est-il possible que mon mot de passe ait plus d'une combinaison de mots de passe?
Henry WH Hack v2.1.3
2016-01-12 17:59:00 UTC
view on stackexchange narkive permalink

Mon mot de passe peut-il avoir plusieurs combinaisons de mots de passe?

J'ai lu sur les serrures à combinaison physiques (la serrure que vous ouvrez avec des chiffres) et j'ai appris qu'une serrure à combinaison peut avoir plus d'une combinaison possible.

J'ai également eu mon premier téléphone, un téléphone Nokia normal (pas un smartphone) protégé par mot de passe et j'ai pu ouvrir l'appareil avec un mot de passe qui n'était pas vraiment le mot de passe exact du téléphone. Par exemple, si le mot de passe était défini sur 4545 et que j'ai tapé 1111, le téléphone était toujours déverrouillé. Ou si le mot de passe du téléphone a été défini sur 4114 et que j'ai tapé, disons 2141, le téléphone est toujours déverrouillé.

La question est de savoir si mon mot de passe pour mon ordinateur portable était ! 78ghA , NJ58 * # 3& * , est-il possible qu'une prochaine combinaison fonctionne dans mon dos ou ne fonctionnera-t-elle que s'il y a une vulnérabilité?

J'ai vu votre modification. Veuillez clarifier le système d'exploitation / système utilisé pour une réponse spécifique. À part cela, ma réponse s'applique probablement, c'est-à-dire que c'est théoriquement possible mais pas faisable.
Pour une fonction de hachage donnée `f`, il existe un nombre infini de chaînes de caractères` x` telles que `f (x) = f ("! 78ghA, NJ58 * # 3 & * ")`. Regardez comment fonctionnent les [fonctions de hachage] (https://en.wikipedia.org/wiki/Cryptographic_hash_function) et comprenez comment votre mot de passe est stocké.
FYI - la raison pour laquelle votre téléphone Nokia a pu être déverrouillé avec 2 codes est qu'il avait un maître de déverrouillage PW basé sur le numéro de série du téléphone que vous ne pouviez pas changer. Cela n'avait rien à voir avec le code de déverrouillage que vous avez choisi. Compte tenu de la facilité de détermination du code de déverrouillage principal, il s'agissait d'une grave défaillance de sécurité de la part de Nokia.
Si vous vous inquiétez des collisions de hachage de mot de passe, considérez qu'il est plus probable d'être touché par un coup de foudre (et que les conséquences sont plus graves).
Les deux réponses ci-dessous sont bonnes. Cela dit, je me demande si le demandeur de la question, s'il ou elle est encore en train de lire, pourrait être un peu confus sur ce qu'est un "hachage de mot de passe". La chose à comprendre est qu'aucun opérateur de site Web * responsable * ne stocke simplement les mots de passe des utilisateurs en texte clair; si quelqu'un avec de mauvaises intentions réussissait à pénétrer dans cette base de données, il ou elle pourrait immédiatement lire le mot de passe de chaque utilisateur (!) Au lieu de cela ... eh bien, je n'essaierai pas d'expliquer dans un commentaire. Voici un lien vers la très bonne description de Wikipedia: https://en.wikipedia.org/wiki/Cryptographic_hash_function#Password_verification
Deux réponses:
CristianTM
2016-01-12 19:19:25 UTC
view on stackexchange narkive permalink

Dans la plupart des systèmes protégés par mot de passe, c'est généralement possible, mais très peu probable.

Derrière de nombreux mécanismes de validation de mot de passe se cache l'utilisation de fonctions de hachage salées. Par souci de simplicité, oublions un instant le sel.

Lorsqu'un utilisateur définit son mot de passe, hash (password) est stocké dans la base de données Lorsque l'utilisateur se connecte en présentant password ', hash ( password ') est comparé à hash (password) . Si cela correspond, l'utilisateur est autorisé à se connecter.

Rappelons-nous cependant que les fonctions de hachage obtiennent des données de longueur illimitée et les transforment en données de taille limitée, ex. 128 bits. Par conséquent, il n'est pas difficile de comprendre qu'il peut y avoir plus d'un message qui produit le même hachage à partir d'une fonction donnée. Cela s'appelle une collision et c'est ce qui vous préoccupe.

Le fait est que les fonctions de hachage sont produites de manière si aléatoire que vous ne devriez pas trouver ou produire facilement une collision. C'est théoriquement "possible", mais pratiquement "impossible", si vous utilisez une bonne fonction de hachage moderne.

Plus le hachage résultant est grand par rapport à la longueur de votre entrée et au jeu de caractères de hachage possible par rapport à votre jeu de caractères de mots de passe, moins les collisions sont probables. Si vous stockez des mots de passe de 512 caractères sous forme de hachage de 8 caractères, beaucoup de collisions, en moyenne 16 caractères alphanumériques + symboles dans un hachage de 256 caractères, pas du tout probable (mais les mathématiques mesurent probablement que nous en avons au moins un)
En outre, trouver le mot de passe «autre» serait tout aussi difficile de trouver le mot de passe réel. Il n'y a pas de portes dérobées statiques (connues) pour la plupart des algorithmes de hachage de mots de passe modernes. Cela n'empêche pas une porte dérobée intentionnelle, comme on l'a vu récemment dans divers pare-feu.
Oui, trouver l'autre mot de passe serait aussi difficile que le premier. Cela augmenterait techniquement les chances d'essayer cette méthode de mot de passe aléatoire. Cependant, la plupart des gens craquent des hachages en utilisant des tables arc-en-ciel qui ne seraient pas plus rapides, mais en fonction du jeu de caractères de la table arc-en-ciel, elles auraient de meilleures chances d'être incluses même si elles étaient petites.
J'étais étudiant en informatique dans une université quelque peu prestigieuse aux États-Unis. Le département CS avait un serveur de compte distinct du système principal de l'université et lors de la connexion à son compte CS, tant que les 8 premiers caractères du mot de passe que vous avez tapé correspondaient aux 8 premiers caractères du mot de passe correct, il n'en faisait aucun différence ce que vous avez tapé après cela. Je n'ai aucune idée de ce qu'ils ont gâché pour que cela se produise, mais cela s'est produit (et c'était comme ça pendant les 4 années où j'étais étudiant à l'université).
@daniel ive vu cela se produire auparavant et le système était juste en train de couper la chaîne de mot de passe avant de la traiter :)
@Daniel On dirait qu'ils utilisaient l'ancienne fonction [crypt] (http://man7.org/linux/man-pages/man3/crypt.3.html) basée sur DES. La même chose s'est également produite il y a deux ans chez un fournisseur de VPS local ... Je suppose que cela continuera à se produire de temps en temps.
Notez que la probabilité qu'un hachage de mot de passe * spécifique * entre en collision avec un autre et la probabilité que * deux mots de passe d'un grand ensemble * entrent en collision l'un avec l'autre sont très différentes. Si vous avez n hachages et m mots de passe possibles, la probabilité que l'un des m entre en collision avec un mot de passe * spécifique * est d'environ m dans n. Mais la probabilité qu'il y ait deux mots de passe sur m qui aient le même hachage est de l'ordre de m dans la racine carrée de n.
md5 () est-il considéré comme un hachage moderne?
Non pas du tout. Ni sha1. On devrait utiliser au moins sha256 et salt, et peut-être plus de tours de hachage, ou de meilleures fonctions. Md5 est cassé.
@AryehArmon - NON, non non mille fois non. Aux fins du hachage de mot de passe, PBKDF2, Bcrypt ou Scrypt, tous avec un nombre suffisamment grand d'itérations / facteur de travail sont considérés comme modernes. Voir la réponse canonique de Thomas Pornin sur Comment hacher en toute sécurité les mots de passe sur https://security.stackexchange.com/a/31846/39623
dr jimbob
2016-01-13 00:10:02 UTC
view on stackexchange narkive permalink

Premièrement, par la théorie mathématique - oui (bien qu'en pratique vous puissiez totalement ignorer cela pour les fonctions de hachage modernes et les nombres réalisables par calcul dans cet univers). Si le système ne stocke pas votre mot de passe en texte brut ou via un cryptage réversible, mais le hache (comme c'est la meilleure pratique), il existe une infinité de mots de passe potentiels qui généreront un hachage correspondant à votre hachage (en supposant un hachage cryptographique idéal fonction).

Par exemple, si votre mot de passe était password = '! 78ghA, NJ58 * # 3& *' et qu'ils utilisaient un hachage sha256 salé (notez que cela devrait être renforcé avec de nombreux tours pour rendre la force brute plus difficile) avec un sel de 3 octets: d7 35 e6 alors votre hachage de mot de passe serait 4fe5bbb74a21fb6d20785ce7fce1cd51d6fc87c5a55f65d75e8f37096ed54a53 (en python, vous pouvez le calculer

  >>> importation hashlib>>> sel = '\ XD7 \ x35 \ xe6'>>> password = '! 78ghA, NJ58 * # * 3&' >>> hashlib.sha256 (sel + mot de passe) .hexdigest ()' 4fe5bbb74a21fb6d20785ce7fce1cd51d6fc87c5a55f65d75e8f37096ed54a53 ' 

Notez que ce hachage est de 256 bits. Il n'y a donc que 2 256 ~ 10 77 hachages possibles. Si les fonctions de hachage fonctionnent bien et sélectionnent les hachages uniformément pour toutes les entrées possibles (c'est-à-dire que la fonction de hachage agit comme un oracle aléatoire), une fois que vous essayez de manière significative plus de 10 hachages 77 , certains hachages entreront en collision (prouvable par le principe du casier). Si vous avez essayé 10 hachages 80 , vous devriez vous attendre à trouver environ 1000 mots de passe correspondant à un hachage donné.

Cependant, 10 77 est un nombre extrêmement grand; c'est à peu près le nombre d'atomes dans l'univers observable. Ou si chaque atome du système solaire (~ 10 57 ) calculait chacun un hachage toutes les nanosecondes, il faudrait environ 3000 ans avant de calculer 10 77 hachages, donc ce n'est pas t quelque chose dont vous devez vous soucier dans la pratique.

(Si vous avez essayé 5 milliards de hachages par seconde pendant 100 ans et que vous aviez un mot de passe très fort, la chance de trouver au hasard un mot de passe différent correspondant à votre hachage 256 bits est de 1 sur 7,4 x 10 57 ; c'est comme les chances d'acheter 7 billets Powerball sur des semaines successives et de gagner le jackpot les 6 premières fois, puis de jouer une 7e fois et de faire correspondre 5 numéros (pas de powerball) pour gagner seulement 1 million de dollars.)


Certes, cela ne signifie pas en pratique que votre mot de passe est unique. J'ai personnellement rencontré un système VPN Cisco déployé dans la nature qui tronque un mot de passe aléatoire de 12 caractères en 8 caractères sans avertir l'utilisateur (j'ai d'abord découvert quand j'ai tapé trop vite et laissé un caractère et cela fonctionnait toujours; et puis fait des essais et des erreurs). Donc, tant que les 8 premiers caractères sont corrects, vous pouvez taper ce que vous voulez après cela et cela fonctionnera.

Ce n'est pas non plus un cas isolé; Par exemple, Microsoft avait l'habitude de tronquer silencieusement les mots de passe Windows Live ID à 16 caractères bien qu'il informe désormais l'utilisateur qu'il limite les mots de passe à 16 caractères:

Les mots de passe Windows Live ID étaient toujours limité à 16 caractères - tout caractère de mot de passe supplémentaire a été ignoré par le processus de connexion. Lorsque nous avons remplacé «Windows Live ID» par «Compte Microsoft», nous avons également mis à jour la page de connexion pour vous informer que seuls les 16 premiers caractères de votre mot de passe sont nécessaires. »

Il est également possible qu'un système d'authentification mal conçu supprime les caractères spéciaux du milieu de votre mot de passe. Mon ami a découvert que T-Mobile a fait cela en 2011 quand il a utilisé leur fonction "Mot de passe oublié" mal conçu qui lui a envoyé son mot de passe en texte clair qui, dans son cas, a supprimé les caractères spéciaux de son mot de passe.

À propos de * 2 ^ 256 ~ 10 ^ 76 *, que signifie «~» dans ce contexte? D'où vient * 10 ^ 76 *? Merci.
@A.L équivaut à peu près, car 2 ^ 256 a 78 chiffres
Dans ce contexte, cela signifie approximativement égal; il a d'autres significations dans d'autres contextes mathématiques, voir https://en.wikipedia.org/wiki/Tilde#Mathematics. La principale raison de ne pas utiliser le ≃ légèrement plus clair est que l'unicode est plus difficile à taper. Quant à savoir d'où il vient 2 ^ 256 = 115792089237316195423570985008687907853269984665640564039457584007913129639936 = 1,1579 ... x 10 ^ 77 ~ 10 ^ 77 (j'ai eu à l'origine une faute de frappe). Si vous voulez trouver de quelle puissance il s'agit, vous pouvez simplement définir 2 ^ 256 = 10 ^ x puis prendre le journal des deux côtés et utiliser les propriétés bien connues des journaux pour trouver x = 256 log (2) / log (10) ~ 77.
@drjimbob J'étais confus car je suis monté sur * 2 ^ 256 ~ 2 ^ 76 * au lieu de * 2 ^ 256 ~ 10 ^ 76 *. Quoi qu'il en soit, je suggère de remplacer «~» par «ou environ» afin d'éviter les ambiguïtés.
Est-ce simplement une fonctionnalité de mot de passe oublié mal conçue, ou cette «fonctionnalité» est-elle simplement le résultat de la pratique horriblement obsolète et peu sûre de stockage des mots de passe en texte clair?
@aross - Il avait deux mauvaises fonctionnalités; (1) mot de passe en texte clair / cryptage réversible (les fonctions de mot de passe oublié devraient vous obliger à vous valider puis à définir un nouveau mot de passe), et (2) supprimer les caractères spéciaux de votre mot de passe l'affaiblit considérablement. Prenez pw `! 78ghA, NJ58 * # 3 & *` d'OP - 16 caractères choisis au hasard parmi 96 caractères ASCII imprimables: ~ 105,4 bits d'entropie (52040292466647269602037015248896 pws) - très sécurisé. La suppression des caractères spéciaux le rend 59,5 bits (839299365868340224 pws) - beaucoup moins sécurisé. Si les nombres étaient également dépouillés de ses 28,5 bits (380 204 032 pws) - très faible.
@A.L - Je vais continuer à utiliser tilde pendant environ. C'est une notation succincte courante (https://en.wikipedia.org/wiki/Tilde#Common_use) pour "environ" (en tant qu'opérateur unaire; par exemple, environ 7 milliards d'humains) ou "approximativement égal" (en tant qu'opérateur binaire par exemple, 2 ^ 10 ~ 10 ^ 3) et mes réponses ont déjà tendance à être longues. Je préfère simplement expliquer cette notation aux personnes qui ne la connaissent pas si elles le demandent.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...