Crittografia completa del disco con autenticazione a due fattori per Ubuntu: come?


9

Informazioni di base

Sono un principiante Linux recentemente svezzato da Windows. Attualmente sto usando Ubuntu 11.04 senza crittografia del disco completo. Solo la mia directory home è crittografata e con eCryptFS. Ultimamente, ho iniziato a notare che la crittografia non è trasparente come dovrebbe essere. VMWare, ad esempio, a volte incontra problemi per le macchine virtuali archiviate nella mia directory home crittografata, quindi ho semplicemente spostato le macchine virtuali in una posizione non crittografata e collegate ad essa dalla mia directory home crittografata. Ma questo è anche il punto: ho capito che in realtà non è molto sicuro lasciare il sistema non crittografato poiché un sistema operativo open source come Ubuntu è molto facile da modificare per divulgare informazioni che dovrebbe mantenere segrete.


Obbiettivo

Mi piacerebbe poter far funzionare la crittografia completa del disco insieme a un dispositivo chiave e una password per l'autenticazione pre-avvio.


Requisiti / Dettagli

  1. L'intero disco deve essere crittografato. Come minimo, il disco è costituito da singole partizioni che sono tutte crittografate. Se è possibile nascondere anche le partizioni con la crittografia, ci proverò. Più trasparente è la crittografia, migliore è; Non dovrei usare il mio computer in modo diverso o configurare nient'altro.
  2. Il dispositivo utilizzato per sbloccare e avviare la partizione crittografata deve essere un piccolo dispositivo portatile esterno. Questo ha due scopi: è molto meno probabile che il caricatore di avvio venga modificato per scopi dannosi poiché rimarrà con me quando non viene utilizzato; e i file delle chiavi per decrittografare il disco non saranno trovati da nessuna parte sul disco crittografato stesso in nessuna forma.
  3. I file delle chiavi devono essere crittografati con una password. Se dovessi perdere sia il mio computer che il mio dispositivo USB, i dati e il sistema operativo sarebbero ancora al sicuro. Se perdo la chiave USB o è compromessa, posso crearne un'altra pulita da un backup. Nessuna informazione viene divulgata in entrambi i casi. Naturalmente, se perdo il mio computer, è irrilevante.

Sì, ho consultato le guide di molti luoghi, ma il problema è che non soddisfano tutti i requisiti (in particolare il numero 3). Sono abbastanza sicuro che i miei requisiti siano abbastanza comuni che qualcuno abbia già provato e implementato con successo tale configurazione. Le sarei grato se qualsiasi professionista Linux potesse condividere una soluzione.


2
Ri "poiché un sistema operativo open source come Ubuntu è molto facile da modificare per divulgare informazioni che dovrebbe mantenere segrete". - Sareste sorpresi di quanto sia facile convincere i SO chiusi a fare lo stesso. Il fatto che un programma sia open-source non significa nulla sulla sua sicurezza o insicurezza contro gli attacchi locali.
user1686

Risposte:


2

C'è un modo semplice per avere la crittografia completa del disco che richiede la presenza di una particolare chiavetta USB e la tua password per l'avvio.

Quello che fai è staccare l'intestazione LUKS dal tuo disco rigido completamente crittografato e salvarlo sulla tua chiavetta USB.

Presumo che tu abbia già la seguente configurazione:

# /dev/sda1 is the boot partition (100MB)
# /dev/sda2 is the encrypted partition
parted /dev/sda mklabel msdos
parted /dev/sda -- mkpart primary ext2 1M 200M
parted /dev/sda -- mkpart primary ext4 200M -100M
cryptsetup luksFormat /dev/sda2

Crea una copia dell'intestazione luks e cancellala dal dispositivo locale:

mkdir /media/ramdisk && mount -t tmpfs -osize=20m,rw tmpfs /media/ramdisk
cryptsetup luksHeaderBackup /dev/sda2 --header-backup-file /media/ramdisk/header.img
dd if=/dev/urandom of=/dev/sda2 bs=1M count=2

Esegui l'ultimo passaggio più volte se sei il bersaglio di un'agenzia ad alto budget. Ho anche creato un ramdisk per contenere temporaneamente l'intestazione in modo che non indugi in seguito.

Con il tuo dispositivo USB in / dev / sdb, crea una partizione da 2 MB e carica l'intestazione su di essa:

parted /dev/sdb -- mklabel MSDOS
parted /dev/sdb -- mkpart primary 1M 3M
dd if=/media/ramdisk/header.img of=/dev/sdb1

In questo momento, tutto in / dev / sda2 sembra un dato casuale e hai la tua intestazione in / dev / sdb1. Per accedere manualmente all'unità crittografata si utilizza:

cryptsetup luksOpen --header /dev/sdb1 /dev/sda2 rootfs
mount /dev/mapper/rootfs /target

Il prossimo passo è fare in modo che il processo di avvio richieda l'inserimento del pendrive all'avvio. Ho trovato più semplice supporre che ci sarà e fallire altrimenti. Innanzitutto, scopri l'ID e l'UUID dei tuoi dispositivi:

find -L /dev/disk/by-id/ -samefile /dev/sdb1
/dev/disk/by-id/usb-Generic-_Compact_Flash-part1
find -L /dev/disk/by-id/ -samefile /dev/sda2
/dev/disk/by-id/scsi-SATA_ST3320820AS_5QF28W6V-part2

blkid /dev/sdb1
/dev/sdb1: UUID="63347546-2db3-4bc1-9414-1142739a4c9f" TYPE="crypto_LUKS"

Quindi modifica la tua /etc/crypttablinea in questo modo:

root /dev/disk/by-id/scsi-SATA_ST3320820AS_5QF28W6V-part2 none luks,header=/dev/disk/by-id/usb-Generic-_Compact_Flash-part1

(Potrebbe essere necessaria questa patch per ottenere supporto per l' headeropzione in crypttab)

Ultimo ma non meno importante, aggiorna il tuo initram:

update-initramfs -u

Potresti fare un ulteriore passo avanti e in realtà avere l'intera partizione di avvio caricata sull'unità USB . L'autore di questo articolo era su questo sito facendo un follow-up .

Ci sono molti approcci diversi che puoi adottare , con vari gradi di sicurezza e convenienza.

Una nota particolare sulla sicurezza: se la tua passphrase è compromessa, chiunque disponga di una copia dell'intestazione sarà in grado di decrittografare i dati, anche se in seguito cambi la passphrase.


1

So che TrueCrypt è disponibile per OSX, Windows e Linux. Sei in grado di eseguire due livelli di crittografia per l'intero disco. L'ho usato su Debian con la crittografia del disco completo AES. Richiede la password all'avvio per accedere ai dati sul disco rigido.


3
Pensavo che la crittografia del disco completo TrueCrypt funzionasse solo con Windows.
Kevin Li,

two levels of encryption for the whole drive! =two factor auth
GnP,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.