¿Es SipHash una alternativa segura a HMAC-SHA256 para la autenticación de usuarios?

3

Después de leer la página de Wikipedia sobre SipHash, creo que se puede usar como HMAC-SHA256 en JWT para crear y verificar Tokens de API (autenticar dispositivos cliente).

En JWT, el servidor crea este MAC para firmar identificadores de usuario (por ejemplo, un número o correo electrónico) con una clave privada que luego se envía junto con el identificador con cada solicitud (después del inicio de sesión).

Además, el documento oficial dice:

  

Las aplicaciones de destino incluyen la autenticación de tráfico de red

Sin embargo, no puedo encontrar ninguna página en la web que explique este caso de uso, aunque es mucho más rápida y ha estado fuera durante un tiempo.

¿Es HMAC-SHA256 más seguro de alguna manera o me estoy perdiendo algo más? ¡Gracias!

EDITAR: la salida de SipHash suele ser de solo 64 bits, por lo que me refiero a SipHash doble con 128 bits como en la implementación de JavaScript

    
pregunta Jannis 11.01.2018 - 01:44
fuente

2 respuestas

2

La versión más nueva de salida de 128 bits de SipHash es adecuada para esta tarea; es decir, si SipHash es tan fuerte como pretenden sus autores (¡si!), entonces sí, puede usarlo para esa tarea.

Se puede decir una observación análoga de SHA-2, pero el problema principal aquí es de confianza subjetiva; los criptógrafos no han examinado SipHash con tanto detalle como SHA-2, por lo que subjetivamente, tenemos menos razones para creer que es tan fuerte como se supone que es, comparado con HMAC-SHA-2.

Entonces HMAC-SHA-2 es la opción más prudente aquí. Solo consideraría usar SipHash si hubiera demostrado de manera concluyente, según los datos de creación de perfiles, que SHA-2 era un cuello de botella significativo en el rendimiento de mi aplicación.

    
respondido por el Luis Casillas 12.01.2018 - 00:30
fuente
1

SipHash solo genera 64 bits de salida; por lo tanto, es dramáticamente menos seguro que SHA-256, SHA-384 o SHA-512. También es más rápido, lo que ayuda a un atacante también. Los primeros 64 bits son razonables, pero SipHash se detiene allí. Consulte esta publicación de Crypto.Stackexchange para obtener más detalles.

Además, no debe usar una sola pasada de nada para la autenticación del usuario (hashing de contraseñas); use PBKDF2, BCrypt, SCrypt o Argon2 con un factor de trabajo / recuento de iteración tan alto como su hardware pueda pagar. Consulte Cómo codificar de forma segura las contraseñas

    
respondido por el Anti-weakpasswords 11.01.2018 - 06:15
fuente

Lea otras preguntas en las etiquetas