Saiba como enviar e receber informações criptografadas no Linux usando GnuPG

informacoes-criptografadas-linux-gnupg

A segurança da informação é um ramo da tecnologia que está diretamente relacionado a todos os indivíduos que a manipulam de alguma forma. Assim, a preocupação com segurança dos dados não deve ser vista, como fundamental e importante, somente por parte de grandes empresas ou entidades que detenham informações ultra sigilosas. Inclusive, usuários finais, que utilizam a informática como meio, devem priorizar a segurança das suas informações. Desde simples arquivos compartilhados com outras pessoas a envio/recebimento de e-mails, o usuário precisa entender o que deve ser feito para garantir que suas informações não sejam facilmente lidas por outras pessoas. Portanto, saiba como enviar e receber informações criptografadas no Linux usando GnuPG.

Para quê tudo isso?!

Mesmo que você não tenha a nada a esconder ou se preocupar com a vigilância, incessante, dos serviços disponibilizados pela internet (e-mail, nuvem de arquivos e outros), que monitoram seus dados; usar a criptografia como elemento de segurança da informação garante a sua privacidade e das pessoas com quem você se comunica. Além disso, diminui a quantidade de informações coletadas sobre você.

Por outro lado, se trabalha em um local onde dados sigilosos precisam ser mantidos em segurança; mesmo no momento de serem enviados para outras pessoas, usar a criptografia, para proteger suas informações, aumenta significativamente as chances que seus dados estarão completamente segurosnunca 100% seguros, lembre-se o “elo mais fraco na cadeia da segurança da informação é sempre o usuário”.

Informações criptografadas no Linux usando GnuPG

GnuPG (“GNU Privacy Guard” ou “GPG”) é uma implementação, feita pela Free Software Foundation, do padrão OpenPGP que permite criptografar e assinar documentos digitais. O OpenPGP, por sua vez, usa o software de criptografia assimétrica PGP. É uma das ferramentas mais importantes que você pode usar para comunicações seguras no ambiente de trabalho Linux.

Uma vez que você adquiri uma base sólida de como o GnuPG funciona, você poderá tirar o máximo de proveito de todos os recursos e funcionalidades que são oferecidos:

– software livre;
– não utiliza algoritmos patenteados – por exemplo o algoritmo IDEA utilizado no PGP;
– algumas melhorias de segurança superiores ao PGP V2;
– suporta algoritmos DSA, RSA, AES, 3DES, Blowfish, Twofish, CAST5, MD5, SHA-1, RIPE-MD-160, Tiger, outros;
– e mais…

Em resumo, o GnuPG criptografa informações utilizando a criptografia de chaves assimétricas, também conhecido como “criptografia de chaves públicas” – é criado um par de chaves de segurança, compostos por uma chave pública e outra privada.

O GnuPG também suporta algoritmos de criptografia simétrica. Nesse caso é criado apenas uma chave criptográfica, que serve tanto para encriptar quanto decriptar a informação cifrada.

Preparando o terreno

Como o foco desse material é garantir a segurança no envio e recebimento de informações, através da técnica de criptografia, será mostrado aqui exemplos práticos do uso das chaves de criptografia assimétricas.

Mesmo o GnuPG tendo suporte tanto a criptografia de chaves simétricas quanto criptografia de chaves assimétricas, para a troca de mensagens seguras o que deve ser usado é a criptografia de chaves assimétricas; pois garante autenticidade e privacidade das informações..

No final desse tutorial, você terá um par de chaves (a pública e a privada) que pode ser usado para enviar e receber informações criptografadas no Linux usando GnuPG. O GnuPG, por padrão, oferece uma interface via linha de comando. Entretanto, é possível instalar ferramentas gráficas que venham a facilitar a criação/uso das suas chaves criptográficas.

1 – O começo de tudo

Como tudo gira em torno de chaves criptográficas, então é óbvio que você precisará criar as suas. A maioria (senão todas) das distribuições Linux já possuem o GnuPG instalado. Caso não tenha-o, siga os passos:

Debian e derivados:

sudo apt-get install -y gnupg

Agora será preciso criar o par de chaves – pública e privada.

IMPORTANTE
O processo para geração das chaves pode demorar bastante tempo! Para contornar o problema é preciso usar a ferramenta rngd – capaz de gerar entropia suficiente para geração de chave de 2048 bits.
sudo apt-get install rng-tools
sudo rngd -r /dev/urandom

Gerando as chaves:

gpg –gen-key

Os passos do processo para criação do par de chaves são:

1 – Selecionar o tipo de chave (algoritmo). Por padrão, será utilizado o algoritmo RSA tanto para a chave pública quanto a privada;
2 – Determinar o tamanho da chave. Por padrão, o tamanho será 20148 bits;
3 – Determinar a validade das chaves (tempo de expiração). Por padrão, as chaves não expirarão;

Posteriormente, será perguntado algumas informações pessoais que atestarão a autenticidade da chave criptografada criada por você:

– Nome completo;
– Endereço de e-mail eletrônico;

Por fim, você deverá informar uma senha SEGURA (“passphrase”) para seu par de chaves de criptografia assimétrica.

Pronto!! Suas chaves serão criadas com sucesso, e serão salvas no diretório ~/.gnupg. Contudo, atente-se para alguns aspectos importantes. Entre eles, NUNCA esqueça a senha criada para suas chaves e seu nome/e-mail informados autentica que você mesmo está encriptando as informações; caso precise enviar informações criptografadas a partir de outro e-mail, será preciso criar outro par de chaves para a tupla (ID) nome/e-mail 😉

Para listar as chaves, utilize o comando:

gpg –list-keys

2 – Exportando sua chave pública

Recordando o processo de criptografia de chaves assimétricas… Suponha que você queira enviar uma mensagem criptografada para Alessandra. Ela lhe deu sua chave pública. Então, você digita uma mensagem para Alessandra. Pelo fato de ter a chave pública de Alessandra, a mensagem será criptografada utilizando essa chave. Quando Alessandra receber a mensagem, por ter a chave privada correspondente, a informação será descriptografada.

Assim, somente a pessoa que detém a chave privada correspondente será capaz de descriptografar as informações encriptadas com a chave pública desse par. É por isso que é tão IMPORTANTE salvaguardar a sua chave privada.

Diante de tudo isso, você precisará exportar sua chave pública – localmente (arquivo) ou na internet (servidores de chaves públicas). Sem realizar essa etapa, as outras pessoas não serão capazes de enviar informações criptografadas para você.

Para exportar a sua chave pública como ASC (para disponibilizar na Internet, por exemplo), utilize o comando:

gpg –armor –export EMAIL_INFORMADO > chave_publica_linuxdescomplicado.asc

O arquivo chave_publica_linuxdescomplicado.asc contém sua chave pública. Agora você pode distribuir essa chave para qualquer pessoa que necessitará lhe enviar informações criptografadas, por troca de arquivos localmente. Além disso, você, também, pode enviar essa chave pública para um servidor de chaves públicas disponível na internet. Para fazer isso, faça o seguinte:

Liste todas as chaves públicas contidas no diretório local de chaves do seu sistema:

gpg –list-keys

Obtenha as informações dos 8 dígitos (a identificação primária) associado à chave pública. No meu caso: 26B7B623. Por fim, executar o comando:

gpg –keyserver pgp.mit.edu –send-keys ID

Onde,
pgp.mit.edu é o servidor, localizado na internet, de chaves públicas;
– ID são os 8 primeiros dígitos que identificam a chave pública.

Utilizando esse comando, a chave será enviado para o servidor de chaves do MIT e pode, então, ser baixada e usada por qualquer pessoa.

Há vários servidores de chaves públicas na Internet. A maioria dos grandes servidores sincronizam chaves entre si. Alguns exemplos de servidores são:

http://pgp.mit.edu
http://pgp.surfnet.nl
http://pgp.uni-mainz.de

3 – Importando uma chave pública

Por outro lado, quando você precisar enviar informações criptografadas para alguém, será preciso importar a chave pública dela para seu sistema de chaves. Pode ser adquirida localmente ou por algum servidor na internet de chaves públicas.

Supondo que você recebeu o arquivo chave_publica_outra_pessoa.asc da outra pessoa, execute o comando abaixo para importar essa chave pública para seu sistema:

gpg –import chave_publica_outra_pessoa.asc

Pronto!! Agora, você poderá enviar informações criptografadas para essa pessoa.

Assinando e criptografando arquivos

AVISO
Esse processo deve ser feito no sistema/computador que contenha seu “chaveiro” de chaves salvos no diretório ~/.gnupg. Caso contrário, você precisará importá-las (tanto pública quanto privada)

Assinar um arquivo é garantir que você é a pessoa que realmente enviou aquele arquivo. Você faz isso usando sua chave privada! Então, no momento em que desejar compartilhar algum arquivo (qualquer formato/extensão) com outra pessoa será preciso executar os comandos abaixo:

gpg -a –sign ARQUIVO

A “passphrase” será solicitada para assinar os dados usando sua chave privada. Será gerado um arquivo ARQUIVO.asc (assinado e compactado).

Já para receber arquivos assinados com a sua chave pública, execute:

gpg ARQUIVO.asc

Uso do GnuPG para assinar e criptografar mensagens de e-mail

Os clientes de e-mail (Thunderbird, por exemplo) podem utilizar o GPG para assinar/criptografar mensagens. Para isso, existem alguns plugins.

Caso esteja usando o Mozilla Thunderbird, você precisará baixar e instalar o plugin Enigmail. Ele permite o uso do GnuPG no Mozilla Thunderbird.

Para instalar o Enigmail no Debian e derivados, utilize o comando:

sudo apt-get install enigmail enigmail-locale-pt-br

Um passo-a-passo completo, de como enviar e-mails criptografados usando o GnuPG, foi criado pela FSF e divulgado no site do projeto Email Defense. Veja mais sobre aqui.


Via | Linux.com | Eriberto.pro

Ricardo Ferreira

Ricardo Ferreira

Fundador do Linux Descomplicado - LD.

Sempre em busca de novos conhecimentos, preza por conteúdo de qualidade e auto-explicativo. Por isso, persiste em criar um site com artigos relevantes para todos os leitores do Linux Descomplicado!
Ricardo Ferreira

Comentários

comentários

Curso Docker - Introdução a administração de containers

Docker é uma plataforma para desenvolvimento, provisionamento e execução de aplicações usando tecnologia de containers.

Se você é um desenvolvedor ou sysadmin você poderá ter diversas vantagens usando a plataforma Docker:
  • Desenvolve uma vez...executa em qualquer lugar;
  • Sem preocupações (dependências e/ou pacotes)... foco no desenvolvimento;
  • Elimina inconsistências na entrega das aplicações e/ou serviços;;
  • Evita o “localhost funciona”;
  • Promove uma infraestrutura escalável;

Este curso é introdutório a plataforma Docker e lhe dará melhor compreensão sobre as vantagens da ferramenta.


Inscreva-se agora »

VOCÊ TAMBÉM PODERÁ LER...

  • Mr N

    Muito bom o artigo! Parabens!

  • delchibruce

    Muito bom, Ricardo!
    fiz um artigo parecido umas semanas atrás. Bem parecido, na verdade.
    dá uma olhada lá, qualquer hora: http://delchibruce.com/2016/08/18/usando-criptografia-todo-dia/
    vlw!

    • linux10complica

      Obrigado!

      Muito bom seu material… aproveitei e deixei ele como referência para mais informações 😉

  • Glaucio Fonseca

    Parabéns pelo artigo Ricardo, eu já tinha meu par de chaves gerado é na época eu não conhecia esste rng-tools interessante.
    O que fiz foi abrir o interpretador python e elevar dois a 10 milhões, demorei em torno de 5 minutos +- para minha chave ser gerada 😀