Maggiore sicurezza con keepass

8

Sto usando keepass per proteggere le password. Ho una password ragionevole, ma se qualcuno si impossessasse del file sono sicuro che alla fine potrebbero forzarlo.

Stavo pensando di usare anche un file chiave, ma dato che probabilmente questo sarebbe archiviato insieme al file keepass se qualcuno dovesse rubare il mio telefono o laptop, non aumenterebbe la sicurezza. (da non confondere con questa domanda che è preoccupata per i keylogger)

Stavo pensando a generare 1000 file chiave da archiviare insieme al file di dati. Solo uno dei quali sarebbe quello vero che è stato usato. Immaginando che aumenterebbe la sicurezza come se qualcuno stesse provando a usare la forza bruta, avrebbero dovuto provare le combinazioni di password / file chiave. Fare brute forzature un paio di volte più difficili.

Questa è un'ipotesi corretta o sarebbe abbastanza facile dedurre il file chiave dall'archivio crittografato?

    
posta Jeremy French 26.11.2012 - 11:29
fonte

5 risposte

5

Difficoltà in profondità sono raramente una brutta cosa, ma sfiderei il fatto che avere più certificati da cui lavorare in realtà non aggiunge molto alla tua sicurezza e aggiunge molto al sovraccarico. Generalmente i migliori meccanismi crittografici aumentano la difficoltà in modo esponenziale per uno sforzo lineare, cioè l'aggiunta di un carattere casuale, alfanumerico / simbolico a una password lo rende oltre 80 volte più difficile da indovinare. A quel ritmo, l'aggiunta di due caratteri alla tua password rende 6400 volte più difficile indovinare quale sia già più difficile dei tuoi 1000 file chiave da un attacco di forza bruta sulla password.

Detto questo, il tuo approccio ha ancora un merito se tentano di attaccare il file chiave direttamente attraverso qualche debolezza scoperta nel file chiave stesso, ma se l'ampiezza di un problema si trova nella memoria della chiave, è probabile che sia il momento di considera il keystore invalido nella sua interezza se vuoi mantenere un livello di sicurezza sufficientemente elevato da considerare il tempo necessario per interrompere la crittografia dei file come una minaccia.

    
risposta data 26.11.2012 - 15:23
fonte
8

La scelta del file chiave tra 1000 possibili file, supponendo che si possa fare perfettamente (ad esempio la scelta non trapelare attraverso i tempi di accesso), equivale ad aggiungere tre cifre alla fine della password. Aggiungere tre cifre significa ricordare (oltre la password) un numero di tre cifre, che è esattamente lo stesso sforzo della memoria di ricordare quale dei 1000 file chiave usare.

Pertanto, anziché utilizzare i tuoi file chiave, aggiungi semplicemente i dati extra segreti (il numero di tre cifre) alla tua password. Questo sarà almeno sicuro quanto i tuoi file chiave (e probabilmente più sicuri, perché probabilmente la tua scelta del file sarà probabilmente in qualche modo) e molto meno ingombrante da usare.

    
risposta data 26.11.2012 - 16:26
fonte
7

Il metodo needle-in-a-haystack che stai impiegando è esattamente quello che faccio con TrueCrypt. Ci sono circa 600 file chiave in una directory su una penna flash e ne vengono utilizzati ~ 10.

La penna flash ha un interruttore di sola lettura hardware, che impedisce al sistema operativo di aggiornare i metadati "Ultimo accesso". Tienilo a mente se stai utilizzando un supporto scrivibile per la memorizzazione: i file chiave a cui accedi verranno (probabilmente) dati dalla data di accesso. Ho anche aggiunto un po 'di "chaff" extra a questo randomizzando le date create / modificate / accessibili sui file, per rendere tutte le date completamente inaffidabili.

Ciò rende molto difficile trovare i file chiave giusti - 1.545.269.050.000.000.000.000 potenziali combinazioni, supponendo 10 scelte tra 600 file, se l'ordine non è importante e qualsiasi file chiave può essere utilizzato solo una volta. Ogni combinazione deve essere provata per ogni password potenziale, rendendo la forza bruta completamente impossibile. Finché utilizzi file di chiavi casuali di dimensioni sufficienti (di solito uso 4kB o più) non c'è neanche un modo fattibile per forzare il contenuto. La chiave è (solitamente) generata da un hash del contenuto del file o da un composito di questi hash se viene utilizzato più di un file chiave, combinato con l'hash della password. Nota che "hash" potrebbe significare un semplice hash come SHA256, o l'output di un algoritmo di derivazione chiave come PBKDF2 o bcrypt. In quanto tale, calcolare la chiave senza i file di chiavi è impossibile. Al contrario, è impossibile identificare il file di chiavi dal volume, poiché è necessario conoscere la chiave per dedurre una cosa del genere.

Per affrontare il potenziale attacco di temporizzazione della cache menzionato nei commenti da fatfredyy - questo è altamente improbabile. L'attacco proposto comporta la lettura di vari file e il confronto dei tempi di accesso. Un file letto di recente dovrebbe leggere più velocemente degli altri, poiché si troverebbe nella cache. Tuttavia, i tempi di lettura dal disco sono rumorosi sui dischi rigidi (i tempi di ricerca da settori correnti sconosciuti rendono le cose interessanti) e l'accesso alla cache ha un effetto Heisenberg: la lettura di un file probabilmente la caricherà nella cache e potenzialmente corromperà l'integrità della cache in termini di potenziale per gli attacchi temporali. Un problema simile si verifica sugli SSD, che impiegano una cache di lettura relativamente piccola e molta cache di scrittura. In alcuni sistemi, è possibile che la lettura sequenziale di file in una directory comporti il prefetch dei file successivi, complicando ulteriormente l'attacco temporale. A parte l'estrazione fisica dei dati della cache dell'hardware dall'unità, non credo sia fattibile.

    
risposta data 26.11.2012 - 12:09
fonte
4

Perché non memorizzi il file chiave su una chiavetta USB? Se qualcuno rubasse il tuo laptop, avrebbe comunque bisogno della chiave. Se lo fai hai un'autenticazione a due fattori.

    
risposta data 26.11.2012 - 18:26
fonte
1

Se si utilizza una directory home crittografata (ad esempio) e si adottano altre misure di sicurezza locali, è possibile negare completamente l'accesso al database keepass dell'utente malintenzionato. Se trascuri la sicurezza locale, qualcuno potrebbe installare un keylogger (software o hardware) o un rootkit che dirà loro quale keyfile stai usando e potenzialmente la tua password principale.

    
risposta data 27.11.2012 - 21:32
fonte

Leggi altre domande sui tag