Page 1 sur 1

Crypt() et $Salt

Posté : 27 déc. 2011, 17:16
par micmac81
Bonjour,

J'ai lu que MD5 n'était plus sûr comme technique pour stocker les mots de passes. En particulier contre les attaques par force brute sur la sortie (càd supposant que le hacker ait volé le(s) mot de passe crypté(s))

Sur le site de PHP.net on nous conseille d'utiliser plutôt la fonction Crypt() + salt.

Mais je ne comprend pas en quoi c'est plus sécurisant contre les attaques par force brutes?

Ou je n'ai pas compris ce qu'est une attaque brute?
Ou je n'ai pas compris comment fonctionne Crypt() + salt ?
<?php
// Il suffit de boucler avec un code du genre non ?? étant donnée que le salt est dans le password crypté...
if (crypt($password_supposed, $password_crypted ) == $password_crypted) {
   echo "Mot de passe :".$password_supposed;
}
?>

Moi j'ai compris que ça marchait comme ça la fonction crypt + salt. Mais je ne suis pas convaincu donc si quelqu'un pouvait m'éclairer, merci ^^

Re: Crypt() et $Salt

Posté : 27 déc. 2011, 17:47
par xTG
C'est juste que les algorythmes de cryptages utilisés dans la bibliothèque mcrypt demandent 1000x plus de temps pour le décryptage par bruteforce.
Mais le bruteforce n'est pas tellement un bon argument pour dire que le md5 est à jeter à la poubelle.
Hasher un mot de passe en md5 reste valable tant que tu ajoutes un grain de sel, ce sont les hash sans grain de sel qui sont sujets à problème à cause des rainbow tables.

Re: Crypt() et $Salt

Posté : 27 déc. 2011, 17:55
par Spols
Concernant l'utilisation de la fonction crypt, c'est le bonne usage pour vérifier un mot de passe, mais je te déconseille de faire afficher le mot de passe. Regarde les exemple de la fonction crypt sur php.net, tu verra que les premier caractère du résultat est en fait le salt utilisé.

Re: Crypt() et $Salt

Posté : 27 déc. 2011, 18:19
par micmac81
Ok je vois.
C'est ce que je me disais.

Merci

Donc le mieux c'est de mettre un grain de sel sur le mot de passe en clair (suivant une formule qu'on aura codé ) puis de hashé le tout? (ou après le hashage, faut voir) Comme çà si la hacker récupère le mot de passe hashé il ne saura pas comment "viré" le grain de sel à moins qu'il ne me volent mes codes sources sur le serveur...

De même par forcebrute sur le mot de passe hashé il ne pourra pas le faire s'il ne connais pas la formule de l'insertion du grain de sel, pour les rainbow aussi

Sinon un fichier source php sur le serveur c'est "volable" facilement ? plus facilement que de pirater une base de données :P ?

Re: Crypt() et $Salt

Posté : 27 déc. 2011, 18:39
par xTG
Cela dépend des portes ouvertes que tu laisses dans ton code. ;)