O Que é Key Material? A Confusão das Chaves Criptográficas

Key Material é um termo que a galera de TI menciona, mas dá vontade de sair correndo. A documentação do IdentityServer4 fala que ele é importante no deployment de produção, mas quem realmente entende o que ele é?

Imagem relacionada à criptografia

Em termos simples, Key Material são os dados privados que formam uma chave criptográfica. Eles são a mágica que transforma uma mensagem clara em um enigma difícil de resolver.

GIF de criptografia

Na criptografia assimétrica, algumas coisas são públicas. Mas, com a chave privada, só você tem o poder de criptografar a mensagem.

Criptografia Simétrica: Uma Chave Basta

Nos algoritmos simétricos, só é preciso uma única chave para criptografar e descriptografar. É como trocar a chave de casa com alguém desconhecido.

Diagrama de criptografia simétrica

Aqui, todo mundo precisa cuidar bem da chave, senão os atacantes podem entrar.

Chave Assimétrica: Duas Chaves Para Fazer Direito

Nos algoritmos assimétricos, você usa duas chaves: uma pública e uma privada.

Diagrama de criptografia assimétrica

IdentityServer4 - JWK & JWKS: Vamos Usar JWT com Segurança

O IdentityServer4 e outros usam JWTs. Com JWK e JWKS, dá para compartilhar JWTs com segurança entre aplicações.

Json Web Key (JWK): A Chave Num Formato Simples

Imagine uma estrutura JSON para uma chave de criptografia. Isso é o JWK. Ele tem tudo para criptografar um JWT.

Exemplo de um JWK público (Google):

Exemplo de um JWK privado:

Json Web Key Set (JWKS): Um Conjunto de Chaves

JWKS é simplesmente um conjunto de JWKs. Ele ajuda quando você precisa mudar de algoritmo.

Exemplo de um JWKS público Google:

Proteja Suas Chaves Para Evitar Problemas

Se a chave do JWT vazar, um invasor pode fingir ser qualquer um e acessar tudo. A documentação fala da importância do Key Material, mas ainda falta clareza.

Imagem relacionada à segurança

Gerenciando o Key Material no IdentityServer4

IdentityServer4 tem extensões para gerenciar Key Material. AddSigningCredential() e AddValidationKey() são as principais.

Estratégia Para Usar as Chaves

No final, o objetivo é ter uma chave que funcione em todos os lugares sem estragar a segurança.

IdentityServer Key Management

Para uma solução oficial, custa €3.000 pelo produto do IdentityServer4.

Azure Key Vault / AWS KMS

Para guardar chaves, use Azure Key Vault ou Amazon KMS.

JWKS.Manager

Se quiser algo grátis, JWKS.Manager é a opção Open Source.

Conclusão

Esperamos que isso ajude mais do que a própria documentação do IdentityServer4. Boa sorte para quem enfrentar essa jornada.

Referências