Attaccare un gestore di password su Android con accesso root è una preoccupazione plausibile?

3

C'è un'app di gestione password per Android che sto considerando di utilizzare, che legge un formato di database per un popolare gestore di password desktop. C'è una parte di questa app che mi sta dando una pausa; Ho contattato l'autore per il problema, ma l'autore non sembra molto preoccupato al riguardo. Voglio essere sicuro di non essere solo paranoico.

Per utilizzare questa app, gli dai la password principale per il tuo database delle password. L'app crea una chiave in due parti combinando un PIN di 4 cifre con una chiave casuale a 256 bit memorizzata in cloud di Google dati delle applicazioni basati su . Questa chiave viene quindi utilizzata per crittografare la password principale localmente. Quando si utilizza l'app, si inserisce il PIN, l'app recupera la chiave basata su cloud e utilizza entrambi per decrittografare la password principale e sbloccare il database. Non ci sono altre opzioni per sbloccare il database. La chiave basata su cloud non viene mai memorizzata sul dispositivo, viene sempre utilizzata solo in memoria. La password principale crittografata è memorizzata solo sul dispositivo, non viene mai caricata nel cloud.

Sono disposto a dare l'autenticità del dubbio qui e presumo che la chiave sia generata in modo sicuro, e per il gusto di argomentare darò a Google il beneficio del dubbio e suppongo che questa unica app sia davvero l'unica festa a loro daranno mai i dati. Sì, so che questo potrebbe non essere un presupposto realistico, ma un Evil Google non è in cima alla mia lista di dubbi. Se queste ipotesi sono valide, finché il mio telefono è protetto, solo l'app sul mio telefono può accedere direttamente alla chiave cloud e quindi solo l'app sul mio telefono può decodificare la mia password principale.

Tuttavia, ho pensato a questo scenario:

  1. L'attaccante ruba il telefono.
  2. Oooh, guarda! Un database di password! Drat ... è bloccato!
  3. Telefono di root degli attaccanti.
  4. L'attaccante lancia l'app di gestione password.
  5. L'attaccante inserisce un singolo PIN a caso.
  6. L'app scarica la chiave basata su cloud.
  7. L'attaccante utilizza i privilegi di root acquisiti sopra, per scaricare la memoria di processo per l'app.
  8. L'attaccante legge la chiave basata sul cloud dal dump della memoria.
  9. Le brute-forze dell'attaccante bloccano le combinazioni di codice PIN / chiave cloud offline.
  10. Il database delle password è sbloccato in millisecondi o meno.

Ho ragione di preoccuparmi di questo attacco, o è in qualche modo non plausibile / prevenibile? In questo momento è l'unica cosa che mi impedisce di provare l'app. Non sono un bersaglio di alto valore o altro.

Una domanda successiva: Sto cercando di convincere l'autore ad aggiungere un'opzione NON per memorizzare la password principale , e piuttosto a chiederlo ogni volta che apro l'app. Supponendo che la password sia sicura (utilizzo una frase di 7 parole scelte a caso, con i dadi, da un dizionario cartaceo integrale), e supponendo che la password non sia mai memorizzata da nessuna parte, questo probabilmente manterrebbe le mie password al sicuro da un attaccante che ottiene il mio telefono?

So che l'accesso di root su un telefono può attaccare qualsiasi gestore di password in esecuzione e sbloccato , ma in tal caso, ho semplicemente bisogno di (a) non effettuare il root del mio telefono, (b) fare attenzione non installare malware e (c) bloccare attentamente il mio database dopo l'uso. Tuttavia, per questa app, non sembra esserci nulla che potrei fare per prevenire l'attacco a meno che non mi accorga immediatamente che il mio telefono è mancante e che elimini immediatamente la chiave basata su cloud.

    
posta Ben 06.04.2016 - 17:26
fonte

3 risposte

2

Esistono numerose attenuazioni che non stai prendendo in considerazione. Per rispondere direttamente alla tua domanda: Sì, a condizione che un utente malintenzionato abbia piena competenza su tutte le attività telefoniche (alcuni telefoni Android sono difficili / impossibili da "rootare" quindi non è dato nemmeno a quel livello) potrebbero catturare la parte cloud della chiave e forza bruta le combinazioni in un breve lasso di tempo (probabilmente più di millisecondi dal momento che devono testare decrittografare il file password con ogni passaggio, non c'è alcun indicatore magico che funzioni dopo aver calcolato la chiave).

Tuttavia, la maggior parte dei gestori di password cloud consente la revoca dei privilegi in remoto (ovvero non consente al dispositivo di recuperare la chiave dal cloud finché non si autentica di nuovo completamente), operazione che dovrebbe essere praticabile prima che l'utente malintenzionato esegua il root del dispositivo, poiché è molto semplice fare.

In secondo luogo, la gestione dei dispositivi mobili consente di cancellare in modo permanente il contenuto del telefono nel caso lo si ritenga rubato, di nuovo efficace solo se si agisce rapidamente ma dovrebbe essere possibile accedere e premere wipe prima che l'utente malintenzionato abbia possibilità di dimensionare le sue opzioni con l'attacco al tuo dispositivo.

In terzo luogo, la crittografia completa del dispositivo con un pin strong (disponibile in tutte le versioni di Android per alcuni anni) annullerebbe tutti i vettori di attacco in un colpo solo, dal momento che l'utente malintenzionato dovrebbe conoscere il tuo pin per fare qualcosa il telefono a tutti.

    
risposta data 06.04.2016 - 18:22
fonte
1

Am I right to worry about this attack, or is it implausible/preventable somehow?

L'attacco è semi-plausibile, supponendo che l'utente possa superare la schermata di blocco del tuo dispositivo (perché se non lo stai proteggendo, hai problemi più grandi). Non è particolarmente probabile, in quanto richiede:

  • il dispositivo da rubare

  • per il ladro (o una staccionata) per voler ottenere il contenuto del dispositivo, piuttosto che semplicemente ripristinarlo in fabbrica per poterlo vendere

  • per il ladro (o un recinto) per superare la schermata di blocco

  • per il ladro (o un recinto) per avere le competenze necessarie per fare ciò che descrivi

  • ecc.

Quindi, se è "giusto" per te "preoccuparti di questo attacco" dipende solo da te.

Sarei molto più preoccupato che l'app sia inutile senza una connessione Internet.

I'm trying to convince the author to add an option NOT to store the master password, and rather to just ask for it every time I open the app

Suggerirei di utilizzare un gestore di password open source esistente che già lo implementa. Sembrerebbe essere più facile.

would this likely keep my passwords secure from an attacker who obtains my phone?

Dipende un po 'da come viene implementato il gestore delle password.

Una persona decente utilizzerà un algoritmo di allungamento della chiave o di allungamento della chiave per imporre costi nel provare una passphrase. Ad esempio, uno supportato da SQLCipher per Android utilizza 64.000 cicli di PBKDF2. Ciò aiuta a difendersi da certi tipi di attacchi (ad esempio, le tabelle arcobaleno IIRC) e costringe gli attaccanti a passare attraverso la "porta principale" (ad es. L'API SQLCipher) nei loro tentativi di forza bruta. Il costo significa che potresti essere in grado di testare solo qualche milione di password al giorno, e in tal caso, una passphrase sufficientemente lunga rende impraticabile l'accesso di chiunque, almeno senza ricorrere al sempre popolare $5 wrench .

All'estremo opposto, se il gestore password memorizza la sua password principale in testo semplice come un file separato, l'utente malintenzionato ha un po 'più facile tempo a indovinare la password principale.

    
risposta data 06.04.2016 - 18:00
fonte
0

[Divulgazione: lavoro per AgileBits, i creatori di 1Password]

Come altri hanno sottolineato, ci sono molte cose che devono andare storte per l'attacco che descrivi di accadere. Ma da quello che descrivi (non ho studiato il prodotto stesso con dettagli sufficienti per commentare qualcosa di diverso da quello che descrivi), un utente malintenzionato può finire con qualcosa da violare con solo un PIN.

Potresti avere un modello di minaccia diverso dalla maggior parte degli utenti, ma il tuo modello di minaccia è sicuramente coerente. Per coloro che fanno notare che il dispositivo deve essere bloccato, questo è certamente vero, ma il design di un gestore di password dovrebbe prevedere che i dati memorizzati sul dispositivo possono essere catturati.

Una cosa che sembra un attacco più plausibile è l'autenticazione richiesta per recuperare la chiave. Presumibilmente vi è un segreto a lungo termine memorizzato dall'app sul dispositivo che combinato con il PIN è necessario per autenticare il server. Quindi non vedo perché l'hacker debba eseguire l'attacco di memoria sul tuo dispositivo se può ottenere il segreto di autenticazione segreto a lungo termine. Una volta che hanno questo, possono provare a recuperare la chiave crittografata senza aver bisogno di nulla dal tuo dispositivo.

Ancora una volta, sto commentando in base alla descrizione del sistema. Non ho studiato il sistema attuale, che potrebbe benissimo avere difese contro questo genere di cose.

Ad ogni modo, credo che ci dovrebbe sempre essere un'opzione per richiedere la tua password principale ogni volta che sblocchi i tuoi dati.

    
risposta data 07.04.2016 - 19:00
fonte

Leggi altre domande sui tag