Mysql
 sql >> Base de données >  >> RDS >> Mysql

Améliorez le hachage du mot de passe avec un sel aléatoire

Un attaquant est "autorisé" connaître le sel - votre sécurité doit être conçue de manière à ce que même avec la connaissance du sel, elle soit toujours sécurisée.

Que fait le sel ?

Le sel aide à se défendre contre les attaques par force brute en utilisant des "tables arc-en-ciel" précalculées.
Le sel rend la force brute beaucoup plus coûteuse (en termes de temps/mémoire) pour l'attaquant.
Calculer une telle table est coûteux et généralement utilisé uniquement lorsqu'il peut être utilisé pour plusieurs attaques/mots de passe.
SI vous utilisez le même sel pour tous les mots de passe, un attaquant pourrait pré-calculer une telle table, puis forcer brutalement vos mots de passe en texte clair ...
Tant que vous générez un nouveau sel aléatoire (meilleur fort sur le plan cryptographique) pour chaque mot de passe dont vous souhaitez stocker le hachage, il n'y a pas de problème.

SI vous souhaitez renforcer davantage la sécurité
Vous pouvez calculer le hachage plusieurs fois (hacher le hachage, etc.) - cela ne vous coûte pas cher mais cela rend une attaque par force brute / le calcul de "tables arc-en-ciel" encore plus cher... s'il vous plaît, ne ne vous inventez pas - il existe des méthodes standard éprouvées pour le faire, voir par exemple http://en. wikipedia.org/wiki/PBKDF2 et http ://www.itnewb.com/tutorial/Encrypting-Passwords-with-PHP-for-Storage-Using-the-RSA-PBKDF2-Standard

REMARQUE :

L'utilisation d'un tel mécanisme est de nos jours obligatoire puisque le "temps CPU" (utilisable pour les attaques comme les tables arc-en-ciel/force brute etc.) devient de plus en plus disponible (voir par exemple le fait que le service Cloud d'Amazon est parmi les 50 supercalculateurs les plus rapides au monde et peut être utilisé par n'importe qui pour un montant relativement faible) !