Il montaggio di una partizione LUKS lo autentica?

5

Posso essere sicuro che i contenuti (non crittografati) del mio volume LUKS non siano stati manomessi se accetta il mio passhprase su un sistema altrimenti attendibile?

In altre parole, un utente malintenzionato con accesso alla mia partizione LUKS crittografata crea un'altra partizione crittografata con la stessa passphrase (s) del mio originale, ma nuovi dati? So che non possono ottenere la chiave di crittografia né la passphrase, ma possono creare una nuova chiave di crittografia e crittografarla in modo che le passphrase originali possano decrittografarla?

    
posta matega 09.11.2016 - 20:01
fonte

1 risposta

3

can they create a new encryption key and encrypt it so that the original passphrases can decrypt it?

Non vedo come sarebbe possibile.

Come già sai, Luks funziona generando una chiave "master" casuale che viene archiviata nell'intestazione di Luks e utilizzata per crittografare il contenuto del disco. In realtà ci sono 8 slot chiave che fanno riferimento a copie crittografate della chiave master. Se apri una partizione Luks, fornisci una passphrase per decrittografare una delle copie master crittografate, che verrà poi utilizzata per decodificare il contenuto del contenitore.

La crittografia e la decrittografia della chiave master vengono eseguite utilizzando la crittografia simmetrica. Quindi, se qualcuno volesse creare la sua partizione Luks che ha accettato la stessa passphrase della tua, avrebbe bisogno di conoscere almeno una delle tue passphrase in modo che quando hai inserito la tua frase segreta sul contenitore dei falsi luks, la passphrase sarebbe stata in grado di decifrare la chiave master con cui sono stati crittografati i dati nel contenitore.

La piccola stampa

Can I be sure that the (unencrypted) contents of my LUKS volume were not tampered with if it accepts my passhprase on an otherwise trusted system?

No. Non conoscendo la passphrase non protegge il contenitore Luks dalla manomissione. Un utente malintenzionato può sempre sovrascrivere qualsiasi parte del contenitore con qualsiasi dato che sceglie; è solo che di solito, quando apri il contenitore e decifri tutto ciò che è stato cambiato, decrittografa in modo casuale e probabilmente rompe il file system, che ti informerà che il file system è corrotto. Tuttavia, potrebbe volerci un po 'di tempo prima di accedere a una sezione del filesystem che è stata manomessa; fino a quando non accederai ad esso o eseguirai un controllo di integrità del filesystem, non noterai alcuna manomissione.

Probabilmente non è quello che ti preoccupa, ma che ne dici di questo scenario:

Hai una partizione Luks. Sei molto diligente, quindi esegui il backup su un altro disco rigido usando dd (ad esempio creando una copia byte per byte della partizione).

L'utente malintenzionato si impadronisce del disco rigido di backup. Quello che può fare ora è confrontare i due dischi, quello nuovo e quello vecchio, e capire che ci sono cambiamenti. Quando trova una sezione che gli sembra promettente, può prendere la vecchia sezione dall'unità di backup e copiarla nello stesso identico punto della partizione produttiva di luks.

A volte, questo fallirà e provocherà anche un filesystem corrotto. Tuttavia, in alcuni casi, funzionerà, ad es. cambierà alcuni contenuti di file o directory di nuovo in quello che erano quando hai preso il backup, senza avvisarti che la partizione Luks è stata modificata da qualcun altro. Questo attacco ha maggiori probabilità di funzionare su filesystem vecchi e non di journaling e molto probabilmente fallirà sempre su filesystem copy-on-write come btrfs.

Quindi, per riassumere, fare backup esatti a livello di byte di una partizione Luks potrebbe consentire a un utente malintenzionato di annullare in modo trasparente qualsiasi modifica apportata alla partizione produttiva alla versione nel backup.

Se questo è un problema, puoi evitarlo creando una nuova partizione di luks sul supporto di backup e copiando i dati del file system in chiaro nel contenitore invece di clonare il contenitore Luks stesso.

Rendi il tuo contenitore Luks antimanomissione

Per rendere il tuo contenitore Luks a prova di manomissione, puoi costruire una somma hash su di esso ogni volta che hai finito di usarlo e chiuderlo. Conservi questo hash sum da qualche parte sicuro. Prima di aprire il contenitore la volta successiva, di nuovo costruisci la somma dell'hash e la confronta con quella memorizzata. Se corrispondono, nessuno l'ha manomesso.

Il problema con questa soluzione è che i file system sono in genere molto grandi e la creazione di un hash su tutti i dati del filesystem può richiedere ore o giorni.

    
risposta data 09.11.2016 - 21:46
fonte

Leggi altre domande sui tag