Muchos sitios tienen una opción de "confiar en esta computadora" que permite omitir algunas medidas de seguridad (por ejemplo, con la autenticación de 2 pasos de Google habilitada, una no necesita ingresar el código del teléfono si la computadora / navegador se marcó previamente como confiable. Tengo problemas para encontrar más información sobre el tema, en particular sobre cómo implementarlo de forma segura, si es posible.
( Nota: Me refiero específicamente a sitios de propósito general, que no dependen de nada especial más allá de las capacidades de los navegadores. Por ejemplo, mi sitio de banco usa su propio módulo de seguridad (con Java o ActiveX) , pero eso está fuera del alcance de esta pregunta.)
Suposiciones:
- La computadora para ser marcada como de confianza es de hecho solo utilizada por personas de confianza, y se toman medidas razonables para mantenerla libre de malware.
- SSL se utiliza para comunicarse con el sitio.
Preguntas:
-
Por lo que pude hacer, se usa una cookie para almacenar un secreto compartido arbitrario entre el navegador y el sitio. ¿Eso es todo? ¿O emplea alguna forma única (no perdonable) de identificar de manera única esa computadora o dispositivo en particular?
- En caso de que sea realmente arbitrario, ¿qué propiedades necesita para ser resistente a las colisiones y / o la falsificación? (longitud, aleatoriedad, ...)
-
¿Debería caducar el estado de "confianza" en algún momento? ¿O es suficiente para ofrecer medios para revocarlo a pedido, en caso de que el usuario crea que la computadora / dispositivo se vio comprometido?
-
¿Realmente agrega algún aumento de seguridad? Usando el ejemplo de Google nuevamente, noté que periódicamente me solicita que me autentique nuevamente (aunque solo use el nombre de usuario / contraseña). ¿Cuál es el razonamiento detrás de esto?
- Si se asume que la computadora aún es confiable, ¿no podría simplemente autenticarme para siempre?
- Si OTOH asume que un usuario malintencionado podría estar usándolo, ¿no debería solicitar una autenticación completa? (es decir, ¿por qué asume que la contraseña es suficiente? ¿considera que la computadora es el segundo factor?)
Entiendo que, en general, cuando la comodidad aumenta, la seguridad disminuye. Mi duda es si esta opción anula o no el propósito de la autenticación de dos factores o si es un compromiso razonable.