Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1046 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Meilleure solution pour crypter un mot de passe ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Meilleure solution pour crypter un mot de passe ?

n°568992
burnedsoul
Posté le 17-11-2003 à 15:06:57  profilanswer
 

Salut à tous,
Voilà je fais un petit site qui à un petit caractère communautaire.
Quelle est la meilleure façon de crypter un mot de passe.
J'utilise le connu MD5 mais cette fonction de hachage ne permet pas de "dé-hacher" le pass, or je voudrais quand même pouvoir voir le pass en clair...
 
Merci d'avance.

mood
Publicité
Posté le 17-11-2003 à 15:06:57  profilanswer
 

n°569004
gizmo
Posté le 17-11-2003 à 15:16:18  profilanswer
 

GRMLRMLML!!! Je vais le redire encore une fois pour ceux qui ne l'aurait pas lu:
 
LE HASHAGE N'EST PAS DU CRYPTAGE. HACHER SES MOT DES PASSE, C'EST SE CREER VOLONTAIREMENT UNE FAILLE DE SECURITE!!!!

n°569005
burnedsoul
Posté le 17-11-2003 à 15:17:32  profilanswer
 

Je sais, c'est justement pour ca que je souhaite utiliser autre chose

n°569012
simogeo
j'ai jamais tué de chats, ...
Posté le 17-11-2003 à 15:24:49  profilanswer
 

http://www.dwam.net/docs/php_fr/manuel_ref.mcrypt.html
 
apparemment bijective. saches que c'est idiot :jap:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°569027
burnedsoul
Posté le 17-11-2003 à 15:31:33  profilanswer
 

"apparemment bijective. saches que c'est idiot "
Lol je doit être idiot moi aussi mais j'ai pas compris ^^

n°569058
impulse
Posté le 17-11-2003 à 15:56:45  profilanswer
 

simogeo a écrit :

http://www.dwam.net/docs/php_fr/manuel_ref.mcrypt.html
 
apparemment bijective. saches que c'est idiot :jap:


 
Idiot? Pourquoi? :??:
C'est ce que j'utilise, je ne trouve pas ça idiot...

n°569065
impulse
Posté le 17-11-2003 à 15:59:41  profilanswer
 

C'est bien beau d'utiliser crypt() mais si t'as besoin de ton pass en clair a un moment ou un autre t'as l'air fin avec cette fonction. :D

n°569070
gizmo
Posté le 17-11-2003 à 16:03:55  profilanswer
 

impulse a écrit :

C'est bien beau d'utiliser crypt() mais si t'as besoin de ton pass en clair a un moment ou un autre t'as l'air fin avec cette fonction. :D


Un algo de cryptage est TOUJOURS réversible. Autrement tu ne peux pas garantir que le produit de ton cryptage est unique et donc tu introduis une faille.

n°569076
impulse
Posté le 17-11-2003 à 16:07:01  profilanswer
 

gizmo a écrit :


Un algo de cryptage est TOUJOURS réversible. Autrement tu ne peux pas garantir que le produit de ton cryptage est unique et donc tu introduis une faille.


 
Tu peux m'expliquer comment decrypter une chaine de caracteres cryptée avec crypt()?

n°569128
simogeo
j'ai jamais tué de chats, ...
Posté le 17-11-2003 à 16:42:14  profilanswer
 

ouais tu dois en avoir pour quelques années c'est vrai .....
 
> pour les autres : c'est idiot car a priori tu peux très bien te passer d'avoir besoin de ton password en clair et ca cosntitue une faille


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
mood
Publicité
Posté le 17-11-2003 à 16:42:14  profilanswer
 

n°569197
burnedsoul
Posté le 17-11-2003 à 17:34:37  profilanswer
 

Donc je garde md5 ? :D

n°569340
gizmo
Posté le 17-11-2003 à 20:23:47  profilanswer
 

impulse a écrit :


 
Tu peux m'expliquer comment decrypter une chaine de caracteres cryptée avec crypt()?


 
il faudrait que je regarde comment fonctionne l'algo, mais ce ne doit pas être très compliqué.

n°569342
gizmo
Posté le 17-11-2003 à 20:25:17  profilanswer
 

simogeo a écrit :

ouais tu dois en avoir pour quelques années c'est vrai .....
 
> pour les autres : c'est idiot car a priori tu peux très bien te passer d'avoir besoin de ton password en clair et ca cosntitue une faille


 
on est plus au temps des 8088. Trouver un mot qui aura la même clefs md5 qu'un autre ne mettra, au plus, que quelques jours.

n°569345
karamilo
Posté le 17-11-2003 à 20:42:35  profilanswer
 

je demande a voir pour des chaines avec plusieurs caracteres ( au moins 5-6 ) ...

n°569401
gizmo
Posté le 17-11-2003 à 22:31:43  profilanswer
 

karamilo a écrit :

je demande a voir pour des chaines avec plusieurs caracteres ( au moins 5-6 ) ...


Mais on s'en fout du nombre de caractère! un algo de hashage te donnera TOUJOURS un résultat codé sur un nombre de bits IDENTIQUE. Avec cela, tu pourras donc trouver une infinité de chaines qui donneront ce même résultat. Peu importe que le mot de passe originel fasse 1 ou 100 caractères, ce qui compte, c'est le premier que tu trouvera qui donnera le même résultat.

n°569429
ratibus
Posté le 17-11-2003 à 23:19:22  profilanswer
 

gizmo a écrit :


Mais on s'en fout du nombre de caractère! un algo de hashage te donnera TOUJOURS un résultat codé sur un nombre de bits IDENTIQUE. Avec cela, tu pourras donc trouver une infinité de chaines qui donneront ce même résultat. Peu importe que le mot de passe originel fasse 1 ou 100 caractères, ce qui compte, c'est le premier que tu trouvera qui donnera le même résultat.


Tu connais la taille de l'espace d'arrivée ?
C'est égal à 2 ^ 128 soit environ 3 * 10 ^ 38   !!!
 
Je sais pas si tu réalises bien à quoi cela correspond (l'âge de l'univers vaut environ 3 * 10 ^ 17 secondes).


Message édité par ratibus le 17-11-2003 à 23:28:28
n°569491
impulse
Posté le 18-11-2003 à 08:50:41  profilanswer
 

gizmo a écrit :


 
il faudrait que je regarde comment fonctionne l'algo, mais ce ne doit pas être très compliqué.


 
Tu crois pas que tu exageres un tout petit peu? :D
 

Citation :

on est plus au temps des 8088. Trouver un mot qui aura la même clefs md5 qu'un autre ne mettra, au plus, que quelques jours.


 
A moins d'avoir un sacré paquet de machines dispo chez toi je crois que tu reves vraiment. ;)
 
EDIT : md5 je sais pas. Je parlais de la fonction crypt(). On peut utiliser DES ou Blowfish avec cette fonction.


Message édité par impulse le 18-11-2003 à 08:54:53
n°569729
xam_orpheu​s
Posté le 18-11-2003 à 13:18:26  profilanswer
 

gizmo a écrit :


 
on est plus au temps des 8088. Trouver un mot qui aura la même clefs md5 qu'un autre ne mettra, au plus, que quelques jours.


 
Pour éviter en partie cela, et vu que je suis limite parano quand même, moi je fais un truc qui détecte les brute force (nb de tentative par x secondes par exemple) sur mes pages d'authentification

n°570007
ratibus
Posté le 18-11-2003 à 16:17:10  profilanswer
 

Xam_Orpheus a écrit :


 
Pour éviter en partie cela, et vu que je suis limite parano quand même, moi je fais un truc qui détecte les brute force (nb de tentative par x secondes par exemple) sur mes pages d'authentification


Pour éviter le brute force on peut aussi faire un système d'image aléatoire avec un code indiqué sur l'image qu'il faut retaper.

n°570018
burnedsoul
Posté le 18-11-2003 à 16:32:51  profilanswer
 

c vrai ke c une solution plutôt radicale :)

n°570046
simogeo
j'ai jamais tué de chats, ...
Posté le 18-11-2003 à 16:50:11  profilanswer
 

ratibus a écrit :


Pour éviter le brute force on peut aussi faire un système d'image aléatoire avec un code indiqué sur l'image qu'il faut retaper.


pas vraiment adapté à un module d'authentification quand même [:wam]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°570184
xam_orpheu​s
Posté le 18-11-2003 à 19:59:19  profilanswer
 

simogeo a écrit :


pas vraiment adapté à un module d'authentification quand même [:wam]


 
Ouais c'est clair, un p'tit peu lourd quand même ;)

n°570283
ratibus
Posté le 18-11-2003 à 22:55:51  profilanswer
 

Pourquoi ? Je veux des arguments valables :D

n°570375
xam_orpheu​s
Posté le 19-11-2003 à 00:51:22  profilanswer
 

Lourd pour l'utilisateur, devoir taper login, mot de passe + le truc aléatoire à chaque fois qu'il se connecte, c'est vite saoulant. ;)

n°570402
matafan
Posté le 19-11-2003 à 01:37:17  profilanswer
 

gizmo minifestement tu ne sais pas de quoi tu parles...  Le hashage n'est pas du cryptage certes, mais pour un site web c'est la seule solution sûre, justement parce qu'il est difficile (beaucoup plus que tu ne le laisse entendre) de trouver un pass qui donne un hashage donné. Si tu utilises un algo de chiffrage a clée comme tu sembles le suggérer, alors la clée en question est forcément aussi facile à récupérer que le mot de passe chiffré lui même (sinon un soft ne serait pas capable seul de dechiffrer le passe chiffré). Cherche l'erreur...
 
Et quant a cracker du md5 en quelques jours sur un PC, je crois que tu n'a pas la notion de l'immensité de l'espace de recherche.

n°570441
gizmo
Posté le 19-11-2003 à 09:28:59  profilanswer
 

Matafan a écrit :

gizmo minifestement tu ne sais pas de quoi tu parles...  Le hashage n'est pas du cryptage certes, mais pour un site web c'est la seule solution sûre, justement parce qu'il est difficile (beaucoup plus que tu ne le laisse entendre) de trouver un pass qui donne un hashage donné. Si tu utilises un algo de chiffrage a clée comme tu sembles le suggérer, alors la clée en question est forcément aussi facile à récupérer que le mot de passe chiffré lui même (sinon un soft ne serait pas capable seul de dechiffrer le passe chiffré). Cherche l'erreur...
 
Et quant a cracker du md5 en quelques jours sur un PC, je crois que tu n'a pas la notion de l'immensité de l'espace de recherche.


n'importe quoi! le md5 ne donne des clefs uniques, au maximum, que pour des pass d'au plus 16 caractères. En comptant les pass de moins de 16 caractères, on diminue encore ce nombre.
 
Et quand tu utilises une protection avec clefn non seulement tu utilise un principe de clef public/clef privée, ce qui permet de ne pas faire voyager n'importe quoi sur le réseau, mais en outre tu le fais via un canal sécurisé, https par exemple.
 
Si tu ne fais pas cela, mis à part pour éviter les attaques sur le serveurs et que tu ne veux pas que le hackeur choppe les mots de pass originels, le hashage n'est pas une sécurité en soi.

n°570518
taureau
Posté le 19-11-2003 à 10:54:24  profilanswer
 

gizmo a écrit :


n'importe quoi! le md5 ne donne des clefs uniques, au maximum, que pour des pass d'au plus 16 caractères. En comptant les pass de moins de 16 caractères, on diminue encore ce nombre.
 


 
j'ai rien compris à ce que tu dis mais toi je crois que tu n'as rien compris au md5...dans le même genre on peut aussi utiliser comme hash SHA-1
 
md5("a" ) = "0cc175b9c0f1b6a831c399e269772661"
sha("a" ) = "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8"

n°570711
KrisCool
“Verbeux„
Posté le 19-11-2003 à 14:17:28  profilanswer
 

De toute façon pour pouvoir exploiter la non-unicité des hash md5, il faut justement avoir récupéré le hash md5 du mot de passe. Ce qu'on trouve généralement dans un cookie déposé pour éviter à l'utilisateur de rerentrer son mot de passe (lorsqu'on ne passe pas par un identifiant unique de session).
 
A ma connaissance, le vol de cookies ou d'id de session ne peut se faire que s'il existe déjà d'autres vulnérabilités sur le site ou sur la machine cliente. Donc ça revient à dire "si le site a des failles, le md5 présente un risque". Autant lutter directement contre les problèmes existants, notamment l'injection et le vol d'id de sessions.
 
Pour éviter la force brute, le système utilisé par Yahoo est assez simple : au bout de 5 essais manqués, la saisie d'un texte depuis une image générée est requise. Les erreurs d'innatention ou de frappe de l'utilisateur ne sont pas pénalisantes pour lui, un bot faisant du bruteforce sera systématiquement débouté.
 
Sinon il est toujours possible d'utiliser un cryptage plus complexe sur le mot de passe (en dehors de toute considération de https) et de conserver une clé sur le serveur. A la condition que ni la clé ni les versions cryptées du pass ne soient accessibles, l'attaquant peut toujours essayer de trouver un pass qui marche (il aura plus vite fait de tenter quelques passwords classiques de dictionnaire)


Message édité par KrisCool le 19-11-2003 à 14:17:48

---------------
Loose Change Lies | Bars | Last.fm
n°570746
xam_orpheu​s
Posté le 19-11-2003 à 14:52:02  profilanswer
 

Dans le cas ou on stocke dans un cookie le mdp de l'utilisateur, hashé en md5 par exemple, j'vaais pensé à le traffiquer un tout petit peu, genre je prends la dernière lettre du truc généré par le md5 et je la fous au début. Comme ca, si quelqu'un essaye de faire un truc à partir de ce md5, il partira dès le départ sur un truc faux. Evidemment après sur le site suffit juste de faire l'opération inverse pour retrouver le "vrai" md5.

n°570834
burnedsoul
Posté le 19-11-2003 à 16:03:20  profilanswer
 

Je pensais moi à "md5isé" le mot de pass, puis de lui ajouter le sha de ce meme mot de passe, l'insérer dans la base et ainsi la personne qui accède a la base de données, va chercher soit un sha soit un md5...
Bref varianter le résultat ...

n°570887
gizmo
Posté le 19-11-2003 à 16:44:57  profilanswer
 

KrisCool a écrit :

De toute façon pour pouvoir exploiter la non-unicité des hash md5, il faut justement avoir récupéré le hash md5 du mot de passe. Ce qu'on trouve généralement dans un cookie déposé pour éviter à l'utilisateur de rerentrer son mot de passe (lorsqu'on ne passe pas par un identifiant unique de session).
on est bien d'accord
 
A ma connaissance, le vol de cookies ou d'id de session ne peut se faire que s'il existe déjà d'autres vulnérabilités sur le site ou sur la machine cliente. Donc ça revient à dire "si le site a des failles, le md5 présente un risque". Autant lutter directement contre les problèmes existants, notamment l'injection et le vol d'id de sessions.
Tout à fait, sauf que certaines failles ne sont pas spécialement liées au site, mais tout simplement au browser :/
 
Pour éviter la force brute, le système utilisé par Yahoo est assez simple : au bout de 5 essais manqués, la saisie d'un texte depuis une image générée est requise. Les erreurs d'innatention ou de frappe de l'utilisateur ne sont pas pénalisantes pour lui, un bot faisant du bruteforce sera systématiquement débouté.
C'est en effet une bonne possibilité :jap:
 
Sinon il est toujours possible d'utiliser un cryptage plus complexe sur le mot de passe (en dehors de toute considération de https) et de conserver une clé sur le serveur. A la condition que ni la clé ni les versions cryptées du pass ne soient accessibles, l'attaquant peut toujours essayer de trouver un pass qui marche (il aura plus vite fait de tenter quelques passwords classiques de dictionnaire)
yep, et pour éviter les attaques au dictionnaire, forcer l'utilisateur à utiliser un mot de pass généré aléatoirement.

n°571239
matafan
Posté le 20-11-2003 à 02:25:55  profilanswer
 

Citation :

Et quand tu utilises une protection avec clefn non seulement tu utilise un principe de clef public/clef privée, ce qui permet de ne pas faire voyager n'importe quoi sur le réseau, mais en outre tu le fais via un canal sécurisé, https par exemple.


 
Et si tu lisais ce que j'ai écrit, tu comprendrais que l'utilisation de clée privées et publiques ne change rien au problème. Si tu chiffres les mots de passe, c'est parce que tu as peur que quelqu'un accède aux passwords. Or si ce quelqu'un peut accéder aux passwords (chiffrés), il peut tout aussi bien accéder a la clée privée, puisque cette clée privée est faite pour être lue par le même programme qui lit aussi les pass chiffrés. Physiquement elle sera sur la même machine que les pass, ou pas bien loin. Mais en tout cas accessible.


Message édité par matafan le 20-11-2003 à 02:27:08
n°571255
gizmo
Posté le 20-11-2003 à 09:02:24  profilanswer
 

Sauf que tu supposes que l'attaque se fait sur le serveur, alors qu'il est NETTEMENT plus facile de s'attaque au client.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Meilleure solution pour crypter un mot de passe ?

 

Sujets relatifs
mettre un mot de passe dans un exe ?[PHP] stocker un mot de passe dans une variable de session (en clair)
[PHP] Savoir combien de tps passe 1 visiteur sur le site[recherche] une meilleure solution que les patch IPS
Comment crypter un mot de passe en md5 ?[PHP] Internationalisation, meilleure technique pour un petit site?
[MzScheme] Pourquoi MzScheme ne veut pas de mon code passé en argument[Config PHP] Formulaires avec POST ... il ne se passe rien ?
Plus de sujets relatifs à : Meilleure solution pour crypter un mot de passe ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR