¿Es una mala práctica compartir hashes de contraseña entre sistemas?

2

Para un sistema que se está construyendo actualmente, el usuario deberá iniciar sesión en varios sistemas con la misma contraseña. Un sistema (A) siempre es líder, y el usuario solo puede cambiar la contraseña en el sistema A. El nuevo hash se copia al sistema B y así sucesivamente. Cada sistema B solo tiene un subconjunto de las credenciales del sistema A.

Por razones técnicas (de implementación y conectividad) no podemos usar una tecnología de inicio de sesión único como OAuth para transferir la confianza. Los sistemas B rara vez están conectados, por lo que si bien podemos enviar información de A a B, no podemos permitir que B confíe en una conexión a A para la validación del usuario. Por supuesto, correctamente saltamos y eliminamos las contraseñas.

Ahora me pregunto: ¿es una mala práctica para estos sistemas, todos ellos bajo nuestro control, compartir el mismo hash de contraseña para un usuario?

    
pregunta Angelo van der Sijpt 08.09.2017 - 14:57
fuente

2 respuestas

1

El problema con este diseño es que ahora hay varios puntos de falla. Un compromiso de la base de datos para la aplicación A ahora compromete la seguridad de la aplicación B. También tiene más seguridad de transporte de la que preocuparse. En teoría, un atacante puede obtener un MITM para la copia de la contraseña de la aplicación A a la aplicación B. Una aplicación de diseño tradicional no sufre este defecto.

    
respondido por el user52472 08.09.2017 - 15:16
fuente
1

Como saben, esto significa que si alguien compromete cualquiera de los sistemas, los ha comprometido a todos.

Un sistema de este tipo es vulnerable a los ataques "pasar el hash", donde alguien que puede ingresar a la red puede ver un hash en la red, copiarlo y reproducirlo para obtener acceso a cualquier otro lado.

Si sus esfuerzos de seguridad están siendo auditados, por ejemplo, si está dentro del alcance de las PCI DSS, es probable que tenga que dedicar mucho esfuerzo extra para compensarlos.

¿Está seguro de que no puede usar una solución de autenticación conocida y respetada como Kerberos, en lugar de utilizar la propia? ¿Está seguro de que las razones por las que da (conectividad de red y despliegue) son válidas, que sus escenarios de fallas no están siendo manejados por productos existentes (por ejemplo, Active Directory puede manejar muchas formas de autenticación sin conexión) y que cualquier posible interrupción? ¿Realmente superan los riesgos que está introduciendo con este sistema?

No es tanto una cuestión de "es una mala práctica"; Depende de su organización decidir si están dispuestos a aceptar esos riesgos y costos.

    
respondido por el John Deters 08.09.2017 - 15:17
fuente

Lea otras preguntas en las etiquetas