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 :

Meilleur chiffrement mot de passe


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut Meilleur chiffrement mot de passe
    Bonjour,

    je souhaite crypté les mots de passe utilisateur dans la base de données. Quel est le meilleur cryptage le plus sécurisé? On parle toujours du md5 (qui est du hashage), mais il me semble qu'il a été cassé?

    Merci pour vos conseils.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Pour le md5 on trouve surtout beaucoup de traducteur. Des bases de données qui permettent de convertir des hash md5 si ce sont des mots connus.

    La meilleure méthode est à mon avis un hash type sha (ou autre) couplé à un salage avec une clé "secrète".
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Rédacteur
    Avatar de pi-2r
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    1 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 495
    Par défaut
    bonjour,


    Concernant le md5, il existe divers outils (ex: Rainbow Table) qui permettent de mettre à mal un mot de passe de ce type...

    Pour en limiter le cassage d'un mot de passe, il faut:
    -utiliser un mot de passe robuste
    -utiliser un "double cryptage", qui utilise le md5 et le sah1.
    exemple:
    $password=htmlspecialchars(md5(sha1($password)));
    Les pièges de l'Internet
    Helix, réponse à une intrusion


    "La plus grande gloire n'est pas de ne jamais tomber, mais de se relever à chaque chute." Confucius
    "Si j'ai vu plus loin, c'est en me tenant sur les épaules de géants." Isaac Newton

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Bonjour,

    Avez vous un exemple de salage avec clé secrète?

    Je pense donc qu'il faut utiliser sha1 avec un cryptage qui utilise unc clé?

    Où conseillé vous de stocker cette clé, en base, en dur dans la page?

  5. #5
    Membre averti

    Femme Profil pro
    Consultant en sécurité
    Inscrit en
    Juillet 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 12
    Par défaut
    «$password=htmlspecialchars(md5(sha1($password))); »
    pas une bonne idée...Certains casseurs de MD5 seraient capable de fournir un pass équivalent à ce qui est fourni à la fonction md5(...)...
    Perso., je ferais plutôt un truc du genre :

    $pass=htmlspecialchars(sha1(md5($password)));...

    (C'est encore assez dur de brute forcer un sha1 mais ça va venir... Tu peux aussi penser à un sha256, ou alors tu passes en mode PKI(certifs),c'est plus compliquer mais il n'y a pas photo quant à la fiabilité)...

    Stockage des Hashs, je les mettrais en DB, simplement...
    Avec une PKI, tu ne dois pas t'embêter à stocker quelque chose...

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    grunk a tu un exemple d'un cryptage avec une clé "secrète" en php que je pourrais coupler à sha?

    Merci

  7. #7
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    C'est assez simple en fait
    Tu définis quelques part ta clé secrète (par exemple dans ton fichier de config)

    En suite au moment d'enregistrer un mot de passe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $password = $_POST['pass'].$config->cle_secrete;
    $password  = sha1($password);
    De cette manière , même si l'utilisateur à rentré un mot de passe du type "123" on lui à adjoint une chaine (longue et complexe de préférence) qui va venir modifier l'empreinte de "123".

    C'est une version simple , après on peut imaginer diverse combinaison du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $password = sha1($_POST['pass'].md5($config->cle_secrete))
    Voir même une clé secrète global au site et une clé secrète propre à chaque utilisateur ce qui démultipliera le temps de calcul pour un hacker voulant cracker les mot de passe.

    Le but final étant de ne pas pouvoir trouver le hash d'un mot de passe via une table de comparaison , même si celui ci est simple.
    La clé secrète doit évidemment être stockée à un endroit différent des mot de passes sinon , la sécurité supplémentaire est inutile en cas de vol de données par exemple.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/09/2011, 17h26
  2. algorithme de chiffrement de mot de passe
    Par mld_webcom2d dans le forum C#
    Réponses: 23
    Dernier message: 26/07/2011, 11h46
  3. Chiffrement mot de passe : MD5, SHA1, AES ?
    Par zarohn dans le forum VB.NET
    Réponses: 10
    Dernier message: 05/06/2010, 22h18
  4. [Spip] Chiffrement ou hachage du mot de passe
    Par marty499 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 06/03/2009, 22h40
  5. [LDAP] Chiffrement mot de passe LDAP pour interface en PHP
    Par sedannais dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 10/08/2007, 17h17

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