web-dev-qa-db-fra.com

Combien de tentatives devez-vous donner à un utilisateur avant d'invalider son mot de passe?

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.

6
Alexandre Martins

Cette question a été posée à plusieurs reprises sur le réseau StackExchange au fil des ans. Voici un résumé des réponses:

  • Il n'y a pas de recherche claire sur le sujet.
  • Si vous êtes dans le secteur financier et devez être conforme à la norme PCI, la limite est de 6 tentatives.
  • Une attaque par force brute peut être reconnue à l'aide d'un algorithme. Suivez ce guide pour créer un algorithme détectant les tentatives automatisées de mot de passe .
  • Des limites de verrouillage de compte et de tentatives de mot de passe sont mises en place pour empêcher les attaquants humains de deviner les mots de passe en fonction de leur connaissance de la victime.

Recommandations

  • Microsoft recommande au moins 4 tentatives et pas plus de 1 .
  • Ne comptez pas les tentatives de mot de passe en double (ils pensaient probablement l'avoir mal saisi)
  • Faites un indice de mot de passe sur le mot de passe principal et n'avez pas de secondaire (faible)
  • Autorisez un tiers de confiance à se porter garant de l'utilisateur afin qu'il puisse modifier son mot de passe.
  • Verrouillez le compte par incréments de temps croissants
  • Rappelez à l'utilisateur les règles de mot de passe.
  • Verrouillez les comptes pendant 30 minutes au lieu de les désactiver complètement.
  • Au lieu de verrouiller les comptes, présentez à l'utilisateur des questions de sécurité supplémentaires.
  • Vérifiez que le verrouillage CAPS est activé (ce n'est pas un problème sur mobile cependant).

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:

  1. Les pouvoirs n'ont pas été acceptés
  2. Un e-mail contenant des instructions de réinitialisation du mot de passe a été envoyé.
  3. Nombre de tentatives restantes jusqu'à ce que le compte soit verrouillé.
  4. Notification de verrouillage de compte et brève description de ce à quoi vous attendre ensuite.
4
dnbrv

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).

3
Andrew Martin

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.

1
jazzgot

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.

1
the other one