¿El KDC de Kerberos conoce las contraseñas de texto simple de los usuarios?

9

En enlace sección 15.7.8.3 "El KDC es un único punto de falla" que puede leer :

  

Por diseño, el KDC debe ser tan seguro como la base de datos de contraseña maestra que contiene. El KDC no debe tener absolutamente ningún otro servicio en ejecución y debe estar asegurado físicamente. El peligro es alto porque Kerberos almacena todas las contraseñas cifradas con la misma clave (la clave "maestra"), que a su vez se almacena como un archivo en el KDC.

Eso no significa que este es un talón de Aquiles de Kerberos, ya que si el KDC está comprometido, el atacante sabrá las contraseñas de texto simple de todos los usuarios (en lugar de obtener / etc / shadow de un sistema Linux que las > solo proporcionar al atacante las contraseñas con hash y con sal)?

    
pregunta mgd 08.06.2012 - 23:29
fuente

2 respuestas

5

La respuesta es sí y no, dependiendo de lo que quieras decir. En el modelo básico de Kerberos, normalmente cada principal en un reino comparte un secreto con los servidores de autenticación Kerberos (centros de distribución de claves o KDC). (Digo "normalmente" porque los directores que actuarán solo como clientes pueden evitar compartir un secreto y usar otros métodos para autenticarse en el KDC, por ejemplo, un par de claves RSA a través de PKINIT, o contraseñas de un solo uso, lo que evita la adivinación de contraseñas problema discutido aquí por completo.) Para un componente de software como un servidor web, este es un conjunto de claves generadas aleatoriamente; hay un conjunto en lugar de solo uno, para acomodar a los clientes con soporte para varios cifrados criptográficos. Para un usuario, es un conjunto de claves derivadas de la contraseña del usuario. Así que el KDC guarda todos los secretos: si está comprometido, un atacante puede hacerse pasar por cualquier principal en el reino del KDC.

Sin embargo, el KDC no tiene realmente la contraseña del usuario, solo un conjunto de claves derivadas de la contraseña. Esta distinción no es importante en lo que respecta a Kerberos: las claves son el verdadero secreto de Kerberos. Sin embargo, las personas a menudo reutilizan contraseñas para varios sistemas; por lo tanto, si un KDC está comprometido, el atacante no tendrá inmediatamente la contraseña del usuario con la que intentar acceder a su cuenta de GMail, por ejemplo (aunque ahora puede montar un ataque de diccionario para intentar descubrir la contraseña).

  

¿No significa eso que esto es un talón de Aquiles de Kerberos?   El KDC está comprometido, el atacante sabrá el texto en claro de todos los usuarios.   contraseñas (a diferencia de obtener / etc / shadow de un sistema Linux que   solo proporcionará al atacante las contraseñas con hash y con sal)?

Es una propiedad de Kerberos; No lo llamaría un "talón de Aquiles". El esquema de hash de contraseña de Unix le permite hacer una cosa: verificar las contraseñas de texto sin formato, que deben entregarse al servidor. Los sistemas como Kerberos y PKI pueden hacer mucho más que eso, y tienen más secretos que proteger, distribuidos de varias maneras determinadas por las tecnologías respectivas. PKI no tiene una sola tienda con todas las claves de usuario, pero tiene las claves altamente sensibles de las autoridades de certificación (CA), que deben protegerse con tanta vigilancia como la base de datos principal de Kerberos, ya que roban una clave privada de CA de manera similar permite a un atacante hacerse pasar por muchos principios en el sistema. Puede ser más fácil proteger una clave privada de CA que la base de datos de KDC, ya que esta última debe estar en línea para la operación de KDC, mientras que la primera solo debe estar disponible para operaciones de firma relativamente infrecuentes (aunque eso depende de la naturaleza y el uso de la CA en cuestión) ). Por otro lado, la autenticación basada en contraseña de Kerberos no requiere una tienda secundaria o equipo adicional (como una tarjeta inteligente) para guardar la clave privada del usuario y los certificados de CA confiables, y su criptografía simétrica es mucho más rápida que las operaciones de clave pública de PKI. Y así sucesivamente ... hay muchas comparaciones y compensaciones.

    
respondido por el Richard E. Silverman 08.11.2014 - 22:27
fuente
9

La respuesta corta es: no.

Conoce una clave secreta que puede derivarse de la contraseña del usuario. La especificación RFC 1510 dice en la introducción de la sección 6:

  

Es deseable que la función string to key      ser de un solo sentido, y para que el mapeo sea diferente en diferentes ámbitos.      Esto es importante porque los usuarios que están registrados en más de uno      el reino usará a menudo la misma contraseña en cada uno, y es deseable      que un atacante que comprometa el servidor Kerberos en un reino no      obtener o derivar la clave del usuario en otro.

Tenga en cuenta que no hay un salt aleatorio único para cada cuenta, solo el nombre de dominio que se comparte entre todos los usuarios del mismo reino.

La versión actualizada RFC 4120 permite otra forma de obtener la clave:

  

La clave de usuario puede estar almacenada en una tarjeta inteligente, u obtenida de otra manera independientemente de una contraseña.

    
respondido por el Hendrik Brummermann 09.06.2012 - 00:29
fuente

Lea otras preguntas en las etiquetas