Par contre, attention aux préjugés, un site qui est capable de te renvoyer ton mot de passe en clair peut très bien incorporer un mécanisme de protection des mots de passe tout à fait potable.
Je prends l'exemple suivant : $passwordInDatabase = AES($password, DerivateKey($constantSecretKey, $perUserSalt))
En fait, le site ne procède qu'à un chiffrement du mot de passe, pas de hash. Si ceci est bien implémenté, c'est-à-dire que la clé secrète constante est protégée dans un élément sécurisé (ex. HSM) et que le sel unique par utilisateur est généré de façon cryptographiquement secure, c'est une technique qu'on ne cassera pas.
Et évidemment, avantage (ou pas), c'est que le site est capable de déchiffrer le mot de passe si besoin est.
La seule attaque contre ça, c'est de prendre le contrôle totale de la plateforme, et d'envoyer les mots de passe un par un au HSM pour les déchiffrer. Faut déjà y aller pour un attaquant.
[^] # Re: Niveau -3
Posté par Ely . En réponse au journal L'art de stocker des mots de passe. Évalué à 10.
En effet, j'aurais pu rajouter ce niveau.
Par contre, attention aux préjugés, un site qui est capable de te renvoyer ton mot de passe en clair peut très bien incorporer un mécanisme de protection des mots de passe tout à fait potable.
Je prends l'exemple suivant : $passwordInDatabase = AES($password, DerivateKey($constantSecretKey, $perUserSalt))
En fait, le site ne procède qu'à un chiffrement du mot de passe, pas de hash. Si ceci est bien implémenté, c'est-à-dire que la clé secrète constante est protégée dans un élément sécurisé (ex. HSM) et que le sel unique par utilisateur est généré de façon cryptographiquement secure, c'est une technique qu'on ne cassera pas.
Et évidemment, avantage (ou pas), c'est que le site est capable de déchiffrer le mot de passe si besoin est.
La seule attaque contre ça, c'est de prendre le contrôle totale de la plateforme, et d'envoyer les mots de passe un par un au HSM pour les déchiffrer. Faut déjà y aller pour un attaquant.