PGP Suite
Gere um par de chaves, encripte uma mensagem, desencripte outra, assine um texto para que qualquer pessoa possa provar que veio de si, verifique uma assinatura que lhe enviaram e inspecione uma chave antes de confiar nela — os cinco trabalhos pelos quais as pessoas abrem o GnuPG, sem a linha de comandos. Tudo corre localmente neste separador do navegador: a sua chave privada e a sua senha nunca são carregadas, nunca registadas e nunca saem do seu dispositivo, porque uma ferramenta que lhe pede para colar uma chave privada num servidor já chumbou no seu único teste importante. Feche o separador e as chaves desaparecem com ele — guarde o que gerar antes de sair.
Gerar um par de chaves
Curve25519 é a opção moderna por omissão: chaves pequenas, operações rápidas e a mesma escolha que o GnuPG atual faz para chaves novas. Escolha RSA-4096 apenas quando as ferramentas da outra parte forem antigas o suficiente para o exigirem. Uma senha encripta a chave privada em repouso — defina uma se for guardar a chave em algum lado.
A senha nunca sai deste separador. Se definir uma e a esquecer, a chave privada não pode ser recuperada — nem por nós, nem por ninguém.
Encriptar uma mensagem
Cole a chave pública do destinatário e a mensagem. Só a chave privada correspondente pode abrir o resultado, por isso o texto cifrado pode viajar por canais em que não confia.
Desencriptar uma mensagem
Cole a sua chave privada, a senha dela e a mensagem encriptada. O texto simples aparece aqui e em mais lado nenhum — não é guardado, por isso copie-o antes de fechar o separador.
Assinar e verificar
Uma assinatura em texto claro mantém a mensagem legível e permite que qualquer pessoa com a sua chave pública prove que é sua e que não foi alterada. Assine com a sua chave privada à esquerda; verifique uma mensagem assinada com a chave pública do signatário à direita.
Inspecionar uma chave
Antes de encriptar para uma chave que alguém lhe entregou, olhe para ela: de quem diz ser, que algoritmo usa, quando foi criada, se expira, e a impressão digital para comparar fora de banda — por telefone, pessoalmente, por qualquer via que não seja o canal que entregou a chave.
Com tecnologia OpenPGP.js, utilizado sem modificações ao abrigo da Licença Pública Geral Menor GNU v3.0 ou posterior (LGPL-3.0-or-later). O código-fonte completo está disponível no repositório do OpenPGP.js.
Por que isto vive no seu navegador, e o que não pode fazer
O PGP sobreviveu três décadas porque o seu modelo de confiança não precisa de nenhum servidor: as chaves são geradas pelo seu dono, a encriptação acontece na máquina de quem envia e a desencriptação na de quem recebe. Cada formulário web que quebra essa forma — carregue a sua chave privada e desencriptamos por si — reintroduz exatamente o intermediário que o PGP existe para remover, por isso esta suite é construída ao contrário: a biblioteca OpenPGP.js é transferida uma vez como código, e depois as suas chaves, senhas, textos simples e textos cifrados são processados por esse código no seu separador e nunca transmitidos. É também por isso que aqui não há conta nem armazenamento de chaves. Uma chave gerada acima existe apenas na área de texto onde apareceu até a guardar; o fluxo honesto é transferir as duas metades, manter a chave privada num local encriptado, publicar a chave pública onde as pessoas o procuram, e tratar qualquer serviço que ofereça “guardar as suas chaves em segurança online” como a ameaça, não como o remédio. O guia complementar, encriptação PGP sem a linha de comandos, percorre esse fluxo de ponta a ponta, incluindo como verificar uma impressão digital antes da primeira mensagem.
Os limites honestos importam tanto como as funcionalidades. Esta página cria apenas assinaturas em texto claro — não assina ficheiros em separado nem encripta ficheiros, porque uma ferramenta de ficheiros também nunca deve carregar a sua entrada, e isso merece a sua própria página em vez de um remendo. Não gere um chaveiro, não vai buscar chaves a servidores de chaves nem verifica revogações: uma chave inspecionada aqui é a chave tal como foi colada, e a impressão digital dela é a parte a verificar noutro lugar. E não pode resgatar uma senha perdida — não há recuperação, por design. À volta da suite, as ferramentas vizinhas cobrem os trabalhos adjacentes: o comparador de certificados e chaves faz a mesma verificação de emparelhamento para certificados TLS, e o gerador de senhas produz a senha forte e única que a sua chave privada merece — ambas, como esta página, sem que nada saia do seu navegador.
Perguntas frequentes
É mesmo seguro colar a minha chave privada aqui?
Nesta página, sim — e a razão é arquitetural, não uma promessa. A página não faz nenhum pedido de rede quando desencripta ou assina: o código do OpenPGP.js corre no separador do seu navegador, a chave é usada em memória e nunca é transmitida, guardada ou registada. Pode confirmar você mesmo: carregue a página, desligue-se da rede, e tudo continua a funcionar. É uma espécie de ferramenta diferente de um formulário “PGP online” do lado do servidor, onde a chave viaja mesmo para a máquina de outra pessoa — nunca use esses com uma chave que importe.
Curve25519 ou RSA-4096 — qual devo gerar?
Curve25519 para tudo o que é novo. É a omissão no GnuPG e no OpenPGP.js atuais, as chaves e assinaturas são muito mais pequenas, a geração é instantânea em vez de segundos à procura de primos, e não há armadilhas de parâmetros RSA fracos. O RSA-4096 está aqui por compatibilidade: plugins de correio muito antigos, fluxos herdados com HSM e algumas ferramentas empresariais ainda não leem chaves de curva elíptica. Se não tem a certeza de que precisa de RSA, não precisa.
O que acontece se esquecer a senha da minha chave privada?
A chave perde-se. A senha encripta o próprio material da chave privada, por isso, sem ela, ninguém consegue fazer as contas — nem este site (que nunca a viu), nem o OpenPGP.js, nem o GnuPG. Essa finalidade é a propriedade de segurança a funcionar como deve. Gere um par de chaves novo, publique a nova chave pública e, se perder o acesso doer, guarde a senha num gestor de senhas — gerada pela mesma classe de ferramenta local, não memorizada até à reutilização.
A verificação diz que a assinatura não corresponde. O que significa?
Significa que a mensagem à sua frente não é, bit a bit, a mensagem que foi assinada — ou que o próprio bloco de assinatura foi danificado em trânsito. Clientes de correio e ferramentas de chat voltam a quebrar linhas, convertem travessões e comem espaços no fim das linhas, e uma assinatura em texto claro cobre os bytes exatos, por isso a causa comum é a mutilação no transporte; uma edição deliberada parece idêntica da cadeira do verificador, que é exatamente o objetivo de assinar. Peça a mensagem como anexo de ficheiro e, se o conteúdo importar, compare impressões digitais fora de banda.
Posso usar chaves que já tenho — do GnuPG, do Mailvelope ou de um servidor de chaves?
Sim. Exporte o bloco armored (gpg --armor --export [email protected] para uma chave pública, --export-secret-keys para uma privada) e cole-o em qualquer parte desta página; o inspetor também lê chaves feitas por outro software OpenPGP, porque o formato é o padrão, não uma invenção deste site. O contrário também se verifica: as chaves geradas aqui importam-se limpamente para o GnuPG e para qualquer cliente compatível, por isso nada do que fizer aqui o prende.