autenticación multifactor: implementando una función de "no volver a preguntar por esta computadora"

2

Muchos sitios que admiten la autenticación multifactor ofrecen la opción "No volver a preguntarme por este equipo". Espero obtener información sobre la mejor manera de implementar esta función.

Mi suposición inicial sería que se implementa utilizando una cookie (¿bloqueada por IP?) en el sistema de los usuarios.

Sin embargo, esto parece debilitar drásticamente la seguridad, ya que si la cookie es robada, 2fa es esencialmente rechazada (especialmente si también se roba una cookie de inicio de sesión).

¿Alguna idea?

    
pregunta GBC 24.05.2014 - 08:14
fuente

3 respuestas

2

No es práctico colocar la cookie en la IP. Imagina un teléfono móvil que cambia constantemente de red.

Me enteré de cómo colocar la cookie en las claves de sesión SSL en aplicaciones de alta seguridad. El servidor permitiría una cookie específica solo si entra en la sesión SSL específica que se utilizó para iniciar esa cookie.

Una forma diferente de inutilizar la cookie en una computadora diferente es tomar las huellas dactilares de la computadora original. La combinación de, sistema operativo, navegador, resolución de pantalla, complementos instalados, puede formar una huella digital única que identifica una computadora.

Cuando se expusieron las cookies de Heartbleed hit y de sesión, una gran cantidad de autenticación de segundo factor se volvió inútil y el "recuerdame" empeoró el problema porque las cookies no caducaron al final de una sesión.

La funcionalidad "Recuérdame" es por conveniencia. La comodidad casi siempre está reñida con la seguridad. Imagine utilizar el reconocimiento de voz en su oficina para ingresar contraseñas y el segundo factor. El factor múltiple disminuye la conveniencia y aumenta la seguridad.

De hecho, la autenticación de múltiples factores solicita múltiples entradas del usuario, mientras que "recordarme" se usa para solicitar menos entradas. Solicita algo que aumente la seguridad y para mayor comodidad. Ahí es donde la investigación en la nueva autenticación se aplica actualmente. La biometría, los dispositivos personales y otras tecnologías están trabajando para lograr ese objetivo.

  • Los servicios como LastPass y KeePass pueden proporcionar la ilusión de "recuérdame" y aún así tienen una mayor seguridad.
  • Google está trabajando en un ring y una tecnología que utiliza su teléfono inteligente y sonido inaudible para autenticar al usuario.
  • YubiKey es un dispositivo de hardware que puede eliminar el recuerdo y la escritura de contraseñas.
respondido por el Cristian Dobre 24.05.2014 - 11:18
fuente
0

Desde muchos sitios se puede ver que está implementado con cookies; Lo he visto implementado de otras maneras (para no ser críptico: en un sitio todavía me recuerdan, incluso cuando utilizo otros perfiles de navegador, sospecho que Flash Local Storage o huellas digitales incorrectas).

Puede haber otros métodos de toma de huellas dactilares para protegerse contra la copia de cookies. Al igual que usted, mencionó con las direcciones IP, aunque es poco probable que las IP puedan ser legítimamente diferentes, especialmente en entornos corporativos que pueden tener múltiples IP externas y un NAT sin garantías de que su IP externa sea estática para las nuevas conexiones.

Puede probar el almacenamiento de cookies usted mismo exportando cookies en una computadora, importándolas en otra e intentando iniciar sesión.

Alternativamente, también puede usar una herramienta como Fiddler para actuar como un proxy; luego puede modificar las solicitudes para ver qué es y qué no es relevante para recordar su estado autenticado. Esto le permitirá simular las cookies copiadas, o con un conjunto de cookies copiadas simulará la máquina original.

    
respondido por el Tyler Szabo 24.05.2014 - 08:32
fuente
0

Además de las cookies, esto también se puede implementar fácilmente en el servidor. A veces, los usuarios rechazan o eliminan las cookies, por lo que los métodos del lado del servidor pueden ser útiles.

De cualquier manera, generalmente toma nota de una serie de variables como:

  • dirección IP
  • ID de usuario
  • Alguna forma de token seguro (que indica que su inicio de sesión fue exitoso)

Estos pueden almacenarse, con un solo hash, en una tabla de base de datos y cada acceso al sitio ejecuta una función que reproduce el hash y lo compara con la tabla de la base de datos y devuelve verdadero o falso dependiendo de si el usuario está autenticado.

    
respondido por el Julian Knight 24.05.2014 - 11:09
fuente

Lea otras preguntas en las etiquetas