¿Es seguro usar JWT como identificador de sesión?

3

Estaba leyendo este artículo y dice que podría haber algunas vulnerabilidades con JWT.

Del artículo:

  

Había dos formas de atacar una biblioteca JWS que cumple con los estándares para lograr una falsificación de token trivial:

     
  1. Enviar un encabezado que especifique que se use el algoritmo "ninguno"
  2.   
  3. Envíe un encabezado que especifique el algoritmo "HS256" cuando la aplicación normalmente firma mensajes con una clave pública RSA.
  4.   

Pero para enviar estos encabezados, ¿no necesitaría el atacante tener acceso al secreto?

    
pregunta Migore 17.03.2017 - 19:53
fuente

1 respuesta

3

Un JWT consta de tres partes. El encabezado, la carga útil y la firma. El encabezado especifica qué método de firma se utiliza, por lo que no se puede verificar la firma antes de leer el encabezado. Tenga en cuenta que esto es un error de implementación; el encabezado no debe poder cambiar el algoritmo de firma.

  

Envíe un encabezado que especifique que se use el algoritmo "ninguno"

En este caso, no hay ninguna firma, por lo que el atacante puede modificar el mensaje a voluntad.

  

Envíe un encabezado que especifique el algoritmo "HS256" cuando la aplicación normalmente firma mensajes con una clave pública RSA.

En este caso, el atacante necesita conocer el secreto. Sin embargo, RS256 utiliza criptografía asimétrica, en la que a menudo se publica la clave pública. Si el atacante logra cambiar esto a HS256, la clave pública se usa como clave simétrica en su lugar. Así que el atacante conoce el secreto porque es la clave pública.

    
respondido por el Sjoerd 17.03.2017 - 22:47
fuente

Lea otras preguntas en las etiquetas