Qual è un buon modo per autenticare un utente su uno smartphone?

29

Quale sarebbe un buon modo per autenticare un utente su uno smartphone? Per buono, voglio dire che è sia sicuro, sia user-friendly. Le password non sembrano essere la soluzione migliore perché una password deve essere lunga per essere protetta, ma è difficile digitare una lunga password su uno smartphone. Alcuni pensieri su cui ho iniziato a pensare sono le misure biometriche (ad es. Forse il riconoscimento facciale) e / o un token. Sono interessato a questa domanda per l'autenticazione al telefono. Come indicato nei commenti, la mia domanda iniziale era troppo ampia, quindi sto suddividendo l'altra parte in un'altra domanda qui: Qual è un buon modo per autenticare un utente su siti Web e applicazioni con uno smartphone?

    
posta Jonathan 10.02.2015 - 16:12
fonte

7 risposte

20

Guarda i metodi di autenticazione per sbloccare i telefoni. Sulla mia galassia S4, ci sono:

  • Scorri (senza sicurezza)
  • Face Unlock (bassa sicurezza)
  • Face and Voice (bassa sicurezza)
  • Pattern (sicurezza media)
  • PIN (medio-alto)
  • Password (alta)

Dall'esperienza personale, lo sblocco del volto è piuttosto difficile. Devi addestrarlo, e quindi devi attaccare la tua faccia nella giusta luce senza nulla su di esso per sbloccare il telefono. Prendi in considerazione anche le persone con disabilità o lesioni: qualcuno che è stato incenerito in un incidente sarà bloccato fuori dal suo dispositivo! C'è stata anche una ricerca per sconfiggere il motore di riconoscimento con le immagini, ed è piuttosto facile da fare perché chiunque può vedere la tua faccia.

La password come hai detto è molto difficile da digitare. Le minuscole tastiere telefoniche rendono le lettere maiuscole molto difficili.

Tuttavia, i due metodi di autenticazione che ritengo più facili dal punto di vista dell'utente sono il PIN e il pattern. Il modello può essere sollevato dagli oli dello schermo (blech) in modo da indebolirlo.

Una grande tastiera numerica che ha randomizzato il posizionamento dei numeri è un buon compromesso tra usabilità e sicurezza. Inserisci una lunghezza minima sul pin (come 10) e sarai in grado di avere una sicurezza paragonabile a una password.

    
risposta data 10.02.2015 - 16:28
fonte
14

Non parli di che tipo di servizio è, ma come utente il metodo di autenticazione meno irritante sui telefoni per me è SSO. Ho già effettuato l'accesso a Google & Facebook comunque, quindi in genere è solo un caso di premere "Sì" e abbiamo finito.

    
risposta data 10.02.2015 - 16:25
fonte
6

Se si dispone del numero di cellulare dell'utente (e se l'utente afferma durante la registrazione che questo numero di telefono può ricevere messaggi di testo), è possibile utilizzare questa capacità per abilitare l'autenticazione in due passaggi con SMS. Dopo aver completato l'autenticazione con un nome utente e una password, fai un altro passaggio. Invia all'utente un messaggio di testo, utilizzando l'API a un provider di gateway SMS come Twilio o Plivo (costa denaro, ma i prezzi per i provider di gateway SMS tendono ad essere molto bassi negli Stati Uniti). Il messaggio di testo che li invii conterrebbe un numero intero generato a caso che creerai per loro, forse da 6 a 8 cifre. Consenti all'utente di digitare questo intero in un campo modulo e autenticarlo con esso. Per rendere più semplice all'utente la digitazione, puoi configurare il campo modulo per far apparire una tastiera del tastierino sul proprio schermo, contenente solo numeri per i pulsanti, in questo modo:

<input type="text" name="smstoken" id="smstoken" pattern="[0-9]" autocomplete="off">

Una volta che hanno inviato il modulo con il numero intero corretto ricevuto nel messaggio di testo, sono completamente autenticati. Questa forma di autenticazione in due passaggi assicura che gli utenti non solo sappiano qualcosa (il loro nome utente e password corretti) ma anche qualcosa (un numero casuale ricevuto in tempo reale tramite messaggio di testo), aumentando la sicurezza dell'applicazione.

Assicurati di avvertire completamente l'utente in anticipo che potrebbe essere addebitato dal suo gestore di telefonia mobile per ricevere il messaggio di testo.

    
risposta data 10.02.2015 - 20:07
fonte
4

La soluzione migliore potrebbe essere quella di utilizzare i metodi standard come menzionato nella risposta di Ohnana lungo un strong autenticazione secondo fattore utilizzando U2F.

YubiKey NEO di Yubico consente l'autenticazione sicura del secondo fattore del canale TLS, anche su NFC, se ricordo correttamente le specifiche. Stai utilizzando un modulo di sicurezza hardware, quindi questo, combinato con una password scomoda e strong, sarebbe un modo molto strong per verificare che l'utente sia chi afferma di essere.

Ancora più pazzo sarebbe scrivere un driver GPG per smart card per Android che utilizzerebbe l'applet OpenPGP in detto YubiKey NEO per avviare una sfida una tantum avviata dal server / telefono in cui l'utente dovrebbe inserire la chiave per il proprio smart carta per decifrare, firmare e restituire una sfida dal server / telefono. Avresti bisogno di un dongle USB, anche se non ricordo il protocollo NFC per GPG se ricordo male.

Il cielo è il limite. Assicurati che il telefono sia crittografato con una passphrase molto scomoda e disattivalo se ci sono più di 5 tentativi di accesso errati.

    
risposta data 10.02.2015 - 23:00
fonte
3

Potresti utilizzare una qualche forma di comunicazione near field.

Ad esempio, scrivi alcuni tag che sbloccano il telefono quando il tag viene toccato sul retro.

Un'altra cosa buona da verificare è Yubikey: link

    
risposta data 11.02.2015 - 05:32
fonte
1

Dovresti anche considerare lo specifico smartphone (iOS, Android, Windows, ecc.) in quanto i telefoni diversi variano nel modo in cui operano e quali funzioni forniscono.

Apple ha aperto l'accesso a Touch ID in iOS 8. Quindi, per i dispositivi Apple, è possibile richiedere a un utente di accedere per la prima volta utilizzando la propria password. Dopo aver effettuato l'accesso, il server può fornire una chiave univoca per quel dispositivo. Archivia la chiave nel portachiavi e consenti il login successivo per sbloccare l'API Touch ID.

Aggiungete un paio di possibili problemi di sicurezza che conosco.

  1. Si memorizza ciò che è essenzialmente l'equivalente di una password sul dispositivo. Anche se è crittografato, è ancora memorizzato localmente e potrebbe essere decodificato. È possibile attenuare alcune preoccupazioni qui richiedendo la password per alcune operazioni. Di sicuro, quando si cambia la password; ma potrebbero esserci altri casi.

  2. Touch ID può essere violato ottenendo le impronte digitali del proprietario dal dispositivo stesso.

Nonostante ciò, incoraggi gli utenti a utilizzare password migliori. E questo dovrebbe fornire una migliore sicurezza in generale.

    
risposta data 10.02.2015 - 19:46
fonte
1

La premessa di questa domanda è un po 'errata perché implica che esiste una risposta "taglia unica". Questo non è il caso. L'autenticazione deve soddisfare sia i requisiti dell'applicazione che l'utente. Alcune applicazioni / dispositivi richiedono più protezione di altri. Allo stesso modo, alcuni utenti hanno bisogno di più protezione di altri.

Penso che l'approccio migliore sia quello di consentire una gamma di opzioni e consentire all'utente di scegliere l'opzione che preferiscono. Lo svantaggio di questo approccio è che alcune persone andranno semplicemente con il metodo più semplice e più conveniente. Tuttavia, la risoluzione di questo problema riguarda in realtà l'aumento della consapevolezza dell'utente. È improbabile che forzare una soluzione lungo la linea "We know best" ottenga un grande sostegno e frustrerà alcuni utenti che sono in grado di valutare la propria esposizione al rischio in modo appropriato e trovano la soluzione imposta inopportuna o fuori dalla norma.

Per scopi di autenticazione su un dispositivo generale, come un telefono, è probabilmente necessario coprire i tre approcci principali, ovvero qualcosa che l'utente conosce (ad es. password), qualcosa che l'utente ha (es. token, possibilmente hardware generato da un dongle o Codice SMS ecc.) E qualcosa che l'utente è biometrico - impronta digitale, impronta vocale, ecc. Tuttavia, la chiave sarebbe consentire all'utente di selezionare se desidera solo una password / pin o una combinazione. Mia figlia di 15 anni probabilmente vorrà solo una spilla, ma va bene così come tutto ciò che usa davvero per il suo telefono è facebook. D'altro canto, lavoro in sicurezza, ho accesso a dati sensibili e voglio più protezione, quindi potrei andare con biometrico, password e token.

Per applicazioni specifiche, l'approccio dovrebbe essere simile, ma può essere semplificato. Un'applicazione ha un profilo di utilizzo più definito. Ciò significa che è possibile effettuare una valutazione più accurata dei rischi per la sicurezza. Se l'applicazione ha pochi dati sensibili e basso 'beneficio' per individui non autorizzati, allora un semplice pin o password potrebbe essere sufficiente. Con l'aumento dei rischi, è necessario aumentare l'intervallo di metodi di autenticazione disponibili. In alcuni casi, quando la sensibilità dei dati supera una certa soglia, è possibile applicare uno standard minimo.

L'altra cosa da considerare è la formazione degli utenti e le soluzioni disponibili per rendere un po 'più semplice questo. Ad esempio, potrebbe essere opportuno incoraggiare l'uso di un'applicazione di gestione password. Ciò può ridurre l'impatto / inconveniente della digitazione di password lunghe / complesse su uno schermo di un piccolo dispositivo mobile. È possibile che si disponga di un'app di gestione delle password a cui si accede una volta all'inizio di una sessione e da quel momento in poi, ogni volta che si accede a un sito / un'applicazione che richiede una password, il gestore della password inserisce i dettagli per conto dell'utente. Alcuni di quelli migliori forniscono anche supporto per 2 fattori e sistemi biometrici. Ovviamente non c'è un proiettile d'argento, ma possono affrontare alcuni dei disagi associati all'autenticazione con un piccolo aumento del rischio, che potrebbe essere compensato attraverso l'uso di password più casuali e più forti ecc.

    
risposta data 13.02.2015 - 00:34
fonte

Leggi altre domande sui tag