Hashing di un disco rigido prima dello spegnimento

1

Problema: attualmente non ho modo di verificare l'integrità del mio sistema crittografato offline. Vorrei assicurarmi che il sistema non sia stato manomesso fisicamente mentre ero lontano da esso.

(Per chiarire: mentre sono a conoscenza del fatto che il sistema non può essere modificato senza accedere alla mia chiave di crittografia, si tratta di eliminare la possibilità che la crittografia sia in qualche modo aggirata, ovvero che ottengano l'accesso alla mia chiave di crittografia .)

Soluzione proposta: copia il contenuto del disco rigido e aggiungi l'hash a una thumbdrive che manterrò sotto controllo.

Domanda:

  1. Quanto sarebbe difficile ottenere un hash per un hard disk prima di ogni arresto del sistema e aggiungere l'hash a un log su una thumbdrive che può essere convalidato dopo ogni accesso?

  2. Dovrei avere il sistema smontato per garantire che questo metodo sia valido?

  3. Esiste già una soluzione preconfezionata di cui sei a conoscenza per questo problema?

Considerazioni:

  1. Avrei bisogno di garantire la sicurezza fisica del thumbdrive per assicurarmi che i checksum corrispondano sia valido (mantenere la sicurezza fisica di un keydrive è molto più facile che trasportare un computer con me)

  2. Questo metodo sarebbe probabilmente più facilmente implementato su macchine virtuali (anche se questo non fa nulla se l'host è compromesso).

  3. Avere un USB Live Linux sul thumbdrive per creare l'hash sull'unità non montata potrebbe essere un metodo più semplice, anche se non proprio snello.

Altri pensieri: Sono consapevole che la crittografia di sistema offre un certo livello di garanzia di integrità. Ma nella remota possibilità che la crittografia venga violata, mi piacerebbe saperlo.

SO: Arch Linux

    
posta Jay Holister 06.11.2014 - 16:54
fonte

2 risposte

6

Quasi impossibile, o almeno molto difficile. Innanzitutto, ci sono troppi dati. Ci vorrebbe molto tempo per calcolare un hash dell'intero HDD ad ogni spegnimento e di nuovo per ogni avvio. Si potrebbe alternativamente usare il chaining degli hash per aggirare il problema, ma richiederebbe un file system specializzato. Secondo, tuttavia, anche se si desidera aspettare un hash completo o utilizzare un file system che esegue il concatenamento in questo modo, i valori cambieranno durante il processo di avvio stesso. Verranno creati i file temporanei, i file di paging cambieranno, ecc., Quindi non funzionerà su un'unità di sistema senza un caricatore di avvio specializzato sulla chiavetta USB che possa essere convalidato sin dalle prime fasi.

In ogni caso, l'hash è irrilevante se la chiave di crittografia viene mantenuta in modo sicuro. Non è possibile modificare in modo significativo i dati crittografati se non si dispone della chiave di crittografia. Puoi corromperlo, ma un controllo di parità di base troverà quel tipo di manomissione. Se la chiave di crittografia viene compromessa, si è fottuti in entrambi i casi in quanto i dati potrebbero essere letti senza alterare l'unità.

Un elaborato attaccante potrebbe anche fare qualcosa di simile al caricamento nel firmware o nella memoria prima che l'hash possa essere eseguito e quindi sostituirsi dopo il controllo, evitando così il rilevamento con questo mezzo (e alterando l'hash dopo la prima volta) a meno che non montaggio personalizzato davvero elaborato che elaborerà tutto dall'HDD come non attendibile e caricherà solo le cose che superano il concatenamento di convalida.

Inoltre è molto più semplice se lo si monta come un'unità offline montata dopo l'avvio e può fidarsi dell'hardware a cui ci si sta collegando poiché non richiede quindi un bootloader affidabile. Se non ti puoi fidare dell'hardware, anche il bios e altri firmware di sistema diventano un problema.

Non c'è molto da fare per tentare di gestire questa situazione, poiché quasi ogni modello di minaccia considera il sistema danneggiato se la chiave è compromessa.

    
risposta data 06.11.2014 - 16:56
fonte
1

Un utente malintenzionato dovrebbe avere accesso alla chiave di crittografia per decrittografare il volume, modificare un file e quindi ricodificare nuovamente. Un utente malintenzionato non può semplicemente modificare i dati crittografati diretti. Poi, quando sei andato a decodificare i dati, la decifrazione fallirebbe. Finché la chiave di crittografia è protetta non dovresti avere problemi.

Se sei preoccupato dell'integrità dei file, ci sono programmi come TripWire che possono dirti quando determinati file sono stati modificati su disco . Mantiene gli hash dei file che gli dici di interessarti. Se uno di questi viene modificato su disco, questo viene registrato. Sarai in grado di controllare ogni volta che monti il volume se qualche file è stato modificato. Penso che questa sarebbe la tua migliore opzione. Tenere presente che se l'utente malintenzionato ha accesso alle chiavi di crittografia, tutto questo può essere modificato mentre l'unità è in linea.

Per rispondere in modo specifico alle tue domande:

How difficult would it be to obtain a hash for a harddrive before every system shutdown and have that hash added to a log on a thumbdrive that can be validated after every login?

Questo sarebbe molto poco pratico. Dovresti eseguire l'hash dell'intero volume che è essenzialmente una scansione completa del volume. Questo potrebbe richiedere da 30 minuti a ore a seconda delle dimensioni del disco.

Would I need to have the system unmounted to ensure this method is valid?

Affinché il controllo di integrità sia valido, l'unità deve essere online e montata. Tuttavia, un utente malintenzionato potrebbe nascondersi mentre l'unità è in linea. Quindi sarebbero inclusi nel controllo di integrità. Tipo di chi si trova nella prima situazione lì.

Is there already a prepackaged solution that you are aware of for this problem?

La risposta breve è no, non che io sia a conoscenza. Per garantire l'integrità dell'unità, deve essere online e decrittografata. Ma un attaccante può nascondersi nella verifica dell'integrità in questo modo. Vorresti eseguire un controllo di integrità offline, ma l'unità è crittografata. Penso che tu scegli la crittografia o scegli l'integrità offline. Credo che non sia pratico avere entrambi.

Sarei soddisfatto con l'opzione di crittografia. Quindi ho solo me stesso da incolpare se le chiavi di crittografia sono compromesse.

    
risposta data 06.11.2014 - 17:05
fonte

Leggi altre domande sui tag