Saltar al contenido
ecdsa.com

HS256

El algoritmo JWS HMAC con SHA-256 (RFC 7518 §3.2), en el que el emisor y el verificador comparten una clave secreta de al menos 256 bits, así que cualquiera que pueda verificar un token también puede emitir uno.
También se escribeHS256HMAC-SHA256 JWTHS512

Es el único algoritmo JWS que JWA marca como obligatorio de implementar (Required), y el predeterminado de muchos tutoriales y frameworks. La etiqueta de 32 bytes se calcula sobre header.payload con el secreto compartido; la verificación la vuelve a calcular y la compara en tiempo constante.

El problema principal son los secretos débiles: el RFC 7518 exige claves de al menos la longitud del hash (256 bits), pero si un token se firma con un secreto corto o de diccionario, como secret, el secreto se puede averiguar sin conexión a partir de un solo token (modo 16500 de hashcat, jwt_tool), y después el atacante emite tokens arbitrarios. Usa 32 o más bytes aleatorios, nunca una contraseña, y compruébalo con el comprobador de secretos JWT.

HS256 encaja cuando el mismo servicio emite y verifica los tokens. Para verificadores externos, microservicios o clientes públicos, usa un algoritmo asimétrico para que los verificadores solo tengan una clave pública, y fija el algoritmo por clave para evitar la confusión con RS256.

Estándares y referencias

Todos los términos