Crypt() et $Salt

Petit nouveau ! | 2 Messages

27 déc. 2011, 17:16

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 ^^

ViPHP
xTG
ViPHP | 7331 Messages

27 déc. 2011, 17:47

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.

Mammouth du PHP | 1967 Messages

27 déc. 2011, 17:55

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é.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 2 Messages

27 déc. 2011, 18:19

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 ?

ViPHP
xTG
ViPHP | 7331 Messages

27 déc. 2011, 18:39

Cela dépend des portes ouvertes que tu laisses dans ton code. ;)