¿Es seguro este esquema de autenticación con JWT?

0

Me preguntaba si podría revisar este esquema de autenticación para la aplicación web.

=== Página de inicio de sesión ===
Verificación de credenciales = > Problemas del servidor JWT = > Almacenado en una cookie

JWT contiene:
exp: timestamp
uid: ID de usuario
Firma HMAC-SHA512

Redis tiendas:
Clave: UserID
Valor: SecretKey (solo se inserta si no existe)

=== Autenticación de solicitudes ===
JWT descodificado
$ uid = ID de usuario

Redis obtiene:
Valor: SecretKey de
Clave: $ uid

Verificación JWT HMAC mediante SecretKey
si se verifica
si exp no ha caducado

TODO BIEN

Entonces, ¿por qué usar JWT cuando este es realmente un esquema con estado y no apátrida?

  • La verificación realiza solo una consulta a Redis, no hay necesidad de hacer otra para obtener el ID de usuario

  • No es necesario almacenar SessionID para cada sesión, Redis almacena solo un registro para sesiones ilimitadas de un usuario determinado.

  • No es necesario mantener las sesiones caducadas en Redis y eliminarlas.

  • Todos los tokens de un solo usuario pueden ser revocados en cualquier momento cambiando SecretKey

Por favor, dime si es estúpido o si hay fallas de seguridad, así que no implemento basura.

    
pregunta Peter Bielak 30.01.2017 - 16:18
fuente

1 respuesta

-1

En general se ve bien. Sin embargo, pocos problemas para pensar

  • El ID de usuario no está cifrado. Si la solicitud no pasa por TLS, está filtrando esa información a MITM. Es posible que desee cifrarlo.
  • Una vez que el usuario cierra la sesión, ¿qué impide que el JWT se siga utilizando, suponiendo que no haya caducado?
respondido por el Sunil Agrawal 30.01.2017 - 19:06
fuente

Lea otras preguntas en las etiquetas