La mia app richiede che le password siano controllate * localmente * - come posso evitare problemi di sicurezza?

0

Ho un'app in cui c'è un proprietario di un account principale che ha una password completamente protetta sul lato server, hash e salata, il che è ottimo. Non preoccuparti.

Ma ogni account ha anche un elenco di "dipendenti" e la tabella completa dei dipendenti viene regolarmente scaricata per l'archiviazione locale sui dispositivi dell'app. La tabella completa, incluso il campo della password, deve essere disponibile offline , quindi deve essere scaricata e archiviata e la password deve essere verificata rapidamente.

È meglio memorizzare un "PIN" piuttosto che una password in questa situazione? C'è qualche uso nella crittografia di queste password? Che tipo di crittografia posso fare che sarebbe estremamente veloce e facile da implementare attraverso le lingue?

Questa particolare password / pin, tieni presente, in realtà non dà accesso a molte funzionalità dell'app, questo semplicemente permette loro di accedere e disconnettersi, quindi realisticamente la mancanza di sicurezza non è disastrosa - c'è non molto qualcuno potrebbe fare maliziosamente anche se avesse una di queste password.

    
posta TKoL 27.06.2018 - 15:35
fonte

2 risposte

2

Penso che tu abbia due scelte:

  1. Esegui la sicurezza della password e invia gli hash per il sistema locale per verificare
  2. Utilizza un "PIN" anziché una password per ridurre al minimo i danni se le credenziali vengono rubate.

Per ricapitolare quello che stai chiedendo, il problema ovvio è che dover inviare le credenziali in qualche modo aumenta i rischi di furto di credenziali. Con il riutilizzo della password un problema senza fine, passare le password delle persone in giro per la convalida locale è un pericolo per gli utenti più di ogni altra cosa.

La crittografia non aiuta molto (o forse dipende dai tuoi problemi di sicurezza) perché indipendentemente da quali circuiti fai passare l'app, l'app deve ancora essere in grado di verificare le password offline, il che significa che c'è un modo per recuperare le password in testo semplice.

di hashing

Probabilmente il modo più sicuro per utilizzare le password effettive è semplicemente seguire il protocollo standard e utilizzare un algoritmo di hashing della password sicuro. Ovviamente quindi non vuoi un aglithithm veloce, ma non riesco a immaginare che il telefono sarà molto più lento nell'hashing in modo da causare problemi di interfaccia utente dolorosi. Ovviamente dovrai riprodurre l'algoritmo di hash sul tuo telefono, presumibilmente non sarà un problema per gli algoritmi di hashing standard.

L'hashing fornisce un livello base di protezione contro le password rubate durante il trasporto o dal telefono. Ovviamente anche se non proteggerà le password deboli contro le forzature brute. Tuttavia, se queste password non sono collegate ai dettagli dell'utente in altro modo (ad esempio indirizzi e-mail), questo è meno di un problema: ogni password che ho mai usato potrebbe essere pubblicizzata in Internet, ma non importa se il mio indirizzo e-mail non è collegato a loro. Se puoi assicurarti che le password non siano in alcun modo collegate a qualsiasi informazione personale, allora c'è meno preoccupazione.

PIN

L'altra opzione sarebbe quella di utilizzare un PIN, come si menziona, e renderlo definitivamente un PIN - solo numeri. Ciò impedirà alle persone di riutilizzare la propria password. Tuttavia, non impedirà alle persone di riutilizzare il proprio codice PIN ATM, quindi manterrei comunque queste credenziali lontane da qualsiasi informazione personale.

In breve, se tutto ciò che hai è una password o un PIN, allora non è più una vera password, è solo un identificatore univoco assegnato a un utente. Questo è molto meno pericoloso di aver rubato (o almeno, solo pericoloso per la tua app e ciò che quell'ID univoco consente a un utente malintenzionato di fare). Pertanto, l'opzione migliore è in realtà solo per assicurarsi che queste password locali non siano mai connesse (o collegabili) a informazioni utente reali.

    
risposta data 27.06.2018 - 16:10
fonte
2

Oltre alla password selezionata dall'utente e al PIN selezionato dall'utente, una terza strategia è una password generata dal sistema. Questo può offrire un buon grado di sicurezza e, poiché è generato, garantisce che non sarà un riutilizzo di qualcosa che l'utente già usa altrove. Essendo non hai bisogno di un sacco di sicurezza, è possibile utilizzare una passphrase a 2 o 3 parole. Un formato di aggettivo-nome è facile.

Se ottieni elenchi di 100 aggettivi e 1000 nomi (google per gli elenchi di parole), questo ti darà 100.000 possibili frasi. È strong come un PIN a 5 cifre. I PIN saranno cose come purple meerkat e abstract house . È possibile aggiungere un avverbio all'inizio per rendere più sicura la password. Ad esempio, l'aggiunta di solo 30 avverbi produrrebbe frasi come subtly purple meerkat e very abstract house e ti darà 3.000.000 di possibili frasi: è meglio di un PIN di 6 cifre.

    
risposta data 27.06.2018 - 19:02
fonte

Leggi altre domande sui tag