¿Por qué son seguras las JWT?

9

Quiero asegurarme de que mi uso de JWT en la autenticación sea correcto. Hay un par de cuestiones que no entiendo. Este es mi entendimiento actual:

  • Cuando un usuario inicia sesión, el servidor creará un JWT cuya tercera parte es una firma que se crea con una clave secreta.
  • En otras llamadas a la API, el usuario puede incluir el JWT en el encabezado, y el servidor podrá verificar la firma, nuevamente utilizando la clave secreta. Esto significa que un atacante que ha interceptado el JWT no puede cambiar la carga útil de ninguna manera, porque si lo hacen, la firma no coincidirá.

Preguntas

  • Si un atacante logra obtener un JWT, ¿esto no les permitirá usar la API como si fuera el usuario que se había autenticado originalmente?
  • Estaba pensando en incluir una marca de tiempo de caducidad en la carga útil para que el usuario tuviera que iniciar sesión ocasionalmente. ¿Es esta la manera correcta de caducar el JWT?

Gracias de antemano.

    
pregunta Joe 20.10.2015 - 16:24
fuente

1 respuesta

6
  

Preguntas

     

Si un atacante logra apoderarse de un JWT, ¿esto no les permitirá utilizar la API como si fuera el usuario que se había autenticado originalmente?

Sí. Igual que si un atacante logra obtener un ID de sesión de usuario. Sin embargo, esta es la razón por la que desea limitar la vida útil de los JWT.

  

Estaba pensando en incluir una marca de tiempo de caducidad en la carga útil para que el usuario tuviera que iniciar sesión ocasionalmente. ¿Es esta la manera correcta de caducar el JWT?

Sí. Además, es posible que desee agregar un mecanismo de revocación. Este artículo proporciona una buena introducción sobre el tema: enlace

    
respondido por el user32387 20.10.2015 - 16:41
fuente

Lea otras preguntas en las etiquetas