Un servidor Kerberos se denomina KDC (Kerberos Distribution Center),
y provee de dos servicios fundamentales: el de autenticación (AS, Authentication Service) y el de tickets (TGS, Ticket Granting
Service). El primero tiene como función autenticar inicialmente a los
clientes y proporcionarles un ticket para comunicarse con el segundo,
el servidor de tickets, que proporcionará a los clientes las
credenciales necesarias para comunicarse con un servidor final que es quien
realmente ofrece un servicio. Además, el servidor posee una base de datos de
sus clientes (usuarios o programas) con sus respectivas claves privadas,
conocidas únicamente por dicho servidor y por el cliente que al que
pertenece.
La arquitectura de Kerberos está basada en tres objetos de seguridad:
Clave de Sesión, Ticket y Autenticador.
-
La clave de sesión es una clave secreta generada por Kerberos y
expedida a un cliente para uso con un servidor durante una sesión; no es
obligatorio utilizarla en toda la comunicación con el servidor, sólo si el
servidor lo requiere (porque los datos son confidenciales) o si el servidor es
un servidor de autenticación. Se suele denominar a esta clave ,
para la comunicación entre un cliente C y un servidor S.
Las claves de sesión se utilizan para minimizar el uso de las claves secretas
de los diferentes agentes: éstas últimas son válidas durante mucho
tiempo, por lo que es conveniente para minimizar ataques utilizarlas lo menos
posible.
-
El ticket es un testigo expedido a un cliente del servicio de tickets de Kerberos para solicitar
los servicios de un servidor; garantiza que el cliente ha sido autenticado
recientemente. A un ticket de un cliente C para acceder a un servicio S
se le denomina
.
Este ticket incluye el nombre del cliente C, para evitar su posible uso
por impostores, un periodo de validez y una clave de sesión
asociada para uso de cliente y servidor. Kerberos siempre
proporciona el ticket ya cifrado con la clave secreta del servidor al que
se le entrega.
-
El autenticador es un testigo construido por el cliente y enviado a un
servidor para probar su identidad y la actualidad de la comunicación; sólo
puede ser utilizado una vez. Un autenticador de un cliente C ante un servidor S
se denota por
.
Este autenticador contiene, cifrado con la clave de la sesión, el nombre del
cliente y un timestamp.
Kerberos sigue de cerca el protocolo de Needham y Schroeder
([NS78]) con clave
secreta, utilizando timestamps como pruebas de frescura con dos
propósitos: evitar reenvíos de viejos mensajes capturados en la red o la
reutilización de viejos tickets obtenidos de zonas de memoria del
usuario autorizado, y a la vez poder revocar a los usuarios los derechos al
cabo de un tiempo.
© 2002 Antonio Villalón Huerta