ataques de autenticación basados en token

3

El token web JSON parece ser una muy buena herramienta para autenticar usuarios. Pero me pregunto si un atacante puede tomar el token usado por otro usuario y usarlo para sus propios ataques.
Y para ser más precisos, lo que hace que este método sea más seguro.

    
pregunta Yazid 30.04.2015 - 17:13
fuente

2 respuestas

2

Puede evitar los ataques de reproducción en JWT especificando las siguientes reclamaciones en su JWT: jti (identificador único), exp (tiempo de caducidad) y iat (tiempo de creación). La especificación de JWT indica claramente que se puede utilizar jti claim para evitar que un token JWT se reproduzca. De la especificación:

  

La reclamación "jti" (JWT ID) proporciona un identificador único para el JWT.      El valor del identificador DEBE ser asignado de una manera que asegure que      hay una probabilidad insignificante de que el mismo valor sea      asignado accidentalmente a un objeto de datos diferente; si la aplicación      utiliza múltiples emisores, las colisiones DEBEN ser prevenidas entre los valores      Producido por diferentes emisores también. El reclamo "jti" puede ser usado      para evitar que el JWT se reproduzca. El valor "jti" es un caso      cadena sensible El uso de esta reclamación es OPCIONAL.

    
respondido por el Rahil Arora 30.04.2015 - 19:46
fuente
1

En realidad, hubo un error reciente encontrado en JWTs .

Si estás usando node-jsonwebtoken, pyjwt, namshi / jose, php-jwt o jsjwt con claves asimétricas (RS256, RS384, RS512, ES256, ES384, ES512), permitirá a un atacante crear su propio "firmado" tokens con la carga útil que deseen, permitiendo el acceso arbitrario a la cuenta en algunos sistemas.

Si el JWT se almacena en una cookie, otros ataques posibles incluyen la mayoría de los que tienen cookies en general. Por ejemplo, fijación de sesión o no utilizando correctamente Secure o HTTP Only . Sin embargo, es menos probable que la sesión se fije porque los JWT tienden a incluir el nombre de usuario en la reclamación, sin embargo, dependiendo del sistema, existe un tipo de ataque similar al inicio de sesión CSRF puede ser posible.

  

incluye el jwt en el encabezado de cada solicitud. por lo tanto, cualquier persona que tenga este token con una fecha de vencimiento válida puede tener acceso a los recursos. Estoy en lo cierto, o no entiendo bien las especificaciones.

Esto depende de lo que está en la reclamación. Una fecha de caducidad válida por sí sola es inútil, debe incluir un nombre de usuario válido que la firma confirme que no se ha manipulado.

    
respondido por el SilverlightFox 01.05.2015 - 12:30
fuente

Lea otras preguntas en las etiquetas