O parâmetro kty (tipo de chave) é a primeira coisa a ler em qualquer JSON Web Key, porque ele determina todos os outros parâmetros que a chave pode ter. A RFC 7518 e a RFC 8037 definem quatro tipos que você verá na prática.
Os quatro tipos
RSA (kty igual a RSA) é o tipo clássico de chave pública. Sua metade pública é o módulo n e o expoente público e (quase sempre AQAB, que é 65537). Sua metade privada adiciona d e os fatores primos p e q, junto com os pré-computados dp, dq e qi. O tamanho da chave é o comprimento em bits de n, e 2048 bits é o piso moderno.
EC (kty igual a EC) é uma chave de curva elíptica em uma curva nomeada dada por crv, como P-256, P-384 ou P-521. A metade pública são as coordenadas do ponto x e y; a metade privada adiciona o escalar d. Chaves EC são muito menores que chaves RSA para força equivalente, e é por isso que ES256 é popular.
OKP (kty igual a OKP, da RFC 8037) é o par de chaves de octetos, usado para as curvas modernas de Edwards e Montgomery. Ed25519 e Ed448 são curvas de assinatura usadas pelo EdDSA; X25519 e X448 são curvas de acordo de chaves. A metade pública é apenas x; a metade privada adiciona d.
oct (kty igual a oct) é uma chave simétrica: um único segredo compartilhado k. O mesmo segredo cria e verifica uma assinatura, como com HS256. Como não há divisão entre público e privado, uma chave oct é sensível em sua totalidade.
Público versus privado é a linha de segurança
O hábito mais importante ao ler uma JWK é verificar se ela contém material privado. Para RSA isso significa d, p ou q; para EC e OKP significa d; para oct a chave inteira k é secreta. Um JWKS é feito para ser buscado por qualquer um, então deve conter apenas chaves públicas. Se você algum dia vir um d ou um k em um conjunto servido publicamente, a chave privada correspondente deve ser considerada exposta e rotacionada imediatamente. O explicador de JWKS marca cada parâmetro privado que encontra e avisa quando um conjunto publicado nunca deveria tê-lo contido.
Lendo-os num relance
O explicador lista o tipo, o uso, o algoritmo e o tamanho de cada chave, e separa os parâmetros públicos dos privados para você. Para de onde essas chaves vêm e como rotacionam, veja JWKS e rotação de chaves; para como uma delas é escolhida para verificar um token, veja verificando um JWT com um JWKS.