Une question de néophite

Le
ChP
Bonjour à toutes et à tous,

Mon problème : protéger un mot de passe.

J'ai vu la fonction "md5" (en autres je suppose) qui permet de
"transformer" un chaîne de caractères en une autre et je lis qu'il
n'existe pas de fonction réciproque pour retrouver la chaîne initiale.

Ça me fait penser à la blague d'un premier avril où une personne disait
avoir découvert la "WOM" : Write Only Memory : une fois qu'on a écrit
quelque chose dedans, ben on est incapable de savoir ce qui y est car
elle n'est pas lisible

Bon, mais je pense que je suis loin d'avoir tout compris.

Voilà comment je pense me servir de le fonction md5. Dites-moi si je
déraille ou si je vais dans le bon sens.

A l'inscription sur mon site WEB, je demande un mot de passe. Je lui
applique la fonction md5 et je stocke ce résultat dans un fichier sur
mon site.

Quand cette personne veut revenir sur le site, elle tape son mot de
passe et je compare le md5 de cette valeur à celle stockée, si c'est bon
j'autorise la personne à entrer.

Alors maintenant, j'imagine qu'une personne non autorisée réussi à
trouver la valeur stockée, si la fonction md5 n'a pas de fonction
réciproque, cette personne ne pourra rien faire de cette valeur ?

J'ai bon ou je déraille ?

Merci de votre aide.

Pierre
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
YannicK
Le #1845368
Bonjour à toutes et à tous,
[...]
Alors maintenant, j'imagine qu'une personne non autorisée réussi à
trouver la valeur stockée, si la fonction md5 n'a pas de fonction
réciproque, cette personne ne pourra rien faire de cette valeur ?

J'ai bon ou je déraille ?

Merci de votre aide.

Pierre



Bonjour, monsieur le *_néophyte_*,


Oui, c'est effectivement cela. Md5 est ce que l'on appelle une fonction
de hachage, qui permet de créer une empreinte unique à partir d'une
donnée informatique.

Certains prennent l'image du cochon : je peux transformer un cochon en
saucisse, mais pas retransformer une saucisse en cochon !

Il faut néanmoins savoir que la fonction md5 n'est plus considérée comme
sûre .. je te conseille donc de de tourner vers d'autres fonctions,
comme la famille des SHA, qui est aussi implémentée en PHP ...

Pour en savoir plus, je te renvoie vers wikipedia :

http://fr.wikipedia.org/wiki/Fonction_de_hachage
http://fr.wikipedia.org/wiki/Md5

Ainsi que vers ces deux pages, trouvées grâce à Google en faisant une
recherche sur les fonctions de hachage en PHP



Bonne lecture et bon courage !


--
YannicK
yann801 *arobase* yahoo *point* fr
yann801 *at* yahoo *dot* fr

ChP
Le #1845367
Bonjour à toutes et à tous,
[...] Alors maintenant, j'imagine qu'une personne non autorisée réussi
à trouver la valeur stockée, si la fonction md5 n'a pas de fonction
réciproque, cette personne ne pourra rien faire de cette valeur ?

J'ai bon ou je déraille ?

Merci de votre aide.

Pierre



Bonjour, monsieur le *_néophyte_*,


Oui, c'est effectivement cela. Md5 est ce que l'on appelle une fonction
de hachage, qui permet de créer une empreinte unique à partir d'une
donnée informatique.

Certains prennent l'image du cochon : je peux transformer un cochon en
saucisse, mais pas retransformer une saucisse en cochon !

Il faut néanmoins savoir que la fonction md5 n'est plus considérée comme
sûre .. je te conseille donc de de tourner vers d'autres fonctions,
comme la famille des SHA, qui est aussi implémentée en PHP ...

Pour en savoir plus, je te renvoie vers wikipedia :

http://fr.wikipedia.org/wiki/Fonction_de_hachage
http://fr.wikipedia.org/wiki/Md5

Ainsi que vers ces deux pages, trouvées grâce à Google en faisant une
recherche sur les fonctions de hachage en PHP



Bonne lecture et bon courage !


Merci Yannick pour ces informations et désolé pour la faute d'orthographe.


Cordialement.

Pierre


YannicK
Le #1846680
Bonjour à toutes et à tous,
[...] Alors maintenant, j'imagine qu'une personne non autorisée
réussi à trouver la valeur stockée, si la fonction md5 n'a pas de
fonction réciproque, cette personne ne pourra rien faire de cette
valeur ?

J'ai bon ou je déraille ?

Merci de votre aide.

Pierre



Bonjour, monsieur le *_néophyte_*,


Oui, c'est effectivement cela. Md5 est ce que l'on appelle une
fonction de hachage, qui permet de créer une empreinte unique à partir
d'une donnée informatique.

Certains prennent l'image du cochon : je peux transformer un cochon en
saucisse, mais pas retransformer une saucisse en cochon !

Il faut néanmoins savoir que la fonction md5 n'est plus considérée
comme sûre .. je te conseille donc de de tourner vers d'autres
fonctions, comme la famille des SHA, qui est aussi implémentée en PHP ...

Pour en savoir plus, je te renvoie vers wikipedia :

http://fr.wikipedia.org/wiki/Fonction_de_hachage
http://fr.wikipedia.org/wiki/Md5

Ainsi que vers ces deux pages, trouvées grâce à Google en faisant une
recherche sur les fonctions de hachage en PHP



Bonne lecture et bon courage !


Merci Yannick pour ces informations et désolé pour la faute d'orthographe.


Cordialement.

Pierre



Un point encore qui m'est revenu après ma première réponse : ton
hypothèse de départ est qu'un tiers mal intentionné puisse trouver la
valeur stockée : cela pose un problème de sécurité d'une autre nature.

En effet, cet agresseur ne pourra rien faire du résultat du hash stocké
dans la base de données. Néanmoins, s'il a accès à la base pour
consulter les hashs, il y a peut être aussi accès en écriture, et dans
ce cas rien ne l'empêche de remplacer une valeur par le hash de son
propre mot de passe ...

J'avais eu l'occasion de procéder ainsi pour dépanner un lycée qui avait
perdu le mot de passe "admin" d'un module de son intranet. Le serveur
était un serveur LAMP, et grâce à Phpmyadmin j'ai pu accéder à la base
MySql qui contenait les données dudit module. Il a été très facile de
retrouver la table qui contenait les login et le md5 des mots de passe.
J'ai donc recalculé le hash d'un mot de passe bateau, du style "toto",
et par un simple copier/coller, j'ai intégré dans la base le md5 de ce
nouveau mot de passe dans l'enregistrement relatif à "admin" ... J'ai pu
ensuite me connecter à l'application avec le couple de données
"admin/toto" ...

Certes, j'avais physiquement accès à la machine sur laquelle tournait
l'application. Néanmoins, cet exemple pose le problème de la sécurité
informatique d'une manière plus générale : sécurisation du serveur, de
la base de données, choix d'un mot de passe fort, etc ...



--
YannicK
yann801 *arobase* yahoo *point* fr
yann801 *at* yahoo *dot* fr



ChP
Le #1857023
Bonjour à toutes et à tous,
[...] Alors maintenant, j'imagine qu'une personne non autorisée
réussi à trouver la valeur stockée, si la fonction md5 n'a pas de
fonction réciproque, cette personne ne pourra rien faire de cette
valeur ?

J'ai bon ou je déraille ?

Merci de votre aide.

Pierre



Bonjour, monsieur le *_néophyte_*,


Oui, c'est effectivement cela. Md5 est ce que l'on appelle une
fonction de hachage, qui permet de créer une empreinte unique à
partir d'une donnée informatique.

Certains prennent l'image du cochon : je peux transformer un cochon
en saucisse, mais pas retransformer une saucisse en cochon !

Il faut néanmoins savoir que la fonction md5 n'est plus considérée
comme sûre .. je te conseille donc de de tourner vers d'autres
fonctions, comme la famille des SHA, qui est aussi implémentée en PHP
...

Pour en savoir plus, je te renvoie vers wikipedia :

http://fr.wikipedia.org/wiki/Fonction_de_hachage
http://fr.wikipedia.org/wiki/Md5

Ainsi que vers ces deux pages, trouvées grâce à Google en faisant une
recherche sur les fonctions de hachage en PHP



Bonne lecture et bon courage !


Merci Yannick pour ces informations et désolé pour la faute

d'orthographe.

Cordialement.

Pierre



Un point encore qui m'est revenu après ma première réponse : ton
hypothèse de départ est qu'un tiers mal intentionné puisse trouver la
valeur stockée : cela pose un problème de sécurité d'une autre nature.

En effet, cet agresseur ne pourra rien faire du résultat du hash stocké
dans la base de données. Néanmoins, s'il a accès à la base pour
consulter les hashs, il y a peut être aussi accès en écriture, et dans
ce cas rien ne l'empêche de remplacer une valeur par le hash de son
propre mot de passe ...

J'avais eu l'occasion de procéder ainsi pour dépanner un lycée qui avait
perdu le mot de passe "admin" d'un module de son intranet. Le serveur
était un serveur LAMP, et grâce à Phpmyadmin j'ai pu accéder à la base
MySql qui contenait les données dudit module. Il a été très facile de
retrouver la table qui contenait les login et le md5 des mots de passe.
J'ai donc recalculé le hash d'un mot de passe bateau, du style "toto",
et par un simple copier/coller, j'ai intégré dans la base le md5 de ce
nouveau mot de passe dans l'enregistrement relatif à "admin" ... J'ai pu
ensuite me connecter à l'application avec le couple de données
"admin/toto" ...

Certes, j'avais physiquement accès à la machine sur laquelle tournait
l'application. Néanmoins, cet exemple pose le problème de la sécurité
informatique d'une manière plus générale : sécurisation du serveur, de
la base de données, choix d'un mot de passe fort, etc ...



Pour avoir accès à la base de données, a priori, il faut avoir le mot de

passe.

Dans mon cas, ce mot est stocké dans un fichier "quelconque". C'est pour
cela que je supposais qu'on pouvait y avoir accès "relativement" facilement.

Mais de ce fait, et après avoir écrit ce message, je m'aperçois qu'une
méthode utilisant le md5 ou autre ne peut pas fonctionner car il faut
que je puisse reconstituer le mot de passe pour avoir accès à la base de
données.

Il me faut donc une méthode de cryptage/décryptage. Bon, ben c'est un
autre problème.

Cordialement.

Pierre




Publicité
Poster une réponse
Anonyme