5 comandos do GPG para criptografar e descriptografar arquivos

Os comandos que seguem, podem ser usados com o utilitário gpg, que pode ser instalado a partir dos repositórios oficiais da maioria das distribuições GNU/Linux.
Este post tem o propósito de fazer “um apanhado” geral do uso da ferramenta, nas funções de criptografia/descriptografia.

Caso tenha dúvidas ou queira se aprofundar mais sobre algum procedimento, clique nos links do texto.

gpg criptografia

Para criptografar um arquivo texto (por exemplo, ‘texto.txt’) com o uso de uma senha simples, definida durante o procedimento, use a opção ‘-c’:


gpg -c texto.txt

O comando irá lhe pedir uma senha (e confirmar, em seguida) e criar um novo arquivo, com extensão .gpg.
Se o arquivo, com esta extensão, já existir, você será avisado com a mensagem “File ‘texto.txt.gpg’ exists. Overwrite? (y/N) “.
Neste caso, tecle ‘y’ para sobrescrever ou ‘N’ para interromper a execução e voltar à linha de comando.
Leia mais sobre esta opção aqui.
Se usar ‘-e’, é possível criptografar usando a chave pública de um (ou mais) destinatário(s) — adicionando uma camada extra de proteção contra bisbilhoteiros corporativos ou governamentais.
Segue um exemplo:


gpg -e texto.txt

You did not specify a user ID. (you may use "-r")

Current recipients:

Enter the user ID.  End with an empty line: hermengardaafonso@yahoo.com.br
No such user ID.

Current recipients:
rsa2048/5ASDFS7832142418 2017-11-23 "Hermengarda Afonso" hermengardaafonso@yahoo.com.br

Enter the user ID.  End with an empty line: justincase@gmail.com

Current recipients:
rsa2048/4FE73CDD0A83E688 2017-11-23 "Justin Case justincase@gmail.com"
rsa2048/5ASDFS7832142418 2017-11-23 "Hermengarda Afonso" hermengardaafonso@yahoo.com.br

Enter the user ID.  End with an empty line:

Vamos entender o que houve aqui:

  • Você pode especificar mais de um destinatário a ter acesso ao arquivo. Digite o email dele ou dela e tecle Enter para fornecer o email do próximo.
  • Basta dar um ‘Enter’, para uma linha em branco, para o gpg entender que não há mais novos recipients a acrescentar.

Você também pode indicar o destinatário direto na linha de comando, com a opção ‘-r’:


gpg -er justincase@gmail.com texto.txt

Se quiser assinar um arquivo texto com sua chave secreta (privada), use a opção ‘-s’:


gpg -s texto.txt

Uma variante, para este comando é dado pela opção --clearsign.
Ele acrescenta a sua assinatura e mantém o arquivo legível para as pessoas que não possuem suporte ao GPG:


gpg --clearsign loremipsum.txt

cat loremipsum.txt.asc 

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

O que é o Lorem Ipsum?

 O Lorem Ipsum é um texto modelo da indústria tipográfica e de impressão. 

 O Lorem Ipsum tem vindo a ser o texto padrão usado por estas indústrias desde o ano de 1500, quando uma misturou os caracteres de um texto para criar um espécime de livro.

 Este texto não só sobreviveu 5 séculos, mas também o salto para a tipografia electrónica, mantendo-se essencialmente inalterada.

 Foi popularizada nos anos 60 com a disponibilização das folhas de Letraset, que continham passagens com Lorem Ipsum, e mais recentemente com os programas de publicação como o Aldus PageMaker que incluem versões do Lorem Ipsum.


Fonte: https://pt.lipsum.com/
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEwiKr3xCRZwLRemeMKsDy8hFgxDsFAlodsXAACgkQKsDy8hFg
xDvtCQf9EqpnF++3RbYb+LJBhlmjKdflJTg8xDX8WWFKDxL52dRHx9Hy1K7SlOo5
7gm+O38u0OVlPMx2OeUEBj9QSw9E9rKBOr/sMT2uK5ZoRDvTRXsfhcm0/oI5Xowa
9CtG2rWcH2RBZ+wiuFOQmPzMv7/T50wyx1Vxcqrw264XQ/1zPDegBajhe8CrgTXY
HbkLDfXeNBwfOY3GAvTwbRFlUa/bJ2mOxkAJyn8bynU6VaqEXKNL1rKnazHNrNwp
kHaQHw5+ZEdWzpslxPnuLblsV8XjWIsLYsCND4gZhcAA0jCTEoTWScUd3BbWBjm7
zZFvpaRT1/Rjd74cwRI3DerMT4vy/g==
=Lpy5
-----END PGP SIGNATURE----

Como é possível observar, acima, o conteúdo continua visível a qualquer. Ele foi acrescido da assinatura (PGP signature) do seu criador.
Neste caso, o procedimento pode ajudar a dar legitimidade a um arquivo ou certificar sua procedência.

O comando que segue, pode ser usado para assinar seu arquivo com sua chave privada e, em seguida, criptografá-lo com a chave pública do destinatário (recipient).


gpg -se -r justincase@email loremipsum.txt

… que irá gerar um arquivo ‘loremipsum.txt.gpg’, que poderá ser descriptografado pelo usuário (userid) justincase@email.

Ao descriptografar o arquivo ‘loremipsum.txt.gpg’, o programa irá criar um arquivo de saída, chamado ‘loremipsum.txt’.
Se você prefere que ele crie um arquivo de saída, descriptografado, com outro nome, use a opção ‘-o’:


gpg -o outroarquivo.txt loremipsum.txt.gpg

Referências

Texto sobre o Lorem Ipsum: https://pt.lipsum.com/.

Criptografe arquivos usando uma chave pública GPG

Antes de armazenar um arquivo com conteúdo sensível, convém protegê-lo com uma camada de criptografia forte.
Se você não precisa de recursos criptográficos muito fortes e se sente melhor usando a interface gráfica (GUI) do Linux, experimente usar o Xarchiver.

Neste texto vou mostrar como criptografar um arquivo (ou vários), usando uma chave pública, na linha de comando (CLI) do Linux, usando o gpg.
Depois de seguro, o arquivo pode ser armazenado em CD/DVD, em flash drive (pendrive), na nuvem etc.
É claro que você ou o destinatário precisa ter criado uma chave pública antes, a ser usada no procedimento.
No artigo como encriptar seus arquivos com gpg, ensinei uma maneira um pouquinho mais simplificada de aplicar a criptografia a arquivos, usando apenas uma senha criada na hora.
Neste texto, vamos abordar um método mais sofisticado — sob o ponto de vista da segurança.
É necessário saber o nome do arquivo e o email usado para registrar a chave pública, em questão, além da sua própria chave privada.


Tá confuso? Então leia mais sobre o gpg.

O comando para criptografar um arquivo, com o uso da sua chave pública é o seguinte:

gpg -e -r email seu-arquivo

Troque, no comando acima, “email”, pela conta de email usada para definir a public key.
No lugar de “seu-arquivo”, use o nome do arquivo a ser criptografado.
Veja um comando real:


gpg -e -r justincase@gmail.com texto.txt

Será gerado um segundo arquivo criptografado ‘texto.txt.gpg’.
Por segurança, remova o original e mantenha apenas a versão segura — com extensão .gpg.
Este arquivo pode ser guardado em segurança.

Se você deseja enviar este arquivo para alguém, deve usar a chave pública do destinatário, ou seja, informar a conta de email que este usou pra registrar sua public key.
O destinatário do arquivo poderá abri-lo usando o gpg:


gpg texto.txt.gpg

Novamente será criado um arquivo ‘texto.txt’, descriptografado.
Se for texto puro, pode ser lido com o comando cat:


cat texto.txt

criptografia com o GNUPG para iniciantes

O GNU Privacy Guard ou GnuPG (GPG ou segurança da privacidade GNU, em uma tradução livre) é um software livre desenvolvido para oferecer uma solução segura, com padrões abertos e auditáveis para criptografar dados de usuários.
Com desenvolvimento iniciado em 1997, na Alemanha, teve sua primeira versão estável lançada em 1999.
É, hoje, uma solução madura e sólida para dar mais segurança às suas informações — tanto no armazenamento, quanto no tráfego.

O GPG pode dar uma camada concreta de segurança para arquivos desde os mais simples, de texto, a pacotes volumosos de backups.
O software pode manter suas conversas por chat ou email protegidas de olhares bisbilhoteiros do governo, de grandes corporações ou dos seus concorrentes empresariais.

Usuários Linux dispõem de clientes de email com a tecnologia integrada, desde a instalação — como o Kmail (KDE) e o Evolution (GNOME).
Outros aplicativos podem receber a funcionalidade através de plugins.

Resumidamente, é uma solução para criptografar e descriptografar, além de assinar digitalmente os dados que você envia — para garantir ao recebedor que as informações estão realmente vindo de você.
Quem ainda não tem o hábito de criptografar informações sensíveis, deveria começar a levar isto a sério.
Os tempos atuais já exigem que se tenha este tipo de cuidados com os dados, seja no servidor, no computador pessoal ou do trabalho.

Este post é baseado no GNU/Linux (Debian 10 testing “Buster”, mais especificamente). Os conceitos, contudo se aplicam a qualquer outra distribuição ou sistema operacional.

É importante garantir que seus dados não serão facilmente lidos pelas pessoas erradas.

Este artigo parte do zero, ou seja, do pressuposto de que você não sabe nada sobre o GPG ainda.
Inúmeras aplicações fazem uso da criptografia com o GPG.
Na medida em que o seu conhecimento sobre o assunto for se consolidando, sua compreensão irá melhorar sobre o funcionamento deste recurso.

Neste sentido, vamos fazer um passo a passo, que começa com a instalação à geração de uma chave pública e outra privada para você usar.
Vamos começar pela linha de comando (CLI) e, em outros artigos, vou mostrar como usar a criptografia em aplicativos (CLI e GUI).
Abra o terminal!

Instalação do GnuPG

Baixe e instale o pacote de criptografia dos repositórios.
No Debian, no Ubuntu e nas outras distribuições derivadas destas, use o apt (ou apt-get):


sudo apt install gnupg

Isto é tudo o que você precisa, por enquanto.
Vamos em frente.

Como funcionam as chaves criptográficas

Tecnicamente, o gpg já está pronto para ser usado para criptografar seus arquivos.
Para usar todos os recursos do software, é necessário gerar algumas chaves criptográficas.
São duas:

  • a chave pública ou public key
  • a chave privada ou private key

É com este par de chaves que seus dados são codificados/decodificados.
Elas são associadas ao seu endereço de email.
A chave pública é a que você compartilha com as pessoas que desejam se comunicar com você, em segurança.
A chave privada, como o nome sugere, é a que só lhe diz respeito. Esta não é para ser compartilhada.
Quando você e outra pessoa trocam suas chaves públicas, podem passar a trocar mensagens privadas entre si.

Por exemplo, para enviar uma mensagem criptografada para João, é necessário que você e ele troquem chaves públicas entre si.
Então você abre o seu email (com suporte a criptografia) e digita sua mensagem para João.
Antes de enviar sua mensagem, clique no botão para criptografá-la.
A mensagem será codificada (ou embaralhada) com a chave pública de João e só ele poderá abri-la, com a chave privada dele.

Como gerar suas chaves criptográficas


Segue o passo a passo para criar seu par de chaves (pública e privada) para usar todo o potencial do GPG
No terminal rode o comando


gpg --gen-key 

gpg (GnuPG) 2.1.18; Copyright (C) 2017 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Note: Use "gpg --full-generate-key" for a full featured key generation dialog.

GnuPG needs to construct a user ID to identify your key.

Real name: 

O seu nome real será pedido, como primeiro requisito.
Em seguida, seu endereço de email.
Seja cuidadosa(o) e verifique se as informações estão corretas.
O gpg irá pedir para entrar uma senha (sua chave privada) — que deve ser o mais complexa possível, envolvendo caracteres alfanuméricos, números, letras alternadamente maiúsculas/minúsculas e símbolos.

O ponto mais fraco do GPG é a senha que você escolhe como chave privada. Sugiro ler sobre o uso do apg, para ajudar a gerar senhas pessoais mais seguras.

Ao confirmar, uma série de bytes aleatórios serão gerados, para compor a sua nova chave pública.
Este processo pode demorar um pouco.
É uma boa ideia manter o sistema ocupado com outras ações: usar o teclado, o mouse, abrir o conteúdo do pendrive etc. Com isto, você ajuda a “gerar ruído” a ser usado para aumentar a complexidade da sua public key.
Ao fim do processo, o gpg irá reportar a criação com sucesso da chave e exibir sua ID de chave pública, sua “impressão digital” (fingerprint), entre outras informações.

Com isto, você está pronto para os próximos passos.
Continue no terminal!

Como exportar sua chave pública

Este procedimento é muito importante.
Sem isto, não é possível às outras pessoas criptografarem mensagens exclusivas para você.
Para exportar sua chave pública, rode o seguinte comando:


gpg --armor --export seu-email > chave_publica.asc

Acima, substitua “seu-email” pelo email usado para criar a chave pública, anteriormente.
Este comando cria o arquivo chave_publica.asc (você pode usar outro nome, se quiser).
Este arquivo contém a sua chave pública. Se quiser ver o seu conteúdo, use o comando cat:


cat chave_publica.asc 

-----BEGIN PGP PUBLIC KEY BLOCK-----

PkoQEWmlxNAEllQWoHwVbXBmgi6bkB945gg6M9QNLujLgfsDY0vAgeMMxTXbAnTR
BxL+w/PikSy44CIGy9EtQ+d27PpcrLkRM/HLABEBAAG0NkVsaWFzIFNlcnJhIFBy
YWNpYW5vIFBlcmVpcmEgPGVsaWFzcHJhY2lhbm9AZ21haWwuY29tPokBVAQTAQgA
PhYhBA2NPdDX0EfJoPcb2v2mn4cCXf7cBQJaB1EEAhsDBQkDwmcABQsJCAcCBhUI
CQoLAgQWAgMBAh4BAheAAAoJEP2mn4cCXf7cLU0H/3xW3ShRh1xXGQ5NLAmAuTOl
6D8ECyQmpxdhTJaiQ2wsosnrRIBi6XNuMj5b3Mhd51pVNlMadKRIWfNs99Yjaci5
S5oQz3oHwlIZ2C/g35utcHcTpShbSBJrm3bgY+dOeXtk2M0cuKPxJ4uyLvSfgknG
x1eqF6OAKhIqHi9NC7sW5YJ3Fq4zXh0gYyVTmLQ5O5LviPOGjn+B9IMg/Ewjk/vL
8rI4w1IRuXL+BAy3RKwv4Cb0qmsu2o0WfzkAEQEAAYkBPAQYAQgAJhYhBA2NPdDX

...

6D8ECyQmpxdhTJaiQ2wsosnrRIBi6XNuMj5b3Mhd51pVNlMadKRIWfNs99Yjaci5
S5oQz3oHwlIZ2C/g35utcHcTpShbSBJrm3bgY+dOeXtk2M0cuKPxJ4uyLvSfgknG
x1eqF6OAKhIqHi9NC7sW5YJ3Fq4zXh0gYyVTmLQ5O5LviPOGjn+B9IMg/Ewjk/vL
qGuITvoL2H2C+I6Z1hxLxnFq4BciiEXpErxTk+A+HbUYSTyCf4LsjZn0vVaYpq7C
sBBsFXTMWZS1osrgvkE9K05g/yEKBYxpFVR98hSKrmxfNSL8YPnjCXQ7vn7eV5K5
-----END PGP PUBLIC KEY BLOCK-----

Se quiser, você pode inserir este conteúdo no rodapé dos seus emails. Ele é para ser compartilhado com todo mundo que deseja te enviar informações criptografadas.
Se achar mais cômodo, apenas envie o arquivo chave_publica.asc para as pessoas.

Outra solução é enviar a sua chave pública para um servidor (public key server), de forma que ela fique catalogada e possa ser acessada por qualquer pessoa no mundo que queira trocar mensagens seguras com você.
Para isto, use a opção --list-keys:


gpg --list-keys 

/home/justincase/.gnupg/pubring.kbx
-----------------------------------
pub   rsa2048 2017-11-23 [SC] [expires: 2019-11-23]
      6750982194C7BB445CE45LL0B092D0E68C08315A
uid           [ultimate] Justin Case 
sub   rsa2048 2017-11-23 [E] [expires: 2019-11-23]

Preste atenção na cadeia de caracteres na segunda linha, logo após a data de expiração. No meu caso, é a seguinte: 6750982194C7GG445CE45FF0B092D0E68C08315A.
Esta é a identificação primária (primary ID), associada à chave que será exportada.
Agora rode o seguinte comando:


gpg --keyserver pgp.mit.edu --send-keys 6750982194C7CC445CE45BB0B092D0E68C08315A

gpg: sending key 2194C7GG445CE45FF0 to hkp://pgp.mit.edu

Você já deve ter deduzido que o comando acima envia sua chave pública para armazenamento em um dos servidores do MIT. Lá, ela poderá ser acessada e baixada por qualquer um.

Como acessar a chave pública de uma pessoa

Depois de exportada, sua public key poderá ser vista e usada para criar documentos criptografados para você, a partir do servidor do MIT:

https://pgp.mit.edu/

Se a pessoa souber o seu nome ou o seu email, ela pode fazer uma busca no servidor, conforme a imagem abaixo:
elias praciano chave publica no servidor do MIT
Resultado da busca:
mit public key

Como importar a chave pública de alguém

No caminho inverso, se você quiser enviar um email com conteúdo criptografado para alguém, vai precisar da chave pública desta pessoa.
Você pode obter a chave diretamente da pessoa ou de um servidor público.
De posse da chave, é necessário “importá-la”. Veja como fazer isso.
Vamos supor que a chave esteja dentro do arquivo ‘fulano_public_key.asc’. Use ‘--import‘:


gpg --import ~/.PUBKEYS/fulano_public_key.asc

De acordo com a configuração de cada aplicativo que usa o GPG, o seu sistema vai saber aonde encontrar as chaves públicas que você tiver, aí.
Ou seja, se estiver usando o plugin Enigmail, o cliente de email Thunderbird fará uso intuitivo e automático da criptografia, quando requerido.

referências

https://pt.wikipedia.org/wiki/GNU_Privacy_Guard.

https://www.linux.com/learn/how-send-and-receive-encrypted-data-gnupg.

Compacte arquivos usando os recursos do bzip2

O bzip2 comprime arquivos através do algoritmo de Burrows-Wheeler.
O nível de compressão por este método é consideravelmente mais eficiente do que o de softwares baseados no LZ77/LZ78 (LZW).
Por outro lado, não chega a ser tão bom quanto a família de compressores estatísticos PPM.

O pacote de utilitários bzip2 é composto pelos seguintes itens:

  1. bzip2, bunzip2 — respectivamente, ferramentas de compactação e descompactação de arquivos.
  2. bzcat — descomprime arquivos para o stdout, ou seja, exibe o conteúdo.
  3. bzip2recover — ferramenta de recuperação e correção de arquivos bzip2 danificados.

É comum usar o programa em conjunto com o comando tar.
O tar não é, exatamente, uma ferramenta de compressão e depende de aplicativos de terceiros para fazer este trabalho.
Por outro lado, o bzip2 não é um arquivador. Ele comprime os arquivos individualmente.
Por ĩsto, é tão comum combinar os dois utilitários.
Para fazer o arquivamento (backup) de diretórios, usando o tar, com compressão pelo bzip2, use-o assim:


tar cjf backup.tar.bz ~/temp/

Se quiser, use o progress, como ferramenta para acompanhar o andamento do processo de backup tar/bzip2, com resultados individuais exibidos para cada processo.

progress tar bzip2

O bzip2 faz parte do conjunto de ferramentas padrão das grandes distribuições GNU/Linux. Você provavelmente não precisará se preocupar em instalar, portanto. Tudo que precisa para começar a usar agora, já se encontra no seu sistema.

Como usar o bzip2 na CLI

Na linha de comando (CLI), o bzip2 tem uma sintaxe similar ao do gzip, o que pode tornar mais fácil o trabalho de substituição em scripts de backup.
O utilitário espera que lhe seja dado uma lista de arquivos, acompanhados das opções de uso.
Cada arquivo é substituído por uma versão comprimida de si mesmo — acrescida da extensão .bz2.
Cada arquivo comprimido mantém (enquanto possível) as propriedades originais de posse, facilitando sua restauração posterior.
Se você prefere que os arquivos existentes sejam sobrescritos, é necessário usar o parâmetro ‘-f’. Sem isso, o programa pula arquivos que já tenham passado pelo processo de compactação.


bzip2 -f Occidentalis_v02.img

Exemplos de uso do bzip2

Adapte os exemplos, a seguir, às suas necessidades.
Para dar opções rápidas, o utilitário permite definir --fast (mais rápido) ou --best (melhor compressão),
Portanto para obter a melhor compressão possível, use o bzip2 assim:


bzip2 --best nome-do-arquivo

Para obter uma compressão mais rápida:


bzip2 --fast nome-do-arquivo

A qualidade da compressão também pode ser definida numericamente (de 1 a 9).
A opção ‘-9’ equivale a --best e ‘-1’ a --fast.
Para obter um nível de compressão equilibrado, use -5:


bzip2 -5 nome-do-arquivo

Para obter um feedback mais verboso, use ‘-v’ ou --verbose:


bzip2 -v *.* 

O comando, acima, irá comprimir todos os arquivos do diretório corrente, gerando um novo arquivo com extensão .bz2 em substituição para cada um.
Este é o comportamento padrão do programa.
A opção ‘-v’ serve para mostrar o que está sendo feito.

Sim! Você pode combinar várias opções.
Abaixo, ativei a ‘verbosidade’ e especifiquei que não quero que o arquivo original seja removido. Veja o meu resultado:


bzip2 -vk woman-drinking-cup-of-coffee.jpg 

woman-drinking-cup-of-coffee.jpg:  0.991:1,  8.072 bits/byte, -0.90% saved, 36856 in, 37189 out.

ls -lah woman-drinking-cup-of-coffee.*

-rw-r--r-- 1 justincase justincase 36K set  1 15:03 woman-drinking-cup-of-coffee.jpg
-rw-r--r-- 1 justincase justincase 37K set  1 15:03 woman-drinking-cup-of-coffee.jpg.bz2

Desta vez restaram 2 arquivos — com extensões ‘.jpg’ e ‘.jpg.bz2’.
Note que o arquivo resultante ficou 1K maior do que o original.
Isto se deve ao fato de que arquivos JPEG já são comprimidos.
Neste caso, além de não ter sido possível obter uma taxa de compressão maior, somou-se ao arquivo resultante as informações do bzip2.
Por isto ele ficou maior.
Você irá obter resultados bem melhores sobre arquivos de texto ou de áudio FLAC, por exemplo.

Como descompactar e testar meus arquivos bz2

Para descomprimir (inflar) seus arquivos, use o bunzip2 ou ‘bzip2 -d’:


bzip2 -dv woman-drinking-cup-of-coffee.jpg.bz2

bzip2: Output file woman-drinking-cup-of-coffee.jpg already exists.

Como o arquivo original ‘woman-drinking-cup-of-coffee.jpg’ já existia, obtive a mensagem acima ‘Output file woman-drinking-cup-of-coffee.jpg already exists‘ — “O arquivo de saída … já existe”.
Se quiser forçar a extração, neste caso, use ‘-f’:


bzip2 -dvf woman-drinking-cup-of-coffee.jpg.bz2

Use ‘-tv’ para testar um ou vários arquivos bz2:


bzip2 -tv woman-drinking-cup-of-coffee.jpg.bz2 

woman-drinking-cup-of-coffee.jpg.bz2: ok

Mais adiante, vamos abordar novamente o uso de ‘-t’.

Como usar o bzip2, quando os recursos do sistema estão escassos

Em ambiente servidor pode ser difícil encontrar “uma folga” no tempo do processador ou no espaço disponível na memória RAM do sistema.
Ficar sem backup, justamente nestes casos, não é uma opção.
Aplicar o --small ou ‘-s’ faz com que o aplicativo realize o seu trabalho com menor consumo de memória.
Segue um exemplo de uso:


bzip2 -sv Screenshot_20170*

  Screenshot_20170619-092621.png:  1.005:1,  7.963 bits/byte,  0.47% saved, 2090633 in, 2080882 out.
  Screenshot_20170619-092626.png:  1.000:1,  7.997 bits/byte,  0.04% saved, 2199528 in, 2198582 out.
  Screenshot_20170619-092823.png:  1.137:1,  7.036 bits/byte, 12.05% saved, 156600 in, 137732 out.

...

  Screenshot_20170706-164342.png:  1.134:1,  7.053 bits/byte, 11.84% saved, 128326 in, 113135 out.
  Screenshot_20170706-164407.png:  1.097:1,  7.292 bits/byte,  8.85% saved, 120458 in, 109795 out.
  Screenshot_20170706-164419.png:  1.141:1,  7.014 bits/byte, 12.33% saved, 97195 in, 85210 out.

A opção reduz o uso da memória durante a compressão, descompressão e teste.
Neste caso, é ativado um outro algoritmo, que requer 2,5 bytes por cada byte de bloco.
Com isto, qualquer arquivo pode ser inflado dentro de um espaço de 2300 kb, na memória RAM.
O custo: redução pela metade da velocidade de trabalho do aplicativo.
Durante o processo de descompressão, o ‘-s’ seleciona blocos de 200 kb, limitando o uso de memória ao mesmo valor — com a consequente redução da taxa de compressão.

A documentação manda usar ‘-s’ em sistemas com 8 Mb de memória RAM livres ou menos.
Mas você pode usar o recurso em outras situações que julgar adequado.

Como recuperar arquivos bzip2 danificados

Acidentes podem ocorrer durante uma transferência e você pode acabar com arquivos compactados importantes corrompidos.
O bzip2 comprime em blocos, usualmente, com 900 Kb — cada qual é manipulado independentemente pelo utilitário.
Se uma mídia danificada ou um erro de transmissão causar dano a um ou mais blocos, ainda é possível recuperar o conteúdo a partir dos dados armazenados nos blocos saudáveis.

O bzip2recover é um programa simples com o propósito de varrer blocos dentro de arquivos .bz2 e gravar cada bloco em outro arquivo .bz2.
Os arquivos resultantes podem ser verificados com a opção ‘-t’ e, se for o caso, descomprimidos.
Veja um exemplo:


bzip2recover woman-drinking-cup-of-coffee.jpg.bz2 

bzip2recover 1.0.6: extracts blocks from damaged .bz2 files.
bzip2recover: searching for block boundaries ...
   block 1 runs from 80 to 297425
bzip2recover: splitting into blocks
   writing block 1 to `rec00001woman-drinking-cup-of-coffee.jpg.bz2' ...
bzip2recover: finished

Em seguida, rode o teste:


bzip2 -tv rec00001woman-drinking-cup-of-coffee.jpg.bz2 

  rec00001woman-drinking-cup-of-coffee.jpg.bz2: ok

Este é o procedimento básico de recuperação pelo bzip2 de um arquivo danificado.

Compactação com criptografia

Segurança implica em criptografia, em muitos casos.
O bzip2 pode ser usado em conjunto com a ferramenta de criptografia GnuPG.
Para obter este resultado, você pode invocar a compressão com o bzip2 do próprio gpg:


gpg --output ssp2.html.gpg.bz2 --bzip2-compress-level 1 -cv ssp2.html

gpg: pinentry launched (11802 gnome3 1.0.0 ? ? ?)
gpg: pinentry launched (11809 gnome3 1.0.0 ? ? ?)
gpg: using cipher AES
gpg: writing to 'ssp2.html.gpg.bz2'

Veja o que foi feito:

  • gpg --output ssp2.html.gpg.bz2 — a execução pede para gerar um arquivo de saída, criptografado, com o nome ‘ssp2.html.gpg.bz2’.
  • --bzip2-compress-level 1 — especifica o método e o nível de compressão a ser usado.
  • -cv — indica explicitamente a criptografia (-c) e verbosidade (-v).

O valor de --bzip2-compress-level pode variar de 0 (nenhuma compressão) a 9 (máxima compressão).
Acima, usei o valor 1, para tornar o procedimento mais célere.
Para reverter, use o gpg assim:


gpg --output ssp2.html -dv --bzip2-decompress-lowmem ssp.html.gpg.bz2

gpg: AES encrypted data
gpg: pinentry launched (11769 gnome3 1.0.0 ? ? ?)
gpg: encrypted with 1 passphrase
gpg: original file name='ssp.html'

O que há de diferente?
Desta vez, usamos a opção ‘-d’ e --bzip2-decompress-lowmem para indicar que é para descomprimir um arquivo, com o uso do bzip2.

Criptografia para jornalistas

À medida em que forças policiais (governamentais) ganham mais poderes de invasão, no mundo todo, profissionais que lidam com informações sensíveis precisam proteger a si mesmos, suas fontes e, obviamente, a própria informação.
A criptografia, se bem aplicada, é uma ferramenta poderosa e eficiente para evitar vazamento de seus dados mais preciosos.
Sua eficiência, é preciso que se diga, precisa estar aliada a outras medidas (que não serão abordadas neste texto).
Neste post, iremos abordar algumas ferramentas e técnicas que qualquer jornalista pode usar para proteger a si e suas fontes da vigilância governamental — especialmente se estiverem trabalhando em projetos investigativos e conversando com denunciantes (whistle-blowers).

Criptografia em dispositivos móveis

Um dispositivo móvel, como um smartphone, é algo extremamente fácil de roubar.
Embora eu espere que você não carregue uma grande quantidade de documentos extensos dentro dele, é de se imaginar que ele possa conter outro tipo de informações sensíveis — fotos, contatos, históricos chats etc.
Usar um dispositivo criptografado é muito fácil e não traz impacto significativo na performance de aparelhos atuais — que usam processadores de 64 bits e com vários núcleos.

Mesmo um smartphone de entrada (popular), como o Motorola Moto E 2015, já conta com um processador 64 bit de quatro núcleos — o que satisfaz os requisitos fundamentais para usar criptografia.

Chamo a atenção para o fato de que a criptografia básica, se resume aos arquivos do aparelho (na memória interna e no cartão). Ela pode impedir o acesso aos seus arquivos, caso o aparelho seja roubado — mas não protege arquivos em trânsito ou a comunicação por voz.
O uso de aplicativos, como o Telegram, pode oferecer mais eficiência na comunicação que se deseja criptografada.

Ferramentas de criptografia de arquivos

Dotados de processadores mais robustos que os smartphones, não há desculpa para não manter seus arquivos sempre protegidos, no laptop ou PC — onde se dispõe de mais recursos do que nos dispositivos móveis.
Se o seu laptop é mais antigo e você teme impactar sua produtividade com a criptografia (que pode torná-lo mais lento), uma das opções é criptografar apenas os arquivos chave — como os seus documentos de trabalho, tais como artigos em progresso ou documentos confidenciais que você esteja transmitindo/recebendo.
Neste caso, destacam-se as ferramentas de compressão, com suporte ao padrão AES-256 de encriptação.

A segurança proporcionada pela criptografia será comprometida se você usar senhas triviais e fracas.
Leia 10 dicas para criar senhas à prova de hackers para conhecer algumas dicas dos especialistas em segurança.

Ao escolher a ferramenta de criptografia, você não pode ignorar as inúmeras tentativas da NSA, entre outras agências governamentais ou corporações, para embutir backdoors em softwares de várias empresas.
Este tipo de tentativa só pode ter sucesso em softwares de código proprietário e/ou fechado.
Ou seja, você pode estar achando que está seguro e, provavelmente, estará com seu computador escancarado ao inimigo que você deseja evitar.
Software proprietário, em termos de segurança, pode ser uma grande cilada.
Use apenas (ou o máximo possível) softwares de código aberto e livre — por que eles podem ser auditados por qualquer pessoa ou empresa (inclusive por você).
O Gnupg é um exemplo de software livre de criptografia.
É importante ter em mente que criptografar arquivos, quando se tem uma máquina conectada à Internet é muito pouco (ou nada), se você não cuidar da segurança da sua conexão.

Qualquer máquina conectada à Internet está potencialmente sob risco de ser espionada. Neste caso, quaisquer dados sensíveis pode ser acessados, antes mesmo de serem criptografados.

Uma solução para isto é ter um segundo notebook que nunca é conectado à Internet — adotada por experts renomados em segurança.
Este tipo de solução é conhecida como air-gapping.
Use o seu equipamento air-gaped para trabalhar com seus arquivos mais sensíveis, encriptando e decriptando-os em um ambiente mais seguro — evitando que massas de texto puro jamais sejam carregadas para a memória e submetidas a espionagem digital.

Acesse a internet anonimamente

Quando estamos conectados à Internet, nossa identidade pode ser revelada a partir do nosso endereço IP (Internet Protocol) único.
Cada conexão que fazemos na Internet pode ser rastreada, até chegar à nossa residência — ou qualquer outro lugar, de onde estamos nos conectando.
O significado disto é que, mesmo sendo prudente, usando encriptação, a identidade de denunciantes e daqueles com quem trabalham pode ser descoberta — ainda que não se possa ver exatamente o teor do que estão dizendo.
Diante disto, o anonimato é desejável ao navegar.
Uma das ferramentas mais simples para surfar a Internet anonimamente é o pacote de softwares Tor, que esconde sua identidade (ou seu endereço) enviando suas consultas através de nós de rede intermediários, até chegar ao destino final — e vice-versa.
Estes nós são formados por vários outros computadores, também rodando o Tor (em modo relay).

O que incomoda no Tor é o fato de um de seus principais financiadores ser o governo dos EUA e da Suécia.
Ser premiado pela Free Software Foundation (FSF) (2010), na minha opinião, contudo, depõe a favor da seriedade do projeto.

Saiba como instalar o Tor, no Ubuntu e no Debian.


Um ponto importante a ser enfatizado no uso do Tor é que, embora o tráfego de dados ocorra sob criptografia, ao sair pela “outra ponta”, ele retorna ao seu estado original — ou seja, você precisa criptografar seus dados, antes de os enviar pelo Tor.
Adquirir uma conta em um serviço de rede virtual privada ou Virtual Private Network (VPN) é uma forma de navegar na Internet anonimante.
Com o uso de uma VPN, é possível acessar sites na Internet, com um endereço IP diferente do seu computador.

Os dados são encriptados entre o seu computador e os servidores VPN. Você deve levar em conta, contudo, que este é um tipo de criptografia que a NSA mais tem trabalhado para comprometer.

Há uma gama de serviços de VPN disponíveis, com níveis diferentes de segurança.
Você precisa ter em mente, antes de jogar “todas as suas fichas” em um serviços destes é que o histórico mostra que a maioria deles entrega as informações sobre seus usuários, com qualquer pressão do governo ou das forças policiais.
Portanto, nunca use um provedor de VPN como sua única ferramenta de privacidade ou segurança.

Solução completa: TAILS

Tails GNU/Linux logo
O TAILS é um sistema operacional completo, baseado na distribuição GNU/Linux Debian.
Customizado pelo ponto de vista da segurança e da privacidade, contém as ferramentas de que falamos até agora e outras tantas.

Uma das formas mais práticas de usar o sistema operacional TAILS é dentro de um pendrive, o que te permite levá-lo aonde você for.
Quando terminar de realizar suas atividades mais sensíveis, basta remover o dispositivo e voltar a usar o seu computador normalmente.
A sua sessão com o TAILS, não deixa rastros.

Segundo alguns documentos de Snowden, a NSA tem reclamado do TAILS (por dificultar o seu trabalho).
Quando usado adequadamente, o TAILS pode ser muito eficiente na proteção dos seus dados e da sua anonimidade.
Especialistas de segurança insistem que, em um mundo ideal, todos usem criptografia. Na realidade, esta prática se encontra além das capacidades técnicas e da paciência da maioria das pessoas.
Um dos grandes desafios da gestão de segurança é equilibrar o uso dos recursos mais avançados com a praticidade de seu uso — se for muito complicado, o fato é que a maioria das pessoas vai acabar não usando.
Jornalistas preocupados com a sua segurança e a do seu trabalho devem contatar grupos ou empresas locais, que saibam trabalhar com a instalação e configuração do Linux, para obter consultoria sobre como exercer suas funções com mais segurança.

Referência

https://www.journalism.co.uk/news/encryption-for-the-working-journalist-accessing-the-internet-anonymously/s2/a580938/