Você está na página 1de 34

Chaves GPG e a criptografia de dados com o

uso de chaves
Antes de responder esta pergunta, é importante falar
Um pouco da origem do sobre o OpenPGP.
GPG O OpenPGP é um padrão proposto de encriptação de
e-mails pelo IETF (Internet Engineering Task Force),
conhecido como o RFC 4880, que funciona através da
utilização de chaves assimétricas, este padrão é
originalmente derivado do software PGP, criado por
Phil Zimmermann. Existem alguns softwares que
utilizam este padrão, o já citado PGP, que é um
software pago da Symantec, e o GnuPG, ou
simplesmente GPG, que é um software livre. É com ele
que trabalharemos hoje.
Para que serve?

- Geração de Pares de Chaves Pública e Privada

- Armazenamento e Disponibilidade de Chaves Públicas;

- Criptografia e Assinaturas Digitais;

- Segurança de E-mails.
Como funciona?

Sendo um sistema de criptografia assimétrica com chaves, temos duas chaves, a pública e a privada.

Chave pública - É a chave que irá cifrar a informação que será enviada a um receptor desejado, é também a chave que
você irá compartilhar com quem deseja se comunicar.

Chave privada - Chave responsável por descriptografar o que a chave pública cifrou, esta chave não deve ser
compartilhada, apenas você deve ter conhecimento sobre ela.

Basicamente, para que o envio e o recebimento de informações tenha sucesso, ambas as partes devem compartilhar
suas chaves públicas.
Criptografia de chave pública ou assimétrica
Como criar meu par de chaves

Primeiramente, precisamos instalar o GnuPG na nossa máquina. Nesta oficina, trabalharemos com o linux, logo, no
terminal, basta digitar o comando abaixo.

sudo apt-get install gnupg

Após a instalação, contando que seu GnuPG esteja na versão mais atual, o comando para criar sua chave é o seguinte.
gpg --full-generate-key

Isto fará com que as seguintes opções apareçam, elas indicam qual será o tipo da sua chave.
Como criar meu par de chaves

Após selecionar o tipo da sua chave, você necessita indicar qual o tamanho em bits que você deseja que sua chave
tenha, quanto maior, mais complexa e segura será sua chave, logo, sugerimos que você escolha o maior tamanho
possível.

Após escolher o tamanho da chave, é necessário indicar por quanto tempo ela será válida. Normalmente, opta-se por
não colocar validade em chaves pessoais, fazendo com que elas sejam válidas para sempre.
Como criar meu par de chaves

Agora o próximo passo é adicionar suas informações reais. É necessário que você insira seu verdadeiro nome, da
forma como ele é escrito nos seus documentos, como por exemplo, seu RG, e um e-mail verdadeiro e pertencente a
você, você também pode adicionar um comentário, mas é opcional.

Após estes processos, suas chaves estarão criadas, mas existem mais algumas coisas que podemos fazer antes de
começar a usar as mesmas.
Alguns comandos essenciais

- gpg --list-keys: Lista todas as chaves existentes no seu chaveiro.


- gpg --list-sigs (Nº da chave): Lista todas as assinaturas presentes em uma chave em específico
- gpg -a --export (Nº da chave) > arq.asc: Exportar sua chave pública em formato asc para que você possa a
disponibilizar em outros lugares, como por exemplo, na internet.
- gpg -a --export-secret-keys (Nº da chave) > arq.key: Exportar sua chave privada, muito cuidado com isso.
- gpg --import <arquivo com a chave>: Importa alguma chave para o seu chaveiro
- gpg --delete-keys (Nº da chave): Deletar uma chave pública do seu chaveiro.
- gpg --delete-secret-keys (Nº da chave): Deletar uma chave privada do seu chaveiro.
- gpg --gen-revoke (Nº da chave) > (Nº da chave)-revert.asc: Criar um certificado de revogação para o caso de
perda da senha.
- gpg --edit-key (Nº da chave) password: Editar a senha da chave, para sair da edição é só digitar “quit”.
- gpg --sign-key (Nº da chave): Assinar uma chave pública alheia.
- gpg --list-sigs: Lista as chaves e mostra suas assinaturas
- gpg --fingerprint: Lista as impressões digitais de cada chave.
Um exemplo básico de encriptação/decriptação

- Crie um arquivo chamado segredo.txt na pasta documents e escreva a frase “Hello World.”

- vá até a pasta documents no terminal e digite o seguinte comando: --gpg --encrypt --armor -r (email do
receptor) segredo.txt

- Isto irá criar um arquivo criptografado com o nome segredo.txt.asc, digite o comando cat segredo.txt.asc para
dar uma olhada no conteúdo deste arquivo.

- Agora digite o comando gpg --decrypt --output segredo_revelado.txt segredo.txt.asc

- Abra o arquivo segredo_revelado.txt

- Como isso aconteceu?


Festa de assinaturas
Uma festa de assinaturas

Com nossa chave GPG em mãos, podemos agora iniciar nossa festa de assinaturas. Primeiramente, iremos subir nossa
chave para um dos servidores públicos disponíveis na internet, a maioria dos servidores públicos sincronizam as
chaves entre si, alguns exemplos destes servidores são os seguintes:

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

é possível ver uma relação entre os servidores existentes no endereço http://sks-keyservers.net/status

Enviar sua chave para um servidor público é muito simples, basta acessar o site do servidor e inserir a chave no
mesmo. Uma outra forma de fazer isso, é utilizar o terminal, com o seguinte comando:

gpg --keyserver (servidor de chaves) --send-key (Nº da chave)


Uma festa de assinaturas

Feito isso, vamos ver agora como assinar a chave de outra pessoa. Primeiramente, é necessário que a pessoa que deseja
ter sua chave assinada esteja portando as seguintes informações:

- Nome completo, como consta na chave e em algum documento de identificação com foto
- Endereço de e-mail, como consta na chave
- O fingerprint da chave que será assinada

É importante destacar que é de extrema importância que todos os dados sejam legítimos e estejam corretos! Após
recolher todas estas informações, chegou a hora de colocar a mão na massa. Nesta festa de assinaturas, o objetivo é
que cada um assine a chave dos outros aqui presentes, fazendo com que cada pessoa saia com várias assinaturas em
sua chave.
Uma festa de assinaturas

O primeiro passo é buscar em um servidor público a chave pública que irá ser assinada com o comando abaixo.

gpg --keyserver (servidor de chaves) --recv-keys (ID da chave)

Depois, é importante listar os dados da chave, para que seja possível conferir se todos estão de acordo com os dados
recolhidos com o dono da chave.

gpg --fingerprint (ID da chave)

Agora, chegou a hora de assinar a chave.

gpg -u (ID da chave que irá realizar a assinatura) --sign-key (ID da chave a ser assinada)
Uma festa de assinaturas

Após realizar a assinatura, você deve enviar a chave de volta para seu dono, o primeiro passo é exportar a mesma em
formato ASCII.

gpg --output (Nome do arquivo a ser criado.asc) --armor --export (ID da chave ou e-mail do dono da chave)

É interessante comprimir a chave com gzip para que não haja problemas no envio por e-mail: gzip nome.asc

Após receber o arquivo, o dono deve importar a mesma e fazer novamente o upload para o servidor público, fazendo
assim que sua chave seja atualizada com a nova assinatura.

gpg --import (arquivo que possui a chave)


gpg --list-sigs (ID da chave importada)
gpg --keyserver (servidor de chaves) --send-key (Nº da chave)

Pronto, chave assinada e atualizada no servidor público, repita o mesmo com os outros participantes.
Validação e assinatura de documentos
Validação e assinatura de documentos

os e verificar a assinatura de arquivos é muito fácil, primeiramente, vamos aprender como assinar um
guir estes passos.
rminal e vá até o local onde está o arquivo, use o comando gpg --sign (arquivo)
enha que você usou quando gerou sua chave
o arquivo com extensão .gpg será criado, para verificar se deu tudo certo, utilize o comando gpg
(arquivo.gpg), caso as informações que aparecerem no terminal forem as corretas, basta enviar o
assinado para a pessoa alvo.

oa que você enviou seu arquivo assinado receber o mesmo, para que ela verifique se a sua assinatura
basta que ela verifique o arquivo com gpg --verify (arquivo.gpg), verifique os dados da assinatura, e
mando gpg --output (arquivo) --decrypt (arquivo.gpg). Após isso, ela terá o arquivo original que você
Envio de e-mails criptografados
Envio de e-mails criptografados

É possível, através das chaves GPG, o envio de e-mails criptografados para outras pessoas, utilizando algumas
ferramentas e a chave pública da pessoa que irá receber o e-mail. Primeiramente, iremos utilizar duas ferramentas para
a realização desta atividade, são elas o Thunderbird e o Enigmail

Thunderbird é um cliente de e-mail da mozilla que possui vários addons interessantes para se utilizar com seu e-mail, e
um destes addons é o Enigmail, que permite a encriptação de e-mails utilizando chaves GPG. Após instalar o
Thunderbird na máquina e buscar e instalar o addon Enigmail, podemos começar os próximos passos.
Envio de e-mails criptografados
Para instalar o Enigmail: No Thunderbird, selecione Ferramentas > Extensões.
Envio de e-mails criptografados
Para instalar o Enigmail: Use a barra de busca no canto superior direito para
procurar por “Enigmail”.
Envio de e-mails criptografados
Para instalar o Enigmail: Selecione Enigmail dos resultados da pesquisa e siga as
instruções para instalá-lo.
Envio de e-mails criptografados
Envio de e-mails criptografados
Envio de e-mails criptografados
Acesso Remoto com SSH e
Autorização de host
O que é SSH e como funciona?

(Secure Socket Shell)


É um protocolo de rede que permite aos usuários acessar e gerenciar servidores pela
internet.

A comunicação é criptografada entre máquinas que mascara os dados e transações de


quem está acessando
Comando SSH

ssh {user}@{host}

● ssh - é a indicação do uso do comando SSH

● {user} - é a conta a qual você deseja se conectar remotamente

● {host} - é o computador que você quer acessar, inserindo um número de IP ou nome


de domínio específico
Gerar chaves

ssh-keygen -t rsa -b 2048

● ssh-keygen - é o comando para gerar as chaves

● -t - especifica o tipo de chaves que estamos gerando

● -b - é a força da chaves em bits


Enviando as chaves

ssh-copy-id usuario@IPdocomputador

● ssh-copy - é o comando para copiar as chaves no destinatário

● usuario - é a conta a qual você deseja se conectar

● IPdocomputador - é o computador que você quer acessar, inserindo um


número de IP ou nome de domínio específico
Multiplexador de terminal
Tmux

Ele permite que várias sessões de terminal sejam acessadas simultaneamente em uma
única janela.

É útil para executar mais de um programa de linha de comando ao mesmo tempo.


Iniciando nova sessão interativa

Tmux new -s {nome da sessão}

Tmux new - comando para iniciar uma nova sessão

-s - seleciona uma nova sessão para anexar ao cliente interativamente

{nome da sessão} - nome da seção ao qual será acessada


Anexando a uma sessão

Tmux attach -t {nome da sessão}

Tmux attach - comando para anexar a uma sessão

-t - anexar a uma sessão com nome

{nome da sessão} - nome da seção ao qual será acessada

Você também pode gostar