¿Existe una guía que indique que todas las sesiones se cierran cuando un usuario cambia su contraseña?

2

A menudo, cuando una cuenta es hackeada, la guía de seguridad es cambiar su contraseña. Sin embargo, he notado que cambiar una contraseña a veces no es suficiente para desconectarse de otras sesiones que están activas.

  • ¿Existe alguna guía de seguridad aceptada que recomiende o requiera que todas las sesiones de inicio de sesión hayan caducado y deban volver a autenticarse? Esto podría ser específico de la industria, o de un gobierno o empresa privada respetada que publique guías similares.

Encontré un enfoque interesante en la práctica, donde Facebook le da al usuario la opción de desconectar todas las sesiones

    
pregunta random65537 28.11.2012 - 17:05
fuente

2 respuestas

2

OWASP cubre esto en el top 10 (2010) en " Autenticación rota y gestión de sesión ". La declaración más cercana probablemente es que menciona que las sesiones deben regenerarse luego de una autenticación exitosa del cambio de privilegios junto con la prevención de ataques de la sesión. Eso es lo más cercano a un estándar que obtendrá.

Otros estándares, como ISF SOGP, etc., son de un nivel demasiado alto para cubrir esto.

    
respondido por el Callum Wilson 28.11.2012 - 17:38
fuente
0

No hay un solo consejo porque varias aplicaciones tienen diferentes requisitos.

La mayoría de las credenciales se manejan en forma de tokens. Usted se autentica en un servidor, devuelve un token, almacena el token y lo pasa a cada sistema con el que está tratando. El token podría ser de cualquier forma: una cookie, un ID de sesión, un ticket Kerberos, un token NTLM o lo que sea. El cliente lo almacena en un caché local y lo presenta cada vez que utiliza un servicio que necesita conocer sus credenciales.

Entonces, lo siguiente que usted (como cliente) desea hacer es acceder a algún servicio. Presenta el token, el servicio llama al servidor de autenticación, determina sus grupos / roles / autoridad, aprende el tiempo de caducidad de su token y le otorga acceso. Luego, el servicio simplemente almacena en caché su token y todos esos atributos, luego compara cada solicitud entrante para ver si todavía está usando el mismo token. No vuelve a validar su token hasta el tiempo de caducidad indicado por el servidor de autenticación.

En una aplicación de servicio intensivo, tendría problemas de rendimiento si le pidiera al servidor de autenticación que autentique cada solicitud de servicio. (¡Considere que una aplicación típica de Windows podría presentar el token de seguridad a una docena de diferentes llamadas a la API de Win32 incluso antes de mostrarle la pantalla de "bienvenida"!) Por lo tanto, para esos sistemas, almacenar el token en el nivel de servicio es fundamental.

Pero mientras se use la copia en caché, no se volverá a comprobar para ver si se ha invalidado posteriormente. Podría iniciar sesión en Facebook en estado de pánico porque recordó que se había dejado conectado en la cafetería y estableció la bandera, pero tendrá que esperar a la próxima caducidad del caché antes de que surta efecto.

En una aplicación de alta seguridad, puede reducir el tiempo de caducidad. Supongo que es posible que requiera que sus servicios no realicen el almacenamiento en caché de los atributos de credenciales, y que todos los tokens siempre se envíen al servidor de autenticación. En una aplicación de baja seguridad (tal vez un blog), probablemente le daría más valor a la conveniencia y al rendimiento.

Según su descripción, parece que Facebook probablemente tenga una integración personalizada entre la gestión de sus sesiones y sus sistemas de credenciales. Si marca el botón "cerrar sesión", puede enviar una notificación al sistema de administración de sesión para invalidar inmediatamente todas las sesiones asociadas con su cuenta. Lo que sería inteligente e hiper-rápido, pero no creo que la mayoría de los sistemas de autenticación admitan notificaciones de publicación / sub como esas. No tengo conocimiento de ningún servicio de devolución de llamada ofrecido por Kerberos, pero creo que la próxima versión de Apache Directory Services ofrecerá "activadores", que suenan como si se usaran para el mismo propósito.

    
respondido por el John Deters 21.08.2013 - 23:40
fuente

Lea otras preguntas en las etiquetas