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 seguros – nunca 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
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:
Agora será preciso criar o par de chaves – pública e privada.
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.
Gerando as chaves:
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:
/home/ricardo/.gnupg/pubring.gpg -------------------------------- pub 2048R/26B7B623 2016-09-08 uid Ricardo Ferreirasub 2048R/C3CA7CC1 2016-09-08
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:
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:
/home/ricardo/.gnupg/pubring.gpg -------------------------------- pub 2048R/26B7B623 2016-09-08 uid Ricardo Ferreirasub 2048R/C3CA7CC1 2016-09-08
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:
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:
Pronto!! Agora, você poderá enviar informações criptografadas para essa pessoa.
Assinando e criptografando arquivos
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:
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:
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.
Saiba como criar sua chave pública e enviar e-mails criptografados usando o Evolution
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:
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
Muito bom o artigo! Parabens!
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!
Obrigado!
Muito bom seu material… aproveitei e deixei ele como referência para mais informações 😉
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 😀