Sun Guía de Sun Enterprise Authentication Mechanism

Capítulo 1 Introducción a SEAM

Este capítulo proporciona una introducción al producto SEAM.

¿Qué es SEAM?

SEAM (Sun Enterprise Authentication Mechanism) es una arquitectura cliente/servidor que ofrece la autenticación potente de los usuarios, así como la integridad y la privacidad de los datos, para proporcionar transacciones seguras a través de las redes. La autenticación garantiza las identidades del remitente y el destinatario de una transacción de red; SEAM también puede verificar la validez de los datos que pasan de un lado a otro (integridad) y encriptarlos durante la transmisión (privacidad). Con SEAM puede conectarse a otras máquinas, ejecutar comandos, intercambiar datos y transferir archivos de forma segura. Además, SEAM proporciona servicios de autorización, que permiten que los administradores puedan restringir el acceso a servicios y máquinas; asimismo, como usuario de SEAM puede regular el acceso de otras personas a su cuenta.

SEAM es un sistema de inicio de sesión único, cosa que significa que sólo necesita autenticarse en SEAM una vez por sesión y el resto de transacciones durante la sesión están protegidas automáticamente. Después de que SEAM le haya autenticado, no es necesario que se autentique cada vez que utilice un comando basado en SEAM como ftp o rsh, o cada vez que acceda a los datos de un sistema de archivos NFS. Así no tiene que enviar su contraseña a través de la red, donde puede ser interceptada, cada vez que utilice estos servicios.

SEAM se basa en el protocolo de autenticación de red Kerberos V5, desarrollado en el Massachusetts Institute of Technology (MIT). Por tanto, aquellos que hayan utilizado Kerberos V5 deberían encontrar SEAM muy familiar. Como Kerberos V5, de hecho, es un estándar industrial para la seguridad de red, SEAM promueve la interoperatividad con otros sistemas. Dicho de otra forma, como SEAM funciona con los sistemas que utilicen Kerberos V5, permite las transacciones seguras incluso a través de redes heterogéneas. Además, SEAM proporciona la autenticación y la seguridad entre dominios y dentro de un solo dominio.


Nota -

Como SEAM se basa en Kerberos V5 y se ha diseñado para interoperar con él, este manual utiliza a menudo los términos "Kerberos" y "SEAM" de forma más o menos intercambiable; por ejemplo, "ámbito de Kerberos" o "utilidad basada en SEAM" (además, "Kerberos" y "Kerberos V5" también se utilizan de forma intercambiable). El manual hace las distinciones cuando sea necesario.


SEAM permite la ejecución de aplicaciones de Solaris de forma flexible. Puede configurarlo para permitir las solicitudes basadas y no basadas en SEAM de los servicios de red, como el servicio NFS, telnet y ftp. Esto significa que las aplicaciones actuales de Solaris seguirán funcionando incluso si están instaladas en sistemas en los que no está instalado SEAM. Por supuesto, también puede configurar SEAM para que sólo permita las solicitudes de red basadas en SEAM.

Además, si se desarrollan otros mecanismos de seguridad, las aplicaciones no tienen que estar dedicadas a SEAM. Como éste se ha diseñado para integrarse de forma modular en la API genérica de servicios de seguridad, las aplicaciones que usen la GSS-API pueden utilizar el mecanismo de seguridad que mejor se ajuste a sus necesidades.

Funcionamiento de SEAM

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.


Nota -

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.

Autenticación inicial: el cupón de obtención de cupones

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:

Figura 1-1 Autenticación inicial para la sesión de SEAM

Graphic

  1. 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).

  2. 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.

  3. 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.

Autenticaciones siguientes

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:

Figura 1-2 Obtención de acceso a un servicio

Graphic

  1. 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.

  2. 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.

  3. El cliente envía el cupón al servidor.

  4. 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.

Comandos basados en SEAM

¿Cuáles son los comandos basados en SEAM (o "adaptados a Kerberos") que puede utilizar un usuario como juan? Éstos son:

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".

Principales

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:

Todos los nombres de principal siguientes son válidos:

Ámbitos

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.

Figura 1-3 Ámbitos

Graphic

Ámbitos y servidores

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.

Figura 1-4 Un ámbito típico

Graphic

Servicios de seguridad

Además de proporcionar la autenticación segura de los usuarios, SEAM ofrece dos servicios de seguridad:

Actualmente, de todas las aplicaciones adaptadas a Kerberos que forman parte de SEAM, sólo el comando ftp permite a los usuarios cambiar el servicio de seguridad en el tiempo de ejecución ("de inmediato"). Los desarrolladores pueden diseñar sus aplicaciones basadas en RPC para que elijan un servicio de seguridad mediante la interfaz de programación RPCSEC_GSS.

Componentes de SEAM

Al igual que la distribución de MIT de Kerberos V5, SEAM incluye:

Además, el producto SEAM incluye: