Se includo un servizio di password dimenticata, qual è il motivo dell'utilizzo di una password?

43

Ho implementato un servizio di password dimenticata nel modo seguente:

  1. L'utente accede alla pagina di accesso, fa clic su "Hai dimenticato la password?"
  2. L'utente viene presentato con un modulo che richiede il suo indirizzo email.
  3. L'e-mail viene inviata all'indirizzo specificato se nel database, con un collegamento che contiene una (presumibilmente) unica, lunga stringa generata casualmente, che viene anche memorizzata nel database insieme al tempo richiesto, consentendo un limite di tempo per essere impostato sul link (che è)
  4. L'utente fa clic sul link, viene convalidato, viene quindi richiesto di fornire una nuova password.

Questo è abbastanza standard, (anche se potrei cambiarne alcuni aspetti), ma mi ha fatto meraviglia - dal momento che le password buone vengono fornite / ricordate così raramente, perché non fare a meno della password e utilizzare invece il sistema Password dimenticata?

  1. L'utente accede alla pagina di accesso, compila l'indirizzo email (o forse un nome utente per essere più sicuro?)
  2. L'email viene inviata con il link. Link ha una validità molto limitata (< 5 min) di validità.
  3. Link clic dell'utente, sono in.

In entrambi gli scenari, la sicurezza della posta elettronica dell'utente, indipendentemente dal fatto che sia stata sniffata o interrotta, è la minaccia comune, ma nel secondo scenario:

  • Il link è valido per un tempo molto più breve.
  • È probabile che venga utilizzato più rapidamente (qualsiasi tipo di e-mail di convalida può essere lasciato in pace, ma se vuoi assolutamente accedere ora userai quel link quando lo avrai).
  • L'utente non può fornire una password scadente.
  • L'utente deve solo ricordare una password.
  • Un singolo account non può essere condiviso tra più persone (a meno che non condividano un indirizzo email).
  • Un attacco automatico deve penetrare nel sistema di posta elettronica e attendere un messaggio di posta elettronica, che probabilmente è più lungo dell'attesa che una password sia disattivata, meglio di bcrypt.

Mi sto solo chiedendo quali sono gli aspetti negativi? Posso vedere:

  • Irritazione da parte dell'utente, forse per dover aspettare un'email o accedere anche alla loro email
  • Probabilmente aprirà una nuova finestra del browser, che può essere irritante se si desidera organizzare le schede
  • Un utente potrebbe rendersi conto che è necessario proteggere il proprio account di posta elettronica con una password migliore, modificarlo e quindi bloccarsi: -)

È solo un pensiero.

Grazie a tutti coloro che hanno fornito una risposta, ci sono alcuni punti davvero interessanti (e sicuramente validi) che mi hanno davvero fatto riflettere e mi hanno dato più punti su cui indagare. D.W. ottiene il segno di spunta a causa del link fornito che fornisce ulteriori informazioni su questo particolare tipo di situazione, ma apprezzo molto tutte le risposte fornite.

    
posta Iain 17.03.2012 - 04:02
fonte

8 risposte

31

È ragionevole. Dal punto di vista della sicurezza, è ragionevole. Conosco persone che non annotano mai le loro password per i server web; usano solo il link "Ho dimenticato la mia password" ogni volta che vogliono accedere.

Da un punto di vista dell'usabilità, potrebbe essere un po 'sfortunato, perché l'email non è istantanea. Gli utenti dovranno fare clic su "Inviami un'e-mail", quindi attendere che venga visualizzata l'email, quindi fare clic sul collegamento nella propria e-mail. Sfortunatamente, se gli utenti devono aspettare qualche minuto (o anche solo 15 secondi) per mostrare l'e-mail, potrebbero annoiarsi, arrendersi e andare a fare qualcos'altro - o andare dal tuo concorrente.

Un ulteriore miglioramento. È possibile migliorare ulteriormente l'idea, per ridurre l'impatto sull'usabilità. Quando l'utente fa clic sul collegamento nell'e-mail, è possibile impostare un cookie sicuro persistente sul proprio browser. Il risultato è che quando l'utente fa clic sul link, si trova in esso e non sarà necessario eseguire nuovamente il rigamarole in futuro su questo computer (a meno che non cancellino le password). Nelle visite future dallo stesso computer, il sito li riconoscerà automaticamente e non sarà necessario fare clic su alcun collegamento o collegamento.

Questo non è appropriato / sufficiente per servizi di sicurezza elevata, come l'online banking, in cui è necessario impedire al compagno di stanza dell'utente di accedere al proprio account, ma potrebbe andar bene per la maggior parte dei siti Web.

Valutazione. Ecco un documento di ricerca che indaga su questo approccio e trova una maggiore protezione contro gli attacchi valutati nel documento:

Chris Karlof, J.D. Tygar e David Wagner. Cerimonie di sicurezza condizionata e studio di un'applicazione per l'autenticazione Web . NDSS 2009.

    
risposta data 17.03.2012 - 19:48
fonte
9

Questo sembra OpenID, ma peggio:

Sopporta i seguenti problemi da OpenID:

  • Immetti la password principale ogni volta. Se si utilizza un PC meno affidabile, è possibile accedere solo agli account con protezione bassa e non nella posta elettronica
  • Il tuo provider di posta elettronica rileva ogni accesso

Aggiunge svantaggi su OpenID:

  • È più lavoro effettuare il login
risposta data 17.03.2012 - 16:24
fonte
2

Questo mi ricorda gli schemi di autenticazione a 2 fattori, come i siti che scrivono un numero pin su un telefono cellulare pre-registrato per l'autenticazione.

Una cosa che non ho visto sopra è qual è l'aspetto positivo di questo? È sicuramente più lavoro per l'utente. Anche le email di conformazione della registrazione iniziale infastidiscono le persone. Stai andando a inquinare la mia casella di posta ogni volta che voglio accedere. Accedo al mio sistema bancario online almeno una volta al giorno ogni giorno (ti disconnettono dopo 10 minuti). Avrei migliaia di email di "accesso" da te. E a volte, la consegna delle email è lenta. Vuoi che aspetti ~ 5 minuti per accedere al tuo sito, perché GMail ci vuole un po 'di tempo. Il tempo di attività del tuo servizio è ora legato al tempo di attività dei servizi postali in tutto il mondo.

Il problema con questo schema è che non ti dà niente. La vasta maggioranza di persone usa la stessa password per la maggior parte dei servizi. Quindi mi costringi ad accedere alla mia email per ottenere un link che mi porti in un posto in cui avrei appena usato la password iniziale per iniziare. Introduce anche un punto debole, dato che è un nuovo posto per le intercettazioni. Al momento, posso usare il nostro segreto condiviso (la password) e connettermi tramite HTTPS. Un utente malintenzionato non impara nulla di chi sono, la mia password, ecc. Con il tuo schema, ogni login richiede che questo link di autenticazione sia trasmesso in chiaro.

C'è stato un numero di violazioni di alto profilo a seguito di reimpostazioni della password. Credo che il più recente sia stato quello di Sarah Palin (anche se la sua era attraverso domande di sicurezza in tutta onestà). Le reimpostazioni di password generalmente fanno schifo e non dovremmo incoraggiare più del loro uso.

    
risposta data 17.03.2012 - 17:56
fonte
2

Il tuo punto iniziale è azzeccato: la maggior parte delle "password dimenticate" sono un collegamento debole (o il link più debole ) nel processo di autenticazione.

Tuttavia, la tua idea di fare qualcosa come un protocollo "password dimenticata" per ogni accesso è in realtà simile al secondo fattore in molti schemi di autenticazione a 2 fattori, ad es. un token RSA. È già possibile ottenere "soft token" che generano identificativi di accesso nel software piuttosto che in un hardware dedicato. (In modo che tu possa eseguirlo sul tuo iPhone, ad esempio, piuttosto che portare un token duro in tasca tutto il giorno.)

Vedo solo 2 differenze concettuali tra quello schema e il tuo:

  1. Hai il 2 ° fattore ("qualcosa che hai") ma non il 1 ° ("qualcosa che conosci"). Quindi è ancora uno schema di autenticazione a fattore singolo.
  2. Stai generando identificatori su richiesta e inviandoli a un utente. Al contrario, un token RSA genera identificatori in modo costante indipendentemente dal fatto che vengano utilizzati o meno, e non vi è alcuna trasmissione per l'utente (ad eccezione del primo handoff fisico quando il dispositivo viene assegnato per la prima volta all'utente).

Entrambe queste differenze indeboliscono la sicurezza rispetto a un tipico schema a 2 fattori.

È potrebbe rendere lo schema più sicuro non utilizzando la posta elettronica non crittografata. È possibile inviare e-mail S / MIME o utilizzare del tutto un altro protocollo (tale Apple Push Notification System se il client ha un iPhone) con crittografia.

Nel complesso, è un esercizio di pensiero interessante, ma penso che sarebbe meglio servire rafforzando la difficoltà del protocollo "password dimenticata". In alternativa, a seconda del caso d'uso, è possibile rimuovere completamente la reimpostazione automatica della password e utilizzare una strategia che scoraggerà gli aggressori, ad esempio chiamando un numero di 800 per reimpostare le password dimenticate.

Non sono d'accordo con il poster che ha scritto, "dal punto di vista della sicurezza, è ragionevole." Penso che il tuo schema stia semplicemente scambiando un protocollo di sicurezza non sicuro per un altro protocollo di sicurezza non sicuro.

    
risposta data 18.03.2012 - 19:36
fonte
2

I sistemi di reimpostazione della password e-mail sono forti quanto il DNS. Mentre il sistema è bello, fa di più per evidenziare come i moduli di reimpostazione della password siano insicuri piuttosto che suggerire che possiamo usare le caselle di posta elettronica come strumenti di accesso singolo.

Questi moduli per la reimpostazione della password dovrebbero consentire solo di cambiare la password e dovrebbero sempre mostrare l'equivalente di "la tua password è stata modificata l'ultima volta su aaaa-mm-gg da abcd" e dopo l'accesso "hai effettuato l'ultimo accesso su aaaa-mm -dd da abcd "messaggio. In questo modo l'utente avrà almeno un indizio del fatto che il suo account è stato violato in quanto 1. sarà costretto a richiedere un reset e 2. potrebbe notare la data.

L'avvelenamento da cache è solo più difficile con le patch moderne ai resolver, ma non è impossibile e, data la natura distribuita del DNS e la sua dipendenza da UDP, puoi martellare i suoi piccoli spazi di randomizzazione tutto il giorno su migliaia di server fino a il tuo account e-mail raccoglie un accesso riuscito.

Quando riceviamo DNSsec, il sistema funzionerà correttamente, a condizione che annusare il login sul filo o leggerlo dalla posta in arrivo non sia un problema ...

    
risposta data 22.03.2012 - 10:58
fonte
1

Sì, dal punto di vista della sicurezza è ragionevole. (Anche se ha alcuni aspetti negativi che altri hanno sottolineato, come l'utente che deve sempre usare la password principale.)

Ma no, dal punto di vista pratico che rovinerebbe le cose. Molto - in modi che non possono essere minimizzati come "irritazione dell'utente".

Ad esempio, stai supponendo che le persone siano registrate nella loro gmail o così via tutto il tempo. È vero per alcuni utenti, forse anche per la maggior parte, ma non è vero per molti. Stai anche presumendo che le persone possano facilmente aprire link dalla loro posta elettronica allo stesso ambiente di quello in cui si trova il browser - non è vero per molti scenari mobili.

Il punto sottostante è questo: L'email e la navigazione sono sistemi separati. Non dovrebbero avere essere, certo, ma sono . Ciò significa fondamentalmente solo che esiste una aspettativa sottostante che sono separati. Pertanto, le cose nell'intero ecosistema IT sono progettate in un modo che si aspetta che questi sistemi siano separati. Anche se quello che stai facendo sarebbe un bel trucco, non puoi semplicemente progettare cose che ingannano le supposizioni che il resto della gente ha fatto. Se lo fai, ti imbatterai in tutti i tipi di problemi che non ti aspettavi.

    
risposta data 22.03.2012 - 08:51
fonte
0

Sembra molto simile a BrowserID , il cui scopo è di garantire che gli utenti siano gli indirizzi e-mail che rivendicano.

Ha il vantaggio di essere per lo più indolore, ( anche per gli sviluppatori ) ma lo svantaggio di una bassa adozione e in pratica nessun partner di federazione. (Non che abbiano effettivamente bisogno di loro perché funzioni, la mia comprensione è che è già completamente funzionante, con ogni e-mail.)

    
risposta data 21.03.2012 - 18:59
fonte
0

If I include a Forgot Password service, then what's the point of using a password?

Perché se un utente può accedere al proprio account con la propria password nota sa che un utente malintenzionato non ha utilizzato un link per la reimpostazione della password e ha modificato la password.

Il reset della password crea rumore. Nel log del sistema di destinazione (che a volte può essere visualizzato dall'utente) e nella casella di posta dell'utente per l'e-mail di reimpostazione della password, e idealmente una notifica via e-mail che una password è stata modificata sull'account.

Un utente malintenzionato che ha avuto accesso alla tua casella di posta elettronica potrebbe eliminare queste e-mail e utilizzare il link per modificare la password e il login. Tuttavia, se non è possibile accedere al sistema utilizzando la password memorizzata nel gestore password, è un'indicazione che il tuo account è stato compromesso in questo modo. Se hai semplicemente usato un link per reimpostare la password ogni volta che non lo saprai mai.

Ovviamente è solo una bandiera rossa, non una prova definitiva per conto proprio - dovresti chiedere agli amministratori del servizio di fornire i log di quando la tua password è stata ripristinata (o guardati se hanno questa funzionalità). È possibile confrontare questi registri con il proprio nel gestore password per scoprire quando è stata modificata l'ultima volta la password. Se non hai cambiato la tua password in questo momento, saprai che qualcosa non va.

Per questo motivo, la protezione dell'accesso con una password può garantire l'integrità del tuo account.

Non ero sicuro se questa risposta si adattava meglio alla domanda oa questa. Tuttavia, penso che sia rilevante per entrambi e vedo che l'altro potrebbe essere presto chiuso

    
risposta data 06.05.2015 - 12:19
fonte

Leggi altre domande sui tag