Perché LUKS utilizza CBC?

5

Ho letto che LUKS utilizza AES a 256 bit con CBC per impostazione predefinita. CBC, ovviamente, ha gli svantaggi che se si modifica qualcosa nel testo normale, è necessario modificare tutto ciò che viene dopo di esso. Nel caso della crittografia del disco rigido, in genere si tratta di almeno alcune centinaia di GB, spesso diversi TB. Non vuoi riscrivere più TB ogni volta che una parola in un file di testo viene modificata, ovviamente.

Quindi leggo che LUKS risolve questo problema utilizzando solo CBC all'interno di piccoli blocchi (ad esempio 512 byte) che codifica indipendentemente l'uno dall'altro. A parte avere altri problemi , come questo non introduce i problemi della BCE? Vale a dire essere conservatore di strutture e semanticamente malleabile?

È stato scelto un nuovo vettore di inizializzazione per ciascuno dei blocchi ~ 512 byte, quindi questi problemi non si verificano? In tal caso: come viene scelto?

Perché LUKS non usa il CTR?

    
posta UTF-8 30.04.2017 - 23:46
fonte

2 risposte

0

La risposta di Liam Dennehy mostra che luks non usa CBC di default più. Per quanto riguarda il motivo per cui l'ha usato al posto di CTR prima, è perché, con il solito modello di avversario per la crittografia del disco, CTR non è sicuro per la crittografia del disco (come si può vedere su Wikipedia ).

A meno che tu non modifichi la IV su ogni cambiamento, che richiederebbe la crittografia dell'intero disco per ogni cambiamento, se il tuo avversario ha a un certo punto il testo e il testo cifrato per un blocco, può decifrare quel blocco finché non cambi il IV, come la cifratura CTR produce semplicemente un flusso di byte casuali per un dato blocco che è xored con il testo normale. L'unico modo per renderlo sicuro senza dover ricodificare l'intero disco per ogni modifica sarebbe quello di memorizzare una IV per blocco (che cambierebbe per ogni aggiornamento), che sarebbe piuttosto costosa in termini di spazio su disco, o richiederebbe grandi blocchi e quindi reencrypting molto per ogni aggiornamento.

Si noti che in modalità CBC, ogni blocco da 512 byte ha il proprio IV generato dalla chiave e dal numero di blocco, quindi due blocchi identici non saranno gli stessi dopo la crittografia.

    
risposta data 25.08.2017 - 20:46
fonte
0

Le pagine man online di cryptsetup che ho trovato si riferiscono ancora a una versione molto vecchia e questa potrebbe essere la fonte delle informazioni obsolete.

Un commit il 28 giugno 2013 (quattro anni fa a partire da questa risposta) ha aggiornato la pagina man per mostrare il nuovo valore predefinito per i dispositivi LUKS è aes-xts-plain64 , che sembra essere da qualche parte tra la versione 1.6.0 e 1.6.2.

    
risposta data 25.07.2017 - 17:22
fonte

Leggi altre domande sui tag