Come crittografare e decrittografare al meglio una directory tramite la riga di comando o lo script?


8

Ho una directory di file di testo sotto il controllo della versione del bazar e ne conservo una copia (un ramo, in realtà) su ciascuna delle mie macchine. Voglio crittografare e non crittografare la directory tramite la riga di comando.

Idealmente, sarei anche in grado di eseguire uno script al logout per verificare se la directory è crittografata e crittografarla in caso contrario, il tutto senza l'intervento dell'utente. Non voglio, tuttavia, che la directory venga decrittografata al momento dell'accesso. (Voglio fare in modo che lo script non dimentichi di crittografare manualmente. Questo è particolarmente importante per il netbook.)

Sto correndo ubuntu 10.04.1e due versioni di Crunchbang Linux, una derivata ubuntu 9.04, una delle due istantanee di fine giugno dei repository di Debian Squeeze.

Qual è il modo migliore per farlo?

(Ho provato a taggare con encryptione directories, ma manca il rappresentante per creare un tag.)

Risposte:


5

Hai accesso amministrativo alle macchine? Si potrebbe usare un dispositivo di loopback crittografato. Esempio:

crea un file contenitore per i file crittografati:

dd if=/dev/urandom of=container bs=1024k count=100 

associare il file contenitore al dispositivo di loopback 0:

losetup container /dev/loop0

crea un dispositivo crittografato (-y richiede due volte la passphrase; linea divisa per \):

cryptsetup -c serpent-xts-essiv:sha256 -b 512 \
   -y create container /dev/loop0 

crea un filesystem ext2 su un dispositivo crittografato (puoi usare qualsiasi cosa davvero):

mkfs.ext2 /dev/mapper/container

monta il filesystem crittografato nella directory crypt:

mount /dev/mapper/container crypt

Per riferimento:

man cryptsetup && man losetup

Inoltre, leggi le migliori pratiche di crittografia, per informazioni sulla scelta della crittografia e delle lunghezze delle chiavi da utilizzare, ecc.


4

Sembra che ciò che stai cercando non sia un modo per crittografare e decrittografare le directory, ma un modo per lavorare in modo trasparente con l'archiviazione crittografata. Nota che lo schema che proponi, con l'effettiva decrittografia e crittografia di massa, non è molto sicuro: lascia le cose non crittografate se non ti disconnetti normalmente (mancanza di corrente, crash di sistema, laptop rubato ...); e lascia tracce dei tuoi dati confidenziali che un determinato aggressore potrebbe trovare (i dati dei file cancellati sono ancora sul disco, appena difficili da trovare).

Gli attuali sistemi Linux offrono diversi modi per ottenere una crittografia trasparente. Puoi crittografare un intero volume con dm-crypt o una delle sue alternative. Esistono diversi strumenti disponibili per crittografare un albero di directory specifico, inclusi ecryptfs (che funziona a livello di kernel) e encfs (che funziona puramente in userland tramite fusibile). (I tre che menziono sono disponibili in Debian lenny e dovrebbero essere offerti da tutte le tue distribuzioni.)

È possibile impostare le directory crittografate da montare quando si accede tramite PAM ( libpam-mountpacchetto; opzione consigliata per ecryptfs) o tramite gli script del profilo (opzione consigliata per encfs). Si noti che non esiste alcun problema con "dimenticare di crittografare manualmente" poiché nulla viene mai scritto non crittografato sul disco.

Per la migliore protezione, è necessario crittografare non solo i file riservati, ma anche altri luoghi in cui i dati riservati possono essere memorizzati dai programmi. Almeno, dovresti crittografare la tua partizione di swap. Altri luoghi da guardare includono /tmp(risolto meglio eseguendolo tmpfs), /var/spool/cupsse si stampano documenti riservati e file per applicazione nella propria directory home tali cache / cronologie web (ad es ~/.mozilla.).


3

Che ne dici di usare gpgdir ? Questo dovrebbe essere programmabile tramite script per il login e il logout. È inoltre possibile selezionare le sottodirectory che dovrebbero essere crittografate (ad esempio, è possibile che si desideri che i file .bash_rcrimangano decodificati).

Un'altra alternativa potrebbe essere TrueCrypt . È possibile creare un contenitore per i dati e crittografarlo / decrittografarlo tramite script di shell.


2

Puoi anche usare ecryptfs, che è standard su Ubuntu e le sue distribuzioni derivate. Questo è ciò che viene utilizzato quando il processo di installazione ti chiede se vuoi crittografare la tua home directory (http://www.linuxjournal.com/article/9400). Il vantaggio di ecryptfs è che non è necessaria una partizione separata o un file montato in loopback per usarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.