Autenticazione senza password nelle app Web - Quanto è sicuro?

5

Ho letto molto tempo fa questo articolo su come potrebbe funzionare un Password- meno Sistema di autenticazione, che mi sembrava un'ottima idea. L'ho persino creato in una piccola e divertente piccola applicazione per divertimento.

Per citare l'articolo, ecco come funziona:

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.

Quindi cosa ne pensate voi ragazzi? È davvero un'alternativa realistica all'autenticazione basata su password?

Modifica

Come è stato affermato, il furto del telefono consente di accedere alle e-mail e agli SMS, il che comprometterebbe questo sistema. Ma sarebbe anche il caso dei sistemi basati su password, in cui è possibile fare clic sul link "Password dimenticata" per ricevere l'e-mail per modificare la password e potrebbe anche aver installato Google Authenticator. Quindi, a mio parere, il furto del telefono è un punto debole per la ENTRAMBI di password e sistemi senza password.

Forse la domanda avrebbe dovuto essere:

Do password-less authentication add risk scenarios that aren't present in password-based authentication systems?

    
posta Enrique Moreno Tent 18.04.2015 - 19:07
fonte

2 risposte

4

Come sempre, la scelta dello schema di autenticazione dipende principalmente da cosa devi proteggere e dal tipo di pubblico che riceverai.

Il link "Ho dimenticato la password" menzionato nei commenti è un buon esempio. In passato, per determinati siti Web non importanti, ho utilizzato tali collegamenti su base sistematica per aprire una sessione:

  1. Fai clic sul link "Ho dimenticato la password"
  2. Ottieni l'e-mail che consente di reimpostare la password,
  3. Se effettivamente richiesto, reimposta la password su una stringa casuale lunga.

In questo modo, la sicurezza dell'accesso a questo sito dipendeva dalla sicurezza della mia casella di posta. Non avevo alcuna password da ricordare e la password registrata nel database di questo sito era unica.

Questa procedura sembra una versione sporca della procedura che hai presente nella tua domanda.

Per quanto riguarda la sicurezza, funziona a lungo:

  • La fonte di autenticazione (email, telefono, ...) non è compromessa,
  • Il token longevo non è compromesso

Per un sito Web non importante, quando tale schema di autenticazione è correttamente implementato, potrebbe essere più sicuro che consentire agli utenti di utilizzare una password stupida già utilizzata su una dozzina di altri siti Web.

Per un sito web che si occupa di dati sensibili, l'utente deve essere in grado di dimostrare la propria identità. Pertanto l'uso di una password segreta conosciuta solo dall'utente sembra obbligatoria per procedere con una normale autenticazione. L'uso di e-mail / SMS dovrebbe rimanere eccezionale come procedura di reimpostazione della password o come autenticazione di secondo fattore.

Per quanto riguarda l'usabilità, sarebbe meglio mantenere tale schema di autenticazione come facoltativo, dal momento che alcuni utenti potrebbero preferire usare casseforti password o altri tipi di generatori di password per gestire le loro password e non saranno in grado di agire come con la tua autenticazione schema (i collegamenti forniti sono solo esempi di tale software).

    
risposta data 18.04.2015 - 19:48
fonte
0

Una differenza tra un sistema senza password e un sistema di password + password dimenticata è il timeout della sessione. Molti sistemi come misura di sicurezza si disconnettono automaticamente dopo X minuti. Mentre potreste ovviamente farlo in un sistema senza password, sarebbe molto fastidioso per l'utente. L'usabilità su sistemi senza password generalmente dipende da sessioni di lunga durata (ad esempio, l'accesso ogni pochi mesi invece di ogni giorno) mentre le sessioni di ordinamento in genere non sono un grosso problema sono i sistemi basati su password.

    
risposta data 26.09.2016 - 23:00
fonte

Leggi altre domande sui tag