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

Oggi, archiviare dati importanti in chiaro è diventato più pericoloso che mai. E nemmeno tanto per la sorveglianza statale (se vogliono troveranno qualcosa di cui lamentarsi, e così via), ma per chi vuole rubare questi dati. In linea di principio, esistono molti metodi per proteggere le informazioni, ma l'articolo descriverà esattamente gli strumenti crittografici.


A differenza di altri sistemi operativi, Linux dispone di molti strumenti per la protezione crittografica delle informazioni, dalla crittografia della corrispondenza di posta alla crittografia di file e dispositivi a blocchi. Siamo interessati alla crittografia a livello di file system, file e dispositivi a blocchi. Per cominciare, vale la pena capire qual è la differenza. La crittografia a livello di file system implica uno strato tra il file main sistema di file(a meno che, ovviamente, il file system stesso non supporti la crittografia) e l'utente.

Vantaggio di questo tipo crittografia - che le chiavi per tutti gli utenti sono diverse. Lo svantaggio è che se si abilita la crittografia del nome file, la lunghezza del nome valido diminuirà, inoltre, l'utente può salvare il file in una posizione diversa sul disco, il che livella automaticamente il vantaggio. E un'altra cosa: anche se la crittografia dei nomi è abilitata, i timestamp rimarranno gli stessi. La crittografia dei dispositivi a blocchi avviene a un livello inferiore, sotto il file system. Allo stesso tempo, il file system stesso, ovviamente, non sa di trovarsi su un volume crittografato.

Benefici questo metodo opposto alle carenze del precedente. Lo svantaggio è che dovrai inserire una password ogni volta che avvii / monti. Il secondo svantaggio è che se in fase di esecuzione un utente malintenzionato ottiene l'accesso ai file sulla cripto-
teiner, tutto - scrivi sprecato. Questo è esattamente ciò che protegge dagli attacchi offline. Inoltre, nella stragrande maggioranza dei casi di salvataggio di un cryptocontainer nel cloud, dovrai caricarlo di nuovo completamente.

L'articolo descriverà la configurazione dei seguenti metodi di crittografia:
dm-crypt/LUKS- creazione di un cryptocontainer utilizzando device-mapper e kernel CryptoAPI;
eCryptfs- crittografia a livello di file system;
EncFS- simile a sopra, ma non richiede il caricamento dei moduli del kernel.

DM-CRYPT/LUKS
Esistono due tipi di impostazioni dm-crypt: plain e LUKS. La differenza è che nel caso di utilizzo di LUKS, all'inizio del volume crittografico sono presenti metadati che consentono di utilizzare più chiavi e modificarle. Allo stesso tempo, la presenza di un titolo del genere in alcuni casi è di per sé compromettente - tuttavia, nella maggior parte dei casi casi simili sarà un'area compromettente con un alto grado di entropia. Configurazione di un semplice volume dm-crypt con un file chiave e una passphrase Vediamo come impostare una combinazione di un semplice volume dm-crypt crittografato con un file chiave contenuto in un contenitore LUKS. Per cominciare, vale la pena decidere esattamente come verranno posizionate le sezioni. Ci sono tre opzioni principali:
solo un volume crittografico;
prima un volume crittografico, poi LVM sopra di esso;
primo volume crittografico, quindi RAID, quindi LVM.

E tutti i tipi di combinazioni. Proviamo la seconda opzione. Prima di tutto, creiamo un contenitore LUKS per archiviare il file chiave per utilizzare questo file insieme alla passphrase. In questo caso, la probabilità di crittoanalisi di un volume crittografato con semplice dm-crypt è ridotta:

# dd if=/dev/zero of=/root/key.luks bs=512 count=2057

# cryptsetup --align-payload=1 luksFormat /root/key.luks

# cryptsetup luksOpen /root/key.luks criptochiave

# dd if=/dev/urandom of=/dev/mapper/cryptokey

Il primo comando prepara il file contenitore, il secondo crea questo contenitore, il terzo si collega, il quarto genera informazioni chiave. Vale la pena notare che l'opzione --align-payload=1 è necessaria in modo che la dimensione dei metadati LUKS non sia 4096 blocchi da 512 byte, ma solo 2056. Pertanto, rimangono 512 byte per le informazioni sulla chiave effettiva.
Quindi procediamo alla creazione di un criptotomo. A questo punto, puoi facoltativamente riempire il disco con dati pseudo-casuali per rendere la crittoanalisi più difficile, se presente. Quindi puoi già creare un criptotomo. Il comando per questo è il seguente (ovviamente, in altri casi, gli identificatori potrebbero differire, quindi devi stare attento):

# cryptsetup --cipher=serpent-xts-plain64 --offset=0--key-file=/dev/mapper/cryptokey --key-size=512 open --type=plain/dev/disk/by-id/ ata-VBOX_HARDDISK_VB05eadebe-f25e8d59 crypto0


Se necessario, ripetere lo stesso comando su altri dispositivi che richiedono la crittografia. Quindi creeremo LVM su cryptotoms e FS su di esso:

Creiamo il file /etc/initramfs-tools/hooks/cryptokeys con il seguente contenuto (la parte di servizio dello script è omessa):

E il file /etc/initramfs-tools/scripts/local-top/cryptokeys (parte di servizio di nuovo
o omesso):

# <...>

modprobe -b dm_crypt

Mentre! (/sbin/cryptsetup luksOpen /etc/crypto/key .luks cryptokey

/dev/disk/by-id/ata-VBOX_HARDDISK_VB05eadebe-f25e8d59 crypto0

&& /sbin/cryptsetup plainOpen -- key - file=/dev/mapper/cryptokey

/dev/disk/by-id/ata-VBOX_HARDDISK_VBc2414841-cfeccde5 crypto1

&& /sbin/cryptsetup luksChiude la chiave crittografica

); Fare

echo “Riprova . . . "

Fatto

Questi due file devono essere eseguibili. Quindi creiamo un initrd:

# update-initramfs -u -k all -v

Al successivo riavvio, ti verrà chiesta una password per il contenitore LUKS. Nel caso dell'utilizzo del semplice dm-crypt, esiste un'altra possibilità: un livello inferiore comune, che ti consente di fare qualcosa come i volumi nascosti TrueCrypt. È più facile fare un esempio:

# cryptsetup --cipher=serpent-xts-plain64 --offset=0--size=2097152 --shared open --type=plain/dev/disk/by-id/ata-VBOX_HARDDISK_VBcda8398f-f1f1deec crypto

# cryptsetup --cipher=serpent-xts-plain64 --offset=2097152--size=2097152 --shared open --type=plain/dev/disk/by-id/ata-VBOX_HARDDISK_VBcda8398f-f1f1deec crypto_shared

La dimensione e l'offset sono specificati in blocchi da 512 byte.


Funzionalità avanzate di LUKS
Diamo anche un'occhiata alle funzionalità avanzate dell'utilizzo dei contenitori LUKS. Questi includono la modifica delle chiavi. Ciò è necessario quando si compromette o si crea una policy di rekey. Il primo passaggio per eseguire questa operazione è eseguire il backup dell'intestazione del contenitore. Cado
normalmente, dopo aver cambiato la chiave, può essere distrutta. Lo facciamo, ovviamente, su una partizione non crittografata:

Infine, aggiungi una nuova chiave al sistema:

Considera la procedura per il ripristino dei volumi LUKS. L'opzione più semplice, ovviamente, è quando c'è una copia dell'intestazione. In questo caso, è necessario un solo comando per ripristinare:

La linea continua più lunga sarà la chiave principale. Deve essere copiato in un file su un volume non crittografato e quindi convertito in formato binario (prima di ciò, dovresti assicurarti che in dato file non ci sono
caratteri di fine riga):

ENCFS
Vediamo come configurare EncFS per il montaggio automatico all'accesso. Innanzitutto, installiamo i pacchetti necessari:

Durante la configurazione in modalità esperto, verranno poste una serie di domande: tipo di cifratura (sono disponibili solo AES e Blowfish), dimensione della chiave, dimensione del blocco, come crittografare i nomi dei file - cifratura a blocchi (che nasconde completamente il nome del file, inclusa la lunghezza ), streaming (che crittografa con la lunghezza più vicina possibile, il che a volte è conveniente se i nomi sono troppo lunghi e quando si utilizza un cifrario a blocchi c'è una probabilità abbastanza alta di superare la lunghezza massima consentita) o sarà completamente assente ... A al termine verrà richiesta una password, che deve corrispondere a quella utilizzata per entrare, altrimenti l'automount non funzionerà.

Successivamente, è necessario modificare il file /etc/security/pam_encfs.conf:

E il file /etc/fuse.conf:

E aggiungi l'utente al gruppo dei fusibili:

$ sudo usermod -a -G fuse $USER

Dopo il logout-login, la directory privata può essere utilizzata come archivio per i dati personali. Tuttavia, vale la pena notare che l'audit ha rivelato alcuni problemi di sicurezza (abbastanza seri), a causa dei quali questo sistemaÈ altamente sconsigliato utilizzarlo per archiviare dati veramente importanti.

ECRYPTFS
eCryptFS è noto per essere utilizzato da Ubuntu come strumento di protezione della home directory predefinito. Vediamo come funziona: creiamo manualmente una directory crittografata. Installa i pacchetti:

Creazione di eCryptFS

E monta FS (durante il primo montaggio, vengono creati tutti i metadati necessari):

$ sudo mount -t ecryptfs /home/rom/ . segreto/casa/rom/segreto

Verrà richiesta una passphrase (solo una volta, il rientro non è implementato, il che non sembra molto buono buona decisione, dato che dovrebbe essere lungo), poi chiederà il tipo di cifratura (AES, Blowfish, 3DES, Twofish, CAST6 e CAST5), la dimensione della chiave, chiederà se consentire o negare i file non crittografati nella directory con quelli crittografati, se crittografare i nomi dei file ... e alla fine chiederà se vogliamo davvero montare e salvare la firma in un file specifico. La domanda non è così stupida come potrebbe sembrare a prima vista: in questo software, in assenza di firma, non c'è modo di distinguere una password corretta da una errata.

Crittografia della home directory dell'utente

Durante la prima esecuzione, potrebbe essere necessario terminare diversi processi. Dopo la cifratura è necessario effettuare immediatamente il login come utente e verrà richiesto di scrivere o stampare la passphrase generata per la cifratura e protetta, a sua volta, dalla password dell'utente. Questo è necessario per il recupero in caso di emergenza.


Ricorda l'avviso di passphrase

Vediamo come ripristinarlo. Supponiamo che la passphrase non sia registrata e che il recupero provenga da un Live CD. Si presume che l'FS sia montato. Vai alla directory home/.ecryptfs/rom/.ecryptfs e digita il comando:

dm-verifica
Il modulo dm-verify è progettato per verificare l'integrità dei dispositivi a blocchi. La verifica viene eseguita utilizzando un albero hash, dove "foglie" sono le somme hash dei blocchi e "rami" sono le somme hash degli insiemi di "foglie". Pertanto, per verificare un dispositivo a blocchi (sia esso una partizione o un disco), è sufficiente controllare un solo checksum.
Questo meccanismo (insieme a una firma digitale) viene utilizzato in alcuni dispositivi Android per proteggersi dalle modifiche partizioni di sistema, così come in Google Chromium OS.

CONCLUSIONE
Linux contiene infatti parecchi strumenti per la protezione crittografica delle informazioni. Dei tre mezzi descritti, almeno uno è presente in tutti i moderni Distribuzioni Linux. Ma cosa scegliere?
dm-crypt/LUKS dovrebbe essere utilizzato nei casi in cui è possibile disabilitare rapidamente un volume crittografato e quando i backup non sono necessari o sono altrimenti classificati. In questo caso questa decisione più che efficiente, soprattutto considerando che puoi crittografare in una cascata di annidamenti e tipi arbitrari (ad esempio, AES-Twofish-AES), - un vero paradiso
per i paranoici.
eCryptFS adatto nei casi in cui è necessario salvare i dati crittografati da qualche parte, ad esempio nel cloud. Fornisce una crittografia abbastanza forte (sebbene la variante predefinita a 128 bit abbia il potenziale per ridurre la sicurezza di due bit) ed è trasparente per l'utente finale.
EncFS ma - un vecchio circa un decennio fa, basato su opere ancora più antiche. Attualmente non consigliato per l'uso a causa di potenziali falle di sicurezza, ma può essere utilizzato come strumento multipiattaforma per proteggere i dati non sensibili nei cloud.

Se hai bisogno di utilizzare tali strumenti, dovresti sempre ricordare che la protezione deve essere completa.

Tieni presente che l'autore di questo lavoro parla dei metodi di crittografia delle partizioni del disco con cui usa lui stesso.

Linux

Questo manuale utilizza Linux dm-cripta (device-mapper) sul nucleo 2.6 . Crittograferemo la sezione /dev/sdc1, può essere qualsiasi partizione, disco, USB o file creato lostup. Qui useremo /dev/loop0, Aspetto . mappatore del dispositivo utilizza un'etichetta per identificare una sezione, in questo esempio sdc1, ma può essere qualsiasi altra stringa.

Crittografia delle partizioni del disco con LUKS

LUKS Con dm-cripta molto comodo per crittografare le partizioni del disco, permette di avere più password per una partizione e anche di cambiarle facilmente. Per verificare se sei disponibile per l'uso LUKS, tipo: cryptsetup --help se circa LUKS non è apparso nulla, leggi sotto " dm-crypt senza LUKS". Innanzitutto, crea una partizione, se necessario fdisk /dev/sdc.

Come creare una partizione crittografata

# dd if=/dev/urandom of=/dev/sdc1 # Facoltativo. Solo per i paranoici# cryptsetup -y luksFormat /dev/sdc1 # Questo distruggerà tutti i dati su sdc1 # cryptsetup luksOpen /dev/sdc1 sdc1 # mkfs.ext3 /dev/mapper/sdc1 # Verrà creato un file system est3 # mount -t ext3 /dev/mapper/sdc1 /mnt # umount /mnt # cryptsetup luksClose sdc1
montare
# cryptsetup luksOpen /dev/sdc1 sdc1 # mount -t ext3 /dev/mapper/sdc1 /mnt
Smonta
# umount /mnt # cryptsetup luksClose sdc1

dm-crypt senza LUKS

# cryptsetup -y crea sdc1 /dev/sdc1 # O qualsiasi altra sezione come /dev/loop0 # dmsetup ls # Controlla, mostrerà: sdc1 (254, 0) # mkfs.ext3 /dev/mapper/sdc1 # Solo se fatto per la prima volta!# mount -t ext3 /dev/mapper/sdc1 /mnt # umount /mnt/ # cryptsetup remove sdc1 # Scollega la partizione crittografata Fai lo stesso (senza creare fs) per rimontare la partizione. Se viene immessa una password errata, il comando mount fallirà. In tal caso basta rimuovere il display sdc1 (cryptsetup rimuove sdc1) e crearne uno nuovo.

FreeBSD

Un paio di popolari moduli di crittografia del disco lo sono gbde E geli. Geli più veloce perché utilizza l'accelerazione hardware. Vedi il capitolo 18.6 del manuale di FreeBSD per ulteriori informazioni descrizione dettagliata. Per lavoro, geli deve essere caricato come modulo del kernel o incorporato in esso in fase di compilazione. opzioni GEOM_ELI dispositivo crypto # Oppure carica come modulo del kernel:# echo "geom_eli_load="YES"" >> /boot/loader.conf # Oppure kldload geom_eli

Utilizzando una password e una chiave

L'autore utilizza queste impostazioni per la tipica crittografia delle partizioni, utilizza una password e una chiave per crittografare " chiave maestra- chiave principale". Per montare la partizione crittografata, avrai bisogno sia di una password che di una chiave /root/ad1.key. "chiave maestra" è memorizzato all'interno della partizione ed è invisibile. L'esempio seguente è tipico per un'immagine USB o file.

Crea una partizione crittografata

# dd if=/dev/random of=/root/ad1.key bs=64 count=1 # Questa chiave crittografa la chiave principale# geli init -s 4096 -K /root/ad1.key /dev/ad1 # -s 8192 e OK per le unità# geli attach -k /root/ad1.key /dev/ad1 # DO crea backup/root/ad1.key# dd if=/dev/random of=/dev/ad1.eli bs=1m # Facoltativo e dispendioso in termini di tempo # newfs /dev/ad1.eli # Crea un file system# montare /dev/ad1.eli /mnt # Monta la partizione crittografata
Allegare
# geli attach -k /root/ad1.key /dev/ad1 # fsck -ny -t ffs /dev/ad1.eli # In caso di dubbio, controlla il filesystem# montare /dev/ad1.eli /mnt
Staccare
La procedura di smontaggio viene eseguita automaticamente allo spegnimento. # umount /mnt # geli stacca /dev/ad1.eli
/etc/fstab
Il montaggio di una partizione crittografata può essere configurato tramite /etc/fstab. La password verrà richiesta al momento del download. # grep geli /etc/rc.conf geli_devices="ad1" geli_ad1_flags="-k /root/ad1.key" # grep geli /etc/fstab /dev/ad1.eli /home/private ufs rw 0 0

Solo parola d'ordine

Questo è un modo più adatto per crittografare un'unità flash o un'immagine basata su un file, richiede solo una password. IN questo caso non c'è bisogno di preoccuparsi dei file chiave. La procedura è simile a quella descritta sopra, fatta eccezione per la creazione dei file chiave. Crittografiamo un'immagine da 1 GB creata da un file /file crittografato. # dd if=/dev/zero of=/cryptedfile bs=1M count=1000 # Crea un file da 1 GB# mdconfig -at vnode -f /cryptedfile # geli init /dev/md0 # Crittografa solo con password# geli attach /dev/md0 # newfs -U -m 0 /dev/md0.eli # mount /dev/md0.eli /mnt # umount /dev/md0.eli # geli detach md0.eli Ora questa immagine può essere montata su un'altra macchina semplicemente inserendo una password. # mdconfig -at vnode -f /cryptedfile # geli attach /dev/md0 # mount /dev/md0.eli /mnt

: - 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

Può aggiungere 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
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 dai siti Web sono diventate molto comuni, ma proteggere i tuoi dati non è solo responsabilità dei siti Web, c'è molto che noi, come 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 disco rigidoÈ 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, noto attrezzo software open source per la crittografia del disco. 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 di crittografia di Linux. dischi fissi e la standardizzazione consente l'interoperabilità tra diverse 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 aggiornamento apt-get$ 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. È 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 filesystem 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.

La crittografia della home directory fornisce una protezione affidabile dei dati archiviati su un disco rigido o su altri supporti. La crittografia è particolarmente rilevante su laptop, computer con accesso multiplo e in qualsiasi altro ambiente. La crittografia della home directory viene offerta durante l'installazione di Linux Mint.

L'intoppo principale crittografia completa home directory è che devi "spostare" la directory con i dati crittografati al di fuori del punto di montaggio.

Le prestazioni calano leggermente, almeno non utilizzando ancora SWAP. SWAP è una partizione o file del disco speciale in cui il sistema operativo sposta singoli blocchi di RAM quando non c'è abbastanza RAM per eseguire le applicazioni. SWAP è crittografato anche se scegli di crittografare la tua home directory nel programma di installazione e la modalità di ibernazione smette di funzionare.

Non crittografare SWAP con una home directory crittografata - potenzialmente pericoloso, poiché potrebbero esserci dati da file crittografati in testo non crittografato - l'intero punto di crittografia viene perso. A partire dalla versione 14 di Linux Mint, durante l'installazione è possibile scegliere l'opzione di cifratura dell'intero disco. Questa opzione è più adatta per archiviare dati personali su dispositivi portatili (che di solito hanno un solo utente).

1.3 Crittografia in gnome - Cavalluccio marino

Linux Mint ha un'utilità integrata chiamata "Password e chiavi" o Seahorse. Utilizzando le sue capacità, l'utente può operare con tutte le chiavi, password e certificati disponibili in questo sistema operativo.

In sostanza, Seahorse è un'applicazione per GNOME (GNOME è un ambiente desktop gratuito per sistemi operativi simili a Unix), che è un front-end per GnuPG (un programma gratuito per la crittografia delle informazioni e la creazione di firme digitali) ed è progettato per gestire la crittografia chiavi e password. È venuto a sostituire il portachiavi GNOME, che è stato completamente sostituito in GNOME 2.22, sebbene fosse stato annunciato in GNOME 2.18. Consente di eseguire tutte le operazioni che in precedenza era necessario eseguire sulla riga di comando e combinarle sotto un'unica interfaccia:

    gestisci la tua sicurezza ambiente di lavoro e chiavi OpenPGP e SSH;

    crittografare, espandere e verificare file e testo;

    aggiungi e verifica firme digitali ai documenti;

    sincronizzare le chiavi con i server delle chiavi;

    creare e pubblicare chiavi;

    riservare informazioni chiave;

    aggiungere alle immagini in qualsiasi GDK supportato come ID foto OpenGPG;

1.4 TrueCrypt

TrueCrypt ha un'interfaccia grafica abbastanza user-friendly, ma, sfortunatamente, gli sviluppatori hanno cablato l'integrazione con il file manager Nautilus nel codice.

Vari metodi possono essere utilizzati per crittografare i dati.

Per prima cosa devi creare un cosiddetto contenitore, che conterrà le cartelle di file destinate alla crittografia. Un contenitore può essere un file con un nome arbitrario o anche un'intera partizione del disco. Per accedere al contenitore è necessario specificare una password ed è inoltre possibile creare un file chiave (facoltativo) che verrà utilizzato per crittografare le informazioni. Il contenitore è limitato.

Crea partizioni/file crittografati

Creazione di un file chiave:

truecrypt -create-keyfile /home/utente/test/file , dove file è il nome del file chiave.

Creazione di un contenitore, in questo caso una sezione:

sudo truecrypt -k /home/utente/test/file -c /dev/sda9

Invece della partizione /dev/sda9, è del tutto possibile specificare un file, ad esempio /home/user/test/cryptofile, ma in questo caso sarà necessario specificarne la dimensione, questo viene fatto con -size= Parametro 5G prima del parametro -c. Questo esempio creerà un file crittografico da 5 GB. A volte TrueCrypt accetta la dimensione solo in byte, per 5 GB puoi calcolare il valore in anticipo e specificare -size=5368709120, oppure scriverlo così: -size=`echo 1024^3*5 | bc`.

Un file chiave già creato verrà utilizzato per la crittografia.

Durante la creazione, ti verrà chiesto di selezionare il tipo di contenitore (normale / nascosto), file system (FAT, ext2 / 3/4 o senza FS), in questo esempio è stata selezionata la modalità senza utilizzare FS. Ti verrà inoltre offerta una scelta di algoritmo di crittografia (ad esempio, AES), nonché un algoritmo hash (ad esempio, SHA-1) per la crittografia dei flussi di dati.

TrueCrypt viene utilizzato per crittografare i dati al volo, ovvero, montando il contenitore, puoi lavorare con i file in esso contenuti come al solito (apri/modifica/chiudi/crea/elimina), il che è molto comodo.

È stata creata una partizione/file crittografato. Ora, se hai bisogno di formattare il suo file system interno (di seguito FS) in quello desiderato, dovresti fare quanto segue.

Seleziona la partizione richiesta utilizzando Truecrypt:

truecrypt -k /home/utente/test/file /dev/sda9

Per impostazione predefinita, verrà utilizzato il dispositivo Truecrypt creato /dev/mapper/truecrypt0. Accedendo a questo dispositivo è possibile modificare, ad esempio, il file system in un contenitore crittografato. In questo caso, è necessario farlo.

sudo mkfs.ext4 -v /dev/mapper/truecrypt0

In questo modo, l'ext4 FS è stato creato all'interno di questo contenitore crittografato.

Inoltre, poiché questo contenitore è già "collegato" al dispositivo /dev/mapper/truecrypt0, resta semplicemente da montarlo in una directory. Questa directory di montaggio deve già esistere nel sistema.

sudo mount /dev/mapper/truecrypt0 /mnt/crypto, dove /mnt/crypto è la directory in cui è montato il contenitore crittografato.

truecrypt -d

Ora, senza conoscere il file chiave e la password, nessuno può leggere le informazioni nascoste.

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