Sun Guía de Sun Enterprise Authentication Mechanism

Versiones de seguridad

Este apartado describe el desarrollo y la naturaleza de la API RPCSEC_GSS.

Seguridad anterior a RPCSEC_GSS

AUTH_SYS fue una de las primeras versiones de seguridad admitidas por RPC (conocida también como AUTH_UNIX); proporcionaba una credencial de tipo UNIX, mediante los ID de usuario y de grupo para identificar al remitente y al destinatario de un mensaje. AUTH_SYS es fácil de implementar; sin embargo, también es fácil de burlar, ya que no proporciona una verdadera autenticación (es decir, un servidor no puede verificar por ningún medio que un cliente es quien afirma ser). Por tanto, bajo AUTH_SYS es relativamente sencillo falsificar una solicitud de red.

Una versión de seguridad posterior, AUTH_DES, basada en la autenticación de clave pública, apareció después de AUTH_SYS; utiliza un intercambio de claves Diffie-Hellman para producir una clave común entre la clave privada de un cliente y la clave pública de un servidor. A continuación, se utiliza la clave común para encriptar una clave de sesión DES, que desencripta el servidor para establecer una sesión.

Aunque AUTH_DES representó un avance considerable sobre AUTH_SYS, tiene algunas limitaciones para su uso generalizado. La objeción principal para muchas personas es que el tamaño de la clave es demasiado pequeño, según los estándares de encriptación actuales.

Finalmente, se introdujo otra versión de seguridad de RPC. AUTH_KERB, basado en Kerberos V4, proporciona una seguridad superior a AUTH_DES o AUTH_SYS. Sin embargo, también se puede violar.

Para más información sobre estas versiones de seguridad, véase la ONC+ Developer's Guide.

Integridad y privacidad: la GSS-API

Para mejorar la seguridad, se ha agregado una nueva capa de seguridad, la API de estándar de seguridad general o GSS-API. La estructura de GSS-API ofrece dos servicios de seguridad adicionales además de la autenticación:


Nota -

Actualmente, la GSS-API no está expuesta. Sin embargo, algunas de sus funciones son "visibles" mediante las funciones de RPCSEC_GSS (pueden manipularse de forma "opaca"). El programador no debe preocuparse directamente de sus valores.


La API RPCSEC_GSS

La versión de seguridad RPCSEC_GSS permite a las aplicaciones RPC de ONC que aprovechen las funciones de GSS-API. RPCSEC_GSS está situada "sobre" la capa de GSS-API de la forma siguiente:

Figura 8-1 Capas de seguridad de GSS-API y RPCSEC_GSS

Graphic

Mediante la interfaz de programación para RPCSEC_GSS, las aplicaciones RPC de ONC pueden especificar:

mecanismo

Un paradigma de seguridad. Cada clase de mecanismo de seguridad ofrece un tipo diferente de protección de los datos, así como uno o varios niveles de protección de éstos. En este caso, cualquier mecanismo de seguridad admitido por GSS-API (Kerberos V5, clave pública RSA, etcétera).

servicio de seguridad

Privacidad o integridad (o ninguno). El predeterminado es la integridad. El servicio es independiente del mecanismo.

QOP

Calidad de protección. QOP especifica qué tipo de algoritmo criptográfico se utilizará para implementar los servicios de privacidad o integridad. Cada mecanismo de seguridad puede tener asociado con él uno o varios parámetros QOP.

Las aplicaciones pueden obtener listas de QOP y los mecanismos válidos mediante funciones que proporciona RPCSEC_GSS (Véase "Funciones varias"). Los desarrolladores deben evitar fijar los mecanismos y los parámetros QOP en sus aplicaciones, para así poder utilizar mecanismos o QOP diferentes sin tener que modificarlas.


Nota -

Históricamente, "versión de seguridad" y "versión de autenticación" han significado lo mismo. Con la introducción de RPCSEC_GSS, ahora "versión" tiene un significado algo distinto. Una versión puede incluir un servicio (integridad o privacidad) junto con la autenticación, aunque actualmente RPCSEC_GSS es la única versión que lo hace.


Mediante RPCSEC_GSS, las aplicaciones RPC de ONC establecen un contexto de seguridad como un igual, intercambian datos y destruyen el contexto, al igual que harían con otras versiones. Cuando se ha establecido un contexto, la aplicación puede cambiar QOP y el servicio para cada unidad de datos enviada.

Para obtener más información sobre RPCSEC_GSS, incluidos sus tipos de datos, véase la página del comando man rpcsec_gss(3N).