GSS-API
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 22 de noviembre de 2019; la verificación requiere
1 edición .
GSS-API ( GSS , GSSAPI , API de servicios de seguridad genéricos en inglés , interfaz de programación de servicios de seguridad comunes ): API para acceder a los servicios de seguridad. Descrito en el estándar IETF . Diseñado para solucionar el problema de incompatibilidad de servicios de seguridad similares.
Descripción
El GSS-API en sí mismo no proporciona servicios de seguridad, sino que proporciona una interfaz entre las aplicaciones y las implementaciones de GSSAPI (generalmente bibliotecas). Estas bibliotecas proporcionan una interfaz compatible con GSS-API, lo que le permite crear aplicaciones que pueden funcionar con diferentes bibliotecas de seguridad; permitiendo que las bibliotecas sean reemplazadas sin tener que volver a escribir aplicaciones.
Una característica distintiva de las aplicaciones implementadas con GSSAPI es el uso de mensajes privados (tokens) que ocultan los detalles de implementación de las aplicaciones de nivel superior. El servidor y el lado del cliente de las aplicaciones están diseñados para interactuar mediante tokens GSSAPI. Los tokens generalmente se pueden transferir a través de una red (pública) insegura. Después de que las partes (cliente y servidor) hayan intercambiado una cierta cantidad de mensajes, la biblioteca GSSAPI informa a ambas partes de la interacción sobre el establecimiento de un contexto seguro .
Una vez que se ha establecido un contexto seguro, los mensajes de aplicaciones protegidas se pueden "envolver" (cifrar) utilizando GSSAPI para una transmisión segura entre el servidor y el cliente.
Aspectos de seguridad típicos proporcionados por bibliotecas que implementan GSSAPI:
- confidencialidad
- integridad
- la autenticidad de ambos lados del intercambio de información
GSSAPI describe aproximadamente 45 llamadas. Principal:
- GSS_Acquire_cred : obtener una prueba de identidad del usuario (generalmente una clave privada, contraseña)
- GSS_Import_name : convierte el nombre del usuario, host en un formulario que le permite definir un objeto de seguridad
- GSS_Init_sec_context : crea un token de cliente para enviar al servidor (generalmente un desafío, dentro del modelo de desafío-respuesta (autenticación) )
- GSS_Accept_sec_context : maneja un token creado con GSS_Init_sec_context y, opcionalmente, devuelve un token de respuesta .
- GSS_Wrap : convierte los datos de la aplicación en un formulario de mensaje seguro (generalmente encriptado)
- GSS_Unwrap : extrae los datos de la aplicación de un mensaje protegido (generalmente descifrado)
GSSAPI se ha estandarizado para C ( RFC 2744 ) y Java ( JSR-072 ).
Las limitaciones de GSSAPI incluyen que solo estandariza la autenticación , no la autorización , y que asume una arquitectura cliente-servidor .
Anticipándose a la aparición de nuevos mecanismos de seguridad, GSSAPI incluye un pseudo-mecanismo especial , SPNEGO , que permite el descubrimiento y uso de mecanismos que no existían en el momento en que se creó la aplicación.
Comunicación con Kerberos
GSSAPI se usa a menudo junto con Kerberos . A diferencia de GSSAPI, la API de Kerberos no está estandarizada (y existen API incompatibles). GSSAPI le permite usar diferentes implementaciones de Kerberos sin cambiar el código de su aplicación.
Tecnologías relacionadas
Términos básicos de GSSAPI
- Nombre (nombre): una cadena binaria para denotar un identificador (nombre de usuario, aplicación, etc.). Por ejemplo, Kerberos usa el formato 'usuario@REINO para usuarios y servicio/nombre de host@REINO para aplicaciones.
- Credencial (identidad): información que prueba la autenticidad de un objeto (generalmente una contraseña o clave privada).
- Contexto (contexto) - el estado del canal de comunicación
- Token (token): un mensaje opaco (a la aplicación) que se envía durante la fase de establecimiento de la conexión o durante la transmisión de un mensaje seguro
- Mecanismo : la implementación subyacente de GSSAPI que proporciona el nombre, la identidad y los tokens reales. Mecanismos típicos: Kerberos, NTLM , DCE , SESAME , SPKM , LIPKEY .
- Iniciador/aceptador (iniciador/destinatario): la parte que envía el primer token es el iniciador ; el lado opuesto es el destinatario . Por lo general, el receptor es el servidor y el iniciador es el cliente.
Historia
- Julio de 1991: El grupo de trabajo IETF CAT (Common Authentication Technology) se reunió en Atlanta bajo el liderazgo de John Linn.
- Septiembre de 1993: publicación de la versión 1 de GSSAPI ( RFC 1508 , RFC 1509 )
- Mayo de 1995: implementación de SSPI lanzada con Windows NT 3.51
- Junio de 1996: lanzamiento del mecanismo Kerberos para GSSAPI ( RFC 1964 )
- Enero de 1997: GSSAPI versión 2 ( RFC 2078 )
- Octubre de 1997: publicación del estándar SASL, incluido el mecanismo GSSAPI ( RFC 2222 )
- Enero de 2000: Actualización 1 para GSSAPI versión 2 ( RFC 2743 , RFC 2744 )
- Agosto de 2004: reunión del grupo de trabajo KITTEN (continuación de CAT)
- Mayo de 2006: uso estandarizado de GSSAPI para SSH ( RFC 4462 )
Véase también
Enlaces