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
- Cole um bloco de chave pública em armadura, ou solte um arquivo .asc ou .gpg sobre a caixa.
- Compare a impressão digital completa — os quarenta dígitos hexadecimais — com a publicada por quem é dono da chave.
- Confira as datas de criação e expiração; uma chave expirada não verifica assinaturas feitas depois de ela vencer.
- 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.
- 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
Inspetor de chaves públicas SSH
Leia uma chave pública SSH ou uma linha de authorized_keys ou known_hosts: algoritmo, tamanho, impressões digitais SHA256 e MD5, comentário e opções.
Conversor de JWK para PEM (e vice-versa)
Converta um JWK ou um JWKS inteiro em chaves públicas PEM e ao contrário, com a impressão digital RFC 7638 de cada chave — no navegador.
Inspetor de keystore PKCS#12
Abra um .p12 ou .pfx no navegador: MAC e cifras antes da senha e, depois dela, a cadeia de certificados, a chave privada e se elas combinam.
Gerador de UUID
Gere UUIDs v4 aleatórios em lote, com cópia.
Gerador de ULID / NanoID / CUID2
Gere em lote ULIDs, NanoIDs e CUID2 — alternativas modernas ao UUID, mais curtas, ordenáveis ou resistentes a colisão.
Decodificador de Snowflake ID (Discord, Twitter)
Decodifique um Snowflake ID do Discord, Twitter/X ou Instagram em sua marca de tempo, worker ou datacenter e sequência — com época personalizada.