IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Mot de passe autogénéré


Sujet :

Langage PHP

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut [Sécurité] Mot de passe autogénéré
    --

  2. #2
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    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 ?

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    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.

  4. #4
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par Yogui
    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.
    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 pas

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    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 :
    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 */
     
    ?>
    Comparaison du mot de passe :
    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 */
     
    ?>

  6. #6
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé 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.
    Oué, ça je comprends... C'est pour augmenter l'entropie du hashage ?
    Mais c'est bien ça qui est fait ici ???

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    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.

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    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).

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    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 ?

  10. #10
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    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é ?

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Citation Envoyé par Eusebius
    on gagne toujours en sécurité en changeant souvent de mot de passe.
    Ce n'est pas dit, parce que cela doit dépendre du bon choix du traitement fait au MDP.

    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 ?

    Citation Envoyé par Eusebius
    C'est quoi que tu utilises comme algo, par curiosité ?
    AES implémenté dans MySQL Ici

  12. #12
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par Sergejack
    Le hacker potentiel connait A[] et RA[] n'aurait-il pas d'autant plus facile à retrouver C que ces séries seraient longues ?
    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.
    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é.

    Citation Envoyé par Sergejack
    AES implémenté dans MySQL
    OK, donc pas comparable avec MD5, c'est pas un algo de hash.

  13. #13
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Citation Envoyé 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 :
    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 */
     
    ?>
    Comparaison du mot de passe :
    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 */
     
    ?>
    Merci beaucoup Chris Shiflett !

    Il serait intéressant de le mettre dans les sources PHP, non ?

    Gôm

  14. #14
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    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.

  15. #15
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Un exemple reprennant l'essemble des rêgles de sécurité serait plus approprié.

    Stockage 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 */
     
    ?>
    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
     
    // $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'])
     
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/01/2017, 09h26
  2. [Sécurité] mot de passe sur compte personnel Free
    Par MorganStern dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2007, 15h02
  3. [Sécurité] mot de passe cryptée?
    Par kevinf dans le forum Langage
    Réponses: 8
    Dernier message: 01/11/2005, 15h02
  4. [FireFox / Sécurité] Mots de passe en clair
    Par arcane dans le forum Applications
    Réponses: 6
    Dernier message: 28/12/2004, 18h28
  5. Réponses: 4
    Dernier message: 29/11/2004, 23h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo