--
Je ne vois pas l'intérêt. Ce qui permet l'accès reste la clé, à la charge de l'utilisateur.
A quoi sert le mot de passe en base de données, exactement ?
Salut
J'ai l'impression que tu as simplement inversé les termes : ta clef est en fait le mot de passe, et ton mot de passe est en fait la clef.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Ca change rien à ma question : à quoi sert la partie qui est conservée sur le serveur, celle qui est chiffrée avec l'info de l'utilisateur ? Je pige pasEnvoyé par Yogui
C'est le grain de sel.
Tu enregistres un grain de sel pour tout le site ou pour chaque utilisateur et tu l'utilises pour modifier le mot de passe (contacténation, ce que tu veux). C'est cette nouvelle chaîne que tu cryptes avant de la stocker en BDD et c'est elle que tu utiliseras en lieu de mot de passe.
C'est une pratique très utilisée.
Exemple par Chris Shiflett
Stockage du mot de passe :
Comparaison du mot de passe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php /* $password contains the password */ $salt = 'DEVELOPPEZ'; $password_hash = md5($salt . md5($password) . $salt)); /* Store password hash */ ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php $salt = 'DEVELOPPEZ'; $password_hash = md5($salt . md5($_POST['password']) . $salt)); /* Compare password hashes */ ?>
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Oué, ça je comprends... C'est pour augmenter l'entropie du hashage ?Envoyé par Yogui
Mais c'est bien ça qui est fait ici ???
Si la BDD est compromise, les mots de passe ne seront pas récupérables car tu n'as pas utilisé un simple md5 mais aussi augmenté l'entropie du hash. Il faudrait au pirate toutes les infos pour espérer décoder les mots de passe, ce qui lui complique passablement la tâche.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Tu as conservé ta sémantique pour écrire ce dernier message ou bien tu as repris la terminologie du reste du monde ?
[Edit] Ce qui est appelé "mot de passe" est une chaîne choisie par l'utilisateur (ou du moins qu'il possède et utilise), tandis que la "clef" ne lui est pas nécessairement communiquée (puisque c'est une donnée automatisée).
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Je n'ai pas devinné que mon vocabulaire portait à confusion, je reprends.
En consiérant 3 chaînes de caractères, A, C, RA.
A est crypté avec la clé d'encryption C et donne RA, résultat de l'encryption.
J'utilise une encryption à clé plus sûre que le MD5 qui a été cassé.
J'ai un site où j'utilise une seule clé d'encryption pour toutes les encryptions et je garde cette clé dans un fichier de configuration.
Est-ce que, encryptant tous les mot de passes avec cette même clé, l'utilisateur gagnerait en sécurité en changeant régulièrement son mot de passe ?
on gagne toujours en sécurité en changeant souvent de mot de passe.
point de vue vocabulaire, je ne crois pas qu'on parle de clé pour un algo de hash, vu que la "clé" ne permet pas l'opération inverse.
C'est quoi que tu utilises comme algo, par curiosité ?
Ce n'est pas dit, parce que cela doit dépendre du bon choix du traitement fait au MDP.Envoyé par Eusebius
Si l'on a deux séries A[] et RA[] (de longuer n) de chaînes de caractère, et une chaîne de caractère C qui sert de clé d'encryption.
Où un élémént RA[x] correspond à l'encryption de l'élément A[x] avec la clé C.
Le hacker potentiel connait A[] et RA[] n'aurait-il pas d'autant plus facile à retrouver C que ces séries seraient longues ?
AES implémenté dans MySQL IciEnvoyé par Eusebius
Si, mais il faut pour cela qu'il récupère tout l'historique, Non ? Et de plus lorsqu'on change de mot de passe, il n'y a a priori pas de relation entre le chiffré de l'un et le chiffré de l'autre.Envoyé par Sergejack
Alors que si le changement de mdp est moins fréquent, si ta connexion n'est pas chiffrée (mais bon j'imagine qu'elle l'est), si qqn sniffe le mot de passe de l'utilisateur, qu'il y ait AES derrière ou pas, il sera valable jusqu'à ce qu'il soit changé.
OK, donc pas comparable avec MD5, c'est pas un algo de hash.Envoyé par Sergejack
Merci beaucoup Chris Shiflett !Envoyé par Yogui
![]()
Il serait intéressant de le mettre dans les sources PHP, non ?
Gôm
En effet mais nous sommes en train de prévoir quelque chose de plus complet, merci de nous laisser un moment pour finaliser tout cela.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Un exemple reprennant l'essemble des rêgles de sécurité serait plus approprié.
Stockage du mot de passe :
Comparaison du mot de passe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php $password_hash = $_POST['md5_password']; // pasword hshé du côté client /* Store password hash */ ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php // $salt dynamique stocké dans une variable de Session, et mise à connaissance du client via un JS dans la page précédement envoyé $password_hash = md5($salt . $md5_password . $salt)); /* Compare password hashes */ // ($password_hash == $_POST['md5_passwordAndSalt']) ?>
Partager