Compartir a través de


Distribución de claves

La técnica de autenticación de clave secreta no explica cómo el cliente y el servidor obtienen la clave de sesión secreta que se va a usar en sesiones entre sí. Si son personas, podrían reunirse en secreto y acordar la clave. Pero si el cliente es un programa que se ejecuta en una estación de trabajo y el servidor es un servicio que se ejecuta en un servidor de red, ese método no funcionará.

Un cliente querrá comunicarse con muchos servidores y necesitará claves diferentes para cada uno de ellos. Un servidor se comunica con muchos clientes y necesita claves diferentes para cada uno de ellos, así como . Si cada cliente necesita una clave diferente para cada servidor y cada servidor necesita una clave diferente para cada cliente, la distribución de claves se convierte en un problema. Además, la necesidad de almacenar y proteger muchas claves en muchos equipos crea un riesgo de seguridad enorme.

El nombre del protocolo Kerberos sugiere su solución al problema de distribución de claves. Kerberos (o Cerberus) era una figura en la mitología griega clásica, un perro feroc de tres cabezas que seguía viviendo intrusos al entrar en el Inframundo. Al igual que la mítica guardia, el protocolo Kerberos tiene tres cabezas: un cliente, un servidor y un tercero de confianza para mediar entre ellos. El intermediario de confianza de este protocolo es el Centro de distribución de claves (KDC).

El KDC es un servicio que se ejecuta en un servidor físicomente seguro. Mantiene una base de datos con información de cuenta para todas las entidades de seguridad en su dominio. Un dominio es el equivalente kerberos de un dominio en Windows.

Junto con otra información sobre cada entidad de seguridad, el KDC almacena una clave criptográfica conocida solo para la entidad de seguridad y el KDC. Esta es la clave maestra que se usa en intercambios entre cada entidad de seguridad y el KDC. En la mayoría de las implementaciones del protocolo Kerberos, esta clave maestra se deriva mediante una función hash de la contraseña de una entidad de seguridad.

Cuando un cliente quiere crear una conexión segura con un servidor, el cliente comienza enviando una solicitud al KDC, no al servidor al que quiere llegar. El KDC crea y envía al cliente una clave de sesión única para que el cliente y un servidor se usen para autenticarse entre sí. El KDC tiene acceso a la clave maestra del cliente y a la clave maestra del servidor. El KDC cifra la copia del servidor de la clave de sesión mediante la clave maestra del servidor y la copia del cliente mediante la clave maestra del cliente.

El KDC podría cumplir su rol como intermediario de confianza enviando la clave de sesión directamente a cada una de las entidades de seguridad implicadas, pero en la práctica este procedimiento no funcionará, por varias razones. En su lugar, el KDC envía ambas claves de sesión cifradas al cliente. La clave de sesión del servidor se incluye en una incidencia de sesión.