Flux rss
Collection CommentÇaMarche.net

Comment bien stocker et vérifier un mot de passe

Bookmark Ajouter aux favoris / Partager
Dernière mise à jour le 16 juin 2009 à 09:46 par sebsauvage
Publié par sebsauvage

Si vous développez une application qui doit gérer les mots de passe, il est important de bien le faire, sous peine de risquer le piratage de votre système et la compromission des données de vos utilisateurs.

Il existe de bonnes pratiques pour stocker un mot de passe.

La bonne manière de stocker


Stockez le login et hash(login+salt+motdepasse)

Pseudo-code: passwordHash = MD5( login + "zo5pro$1pvkhj6*cz4a8ùtvb#ui4oeuio" + motdepasse )
Stockez login et passwordHash. Ne stockez pas motdepasse.

Pourquoi un hash ?


Il ne faut jamais stocker le mot de passe en clair.

Risque: Si quelqu'un s'introduit dans votre base de mots de passe, il pourrait les récupérer directement et les utiliser.

Protection: Le hash permet de calculer une empreinte du mot de passe. Comme l'algorithme n'est pas réversible, on ne peut pas retrouver immédiatement le mot de passe à partir du hash.
C'est pour cela qu'on utilise un hash cryptographique. Typiquement MD5, SHA-1 ou autre (SHA-256, SHA-512...)
Ne jamais utiliser de CRC ou CRC32.

Pourquoi un salt ?


Les rainbow-tables sont de grosses tables contenant des hash (MD5 et autres) précalculées.
Cela permet de retrouver très rapidement le mot de passe qui a donné un hash précis.

Risque: Si vous utilisez juste MD5(motdepasse), les rainbow-tables permettent de retrouver le mot de passe correspondant au MD5 en quelques minutes, voire quelques secondes.

Protection: En utilisant un salt, cela rend les rainbow-tables inutiles. Le salt est une valeur aléatoire, unique et différente pour chaque mot de passe. Pour chaque mot de passe il faut stocker salt, h(salt,password), avec par exemple salt = random()

Pourquoi ajouter le login ?


Si vous stockez juste MD5(salt+motdepasse) ou MD5(motdepasse), cela veut dire que deux utilisateurs ayant le même mot de passe auront le même hash.

Risque: On peut repérer très facilement les utilisateurs ayant le même mot de passe. Si un utilisateur est compromis, cela permet d'accéder immédiatement à d'autres utilisateurs (qui ont peut-être des droits supérieurs).

Protection: En ajoutant le login avant de hasher, la MD5 résultante sera différente pour chaque utilisateur, même s'ils ont le même mot de passe.

Vérification


Lorsque vous recevez login et mot de passe, il vous suffit de refaire le même calcul:
  • Rechercher dans votre base le hash correspondant à ce login
  • Comparer la valeur avec hash(login+salt+motdepasse)
  • Si les deux hash sont identiques, le mot de passe entré est correct.
Ou sont stocker les mot de passe de Wlm ? Bonjour a toutes et a tous, Voila ma question est simple : Dans quel fichier (ou clé du registre, ou autre) est stocker le mot de passe et l'adresse que j'ai enregistré en local dans WLM. Je précise que ce n'est pas pour changer mon mot de passe et... www.commentcamarche.net/forum/affich-8200524-ou-sont-stocker-les-mot-de-passe-de-wlm
Decoder mot passe doc word j'ai perdu le mot passe d'un doc word et j'en ai vraiment besoin svp est ce que vous connaissez le moyen de pouvoir acceder a mon document et merci www.commentcamarche.net/forum/affich-67939-decoder-mot-passe-doc-word
Comment changer mon mot de passe sous WLM/MSNPour changer son mot de passe Windows Live Messenger, il suffit d'utiliser l'interface prévue à cet effet : http://memberservicesnet.passport.net/memberservice.srf?lc=1036 Si vous avez perdu votre mot de passe, merci de vous référer à... www.commentcamarche.net/faq/sujet-1204-comment-changer-mon-mot-de-passe-sous-wlm-msn
[MSN] Mot de passe perduVous avez perdu ou oublié votre mot de passe d'accès à un service MSN ou Hotmail ? Vous êtes dans l'un de ces trois cas : 1er cas : Vous avez oublié votre mot de passe mais connaissez la réponse à la question secrète et/ou vous avez une... www.commentcamarche.net/faq/sujet-670-msn-mot-de-passe-perdu
Mot de passe perdu - Réinitialiser le BIOSSi vous avez oublié ou perdu le mot de passe du BIOS, demandé dès le démarrage de l'ordinateur, cette page vous donne, entre autres, la méthode pour supprimer la demande de mot de passe au tout démarrage du PC (ne pas confondre avec le mot de passe... www.commentcamarche.net/faq/sujet-587-mot-de-passe-perdu-reinitialiser-le-bios
Windows mail enlever boite du mot- passeBonjour, sous WINDOWS mail comment puis -je faire pour enlever la boite de dialogue du mot passe et vérification de l'utilisateurs (sécurité) a chaque fois que je veux lire mes mesages je dois toujours tous réinscrire et je partage mon courriel avec... www.commentcamarche.net/forum/affich-8592161-windows-mail-enlever-boite-du-mot-passe
[php] : recevoir mot passe perdu/mail (Résolu)Salut, je suis en train de concevoir un site et je souhaiterai permettre à l'utilisateur de retrouver son mot de passe en cas d'oubli. Pour cela j'ai créer un formulaire lui permettant d'inscrire son adresse mail et je souhaiterais lui envoyer son mot... www.commentcamarche.net/forum/affich-1741381-php-recevoir-mot-passe-perdu-mail
Recuperer mon mot pass sur msn (Résolu)Bonjour, bonjour je veut recuperer mon mot pas sur msn mes j perdu le mot pass + la question secraite donc je c pas comment faire merci de vote réponce www.commentcamarche.net/forum/affich-7563770-recuperer-mon-mot-pass-sur-msn