A continuación se ofrece una visión general del sistema de autenticación SEAM. Para obtener una descripción más detallada, véase "Funcionamiento del sistema de autenticación".
Desde el punto de vista del usuario, SEAM es básicamente invisible una vez iniciada la sesión de SEAM. Los comandos, como rsh o ftp funcionan casi normalmente. A menudo, la inicialización de una sesión de SEAM simplemente es iniciar una sesión y proporcionar una contraseña de Kerberos.
El sistema SEAM se centra en el concepto del cupón. Un cupón es un conjunto de información electrónica que sirve como identificación de un usuario o un servicio, como el servicio NFS. Al igual que su carnet de conducir le identifica e indica qué permisos de conducción tiene, el cupón le identifica junto con sus privilegios de acceso de red. Cuando lleva a cabo una transacción basada en SEAM (por ejemplo, si hace un rlogin en otra máquina), está enviando de forma transparente una solicitud de un cupón a un Centro de distribución de claves, o KDC, que accede a una base de datos para autenticar su identidad. El KDC devuelve un cupón que le concede el permiso para acceder a la otra máquina. "De forma transparente" significa que no necesita solicitar un cupón de forma explícita, sino que sucede como parte del comando rlogin. Como sólo el cliente autenticado puede obtener un cupón para un servicio concreto, otro cliente no puede usar rlogin bajo una identidad asumida.
Los cupones tienen asociados determinados atributos. Por ejemplo, un cupón puede ser remitible (lo que significa que se puede utilizar en otra máquina sin un nuevo proceso de autenticación), o con fecha futura (no válido hasta una hora especificada). El uso de los cupones (por ejemplo, quiénes tienen permiso para obtener qué tipos de cupón) está definido mediante normas, determinadas cuando se instala o se administra SEAM.
A menudo, verá los términos credencial y cupón. En el mundo de Kerberos, se utilizan a menudo de forma intercambiable. Sin embargo, técnicamente una credencial es un cupón más la clave de sesión para esa sesión. Esta diferencia se explica con más detalle en "Obtención de acceso a un servicio mediante SEAM".
Los apartados siguientes explican brevemente el proceso de autenticación de SEAM.
La autenticación de Kerberos tiene dos fases: una autenticación inicial que permite todas las autenticaciones siguientes y estas mismas autenticaciones siguientes.
Figura 1-1 muestra cómo se lleva a cabo la autenticación inicial:
Un cliente (un usuario o un servicio como NFS) inicia una sesión de SEAM solicitando un cupón de obtención de cupones (TGT) al Centro de distribución de claves. Esto a menudo se realiza automáticamente durante el inicio de sesión.
El cupón de obtención de cupones es necesario para obtener otros cupones para servicios específicos. Es posible considerar que el cupón de obtención de cupones es similar a un pasaporte. Al igual que éste, el cupón de obtención de cupones le identifica y le permite obtener diversos "visados", pero éstos (cupones) no son para países extranjeros sino para máquinas remotas o servicios de red. Al igual que los pasaportes y los visados, el cupón de obtención de cupones y los otros cupones diversos tienen vigencias limitadas. La diferencia es que los comandos "adaptados a Kerberos" se dan cuenta de que tiene un pasaporte y obtienen los visados por usted (no es necesario que se encargue personalmente de las transacciones).
El KDC crea un cupón de obtención de cupones y lo envía de vuelta codificado al cliente, el cual lo desencripta mediante su contraseña.
El cliente, en posesión de un cupón de obtención de cupones válido, ahora puede solicitar cupones para todo tipo de operaciones de red, como rlogin o telnet, mientras dure el cupón de obtención de cupones. Habitualmente, su duración es de varias horas. Cada vez que el cliente lleva a cabo una operación de red única solicita al KDC un cupón para esa operación.
Después de que el cliente haya recibido la autenticación inicial, todas las autenticaciones individuales siguen el modelo que se muestra en Figura 1-2:
El cliente solicita al KDC un cupón para un servicio determinado (por ejemplo, para hacer rlogin en otra máquina); para ello envía su cupón de obtención de cupones como prueba de identidad.
El KDC envía el cupón para el servicio específico al cliente.
Por ejemplo, suponga que el usuario juan utiliza rlogin en el servidor puebla. Como ya está autenticado (es decir, ya tiene un cupón de obtención de cupones), obtiene un cupón como parte del comando rlogin de forma automática y transparente. Este cupón le permite hacer rlogin en puebla tan a menudo como desee hasta que caduque. Si juan desea hacer un rlogin en la máquina madrid, obtendrá otro cupón, como en el paso 1.
El cliente envía el cupón al servidor.
El servidor permite el acceso del cliente.
Al seguir estos pasos, posiblemente se haya dado cuenta de que parece que el servidor nunca se comunica con el KDC. No obstante, sí que lo hace; se registra con el KDC, al igual que el primer cliente. Hemos omitido esa parte para simplificar el proceso.
¿Cuáles son los comandos basados en SEAM (o "adaptados a Kerberos") que puede utilizar un usuario como juan? Éstos son:
ftp
rcp
rlogin
rsh
telnet
Estas aplicaciones son las mismas que las de Solaris del mismo nombre, con la excepción de que utilizan principales de Kerberos para autenticar las transacciones, por lo que proporcionan la seguridad basada en Kerberos (para obtener información sobre los principales, véase "Principales").
Estos comandos se tratan con más detalle en "Comandos de SEAM".
Los clientes en SEAM se identifican por su principal, que es una identidad única a la que el KDC puede asignar cupones; puede ser un usuario, como juan, o un servicio, como nfs o telnet.
Convencionalmente, los nombres de principal se dividen en tres partes: primario, ejemplar y ámbito. Por ejemplo, un principal típico de SEAM sería juan/admin@ING.ACME.COM, donde:
juan es el primario, que puede ser un nombre de usuario, como se muestra aquí, o un servicio, como nfs. También puede ser la palabra host, lo que significa que es un principal de servicio configurado para proporcionar diversos servicios de red ( ftp, rcp, rlogin, etcétera).
admin es el ejemplar. En el caso de los principales de usuario, el ejemplar es opcional, pero es obligatorio para los principales de servicio. Por ejemplo: si el usuario juan actúa a veces como administrador del sistema, puede utilizar juan/admin para distinguirse de su identidad de usuario habitual. Del mismo modo, si juan tiene cuentas en dos sistemas diferentes, puede utilizar dos nombres de principal con diferentes ejemplares (por ejemplo, juan/puebla.acme.com y juan/madrid.acme.com). Observe que SEAM trata a juan y juan/admin como dos principales completamente distintos.
En el caso de un principal de servicio, el ejemplar es el nombre de sistema completo. granmaquina.ing.acme.com es un ejemplo de estos ejemplares, de forma que, por ejemplo, el primario/ejemplar serían, ftp/granmaquina.ing.acme.com o host/granmaquina.ing.acme.com.
ING.ACME.COM es el ámbito de SEAM. Los ámbitos se tratan en "Ámbitos".
Todos los nombres de principal siguientes son válidos:
juan
juan/admin
juan/admin@ING.ACME.COM
ftp/host.ing.acme.com@ING.ACME.COM
host/ing.acme.com@ING.ACME.COM
Un ámbito es una red lógica, como un dominio, que define a un grupo de sistemas bajo el mismo KDC maestro (véase a continuación). Figura 1-3 muestra cómo se pueden relacionar los ámbitos entre sí. Algunos ámbitos son jerárquicos (uno es un superconjunto de otro). Pero, si los ámbitos son no jerárquicos debe definirse la reasignación entre ellos. Una de las funciones de SEAM es que permite la autenticación entre ámbitos; cada ámbito únicamente necesita tener una entrada para el otro ámbito en el KDC.
Cada ámbito debe incluir un servidor que mantenga la copia maestra de la base de datos de principales. Este servidor se denomina el servidor KDC maestro. Además, cada ámbito debería contener un servidor KDC esclavo como mínimo, con copias duplicadas de la base de datos de principales. Tanto el servidor KDC maestro como los esclavos crean los cupones utilizados para establecer la autenticación.
El ámbito también puede incluir dos tipos adicionales de servidores SEAM. Un servidor de aplicaciones de red SEAM proporciona acceso a las aplicaciones adaptadas a Kerberos (como ftp, telnet y rsh). Los ámbitos también pueden incluir los servidores NFS, que proporcionan servicios de NFS mediante la autenticación de Kerberos.
Figura 1-4 muestra qué puede contener un ámbito hipotético.