Login senza password tramite e-mail - considerazioni di sicurezza

16

Sto proponendo l'uso di un sistema di login che invia un token di accesso monouso (con elevata entropia) via e-mail all'utente. Dopo aver utilizzato il token, l'utente riceve un altro token via e-mail e il token precedente viene invalidato. Il nuovo token viene inviato con informazioni sull'utilizzo dell'ultimo token, quindi se qualcuno accede a un token in qualche modo l'utente lo saprà.

L'implementazione che ho ricevuto ha ricevuto ottimi riscontri per quanto riguarda UX, ma mi trovo di fronte a molte pressioni da parte di non-tech per "dimostrare" che questo è sicuro. Inoltre, il nostro team di marketing è preoccupato che questo sia difficile da insegnare ai clienti.

Oltre alla durata dei token di accesso monouso (che possono durare un paio di settimane), cosa lo rende diverso dalla funzionalità di password dimenticata? Inoltre - ed è qui che questa domanda non ha la stessa risposta di altri che sono relativamente simili qui - ci sono aziende rispettabili che hanno implementato uno schema di login come questo, e ci sono documenti che puoi raccomandare che io indico per provare la sicurezza di questo sistema?

    
posta James Kassemi 14.03.2014 - 02:24
fonte

2 risposte

9

Hai ragione che la sicurezza del tuo sistema è simile a quella della maggior parte dei sistemi di reimpostazione della password. È sicuro come gli indirizzi e-mail - né più né meno. Tieni presente che alcuni processi di reimpostazione della password fanno domande aggiuntive (ad esempio, qual è il nome del tuo primo animale domestico?) Che forniscono una sicurezza aggiuntiva.

Avrai difficoltà a persuadere un non-tecnico della sicurezza di questo. Un approccio sarebbe quello di fare un modello di minaccia del tuo sistema e mostrarglielo. Dubito che lo leggeranno comunque. Il fatto è che la sicurezza del computer è lungi dall'essere perfetta, quindi devi davvero pensare a cosa succede se va male. Se hai una violazione, può sembrare molto più difficile giustificare il tuo sistema non standard. C'è molto da dire per fare lo stesso di altri.

Ho visto sistemi live che prendono il tuo approccio, tra cui Doodle e RT. Alcuni sondaggi lo fanno anche.

Sono curioso di sapere come resettare il token dopo che è stato usato. Qual è stato il tuo pensiero?

Una minaccia di cui tenere conto sono le barre di ricerca del browser. Se un utente li ha installati, tutti i siti Web visitati potrebbero essere inviati al motore di ricerca. Questo potrebbe finire con l'aggiunta di http://yoursite/token/ all'indice di Google, che chiaramente non è desiderabile. Il tuo approccio ai token monouso in realtà impedisce questo. Un altro approccio consiste nell'utilizzare sempre meta tag "senza indice" o robots.txt.

Ciò che hai creato qui è ciò che chiamerei "single sign-on" dei poveri. Potresti essere consapevole del fatto che esistono alcuni standard per il web single sign-on, tra cui OpenID, OAuth, Mozilla Persona e altro. Tuttavia, nessuno di questi ha guadagnato una massa critica.

    
risposta data 14.03.2014 - 03:31
fonte
6

Sì, sono affascinato da questo come un possibile meccanismo di autenticazione senza password. E come tu & altri hanno già menzionato, offre la stessa sicurezza della maggior parte dei sistemi di password dimenticate ... sebbene i migliori do richiedano di rispondere a qualche tipo di domanda di sicurezza inoltre, rendendolo più simile a due fattori.

Ad ogni modo, il sito ormai inattivo Passwordless.org ha offerto un buon contorno ...

Here’s how passwordless authentication works in more detail:

  1. Instead of asking users for a password when they try to log in to your app or website, just ask them for their username (or email or mobile phone number).
  2. Create a temporary authorization code on the backend server and store it in your database.
  3. Send the user an email or SMS with a link that contains the code.
  4. The user clicks the link which opens your app or website and sends the authorization code to your server.
  5. On your backend server, verify that the code is valid and exchange it for a long-lived token, which is stored in your database and sent back to be stored on the client device as well.
  6. The user is now logged in, and doesn’t have to repeat this process again until their token expires or they want to authenticate on a new device.

If every site on the internet did authentication this way, the response to Heartbleed could have been swift and decisive. Instead, we’re faced with the fact that millions of stolen passwords will never be changed.

Ci sono aziende rispettate che hanno implementato uno schema di login come questo, e ci sono documenti che puoi raccomandare che io indico per dimostrare la sicurezza di questo sistema?

So che Medium.com ha recentemente guadagnato un po 'di stampa per aver richiesto solo un indirizzo email per l'autenticazione. Alcuni articoli ...

E Yahoo fai una cosa simile fornendo password monouso via SMS:

Per quanto riguarda i documenti di ricerca, non ne sono ancora sicuro, ma mi piacerebbe sentirne parlare.

    
risposta data 16.07.2015 - 08:24
fonte

Leggi altre domande sui tag