Crittografia e compressione


28

Esiste un modo migliore per comprimere e quindi crittografare i file diversi da quelli tarseguiti da opensslo gpg?


3
Dipende. Quali sono le tue esigenze? Come stai quantificando il "migliore"? Quali strumenti hai a disposizione? Hai già preso in considerazione altre opzioni che potrebbero essere utili da menzionare?
Greg Hewgill,

Non ne ho presi in considerazione altri. Deve solo essere una crittografia di base, in cui qualcuno non può leggere il contenuto del file e preferibilmente mantenere un buon rapporto di compressione.
user75027

1
Generalmente la risposta sarà no. Una delle filosofie fondamentali di Unix è "fai una cosa e fallo bene". tar -zè una leggera eccezione perché è una pratica molto comune.
Patrick,

1
Le tarversioni più recenti supportano la compressione xz (flag -J) il cui rapporto di compressione è generalmente migliore della compressione gzip ( -z) o bzip2 ( -j) più tradizionale .
jofel,

Ho notato che xzè eccellente. Ricordo di aver scaricato il kernel ed è stato compresso a circa 1/7 della sua dimensione originale. Immagino che userò tar cvJf out.tar.xz file1 [file2...]gpg o openssl per crittografarlo. Ho anche notato che xz è molto veloce. Come fa a ottenere una compressione migliore di bz2 ed essere ancora veloce?
user75027

Risposte:


24

tarè il solito strumento per raggruppare i file. La pianura tarstessa non si comprime. Esistono strumenti separati come gzip , bzip2 e xz (in ordine crescente di rapporto di compressione su file tipici) che comprimono un file. Molte tarimplementazioni, incluso GNU tar (la normale implementazione su Linux), possono comprimere automaticamente con un'opzione ( -zper gzip, -jper bzip2, -Jper xz):

tar -cJf myarchive.tar.xz file1 file2 file3

Per crittografare un file, usa gpg . Crea una chiave e associala al tuo indirizzo email (gli identificatori chiave GPG / PGP di solito contengono un indirizzo email, anche se non è necessario). Crittografa i tuoi file, specificando la tua email come destinatario. Per decrittografare un file, devi inserire la passphrase per sbloccare la tua chiave privata.

GPG ti consente anche di crittografare un file con una password. Questo è meno sicuro e meno flessibile. È meno flessibile perché è necessario specificare la password durante la crittografia (quindi ad esempio non è possibile eseguire backup non presidiati). È meno sicuro perché l'unica sicurezza è la password, mentre la crittografia basata su chiave divide la sicurezza tra password e chiave.

Non utilizzare lo opensslstrumento da riga di comando. È una vetrina per la libreria OpenSSL, non progettata per l'uso in produzione. Sebbene tu possa fare alcune cose con esso (in particolare, ha tutti i primitivi necessari per un'autorità di certificazione di base), è difficile da usare correttamente e non ha tutto il necessario per fare le cose nel modo giusto. Dove GPG ti offre una bicicletta, OpenSSL ti offre alcune aste di metallo di varie dimensioni e un paio di camere di gomma (viti e pompa non incluse). Usa GPG.


Capisco tar come un bundler e i metodi di compressione. le chiavi gpg, tuttavia, sono nuove per me. Non capisco esattamente come usarlo, anche se ho una chiave. Credo. Penso di avere anche i tasti ssh.
user75027,

Questo è quello che stavo cercando per comprimere e crittografare con un comando (usando tare gpgin una pipe).
CGFoX

12

Puoi usare 7zip:

7z a -p -mhe=on stuff.7z MyStuff
   ^  ^     ^      ^        ^
   |  |     |      |        `--- Files/directories to compress & encrypt.
   |  |     |      `--- Output filename
   |  |      `--- Encrypt filenames
   |  `---- Use a password
   `---- Add files to archive

Ti verrà richiesta una password. Apparentemente usa AES-256 per la crittografia e SHA-256 della password e un contatore ripetuto 512K volte per la derivazione della chiave.

Modifica : questo non crittografa i nomi dei file, quindi potresti voler tarcomunque prima tutto.

Modifica 2 : aggiunto -mhe=on.


5
Se lo usi 7zapuoi crittografare i nomi dei file con l' -mhe=onopzione.
SilverlightFox

3

Quindi puoi usare anche i nomi dei file crittografati 7zip:

7z a -p -mhe=on stuff.7z MyStuff
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.