Finestre.  Virus.  I Quaderni.  Internet.  ufficio.  Utilità.  Autisti

La lotta alla pirateria sta guadagnando nuovo slancio, i titolari dei diritti e le agenzie governative stanno raddoppiando i loro sforzi in questa difficile questione. Suppongo che ognuno di noi abbia pensato a come proteggere i file personali dall'invasione di "ospiti inaspettati" e persone semplicemente troppo curiose.

introduzione

Crittograferemo i dischi mezzi standard Ubuntu e la chiave di crittografia, come la partizione /boot, verranno posizionati su un'unità rimovibile. Ma perché crittografare la partizione di root? Dopotutto, puoi crittografare solo /home? Ci sono diverse ragioni per questo. Il primo è basato su file di configurazione alcune informazioni possono essere estratte da /etc, anche se non si tratta di dati sensibili. La seconda è che se improvvisamente il contenuto del disco si interessa, puoi sempre dire che è successo tutto e che il disco era già pieno di dati pseudo casuali. Quindi, cosa è necessario per questo?

  • Unità flash con MBR
  • Ubuntu 12.10
  • Disco rigido vuoto

Useremo AES come algoritmo di crittografia del disco, poiché è accettato come standard e resistente alla crittografia e cryptsetup / LUKS come mezzo. Per poter aggiungere spazio libero al volume crittografato, utilizziamo i volumi logici (LVM).

Crea un volume crittografato

Dopo l'avvio dal LiveCD, è necessario preparare un'unità flash: creare una seconda partizione su di essa, dove verranno posizionati /boot e la chiave di crittografia. Creando la partizione /boot con il file system ext2 come seconda, uccidiamo due piccioni con una fava: la prima partizione sarà visibile in tutti i sistemi e i dati possono essere archiviati su di essa e la seconda da Windows non può essere vista così facilmente, il che aggiunge disagio ai curiosi. Per il partizionamento ho usato gparted, ma nessuno ti disturba a usare, ad esempio, fdisk. Successivamente, è necessario montare la partizione appena creata e generare file chiave:

Perché leggere un byte alla volta? Il punto è che la piscina numeri casuali nel kernel è relativamente piccolo e non sempre contiene abbastanza dati casuali, quindi il mouse è stato spostato in modo casuale durante la generazione.


Vediamo cosa fa questo comando. La prima chiave specifica il tipo di funzione hash da utilizzare per eseguire l'hashing della chiave master. La seconda chiave specifica l'algoritmo e il tipo di crittografia. Mi soffermerò su questo in modo un po 'più dettagliato. Cos'è il CBC? Come sai, AES è un cifrario a blocchi che opera in blocchi di 128, 192 o 256 bit. Ma, di norma, vengono crittografate quantità di informazioni molto maggiori. E sorge il problema: come crittografare in modo che non sia visibile una distribuzione non casuale, dalla quale un crittoanalista può estrarre informazioni. Le persone intelligenti lo hanno risolto in questo modo: il primo blocco contiene IV, un insieme casuale di bit. E ogni blocco successivo di dati aperti viene sottoposto a XOR con il blocco precedente di dati già crittografati. Tutto sembra andare bene, ma nel caso della crittografia del disco, un tale schema, per ovvie ragioni, non è applicabile (non aspetterai 10-20 minuti ogni volta che il sistema decodifichi la sezione che ti serve?). In LUKS, ESSIV viene utilizzato per risolvere il problema dell'accesso casuale alle informazioni: blocchi di dati relativamente piccoli vengono crittografati (settore per settore) e il vettore di inizializzazione viene generato in base al numero di settore e all'hash della chiave. Tale schema protegge anche da alcuni attacchi crittografici. In particolare, questo è il motivo per cui utilizzo LUKS. Confermando le tue intenzioni dopo il lancio squadra precedente, crea una mappatura del dispositivo LUKS:

# cryptsetup -d=/mnt/boot/key.bin luksOpen /dev/sdd disco crittografico

La prima fase della preparazione è completata: ora il dispositivo cryptodisk è apparso nella directory /dev/mapper, che può essere trattato come un normale disco.


Crea LVM su un volume crittografato

In linea di principio, ora puoi installare Ubuntu sul cryptodisk appena creato, ma, come ho già scritto, per poter aumentare lo spazio, è meglio creare un volume LVM sopra di esso, cosa che faremo. Inizializziamo il volume fisico e creiamo un gruppo di volumi:

Ora puoi formattarli in file system. Sei libero di scegliere te stesso, ma ho usato il buon vecchio ext4 sia per il volume root che per vg-home - secondo me, abbiamo già barato troppo per usare file system più recenti:

Abbiamo solo bisogno di installare Ubuntu su una partizione/disco non crittografato e spostarlo su uno crittografato.

Preparazione e migrazione di Ubuntu

Ora mettiamo in chiaro Disco Ubuntu- eseguire la configurazione a proprio piacimento, ad eccezione del posizionamento di /boot e bootloader. Devono essere posizionati su un'unità flash, dove hai creato in anticipo la sezione appropriata. Successivamente, eseguiamo l'avvio dall'unità flash USB per verificare se tutto è aumentato correttamente, installiamo i pacchetti lvm2 e cryptsetup utilizzando apt-get: sono stati rimossi automaticamente dopo Installazioni Ubuntu- e aggiungi/modifica le righe /etc/fstab. Dovresti ottenere qualcosa di simile (ad eccezione delle linee con pseudo-file system, che, tuttavia, in sistemi moderni NO):

/etc/fstab UUID=dd7ca139-074a-4b1b-a116-3a42feab7459/boot ext2 defaults 0 2 /dev/mapper/vg-root/ext4 error=remount-ro 0 1 /dev/mapper/vg-home/home ext4 defaults 0 1 / dev / mapper / vg - swap nessuno swap sw 0 0

Montiamo la partizione /boot tramite UUID in modo che quando si aggiungono nuovi dischi non ci sia confusione con i loro nomi. Ora andiamo al file /etc/crypttab, lo abbiamo con il seguente contenuto:

Creiamo uno script per non montare nuovamente l'unità flash USB:

Copia la chiave e cryptsetup

cp / boot / chiave .bin $ ( DESTDIR ) / etc / crypto copy_exec / sbin / cryptsetup / sbin

E lo script effettivo per connettere il cryptodisk (viene eseguito durante l'avvio di initrd):

/etc/initramfs-tools/scripts/local-top/cryptokeys. . . modprobe -b dm_crypt while ! /sbin/cryptsetup -d=/etc/crypto/key.bin luksOpen /dev/disk/by-uuid/c34e4c91-1fa1-4802-88ca-9c3be5c99097 cryptodisk ; do echo "Riprova..." done

Il ciclo while è necessario se successivamente aggiungi lo sblocco del volume con una password. Entrambi gli script devono essere eseguibili, altrimenti il ​​comando successivo non li vedrà e creerà un'immagine standard. Ora puoi emettere il comando initrd update:

# aggiorna initrd -u -k all -v

Ci siamo quasi dimenticati della configurazione del bootloader. Esistono due modi per modificarlo: uno è semplice ma sbagliato: modifica diretta del file /boot/grub/grub.cfg, il secondo è anch'esso semplice, ma questa volta corretto. L'inesattezza del primo metodo è che con ogni aggiornamento del kernel, la configurazione viene sovrascritta utilizzando script da /etc/grub.d/. Andremo dall'altra parte: aggiungeremo uno script che genererà le righe corrette nella vera configurazione di Grab. Tuttavia, ce n'è uno "ma": quando aggiorni il kernel, dovrai cambiarlo ogni volta o rimanere su quello vecchio (quest'ultimo, secondo me, è preferibile - vedi barra laterale). Ecco come appaiono le sue battute:

/etc/grub .d/40_custom menuentry "Ubuntu crypto" ( recordfail = 1 if [ - n $ ( have_grubenv ) ] ; then save_env recordfail ; fi set quiet = 1 insmod part_msdos insmod ext2 insmod gzio

L'UUID è tratto da un file preregistrato

ricerca -- no - floppy -- fs - uuid -- set = root dd7ca139 - 074a - 4b1b - a116 - 3a42feab7459

La partizione /boot è considerata la partizione root per Grub, quindi i percorsi per il kernel e l'immagine initrd sono relativi ad esso.

Facoltativamente, puoi disattivare le voci di menu che non ti servono. Per fare ciò, rimuovi semplicemente il permesso di esecuzione da tutti gli script non necessari in /etc/grub.d/. Ora puoi aggiornare la configurazione principale:

Dopo la copia, puoi provare ad eseguire l'avvio dall'unità flash: seleziona la voce di menu Ubuntu Crypto. Se tutto è andato bene, dopo un po' vedrai una richiesta di accesso. In tal caso, posso congratularmi con te: stai già lavorando in un sistema crittografato.


Aggiungi/Cambia chiavi

Diciamo che devi cambiare la chiave: l'hai compromessa o hai appena creato una politica di modifica e vuoi seguirla rigorosamente. Cosa è necessario per questo? Prima di tutto fallo backup intestazione del volume LUKS - se tutto va bene, dopo aver cambiato la chiave puoi distruggerla. Lo facciamo, ovviamente, su una partizione non crittografata:

Esaminiamo gli attuali keylot (i posti nell'intestazione del volume crittografato in cui sono archiviate le chiavi - sì, possono essercene più di uno) e ricordiamo il numero di quello attivo (Abilitato). In genere, questo è zero.


Autore: Nitish Tiwari
Data di pubblicazione: 04 febbraio 2015
Traduzione: N.Romodanov
Data di trasferimento: marzo 2015

TrueCrypt non è più mantenuto, ma dm-crypt e LUKS sono un'ottima opzione open source. codice sorgente, che consente di crittografare e utilizzare i dati crittografati.

La sicurezza dei dati è diventata una delle maggiori preoccupazioni tra gli utenti di Internet. Le notizie sul furto di dati dei siti web sono diventate molto comuni, ma proteggere i tuoi dati non è solo responsabilità dei siti web, c'è molto che noi utenti finali possiamo fare per la nostra sicurezza. Ad esempio, solo alcuni esempi sono l'utilizzo di password complesse, la crittografia dei dischi rigidi che si trovano sui nostri computer e l'utilizzo di connessioni sicure. In particolare, la crittografia del disco rigido lo è in un buon modo sicurezza: non solo ti proteggerà da eventuali trojan che tentano di rubare i tuoi dati sulla rete, ma anche da attacchi fisici.

Nel maggio di quest'anno, lo sviluppo dell'applicazione TrueCrypt, un noto strumento open source per la crittografia del disco, si è interrotto. Come molti di voi sanno, era uno degli strumenti più affidabili per crittografare le unità. È triste vedere scomparire uno strumento di questo calibro, ma tale è la grandezza del mondo open source che ci sono molti altri strumenti open source che possono aiutarti a raggiungere la sicurezza con la crittografia del disco, che ha anche molte impostazioni di configurazione. Ne considereremo due - dm-crypt e LUKS - as Alternative a TrueCrypt per la piattaforma Linux. Iniziamo con una rapida occhiata a dm-crypt e poi a LUKS.

Si tratta di informazioni di base su un dispositivo che utilizza LUKS, che indica quale crittografia viene utilizzata, la modalità di crittografia, l'algoritmo hash e altri dati crittografici.

Risorse

Passaggio 01: Considerando Dm-crypt

Il nome dell'applicazione dm-crypt è l'abbreviazione di device mapper-crypt (crittografia durante la mappatura di un dispositivo). Come suggerisce il nome, si basa su un framework di mappatura dei dispositivi. Kernel Linux, progettato per mappare i dispositivi a blocchi su dispositivi a blocchi virtuali di livello superiore. Durante la mappatura dei dispositivi, puoi utilizzare diverse funzionalità del kernel, come dm-cache (crea volumi ibridi), dm-verity (progettato per verificare l'integrità dei blocchi, fa parte di Chrome OS) e anche il famosissimo Docker. Per scopi crittografici, dm-crypt utilizza il framework Linux Kernel Crypto API.

Quindi, per riassumere, l'applicazione dm-crypt è un sottosistema di crittografia a livello di kernel che offre una crittografia del disco trasparente: ciò significa che i file sono disponibili immediatamente dopo che il disco è stato montato - non c'è alcun ritardo visibile per l'utente finale. Per crittografare usando dm-crypt puoi semplicemente specificare uno dei cifrari simmetrici, la modalità di cifratura, la chiave (qualsiasi dimensione consentita), la modalità di generazione IV e quindi creare un nuovo dispositivo a blocchi in /dev. Ora, durante la scrittura su questo dispositivo, si verificherà la crittografia e, una volta letto, verrà decrittografato. Puoi montare un filesystem su questo dispositivo come al solito, oppure puoi usare il dispositivo dm-crypt per creare altri costrutti come un volume RAID o LVM. La tabella di mappatura per dm-crypt è impostata come segue:

Qui, il valore di start-sector è in genere 0, il valore di size è la dimensione del dispositivo in settori e il nome di destinazione è il nome che si desidera assegnare al dispositivo crittografato. La tabella di mappatura degli obiettivi è composta dalle seguenti sezioni:

[<#opt_params> ]

Passaggio 02: Considerando LUKS

Come abbiamo visto nel passaggio precedente, l'applicazione dm-crypt può crittografare/decrittografare i dati da sola. Ma ha alcuni inconvenienti: se usi dm-crypt direttamente, non creerà metadati su disco e questo può essere un grosso problema se vuoi garantire la compatibilità tra diverse distribuzioni Linux. Inoltre, l'applicazione dm-crypt non supporta l'uso di più chiavi, mentre nella vita reale è molto importante utilizzare più chiavi.

È per questi motivi che è nata la metodologia LUKS (Linux Unified Key Setup). LUKS è lo standard per la crittografia del disco rigido in Linux e la standardizzazione consente la compatibilità tra le distribuzioni. Sono supportate anche più chiavi e passphrase. Come parte di questa standardizzazione, un'intestazione LUKS viene aggiunta ai dati crittografati e questa intestazione contiene tutte le informazioni necessarie per la configurazione. Quando esiste una tale intestazione con i dati, gli utenti possono facilmente passare a qualsiasi altra distribuzione. Il progetto dm-crypt attualmente consiglia di utilizzare LUKS come metodo preferito per configurare la crittografia del disco. Diamo un'occhiata a come installare l'utility cryptsetup e come usarla per creare volumi basati su LUKS.

Passaggio 03: Installazione

La funzionalità a livello di kernel utilizzata in dm-crypt è già presente in all Distribuzioni Linux; abbiamo solo bisogno di un'interfaccia per loro. Utilizzeremo l'utilità cryptsetup, che consente di creare volumi utilizzando dm-crypt, lo standard LUKS e la buona vecchia applicazione TrueCrypt. Per installare cryptsetup su distribuzioni Debian/Ubuntu, puoi utilizzare i seguenti comandi:

$ sudo apt-get update $ sudo apt-get install cryptsetup

Il primo comando sincronizza i file indice del razzo con il contenuto dei loro repository: ottiene informazioni su ultime versioni tutti i pacchetti disponibili. Il secondo comando scaricherà e installerà il pacchetto cryptsetup sul tuo computer. Se stai usando la distribuzione RHEL/Fedora/CentOS, puoi usare il comando yum per installare l'utility cryptsetup.

$ yum installa cryptsetup-luks

Passaggio 04: Creazione di un file di destinazione

Ora che l'utilità cryptsetup è stata installata correttamente, è necessario creare un file di destinazione che conterrà il contenitore LUKS. Sebbene esistano molti modi per creare un file di questo tipo, è necessario soddisfare una serie di condizioni durante la creazione:

  • Il file non deve essere composto da più parti situate in punti diversi del disco, ovvero, durante la creazione, è necessario allocare immediatamente una quantità sufficiente di memoria per esso.
  • L'intero file deve essere riempito con dati casuali in modo che nessuno possa dire dove si troveranno i dati utilizzati nella crittografia.

Nella creazione di un file che soddisfi le condizioni di cui sopra, il comando dd può aiutarci, anche se funzionerà in modo relativamente lento. Basta usarlo con il file di dispositivo speciale /dev/random specificato come input e il file di destinazione da specificare come output. Un comando di esempio è simile al seguente:

$ dd if=/dev/random of=/home/nitish/basefile bs=1M count=128

Questo creerà un file di 128 MB chiamato basefile nella directory /home/nitish. Tuttavia, tieni presente che il completamento di questo comando potrebbe richiedere molto tempo; nel sistema utilizzato dal nostro esperto, ci è voluta un'ora.

Passaggio 05: Crea dm-crypt LUKS

Dopo aver creato il file di destinazione, è necessario creare una sezione LUKS in questo file. Questa sezione funge da livello di base su cui è costruita tutta la crittografia dei dati. Inoltre, l'intestazione di questa sezione (intestazione LUKS) contiene tutte le informazioni necessarie per la compatibilità con altri dispositivi. Per creare una partizione LUKS, utilizzare il comando cryptsetup:

$ cryptsetup -y luksFormat /home/nitish/basefile

Dopo aver acconsentito all'eliminazione definitiva dei dati all'interno del file di base, immesso la passphrase e confermata, verrà creata la partizione LUKS. Puoi verificarlo con il seguente comando file:

$filebasefile

Tieni presente che la frase che inserisci qui verrà utilizzata per decrittografare i dati. È molto importante memorizzarlo e conservarlo in un luogo sicuro, perché se lo dimentichi, quasi sicuramente perderai tutti i dati sulla partizione crittografata.

Passaggio 06: Creare e montare un file system

Il contenitore LUKS che abbiamo creato nel passaggio precedente è ora disponibile come file. Nel nostro esempio, questo è /home/nitish/basefile. L'utilità cryptsetup consente di aprire un contenitore LUKS come dispositivo indipendente. Per fare ciò, prima mappa il file contenitore al nome del dispositivo e poi monta il dispositivo. Il comando di visualizzazione è simile al seguente:

Dopo aver inserito con successo frase d'accesso creato nel passaggio precedente, il contenitore LUKS verrà mappato al volume1. Ciò che effettivamente accade è che il file viene aperto come dispositivo di loopback locale, in modo che il resto del sistema possa ora trattare il file come se fosse un dispositivo reale.

Passaggio 07: File system - continua

Il file contenitore LUKS è ora disponibile sul sistema come dispositivo normale. Prima di poterlo utilizzare per le normali operazioni, dobbiamo formattarlo e creare un file system su di esso. Puoi usare qualsiasi sistema di file che è supportato sul tuo sistema. Nel mio esempio, abbiamo utilizzato ext4 poiché è il file system più recente per i sistemi Linux.

$ mkfs.ext4 -j /dev/mapper/volume1

Una volta che il dispositivo è stato formattato con successo, il passo successivo è montarlo. Devi prima creare un punto di montaggio, preferibilmente in /mnt (buon senso).

$ mkdir /mnt/files

Ora montiamo:

Per un controllo incrociato, usa il comando df –h: vedrai il dispositivo "/dev/mapper/volume1" alla fine dell'elenco dei dispositivi montati. Si può vedere che l'intestazione LUKS occupa già dello spazio nel dispositivo.

Grazie a questo passaggio, ora puoi utilizzare un dispositivo LUKS con un file system ext4. Usa semplicemente questo dispositivo di archiviazione file: tutto ciò che scrivi su questo dispositivo verrà crittografato e tutto ciò che leggerai da esso verrà decrittografato e mostrato a te.

Passaggio 08: Utilizzando un disco crittografato

Abbiamo seguito diversi passaggi per ottenere questo risultato e, se non ti è molto chiaro come funziona, molto probabilmente sarai confuso su ciò che deve essere fatto solo una volta (necessario per l'installazione) e che dovrebbe essere fatto regolarmente quando si utilizza la crittografia. Consideriamo il seguente scenario: hai completato con successo tutti i passaggi precedenti e poi hai spento il computer. Il giorno successivo, quando avvii il computer, non riesci a trovare il dispositivo montato: dov'è andato? Per far fronte a tutto ciò, è necessario tenere presente che dopo aver avviato il sistema, è necessario montare il contenitore LUKS e smontarlo prima di arrestare il computer.

Per accedere al file LUKS, ogni volta che accendi il computer, segui questi passaggi, quindi chiudi il file in modo sicuro prima di spegnere il computer:

Apri il file LUKS (ad es. /home/nitish/basefile) e inserisci la password. Il comando è simile al seguente:

$ cryptsetup luksOpen /home/nitish/basefile volume1

Una volta che il file è aperto, montalo (se non si monta automaticamente):

$ mount /dev/mapper/volume1 /mnt/files

Ora puoi utilizzare il dispositivo montato come un normale disco e leggere o scrivere dati su di esso.

Al termine, smontare il dispositivo in questo modo:

$ smonta /mnt/file

Dopo aver smontato correttamente, chiudi il file LUKS:

$ cryptsetup luksChiudi il volume1

Passaggio 09: Backup

La maggior parte delle perdite di dati archiviati in un contenitore LUKS è dovuta al danneggiamento dell'intestazione LUKS o degli slot chiave. Oltre al fatto che le intestazioni LUKS possono essere danneggiate anche a causa di una sovrascrittura accidentale nella memoria delle intestazioni, in condizioni realiÈ anche possibile che il disco rigido si guasti completamente. Il modo migliore proteggere da tali problemi è backup. Vediamo quali opzioni di backup sono disponibili.

Per eseguire il backup del file di intestazione LUKS, specificare il parametro luksHeaderBackup nel comando:

$ sudo cryptsetup luksHeaderBackup /home/nitish/basefile --header-backup-file /home/nitish/backupfile

Oppure, se desideri ripristinare un file da un backup, specifica il parametro luksHeaderRestore nel comando:

$ sudo cryptsetup luksHeaderRestore /home/nitish/basefile --header-backup-file /home/nitish/backupfile

È possibile utilizzare il parametro isLuks per verificare la presenza di un file di intestazione LUKS e verificare che il file con cui si ha a che fare corrisponda a un dispositivo LUKS effettivo.

$ sudo cryptsetup -v isLuks /home/nitish/basefile

Abbiamo già visto come eseguire il backup dei file di intestazione LUKS, ma il backup di un'intestazione LUKS non protegge realmente da un errore totale del disco, quindi è necessario eseguire il backup dell'intera partizione con il seguente comando cat:

$ cat /home/nitish/basefile > basefile.img

Passaggio 10: Varie impostazioni

Ci sono alcune altre impostazioni che possono essere utili quando si utilizza la crittografia LUKS dm-crypt. Diamo un'occhiata a loro.

Per eseguire il dump dell'intestazione LUKS, il comando cryptsetup ha l'opzione luksDump. Ti consentirà di scattare un'istantanea del file di intestazione LUKS del dispositivo che stai utilizzando. Un comando di esempio è simile al seguente:

$ cryptsetup luksDump /home/nitish/basefile

All'inizio di questo articolo, abbiamo accennato al fatto che LUKS supporta più chiavi. Vediamolo in azione ora aggiungendo un nuovo slot chiave ( note per.: vano chiave - posto chiavi in ​​mano):

$ cryptsetup luksAddKey --Key-slot 1 /home/nitish/basefile

Questo comando aggiunge una chiave allo slot chiave numero 1, ma solo dopo aver inserito la password corrente (la chiave presente nello slot chiave 0). Ci sono otto slot chiave in totale e puoi decrittografare i dati utilizzando qualsiasi chiave. Se scarichi l'intestazione dopo aver aggiunto la seconda chiave, vedrai che il secondo slot della chiave è occupato.

Puoi rimuovere gli slot chiave in questo modo:

$ cryptsetup luksRemoveKey /home/nitish/basefile

Questo rimuoverà lo slot chiave con il numero di slot più alto. Fai attenzione a non eliminare tutti gli slot o i tuoi dati andranno persi definitivamente.

: - Russo

Sviluppo della pagina attiva completato

Se c'è qualcosa da aggiungere, integra le sezioni con nuove informazioni. I nostri errori di battitura e gli errori nell'articolo possono essere modificati in modo sicuro, non è necessario segnalarlo per posta, si prega di osservare messa in piega questa pagina e utilizzare i separatori di sezione (linee grigie di spessore variabile).

Crittografia dei dati in Debian

Molte persone pensano che non sia necessario crittografare i dati. Tuttavia, nella vita di tutti i giorni, incontriamo spesso situazioni come "un'unità flash è stata persa" o "un laptop è stato consegnato per la riparazione", ecc. Se i tuoi dati sono crittografati, non devi preoccupartene affatto: nessuno li pubblicherà su Internet o li utilizzerà in altro modo.

Crittografia con cryptsetup

Installa i componenti necessari:

# apt-get install cryptsetup

Sintassi standard

/dev/sda2. Inseriamo il comando:

# cryptsetup crea sda2_crypt /dev/sda2

Questo comando creerà una connessione crittografata al nostro disco. In catalogo /dev/mapper apparirà un nuovo dispositivo con il nome da noi richiesto: /dev/mapper/sda2_crypt, accedendo al quale utilizziamo l'accesso al disco crittografato. Nel caso di LUKS, il nome sarebbe /dev/mapper/sda2_crypt

Se sul disco era già presente un file system e vorremmo salvare i dati su di esso, è necessario crittografarli per il loro utilizzo successivo:

# dd if=/dev/sda2 of=/dev/mapper/sda2_crypt

Se viene creato un nuovo disco su una partizione vuota, puoi formattarlo:

# mkfs.ext3 /dev/mapper/sda2_crypt

Successivamente, puoi montare questo disco ovunque:

# mount /dev/mapper/sda2_crypt /path/to/mount/point

Verifica l'integrità dei dati (come al solito, meglio utilizzato solo in stato non montato):

# fsck.ext3 /dev/mapper/sda2_crypt

E persino decodificare se non vogliamo più utilizzare la crittografia:

# dd if=/dev/mapper/sda2_crypt of=/dev/sda2

sintassi LUKS

I passaggi precedenti possono essere eseguiti secondo lo standard LUKS

Inizializziamo la sezione:

cryptsetup luksFormat /dev/sda2

Ci colleghiamo al sistema:

cryptsetup luksOpen /dev/sda2 sda2_crypt

Formattazione:

mkfs.ext4 -v -L DATA /dev/mapper/sda2_crypt

Montiamo:

montare /dev/mapper/sda2_crypt /mnt/data

La sezione può essere disabilitata manualmente sul sistema

cryptsetup luksChiudi sda2_crypt

Connessione all'avvio

Il file viene utilizzato per questo scopo. crypttab.

Per il nostro disco, scrivi la seguente riga al suo interno:

nano /etc/crypttab # name mapper device key params/options # Sintassi standard sda2_crypt /dev/sda2 none aes-cbc-plain:sha256 # e/o LUKS standard sda2_crypt /dev/sda2 none luks

L'impostazione predefinita prevede la crittografia con una password inserita dall'utente. Pertanto, ogni volta che avvii il tuo computer, il sistema ti chiederà ogni volta una password per connettere ogni partizione crittografata. Anche se queste sezioni non sono registrate in fstab.

Se vogliamo montare manualmente, aggiungiamo l'opzione auto nel campo "Impostazioni/Opzioni".

Montaggio manuale di una partizione crittografata in base ai dati da /etc/crypttab

cryptdisks_start msda2_crypt

E spegnimento con fs premontato.

cryptdisks_stop sda2_crypt

Per montare automaticamente fs sulla partizione crittografata connessa, aggiungi una riga a /etc/fstab

/dev/mapper/sda2_crypt /mnt/data ext4 predefinito 0 0

Lavorare con le chiavi in ​​LUKS

La sezione LUKS supporta 8 chiavi diverse, ognuna delle quali si inserisce nel proprio slot.

Visualizza l'elenco delle chiavi utilizzate

cryptsetup luksDump /dev/sda2

In LUKS possono essere utilizzati 2 tipi di chiavi: frasi chiave e file.

Puoi aggiungere una parola chiave

cryptsetup luksAddKey /dev/sda2

È possibile aggiungere un file chiave (2048 bit) e impostarne i diritti di accesso.

dd if=/dev/urandom of=/root/ext2.key bs=512 count=4 cryptsetup luksAddKey /dev/sda2 /root/ext2.key chmod 400 /root/sda2.key cryptsetup -d /root/sda2.key luksOpen /dev/sda2 sda2_crypt

Per connettersi all'avvio tramite chiave, modificare /etc/crypttab

nano /etc/crypttab sda2_crypt /dev/sda2 /root/sda2.key luks

Puoi rimuovere una passphrase o una chiave da una sezione

cryptsetup luksKillSlot /dev/sda2 1

Montaggio di emergenza in una distribuzione "straniera".

Nessuno è al sicuro dai problemi e talvolta è necessario accedere a una partizione crittografata da un'emergenza Disco LiveCD.

Avviamo, colleghiamo la partizione al sistema e montiamo il fs:

cryptsetup luksOpen /dev/sda2 sda2_crypt mount -t ext4 /dev/mapper/sda2_crypt /mnt/backup

Dopo il lavoro, smontare fs e disconnettere la partizione crittografata dal sistema

umount /mnt/backup cryptsetup luksChiudi sda2_crypt

Messaggi di errore di arresto

Se la partizione root è crittografata, verrà visualizzato un messaggio all'arresto

l'arresto dei primi dischi crittografici... non è riuscito

Questo è un errore tecnico. All'arresto, i file system vengono sempre smontati per primi e solo successivamente viene smontata la partizione. Di conseguenza, risulta che l'utilità cryptsetup situata nella partizione root non montata non è più disponibile per l'avvio, di cui ci parla INIT. Senza stampelle, questo problema non può essere risolto, perché. per questo è necessario considerare le opzioni con il trasferimento di cryptsetup su un disco RAM

Una situazione simile si verifica quando si utilizza un RAID software contenente una partizione root. 8)

Crittografia con il modulo loop-aes

Crittografia di una partizione del disco rigido, unità flash con password

In questo come metodo di crittografia descritto AES256, altri metodi possono essere applicati in modo simile (sostituendo il nome del metodo con quello appropriato). Avremo bisogno dei seguenti pacchetti:

# apt-get install loop-aes-utils loop-aes-modules-`uname -r`

Nota: se stai usando un kernel per il quale il loop-aes-modules richiesto non è nel repository, puoi installare i moduli con i seguenti comandi:

# apt-get install module-assistant loop-aes-source # module-assistant a-i loop-aes

Primo stadio

SU stato iniziale stiamo preparando il disco per lavorarci usando la crittografia.

Selezioniamo la partizione del disco (o unità flash) che vogliamo crittografare, ad esempio lo sarà /dev/sda2. Inseriamo il comando:

# losetup -e AES256 -T /dev/loop0 /dev/sda2

Dopo aver eseguito questo comando, tutte le chiamate al dispositivo /dev/loop0 verrà crittografato e crittografato e reindirizzato al dispositivo /dev/sda2. Ora abbiamo sia canali crittografati che non crittografati sul dispositivo di archiviazione. I dati vengono crittografati utilizzando la password specificata durante l'esecuzione di losetup.

Ora possiamo, ad esempio, formattare il dispositivo:

# mkfs.ext3 /dev/loop0

Possiamo montarlo:

# mount /dev/loop0 /path/to/mount

possiamo disabilitare la crittografia:

# losetup -d /dev/loop0

e, soprattutto, possiamo crittografare la partizione senza perdita di dati:

# dd if=/dev/sda2 of=/dev/loop0

e anche decifrare se decidiamo che la crittografia non è il nostro metodo:

# dd if=/dev/loop0 of=/dev/sda2

Bene, la parte migliore è che possiamo eseguire controlli di integrità del file system:

# fsck.ext3 /dev/loop0

Questa funzione non è disponibile in tutti i metodi di crittografia delle partizioni.

Uso quotidiano

Se avevi già una voce di sezione /dev/sda2 nel tuo /etc/fstab, quindi devi solo aggiungere opzioni e, in caso contrario, scrivi qualcosa del genere:

/dev/sda2 /path/to/mount loop ext3,crittografia=AES256 0 0

Ora durante il caricamento sistema operativo ti verrà richiesta una password per montare.

Se non desideri che il processo di download venga interrotto da una richiesta di password, puoi aggiungere opzioni auto,utente in registrazione /etc/fstab:

/dev/sda2 /path/to/mount ext3 loop,encryption=AES256,noauto,user 0 0

Naturalmente, puoi montare manualmente (o da uno script):

# mount /dev/sda2 /path/to/mount -o loop,encryption=AES256

Montaggio di più file system

A volte vuoi crittografare più sezioni con dati contemporaneamente, ma per non inserire un mare di password per ciascuna montare. Ad esempio, hai un'unità flash che porti da casa al lavoro, un disco rigido portatile, ecc. O solo alcune partizioni / dischi rigidi.

Supponiamo di avere una partizione crittografata /dev/sda2, che montiamo nella directory ogni volta che avviamo /mnt1. Apparso nuovo disco rigido /dev/sdb1 e vogliamo che venga montato automaticamente nella directory mnt2 quando si monta il primo. Ovviamente puoi creare sistema comune su qualcosa di simile LVM, ma puoi procedere nel modo più semplice:

prescrivere in fstab come la seguente riga:

/dev/sda2 /mnt1 ext3 noatime,exec,loop,crittografia=AES256 0 0

Il sistema, all'avvio, monta i punti nello stesso ordine descritto in fstab, quindi se la prima partizione non è montata, la chiave per montare la seconda partizione rimarrà non disponibile e anche la seconda partizione non verrà montata.

La password è memorizzata come normale/testo questo non è certo molto bello, ma è memorizzato su una partizione cifrata (che può essere smontata). Puoi usare invece gpg-key, tuttavia, questo non aggiungerà molta sicurezza (se possono già rubare la chiave, allora non farà molta differenza quale sarà questa chiave), opzione di crittografia con gpg-chiave descritta in uomo smarrito, qui darò solo un esempio di registrazione in fstab:

/dev/sda2 /mnt1 ext3 noatime,exec,loop,crittografia=AES256 0 0

Appunti

Per ulteriori informazioni sugli algoritmi di crittografia supportati, vedere uomo smarrito, puoi anche vedere una descrizione di altre opzioni del programma lostup.

Se hai problemi con l'installazione dei moduli AES, leggi la documentazione fornita con il pacchetto loop-aes-source.

GRUB e disco root crittografato

Quando si installa una partizione root su un disco crittografato, GRUB potrebbe mostrare bug nel menu principale. Ciò accade perché il carattere standard /usr/share/grub/unicode.pf2 non è disponibile. Copiare il carattere

cp /usr/share/grub/unicode.pf2 /boot/grub/

Specificare l'impostazione

nano /etc/default/grub GRUB_FONT=/boot/grub/unicode.pf2

Applicazione dell'impostazione:

update-grub

TrueCrypt non è più supportato, ma dm-crypt e LUKS sono un'ottima opzione open source per crittografare e utilizzare dati crittografati.

La sicurezza dei dati è diventata una delle maggiori preoccupazioni tra gli utenti di Internet. Le notizie sul furto di dati dei siti web sono diventate molto comuni, ma proteggere i tuoi dati non è solo responsabilità dei siti web, c'è molto che noi utenti finali possiamo fare per la nostra sicurezza. Ad esempio, solo alcuni esempi sono l'utilizzo di password complesse, la crittografia dei dischi rigidi che si trovano sui nostri computer e l'utilizzo di connessioni sicure. In particolare, la crittografia del disco rigido è un buon modo per garantire la sicurezza: non solo ti proteggerà da eventuali trojan che tentano di rubare i tuoi dati attraverso la rete, ma anche da attacchi fisici.

Nel maggio di quest'anno, lo sviluppo dell'applicazione TrueCrypt, un noto strumento open source per la crittografia del disco, si è interrotto. Come molti di voi sanno, era uno degli strumenti più affidabili per crittografare le unità. È triste vedere scomparire uno strumento di questo calibro, ma tale è la grandezza del mondo open source che ci sono molti altri strumenti open source che possono aiutarti a raggiungere la sicurezza con la crittografia del disco, che ha anche molte impostazioni di configurazione. Ne esamineremo due - dm-crypt e LUKS - come alternativa a TrueCrypt per la piattaforma Linux. Iniziamo con una rapida occhiata a dm-crypt e poi a LUKS.

Si tratta di informazioni di base su un dispositivo che utilizza LUKS, che indica quale crittografia viene utilizzata, la modalità di crittografia, l'algoritmo hash e altri dati crittografici.

Risorse

Passaggio 01: Considerando Dm-crypt

Il nome dell'applicazione dm-crypt è l'abbreviazione di device mapper-crypt (crittografia durante la mappatura di un dispositivo). Come suggerisce il nome, si basa sulla mappatura dei dispositivi, un framework del kernel Linux progettato per mappare i dispositivi a blocchi su dispositivi a blocchi virtuali di livello superiore. Durante la mappatura dei dispositivi, puoi utilizzare diverse funzionalità del kernel, come dm-cache (crea volumi ibridi), dm-verity (progettato per verificare l'integrità dei blocchi, fa parte di Chrome OS) e anche il famosissimo Docker. Per scopi crittografici, dm-crypt utilizza il framework Linux Kernel Crypto API.

Quindi, per riassumere, l'applicazione dm-crypt è un sottosistema di crittografia a livello di kernel che offre una crittografia del disco trasparente: ciò significa che i file sono disponibili immediatamente dopo che il disco è stato montato - non c'è alcun ritardo visibile per l'utente finale. Per crittografare usando dm-crypt puoi semplicemente specificare uno dei cifrari simmetrici, la modalità di cifratura, la chiave (qualsiasi dimensione consentita), la modalità di generazione IV e quindi creare un nuovo dispositivo a blocchi in /dev. Ora, durante la scrittura su questo dispositivo, si verificherà la crittografia e, una volta letto, verrà decrittografato. Puoi montare un filesystem su questo dispositivo come al solito, oppure puoi usare il dispositivo dm-crypt per creare altri costrutti come un volume RAID o LVM. La tabella di mappatura per dm-crypt è impostata come segue:

Qui, il valore di start-sector è in genere 0, il valore di size è la dimensione del dispositivo in settori e il nome di destinazione è il nome che si desidera assegnare al dispositivo crittografato. La tabella di mappatura degli obiettivi è composta dalle seguenti sezioni:

[<#opt_params> ]

Passaggio 02: Considerando LUKS

Come abbiamo visto nel passaggio precedente, l'applicazione dm-crypt può crittografare/decrittografare i dati da sola. Ma ha alcuni inconvenienti: se usi dm-crypt direttamente, non creerà metadati su disco e questo può essere un grosso problema se vuoi garantire la compatibilità tra diverse distribuzioni Linux. Inoltre, l'applicazione dm-crypt non supporta l'uso di più chiavi, mentre nella vita reale è molto importante utilizzare più chiavi.

È per questi motivi che è nata la metodologia LUKS (Linux Unified Key Setup). LUKS è lo standard per la crittografia del disco rigido in Linux e la standardizzazione consente la compatibilità tra le distribuzioni. Sono supportate anche più chiavi e passphrase. Come parte di questa standardizzazione, un'intestazione LUKS viene aggiunta ai dati crittografati e questa intestazione contiene tutte le informazioni necessarie per la configurazione. Quando esiste una tale intestazione con i dati, gli utenti possono facilmente passare a qualsiasi altra distribuzione. Il progetto dm-crypt attualmente consiglia di utilizzare LUKS come metodo preferito per configurare la crittografia del disco. Diamo un'occhiata a come installare l'utility cryptsetup e come usarla per creare volumi basati su LUKS.

Passaggio 03: Installazione

La funzionalità a livello di kernel utilizzata da dm-crypt è già disponibile in tutte le distribuzioni Linux; abbiamo solo bisogno di un'interfaccia per loro. Utilizzeremo l'utilità cryptsetup, che consente di creare volumi utilizzando dm-crypt, lo standard LUKS e la buona vecchia applicazione TrueCrypt. Per installare cryptsetup su distribuzioni Debian/Ubuntu, puoi utilizzare i seguenti comandi:

$ sudo apt-get update $ sudo apt-get install cryptsetup

Il primo comando sincronizza i file indice del razzo con il contenuto dei loro repository: ottiene informazioni sulle ultime versioni di tutti i pacchetti disponibili. Il secondo comando scaricherà e installerà il pacchetto cryptsetup sul tuo computer. Se stai usando la distribuzione RHEL/Fedora/CentOS, puoi usare il comando yum per installare l'utility cryptsetup.

$ yum installa cryptsetup-luks

Passaggio 04: Creazione di un file di destinazione

Ora che l'utilità cryptsetup è stata installata correttamente, è necessario creare un file di destinazione che conterrà il contenitore LUKS. Sebbene esistano molti modi per creare un file di questo tipo, è necessario soddisfare una serie di condizioni durante la creazione:

  • Il file non deve essere composto da più parti situate in punti diversi del disco, ovvero, durante la creazione, è necessario allocare immediatamente una quantità sufficiente di memoria per esso.
  • L'intero file deve essere riempito con dati casuali in modo che nessuno possa dire dove si troveranno i dati utilizzati nella crittografia.

Nella creazione di un file che soddisfi le condizioni di cui sopra, il comando dd può aiutarci, anche se funzionerà in modo relativamente lento. Basta usarlo con il file di dispositivo speciale /dev/random specificato come input e il file di destinazione da specificare come output. Un comando di esempio è simile al seguente:

$ dd if=/dev/random of=/home/nitish/basefile bs=1M count=128

Questo creerà un file di 128 MB chiamato basefile nella directory /home/nitish. Tuttavia, tieni presente che il completamento di questo comando potrebbe richiedere molto tempo; nel sistema utilizzato dal nostro esperto, ci è voluta un'ora.

Passaggio 05: Crea dm-crypt LUKS

Dopo aver creato il file di destinazione, è necessario creare una sezione LUKS in questo file. Questa sezione funge da livello di base su cui è costruita tutta la crittografia dei dati. Inoltre, l'intestazione di questa sezione (intestazione LUKS) contiene tutte le informazioni necessarie per la compatibilità con altri dispositivi. Per creare una partizione LUKS, utilizzare il comando cryptsetup:

$ cryptsetup -y luksFormat /home/nitish/basefile

Dopo aver accettato che i dati all'interno del file di base vengano eliminati in modo permanente, inserisci la passphrase e poi confermala, verrà creata la partizione LUKS. Puoi verificarlo con il seguente comando file:

$filebasefile

Tieni presente che la frase che inserisci qui verrà utilizzata per decrittografare i dati. È molto importante memorizzarlo e conservarlo in un luogo sicuro, perché se lo dimentichi, quasi sicuramente perderai tutti i dati sulla partizione crittografata.

Passaggio 06: Creare e montare un file system

Il contenitore LUKS che abbiamo creato nel passaggio precedente è ora disponibile come file. Nel nostro esempio, questo è /home/nitish/basefile. L'utilità cryptsetup consente di aprire un contenitore LUKS come dispositivo indipendente. Per fare ciò, prima mappa il file contenitore al nome del dispositivo e poi monta il dispositivo. Il comando di visualizzazione è simile al seguente:

Dopo aver inserito correttamente la passphrase creata nel passaggio precedente, il contenitore LUKS verrà mappato al volume1. Ciò che effettivamente accade è che il file viene aperto come dispositivo di loopback locale, in modo che il resto del sistema possa ora trattare il file come se fosse un dispositivo reale.

Passaggio 07: File system - continua

Il file contenitore LUKS è ora disponibile sul sistema come dispositivo normale. Prima di poterlo utilizzare per le normali operazioni, dobbiamo formattarlo e creare un file system su di esso. È possibile utilizzare qualsiasi file system supportato dal proprio sistema. Nel mio esempio, abbiamo utilizzato ext4 poiché è il file system più recente per i sistemi Linux.

$ mkfs.ext4 -j /dev/mapper/volume1

Una volta che il dispositivo è stato formattato con successo, il passo successivo è montarlo. Devi prima creare un punto di montaggio, preferibilmente in /mnt (buon senso).

$ mkdir /mnt/files

Ora montiamo:

Per un controllo incrociato, usa il comando df –h: vedrai il dispositivo "/dev/mapper/volume1" alla fine dell'elenco dei dispositivi montati. Si può vedere che l'intestazione LUKS occupa già dello spazio nel dispositivo.

Grazie a questo passaggio, ora puoi utilizzare un dispositivo LUKS con un file system ext4. Usa semplicemente questo dispositivo di archiviazione file: tutto ciò che scrivi su questo dispositivo verrà crittografato e tutto ciò che leggerai da esso verrà decrittografato e mostrato a te.

Passaggio 08: Utilizzando un disco crittografato

Abbiamo seguito diversi passaggi per ottenere questo risultato e, se non ti è molto chiaro come funziona, molto probabilmente sarai confuso su ciò che deve essere fatto solo una volta (necessario per l'installazione) e che dovrebbe essere fatto regolarmente quando si utilizza la crittografia. Consideriamo il seguente scenario: hai completato con successo tutti i passaggi precedenti e poi hai spento il computer. Il giorno successivo, quando avvii il computer, non riesci a trovare il dispositivo montato: dov'è andato? Per far fronte a tutto ciò, è necessario tenere presente che dopo aver avviato il sistema, è necessario montare il contenitore LUKS e smontarlo prima di arrestare il computer.

Per accedere al file LUKS, ogni volta che accendi il computer, segui questi passaggi, quindi chiudi il file in modo sicuro prima di spegnere il computer:

Apri il file LUKS (ad es. /home/nitish/basefile) e inserisci la password. Il comando è simile al seguente:

$ cryptsetup luksOpen /home/nitish/basefile volume1

Una volta che il file è aperto, montalo (se non si monta automaticamente):

$ mount /dev/mapper/volume1 /mnt/files

Ora puoi utilizzare il dispositivo montato come un normale disco e leggere o scrivere dati su di esso.

Al termine, smontare il dispositivo in questo modo:

$ smonta /mnt/file

Dopo aver smontato correttamente, chiudi il file LUKS:

$ cryptsetup luksChiudi il volume1

Passaggio 09: Backup

La maggior parte delle perdite di dati archiviati in un contenitore LUKS è dovuta al danneggiamento dell'intestazione LUKS o degli slot chiave. Oltre al fatto che le intestazioni LUKS possono essere danneggiate anche a causa di una sovrascrittura accidentale nella memoria delle intestazioni, in condizioni reali è possibile anche un guasto completo del disco rigido. Il modo migliore per proteggersi da tali problemi è un backup. Vediamo quali opzioni di backup sono disponibili.

Per eseguire il backup del file di intestazione LUKS, specificare il parametro luksHeaderBackup nel comando:

$ sudo cryptsetup luksHeaderBackup /home/nitish/basefile --header-backup-file /home/nitish/backupfile

Oppure, se desideri ripristinare un file da un backup, specifica il parametro luksHeaderRestore nel comando:

$ sudo cryptsetup luksHeaderRestore /home/nitish/basefile --header-backup-file /home/nitish/backupfile

È possibile utilizzare il parametro isLuks per verificare la presenza di un file di intestazione LUKS e verificare che il file con cui si ha a che fare corrisponda a un dispositivo LUKS effettivo.

$ sudo cryptsetup -v isLuks /home/nitish/basefile

Abbiamo già visto come eseguire il backup dei file di intestazione LUKS, ma il backup di un'intestazione LUKS non protegge realmente da un errore totale del disco, quindi è necessario eseguire il backup dell'intera partizione con il seguente comando cat:

$ cat /home/nitish/basefile > basefile.img

Passaggio 10: Varie impostazioni

Ci sono alcune altre impostazioni che possono essere utili quando si utilizza la crittografia LUKS dm-crypt. Diamo un'occhiata a loro.

Per eseguire il dump dell'intestazione LUKS, il comando cryptsetup ha l'opzione luksDump. Ti consentirà di scattare un'istantanea del file di intestazione LUKS del dispositivo che stai utilizzando. Un comando di esempio è simile al seguente:

$ cryptsetup luksDump /home/nitish/basefile

All'inizio di questo articolo, abbiamo accennato al fatto che LUKS supporta più chiavi. Vediamolo in azione ora aggiungendo un nuovo slot chiave ( note per.: vano chiave - posto chiavi in ​​mano):

$ cryptsetup luksAddKey --Key-slot 1 /home/nitish/basefile

Questo comando aggiunge una chiave allo slot chiave numero 1, ma solo dopo aver inserito la password corrente (la chiave presente nello slot chiave 0). Ci sono otto slot chiave in totale e puoi decrittografare i dati utilizzando qualsiasi chiave. Se scarichi l'intestazione dopo aver aggiunto la seconda chiave, vedrai che il secondo slot della chiave è occupato.

Puoi rimuovere gli slot chiave in questo modo:

$ cryptsetup luksRemoveKey /home/nitish/basefile

Questo rimuoverà lo slot chiave con il numero di slot più alto. Fai attenzione a non eliminare tutti gli slot o i tuoi dati andranno persi definitivamente.

Esistono molti motivi per crittografare i dati sul disco rigido, ma il costo della sicurezza dei dati è rappresentato dal rallentamento delle prestazioni del sistema. Lo scopo di questo articolo è confrontare le prestazioni quando si lavora con un disco crittografato con mezzi diversi.

Per rendere la differenza più drammatica, non abbiamo scelto un'auto ultramoderna, ma nella media. Il solito disco rigido meccanico da 500 GB, AMD dual-core a 2,2 GHz, 4 gigabyte di RAM, Windows 7 SP 1 a 64 bit. Durante il test non verranno lanciati antivirus o altri programmi in modo che nulla possa influire sui risultati.

Per valutare le prestazioni, ho scelto CrystalDiskMark. Per quanto riguarda gli strumenti di crittografia testati, ho optato per il seguente elenco: BitLocker, TrueCrypt, VeraCrypt, CipherShed, Symantec Endpoint Encryption e CyberSafe Top Secret.

bitlocker

È lo strumento di crittografia del disco standard integrato in Microsoft Windows. Molte persone lo usano semplicemente senza installare programmi di terze parti. In effetti, perché, se tutto è già nel sistema? Da un lato, giusto. D'altra parte, il codice è chiuso e non vi è alcuna certezza che non siano state lasciate backdoor per l'FBI e altre persone interessate.

Il disco viene crittografato utilizzando l'algoritmo AES con una lunghezza della chiave di 128 o 256 bit. La chiave può essere memorizzata nel Trusted Platform Module, sul computer stesso o su un'unità flash.

Se viene utilizzato il TPM, all'avvio del computer, la chiave può essere ottenuta immediatamente da esso o dopo l'autenticazione. È possibile accedere utilizzando una chiave su una chiavetta USB o inserendo un codice PIN dalla tastiera. Le combinazioni di questi metodi offrono molte opzioni per limitare l'accesso: solo TPM, TPM e USB, TPM e PIN o tutti e tre contemporaneamente.

BitLocker ha due innegabili vantaggi: in primo luogo, può essere controllato attraverso politiche di gruppo; in secondo luogo, crittografa i volumi, non le unità fisiche. Ciò consente di crittografare un array di più unità, cosa che altri strumenti di crittografia non possono eseguire. BitLocker supporta anche la GUID Partition Table (GPT), di cui nemmeno il fork TruCrypt più avanzato VeraCrypt può vantarsi. Per crittografare un disco GPT di sistema con esso, dovrai prima convertirlo in formato MBR. Nel caso di BitLocker, questo non è necessario.

In generale, c'è solo un inconveniente: closed source. Se stai mantenendo i segreti della famiglia, BitLocker è fantastico. Se il tuo disco è pieno di documenti di importanza nazionale, è meglio trovare qualcos'altro.

È possibile decrittografare BitLocker e TrueCrypt

Se chiedi a Google, troverà un interessante programma Elcomsoft Forensic Disk Decryptor adatto per decrittografare unità BitLocker, TrueCrypt e PGP. Nell'ambito di questo articolo, non lo testerò, ma condividerò le mie impressioni su un'altra utility di Elcomsoft, ovvero Advanced EFS Data Recovery. Era eccellente nel decrittografare le cartelle EFS, ma a condizione che non fosse impostata alcuna password utente. Se imposti una password di almeno 1234, il programma si è rivelato impotente. In ogni caso, non sono riuscito a decrittografare la cartella EFS crittografata appartenente all'utente con password 111. Penso che la situazione sarà la stessa con il prodotto Forensic Disk Decryptor.

TrueCrypt

Questo è un leggendario programma di crittografia del disco che è stato interrotto nel 2012. La storia che è accaduta a TrueCrypt è ancora avvolta nell'oscurità e nessuno sa davvero perché lo sviluppatore abbia deciso di smettere di supportare la sua idea.

Ci sono solo frammenti di informazioni che non ti permettono di mettere insieme il puzzle. Così, nel 2013, è iniziata la raccolta fondi per un audit indipendente di TrueCrypt. Il motivo erano le informazioni ricevute da Edward Snowden sull'indebolimento intenzionale degli strumenti di crittografia TrueCrypt. Per l'audit sono stati raccolti più di 60mila dollari. All'inizio di aprile 2015 i lavori sono stati completati, ma non sono stati individuati errori gravi, vulnerabilità o altri difetti significativi nell'architettura dell'applicazione.

Non appena l'audit si è concluso, TrueCrypt è stata nuovamente al centro dello scandalo. Gli specialisti ESET hanno pubblicato un rapporto secondo cui la versione in lingua russa di TrueCrypt 7.1a, scaricata da truecrypt.ru, conteneva malware. Inoltre, il sito truecrypt.ru stesso è stato utilizzato come centro di comando: i comandi sono stati inviati da esso ai computer infetti. In generale, sii vigile e non scaricare programmi da nessuna parte.

I vantaggi di TrueCrypt includono l'open source, ora controllato in modo indipendente per l'affidabilità, e il supporto per i volumi dinamici di Windows. Svantaggi: il programma non è più sviluppato e gli sviluppatori non hanno avuto il tempo di implementare il supporto UEFI / GPT. Ma se l'obiettivo è crittografare un'unità non di sistema, non importa.

A differenza di BitLocker, dove è supportato solo AES, TrueCrypt ha anche Serpent e Twofish. Per generare chiavi di crittografia, salt e chiave di intestazione, il programma consente di selezionare una delle tre funzioni hash: HMAC-RIPEMD-160, HMAC-Whirlpool, HMAC-SHA-512. Tuttavia, molto è già stato scritto su TrueCrypt, quindi non ci ripeteremo.

VeraCrypt

Il clone TrueCrypt più avanzato. Ha il suo formato, sebbene sia possibile lavorare in modalità TrueCrypt, che supporta dischi crittografati e virtuali nel formato TrueCrypt. A differenza di CipherShed, VeraCrypt può essere installato sullo stesso computer contemporaneamente a TrueCrypt.

INFORMAZIONI

Ritiratosi, TrueCrypt ha lasciato una ricca eredità: ha molti fork, a partire da VeraCrypt, CipherShed e DiskCryptor.

TrueCrypt utilizza 1000 iterazioni per generare la chiave che crittograferà la partizione di sistema, mentre VeraCrypt utilizza 327.661 iterazioni. Per le partizioni standard (non di sistema), VeraCrypt utilizza 655.331 iterazioni per la funzione hash RIPEMD-160 e 500.000 iterazioni per SHA-2 e Whirlpool. Ciò rende le partizioni crittografate molto più resistenti agli attacchi di forza bruta, ma riduce anche significativamente le prestazioni di lavoro con tale partizione. Quanto, lo scopriremo presto.

Tra i vantaggi di VeraCrypt vi sono il codice open source, nonché un formato di disco virtuale e crittografato proprietario e più sicuro rispetto a TrueCrypt. Gli svantaggi sono gli stessi del caso del progenitore: la mancanza di supporto per UEFI / GPT. È ancora impossibile crittografare il disco GPT di sistema, ma gli sviluppatori affermano che stanno lavorando a questo problema e presto tale crittografia sarà disponibile. Ma ci stanno lavorando da due anni ormai (dal 2014), e quando ci sarà un rilascio con il supporto GPT e se lo sarà, non è ancora noto.

CipherShed

Un altro clone di TrueCrypt. A differenza di VeraCrypt, utilizza il formato TrueCrypt originale, quindi puoi aspettarti che le sue prestazioni siano vicine a quelle di TrueCrypt.

I vantaggi e gli svantaggi sono gli stessi, sebbene agli svantaggi si possa aggiungere l'impossibilità di installare TrueCrypt e CipherShed sullo stesso computer. Inoltre, se provi a installare CipherShed su una macchina con TrueCrypt già installato, il programma di installazione propone di rimuovere il programma precedente, ma non riesce a eseguire il lavoro.

Symantec Endpoint Encryption

Nel 2010, Symantec ha acquistato i diritti del programma PGPdisk. Il risultato sono stati prodotti come PGP Desktop e, successivamente, Endpoint Encryption. Questo è ciò che prenderemo in considerazione. Il programma è, ovviamente, proprietario, il codice sorgente è chiuso e una licenza costa 64 euro. Ma c'è il supporto per GPT, ma solo a partire da Windows 8.

In altre parole, se hai bisogno del supporto GPT e desideri crittografare partizione di sistema, dovrai scegliere tra due soluzioni proprietarie: BitLocker e Endpoint Encryption. È improbabile, ovviamente, che un utente domestico installi Endpoint Encryption. Il problema è che ciò richiede Symantec Drive Encryption, che richiede l'installazione di un agente e di un server di gestione Symantec Endpoint Encryption (SEE) e il server desidera installare anche IIS 6.0. Non è troppa bontà per un programma di crittografia del disco? Abbiamo affrontato tutto questo solo per misurare le prestazioni.

momento della verità

Quindi, procediamo al più interessante, vale a dire il test. Il primo passo è verificare le prestazioni del disco senza crittografia. La nostra "vittima" sarà una partizione del disco rigido da 28 GB (normale, non SSD), formattata come NTFS.

Apri CrystalDiskMark, seleziona il numero di passaggi, la dimensione del file temporaneo (in tutti i test useremo 1 Gbps) e il disco stesso. Vale la pena notare che il numero di passaggi praticamente non influisce sui risultati. Il primo screenshot mostra i risultati della misurazione delle prestazioni di un disco senza crittografia con un numero di passaggi di 5, il secondo - con un numero di passaggi di 3. Come puoi vedere, i risultati sono quasi identici, quindi ci concentreremo su tre passaggi.


I risultati di CrystalDiskMark devono essere interpretati come segue:

  • Seq Q32T1 - test di scrittura sequenziale / lettura sequenziale, numero di code - 32, thread - 1;
  • 4K Q32T1 - test di scrittura casuale / lettura casuale (dimensione del blocco 4 KB, numero di code - 32, thread - 1);
  • Seq - test di scrittura sequenziale / lettura sequenziale;
  • 4K - test di scrittura casuale / lettura casuale (dimensione del blocco 4 KB);

Iniziamo con BitLocker. Ci sono voluti 19 minuti per crittografare una partizione da 28 GB.

La continuazione dell'articolo è disponibile solo per gli abbonati

Opzione 1. Iscriviti a "Hacker" per leggere tutti gli articoli sul sito

L'abbonamento ti consentirà di leggere TUTTI i materiali a pagamento del sito, incluso questo articolo, durante il periodo specificato. Accettiamo pagamenti con carte bancarie, moneta elettronica e bonifici dai conti degli operatori di telefonia mobile.

I requisiti di privacy e sicurezza di un computer sono interamente determinati dalla natura dei dati memorizzati su di esso. Una cosa è se il tuo computer funge da stazione di intrattenimento e non c'è niente su di esso tranne alcuni giocattoli e un papà con le foto del tuo amato gatto, e un'altra se ci sono dati sul disco rigido che sono un segreto commerciale, potenzialmente di interesse per i concorrenti.

La prima "linea di difesa" è la password per entrare nel sistema, che viene richiesta ad ogni accensione del computer.


Il livello successivo di protezione sono i diritti di accesso a livello di file system. Un utente senza privilegi di autorizzazione riceverà un errore durante il tentativo di accedere ai file.


Tuttavia, i metodi descritti presentano uno svantaggio estremamente significativo. Entrambi funzionano a livello di sistema operativo e possono essere aggirati relativamente facilmente se si dispone di un po' di tempo e di accesso fisico al computer (ad esempio, eseguendo l'avvio da un'unità flash USB, è possibile reimpostare la password amministrativa o modificare i permessi dei file). La completa fiducia nella sicurezza e nella riservatezza dei dati può essere ottenuta solo se i risultati della crittografia vengono utilizzati e affidabili. Di seguito consideriamo due modi di tale protezione.

Il primo metodo considerato oggi sarà la protezione crittografica integrata di Microsoft. La crittografia, chiamata BitLocker, è apparsa per la prima volta in Windows 8. Non funzionerà per proteggere una cartella o un file separato con esso, è disponibile solo la crittografia dell'intera unità. Ciò, in particolare, implica il fatto che è impossibile crittografare il disco di sistema (il sistema non sarà in grado di avviarsi), inoltre è impossibile memorizzare dati importanti nelle librerie di sistema come "I miei documenti" (per impostazione predefinita sono situata nella partizione di sistema).
Per abilitare la crittografia integrata, procedi come segue:

DiskCryptor

La seconda utility crittografica recensita oggi è DiskCryptor, una soluzione gratuita e open source. Per usarlo, segui le seguenti istruzioni:

L'indubbio vantaggio di questa utility rispetto al meccanismo BitLocker è che può essere utilizzato su sistemi usciti prima di Windows 8 (è supportato anche Windows XP fuori produzione). Ma DiskCryptor ha anche diversi svantaggi significativi:

  • non ci sono modi per ripristinare l'accesso alle informazioni crittografate (se hai dimenticato la password, hai la garanzia di perdere i tuoi dati);
  • è supportato solo lo sblocco con password, non è possibile l'utilizzo di smart card o sensori biometrici;
  • Forse il più grande svantaggio dell'utilizzo di DiskCryptor è che un utente malintenzionato con accesso amministrativo al sistema sarà in grado di formattare il disco utilizzando mezzi standard. Sì, non avrà accesso ai dati, ma li perderai anche tu.

Riassumendo, posso dire che se sul computer è installato un sistema operativo che inizia con Windows 8, è meglio utilizzare la funzionalità integrata.

Questa documentazione è stata archiviata e non viene più mantenuta.

Comprensione della crittografia unità BitLocker

Scopo: Server Windows 2008, Windows Server 2008 R2, Windows Vista

Crittografia unità BitLocker è una funzionalità di protezione dei dati disponibile in Windows Server 2008 R2 e alcune edizioni di Windows 7. L'integrazione di BitLocker nel sistema operativo contrasta il furto di dati o le minacce alla vulnerabilità proteggendo da computer smarriti, rubati o disattivati ​​in modo improprio.

I dati su un computer smarrito o rubato sono vulnerabili all'accesso non autorizzato, tramite software di hacking o collegando il disco rigido del computer a un altro computer. La crittografia BitLocker aiuta a prevenire l'accesso non autorizzato ai dati, aumentando la sicurezza dei file e del sistema. La crittografia BitLocker aiuta anche a mantenere i dati inaccessibili durante la disattivazione o il riutilizzo di computer protetti con la crittografia BitLocker.

La crittografia BitLocker offre la massima protezione se utilizzata con Trusted Platform Module (TPM) versione 1.2. Il TPM è un componente hardware installato in molti computer moderni dai rispettivi produttori. Funziona in combinazione con la crittografia BitLocker per proteggere i dati degli utenti e garantire che il computer non sia stato manomesso mentre il sistema è stato spento.

Nei computer senza TPM 1.2 installato, la crittografia BitLocker può ancora essere utilizzata per crittografare l'unità del sistema operativo. Sistemi Windows. Tuttavia, questa implementazione richiederà all'utente di inserire una chiave di avvio USB per avviare o riattivare il computer e non fornisce il controllo dell'integrità del sistema prima dell'avvio fornito dalla crittografia BitLocker con TPM.

Oltre al TPM, la crittografia BitLocker offre la possibilità di bloccare il normale processo di avvio finché l'utente non immette un numero di identificazione personale (PIN) o inserisce un dispositivo rimovibile, ad esempio un'unità flash USB, contenente una chiave di avvio. Queste misure di sicurezza aggiuntive forniscono l'autenticazione a più fattori e assicurano che il computer non si avvii o non si riattivi dalla sospensione fino a quando non viene fornito il PIN o la chiave di avvio corretti.

Controllo dell'integrità del sistema

La crittografia BitLocker può utilizzare un TPM per verificare l'integrità dei componenti di avvio e dei dati di configurazione di avvio. In questo modo si garantisce che quando si usa la crittografia BitLocker, l'unità crittografata sarà disponibile solo se questi componenti non sono stati manomessi e l'unità crittografata è installata nel computer di origine.

La crittografia BitLocker aiuta a garantire l'integrità del processo di avvio attraverso i passaggi seguenti.

  • Fornire un modo per controllare l'integrità del file root e dei file utilizzati nelle prime fasi dell'avvio e garantire che non vi siano modifiche dannose a quei file che potrebbero essere apportate, ad esempio, da virus settori di avvio o mezzi per modificare i componenti di download.
  • Migliore protezione contro gli attacchi software quando il computer è offline. Qualsiasi software alternativo in grado di avviare il sistema non avrà accesso alle chiavi di crittografia per l'unità del sistema operativo Windows.
  • Blocco del sistema durante la sostituzione di un file. Se uno qualsiasi dei file controllati è stato sostituito, il sistema non si avvierà. Questo avviserà l'utente della sostituzione poiché il sistema non sarà in grado di avviarsi normalmente. In caso di blocco del sistema, la crittografia BitLocker fornisce un facile processo di ripristino.

    Requisiti hardware, firmware e software

    Per utilizzare BitLocker, il tuo computer deve soddisfare determinati requisiti.

    • Affinché la crittografia BitLocker utilizzi la funzionalità di controllo dell'integrità del sistema fornita dal TPM, è necessario che nel computer sia installata la versione 1.2 del TPM. Se nel computer non è installato un TPM, sarà necessario salvare la chiave di avvio in un dispositivo rimovibile, ad esempio un'unità flash USB, quando si abilita la crittografia BitLocker.
    • Il computer dotato di TPM deve inoltre disporre di un BIOS conforme alle specifiche del Trusted Computing Group (TCG). Il BIOS crea una catena di attendibilità per le azioni di preavvio e deve includere il supporto per la radice statica della misurazione del livello di attendibilità definita dal TCG. Per un computer senza modulo TPM, non è richiesta la conformità del BIOS alle specifiche TCG.
    • Il BIOS di sistema (per computer TPM e non TPM) deve supportare la classe di dispositivi di archiviazione di massa USB, inclusa la lettura di piccoli file da un'unità flash USB in un ambiente di sistema precedente al funzionamento. Per ulteriori informazioni sull'USB, vedere le specifiche dell'archiviazione di massa Dispositivi USB e comandi di archiviazione di massa UFI sul sito Web USB (http://go.microsoft.com/fwlink/?LinkId=83120).
    • Il disco rigido deve essere diviso in almeno due dischi.
      • L'unità del sistema operativo (o unità di avvio) contiene il sistema operativo ei file necessari per l'esecuzione e deve essere formattato con il file system NTFS.
      • Il disco di sistema contiene i file necessari per avviare Windows dopo che il BIOS ha caricato la piattaforma. La crittografia BitLocker non è abilitata per questa unità. Affinché la crittografia BitLocker funzioni, l'unità di sistema non deve essere crittografata, non deve essere un volume del sistema operativo e deve essere formattata come file Sistema NTFS. L'unità di sistema deve avere una dimensione di almeno 1,5 gigabyte (GB).

    Installazione e inizializzazione

    La crittografia BitLocker viene installata automaticamente come parte dell'installazione del sistema operativo. Ma la crittografia BitLocker non è disponibile fino a quando non viene abilitata utilizzando l'Installazione guidata di BitLocker, che può essere avviata dal Pannello di controllo o facendo clic con il pulsante destro del mouse sull'unità in Esplora file.

    In qualsiasi momento dopo l'installazione e la configurazione iniziale del sistema operativo, un amministratore può utilizzare l'Installazione guidata di BitLocker per inizializzare la crittografia di BitLocker. Il processo di inizializzazione consiste in due passaggi:

    1. Nei computer con un TPM, inizializzare il TPM utilizzando l'Installazione guidata TPM, un componente del Pannello di controllo Crittografia unità BitLocker o eseguendo uno script progettato per inizializzare il modulo.
    2. Configura la crittografia BitLocker. Apri la procedura guidata di configurazione della crittografia BitLocker dal pannello di controllo, che ti guiderà attraverso il processo di installazione e ti fornirà l'opzione per configurare le impostazioni di autenticazione avanzate.

    Durante l'inizializzazione della crittografia BitLocker amministratore locale dovresti anche creare una password di ripristino e una chiave di ripristino. Senza una password di ripristino o una chiave di ripristino, tutti i dati su un'unità crittografata potrebbero essere inaccessibili se si verifica un problema con un'unità crittografata con BitLocker.

    Per informazioni dettagliate sulla configurazione e la distribuzione della crittografia BitLocker, vedere la procedura dettagliata di Crittografia unità BitLocker di Windows (http://go.microsoft.com/fwlink/?LinkID=140225).

    Implementazione aziendale

    La crittografia BitLocker può utilizzare l'infrastruttura di Servizi di dominio esistente Directory attiva(AD DS) organizzazioni per l'archiviazione remota delle chiavi di ripristino. La crittografia BitLocker fornisce una procedura guidata per la configurazione e la gestione e l'estensibilità e la gestione tramite un'interfaccia WMI gestibile tramite script. Inoltre, la crittografia BitLocker fornisce una console di ripristino integrata nel processo di avvio per consentire all'utente o al personale dell'help desk di riottenere l'accesso a un computer bloccato.

    Per ulteriori informazioni sulla crittografia BitLocker tramite script, vedere Win32_EncryptableVolume (http://go.microsoft.com/fwlink/?LinkId=85983).

    Ricicla e riutilizza il tuo computer

    annotazione

    Contrariamente alla credenza popolare, la memoria DRAM utilizzata nella maggior parte dei computer moderni conserva i dati anche dopo un'interruzione di corrente per pochi secondi o minuti, inoltre, ciò avviene a temperatura ambiente e anche se il chip viene rimosso dalla scheda madre. Questa volta è abbastanza per fare una discarica completa. memoria ad accesso casuale. Mostreremo che questo fenomeno consente a un utente malintenzionato che ha accesso fisico al sistema di aggirare le funzioni del sistema operativo per proteggere i dati sulle chiavi crittografiche. Mostreremo come il riavvio può essere utilizzato per effettuare attacchi di successo su noti sistemi di crittografia del disco rigido senza l'uso di dispositivi o materiali specializzati. Determinare sperimentalmente il grado e la probabilità di conservazione rimanente e dimostrare che il tempo per il quale i dati possono essere presi può essere notevolmente aumentato utilizzando semplici trucchi. Saranno inoltre proposti nuovi metodi per trovare chiavi crittografiche nei dump della memoria e correggere gli errori associati ai bit mancanti. Parleremo anche di diversi modi per ridurre questi rischi, ma non conosciamo una soluzione semplice.

    introduzione

    La maggior parte degli esperti presuppone che i dati dalla RAM del computer vengano cancellati quasi istantaneamente dopo un'interruzione di corrente o ritengono che i dati residui siano estremamente difficili da recuperare senza l'uso di attrezzature speciali. Dimostreremo che queste ipotesi non sono corrette. La memoria DRAM convenzionale perde i dati gradualmente nell'arco di diversi secondi, anche a temperature normali, e anche se il chip di memoria viene rimosso dalla scheda madre, i dati rimarranno al suo interno per minuti o addirittura ore, a condizione che il chip sia conservato a basse temperature. I dati residui possono essere recuperati utilizzando metodi semplici che richiedono tempi brevi accesso fisico al computer.

    Mostreremo una serie di attacchi che, sfruttando gli effetti della rimanenza DRAM, ci permetteranno di recuperare le chiavi di cifratura conservate in memoria. Ciò rappresenta una vera minaccia per gli utenti di laptop che si affidano a sistemi di crittografia del disco rigido. Infatti, se un malintenzionato ruba un laptop, nel momento in cui il disco crittografato è connesso, potrà effettuare uno dei nostri attacchi per accedere ai contenuti, anche se il laptop stesso è bloccato o in modalità sleep. Lo dimostreremo attaccando con successo diversi sistemi di crittografia popolari come BitLocker, TrueCrypt e FileVault. Questi attacchi dovrebbero avere successo anche contro altri sistemi di crittografia.

    Sebbene abbiamo concentrato i nostri sforzi sui sistemi di crittografia dischi fissi, in caso di accesso fisico al computer di un utente malintenzionato, qualsiasi informazione importante memorizzata nella RAM può diventare oggetto di attacco. È probabile che molti altri sistemi di sicurezza siano vulnerabili. Ad esempio, abbiamo scoperto che Mac OS X lascia le password degli account in memoria dove potremmo recuperarle e abbiamo anche attaccato le chiavi RSA private di Apache.

    Alcuni membri delle comunità della sicurezza informatica e della fisica dei semiconduttori erano già a conoscenza dell'effetto di permanenza della DRAM, c'erano pochissime informazioni al riguardo. Di conseguenza, molti di coloro che progettano, sviluppano o utilizzano sistemi di sicurezza semplicemente non hanno familiarità con questo fenomeno e con la facilità con cui può essere sfruttato da un utente malintenzionato. Per quanto ne sappiamo, questo è il primo lavoro dettagliato che esamina le implicazioni di questi fenomeni per la sicurezza delle informazioni.

    Attacchi su unità crittografate

    La crittografia dei dischi rigidi è un noto metodo di protezione contro il furto di dati. Molti credono che i sistemi di crittografia del disco rigido proteggeranno i propri dati, anche se un utente malintenzionato ha ottenuto l'accesso fisico al computer (infatti, sono necessari per questo, ndr). La legge della California, approvata nel 2002, richiede la segnalazione casi possibili divulgazione di dati personali, solo se i dati non sono stati crittografati, perché la crittografia dei dati è considerata una misura di protezione sufficiente. Sebbene la legge non descriva alcuna soluzione tecnica specifica, molti esperti raccomandano l'uso di sistemi di crittografia del disco rigido o della partizione, che saranno considerati misure sufficienti per la protezione. I risultati del nostro studio hanno mostrato che la credenza nella crittografia del disco è infondata. Un utente malintenzionato, lungi dall'essere il più altamente qualificato, può aggirare molti sistemi di crittografia ampiamente utilizzati se un laptop con dati viene rubato mentre era acceso o in modalità di sospensione. E i dati su un laptop possono essere letti anche quando si trovano su un'unità crittografata, quindi l'utilizzo di sistemi di crittografia del disco rigido non è una misura sufficiente.

    Abbiamo utilizzato diversi tipi di attacchi su noti sistemi di crittografia del disco rigido. L'installazione dei dischi crittografati e la verifica della correttezza delle chiavi di crittografia rilevate hanno richiesto più tempo. Ottenere un'immagine RAM e cercare le chiavi ha richiesto solo pochi minuti ed è stato completamente automatizzato. C'è motivo di credere che la maggior parte dei sistemi di crittografia del disco rigido sia suscettibile a tali attacchi.

    bitlocker

    BitLocker è un sistema incluso in alcune versioni del sistema operativo Windows Vista. Funziona come un driver che lavora tra il file system e il driver disco rigido, crittografando e decrittografando settori selezionati su richiesta. Le chiavi utilizzate per la crittografia sono nella RAM fintanto che il disco crittografato è smontato.

    Per crittografare ogni settore di un disco rigido, BitLocker utilizza la stessa coppia di chiavi generata dall'algoritmo AES: una chiave di crittografia del settore e una chiave di crittografia che opera in modalità Cipher Block Chaining (CBC). Queste due chiavi sono a loro volta cifrate con la chiave principale. Per crittografare un settore, viene eseguita una procedura di aggiunta di testo in chiaro binario con una chiave di sessione generata crittografando il byte di offset del settore con la chiave di crittografia del settore. Quindi, i dati ricevuti vengono elaborati da due funzioni di missaggio che utilizzano l'algoritmo Elephant sviluppato da Microsoft. Queste funzioni senza chiave vengono utilizzate per aumentare il numero di modifiche a tutti i bit della cifratura e, di conseguenza, aumentare l'incertezza dei dati del settore crittografato. Nell'ultima fase, i dati vengono crittografati con l'algoritmo AES in modalità CBC, utilizzando l'apposita chiave di crittografia. Il vettore di inizializzazione viene determinato crittografando il byte di offset del settore con la chiave di crittografia utilizzata in modalità CBC.

    Abbiamo implementato un attacco demo completamente automatizzato chiamato BitUnlocker. Questo utilizza un'unità USB esterna con sistema operativo Linux e un bootloader modificato basato su SYSLINUX e il driver FUSE che consente di connettere unità crittografate BitLocker al sistema operativo Linux. Su un computer di prova che esegue Windows Vista, l'alimentazione è stata spenta, un disco rigido USB è stato collegato e avviato da esso. Successivamente, BitUnlocker ha scaricato automaticamente la RAM su un'unità esterna, ha cercato possibili chiavi utilizzando il programma keyfind, ha provato tutte le opzioni adatte (coppie della chiave di crittografia del settore e della chiave della modalità CBC) e, in caso di successo, ha collegato l'unità crittografata. Non appena il disco è stato collegato, è diventato possibile lavorarci come con qualsiasi altro disco. Su un laptop moderno con 2 gigabyte di RAM, il processo ha richiesto circa 25 minuti.

    È interessante notare che è diventato possibile eseguire questo attacco senza il reverse engineering di alcun software. La documentazione Microsoft descrive il sistema BitLocker in modo sufficiente per comprendere il ruolo della chiave di crittografia del settore e della chiave della modalità CBC e creare il proprio programma che implementa l'intero processo.

    La principale differenza tra BitLocker e altri programmi di questa classe è il modo in cui le chiavi vengono archiviate quando l'unità crittografata viene disconnessa. Per impostazione predefinita, in modalità base, BitLocker protegge la chiave principale solo con l'ausilio del modulo TPM, presente su molti PC moderni. Questo metodo, che sembra essere molto utilizzato, è particolarmente vulnerabile al nostro attacco, poiché consente di ottenere chiavi di crittografia anche se il computer è stato spento per molto tempo, perché quando il PC si avvia, le chiavi vengono caricate automaticamente nella RAM (fino alla finestra di login) senza inserire alcun dato di autenticazione.

    Apparentemente, gli esperti Microsoft hanno familiarità con questo problema e quindi consigliano di configurare BitLocker in una modalità migliorata, in cui le chiavi sono protette non solo con TPM, ma anche con una password o una chiave su un'unità USB esterna. Ma, anche in questa modalità, il sistema è vulnerabile se un utente malintenzionato ottiene l'accesso fisico al PC mentre è in esecuzione (può anche essere bloccato o in modalità sospensione, (gli stati - appena spento o ibernato in questo caso sono considerati non interessati da questo attacco).

    File Vault

    Il sistema FileVault di Apple è stato parzialmente studiato e sottoposto a reverse engineering. Su Mac OS X 10.4, FileVault utilizza una chiave AES a 128 bit in modalità CBC. Quando viene inserita la password dell'utente, viene decifrata un'intestazione contenente la chiave AES e una seconda chiave K2, utilizzata per calcolare i vettori di inizializzazione. Il vettore di inizializzazione per il blocco del disco I-esimo è calcolato come HMAC-SHA1 K2(I).

    Abbiamo utilizzato il nostro programma EFI per acquisire immagini RAM per recuperare dati da un computer Macintosh (basato su un processore Intel) con un'unità crittografata FileVault collegata. Il programma keyfind ha quindi trovato automaticamente le chiavi AES di FileVault senza errori.

    Senza un vettore di inizializzazione, ma con la chiave AES ricevuta, diventa possibile decrittografare 4080 byte su 4096 di ciascun blocco del disco (tutto tranne il primo blocco AES). Ci siamo assicurati che anche il vettore di inizializzazione fosse nel dump. Supponendo che i dati non siano ancora stati danneggiati, un utente malintenzionato può determinare il vettore provando tutte le stringhe a 160 bit nel dump una per una e verificando se possono formare un possibile testo in chiaro quando viene aggiunto binario alla prima parte decrittografata del blocco . Insieme, l'utilizzo di programmi come vilefault, chiavi AES e un vettore di inizializzazione consente di decrittografare completamente un disco crittografato.

    Durante le indagini su FileVault, abbiamo scoperto che Mac OS X 10.4 e 10.5 lasciano più copie della password di un utente in memoria, dove sono vulnerabili a questo attacco. Le password conti spesso utilizzato per proteggere le chiavi, che a loro volta possono essere utilizzate per proteggere le passphrase su unità crittografate FileVault.

    TrueCrypt

    TrueCrypt è un popolare sistema di crittografia open source che funziona su Windows, MacOS e Linux. Supporta molti algoritmi tra cui AES, Serpent e Twofish. Nella versione 4, tutti gli algoritmi funzionavano in modalità LRW; nell'attuale quinta versione, usano la modalità XTS. TrueCrypt memorizza la chiave di crittografia e la chiave di modifica nell'intestazione della partizione su ciascuna unità, che viene crittografata con una chiave diversa derivata dalla password inserita dall'utente.

    Abbiamo testato TrueCrypt 4.3a e 5.0a in esecuzione su sistema operativo Linux. Abbiamo collegato un disco crittografato con una chiave AES a 256 bit, quindi abbiamo spento l'alimentazione e utilizzato il nostro software di dump della memoria per l'avvio. In entrambi i casi, keyfind ha trovato una chiave di crittografia intatta a 256 bit. Inoltre, nel caso di TrueCrypt 5.0.a, keyfind è stato in grado di recuperare la chiave tweak della modalità XTS.

    Per decrittografare i dischi creati da TrueCrypt 4, è necessario modificare la chiave della modalità LRW. Abbiamo scoperto che il sistema lo memorizza in quattro parole prima della pianificazione della chiave AES. Nel nostro dump, la chiave LRW non era danneggiata. (In caso di errori saremmo comunque in grado di recuperare la chiave).

    Dm-cripta

    Il kernel Linux, a partire dalla versione 2.6, include il supporto integrato per dm-crypt, un sottosistema di crittografia del disco. Dm-crypt utilizza molti algoritmi e modalità, ma per impostazione predefinita utilizza un codice AES a 128 bit in modalità CBC con vettori di inizializzazione non basati su chiave.

    Abbiamo testato la partizione dm-crypt creata utilizzando il ramo LUKS (Linux Unified Key Setup) dell'utility cryptsetup e il kernel 2.6.20. Il disco è stato crittografato utilizzando AES in modalità CBC. Abbiamo spento l'alimentazione per un po' e utilizzando un bootloader PXE modificato, abbiamo eseguito un dump della memoria. Il programma keyfind ha trovato una chiave AES a 128 bit valida, che è stata recuperata senza errori. Dopo averlo recuperato, un utente malintenzionato può decrittografare e montare la partizione crittografata dm-crypt modificando l'utilità cryptsetup in modo che accetti le chiavi nel formato richiesto.

    Metodi di protezione e loro limiti

    L'implementazione della protezione contro gli attacchi alla RAM non è banale, poiché il chiavi crittografiche deve essere conservato da qualche parte. Proponiamo di concentrarci sulla distruzione o l'occultamento delle chiavi prima che un utente malintenzionato possa ottenere l'accesso fisico al PC, impedendo l'esecuzione del software di dump della memoria principale, proteggendo fisicamente i chip RAM e, se possibile, riducendo il periodo di conservazione dei dati nella RAM.

    Sovrascrittura memoria

    Innanzitutto è necessario, se possibile, evitare di memorizzare le chiavi nella RAM. È necessario sovrascrivere le informazioni chiave quando non vengono più utilizzate e impedire che i dati vengano copiati nei file di scambio. La memoria deve essere preventivamente cancellata tramite il sistema operativo o librerie aggiuntive. Naturalmente, queste misure non proteggeranno le chiavi attualmente in uso, poiché devono essere conservate in memoria, come quelle utilizzate per i dischi crittografati o su server Web sicuri.

    Inoltre, la RAM deve essere cancellata durante il processo di avvio. Alcuni PC possono essere configurati per cancellare la RAM all'avvio utilizzando una chiara richiesta POST (Power-on Self-Test) prima di avviare il sistema operativo. Se l'attaccante non può impedire l'esecuzione di questa richiesta, su questo PC non sarà in grado di eseguire un dump della memoria con informazioni importanti. Ma ha ancora l'opportunità di estrarre i chip RAM e inserirli in un altro PC con le impostazioni del BIOS di cui ha bisogno.

    Limitazione dei download dalla rete o da supporti rimovibili

    Molti dei nostri attacchi sono stati implementati utilizzando l'avvio di rete o supporti rimovibili. Il PC deve essere configurato per richiedere una password amministratore per l'avvio da queste fonti. Tuttavia, va notato che anche se il sistema è configurato per l'avvio solo dal disco rigido principale, l'attaccante può cambiare HDD o, in molti casi, reimpostare la NVRAM del computer per ripristinare le impostazioni originali del BIOS.

    Sonno sicuro

    I risultati dello studio hanno mostrato che il semplice blocco del desktop del PC (ovvero il sistema operativo continua a funzionare, ma per iniziare a interagire con esso è necessario inserire una password) non protegge il contenuto della RAM. La modalità di sospensione non è efficace anche se il PC è bloccato al ritorno dalla modalità di sospensione, perché un utente malintenzionato può attivare il ritorno dalla modalità di sospensione, quindi riavviare il laptop ed eseguire un dump della memoria. Anche la modalità di ibernazione (il contenuto della RAM viene copiato sul disco rigido) non aiuta, tranne quando si utilizzano informazioni chiave su supporti alienati per ripristinare il normale funzionamento.

    Con la maggior parte dei sistemi di crittografia del disco rigido, gli utenti possono proteggersi spegnendo il PC. (Il sistema Bitlocker nella modalità base del modulo TPM rimane vulnerabile, poiché il disco verrà connesso automaticamente all'accensione del PC). Il contenuto della memoria può essere conservato per un breve periodo dopo essere stato spento, quindi si consiglia di monitorare la workstation per un altro paio di minuti. Nonostante la sua efficacia, questa misura è estremamente scomoda a causa del lungo caricamento delle postazioni di lavoro.

    L'ibernazione può essere protetta nei seguenti modi: richiedere una password o qualche altro segreto per "svegliare" la workstation e crittografare il contenuto della memoria con una chiave derivata da questa password. La password deve essere complessa, poiché un utente malintenzionato può scaricare la memoria e quindi provare a indovinare la password con la forza bruta. Se non è possibile crittografare l'intera memoria, è necessario crittografare solo le aree che contengono informazioni chiave. Alcuni sistemi possono essere configurati per entrare in questo tipo di sospensione protetta, anche se di solito questa non è l'impostazione predefinita.

    Rifiuto di precalcoli

    La nostra ricerca ha dimostrato che l'utilizzo del precalcolo per accelerare le operazioni crittografiche rende le informazioni chiave più vulnerabili. Il precalcolo porta al fatto che in memoria sono presenti informazioni ridondanti sui dati chiave, il che consente a un utente malintenzionato di recuperare le chiavi anche in presenza di errori. Ad esempio, come descritto nella Sezione 5, le informazioni sulle chiavi di iterazione degli algoritmi AES e DES sono estremamente ridondanti e utili per un utente malintenzionato.

    Rifiutare i precalcoli ridurrà le prestazioni, poiché i calcoli potenzialmente complessi dovranno essere ripetuti. Ma, ad esempio, puoi memorizzare nella cache i valori precalcolati per un certo periodo di tempo e cancellare i dati ricevuti se non vengono utilizzati durante questo intervallo. Questo approccio rappresenta un compromesso tra sicurezza e prestazioni del sistema.

    Espansione chiave

    Un altro modo per impedire il ripristino della chiave è modificare le informazioni sulla chiave memorizzate in modo tale da rendere più difficile il ripristino della chiave a causa di vari errori. Questo metodo è stato considerato in teoria, dove si è dimostrato che una funzione è resistente alla divulgazione, i cui input rimangono nascosti anche se quasi tutti gli output sono stati scoperti, il che è molto simile al funzionamento delle funzioni unidirezionali.

    In pratica, immaginiamo di avere una chiave AES K a 256 bit, che in questo momento non utilizzato, ma sarà necessario in seguito. Non possiamo sovrascriverlo, ma vogliamo renderlo resistente ai tentativi di recupero. Un modo per raggiungere questo obiettivo è allocare un'ampia area di dati B-bit, riempirla con dati casuali R, e quindi memorizzare in memoria il risultato della seguente trasformazione K + H (R) (somma binaria, ndr), dove H è una funzione hash, come SHA-256.

    Ora immagina che l'elettricità sia stata spenta, questo causerà la modifica di d bit in quest'area. Se la funzione hash è forte, quando tenta di recuperare la chiave K, un utente malintenzionato può fare affidamento solo sulla possibilità di indovinare quali bit dell'area B sono stati modificati su circa la metà che avrebbe potuto essere modificata. Se d bit sono stati modificati, l'attaccante dovrà cercare una regione di dimensione (B/2+d)/d per trovare i valori corretti di R e solo allora recuperare la chiave K. Se la regione B è grande , tale ricerca può essere molto lunga, anche se d è relativamente piccolo.

    Teoricamente, possiamo memorizzare tutte le chiavi in ​​questo modo, calcolando ogni chiave solo quando ne abbiamo bisogno e cancellandola quando non ne abbiamo bisogno. Pertanto, applicando il metodo sopra, possiamo memorizzare le chiavi in ​​memoria.

    Protezione fisica

    Alcuni dei nostri attacchi si basavano sull'accesso fisico ai chip di memoria. Tali attacchi possono essere prevenuti dalla protezione della memoria fisica. Ad esempio, i moduli di memoria sono conservati in una custodia per PC chiusa o sigillati con resina epossidica per impedire tentativi di rimozione o accesso. Inoltre, è possibile implementare la sovrascrittura della memoria in risposta a basse temperature o tentativi di apertura del case. Questo metodo richiederà l'installazione di sensori con un sistema di alimentazione indipendente. Molti di questi metodi prevedono hardware a prova di manomissione (come il coprocessore IBM 4758) e possono aumentare notevolmente il costo di una workstation. D'altra parte, utilizzare la memoria saldata alla scheda madre sarà molto più economico.

    Cambio di architettura

    È possibile modificare l'architettura del PC. Cosa impossibile per i PC già usati, ma ti permetterà di metterne in sicurezza di nuovi.

    Il primo approccio consiste nel progettare i moduli DRAM in modo tale da cancellare tutti i dati più velocemente. Questo può essere complicato, poiché l'obiettivo di cancellare i dati il ​​più rapidamente possibile è in conflitto con l'altro obiettivo di non perdere dati tra i periodi di aggiornamento della memoria.

    Un altro approccio consiste nell'aggiungere hardware di archiviazione delle chiavi che garantisca la cancellazione di tutte le informazioni dall'archivio all'avvio, al riavvio e all'arresto. Pertanto, otterremo un luogo sicuro in cui archiviare diverse chiavi, sebbene la vulnerabilità associata al loro pre-calcolo rimarrà.

    Altri esperti hanno proposto un'architettura in cui i contenuti della memoria saranno crittografati in modo permanente. Se, oltre a ciò, implementiamo la cancellazione delle chiavi al riavvio e all'interruzione dell'alimentazione, questo metodo fornirà una protezione sufficiente contro gli attacchi che abbiamo descritto.

    Calcolo affidabile

    L'hardware corrispondente al concetto di "trusted computing", ad esempio sotto forma di moduli TPM, è già utilizzato in alcuni PC. Nonostante la loro utilità nella protezione da alcuni attacchi, nella loro forma attuale, tali apparecchiature non aiutano a prevenire gli attacchi che abbiamo descritto.

    I moduli TPM utilizzati non implementano crittografia completa. Invece, osservano il processo di avvio per decidere se è sicuro avviare o meno la chiave nella RAM. Se il software deve utilizzare una chiave, è possibile implementare la seguente tecnologia: la chiave, in una forma utilizzabile, non verrà memorizzata nella RAM fino a quando il processo di avvio non procede secondo lo scenario previsto. Ma, non appena la chiave è nella RAM, diventa subito un bersaglio per i nostri attacchi. I moduli TPM possono impedire il caricamento della chiave in memoria, ma non ne impediscono la lettura dalla memoria.

    conclusioni

    Contrariamente alla credenza popolare, i moduli DRAM memorizzano i dati per un tempo relativamente lungo quando sono disabilitati. I nostri esperimenti hanno dimostrato che questo fenomeno consente di implementare un'intera classe di attacchi che consentono di ottenere dati importanti, come le chiavi di crittografia, dalla RAM, nonostante i tentativi del sistema operativo di proteggerne il contenuto. Gli attacchi che descriviamo sono realizzabili nella pratica e i nostri esempi di attacchi ai sistemi di crittografia più diffusi lo dimostrano.

    Ma anche altri tipi di software sono vulnerabili. I sistemi di gestione dei diritti digitali (DRM) utilizzano spesso chiavi simmetriche archiviate in memoria e anche queste possono essere ottenute utilizzando i metodi descritti. Come abbiamo mostrato, anche i server Web abilitati per SSL sono vulnerabili perché memorizzano le chiavi private necessarie per creare sessioni SSL. È probabile che i nostri metodi di ricerca delle informazioni chiave siano efficaci per trovare password, numeri di account e qualsiasi altra informazione importante memorizzata nella RAM.

    Sembra che non ci sia un modo semplice per eliminare le vulnerabilità trovate. La modifica del software molto probabilmente non sarà efficace; le modifiche hardware aiuteranno, ma i costi in termini di tempo e risorse saranno elevati; anche la tecnologia del "trusted computing" nella sua forma attuale non è molto efficace, poiché non può proteggere le chiavi che sono in memoria.

    A nostro avviso, i laptop, che spesso sono e operano in modalità vulnerabili a questi attacchi, sono i più esposti a questo rischio. La presenza di tali rischi dimostra che la crittografia del disco protegge i dati importanti in misura minore di quanto comunemente si creda.

    Di conseguenza, potrebbe essere necessario considerare la memoria DRAM come un componente non attendibile di un PC moderno ed evitare di elaborare importanti informazioni riservate.

Se noti un errore, seleziona una parte di testo e premi Ctrl + Invio
CONDIVIDERE: