HS256

sigla

criptografiasegurança

Significa: HMAC with SHA-256 (JWA identifier)

Um algoritmo de assinatura de JWT: HMAC com SHA-256.

HS256 é um identificador de Algoritmo Web JSON (do inglês JSON Web Algorithm, RFC 7518) para uma assinatura HMAC simétrica usando SHA-256. Como assinar e verificar usam o mesmo segredo compartilhado, confundi-lo com um algoritmo assimétrico como o RS256 é a raiz de um ataque de JWT bem conhecido.

O HS256 assina um JWT com HMAC e SHA-256, o que significa que o mesmo segredo cria e verifica a assinatura. Essa simetria é a história inteira: é rápido, simples, e exige que todo mundo que valida um token detenha a chave que também poderia emitir um.

Isso é aceitável quando um serviço emite e valida os próprios tokens, e vira um problema estrutural no instante em que os tokens cruzam uma fronteira. Distribuir um segredo de verificação a cinco serviços significa cinco cópias de uma chave de assinatura, e qualquer um deles, ou qualquer um que comprometa qualquer um deles, pode forjar tokens indistinguíveis dos verdadeiros. A partir do momento em que há mais de um validador, a assinatura assimétrica é a resposta correta.

A falha que ele viabiliza é o clássico ataque de confusão de algoritmo. Um servidor que confia no algoritmo nomeado no cabeçalho do token pode receber um token trocado de RS256 para HS256 e assinado com a chave pública RSA, que não é secreta, como se fosse o segredo do HMAC. Uma implementação ingênua o verifica sem hesitar. A defesa é a mesma regra geral: o servidor decide qual algoritmo é aceitável, nunca o token.

Também conhecido como: hs256

Todos os verbetes do glossário