Sur des sites Web fiables, je vois toujours des allégations telles que «Toutes les données sont chiffrées» ou «Tous les mots de passe sont chiffrés à l'aide du chiffrement 128 bits», etc. Cependant, je n'ai jamais rencontré de réclamation comme «Tous les mots de passe sont hachés».
Sur mon site Web, je stocke tous les mots de passe des utilisateurs dans une base de données après avoir utilisé le hachage SHA-512 (le plus probable) avec un sel aléatoire. Je veux ajouter un snipet garantissant aux utilisateurs que leurs mots de passe sont sécurisés afin qu'ils ne soient pas dissuadés d'utiliser mon site Web car il nécessite un mot de passe. Je veux que les utilisateurs se sentent en sécurité mais je ne pense pas que tout le monde sache ce qu'est le hachage.
MA QUESTION: Est-il correct de fournir un message disant que "tous les mots de passe sont cryptés et sécurisés" car je ne pense pas que l'utilisateur moyen saura quelle est la différence entre le hachage et le cryptage, et se sentira plus probablement en sécurité juste parce qu'il voit le mot de confort "cryptage"? Ou existe-t-il un autre message que je devrais fournir?
Soit dit en passant, je suis nouveau dans le cryptage et le hachage de mot de passe et je me demandais si cela serait suffisamment sûr pour l'instant lorsque je lance mon site. Je ne veux pas dire aux utilisateurs qu'il est sécurisé s'il ne l'est pas. Toute information serait grandement appréciée. Merci.
Réponses:
Les utilisateurs s'en moquent.
La seule fois où ils se soucient, c'est quand quelqu'un retire l'argent de leur compte bancaire et il semble qu'il y ait un lien qui, quelques jours auparavant, quelqu'un a eu un accès complet à votre base de données.
Dans presque tous les cas où j'ai vu de tels messages, ils étaient trompeurs. Le plus hilarant était sur un site Web avec des étiquettes de style «sécurisé de qualité militaire» sur chaque page. Une alerte a indiqué que le certificat HTTP n'est pas valide. Il y avait une injection SQL sur le formulaire de connexion. Quelques semaines plus tard, le site Web a été piraté, puis a disparu pour toujours.
J'arrête de compter le nombre de sites Web qui prétendent garder les informations sécurisées, tout en ayant un formulaire "Récupérer mon mot de passe", qui envoie en fait le mot de passe d'origine par e-mail.
C'est comme ces étiquettes "XHTML valides W3C". Pourquoi sont-ils généralement mis sur des sites Web où même une page d'accueil contient au moins des dizaines d'erreurs et de codes comme
<DIV COLOR='red'>
?Si vous voulez toujours rassurer les utilisateurs, vous pouvez mettre quelque chose comme:
Mais franchement, le formulaire "Réinitialiser mon mot de passe" remplaçant le "J'ai oublié mon mot de passe; envoyez-le moi par e-mail" est beaucoup plus rassurant que n'importe quel mot.
Conseils des différents commentaires:
Ne réinventez pas la roue: utilisez OpenID. De cette façon, vous ne stockez même pas les hachages.
Source: commentaire de Jan Hudec .
Puisque vous êtes étudiant, open source votre projet. Puisque votre préoccupation est: "Je ne veux pas que les utilisateurs pensent que leurs mots de passe ne sont pas sécurisés parce qu'un enfant à l'école l'a conçu." , rien de plus rassurant que de pouvoir vérifier, en lisant le code source, qu'il a été écrit par un développeur habile qui se soucie de la sécurité.
Source: commentaire de Jan Doggen .
la source
Ne stockez pas les mots de passe en premier lieu! Suivez l'exemple de Stack Exchange et laissez les utilisateurs se connecter avec leur identité sur un autre site qui fournit une authentification via OpenID . Les implémentations sont disponibles gratuitement pour la plupart des frameworks Web courants.
Ou éventuellement tout autre protocole. S'il s'agit d'un projet interne pour une institution (comme le suggère votre commentaire sur l'autre réponse), il existe presque sûrement déjà un LDAP, Kerberos (Windows Active Directory est également basé sur ces deux; apache prend en charge l'authentification HTTP contre eux) ou certains un tel service pour la connexion à l'ordinateur. Connectez-vous simplement à cela.
Cela vous évite de stocker des informations sensibles (vous devrez probablement stocker des autorisations, mais elles ne sont pas si critiques) et les utilisateurs d'avoir à se souvenir d'un autre nom d'utilisateur et mot de passe, donc globalement gagnant-gagnant.
la source
En disant:
est un jugement personnel que vous portez sur certains faits ou processus technologiques, et ce jugement est limité par ce que vous savez vous-même sur la sécurité à ce moment-là. Mais pouvez-vous garantir sans aucun doute que votre cryptage, votre méthode de stockage, etc. résisteront à tout type d'attaque, même celles que vous ne connaissez pas ou que vous ne connaissez pas encore?
Signification: Cette déclaration risque d'être obsolète, peut-être même sans que vous en soyez conscient.
J'ai donc tendance à être d'accord avec le commentaire ci-dessus de @JoachimSauer: décrivez simplement ce que vous faites, comment vous enregistrez les informations utilisateur et dites aux utilisateurs comment cela est censé sécuriser votre service. Laissez ensuite les utilisateurs juger par eux-mêmes.
la source
Cela dépend vraiment du contexte de votre site Web spécifique.
Par exemple, s'il s'agit d'un site Web grand public, il y a de fortes chances que la plupart d'entre eux ne se soucient que de leurs mots de passe (peut-être), de leurs informations financières / de santé (selon), et de leurs informations privées telles que des photos (hahaha, ouais c'est vrai ...) .
S'il s'agit d'une application métier, le niveau de sécurité de l'ensemble du site est pertinent, pas seulement les mots de passe. De même, cela dépend de qui sont vos utilisateurs cibles - hautement technique / pas si technique, etc.
Tout ce contexte définit considérablement ce que vous devez communiquer et le niveau d'assurance requis.
Par exemple, pour les consommateurs non techniques, il suffit d'avoir des commentaires génériques et simples, tels que:
(Et, comme d'autres l'ont dit, il vaut mieux ne pas avoir du tout de mots de passe, utilisez un standard comme OpenId ou OAuth.)
Pour les entreprises hautement techniques, vous voudriez avoir une page complète de détails techniques et procéduraux, tels que:
Bien sûr, vous ne voulez pas donner trop d'informations détaillées, cela devrait être plus sur le processus que sur les mots de passe eux-mêmes ... Et bien sûr, cela devrait aller de soi que la réalité devrait en fait être conforme à tout ce que vous y écrivez , quel que soit le contexte avec lequel vous traitez.
Comme l'une des réponses a fait allusion, la plupart des utilisateurs ne s'en soucient pas, ne comprendraient pas ce que vous leur dites et continueraient de s'inscrire de toute façon, même si vous dites que vous ENVOYEZ des données utilisateur à la NSA.
Ce n'est pas pour eux.
Ils seraient tout aussi heureux de ne pas avoir de mot de passe, laissez-moi simplement choisir mon nom d'utilisateur dans la liste et me connecter automatiquement.
De toute évidence, c'est pour le petit pourcentage de ceux qui se soucient - vous devez permettre aux utilisateurs intelligents de faire ce qui est bien, de leur donner les informations dont ils ont besoin et de leur accorder l'éducation qu'ils pourraient demander.
Si vous ne le faites pas, lorsque cela se passe mal, les 98% restants se réveillent soudainement et se mettent en colère.
("Bien sûr, je savais que je n'avais pas besoin d'un mot de passe pour voir mes photos, mais je ne pensais pas que quelqu'un d' autre pouvait aussi les voir !!")
la source
Si vous voulez que votre système soit sécurisé, la force de l'algorithme de mot de passe n'a pas de sens - la plupart des pirates peuvent casser des mots de passe en un rien de temps, surtout si le mot de passe choisi est petit ou est composé de mots génériques que le pirate a déjà "craqué et stocké" "utilisant des tables arc-en-ciel et similaires. Lisez l'article d'ArsTechnica sur le craquage de mots de passe pour plus d'informations.
Ce que vous devez faire, c'est assurer aux utilisateurs que les méchants ne peuvent pas se mettre à la place en premier lieu. Une entreprise soucieuse de la sécurité pour laquelle je travaillais avait un système Web à 3 niveaux où les serveurs Web n'étaient physiquement pas connectés aux serveurs de base de données. Quand mon patron a voulu mettre son site Web et avoir un accès direct à la base de données (code mal conçu, 'nuff a dit), on lui a dit qu'il ne pouvait pas l'avoir, et quand il a poussé ... on lui a dit qu'il n'y avait pas de fils entre eux . Il a dû le concevoir afin qu'il transmette toutes les demandes de données via un service de niveau intermédiaire. Et ces services étaient non seulement sécurisés, mais exposaient une surface minimale aux attaques et étaient verrouillés. Et la base de données n'a jamais exposé aucune de ses tables pour la lecture, seules les procédures stockées qui à leur tour ont été verrouillées, de sorte que seul le service concerné y avait accès.
Ce n'était pas aussi mauvais à coder que vous ne le pensez, une fois que vous connaissiez l'architecture et la séparation de chaque niveau, c'était assez facile à coder.
la source
Vous pouvez développer le site le plus sécurisé de la planète et avoir une expérience utilisateur vraiment médiocre. Les utilisateurs supposeront que votre site n'est pas sécurisé.
Vous pouvez créer le site le moins sécurisé de la planète et avoir une expérience utilisateur incroyable. Les utilisateurs supposeront que votre site est sécurisé. Du moins jusqu'à ce qu'il apparaisse dans les nouvelles du soir.
la source