Je suis actuellement ingénieur sur un projet en phase de développement. Un «module» sur ce projet donne la possibilité d'authentification / autorisation des utilisateurs. Cependant, il est venu à notre préoccupation que l'algorithme de hachage de mot de passe peut ne pas être à la hauteur (c'est-à-dire pas BCrypt). (La chose terrible n'est pas tout à fait sûr de ce que c'est et d'où il vient!).
Cela doit évidemment changer et le patch est en cours de planification. Nous devons naturellement mettre à jour tous nos utilisateurs de test car leurs mots de passe utiliseront l'ancienne méthode de hachage, ce qui ne pose pas vraiment de problème, tous nos utilisateurs de démonstration sont automatisés lors de la construction, donc il met à jour le script. Mais la question suivante est de savoir si c'était un système de production avec des utilisateurs actifs et obsolètes, de toutes quantités. Quelle serait la meilleure pratique.
- Forcer automatiquement la réinitialisation du mot de passe pour chaque utilisateur? Cela informera chaque utilisateur que son mot de passe a été modifié et peut causer des questions / confusion et peut faire suspecter une faille de sécurité. D'autres questions peuvent être posées auxquelles les parties prenantes du site Web ne pourront pas nécessairement répondre.
- Mettez à jour la base de données pour indiquer s'il s'agit de la nouvelle ou de l'ancienne méthode, puis une fois qu'un utilisateur a été authentifié, mettez à jour son mot de passe dans le DB utilisant. Nécessite un peu de logique dans le service et la transition ne semblera pas à tout utilisateur existant. Le problème étant qu'il y avait une brèche, alors il peut être évident qu'il y a deux méthodes en cours ici et si la moins sécurisée s'avère aussi peu sûre, elle pourrait évidemment être cassée.
- Réinitialiser tous les mots de passe, en utilisant une version BCrypted du hachage existant. Marquez-le comme l'ancien style, donc en cas d'authentification réussie, il conserve simplement un hachage du mot de passe plutôt qu'un hachage d'un hachage.