Quale sarebbe il modo migliore per autenticare un utente in un ambiente mobile offline, multiutente?

1

Attualmente sto lavorando a un sistema di autenticazione offline per un ambiente mobile multiutente.

Per evitare di memorizzare localmente tutte le password, che sembra essere una cattiva idea, procedo in questo modo:

È richiesta una prima autenticazione online. il server restituisce quindi un token all'utente, che verrà utilizzato per eseguire chiamate API future.

Per avere più utenti sullo stesso dispositivo mobile / tablet, ho bisogno di un modo per memorizzare diversi token e di consentire solo l'accesso a un determinato utente.

mi vengono in mente due soluzioni:

  • password classica, con il rischio che l'utente inserisca la stessa password della "password principale"
  • Codice PIN o codice simile, senza relazione con la "password principale" ma con meno entropia

L'autenticazione tramite impronta digitale sarebbe anche una soluzione, ma non tutti i dispositivi supportano il rilevamento delle impronte digitali.

Entrambi i casi presentano degli svantaggi ed entrambi sono deboli, in quanto vulnerabili all'attacco offline

Quale sarebbe il modo migliore per autenticare un utente in un ambiente mobile offline, multiutente?

    
posta Kepotx 19.04.2018 - 12:10
fonte

1 risposta

1

Bene, puoi semplicemente invalidare il token ed eliminarlo ogni volta che desideri cambiare utente o "disconnettere" l'utente, piuttosto che utilizzare l'autenticazione online con il controllo della password online.

L'unico modo per proteggere in modo affidabile un token dall'attacco offline (per quanto ne so io) è crittografarlo, che richiederebbe una password o un pin. Dovresti usare una funzione di derivazione della password lenta con iterazioni sufficienti, come PBKDF2 per aiutare un po 'con l'entropia.

    
risposta data 19.04.2018 - 21:41
fonte

Leggi altre domande sui tag