Pour les systèmes où 2FA / MFA est "facultatif" comme Gmail ou Outlook.com, le service doit équilibrer le facteur de tracas lié à l'utilisation de la méthode à 2 facteurs et la sécurité qu'il apporte à leur site . Dans un monde parfait, les utilisateurs auraient des mots de passe uniques et complexes pour chaque site, et utiliseraient toujours 2FA lorsqu'il est disponible, mais dans le monde réel, vous avez raison - les utilisateurs auront le même mot de passe sur une douzaine de sites, et un facteur 2 mécanisme qui ne verrouille pas automatiquement le compte et avertit l'utilisateur après quelques tentatives de connexion non valides dans une fenêtre relativement petite peut conduire à une situation où l'attaquant tente patiemment quelques suppositions probables jusqu'à ce qu'il atteigne l'invite 2FA, auquel point il savent qu'ils ont une combinaison nom d'utilisateur et mot de passe valide. Avec tous les compromis de base de données de mots de passe hautement publics sur de grands sites (tels que LinkedIn, entre autres) qui utilisent votre adresse e-mail comme connexion, un attaquant peut logiquement deviner le mot de passe d'un utilisateur relativement facilement si l'utilisateur n'a jamais pris la peine de mettre à jour d'autres sites. , mais juste celui qui a été "fissuré".
Pour les applications critiques pour la sécurité (comme l'une des nombreuses applications sur lesquelles je travaille), l'invite de connexion requiert un nom d'utilisateur, un mot de passe et une valeur à 2 facteurs en même temps, et il s'agit d'une authentification «tout ou rien», et nous ne vous disons pas POURQUOI votre connexion a échoué, à moins que ce soit parce que votre mot de passe a expiré (ce qui suppose que vous avez entré le mot de passe correct, mais il vous faudra simplement le changer et le saisir à nouveau avec une autre valeur 2FA pour y accéder. à l'application). Cette application a une base d'utilisateurs «captive» et le 2FA est requis par la politique, donc il n'est pas directement comparable aux sites «2FA-facultatifs» que vous avez mentionnés dans l'OP.
Fondamentalement, cependant, je suis d'accord avec les commentaires ci-dessus selon lesquels un "jeton à la demande" est plus sûr qu'un jeton "hors ligne" (comme RSA ou Google Authenticator) si vous souhaitez effectuer l'authentification en deux étapes, car l'utilisateur saura tout de suite que quelqu'un essaie d'accéder à son compte en raison des messages SMS inattendus, soit un "mauvais mot de passe", soit une chaîne valide à 2 facteurs dans le cas où l'attaquant ferait les choses correctement. Si le site envoie UNIQUEMENT la valeur SMS à 2 facteurs lors de la connexion réussie, il est inutile pour le point même que vous mentionnez, pour informer l'utilisateur AVANT que l'attaquant n'obtienne le mot de passe correct. L'utilisateur n'obtiendrait la chaîne à 2 facteurs valide que lorsque l'attaquant avait le bon mot de passe. À ce moment-là, il est probablement trop tard, et l'attaquant est déjà en train d'essayer les mêmes combinaisons de nom d'utilisateur + mot de passe sur d'autres sites qui n'ont pas 2FA et l'utilisateur devrait être sur un ordinateur et se démener pour changer chaque mot de passe sur chaque site ils l'utilisent, ce qui, s'ils réutilisent le même mot de passe partout, est pratiquement impossible car ils ne se souviendront pas de tous.
En fin de compte, c'est à la mise en œuvre individuelle de déterminer à quel point un 2FA peut être dommageable pour les autres sites utilisés par le même utilisateur. Dans le meilleur des cas, il s'agit d'une connexion tout-en-un comme je l'ai décrite, dans laquelle l'attaquant devrait également avoir son appareil 2FA ou "chaîne magique" (jeton d'initialisation pour quelque chose comme Google Authenticator), et s'il l'a aussi , l'utilisateur a déjà été bien compromis.