web-dev-qa-db-fra.com

Comment garantir que le mot de passe est haché sur le côté serveur?

Je suis inquiet lorsque j'envoie un mot de passe à un serveur, même avec SSL ou TLS, que le serveur stocke le mot de passe de ClearText. Est-ce le cas? Si oui et que le serveur est piraté, tous les mots de passe sont disponibles en clairtext et peuvent être utilisés utilisés sur d'autres sites .

Existe-t-il un mécanisme qui garantit que le mot de passe est haché avant d'atteindre le côté serveur la rendant unique au serveur, comme le hacher en outre sur le côté client? Quelle graine serait ensuite utilisée pour pouvoir reconstruire le même hachage, sans le serveur/attaquant sachant que la graine aussi?

Mise à jour1: Le scénario est l'utilisation quotidienne des sites Internet. Je sais que "les mots de passe hachaus" et "les utilisateurs doivent être des mots de passe différents", mais ce n'est tout simplement pas une situation réaliste. @ Mot de passe-coffres-forts: Et si vous êtes en déplacement? @Différents mots de passe pour chaque site: irréaliste

Réponses connexes:

12
Gerold Meisinger

Vous ne pouvez pas. Le serveur peut faire tout ce qu'il veut avec les données que vous avez envoyées. Même si cela indique que les données sont sécurisées avec elle, vous ne pouvez pas dire si c'est vrai. Vous faites donc confiance au serveur qu'il gère votre mot de passe de manière appropriée. Ou vous faites vos propres arrangements et utilisez un mot de passe différent pour chaque site.

Au mieux, ces mots de passe sont également complètement différents les uns des autres pour que l'on ne puisse pas extrapoler de l'une à l'autre (i. E. Pas de préfixes/suffixes évidents). Vous pouvez utiliser un gestionnaire de mots de passe pour générer et mémoriser ces mots de passe. Et autant de ceux-ci sont intégrés dans des navigateurs, ils aident également à prévenir le phishing car les mots de passe stockés sont associés à certains sites/URL.

Que vous utilisiez différents mots de passe pour différents sites Web et/ou un gestionnaire de mots de passe pour générer/mémoriser ces mots de passe dépendent de votre propre perception des risques.

J'utilise personnellement un gestionnaire de mots de passe et j'ai donc un mot de passe différent pour chaque site. Le côté évident est que je ne peux me connecter que dans quelques sites sans cela, e. g. quand je ne suis pas chez ma machine. Mais comme l'un d'entre eux est également un fournisseur Openid, je suis heureux de pouvoir vous connecter également au réseau de la pile Exchange.

2
Gumbo

Vous ne pouvez pas être sûr que le serveur hachau le mot de passe avant de le stocker. @Rry souligne que c'est une exigence raisonnable que vous pourriez essayer d'appliquer des moyens non informatiques, mais il n'est pas réaliste de croire que tous les serveurs fera les choses correctement. La solution ne doit pas utiliser le même mot de passe (ou les mêmes mots de passe pouvant être devinés les uns des autres) pour deux sites distincts.

Les mots de passe "distincts" peuvent être générés à partir d'un "mot de passe principal" avec une fonction de hachage cryptographique (par exemple, votre hachage de la concaténation du nom du site et du mot de passe principal - il existe des moyens de tacher que, mais le principe est sonore). Le logiciel existe pour cela. Ou vous pouvez stocker des mots de passe générés au hasard dans un fichier, crypté symétriquement avec un mot de passe principal. Le logiciel existe aussi pour cela. Cela pourrait prendre plusieurs formes (un fichier crypté; une connexion SSH à un serveur héberge le fichier de mot de passe; une extension de navigateur qui utilise une fonction de hachage cryptographique; ...).

De toute façon, il est difficile de faire dans votre tête seulement (malédiction que le cerveau biologique!), Car il nécessite de faire des calculs étendus et/ou de se souvenir de nombreux éléments aléatoires.

Je prétends cependant que le scénario "le faire dans votre cerveau" est pas réaliste. Pourquoi voudriez-vous calculer le tout dans votre cerveau? Ce serait parce que la machine locale sur laquelle vous êtes sur le point de taper le mot de passe ne dispose pas du logiciel nécessaire installé; C'est une machine aléatoire dans, disons, un cybercafe. Hé, attends ! Vous êtes sur le point de taper votre mot de passe sur une machine CyberCafe ? Une machine qui pourrait être une horloge remplie d'enregistreurs clés et d'autres logiciels malveillants? Maintenant c'est une mauvaise idée. Pas besoin d'un serveur mal écrit, dans ces conditions: vous êtes assez bon pour faire des choses dangereuses par vous-même.

Donc, la nécessité d'un schéma de dérivation/de stockage de mot de passe que vous pouvez exécuter "dans votre cerveau" est en fait un besoin de pouvoir faire quelque chose qui est assez stupide, sage de sécurité. Alors ne le faites pas. Si vous ne pouvez pas accéder à un stockage ou de générateur sécurisé pour des mots de passe par site, vous n'êtes pas dans un contexte où vous pourriez utiliser utiliser ledit mot de passe de toute façon.

2
Tom Leek

Je sais que ce n'est pas une réponse que vous avez recherchée, mais de l'utilisateur POV, vous n'avez pas beaucoup d'options - connectez-vous ou ne pas vous connecter ?! Cependant, pourquoi ne pas utiliser de mot de passe unique sur chaque site et les stocker dans l'application Keychain?

Se souvenir de mot de passe pour chaque connexion est, soyons sérieux, pas vraiment une option aujourd'hui (presque tous les sites nécessitent l'enregistrement et la journalisation). Toutefois, si vous utilisez une application Keychain, vous n'avez besoin que de mémoriser le mot de passe principal. L'inconvénient est, bien sûr, un seul point d'échec (mais bien sûr, il en va de même pour utiliser le même mot de passe partout).

Une de ces applications est Keepass

Comment gardez-vous une trace de tous vos mots de passe? - Q sur Su.stackexchange

2
StupidOne

utilisé sur d'autres sites.

Utilisez un mot de passe unique par site, problème résolu que je dirais.

0
Steven

La meilleure méthode que j'ai vue pour sécuriser les mots de passe pour différents sites consiste simplement à utiliser un gestionnaire de mots de passe avec un mot de passe généré.

Une autre méthode que j'ai vue est de se souvenir d'un seul mot de passe et de hachage avec le domaine du site comme le sel. Le hachage peut être effectué avec une grande variété de services en ligne, choisissez simplement un qui prend en charge l'utilisation d'un sel et de préférence sans l'utilisation de MD5. La plupart des gens pensaient simplement que vous utilisiez un mot de passe généré au hasard avant de se dérouler de casser le hachage.

Bien qu'il soit généralement impossible de dire si un mot de passe est stocké en texte brut ou non, la vérification de la méthode de récupération du mot de passe peut vous donner des indices. S'il est possible de récupérer votre ancien mot de passe dans un email, le mot de passe est à coup sûr dans le texte brut (ou un cryptage réversible).

0
WalterJ89