C'est en fait pour empêcher les attaques par force brute d'essayer des millions de mots de passe par seconde. L'idée est de limiter la façon dont rapidement les mots de passe peuvent être vérifiés et il y a un certain nombre de règles qui doivent être suivies.
- Un succès d'utilisateur/mot de passe paire devrait réussir immédiatement.
- Il devrait y avoir aucune différence perceptible dans les raisons de l'échec qui peut être détecté.
Cette dernière est particulièrement importante. Cela signifie pas de messages utiles comme:
Your user name is correct but your password is wrong, please try again
ou:
Sorry, password wasn't long enough
Pas même une différence de temps de réponse entre le "non valide de l'utilisateur et le mot de passe" et "utilisateur valide, mais non valide mot de passe" raisons de défaillance.
Chaque échec doit livrer exactement les mêmes informations, textuelles et autrement.
Certains systèmes plus loin encore, une augmentation du délai à chaque panne, ou seulement aux trois échecs puis d'avoir un énorme retard avant de permettre à une nouvelle tentative.