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

Sécurité Discussion :

Cryptage du password en amont ?


Sujet :

Sécurité

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut Cryptage du password en amont ?
    Bonjour,

    je me demandais quelle était la meilleure méthode pour une authentification Web dont les logins/pass sont stockés dans une BDD ?
    entre :
    ¤ hachage du mot de passe en javascript avant comparaison coté serveur
    ¤ hachage du mot de passe en php avant comparaison coté serveur

    La première méthode évite que le mot de passe transite en clair MAIS fournit au pirate l'algorithme de hachage alors que la seconde laisse transiter le mot de passe en clair sur internet.

    Surement, qu'il doit y avoir des trucs que je n'ai pas conscience... c'est pourquoi je me demandais laquelle utiliseriez-vous ? ou même si une autre méthode existe !

    merci d'avance
    @+

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    En PHP avec md5() ou sha1() ou encore mieux : la lib mcrypt.

  3. #3
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Personnellement je crypte le mot de passe en md5 et je l'enregistre dans la base de données.
    Quand le visiteur se logue, je crypte le mot de passe et je compare a ce qui est rentré dans labase de données...

    C'est le plus simple je pense...

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  4. #4
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    N1bus >donc tu optes pour la seconde méthode qui laisse transiter le mot de passe en clair sur le réseau.

    cadoudal56 >désolé mais tu ne précises pas à quel moment tu utilises ta fonction de hachage... avant ou après l'envoi ?

    Je ne cherche pas la simplicité mais j'essaye d'optimiser la sécurité... en essayant de minimiser les risques d'une interception d'un pirate par exemple.

    Précision : dans tous les cas, c'est la signature du mot de passe qui est enregistrée dans le BDD pour n'avoir aucun stockage en clair.

  5. #5
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    oui, aucune importance.(que tu le passe chiffré ou pas).

    personnellement j'utilise mcrypt et non pas md5 ou sha1 car avec mcrypt je crée les clefs de chiffrage.

    voici un bout de code que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    if(empty($adm_login) or empty($adm_pass)){header("location: index.php?error=e1"); exit;}
    mysql_select_db( $dbname , $link) or die(mysql_error());
     $xAdminLogin = userCryptDecrypt($adm_login, "C");
     $xAdminPass  = userCryptDecrypt($adm_pass, "C");
     
     $q = "SELECT * FROM $T_admins 
        WHERE 
        admin_login = '" . mysql_real_escape_string($xAdminLogin) . "' 
        AND
        admin_pass = '" . mysql_real_escape_string($xAdminPass) . "' 
        ";
     $r = mysql_query($q) or die(mysql_error());
     $nb = mysql_num_rows($r);
     
     if($nb == 0){header("location: index.php?error=e2"); exit;}
    La fonction userCryptDecrypt() utilise mcrypt.
    J'utilise des login de 8 caractères et mot de passe de12 caractères (en clair) et quand je peux , je mets mes back offices en HTTPS


    de toutes façons, comme pour toute application, si quelqu'un récupère le login/mot de passe en clair : il a accés à l'application.


    chiffrer en JS n'a aucun interet : JS peut etre désactivé sur le navigateur
    et le code de chiffrage est en clair dans le code de la page

  6. #6
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Je ne haches rien.

    Lorsque le membre s'inscrit, il passe le mot de passe pour s'inscrire en clair (du moins en POSt via le formulaire).
    Lorsqu'il se loggue meme chose. Mais lorsqu'il s'est incris, j'ai crypté son mot de passe avec md5() et lorsque'il se reconnecte, je crypte ce qu'il envoi comme mot de passe et je le compares.

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  7. #7
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    N1bus > le problème du cryptage est le stockage et vulnérabilité de la clé
    Citation Envoyé par N1bus Voir le message
    chiffrer en JS n'a aucun interet : JS peut etre désactivé sur le navigateur
    et le code de chiffrage est en clair dans le code de la page

    l'utilisateur normal n'a aucun intérêt à désactiver javascript.
    J'ai regardé l'HTTPS.... ça à l'air top mais son utilisation a l'air compliqué avec la gestion des certificats....


    cadoudal56 >
    Citation Envoyé par cadoudal56 Voir le message
    Je ne haches rien.
    Citation Envoyé par cadoudal56 Voir le message
    j'ai crypté son mot de passe avec md5()
    MD5 est une fonction de hachage et non de cryptage... c'est un abus de langage.
    Sinon cadoudal56, je faisais de la même façon... avec un hachage de mot de passe à la reception des données du formulaire via PHP avant comparaison avec la signature stockée dans la base.

  8. #8
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    l'utilisateur normal n'a aucun intérêt à désactiver javascript.
    il y en a (pour des raisons de sécurité) de plus, comme je te l'ai dis plus haut, le code JS de chiffrage serait soit dans le code de la page soit dans un fichier js lié. A partir du moment où un utilisateur peut récupérer ce code, il peut dont le modifier. ce n'est pas fiable sur le plan de la sécurité.

  9. #9
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    ¤ si le javascript est désactivé, l'utilisateur normal ne pourra pas se logger.

    ¤ si le javascript est modifié pour X raisons (que j'aimerais bien connaitre), la signature du mot de passe ne passera pas la comparaison que PHP avec la BDD.

    Mes questions / remarques cherchent à trouver la méthode la plus sécurisé en pesant les avantages et les inconvénients.


  10. #10
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    c'est vrai que la lecture de ce javascript informera la pirate sur le type d'algorithme utilisé pour le hachage... MAIS le pirate ne pourra intercepter QUE la signature...


Discussions similaires

  1. cryptage des password utilisateur? ? ?
    Par Zepekenio91 dans le forum Firebird
    Réponses: 5
    Dernier message: 11/12/2014, 09h30
  2. Cryptage du password dans le repository.xml
    Par adibou666 dans le forum Pentaho
    Réponses: 2
    Dernier message: 02/02/2010, 16h16
  3. cryptage password et bean spring
    Par jmmaugis dans le forum Sécurité
    Réponses: 2
    Dernier message: 10/10/2008, 11h04
  4. Cryptage password c++
    Par touys dans le forum C++
    Réponses: 18
    Dernier message: 03/05/2007, 21h16
  5. Algo Cryptage de password
    Par Ajite dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 10/04/2007, 19h01

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