Domanda:
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

Ecco il mio punto di vista relativamente laico del problema.

Molti siti web pubblicizzano l'autenticazione a più fattori (MFA) come un enorme impulso alla sicurezza degli account degli utenti e può essere se implementata correttamente .

Tuttavia, sembra che alcuni siti richiedano all'utente solo il loro MFA DOPO che hanno immesso correttamente la password. L'ho testato solo con gmail.com e outlook.com, ma dato che si tratta di due enormi provider di posta elettronica, immagino che siano solo due dei tanti autori.

Il motivo per cui questo è (almeno in apparenza) un difetto di sicurezza così enorme è che può consentire ai cracker di indovinare la password di un utente fino a quando non viene loro presentata la richiesta di MFA, a quel punto sanno di avere la password dell'utente. Sembra che i siti web lo spazzino via dicendo: "Ma poiché l'utente ha MFA, il cracker non può accedere al proprio account."

Quello che sembrano dimenticare è che l'utente probabilmente ha account su altri siti Web e molto probabilmente utilizza la stessa password per quel sito. Quindi ora il cracker può avere accesso a tutti gli account dell'utente sul Web, molti dei quali probabilmente non hanno implementato l'MFA, lasciando l'utente completamente vulnerabile agli attacchi.

Ci sono difetti nel mio argomento o presupposti che renderebbero questo un non problema? In caso contrario, perché grandi aziende come Google e Microsoft non risolvono questo problema?

I commenti non sono per discussioni estese;questa conversazione è stata [spostata in chat] (http://chat.stackexchange.com/rooms/40756/discussion-on-question-by-ben-sandeen-do-2fa-sites-leak-info-by-confirming-a-cor).
Per gli utenti un po 'smemorati sarebbe una seccatura dover fornire un codice 2FA per ogni tentativo di password.
Perché questo è 2FA correlato?Quando posso forzare la tua password e il presupposto è che l'utente riutilizza la password su tutti i suoi account, questo lo lascerebbe nella stessa posizione, indipendentemente dal servizio che è stato forzato.O sto fraintendendo il tuo punto, perché questo è un problema specifico di 2FA?
@Zaibis Senza 2FA ti aspetti di essere vulnerabile alla forza bruta.Il punto dell'OP è che 2FA dovrebbe risolvere quel problema ... ma a quanto pare non lo risolve al 100%.
@MikeOunsworth: Il mio commento è stato pronunciato dal punto di vista di un servizio che non fornisce 2FA.Immagina, il mio servizio non fornisce 2FA, non importa per me, se uno dei miei utenti è stato forzato su un servizio con o senza 2FA, se ha riutilizzato il suo pw anche per il mio servizio.E d'altra parte, senza alcun giudizio: chi si aspetterebbe che altri siti che utilizzano 2FA rendano il mio sito non più sicuro, senza alcuna azione da parte mia?Dubito che suona ragionevole a chiunque.
Cinque risposte:
Mike Ounsworth
2016-06-03 23:46:30 UTC
view on stackexchange narkive permalink

Se capisco bene la tua domanda, l'attacco che stai proponendo è di forzare le password contro un server come questo, quindi una volta che ti mostra la schermata MFA, prova quella password su altri siti web che questo utente ha account su.

Questa è un'ottima domanda! Buona scoperta! Ma sembra che tu stia trascurando due punti:

  1. Questo non è più debole che non avere MFA, che conferma anche la password corretta ... permettendoti di entrare.

  2. Nessun hacker sano di mente proverà a forzare brutemente una password contro un server live che in genere ti limita a 5 tentativi al secondo. Oppure, nel caso dei grandi provider come GMail o Outlook, dispongono di complessi sistemi di rilevamento delle frodi che bloccano automaticamente l'IP di attività sospette. 99,999 ...% delle volte, la forzatura bruta delle password viene eseguita contro gli hash delle password rubati direttamente dal database su cui è possibile indovinare (m | b) illioni di password al secondo.

  3. ol >

    Quindi, anche se sono d'accordo con te sul fatto che qui c'è il potenziale per una perdita di dati, penso che il rischio sia minimo e di gran lunga superato dall'inconveniente dell'utente di dover armeggiare con il proprio portachiavi OTP solo per scoprire che sbagliano la loro password.


    Aggiorna i commenti di indirizzamento poiché questa è diventata una domanda di rete calda:

    Esistono due tipi di autenticazione a più fattori (noto anche come "2FA" o "MFA") a cui bisogna davvero pensare separatamente:

    1. SMS o Push Notification 2FA : quando arrivi al Schermata 2FA invia un codice al tuo dispositivo che devi digitare. Per molti utenti, questo è probabilmente l'unico tipo di 2FA a cui sei stato esposto. L'attacco descritto nella domanda non funzionerà in questo caso perché l'utente riceverà un codice 2FA che non ha richiesto e saprà che c'è qualcosa che non va. Inoltre, eseguire il passaggio 2FA indipendentemente dal fatto che la password sia corretta è effettivamente dannoso in questo caso perché:

      • Un utente malintenzionato potrebbe potenzialmente far sì che l'utente riceva un'enorme bolletta mensile di dati / SMS o che il dispositivo si blocchi riempiendone la memoria di notifiche.
      • Indica anche quali utenti hanno abilitato 2FA e quali sono obiettivi facili.
    2. 2FA "offline" utilizzando token di generazione di codice, app o smart card / chiavette USB abilitate per chiave pubblica (vedi immagine sotto). Questo è il tipo di 2FA utilizzato dal governo, dai militari e dalle società. Quindi, sebbene sia meno visibile agli utenti finali, è di gran lunga il tipo più importante di 2FA a causa del valore dei dati che protegge. In questo caso, non vi è alcuna notifica "incorporata" per l'utente quando un utente malintenzionato raggiunge la propria schermata 2FA. E di solito tutti gli utenti sono tenuti a utilizzare 2FA, quindi non c'è nulla di male nel trapelare quale utente ha 2FA abilitato, perché è tutti loro.

    Immagina questo scenario per il caso 2: una VPN aziendale che si trova sopra Active Directory di Windows. Le VPN rivolte al pubblico vengono martellate tutto il giorno da chi indovina la password, quindi non c'è nulla di insolito in quei registri. Ma se riesco a far confermare la password dell'utente dalla schermata 2FA della VPN, posso andare al laptop e accedere con la certezza che non bloccherà l'account Windows, cosa che verrebbe sicuramente notata dall'utente / IT. La domanda indica correttamente una falla di sicurezza che il modello "è arrivato alla schermata 2FA e non ha inserito nulla / inserito qualcosa di sbagliato" dovrebbe certamente essere contrassegnato come più grave del tuo "nome utente / password errato" standard e dovrebbe notificare all'utente finale di ritirare la password.

Grazie per la risposta, ma solo per chiarire, sono completamente consapevole che MFA è incontrovertibilmente più sicuro per gli account che lo possiedono.: P Il mio scrupolo era che consente ancora ai cracker di ottenere la password di un utente e allo stesso tempo offre a un utente una tranquillità (possibilmente falsa e fuorviante)
@BenSandeen Penso che ti manchi che MFA informi il legittimo proprietario che qualcuno ha la sua password.Senza MFA, l'attaccante sa già di avere la password (perché ha effettuato l'accesso) * e * può accedere con successo (il vero danno) * e * il proprietario dell'account non sa che qualcuno ha la sua password.Con MFA l'attaccante sa di aver ottenuto la password (non peggiore), ma gli viene impedito di accedere (ne vale la pena) e (ecco il bit che penso ti manchi) * il proprietario dell'account viene informato del tentativo di accesso * esa che qualcuno ha indovinato la propria password in modo che possa cambiarla (e qualsiasi altro).
@Schwern Il grado di notifica dell'utente quando si verifica un tentativo MFA non riuscito varia probabilmente da servizio a servizio.Non credo di aver mai visto una notifica del genere (forse non ho mai sbagliato un accesso MFA), quali siti web lo offrono?Tutti i siti Web che offrono MFA fanno un buon lavoro di notifica a un utente quando si verifica un tentativo MFA non riuscito?
@MikeOunsworth Buon punto, stavo pensando all'email e al testo in cui è integrata la notifica.Ho dimenticato gli autenticatori mobili.Dipende dal sito.
@Schwern Ah, stai parlando dello stile del codice SMS di MFA.Giusto;se ti viene inviato un messaggio di codice casuale che non ti aspettavi, è ora di cambiare la password.Personalmente sono molto più preoccupato per il tipo [token fob OTP] (https://en.wikipedia.org/wiki/Security_token).SMS 2FA è popolare per la posta elettronica degli utenti finali e altro, ma qualsiasi amministratore responsabile di dati di alto valore come dati governativi, aziendali, bancari, sanitari, ecc.Mi chiedo se quei sistemi ti notifichino se c'è un tentativo OTP fallito.Ottima domanda!
@MikeOunsworth Esattamente.Ho ricevuto SMS 2FA che mi informano che sono stato compromesso.
@DavidL.Chiaramente se stai usando un SMS o un 2FA basato su app, riceverai una notifica, è ovvio.La domanda era se i metodi 2FA offline come i fob che generano codice fisico o le chip card PKI utilizzate dai dipartimenti governativi / militari hanno una funzione per avvisare l'utente quando c'è un tentativo di un / pw riuscito.
Forse un possibile sistema potrebbe essere quello che, digitando una password qualsiasi, ti porta alla pagina 2FA, ma invia il codice solo se la password è corretta.Ma ciò potrebbe diventare piuttosto fastidioso se fossi sicuro di aver digitato correttamente la tua password, ma non stavi ricevendo un messaggio di testo ... Quindi sarebbe più difficile stabilire la causa (ad esempio: password errata o problema di invio di codici).
@BenSandeen "_La mia scocciatura era che consente ancora ai cracker di ottenere la password di un utente_" Ma se l'obiettivo è quello di utilizzare l'utente / pass su altri siti (senza 2FA), allora i cracker avrebbero potuto semplicemente andare su quegli altri siti nel primoluogo (i commenti di Mike sulla limitazione della velocità a parte).L'attivazione di un 2FA (sui siti che lo utilizzano) per password errate / digitate in modo errato non lo fermerà.
Amo questa domanda!Che grande dibattito!@TripeHound un caso d'uso interessante per questo attacco sarebbe una piattaforma 2FA aziendale collegata ad Active Directory.Supponiamo che avessi un breve elenco di potenziali password per questo utente, potrei testarle sulla piattaforma 2FA rivolta al Web fino a quando non conosco quella giusta, quindi andare sul desktop ed accedere. Questo aggira il blocco dei 3 tentativi di AD"che richiede l'IT per sbloccarsi.
@MikeOunsworth Ma la piattaforma rivolta al Web non dovrebbe eseguire le password tramite AD, e quindi attivare comunque il blocco (non sono un esperto di AD, sto solo chiedendo).
@TripeHound Forse, ma dal momento che le VPN rivolte al pubblico vengono martellate tutto il giorno con tentativi di forza bruta della password (chiedi a qualsiasi amministratore di Linux quanti GB di log SSH vengono generati ogni giorno da tentativi di password di forza bruta), come mai il mio account Windows non lo èt costantemente bloccato?
Ri: codice / OTP tipo 2FA, probabilmente sarebbe meglio chiedere quel fattore * prima *, prima della password.Tuttavia, ciò non è possibile se solo un sottoinsieme di utenti ha 2FA abilitato, poiché non si desidera far trapelare l'insieme di utenti più vulnerabili.
@otus Non posso credere di non averci pensato.Andando alla schermata 2FA indipendentemente dalle perdite che gli utenti hanno abilitato 2FA e quali sono obiettivi facili.
Perché ci sono tutti questi gadget RSA SecurID?
@cornelinux Perché era la migliore immagine che ho trovato su Google con più tipi di autenticatori.Sarei felice di usare un'immagine diversa se ce n'è una migliore.
Benoit Esnard
2016-06-03 23:45:39 UTC
view on stackexchange narkive permalink

Penso che questo non sia un problema. L'autenticazione a più fattori non serve a impedire a qualcuno di indovinare la tua password, ma a impedire a chiunque di accedere ai tuoi account.

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

Quindi ora il cracker potrebbe avere accesso a tutti gli account utente sul Web, molti dei quali probabilmente non hanno implementato l'MFA, lasciando l'utente completamente vulnerabile agli attacchi.

Un malintenzionato non proverà a indovinare una password su Google che non proverà anche per la banca o Facebook o simili. Solo perché ora è stato rivelato che si tratta di una password valida, l'attaccante non è più vicino a compromettere altri account. La password indovinata doveva provenire da una culla di ipotesi ad alta probabilità, perché una vera forza bruta non funzionerà mai su un sistema live.

Se potessi dimostrare che i siti che utilizzano 2FA hanno algoritmi anti-supposizione peggiori (I scommetterei che sono almeno altrettanto buoni se non migliori) rispetto ai siti che non offrono 2FA, il tuo punto sarebbe valido poiché un utente malintenzionato potrebbe abusare di uno e ruotare verso l'altro. In realtà è probabile che sia vero il contrario, i siti che investono in 2FA stanno anche investendo in sistemi anti-indovinare allo stesso tempo.

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

In teoria, sì, questa è una possibilità (a condizione che il sito che implementa 2FA non abbia limiti di velocità o rilevamento di frodi di alcun tipo, come sottolineato dalle altre risposte).

In pratica , c'è anche il fattore di usabilità a cui pensare. Immagina di aver creato un modulo di accesso che richiede a un utente 2FA a ogni tentativo di accesso, comunicando all'utente che il tentativo non è andato a buon fine dopo il passaggio 2FA e senza mai dirgli se era la password o il token 2FA non valido.

2FA è già un enorme dolore al collo per cominciare: ogni volta che effettuo l'accesso, non devo solo digitare il mio nome utente e la password, ma trovare il mio telefono (che potrebbe essere in un'altra stanza), sbloccarlo, vai alla mia schermata iniziale, trova la mia app 2FA e trova il sito giusto nell'elenco. Quindi, il codice è inevitabilmente a cinque secondi dalla scadenza, quindi devo aspettare che ne venga fuori uno nuovo o provare a digitarlo molto velocemente prima che scada.

(sistemi 2FA che utilizzare SMS o notifiche push sono migliori a questo proposito, perché arrivano sul mio smartwatch o, nel caso di un utente che non possiede uno smartwatch, il loro lockscreen. Nello schema che stiamo considerando, però, sarebbe consentire a un utente di infastidirmi con notifiche / SMS infiniti purché conoscano il mio nome utente, perché non devono ottenere la password corretta per attivare un tentativo di 2FA. Ho anche sentito che in alcuni paesi gli operatori telefonici ti fanno pagare per ricevere messaggi SMS, quindi in quei posti questo genere di cose sarebbe anche peggio per gli utenti.)

Se fai ripetere ai tuoi utenti tutto questo due volte quando sbagliano la password, l'intero processo diventerà molto più doloroso e di conseguenza potresti anche ritrovarti con meno persone che utilizzano 2FA, rendendo i tuoi utenti meno sicuri o n nella media.

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

Per i sistemi in cui 2FA / MFA è "opzionale" come Gmail o Outlook.com, il servizio deve bilanciare il fattore fastidioso dell'utilizzo del metodo a due fattori e la sicurezza che offre al loro sito . In un mondo perfetto, gli utenti avrebbero password complesse e univoche per ogni sito e utilizzerebbero sempre 2FA quando disponibili, ma nel mondo reale hai ragione: gli utenti avranno la stessa password su una dozzina di siti e un fattore 2 meccanismo che non blocca automaticamente l'account e avvisa l'utente dopo alcuni tentativi di accesso non validi in una finestra relativamente piccola potrebbe portare a una situazione in cui l'attaccante tenta pazientemente alcune probabili ipotesi fino a quando non arriva al prompt 2FA, a quel punto sapere di avere una combinazione nome utente + password valida. Con tutti i database di password altamente pubblici compromessi su siti di grandi dimensioni (come LinkedIn, tra molti altri) che utilizzano il tuo indirizzo e-mail come accesso, un utente malintenzionato può indovinare logicamente la password di un utente in modo relativamente semplice se l'utente non si è mai preoccupato di aggiornare altri siti , ma solo quello "rotto".

Per le app critiche per la sicurezza (come una delle tante su cui lavoro), il prompt di accesso richiede nome utente, password e valore a due fattori contemporaneamente ed è un'autenticazione "tutto o niente", e non ti diciamo PERCHÉ il tuo accesso non è riuscito, a meno che non sia perché la tua password è scaduta (il che presuppone che tu abbia inserito la password corretta, ma ti richiederà solo di cambiarla e inserirla di nuovo con un altro valore 2FA per ottenere effettivamente l'accesso all'applicazione). Quell'applicazione ha una base di utenti "captive" e il 2FA è richiesto dalla politica, quindi non è direttamente paragonabile ai siti "2FA-optional" che hai menzionato nell'OP.

Fondamentalmente, tuttavia, sono d'accordo con i commenti precedenti sul fatto che un "token-on-demand" è più sicuro di un token "offline" (come RSA o Google Authenticator) se hai intenzione di eseguire l'autenticazione in due passaggi perché l'utente saprà subito che qualcuno sta tentando di accedere al proprio account in virtù dei messaggi SMS inaspettati, o "password errata" o una stringa di 2 fattori valida nel caso in cui l'aggressore lo indichi correttamente. Se il sito invia SOLO il valore SMS a 2 fattori in caso di accesso riuscito, è inutile per il punto che hai menzionato, per far sapere all'utente PRIMA che l'attaccante ottenga effettivamente la password corretta. L'utente otterrebbe la stringa a 2 fattori valida solo quando l'aggressore aveva la password corretta. A quel punto, probabilmente è troppo tardi e l'aggressore sta già provando le stesse combinazioni di nome utente + password su altri siti che non hanno 2FA e l'utente dovrebbe essere al computer e affrettarsi per cambiare ogni password su ogni sito lo usano su, che se stanno riutilizzando la stessa password ovunque, è praticamente impossibile perché non le ricorderanno tutte.

In definitiva, dipende dall'implementazione individuale fino a quanto può essere dannoso un 2FA per altri siti utilizzati dallo stesso utente. Nel migliore dei casi, è un accesso all-in-one come ho descritto, in cui l'attaccante dovrebbe in qualche modo avere anche il proprio dispositivo 2FA o "stringa magica" (token di inizializzazione per qualcosa come Google Authenticator), e se lo hanno anche loro , l'utente è già stato ben compromesso.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...