Ce que j'essaie d'éviter ici, ce sont les attaques par force brute contre le mot de passe d'un utilisateur. Et je pense à faire cela en invalidant son mot de passe lorsque trop de tentatives sont faites dans la même minute, heure, jour ou quelque chose de similaire. Les informations d'identification de l'utilisateur sont destinées aux employés de l'entreprise en déplacement dans une application Android.
Mais, en même temps, je ne veux pas que l'utilisateur fasse quelques erreurs en l'insérant et le fasse invalider sans aucun besoin.
Combien en faut-il? Ou, à titre subsidiaire, comment puis-je déterminer la quantité suffisante?
En posant une autre question, quel est le maximum d'erreurs qu'un humain peut faire en insérant son mot de passe avant de contacter le service d'assistance?
Edit: Le mécanisme d'authentification se fait via le réseau. L'application obtient des informations mises à jour à partir d'un serveur d'entreprise après la connexion du bon utilisateur.
Cette question a été posée à plusieurs reprises sur le réseau StackExchange au fil des ans. Voici un résumé des réponses:
Recommandations
Voir la discussion complète Pourquoi les sites implémentent-ils le verrouillage après 3 tentatives de mot de passe échouées? sur Security.SE.
Mes recommandations personnelles
Je m'occupe beaucoup d'un système mal conçu où les gens oublient souvent leurs informations d'identification car ils n'utilisent pas le système assez souvent pour s'en souvenir. Le système verrouille automatiquement les comptes d'utilisateurs après (je crois) 5 tentatives infructueuses. Le verrou nécessite qu'un membre de mon équipe accède à la console de gestion, réinitialise le mot de passe utilisateur manuellement et leur envoie également un e-mail manuellement avec le mot de passe temporaire. Le temps perdu est horrible, mais le système est fourni par un fournisseur et nous ne pouvons pas le changer.
Quels que soient le système, le protocole et le flux de travail que vous utilisez, vous devez vous assurer que vos utilisateurs sur le terrain n'ont pas le luxe d'attendre même 15 minutes pour restaurer l'accès à leur compte. Ainsi, vous devez créer un processus de réactivation en libre-service. Cela peut être aussi simple que d'envoyer un e-mail à l'utilisateur avec un lien de réinitialisation de mot de passe.
Gardez également une trace de tous les indicateurs d'état du système:
Plutôt que de simplement invalider le mot de passe, il pourrait être utile de mettre en œuvre une stratégie similaire à celle que Android utilise dans son propre système:
De mémoire, je crois qu'il utilise une règle de 5 tentatives avant d'instaurer un verrouillage de 5 minutes. Si 5 autres tentatives échouent, le temps de verrouillage augmente (je ne sais pas quoi faire car je n'ai jamais échoué cette deuxième tentative).
Vous devriez peut-être essayer quelque chose de différent? Par exemple, dans les iPads et probablement dans d'autres Apple pour trois connexions invalides, vous obtenez une pénalité de 5 minutes et pour chaque prochain essai, vous obtenez cette pénalité plus longtemps.
Il existe également de plus en plus d'applications mobiles qui n'utilisent pas de mot de passe tapé mais certains gestes tactiles à la place. Cette solution élimine complètement la méthode de piratage de force brutale.
Du point de vue de l'utilisabilité? Infini. Avec une aide clairement mise en évidence pour l'utilisateur.
Du point de vue de la sécurité? C'est vraiment un pour l'échange de pile de sécurité. Bien que la réponse d'Andrew semble bonne.