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/

Como criptografar seus arquivos com o gpg

O GnuPG, ou GPG, é uma ferramenta completa e poderosa que permite encriptar e proteger suas informações e sua comunicação.
O software oferece um sistema versátil de gestão de chaves, bem como módulos de acesso para todos os tipos de diretórios de chaves públicas.
logo do GnuPG
Neste artigo, vou mostrar como usar as opções básicas de encriptar e decriptar arquivos, na linha de comando — muito embora possa ser facilmente integrada a outras aplicações gráficas.
Por ser software livre o GnuPG respeita sua liberdade, sua privacidade e tem código aberto — que pode ser auditado.

O aplicativo vem já instalado nas grandes distribuições Linux — o que inclui o Fedora, o Ubuntu, Linux Mint, Debian etc. — e segue os padrões definidos pelo OpenPGP.

A sua distro Linux provavelmente vem com a versão clássica, disponível nos repositórios (que tem foco na portabilidade).
É possível baixar outras versões estáveis e mais avançadas, com suporte a outros recursos, no site oficial (veja os links ao final do artigo).

Mesmo que você não tenha nada a esconder, o uso de encriptação ajuda a preservar a privacidade das pessoas com quem você se comunica e dificulta a vida dos burocratas que comandam sistemas de vigilância, mundo afora.

Se você tem informações importantes a esconder — tais como dados da sua empresa, você está em boa companhia. Este é o sistema usado por Edward Snowden para esconder documentos comprometedores.

Como encriptar com o gpg

O comando pode ser usado para encriptar e decriptar eficientemente arquivos no Linux, FreeBSD e outros sistemas operacionais. Pode ser usado, também para criar assinaturas digitais.
Abra um terminal (Ctrl + Alt +T, no Ubuntu) e experimente os exemplos que seguem.
Para simplesmente criptografar um arquivo no Linux, use o gpg com a opção -c.
No exemplo, abaixo, o gpg é usado para encriptar o arquivo historico.txt:


gpg -c historico.txt

Após fornecer a senha e confirmar, o sistema irá criar um segundo arquivo historico.txt.gpg, já criptografado — este é o arquivo seguro.
gpg confirmar senha
Se este arquivo tiver informações sensíveis, é prudente apagar o original.


rm historico.txt

Tenha cuidado especial também com suas senhas.
Use senhas seguras para sua conta de usuário e senhas de frase para sua chave GnuPG secreta.
A sua senha é a parte mais frágil de todo o sistema de encriptação —. Programas de ataque por força bruta ou dicionário são fáceis de fazer e implementar.

Como decriptar um arquivo, com o gpg

Aproveitando o exemplo já dado, vou mostrar abaixo como recuperar os dados do arquivo encriptado historico.txt.gpg. É simples:


gpg historico.txt.gpg

gpg-password-decriptar-box
Diferenças entre um arquivo “normal” e criptografado:


ls -lah hist*

-rw-r--r-- 1 justincase henry 805 Jan 20 16:16 historico.txt
-rw-r--r-- 1 justincase henry 318 Jan 20 14:57 historico.txt.gpg

Se você esquecer a senha, será impossível reverter a criptografia.
O arquivo com extensão .gpg é um arquivo binário, em oposição ao original .txt.

Como usar o padrão ASCII

Você pode criar arquivos encriptados no padrão ASCII, em vez de usar o padrão OpenPGP (binário e mais seguro), com a opção -a.
Veja como:


gpg -ac historico.txt

O procedimento resultará na criação do arquivo historico.txt.asc, cujo conteúdo pode ser visto assim:


cat historico.txt.asc 

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1

jA0EAwMCOg2umLcrybhgycBpiRafCJBUEyKIyDMfXzEfCd+PwJVxI/+63ypL8lFZ
7+0YgzmSee+sooLTplJGbvlAVz23Y2KCcgmOC3v0URvUkT+7qhCsWLqYP0J21Ikr
Ie3DpqYwWxi9jeZ6Ae8cQDu0tUNVDV4zyV4Oim/DQZk7WwpIXgwwjnbfHEtdLqX3
etfq5OD8FMJN2nPoigIwLF6oq3m+CWGC64BqRx8QS81qMk6W8qmssC9iFYk84Csp
jOebc98pPjnt/5tnkHuISMRicLjtWKvlok2P80Nmv6h6WjkfpMmMZ4vAlkM7GtLl
IHiU9rPp31djpwpQoNQQN8VzJxMq4IdR0JAMaOUSV/oY6Q3voJOW8NW4+sOgLqAr
Ur9Tzwn+WMOo2pxBdjZ0/xI4mG6txDy6YLlh
=Tp7M
-----END PGP MESSAGE-----

Referências