Aller au contenu

crypter mot de passe PHP


Messages recommandés

Bonjour, je suis en train de créer un site web avec une partie membre.

Je stocke donc mes mots de passe dans une base de donnée mysql.

Je cherche à sécuriser les mots de passes.

J'ai relevé plusieurs solutions PHP mais aucune ne me convient.

En effet, il y a la fonction md5() qui crypte les mots de passes ou encore la fonction crypt().

Mais d'après ce que j'ai trouvé sur internet ces solutions ne permettent pas de récupérer le mot de passe

si un utilisateur la perdu.

J'entend par là l'envoi d'un mail qui redonne le mot de passe.

Voilà donc mes questions: y a t'il une solution qui sécurise les mots de passes et qui permette de les récupérer si nécessaire

Y a t'il une solution mysql? ou encore existe-il une fonction decrypte(), mais si je conviens qu'une telle fonction serai en totale contradiction avec la sécurité.

Merci Cordialement

Lien vers le commentaire
Partager sur d’autres sites

c'est inhérent au système, du décrypte pas du md5.

Donc soit tu fais ton algo de cryptage et tu décrypte quand tu veux trouver le mot de pass en clair,

ou soit tu utilise md5 et tu compare le md5 tu mot de pass tappé avec celui en mémoire, mais tu pourra pas le decrypter donc il va falloir faire comme dans 90 % des sites c'est a dire:

- Envoi d'un mail à l'utilisateur lui demandant de confirmer le reset du password

- Réenvoi d'un mail avec un mot de pass temporaire

- L'utilisateur remettra le mot de pass de son choix dans les proprieté de son profil.

Lien vers le commentaire
Partager sur d’autres sites

Juste comme ça, pour clarifier un peu les choses :

MD5 est un algorithme de hachage, et non de cryptage. C'est à dire qu'il produit une somme des données que tu lui injecte.

Hors, comme n'importe qu'elle somme il est impossible de retrouver les opérandes d'origine à partir du résultat (ex : si je te dis 5, il te sera impossible de savoir si j'ai fait l'opération 3+2 ou 4+1). Bien entendu les sommes md5 sont bien plus complexes et il est quasi impossible de trouver deux flux de données donnant la même somme : cela s'appelle une colision, c'est difficile, mais pas impossible. C'est pour celà que le md5 n'est pas non plus une solution de sécurité parfaite.

Lien vers le commentaire
Partager sur d’autres sites

Attention aussi le MD5 (et crypt) n'est plus très recommandé car cassable.

LE MD5 N'EST PAS UN CHIFFREMENT MAIS UN HASHAGE !!

Le pseudo cassage du MD5 n'est pas un cassage, on construit des rainbow table c'est a dire qu'on genere le md5 pour une serie de symbole afin de comparer.

C'est a dire qu'on genere le md5 par exemple pour A, puis B, puis C, puis AB, puis AC, puis BC etc etc ...

On genere une base de donnée enorme de tous les MD5,

ainsi quand on recupere un MD5 on regarde dans la table si on la deja "généré", si c'est la cas on peut savoir COMMENT on la généré et ainsi recuperer le message d'origine.

On peut casser exactement pareil SHA-1.

Donc on peut tres bien comprendre que avant d'avoir une base de donnée qui aura tout les hashage possible jusqu'a par exemple 12 symboles sur TOUT les caracteres ya du boulot. De plus a partir de 10 symboles, chaque symbole que tu ajoute ( 11 ) rajouter des milliers de hashage a générer.

Pour donner un exemple concret de rainbow table imaginons que localement j'ai une base de donnée qui contient le MD5 de

- A donne le MD5 ( fictif ) 332ad96cc1ea6fe9ddd1c9b150a241fb

- B donne le MD5 ( fictif ) 8cf1a3c1faa2e027f16c561104f3491f

Bon maintenant j'intercepte un message hashé avec MD5 (un mot de pass par exemple), et je capte 8cf1a3c1faa2e027f16c561104f3491f, tiens je compare dans ma base donnée et je trouve que c'est B ! Et sans avoir cassé le hashage ^^

De rien

Lien vers le commentaire
Partager sur d’autres sites

C'est dingue il suffit de donner une information pour que les gens l'ignorent et se jettent la tête la première dans l'erreur qu'on essaye de leur faire éviter.

:francais:

À croire que certains ne lisent pas les messages.

Sinon Quarky : on arrive à générer des collisions md5 assez facilement et avec peu de ressources (pas de brute force ou de rainbow table) depuis 2004 : http://eprint.iacr.org/2004/199.pdf

RaphAstronome : SHA-1 est cassé lui aussi, donc non.

Mais de toute façon, md5 suffit largement pour la plupart des usages pas besoin de s'embêter avec les derniers algo de hashage. Ce sont des sites persos que vous faites, pas des banques en ligne.

Lien vers le commentaire
Partager sur d’autres sites

C'est dingue il suffit de donner une information pour que les gens l'ignorent et se jettent la tête la première dans l'erreur qu'on essaye de leur faire éviter.

:francais:

À croire que certains ne lisent pas les messages.

Sinon Quarky : on arrive à générer des collisions md5 assez facilement et avec peu de ressources (pas de brute force ou de rainbow table) depuis 2004 : http://eprint.iacr.org/2004/199.pdf

RaphAstronome : SHA-1 est cassé lui aussi, donc non.

Mais de toute façon, md5 suffit largement pour la plupart des usages pas besoin de s'embêter avec les derniers algo de hashage. Ce sont des sites persos que vous faites, pas des banques en ligne.

Attention la colision permet de tromper mais pas de retrouver le "message" d'origine.

Par exemple:

- Un mot de pass, tu as son MD5, si tu essaye de trouver une collision c'est a dire tout les "messages" qui genere un meme MD5 c'est pas la voie la plus royale pour retrouver le mot de pass d'origine car tu sera meme pas sur si c'est reellement le "message" de départ.

- A l'inverse dans un systeme "securisé" dit de confiance comme les dépots de logiciels linux, ou la "confiance" sur l'authenticité du paquet est etabli sur la somme md5 du paquet ( plus vrai maintenant justement a cause "de la facilité" a génerer une collision grace au travail remarquable de certaine personne, aujourd'hui une signature pgp est ajoutée aussi ), donc si tu peut tromper l'authenticité du paquet, c'est a dire mettre un paquet corrompu avec un rootkit ( ou autre ) à la place de celui d'origine tout en conservant la meme somme MD5, alors tu usurpe le systeme de "confiance" et personne voit rien.

Seul dans ce dernier cas la collision est efficace ET redoutée.

Yang: SHA-1 est aussi un hashage, et ca ne casse pas en tant que tel, meme si tu parle de bruteforce, ce n'est qu'une interpretation temps réel du rainbow table, c'est a dire que au lieu de préparer ton attaque afin de l'appliquer sur X cibles, tu génére celle ci directement sur une cible.

Le cryptage donc cassable par clef tu as des exemple comme triple DES AES etc ... où pour retrouver la clef une image est simple:

Imagine un grain de sable, imagine une plage, ok ? Maintenant imagine TOUTE les plages du monde, voila ou tu dois trouver ton grain de sable. Je te laisse imaginer le temps pour trouver le vrai grain de sable, en les testant une par une.

Lien vers le commentaire
Partager sur d’autres sites

Attention la colision permet de tromper mais pas de retrouver le "message" d'origine.

Par exemple:

- Un mot de pass, tu as son MD5, si tu essaye de trouver une collision c'est a dire tout les "messages" qui genere un meme MD5 c'est pas la voie la plus royale pour retrouver le mot de pass d'origine car tu sera meme pas sur si c'est reellement le "message" de départ.

-____-

C'est pas possible, mon premier message ne s'affiche pas ? ou je parle une autre langue ? C'est EXACTEMENT ce que je dis et explique.

Ça sert à quoi de répondre à quelqu'un si tu ne lis même pas la moitié du message qu'il a écrit ? C'est la moindre des politesses.

Yang: SHA-1 est aussi un hashage,

Merci, je sais. Tu peux m'expliquer ou tu m'as lu dire le contraire ?

et ca ne casse pas en tant que tel, meme si tu parle de bruteforce, ce n'est qu'une interpretation temps réel du rainbow table, c'est a dire que au lieu de préparer ton attaque afin de l'appliquer sur X cibles, tu génére celle ci directement sur une cible.

Un algorithme de hashage peut être cassé au sens propre du terme, d'ailleurs le pdf que j'ai posté plus haut en est l'illustration.

Pour sha-1, la, il n'existe que des solutions de "bruteforce optimisée" avec 2^69 tentatives au lieu de 2^80.

C'est vrai que j'y suis allé un peu fort en disant le sha-1 "cassé".

Lien vers le commentaire
Partager sur d’autres sites

Attention la colision permet de tromper mais pas de retrouver le "message" d'origine.

Par exemple:

- Un mot de pass, tu as son MD5, si tu essaye de trouver une collision c'est a dire tout les "messages" qui genere un meme MD5 c'est pas la voie la plus royale pour retrouver le mot de pass d'origine car tu sera meme pas sur si c'est reellement le "message" de départ.

-____-

C'est pas possible, mon premier message ne s'affiche pas ? ou je parle une autre langue ? C'est EXACTEMENT ce que je dis et explique.

Ça sert à quoi de répondre à quelqu'un si tu ne lis même pas la moitié du message qu'il a écrit ? C'est la moindre des politesses.

Yang: SHA-1 est aussi un hashage,

Merci, je sais. Tu peux m'expliquer ou tu m'as lu dire le contraire ?

et ca ne casse pas en tant que tel, meme si tu parle de bruteforce, ce n'est qu'une interpretation temps réel du rainbow table, c'est a dire que au lieu de préparer ton attaque afin de l'appliquer sur X cibles, tu génére celle ci directement sur une cible.

Un algorithme de hashage peut être cassé au sens propre du terme, d'ailleurs le pdf que j'ai posté plus haut en est l'illustration.

Pour sha-1, la, il n'existe que des solutions de "bruteforce optimisée" avec 2^69 tentatives au lieu de 2^80.

C'est vrai que j'y suis allé un peu fort en disant le sha-1 "cassé".

J'ai pas dit l'inverse j'explique juste en quoi la collision n'est pas une solution pour retrouver le message d'origine, car en lisant ton message on a l'impression que le fait de pouvoir generer une collision rend obsolete l'utilisation de MD5 pour les mots de passe.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...