Asegurar una página de inicio de sesión secundaria para ingresar un token de autenticación multifactor

1

Me gustaría implementar el siguiente caso de uso:

  1. El usuario llega a la página de inicio de sesión
  2. El usuario envía las credenciales de inicio de sesión
  3. Las credenciales se validan y se redirigen a otra página para ingresar el token de autenticación de múltiples factores
  4. El usuario envía el token de autenticación de múltiples factores
  5. El token se valida y el usuario se redirige a la aplicación

Mi pregunta es sobre las etapas 3-5: ¿Cuál es el método recomendado para realizar un seguimiento de este usuario una vez que ingresaron su nombre de usuario / contraseña pero antes de que ingresaran su token de autenticación multifactor? Para validar el token, debe haber una manera de saber qué usuario realiza la solicitud. También debe haber una forma de evitar que los atacantes se salten la parte del proceso del Nombre de usuario / Contraseña.

¿Cuál es la forma recomendada de resolver este problema?

    
pregunta theycallmemorty 27.04.2015 - 15:21
fuente

3 respuestas

3

Use una Cookie de sesión para rastrear a los usuarios durante todo el proceso de autenticación, al igual que lo harías después de la autenticación.

Asegúrese de que la longitud de su cocinero sea y complex son suficientes para resistir los ataques de fuerza bruta y suplantación de identidad. Utilice secure y enlace para evitar que los tipos malos lo capturen y utilicen.

Use una cookie para la primera autenticación a través de la verificación y luego renovar la sesión id ID después el segundo paso, que es un cambio de privilegio.

Esta es una de esas cosas en las que los problemas han sido detectados y existen las mejores prácticas para prescribir lo que debe hacer: simplemente lea, entienda y siga las Hoja de referencia de administración de sesiones de OWASP .

    
respondido por el gowenfawr 27.04.2015 - 15:46
fuente
2

Debería tener cookies de sesión . La mayoría de los marcos web tienen un soporte útil para eso.

Pero desde un punto de vista de seguridad, hay un problema importante.

El uso de cookies de sesión (para diferenciar los navegadores que usan su sitio) y las credenciales de inicio de sesión (para diferenciar a los usuarios de su sitio) duplica la funcionalidad de autenticación de su sistema. Así surge una nueva posibilidad de ataque, basada en las interacciones inesperadas entre los dos.

Los dos tipos de ataques más triviales podrían ser:

  1. Si un usuario cierra la sesión y vuelve a iniciar sesión, tendrá el mismo ID de sesión, pero con un usuario diferente. Por ejemplo, cerrar sesión como usuario moderador y luego iniciar sesión en un usuario normal, podría permitir que el segundo use los privilegios de moderador del inicio de sesión anterior.
  2. Las cookies serán casi tan importantes como las contraseñas, pero ni siquiera están tan estrictamente protegidas. Una cookie robada puede hacer posible "robar" efectivamente la cuenta a la que pertenece.

Por lo tanto,

  1. Usa https.
  2. Use un tiempo de espera de cookie rápido.
  3. Después de cerrar la sesión, elimine la validez de la cookie de sesión.
  4. Trate de usar la menor cantidad de variables vinculadas a la sesión, como pueda.
respondido por el peterh 27.04.2015 - 15:41
fuente
1

Yo usaría un token de sesión sin privilegios entre los dos pasos, que solo prueba que este usuario ha finalizado la primera parte de sus procesos de autenticación de múltiples etapas, pero que lo deja sin autenticar (sin privilegios).

Luego, después de completar la segunda etapa, vuelva a generar un token de sesión y aumente los privilegios del usuario a "autenticado" (o cualquier cosa que se ajuste a su matriz de control de acceso).

Solo permita el acceso a la segunda etapa si tiene un token que demuestre que se completó la primera etapa. De lo contrario, redirija al usuario a la primera etapa.

Puede echar un vistazo a la hoja de referencia de autenticación de OWASP para obtener algunas buenas pautas: enlace

    
respondido por el Jean-François Rioux 27.04.2015 - 15:34
fuente

Lea otras preguntas en las etiquetas