%@ Page Language="C#" AutoEventWireup="true" %>
O PGP é uma ferramenta fundamental para garantir a segurança das comunicações digitais, permitindo a criptografia e a assinatura de dados. A implementação via GnuPG oferece um controle poderoso e flexível sobre a proteção de informações sensíveis. Com o aumento das ameaças cibernéticas, dominar os comandos de PGP se torna essencial para qualquer usuário que valoriza a privacidade. Sua integração em sistemas como Linux e Tails torna o PGP acessível e eficiente. Aprender a usá-lo no terminal é um passo crucial para uma navegação mais segura e protegida.
Atenção: Se você deseja aprender o básico e teórico sobre PGP, confira nosso tutorial completo com o Kleopatra, uma interface gráfica mais fácil de usar, em https://www.traderprofissional.com.br/tutorial-pgp-kleopatra-tails-linux.aspx.
O GnuPG geralmente já vem pré-instalado na maioria das distribuições Linux. Caso não esteja, siga os passos abaixo para a instalação:
sudo apt update -y sudo apt-get install gnupg sudo apt install gnupg
Esses comandos garantirão que você tenha a versão mais recente do GnuPG instalada no seu sistema.
UID (User ID): É uma identificação única associada a uma chave PGP, geralmente composta pelo nome e e-mail do usuário. O UID ajuda a identificar a quem a chave pertence, facilitando a comunicação e a confiança entre usuários.
User: Refere-se ao nome de usuário que foi associado à chave PGP. Esse nome é parte do UID e ajuda a identificar o proprietário da chave de forma clara e amigável.
Fingerprint: É um hash único de uma chave pública, representado como uma sequência alfanumérica. A impressão digital é usada para verificar a autenticidade da chave, permitindo que os usuários confirmem se estão utilizando a chave correta e não uma versão comprometida.
Key ID: É uma versão abreviada do fingerprint, normalmente consistindo em 8 ou 16 caracteres. O Key ID pode ser o e-mail cadastrado na chave PGP e é utilizado em comandos e interações com o GPG para referenciar chaves de maneira mais simples, facilitando operações como assinatura, criptografia e revogação.
Email: O endereço de e-mail associado à chave PGP, que é frequentemente usado como parte do UID e pode servir como uma forma de identificar o usuário e facilitar a comunicação segura. Neste tutorial, usaremos leandroTeste@gmail.com como exemplo em vários comandos PGP testados na prática.
Use os seguintes comandos para listar suas chaves:
# Listar chaves públicas gpg --list-keys # Listar todas as chaves secretas gpg --list-secret-keys # Listar chaves públicas ou secretas com impressões digitais de subchaves gpg --list-keys --with-subkey-fingerprints gpg --list-secret-keys --with-subkey-fingerprints
O local do anel de chaves geralmente é exibido na primeira linha da saída.
gpg --full-generate-key
Localização das chaves criadas:
/home/seu_usuário/.gnupg/ Certificado de revogação das chaves criadas: /home/seu_usuário/.gnupg/openpgp-revocs.d
Navegue até a pasta desejada para salvar as chaves ou especifique o caminho:
# Exportar chave pública ou secreta gpg -a --export KEY_ID > public.asc gpg -a --export leandroteste@gmail.com > publicLEANDRO1.asc gpg -a --export-secret-key KEY_ID > secret.asc gpg -a --export-secret-key leandroteste@gmail.com > secretLEANDRO1.asc # Exportar todas as chaves gpg -a --export > public-all.asc gpg -a --export-secret-key > secret-all.asc
As chaves secretas exportadas estão protegidas pela senha da chave secreta atual!
Para remover chaves, utilize os seguintes comandos:
# Remover chaves públicas e secretas gpg --delete-key [uid] gpg --delete-key [Key_ID] gpg --delete-key leandroteste@gmail.com gpg --delete-secret-key user1 gpg --delete-secret-key [Key_ID] gpg --delete-secret-key leandroteste@gmail.com # Remover de vários usuários gpg --delete-key [uid1] [uid2] gpg --delete-secret-key [uid1] [uid2] gpg --delete-secret-key [Key_ID1] [Key_ID2] gpg --delete-key [Key_ID1] [Key_ID2] # Deletar todas as chaves gpg --delete-key gpg --delete-secret-key
Se você precisar enviar uma mensagem criptografada, primeiro importe a chave pública do destinatário!
# Listar conteúdo do arquivo de chaves sem importar gpg keys.asc gpg publicLEANDRO1.asc # Opção detalhada para visualizar impressões digitais gpg --with-subkey-fingerprint keys.asc gpg -v keys.asc # Importar chaves, mesclando no anel de chaves atual gpg --import keys.asc gpg --with-subkey-fingerprint publicLEANDRO1.asc gpg --with-subkey-fingerprint secretLEANDRO1.asc gpg --import publicLEANDRO1.asc gpg --import secretLEANDRO1.asc
Para evitar a mensagem de aviso, mesmo após a confirmação da assinatura:
AVISO: Esta chave não está certificada com uma assinatura confiável!
gpg: Não há indicação de que a assinatura pertence ao dono.
Para visualizar a impressão digital de uma chave e, após confirmar sua autenticidade, assinar a chave:
gpg --fingerprint KEY_ID gpg --sign-key KEY_ID gpg --sign-key FINGERPRINT_DA_CHAVE
Exemplo: Wallet Electrum
IDs: ThomasV
Ou via o editor de chaves (opção recomendada):
gpg --edit-key KEY_ID gpg> fpr gpg> sign gpg> save
Para remover uma assinatura de uma chave local:
gpg --edit-key KEY_ID # Escolha o número correspondente ao UID gpg> delsig gpg> save
Para revogar uma assinatura publicada:
gpg --edit-key KEY_ID # Escolha o número correspondente ao UID gpg> revsig gpg> save
Exporte a chave com a assinatura revogada:
gpg -a --export KEY_ID > exported-key.asc
Adicionar UID:
gpg --edit-key KEY_ID gpg> adduid # Escolha o número correspondente ao UID gpg> list gpg> save gpg> quit
Remover UID:
gpg --edit-key KEY_ID gpg> list # Escolha o número correspondente ao UID, exemplo 1 gpg> 1 gpg> deluid gpg> save gpg> quit
Editar Confiança da Chave:
gpg --edit-key KEY_ID # Escolha o número correspondente ao UID gpg> trust gpg> (insira o nível de confiança) gpg> save
Este guia mostra como assinar arquivos, gerar assinaturas em .asc e .sig, e verificar a integridade das assinaturas usando a linha de comando.
Arquivo fictício usado como exemplo é teste.txt!
Use o comando abaixo para criar uma assinatura clara (Clear Signature):
gpg --output teste.sig --clearsign teste.txt gpg --verify teste.sig gpg --verify teste.sig arquivo_para_verificar
Para gerar uma assinatura em formato .asc, utilize:
gpg --armor --detach-sig teste.txt gpg -a --detach-sig teste.txt gpg -a --detach-sig --default-key leandroteste@gmail.com teste.txt gpg --verify teste.txt.asc gpg --verify teste.txt.asc teste.txt
Você pode testar a verificação após modificar o arquivo:
echo "um texto a mais para modificar o arquivo" >> teste.txt gpg --verify teste.txt.asc teste.txt
Para assinar e depois verificar, utilize:
gpg --sign teste.txt gpg --sign --default-key leandroteste@gmail.com teste.txt gpg --verify teste.txt.gpg
Para decriptar um arquivo assinado, use:
gpg --output teste2.txt --decrypt teste.txt.gpg gpg --output teste2.2.txt --default-key leandroteste@gmail.com --decrypt teste.txt.gpg
Se você quiser assinar e encriptar para um destinatário:
gpg --sign --encrypt --recipient KEY_ID_do_destinatário teste.txt gpg --output teste2.txt --decrypt teste.txt.gpg gpg --output teste2.txt --decrypt --recipient KEY_ID_do_destinatário teste.txt.gpg
Neste guia, você aprenderá a gerar um certificado de revogação, cadastrar chaves em servidores PGP e editar a expiração das chaves pelo terminal.
Para criar um certificado de revogação, use:
gpg -a --gen-revoke KEY_ID > revoke.asc gpg -a --gen-revoke leandroteste@gmail.com > revoke.asc
O arquivo revoke.asc
será salvo no diretório atual.
Para alterar a expiração de uma chave, execute:
gpg --edit-key KEY_ID gpg> expire gpg> key 1 gpg> expire gpg> list gpg> save
Alternativamente, você pode listar suas chaves e gerar um novo certificado de revogação:
gpg --fingerprint gpg --list-keys gpg --output revoke.asc --gen-revoke mykey
Localização do arquivo de revogação: /home/seu_usuario/.gnupg/openpgp-revocs.d/
se você usar somente gpg -a --gen-revoke KEY_ID.
Para enviar sua chave a um servidor PGP, utilize:
gpg --send-key KEY_ID
A configuração do servidor PGP padrão do GnuPG está em ~/.gnupg/gpg.conf
. Se esse arquivo não existe, para adicionar um servidor padrão:
nano ~/.gnupg/gpg.conf
Adicione a linha:
keyserver https://pgp.mit.edu
Salve e feche o editor (CTRL + O e Enter, depois CTRL + X).
Para enviar a chave a um servidor específico:
gpg --keyserver https://keys.openpgp.org/ --send-key KEY_ID gpg --keyserver https://keys.openpgp.org/ --send-key fingerprint
Para tentar encontrar sua chave em todos os servidores possíveis:
gpg --auto-key-locate nodefault,wkd --locate-keys institutotraderprofissional@protonmail.com gpg --auto-key-locate nodefault,wkd --locate-keysgpg --auto-key-locate nodefault,wkd --locate-keys
Para buscar sua chave pública em um servidor específico:
gpg --keyserver https://keys.openpgp.org/ --search KEY_ID gpg --keyserver https://keys.openpgp.org/ --search leandroS
Para importar uma chave pública do servidor:
gpg -a --keyserver https://keys.openpgp.org/ --export leandroteste@gmail.com > public.asc gpg --import public.asc
Para revogar uma chave pública e notificar o servidor:
gpg --import revoke.asc gpg --keyserver https://keys.openpgp.org/ --send-key KEY_ID
Isso garantirá que quem importar sua chave não terá acesso ao seu e-mail ou informações pessoais.
Para encriptar mensagens e gerar um arquivo .asc com a criptografia escrita para copiar e colar em emails e chats use:
gpg --encrypt --sign --armor -r KEY_ID teste.txt gpg --encrypt --sign --armor -r leandroteste@gmail.com teste.txt
Exemplo: de leandroS
para leandro2
gpg --encrypt --sign --armor -u SEU_KEY_ID -r KEY_ID_DO_DESTINATÁRIO teste.txt gpg --encrypt --sign --armor -u leandroS -r leandro2 teste.txt gpg --encrypt --sign --armor -u leandroteste@gmail.com -r destinatario_leandro2@gmail.com teste.txt
Para encriptar um arquivo em formato .gpg:
gpg -e -r KEY_ID teste.txt gpg -e -r leandroteste@gmail.com_ID teste.txt gpg --recipient KEY_ID --encrypt teste.txt #Para assinar e encriptar gpg -s -e -r KEY_ID teste.txt
Importe a chave pública do destinatário:
gpg -e -u "Sender KEY_ID" -r "Receiver KEY_ID" teste.txt gpg -e -s -u leandroS -r leandro2 teste.txt gpg -e -s -u leandroteste@gmail.com -r destinatario_leandro2@gmail.com teste.txt
Para assinar um arquivo e gerar um .asc:
gpg -a --detach-sig teste.txt gpg -a --detach-sig --default-key leandroteste@gmail.com teste.txt
Comando alternativo para assinar:
gpg -a -s teste.txt
Para remover assinatura:
gpg --clear-sign teste.txt
Decriptando mensagens diretamente:
gpg -d file_name.asc > file_name_decriptado.asc gpg -d teste.txt.asc > teste_decriptado.txt #gravará a decriptação da mensagem para teste_decriptado.txt
Receptor decriptando mensagem com chave pública não padrão:
gpg -d -u KEY_ID file_name.asc > file_name_decriptado.txt gpg -d -u destinatario_leandro2@gmail.com teste.txt.asc > teste_decriptado.txt #gravará a decriptação da mensagem para teste_decriptado.txt
gpg --list-only teste.txt.gpg
Para decriptar um arquivo .gpg:
gpg -d -u KEY_ID teste.txt.gpg > teste_decriptado.gpg.txt
gpg -o nome_desejado.txt -d teste.txt.gpg gpg -o nome_desejado.txt -r KEY_ID -d teste.txt.gpg gpg -o nome_desejado.txt --default-key KEY_ID -d teste.txt.gpg
Doar monero para ajudar no crescimento desse projeto: Clique aqui!