Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Général Conception Web > Sécurité
Sécurité Forum d'entraide sur la sécurité des sites Web, les protections, l'authentification, etc. Avant de poster -> Cours Sécurité.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/11/2007, 17h47   #1
Membre habitué
 
Inscription : octobre 2005
Messages : 641
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 641
Points : 143
Points : 143
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
@+
Tchupacabra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 00h44   #2
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Bonjour,

En PHP avec md5() ou sha1() ou encore mieux : la lib mcrypt.
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 09h20   #3
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
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
__________________
PHP Competition System
Script de gestion de coupes et championnats
http://phpcompet.free.fr

Mon jeu de foot
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 10h46   #4
Membre habitué
 
Inscription : octobre 2005
Messages : 641
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 641
Points : 143
Points : 143
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.
Tchupacabra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 11h18   #5
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
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 :
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
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 11h18   #6
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
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
__________________
PHP Competition System
Script de gestion de coupes et championnats
http://phpcompet.free.fr

Mon jeu de foot
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 11h50   #7
Membre habitué
 
Inscription : octobre 2005
Messages : 641
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 641
Points : 143
Points : 143
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.
Tchupacabra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 12h13   #8
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Citation:
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é.
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 12h35   #9
Membre habitué
 
Inscription : octobre 2005
Messages : 641
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 641
Points : 143
Points : 143
¤ 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.

Tchupacabra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2007, 10h41   #10
Membre habitué
 
Inscription : octobre 2005
Messages : 641
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 641
Points : 143
Points : 143
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...

Tchupacabra est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h55.


 
 
 
 
Partenaires

Hébergement Web