Ir para o conteúdo
AZ Tools

Inspetor de chaves públicas PGP

Decodifica no seu navegador um bloco de chave pública OpenPGP em armadura ASCII e mostra o que há de fato nele. Você obtém a impressão digital completa da chave primária e de cada subchave, calculada como a especificação define e não lida de um rótulo, o ID longo da chave, o algoritmo e o tamanho, a data de criação, a de expiração quando uma autoassinatura a carrega, e todos os IDs de usuário ligados à chave. O motivo para olhar é quase sempre o mesmo: você tem uma impressão digital tirada do site de um projeto, de um servidor de chaves ou de um repositório Debian, e precisa saber se o bloco à sua frente é aquela chave. Ele também verifica a soma CRC-24 da armadura, os quatro caracteres depois do `=` no fim, que existe justamente para pegar um bloco que perdeu uma linha ao passar por uma janela de chat ou uma página de wiki — uma chave corrompida que no resto parece perfeitamente formada. E repete o único conselho que importa: compare a impressão inteira, nunca o ID curto, porque um identificador de 32 bits pode ser colidido num notebook e alguém já publicou uma falsificação correspondente para cada chave do strong set. Se você colar por engano um bloco de chave privada, ele se recusa a processá-lo e avisa. Nada é enviado: a chave é analisada inteiramente nesta página.

Como usar

  1. Cole um bloco de chave pública em armadura, ou solte um arquivo .asc ou .gpg sobre a caixa.
  2. Compare a impressão digital completa — os quarenta dígitos hexadecimais — com a publicada por quem é dono da chave.
  3. Confira as datas de criação e expiração; uma chave expirada não verifica assinaturas feitas depois de ela vencer.
  4. Leia os IDs de usuário para ver que nomes e endereços a chave reivindica, e a lista de subchaves para ver qual de fato assina ou cifra.
  5. Tudo que aparecer em âmbar vale resolver antes de confiar na chave.

Perguntas frequentes

Por que comparar a impressão digital em vez do ID da chave?
Porque o ID curto é apenas os últimos 32 bits da impressão, e 32 bits não bastam para identificar nada. Produzir outra chave com o mesmo ID curto leva minutos em hardware comum, e em 2019 o projeto Evil 32 fez exatamente isso com todas as chaves do strong set do PGP e publicou os resultados, então pode já existir uma colisão para a chave que lhe interessa. O ID longo tem 64 bits, um pouco melhor e ainda assim não é base segura para confiança. A impressão completa tem 160 bits numa chave de versão 4, e não é à toa que é esse o valor que os projetos publicam nos seus sites.
O que é a linha `=XXXX` no fim do bloco?
Uma soma de verificação CRC-24 dos dados binários, definida na RFC 4880 como parte do formato de armadura. Ela pega os acidentes comuns de copiar uma chave de um lado para outro: uma linha comida por um cliente de chat, um wiki que reflui o bloco, uma colagem que deixou a última fileira de fora. O base64 vai decodificar tranquilamente um bloco que perdeu uma linha no meio, e o analisador de pacotes pode passar também, então sem a soma uma chave estragada parece plausível. Esta ferramenta a verifica e avisa quando não bate. Note que é uma checagem de integridade contra acidentes, não uma assinatura, e não protege de alguém substituir uma chave de propósito.
É seguro colar uma chave aqui?
Uma chave pública, sim: ela é feita para ser publicada, e esta página não a envia a lugar nenhum. Toda a análise e o SHA-1 que produz a impressão rodam no seu navegador, o que você pode verificar carregando a página, desconectando-se da rede e colando uma chave; continua funcionando. Uma chave privada é outra história: nunca cole uma em página web alguma, nem nesta. Se o bloco começar com PRIVATE KEY, a ferramenta se recusa a processá-lo em vez de analisá-lo em silêncio.
Por que a impressão usa SHA-1 se o SHA-1 está quebrado?
Porque o formato de chave de versão 4 define assim, e a impressão precisa ser calculada de forma idêntica em todo lugar ou ninguém conseguiria comparar. O SHA-1 está quebrado quanto à resistência a colisões, o que importa quando um atacante controla as duas entradas — e para impressões isso é uma preocupação real, que é exatamente por que o novo formato de versão 6 da RFC 9580 passou para SHA-256. Esta ferramenta calcula o que a própria versão da chave pede, então uma chave v4 recebe a impressão SHA-1 que o gpg e qualquer servidor de chaves vão mostrar para ela.
Qual a diferença entre a chave primária e uma subchave?
A chave primária é a identidade: ela carrega os IDs de usuário e certifica todo o resto. As subchaves penduram nela e fazem o trabalho do dia a dia, tipicamente uma para assinar e outra para cifrar, de modo que a primária possa ficar offline. É por isso que um bloco de chave costuma mostrar várias impressões, e por que a de uma assinatura de e-mail pode não ser a do site do projeto — a assinatura foi feita por uma subchave. Aqui as duas são listadas, cada uma com sua impressão, para você saber qual é qual.
Ele consegue checar se a chave foi revogada ou quem a assinou?
Não. Ele lê os pacotes e relata as chaves, IDs de usuário e datas que encontra, mas não verifica assinaturas, não segue certificações e não resolve a teia de confiança — tudo isso precisa de outras chaves e, para revogação, de uma consulta a um servidor de chaves. Uma chave revogada ontem é analisada aqui exatamente como no dia anterior. Para status de revogação e verificação de assinatura você precisa do gpg e de uma busca recente num servidor de chaves.

Ferramentas relacionadas