Criptografando um arquivo tar ou gz (gzip) com OpenSSL

Quando você tiver dados confidenciais que precisa transmitir, mas deseja torná-los mais fáceis de criptografar e descriptografar, use algumas ferramentas padrão para fazer o trabalho!

Recentemente, tive um problema em que um cliente estava usando laptops OS X executando um painel de administração escrito em PHP no MAMP em um ambiente que pode ou não ter uma conexão com a internet. O problema era que eles precisavam ser capazes de despejar os dados do banco de dados em um arquivo criptografado para que pudessem enviar os dados quando conseguissem uma conexão (via e-mail, upload, quem sabe). Minha resposta inicial foi usar gpg para criptografar o arquivo e distribuir as chaves para as pessoas que estariam lendo os dados.

Acontece que isso seria um pesadelo e eu precisava de algo ‘mais fácil’. Que tal criptografar um arquivo tar com OpenSSL? Bingo! Esta solução usa utilitários que já estão na máquina e nenhuma instalação precisa ser realizada. A razão pela qual isso foi tão importante é porque os laptops que executam este software estarão em todo o mundo com vários níveis de perspicácia técnica e será um pesadelo ter certeza de que cada laptop foi atualizado corretamente.

Criptografando seu arquivo

tar e gzip o arquivo, então criptografá-lo usando des3 e uma chave secreta.

tar cvzf - mysql_dump.sql | openssl des3 -salt -k #YOUR PASSWORD# | dd of=encrypted_mysql_dump

Que simples!

Descriptografando seu arquivo

dd if=encrypted_mysql_dump |openssl des3 -d -k #YOUR PASSWORD# |tar xvzf -

Basicamente, basta chamar todos os comandos na ordem inversa.

http://blog.ashurex.com/2012/07/17/encrypting-tar-gz-gzip-file-openssl/