Utilia

Gerador de chaves PGP e encriptação

Gera chaves OpenPGP (Curve25519 ou RSA 4096), encripta, desencripta, assina e verifica mensagens PGP no navegador. Nada sai do teu dispositivo.

As chaves, as mensagens e as frases-passe ficam no teu navegador: esta ferramenta executa o OpenPGP localmente e nunca envia nada. Fecha a página quando terminares.

Ação

Como usar o gerador de chaves PGP

  1. Em Gerar chaves, introduz um Nome e/ou um Email, escolhe uma Frase-passe (protege a chave privada) e escreve-a outra vez em Confirma a frase-passe.
  2. Escolhe o Tipo de chave: ECC Curve25519 (recomendado), RSA 3072 bits ou RSA 4096 bits, e clica em Gerar par de chaves. As chaves RSA demoram alguns segundos.
  3. Confere o ID de utilizador, o ID da chave e a Impressão digital e usa Transferir chave pública (.asc), Transferir chave privada (.asc) e Transferir certificado de revogação. Nada fica guardado: grava os ficheiros antes de saíres da página.
  4. Para enviar uma mensagem secreta, abre Encriptar, cola a Chave(s) pública(s) do destinatário (são permitidos vários blocos), escreve a Mensagem e clica em Encriptar. Marca Assinar também com a minha chave privada para provares que foste tu a escrevê-la.
  5. Para ler uma mensagem que te enviaram, abre Desencriptar, cola a Mensagem encriptada, A tua chave privada e a respetiva frase-passe e clica em Desencriptar. Acrescenta a Chave pública do remetente para verificar a assinatura.
  6. Assinar cria uma assinatura em texto claro que qualquer pessoa pode ler; Verificar confirma-a com a Chave pública de quem assinou.

Um par de chaves acabado de gerar é também preenchido nos outros separadores, para poderes experimentar o ciclo completo de uma só vez.

Como funciona a encriptação PGP

O PGP (normalizado como OpenPGP no RFC 4880 e na sua atualização, o RFC 9580) usa um par de chaves. A chave pública pode ser partilhada com qualquer pessoa: serve para te encriptarem mensagens e para verificarem as tuas assinaturas. A chave privada fica contigo: desencripta essas mensagens e cria assinaturas. Na prática, cada mensagem é encriptada com uma chave de sessão aleatória (AES), e só essa pequena chave de sessão é encriptada com as chaves públicas dos destinatários, e é por isso que uma mensagem pode ser dirigida a várias pessoas.

A impressão digital é um hash da chave pública. Compara-a com o teu interlocutor por outro canal (pessoalmente, por telefone) antes de confiares numa chave recebida por email: é isso que te protege contra uma chave trocada. O ID da chave é apenas os últimos 16 caracteres hexadecimais da impressão digital.

Que tipo de chave devo escolher?

  • ECC Curve25519 cria uma chave de assinatura Ed25519 com uma subchave de encriptação Curve25519 (X25519). As chaves são pequenas, rápidas e tão fortes como RSA 3072. Este formato da versão 4 é suportado pelo GnuPG 2.2 e posteriores, pelo Thunderbird, pelo Proton Mail e pelos outros clientes OpenPGP atuais.
  • RSA 3072 / 4096 é a escolha para software muito antigo que não conhece curvas elípticas. Os 4096 bits dão uma pequena margem em relação aos 3072, à custa de chaves maiores e operações mais lentas.

Conselhos de segurança e limites

  • A ferramenta executa a biblioteca de código aberto OpenPGP.js dentro do teu navegador. As chaves, as mensagens e as frases-passe nunca são enviadas, e a biblioteca só é carregada quando clicas num botão.
  • Escolhe uma frase-passe longa: o ficheiro da chave privada é encriptado com ela, e é a tua última linha de defesa se o ficheiro for copiado.
  • Guarda o certificado de revogação offline. Se a tua chave privada se perder ou for roubada, importá-lo avisa as outras pessoas de que a chave já não deve ser usada.
  • Uma página no navegador é prática, mas não é um ambiente blindado: para chaves de longo prazo e de grande valor, gera-as offline com o GnuPG num computador de confiança.
  • A ferramenta trata mensagens de texto. Não gere um porta-chaves, servidores de chaves, datas de expiração nem encriptação de ficheiros.

Perguntas frequentes

A minha chave privada e as mensagens são enviadas para um servidor?

Não. Tudo, incluindo a geração das chaves, corre localmente em JavaScript no teu navegador. Podes até desligar-te da Internet depois de a página carregar e de a biblioteca ter sido usada uma vez.

Posso usar as chaves com o GnuPG ou o Thunderbird?

Sim. Os ficheiros .asc transferidos são chaves OpenPGP normais em ASCII armor. Importa-as com gpg --import ficheiro.asc ou através do gestor de chaves OpenPGP do Thunderbird.

O que acontece se me esquecer da frase-passe?

A chave privada deixa de poder ser desbloqueada e as mensagens encriptadas para ela deixam de poder ser lidas. Não há recuperação possível: publica o teu certificado de revogação e cria uma nova chave.

Porque é que a mensagem desencriptada diz que a assinatura não foi verificada?

A mensagem está assinada, mas a ferramenta precisa da chave pública do remetente para a verificar. Cola-a em Chave pública do remetente e desencripta novamente.

Qual é a diferença entre assinar e encriptar?

A encriptação esconde o conteúdo para que só os destinatários o possam ler. Uma assinatura deixa o texto legível, mas prova quem o escreveu e que não foi alterado. Encriptar pode fazer as duas coisas ao mesmo tempo.