Ir para o conteúdo principal
Segurança e privacidade

Inspetor JWK / JWKS

Cole uma JWK ou um JWKS para obter uma tabela por chave (kid, kty, alg, use, key_ops, impressão SHA-256 RFC 7638) e avisos: kty ou kid em falta, kid duplicado, material de chave privada publicado por engano.

  • Área de transferência

Integrar este widget

Personalize o resultado, verifique a pré-visualização e copie o código.

Pré-visualização

Tipo de código de integração

Código a copiar

Responsivo e redimensionado automaticamente pela Bethemesh.

Esta ferramenta foi útil?

Como funciona esta ferramenta?

O inspetor JWK / JWKS torna legível um conjunto de chaves JSON Web Key, como o publicado no jwks_uri de um fornecedor OpenID Connect. Destina-se a programadores e equipas de segurança que publicam ou consomem um JWKS e pretendem ver rapidamente que chaves contém, como são identificadas e se algum dado privado foi incluído por engano.

Uma JWK (RFC 7517) descreve uma chave em JSON: kty indica a família (RSA, EC, oct), kid o identificador, alg o algoritmo previsto, use a utilização (sig para assinatura, enc para cifragem) e key_ops as operações permitidas. Um JWKS é simplesmente um objeto {"keys":[…]} que agrupa várias. A ferramenta aceita as duas formas, apresenta uma linha por chave e resume o número de chaves, os tipos presentes e os kid distintos. Calcula também a impressão RFC 7638 de cada chave: o hash SHA-256, codificado em Base64URL, de um JSON canónico que contém apenas os membros obrigatórios por ordem alfabética, ou seja e, kty e n para RSA, crv, kty, x e y para EC, e k e kty para uma chave simétrica.

Os avisos visam erros reais de publicação: kty em falta (a chave é inutilizável), kid em falta quando o conjunto tem várias chaves (o verificador não sabe qual usar), kid duplicado e, sobretudo, presença de material privado. Em RSA, os membros d, p, q, dp, dq e qi constituem a chave privada; em EC é d; numa chave simétrica oct, o membro k é o próprio segredo. Um JWKS público só deve conter chaves públicas; caso contrário, qualquer pessoa pode assinar tokens em seu nome. O resultado pode ser exportado em JSON.

Como usar esta ferramenta

  1. Cole a JWK ou o JWKS

    Cole uma chave isolada {"kty":…} ou um conjunto completo {"keys":[…]}, por exemplo copiado do jwks_uri do seu fornecedor.

  2. Leia a tabela de chaves

    Para cada chave, consulte kid, kty, alg, use, key_ops e a impressão SHA-256 RFC 7638, bem como o resumo com o número de chaves, os tipos e os kid distintos.

  3. Trate os avisos

    Corrija kty ou kid em falta e kid duplicados, retire qualquer dado privado e exporte o resultado em JSON se necessário.

Casos de uso

Verificar um JWKS antes de o publicar

Antes de colocar /.well-known/jwks.json online, confirme que nenhuma chave contém d ou k e que cada uma tem um kid único.

Acompanhar uma rotação de chaves

Cole o JWKS do seu fornecedor (Auth0, Keycloak, Entra ID, Google) durante uma rotação para ver a chave antiga e a nova lado a lado, com o respetivo kid e impressão.

Encontrar a chave que assinou um token

Compare o kid do cabeçalho de um JWT com os do JWKS para identificar a chave esperada e verifique depois a assinatura com o verificador JWT.

Dicas e boas práticas

  • Um aviso de chave privada num JWKS já publicado obriga a revogar e substituir a chave: retirá-la do ficheiro não basta, pois pode já ter sido copiada.
  • Evite um kid baseado num contador ou numa data previsível se puder usar a impressão RFC 7638: é estável e idêntica independentemente da formatação do JSON.
  • Uma chave oct (simétrica) nunca deve constar de um JWKS público: os segredos HMAC são partilhados por outro canal, através de um gestor de segredos.

Perguntas frequentes

Qual é a diferença entre uma JWK e um JWKS?

Uma JWK é uma única chave representada em JSON, com campos como kty, n, e ou x e y. Um JWKS (JSON Web Key Set) é um objeto {"keys":[…]} que contém uma lista de JWK, normalmente publicado por um servidor de autorização para que os clientes verifiquem os seus tokens.

O que é a impressão (thumbprint) de uma JWK?

É um identificador calculado segundo a RFC 7638: o SHA-256 de um JSON canónico que contém apenas os membros obrigatórios da chave pública, codificado em Base64URL. Duas representações da mesma chave dão sempre a mesma impressão, e a impressão de uma chave privada é a da sua chave pública. Muitos fornecedores usam-na como kid.

O kid é obrigatório num JWKS?

A RFC 7517 torna-o opcional, mas logo que um JWKS contém várias chaves passa a ser indispensável: é o kid do cabeçalho do JWT que permite escolher a chave certa. Sem ele, o verificador tem de experimentar todas as chaves, o que muitas bibliotecas recusam.

Como saber se uma JWK contém uma chave privada?

Uma JWK RSA é privada se contiver d (e muitas vezes p, q, dp, dq, qi); uma JWK EC é privada se contiver d; uma chave oct guarda sempre o segredo em k. A ferramenta assinala estes membros. Uma chave pública RSA contém apenas kty, n e e, além de metadados opcionais.

O que significam kty RSA, EC e oct?

RSA é uma chave RSA usada, por exemplo, com RS256 ou PS256; EC é uma chave de curva elíptica (P-256, P-384, P-521) usada com ES256, ES384 ou ES512; oct é uma chave simétrica, isto é, uma sequência secreta de bytes usada com HS256 ou para cifragem AES.

Qual é a diferença entre use e key_ops?

use indica a utilização geral da chave: sig para assinatura, enc para cifragem. key_ops enumera com precisão as operações permitidas, como verify, sign, encrypt ou wrapKey. A RFC 7517 recomenda não usar os dois em simultâneo ou, se o fizer, mantê-los coerentes.

Ferramentas relacionadas

Ferramentas semelhantes ou complementares a esta.

Funciona bem com

Verifique a assinatura de um JWT com um segredo HMAC ou uma chave pública JWK, JWKS ou PEM e controle exp, nbf, iss e aud.

Segurança e privacidadeUtilizar esta ferramenta

Descodifique um JWT para ler o cabeçalho, o payload, os claims e as datas de expiração.

Segurança e privacidadeEm destaqueUtilizar esta ferramenta

Gere um code_verifier PKCE, o respetivo code_challenge S256 e um state para o seu pedido de autorização OAuth.

Segurança e privacidadeNovoUtilizar esta ferramenta