Je rajouterai deux petites précisions :
1 - Il est conseillé de faire du SSL pour l'authentification car il faut envoyer le mot de passe "en clair" au serveur pour qu'il lui applique la fonction de hachage et le compare au haché dans la base de données.
2 - Si quelqu'un de "malveillant" a accès à la liste des hachés, il va pouvoir lancer une attaque par dictionnaire pour tester tous les hachés. Plus il y en a dans la base, plus il risque d'en trouver un car il suffit de hacher un mot du dictionnaire pour pouvoir le comparer à tous les hachés disponibles. Une solution consiste à hacher non pas le mot de passe seul mais la concaténation du mot de passe et d'une petite valeur aléatoire, appelée "salt", stockée elle aussi dans la base de données. Dans ce cas, même s'il y a deux fois le même mot de passe dans la base, ils auront des "salt" différents donc des hachés différents. Même si le pirate obtient la base de données (donc le haché et le "salt"), quand il hache un mot du dictionnaire, il ne peut tester qu'un seul mot de passe alors qu'avant quand il hachait un mot du dictionnaire, il pouvait tester tous les mots de passe de la base.
[^] # Re: sha2
Posté par jcs (site web personnel) . En réponse à la dépêche Correction d'un problème de sécurité sur TuxFamily. Évalué à 6.
1 - Il est conseillé de faire du SSL pour l'authentification car il faut envoyer le mot de passe "en clair" au serveur pour qu'il lui applique la fonction de hachage et le compare au haché dans la base de données.
2 - Si quelqu'un de "malveillant" a accès à la liste des hachés, il va pouvoir lancer une attaque par dictionnaire pour tester tous les hachés. Plus il y en a dans la base, plus il risque d'en trouver un car il suffit de hacher un mot du dictionnaire pour pouvoir le comparer à tous les hachés disponibles. Une solution consiste à hacher non pas le mot de passe seul mais la concaténation du mot de passe et d'une petite valeur aléatoire, appelée "salt", stockée elle aussi dans la base de données. Dans ce cas, même s'il y a deux fois le même mot de passe dans la base, ils auront des "salt" différents donc des hachés différents. Même si le pirate obtient la base de données (donc le haché et le "salt"), quand il hache un mot du dictionnaire, il ne peut tester qu'un seul mot de passe alors qu'avant quand il hachait un mot du dictionnaire, il pouvait tester tous les mots de passe de la base.