Question:
Do 2FA sites leak info by confirming a correct password guess?
Ben Sandeen
2016-06-03 23:26:48 UTC
view on stackexchange narkive permalink

Voici mon point de vue relativement simple sur le problème.

De nombreux sites Web vantent l'authentification multifactorielle (MFA) comme une amélioration considérable de la sécurité des comptes des utilisateurs, et elle peut être mise en œuvre correctement .

Cependant, il semble que certains sites ne demanderont à l'utilisateur son MFA que APRÈS avoir entré son mot de passe correctement. Je n'ai testé cela qu'avec gmail.com et outlook.com, mais étant donné qu'il s'agit de deux énormes fournisseurs de messagerie, j'imagine qu'ils ne sont que deux des nombreux auteurs.

La raison pour laquelle il s'agit (du moins à première vue) d'une telle faille de sécurité est que cela peut permettre aux pirates de deviner le mot de passe d'un utilisateur jusqu'à ce qu'on leur présente l'invite MFA, auquel point ils savent qu'ils ont le mot de passe de l'utilisateur. Il semble que les sites Web balaient cela en disant: "Mais comme l'utilisateur dispose d'une MFA, le pirate ne peut pas accéder à son compte."

Ce qu'ils semblent oublier, c'est que l'utilisateur a probablement des comptes sur d'autres sites Web, et utilise très probablement le même mot de passe pour ce site. Alors maintenant, le pirate peut avoir accès à tous les comptes de l'utilisateur sur le Web, dont beaucoup n'ont probablement pas MFA implémenté, laissant l'utilisateur complètement vulnérable aux attaques.

Y a-t-il des failles dans mon argument ou hypothèses qui en feraient un non-problème? Sinon, pourquoi de grandes entreprises comme Google et Microsoft ne résolvent-elles pas ce problème?

Les commentaires ne sont pas destinés à une discussion approfondie;cette conversation a été [déplacée vers le chat] (http://chat.stackexchange.com/rooms/40756/discussion-on-question-by-ben-sandeen-do-2fa-sites-leak-info-by-confirming-a-cor).
Pour les utilisateurs légèrement oublieux, il serait très compliqué de devoir fournir un code 2FA pour chaque tentative de mot de passe.
Pourquoi est-ce lié à 2FA?Quand je peux brutaliser votre mot de passe, et que l'on suppose que l'utilisateur réutilise le mot de passe sur tous ses comptes, cela le laisserait dans la même position, quel que soit le service sur lequel il a été brutalisé.Ou ai-je mal compris votre point, pourquoi est-ce un problème spécifique à 2FA?
@Zaibis Sans 2FA, vous vous attendez à être vulnérable au forçage brutal.Le point de vue du PO est que 2FA est censé résoudre ce problème ... mais apparemment, il ne le résout pas à 100%.
@MikeOunsworth: Mon commentaire a été prononcé du point de vue d'un service ne fournissant pas de 2FA.Imaginez, mon service ne fournit pas 2FA, cela n'a pas d'importance pour moi, si l'un de mes utilisateurs a été forcé sur un service avec ou sans 2FA, s'il a réutilisé son pw pour mon service également.Et d'autre part, sans aucun jugement: qui s'attendrait à ce que d'autres sites utilisant 2FA rendent mon propre site pas plus sécurisé, sans aucune action de moi-même?Je doute que cela semble raisonnable pour quiconque.
Cinq réponses:
Mike Ounsworth
2016-06-03 23:46:30 UTC
view on stackexchange narkive permalink

Si je comprends bien votre question, l'attaque que vous proposez consiste à utiliser des mots de passe par force brute contre un serveur comme celui-ci, puis une fois qu'il vous montre l'écran MFA, essayez ce mot de passe sur d'autres sites Web pour lesquels cet utilisateur a des comptes sur.

C'est une excellente question! Bonne trouvaille! Mais vous semblez oublier deux points:

  1. Ce n'est pas plus faible que de ne pas avoir d'authentification MFA, qui confirme également le mot de passe correct ... en vous laissant entrer.

  2. Aucun hacker sain d'esprit n'essaiera de forcer brutalement un mot de passe contre un serveur en direct, ce qui vous limite généralement à 5 suppositions par seconde. Ou dans le cas des grands fournisseurs comme GMail ou Outlook, ont des systèmes complexes de détection de fraude qui bloquent automatiquement les IP des activités suspectes. 99,999 ...% du temps, le forçage brutal des mots de passe est effectué contre les hachages de mots de passe volés directement dans la base de données sur laquelle vous pouvez deviner (m | b) illions de mots de passe par seconde.

  3. ol >

    Donc, même si je suis d'accord avec vous pour dire qu'il y a un risque de fuite de données ici, je pense que le risque est minime et largement compensé par l'inconvénient pour l'utilisateur d'avoir à tâtonner avec son porte-clés OTP juste pour découvrir qu'ils font une faute de frappe 'd leur mot de passe.


    Mettez à jour les commentaires d'adressage car c'est devenu une question brûlante sur le réseau:

    Il existe deux types d'authentification multifacteur (aka "2FA" ou "MFA") qui doivent vraiment être considérés séparément:

    1. Notification SMS ou Push 2FA : lorsque vous arrivez à la L'écran 2FA envoie un code à votre appareil que vous devez saisir. Pour de nombreux utilisateurs, c'est probablement le seul type de 2FA auquel vous avez été exposé. L'attaque décrite dans la question ne fonctionnera pas dans ce cas car l'utilisateur recevra un code 2FA qu'il n'a pas demandé et il saura que quelque chose ne va pas. De plus, faire l'étape 2FA indépendamment du fait que le mot de passe soit correct est en fait dangereux dans ce cas car:

      • Un attaquant pourrait potentiellement amener l'utilisateur à recevoir une énorme facture mensuelle de données / SMS, ou faire planter son appareil en remplissant sa mémoire de notifications.
      • Il indique également quels utilisateurs ont activé 2FA et lesquels sont des cibles faciles.
    2. 2FA "hors ligne" utilisant des jetons de générateur de code, des applications ou des cartes à puce / clés USB activées par clé publique (voir l'image au dessous de). C'est le genre de 2FA que le gouvernement, l'armée et les entreprises utilisent. Ainsi, bien qu'il soit moins visible pour les utilisateurs finaux, c'est de loin le type de 2FA le plus important en raison de la valeur des données qu'il protège. Dans ce cas, il n'y a pas de notification "intégrée" à l'utilisateur lorsqu'un attaquant accède à son écran 2FA. Et généralement, tous les utilisateurs doivent utiliser 2FA, il n'y a donc pas de mal à divulguer quel utilisateur a activé 2FA, car c'est tous.

    Imaginez ce scénario pour le cas 2: un VPN d'entreprise qui se trouve au-dessus de Windows Active Directory. Les VPN destinés au public sont martelés toute la journée par des devineurs de mot de passe, il n'y a donc rien d'inhabituel dans ces journaux. Mais si je peux faire confirmer le mot de passe de l'utilisateur par l'écran 2FA du VPN, alors je peux marcher jusqu'à leur ordinateur portable et me connecter avec la certitude que cela ne verrouille pas le compte Windows - ce qui serait certainement remarqué par l'utilisateur / le service informatique. La question indique correctement une faille de sécurité selon laquelle le modèle "est arrivé à l'écran 2FA et n'a rien entré / entré quelque chose de incorrect" devrait certainement être signalé comme plus grave que votre "nom d'utilisateur / mot de passe incorrect" standard et devrait informer l'utilisateur final de retirer leur mot de passe.

Merci pour la réponse, mais juste pour clarifier, je suis tout à fait conscient que MFA est incontestablement plus sécurisé pour les comptes qui en ont.: P Mon scrupule était que cela permet toujours aux crackers d'obtenir le mot de passe d'un utilisateur tout en donnant à l'utilisateur une tranquillité d'esprit (éventuellement fausse et trompeuse).
@BenSandeen Je pense qu'il vous manque que MFA informe le propriétaire légitime que quelqu'un a son mot de passe.Sans MFA, l'attaquant sait déjà qu'il a obtenu le mot de passe (car il s'est connecté) * et * il peut se connecter avec succès (le vrai dommage) * et * le propriétaire du compte ne sait pas que quelqu'un a son mot de passe.Avec MFA, l'attaquant sait qu'il a obtenu le mot de passe (pas pire), mais il est bloqué de se connecter (ça vaut le coup) et (voici le peu que je pense que vous manquez) * le propriétaire du compte est informé de la tentative de connexion * etsait que quelqu'un a deviné son mot de passe pour pouvoir le modifier (et tout autre).
@Schwern Le niveau de notification de l'utilisateur en cas d'échec d'une tentative d'authentification multifacteur varie probablement d'un service à l'autre.Je ne pense pas avoir jamais vu une notification comme celle-là (peut-être que je n'ai jamais bâclé une connexion MFA), quels sites Web offrent cela?Est-ce que tous les sites Web qui proposent une MFA notifient correctement un utilisateur en cas d'échec de la tentative MFA?
@MikeOunsworth Bon point, je pensais au courrier électronique et au texte où la notification est intégrée.J'ai oublié les authentificateurs mobiles.Ce serait au site.
@Schwern Ah, vous parlez du style de code SMS de MFA.C'est suffisant;si vous recevez un code aléatoire auquel vous ne vous attendiez pas, il est temps de changer votre mot de passe.Personnellement, je suis beaucoup plus préoccupé par le type [OTP token fob] (https://en.wikipedia.org/wiki/Security_token).SMS 2FA est populaire pour les e-mails des utilisateurs finaux et autres, mais tout administrateur responsable de toutes les données de grande valeur telles que les données gouvernementales, d'entreprise, bancaires, de santé, etc. utilisera un porte-clés de sécurité.Je me demande si ces systèmes vous informent en cas d'échec d'une tentative OTP.Excellente question!
@MikeOunsworth Exactement.J'ai reçu SMS 2FA pour m'informer que j'étais compromis.
@DavidL.Clairement, si vous utilisez un SMS ou un 2FA basé sur une application, vous recevrez une notification, c'est évident.La question était de savoir si les méthodes 2FA hors ligne telles que la génération de codes physiques ou les cartes à puce PKI utilisées par les départements gouvernementaux / militaires ont une fonction pour avertir l'utilisateur en cas de réussite d'une tentative un / pw.
Peut-être qu'un système possible serait celui qui, en tapant un mot de passe, vous amène à la page 2FA, mais n'envoie le code que si le mot de passe est correct.Mais cela pourrait devenir assez ennuyeux si vous étiez certain de saisir correctement votre mot de passe, mais que vous ne receviez pas de message texte ... Il serait alors plus difficile d'en établir la cause (par exemple: mot de passe incorrect ou problème d'envoi de codes).
@BenSandeen "_Mon scrupule était que cela permet toujours aux crackers d'obtenir le mot de passe d'un utilisateur_" Mais si le but est d'utiliser l'utilisateur / passer sur d'autres sites (sans 2FA), alors les crackers auraient simplement pu se rendre sur ces autres sites dans le premierplace (les commentaires de Mike sur la limitation du débit à part).Déclencher un 2FA (sur les sites qui l'utilisent) pour des mots de passe incorrects / mal saisis n'arrêtera pas cela.
J'adore cette question!Quel grand débat!@TripeHound, un cas d'utilisation intéressant pour cette attaque serait une plate-forme d'entreprise 2FA liée à Active Directory.Disons que j'avais une courte liste de mots de passe potentiels pour cet utilisateur, je pourrais les tester par rapport à la plate-forme Web 2FA jusqu'à ce que je connaisse le bon, puis je me dirige vers leur bureau et je me connecte."qui nécessite un déverrouillage informatique.
@MikeOunsworth Mais la plate-forme Web ne devrait-elle pas exécuter les mots de passe via AD, et déclencherait donc toujours le verrouillage (je ne suis pas un expert AD, je demande juste).
@TripeHound Peut-être, mais comme les VPN exposés au public sont martelés toute la journée avec des tentatives de force brute par mot de passe (demandez à tout administrateur Linux combien de Go de journaux SSH sont générés chaque jour par des tentatives de mot de passe par force brute), comment se fait-il que mon compte Windows ne soit past constamment verrouillé?
Re: code / OTP type 2FA, il serait probablement préférable de demander ce facteur * d'abord *, avant le mot de passe.Cependant, cela n'est pas possible si seul un sous-ensemble d'utilisateurs a activé 2FA, car vous ne souhaitez pas divulguer l'ensemble des utilisateurs les plus vulnérables.
@otus Je ne peux pas croire que je n'y ai pas pensé.Aller à l'écran 2FA indépendamment des fuites quels utilisateurs ont activé 2FA et quelles sont des cibles faciles.
Pourquoi y a-t-il tous ces gadgets RSA SecurID?
@cornelinux Parce que c'était la meilleure photo que j'ai pu trouver sur Google qui contenait plusieurs types d'authentificateur.Je serais heureux d'utiliser une image différente s'il y en a une meilleure.
Benoit Esnard
2016-06-03 23:45:39 UTC
view on stackexchange narkive permalink

Je pense que ce n'est pas un problème. L'authentification multifacteur ne consiste pas à empêcher quelqu'un de deviner votre mot de passe, mais à empêcher quiconque de se connecter à vos comptes.

Jeff Meden
2016-06-03 23:59:02 UTC
view on stackexchange narkive permalink

Alors maintenant, le pirate peut avoir accès à tous les comptes de l'utilisateur sur le Web, dont beaucoup n'ont probablement pas MFA implémenté, laissant l'utilisateur complètement vulnérable aux attaques.

Un attaquant n'essaiera pas de deviner un mot de passe sur Google qu'il n'essaiera pas non plus pour la banque ou Facebook ou autre. Ce n'est pas parce qu'il a maintenant été divulgué qu'il s'agit d'un mot de passe valide que l'attaquant n'est pas plus près de compromettre d'autres comptes. Le mot de passe deviné devait provenir d'un berceau de suppositions à haute probabilité, car une véritable force brute ne fonctionnera jamais sur un système en direct.

Si vous pouviez démontrer que les sites utilisant 2FA ont de pires algorithmes anti-devinettes (je Je parierais qu'ils sont au moins aussi bons sinon meilleurs) par rapport aux sites qui n'offrent pas 2FA, votre point serait valable car un attaquant pourrait abuser de l'un et pivoter vers l'autre. En réalité, le contraire est probablement vrai, les sites qui investissent dans 2FA investissent également dans des systèmes anti-devinettes en même temps.

Leigh Brenecki
2016-06-04 12:28:08 UTC
view on stackexchange narkive permalink

En théorie, oui, c'est une possibilité (à condition que le site mettant en œuvre 2FA ne dispose d'aucune limitation de débit ou détection de fraude d'aucune sorte, comme le soulignent les autres réponses).

En pratique , il y a aussi le facteur de convivialité à considérer. Imaginez que vous ayez créé un formulaire de connexion qui invite un utilisateur à entrer 2FA à chaque tentative de connexion, indiquant uniquement à l'utilisateur que la tentative a échoué après l'étape 2FA et ne lui disant jamais si c'était le mot de passe ou le jeton 2FA qui était invalide.

2FA est déjà une énorme douleur dans le cou pour commencer - chaque fois que je me connecte, je dois non seulement taper mon nom d'utilisateur et mon mot de passe, mais aussi trouver mon téléphone (qui peut être dans une autre pièce), le déverrouiller, allez sur mon écran d'accueil, trouvez mon application 2FA et trouvez le bon site dans la liste. Ensuite, le code est inévitablement cinq secondes après l'expiration, donc je dois soit attendre qu'un nouveau apparaisse, soit essayer de le saisir très rapidement avant qu'il n'expire.

(systèmes 2FA qui utiliser des SMS ou des notifications push est préférable à cet égard, car ils apparaissent sur ma smartwatch - ou, dans le cas d'un utilisateur qui ne possède pas de smartwatch, leur écran de verrouillage. Dans le schéma que nous envisageons, cependant, ce serait permettre à un utilisateur de m'ennuyer avec des notifications / SMS sans fin tant qu'il connaît mon nom d'utilisateur, car il n'a pas besoin d'obtenir mon mot de passe pour déclencher une tentative 2FA. J'ai également entendu dire que dans certains pays, les opérateurs de téléphonie vous facturent pour recevoir des SMS, donc dans ces endroits, ce genre de chose serait encore pire pour les utilisateurs.)

Si vous obligez vos utilisateurs à répéter tout cela deux fois lorsqu'ils se trompent de mot de passe, l'ensemble du processus deviendra beaucoup plus pénible, et vous pourriez même vous retrouver avec moins de personnes utilisant 2FA, ce qui rendra vos utilisateurs moins sécurisés o n moyenne.

Benjamin_FTW
2016-06-07 02:25:42 UTC
view on stackexchange narkive permalink

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.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...