Criptografando e compactando

28

Existe uma maneira melhor de compactar e criptografar arquivos que não sejam tarseguidos por opensslou gpg?

user75027
fonte
3
Depende. Quais são os seus requisitos? Como você está quantificando o "melhor"? Quais ferramentas você tem disponível? Você já considerou outras opções que podem ser úteis para mencionar?
22413 Greg Hewgill
Não considerou nenhum outro. Ele só precisa ser criptografia básica, onde alguém não possa ler o conteúdo do arquivo e, de preferência, manter uma boa taxa de compactação.
user75027
1
Geralmente a resposta será não. Uma das filosofias centrais do unix é "faça uma coisa e faça bem". tar -zé uma pequena exceção, porque é uma prática muito comum.
22414 Patrick Patrick
1
As tarversões mais recentes suportam a compactação xz (flag -J) cuja taxa de compactação é geralmente melhor que a compactação mais tradicional gzip ( -z) ou bzip2 ( -j).
Jofel
Eu notei que xzé excelente. Lembro-me de baixar o kernel e foi compactado para cerca de 1/7 do seu tamanho original. Acho que vou tar cvJf out.tar.xz file1 [file2...]usar o gpg ou o openssl para criptografá-lo. Percebo também que o xz é muito rápido. Como consegue uma compressão melhor que o bz2 e ainda é rápido?
user75027

Respostas:

24

taré a ferramenta usual para agrupar arquivos. A planície em tarsi não se comprime. Existem ferramentas separadas, como gzip , bzip2 e xz (em ordem crescente de taxa de compactação em arquivos típicos) que compactam um arquivo. Muitas tarimplementações, incluindo GNU tar (a implementação normal no Linux), podem ser compactadas automaticamente com uma opção ( -zpara gzip, -jbzip2, -Jxz):

tar -cJf myarchive.tar.xz file1 file2 file3

Para criptografar um arquivo, use gpg . Crie uma chave e associe-a ao seu endereço de email (os identificadores de chave GPG / PGP geralmente contêm um endereço de email, embora não seja necessário). Criptografe seus arquivos, especificando seu email como destinatário. Para descriptografar um arquivo, você precisará digitar a senha para desbloquear sua chave privada.

O GPG também permite criptografar um arquivo com uma senha. Isso é menos seguro e menos flexível. É menos flexível porque você precisa especificar a senha ao criptografar (por exemplo, você não pode fazer backups autônomos). É menos seguro porque a única segurança é a senha, enquanto a criptografia baseada em chave divide a segurança entre a senha e a chave.

Não use a opensslferramenta de linha de comando. É uma vitrine para a biblioteca OpenSSL, não projetada para uso em produção. Embora você possa fazer algumas coisas com ele (em particular, ele possui todas as primitivas necessárias para uma autoridade de certificação básica), é difícil de usar corretamente e não tem tudo o que você precisa para fazer as coisas corretamente. Onde o GPG fornece uma bicicleta, o OpenSSL fornece algumas hastes de metal de vários tamanhos e duas câmaras de borracha (parafusos e bomba não incluídos). Use GPG.

Gilles 'SO- parar de ser mau'
fonte
Entendo o tar como um empacotador e os métodos de compactação. As teclas gpg, no entanto, são novas para mim. Eu não entendo exatamente como usá-lo, embora eu tenha uma chave. Eu acho que. Eu acho que também tenho chaves ssh.
user75027
Era isso que eu procurava para compactar e criptografar com um comando (usando tare gpgem um pipe).
CGFoX 19/01
12

Você pode usar o 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

Ele solicitará uma senha. Aparentemente, ele usa o AES-256 para criptografia e o SHA-256 da senha e um contador repetido 512K vezes para derivação de chave.

Editar : isso não criptografa os nomes dos arquivos; portanto, você pode querer tartudo primeiro.

Edit 2 : Added -mhe=on.

Timmmm
fonte
5
Se você usar, 7zapoderá criptografar os nomes dos arquivos com a -mhe=onopção
SilverlightFox
3

Portanto, você também pode usar nomes de arquivos com criptografia 7zip:

7z a -p -mhe=on stuff.7z MyStuff
Vencedor
fonte