Kerberos es un protocolo de autenticación desarrollado
por el Massachusetts Institute of Technology. El protocolo
Kerberos hace que los nodos de computadora se puedan
comunicar en una red de computadoras no segura con el
objetivo de autenticarse entre sí de forma segura. La última
versión del protocolo Kerberos es la 5.
El sistema Kerberos se basa en el concepto de tickets.
Un ticket es un conjunto de información electrónica que
identifica a un usuario o servicio, como el servicio NFS.
Así como su licencia de conducir lo identifica e indica qué
privilegios tiene para conducir un automóvil, el ticket lo identifica
e indica qué privilegios tiene para acceder a la red. Cuando
realiza una transacción que se basa en Kerberos
(por ejemplo, si inicia sesión en otro equipo de manera remota),
envía de manera transparente una solicitud de un ticket a un
Centro de distribución de claves (KDC).
El KDC accede a una base de datos para autenticar su identidad y
devuelve un ticket que le concede permiso para acceder a otro equipo.
La expresión "de manera transparente" implica que no necesita
solicitar un ticket de manera explícita. La solicitud forma parte de
la actividad del comando rlogin. Debido a que sólo los clientes que
están autenticados pueden obtener un ticket para un servicio específico,
los demás clientes no pueden usar rlogin con una identidad asumida.
Los tickets tienen asociados algunos atributos determinados.
Por ejemplo, un ticket puede ser reenviable, lo que significa
que se puede utilizar en otro equipo sin que se realice un nuevo
proceso de autenticación. Asimismo, un ticket puede ser posfechado,
que significa que no adquiere validez hasta un momento especificado.
El modo de uso de los tickets, por ejemplo, para especificar qué
usuarios pueden obtener los distintos tipos de tickets, se establece
mediante políticas. Las políticas se determinan durante la instalación
o administración del servicio Kerberos.
La autenticación de Kerberos tiene dos fases: una autenticación inicial que permite
que se lleven a cabo todas las autenticaciones posteriores y las autenticaciones
posteriores en sí mismas.
1. Un cliente (un usuario o un servicio como NFS) comienza una sesión Kerberos
mediante la solicitud de un ticket de otorgamiento de tickets (TGT) desde el
Centro de distribución de claves (KDC). Esta solicitud se suele llevar a cabo
automáticamente en el inicio de sesión.
2. El KDC crea un ticket de otorgamiento de tickets y lo envía de vuelta al cliente
en formato cifrado. El cliente descifra el ticket de otorgamiento de tickets con la
contraseña del cliente.
3. Con un ticket de otorgamiento de tickets válido, el cliente puede solicitar tickets
para todo tipo de operaciones de red, como rlogin o telnet,durante todo el
periódo de validex del ticket de otorgamiento de ticket. Por lo general, este
ticket dura algunas horas. Cada vez que el cliente realiza una operación de red
única, solicita al KDC un ticket para esta operación.
Una vez que el cliente ha recibido la autenticación inicial, cada
autenticación posterior sigue el patrón que se muestra en la siguiente
figura.
1. El cliente solicita al KDC un ticket para un servicio en particular;
por ejemplo, para iniciar sesión en otro equipo de manera remota.
Para ello, envía al KDC su ticket de otorgamiento de tickets como
prueba de identidad.
2. El KDC envía el ticket por el servicio específico al cliente.
3. El cliente envía el ticket al servidor.
4. El servidor permite el acceso de clientes.
Los comandos basados en Kerberos (o kerberizados ) que un usuario
puede utilizar son:
•ftp
•rcp
•rdist
•rlogin
•rsh
•ssh
•telnet
Un cliente en el servicio Kerberos se identifica con su principal.
Un principal es una identidad única a la que el KDC
puede asignar tickets.
Un principal puede ser un usuario, como joe,
o un servicio, como nfs o telnet.
Por convención, el nombre de principal consta de tres componentes:
el nombre primario, la instancia y el dominio.
Un principal de Kerberos típico sería,
por ejemplo, joe/[email protected].
joe es el nombre primario. El nombre primario puede ser un nombre de usuario,
como se muestra aquí, o un servicio, como nfs. El nombre primario también
puede ser la palabra host, lo cual significa que el principal es un principal de servicio
que está configurado para proporcionar distintos servicios de red, ftp, rcp, rlogin, etcétera.
admin es la instancia. La instancia es opcional en el caso de los principales de usuario,
pero es necesaria para los principales de servicio. Por ejemplo, si el usuario joe a veces
actúa como administrador del sistema, puede utilizar joe/admin para distinguirse de su
identidad de usuario habitual. Del mismo modo, si joe tiene cuentas en dos hosts diferentes,
puede utilizar dos nombres de principal con instancias diferentes,
por ejemplo, joe/denver.example.com y joe/boston.example.com.
Tenga en cuenta que el servicio Kerberos trata joe y joe/admin como dos
principales completamente diferentes.
En el caso de un principal de servicio, la instancia es el nombre de host completo.
Un ejemplo de una instancia así es bigmachine.eng.example.com.
La combinación nombre primario/instancia para esta ejemplo podría ser
ftp/bigmachine.eng.example.com o host/bigmachine.eng.example.com.
El dominio de Kerberos es ENG.EXAMPLE.COM. En Dominios de Kerberos se analizan los dominios.
Un dominio es una red lógica, similar a un
dominio, que define un grupo de sistemas
con el mismo KDC principal.Algunos
dominios son jerárquicos, lo que implica
que un dominio es un superconjunto de los
otros dominios. De lo contrario, los
dominios son no jerárquicos (o “directos”),
y la asignación entre los dos dominios
debe definirse. Una característica del
servicio Kerberos es que permite la
autenticación entre dominios. Cada
dominio sólo necesita una entrada de
principal para el otro dominio en su KDC.
Esta función de Kerberos se
denomina autenticación entre dominios.
Cada dominio debe incluir un servidor que
mantenga la copia maestra de la base de
datos del principal. Este servidor se
llama servidor KDC maestro. Además, cada
dominio debe contener por lo menos
un servidor KDC esclavo, que contenga las
copias duplicadas de la base de datos del
principal. Tanto el servidor KDC maestro
como el servidor KDC esclavo crean tickets
que se utilizan para establecer la
autenticación.
El dominio también puede incluir
un servidor de aplicaciones Kerberos. Este
servidor proporciona acceso a los servicios
Kerberizados ( como ftp, telnet, rsh y NFS ).