LUKS, come rendere la passphrase più strong possibile e ragionevole?

5

Diciamo che ho un volume crittografato sotto LUKS con una chiave a 512 bit. Ciò significherebbe che ci sono 2 ^ 512 di valori possibili che la chiave potrebbe essere.

Ora ho bisogno di una passphrase che sia almeno così resistente alla forza bruta come la vera chiave di crittografia del volume a 512 bit. Correggimi se le mie supposizioni di seguito sono errate, tutti i valori numerici sono usati solo per esempi matematici:

Diciamo che la mia passphrase è generata dall'input casuale di codifica base64 e quindi lo spazio delle chiavi per la mia passphrase è 64 caratteri. Pertanto, affinché la passphrase sia almeno altrettanto strong della chiave di crittografia del volume, è necessario che ci siano almeno% di combinazioni possibili di% co_de nella lunghezza della passphrase. Questo può essere espresso come:

(size_of_keyspace) ^ number_of_characters >= 2 ^ (size_of_key)

Quindi, per questo esempio di una dimensione della chiave del volume di 2 ^ 512 e uno spazio della chiave della passphrase di 512 , il numero minimo di caratteri che la mia passphrase dovrebbe essere al fine di essere altrettanto sicuro quanto la chiave del volume sarebbe 64 .

Questa logica è corretta o ci sono degli svantaggi di cui dovrei essere a conoscenza? Qualche altro consiglio che può essere offerto sulla falsariga di questa domanda?

Il mio ragionamento per questo è che non c'è alcun vantaggio intrinseco di avere una passphrase che è più strong della stessa chiave di payload stessa - qualcuno che forza il mio hard disk alla fine sta cercando di decifrare la mia chiave di crittografia, non la mia passphrase. Se la mia passphrase è più strong della chiave di crittografia, allora un utente malintenzionato può forzare la chiave di crittografia più velocemente di quanto possa fare la passphrase. È corretto o ci sono dei vantaggi nell'avere una passphrase che è più strong della chiave di crittografia, forse come un drenaggio delle risorse per un utente malintenzionato che non diversifica i propri metodi abbastanza bene?

    
posta Radmilla Mustafa 22.02.2015 - 19:06
fonte

2 risposte

4

Nel contesto della sicurezza, tutto è un compromesso. Maggiori informazioni su questo in un secondo ....

Quali sono le opzioni di attacco per entrare nel tuo volume crittografato? Sono, in sostanza:

  1. Ricerca forza bruta dello spazio delle chiavi per la chiave utilizzata dalla primitiva di crittografia simmetrica.

  2. Forza brutale la passphrase provando ogni possibile password utilizzando i parametri specifici di derivazione del tasto e del volume del volume.

  3. Domestica cattiva, tubo di gomma, keylogger o altri "non criptati" per proteggere il tuo keymat.

Dovresti preoccuparti del numero 3. Perché è l'ovvio vettore di attacco.

Nessuno riuscirà a forzare bruto la chiave utilizzata per la primitiva di crittografia a blocchi.

Da una prospettiva di sicurezza di base, sono convinto che anche le chiavi a 128 bit siano completamente sicure se l'implementazione non è interrotta. Una ricerca di forza bruta in questo caso deve esaurire in media la metà di uno spazio chiave che ha 340.282.366,920,938,463,463,374,607,431,768,211,456 possibilità.

Per un primitivo con chiave a 256 bit, stai parlando di 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936 possibilità.

Quindi, anche con 256 bit di sicurezza chiave stai già raggiungendo numeri che si avvicinano al numero di atomi nell'universo conosciuto.

Quindi è fuori.

Ciò di cui sei preoccupato è qualcuno che prova ogni possibile frase di accesso.

Ora, ricorda che LUKS usa un po 'di sale + PBKDF2 per estendere la tua pass phrase alla dimensione dello spazio della chiave. Ciò significa che anche una password di "a" può essere mappata a qualsiasi punto possibile nell'intero spazio della chiave. Quindi gli attaccanti non avranno un tavolo arcobaleno che aiuterà qui.

Se hanno intenzione di forzare la frase del passo, dovranno provare tutti gli input possibili, eseguendo ciascuno attraverso la funzione di derivazione dei tasti con i parametri usati sul volume (salt & iterations). Ci vuole tempo. E, se la memoria viene pubblicata, LUKS imposta effettivamente le iterazioni in modo da richiedere una quantità specifica di tempo per "tentativo".

Ciò significa che è sufficiente una lunghezza della frase che ha abbastanza entropia per rendere impossibile per un utente malintenzionato provare un numero sufficiente di frasi possibili per localizzare la frase. L'hacker può ovviamente utilizzare GPU o hardware ASIC specializzato per accelerare questo processo (il motivo per cui la gente sta sperimentando cose come Scrypt per renderlo più difficile), ma sarà più che protetto con 20-30 caratteri contenenti numeri minuscoli e maiuscoli e simboli della tastiera (compresi i simboli di numeri spostati e altri simboli sulla tastiera).

Questo mi riporta al mio commento iniziale. È importante tenere a mente i trade off. Puoi provare a creare una passphrase equivalente alla difficoltà del tuo spazio chiave a 512 bit, ma impatterà sul tuo comportamento. Potresti non riuscire a smontare / disconnettersi quando ti alzi per prendere una tazza di caffè perché è così doloroso ricevere la frase giusta quando è il momento di ricollegarti. Potresti memorizzare la frase lunga su un telefono o un pezzo di carta. Se lo memorizzi in un gestore di password, sarai limitato dalla sicurezza del gestore password e non dalla sicurezza della lunghezza della tua passphrase.

Nel frattempo, una volta che un attaccante deve provare da 20 a 30 caratteri di passphrase utilizzando 93 possibili caratteri, l'attaccante deve affrontare (efficacemente) da 95 a 150 bit di entropia che lo pone al di fuori dell'intervallo ragionevole di forza bruta.

E, tutto ciò riporta alla terza possibilità di entrare nel tuo volume. Rispetto alla forza bruta che costringe la chiave alla primitiva della crittografia oa provare tutte le possibili pass phrase, il terzo scenario "COMPROMISE" è proprio quello di cui dovresti preoccuparti. Un utente malintenzionato che ti fa indicare un browser Web compromesso a un exploit che offre privilegi intensificati sul tuo sistema in esecuzione può scansionare la memoria per la tua password. Un utente malintenzionato che ottiene un rootkit sul tuo sistema può fare lo stesso. Se si collega un dispositivo USB o firewire compromesso, si sta potenzialmente compromettendo la sicurezza. E questi sono tutti molto più semplici per l'attaccante che forzare lo spazio delle chiavi o lo spazio delle frasi passate.

    
risposta data 22.02.2015 - 20:36
fonte
0

In pratica, un utente malintenzionato tenterà di attaccare la tua passphrase prima della tua chiave. In alcuni casi è molto più difficile attaccare la chiave effettiva. Tieni presente che, sia per la passphrase che per la chiave, è importante disporre di politiche di blocco.

In realtà, su un sistema con una buona politica di blocco, gli attaccanti contro frasi di alta qualità da 10 a 12 caratteri non sono realistici. 86 caratteri di frase di passaggio di alta qualità sarebbero davvero difficili da battere. Se fossi un aggressore, avrei semplicemente trovato un altro modo. Penso che una passphrase di 20 caratteri sarebbe più che sufficiente per i tuoi scopi.

Quindi, per rispondere alla tua domanda, direi che non dovresti preoccuparti se la lunghezza della tua password potrebbe attirare utenti malintenzionati verso il cracking diretto della chiave. Preferirei invece che ci sia un lockout adeguato e politiche di limitazione della velocità in modo che gli attacchi di forza bruta siano essenzialmente impossibili in primo luogo.

È facile perdere la foresta per gli alberi qui. Non farti tutti i problemi con le password, a pensarci troppo, quando non hai fatto la ricerca per assicurarti che non ci fosse già un bypass di autenticazione per un software obsoleto che stai utilizzando. Prova a vedere l'intera immagine di sicurezza. Esegui ricerche sulla tua piattaforma software e assicurati che non ci siano più gravi falle nella sicurezza: questo sarà il prossimo obiettivo una volta che l'attaccante si renderà conto che la tua password non è "password".

    
risposta data 22.02.2015 - 20:09
fonte

Leggi altre domande sui tag