Actualmente estoy trabajando en una empresa en la que tenemos la necesidad de diseñar un sistema de autenticación basado en token. Seremos los propietarios y controladores de dos servidores, uno será el servidor de autenticación y el otro el servidor de aplicaciones.
Estoy razonablemente bien versado en conceptos, amenazas, vulnerabilidades comunes y sus contramedidas de Seguridad informática, pero una pregunta a la que no he encontrado respuesta es si necesita o no varias rondas de hashing cuando usa HMAC-SHA256 para firmar una ficha JWT.
Ya que para algo como el hashing de una contraseña usando SHA256, la regla general que entiendo es que se ejecutan 2 ^ (año-2000) (de dar o recibir según las necesidades de rendimiento) rondas de hashing, me cuesta creer una sola ronda de HMAC -SHA256 es lo suficientemente bueno, sin embargo, realmente no he visto a nadie hacer esta pregunta cuando he investigado el tema.
Por lo tanto, dada una clave secreta y un encabezado de token JWT y una carga útil, cuál de las siguientes se considera la mejor práctica para la firma del token:
- Una sola iteración de HMAC-SHA256 se considera segura para una firma de token JWT.
- Se recomienda ejecutar HMAC-SHA256 varias veces una y otra vez reutilizando la misma clave secreta.
- Ejecute HMAC-SHA256 una vez y luego ejecute las iteraciones de hash SHA256 en el producto a partir del cálculo de HMAC. (Esto es lo que supongo que es la mejor práctica)
- Estoy totalmente equivocado y es algo diferente.
Muchas gracias por cualquier ayuda. Solo quiero asegurarnos de que el sistema esté diseñado lo mejor posible.