Interfaz de programación de aplicaciones
La interfaz de programación de aplicaciones de servicio de seguridad genérico ( GSSAPI , también GSS-API ) es una interfaz de programación de aplicaciones para que los programas accedan a servicios de seguridad .
GSSAPI es un estándar IETF que aborda el problema de muchos servicios de seguridad similares pero incompatibles en uso desde 2005 [actualizar].
Operación
La GSSAPI, por sí sola, no proporciona ningún tipo de seguridad. En cambio, los proveedores de servicios de seguridad proporcionan implementaciones de GSSAPI , normalmente en forma de bibliotecas instaladas con su software de seguridad. Estas bibliotecas presentan una interfaz compatible con GSSAPI a los desarrolladores de aplicaciones, quienes pueden escribir sus aplicaciones para que utilicen únicamente la GSSAPI independiente del proveedor . Si alguna vez es necesario reemplazar la implementación de seguridad, no es necesario reescribir la aplicación.
La característica definitiva de las aplicaciones GSSAPI es el intercambio de mensajes opacos ( tokens ) que ocultan los detalles de la implementación a la aplicación de nivel superior. Los lados cliente y servidor de la aplicación están escritos para transmitir los tokens que les proporcionan sus respectivas implementaciones GSSAPI. Los tokens GSSAPI normalmente pueden viajar a través de una red insegura ya que los mecanismos proporcionan seguridad inherente a los mensajes. Después del intercambio de una cierta cantidad de tokens, las implementaciones GSSAPI en ambos extremos informan a su aplicación local que se ha establecido un contexto de seguridad .
Una vez que se establece un contexto de seguridad, los mensajes confidenciales de la aplicación pueden encapsularse (encriptarse) mediante GSSAPI para lograr una comunicación segura entre el cliente y el servidor. Las protecciones típicas garantizadas por el encapsulamiento de GSSAPI incluyen la confidencialidad (secreto) y la integridad (autenticidad). GSSAPI también puede proporcionar garantías locales sobre la identidad del usuario remoto o del host remoto.
La GSSAPI describe alrededor de 45 llamadas a procedimientos. Entre las más importantes se incluyen las siguientes:
- GSS_Adquirir_cred
- Obtiene la prueba de identidad del usuario, a menudo una clave criptográfica secreta
- Nombre de importación GSS
- Convierte un nombre de usuario o nombre de host en un formato que identifica una entidad de seguridad
- Contexto de seguridad inicial GSS
- Genera un token de cliente para enviar al servidor, generalmente un desafío
- GSS_Aceptar_contexto_sec
- Procesa un token de GSS_Init_sec_context y puede generar un token de respuesta para devolver
- Envoltura GSS
- Convierte los datos de la aplicación en un token de mensaje seguro (normalmente cifrado)
- GSS_Desenvolver
- Convierte un token de mensaje seguro nuevamente en datos de aplicación
La GSSAPI está estandarizada para el lenguaje C (RFC 2744). Java implementa la GSSAPI [1]
como JGSS, [2]
la Interfaz de Programación de Aplicaciones de Servicios de Seguridad Genéricos de Java. [3]
Algunas limitaciones de GSSAPI son:
- estandarizar únicamente la autenticación , en lugar de no hacerlo también con la autorización ;
- asumiendo una arquitectura cliente-servidor .
Anticipándose a nuevos mecanismos de seguridad, GSSAPI incluye un pseudomecanismo de negociación , SPNEGO , que puede descubrir y utilizar nuevos mecanismos que no estaban presentes cuando se creó la aplicación original.
Relación con Kerberos
La implementación del mecanismo GSSAPI predominante en uso es Kerberos . A diferencia de GSSAPI, la API de Kerberos no se ha estandarizado y varias implementaciones existentes utilizan API incompatibles. GSSAPI permite que las implementaciones de Kerberos sean compatibles con las API.
Tecnologías relacionadas
Conceptos clave
- Nombre
- Cadena binaria que etiqueta un elemento principal de seguridad (es decir, un usuario o un programa de servicio); consulte control de acceso e identidad . Por ejemplo, Kerberos utiliza nombres como usuario@REALM para los usuarios y servicio/nombre de host@REALM para los programas.
- Cartas credenciales
- Información que prueba una identidad; utilizada por una entidad para actuar como principal designado. Las credenciales suelen incluir una clave criptográfica secreta.
- Contexto
- El estado de un extremo del protocolo de autenticación/autenticación . Puede proporcionar servicios de protección de mensajes, que pueden utilizarse para componer un canal seguro .
- Fichas
- Mensajes opacos intercambiados como parte del protocolo de autenticación inicial (tokens a nivel de contexto) o como parte de una comunicación protegida (tokens por mensaje)
- Mecanismo
- Una implementación subyacente de GSSAPI que proporciona nombres, tokens y credenciales reales. Entre los mecanismos conocidos se incluyen Kerberos , NTLM , Distributed Computing Environment (DCE), SESAME, SPKM y LIPKEY.
- Iniciador/aceptador
- El par que envía el primer token es el iniciador; el otro es el aceptador. Generalmente, el programa cliente es el iniciador mientras que el servidor es el aceptador.
Historia
- Julio de 1991: El Grupo de trabajo sobre tecnología de autenticación común (CAT) del IETF se reúne en Atlanta, dirigido por John Linn
- Septiembre de 1993: GSSAPI versión 1 (RFC 1508, RFC 1509)
- Mayo de 1995: se lanza Windows NT 3.51, incluye SSPI
- Junio de 1996: Mecanismo Kerberos para GSSAPI (RFC 1964)
- Enero de 1997: GSSAPI versión 2 (RFC 2078)
- Octubre de 1997: se publica SASL, incluye el mecanismo GSSAPI (RFC 2222)
- Enero de 2000: GSSAPI versión 2, actualización 1 (RFC 2743, RFC 2744)
- Agosto de 2004: El grupo de trabajo KITTEN se reúne para continuar con las actividades de CAT
- Mayo de 2006: Se estandariza el uso de GSSAPI en Secure Shell (RFC 4462)
Véase también
Referencias
- ^ "JSR-000072 Especificación de API de servicios de seguridad genéricos 0.1". 15 de junio de 2001. Consultado el 7 de octubre de 2015 .
- ^ Schönefeld, Marc (2010). Refactorización de antipatrones de seguridad en componentes Java distribuidos. Schriften aus der Fakultät Wirtschaftsinformatik und Angewandte Informatik der Otto-Friedrich-Universität Bamberg. vol. 5. Prensa de la Universidad de Bamberg. pag. 179.ISBN 9783923507689. Recuperado el 7 de octubre de 2015.
JGSS es la implementación JAVA de GSSAPI.
- ^ Fisher, Marina; Sharma, Sonu; Lai, Ray; Moroney, Laurence (2006). Interoperabilidad de Java EE y .NET: estrategias de integración, patrones y mejores prácticas. Prentice Hall Professional. ISBN 9780132715706. Recuperado el 7 de octubre de 2015.
Interfaz de programación de aplicaciones de servicios de seguridad genéricos de Java (JGSS) API para el acceso uniforme a los servicios de seguridad sobre una variedad de mecanismos de seguridad subyacentes, incluido Kerberos, que son bloques de construcción para el inicio de sesión único y el cifrado de datos.
Enlaces externos
- RFC 2743 Actualización 1 de la API del servicio de seguridad genérico versión 2
- RFC 2744 API de servicio de seguridad genérico versión 2: enlaces C
- RFC 1964 El mecanismo GSS-API de Kerberos 5
- RFC 4121 El mecanismo GSS-API de Kerberos 5: versión 2
- RFC 4178 Mecanismo de negociación GSS-API simple y protegido (SPNEGO)
- RFC 2025 Mecanismo GSS-API de clave pública simple (SPKM)
- RFC 2847 LIPKEY: un mecanismo de clave pública de baja infraestructura que utiliza SPKM
- "Tecnología de autenticación común de próxima generación (kitten)". Grupo de trabajo de ingeniería de Internet . Septiembre de 2013.
- Sun Microsystems (2002). "Guía de programación GSS-API — Sun Solaris 9". Oracle Corporation .
- Oracle Corporation (2020). "Cómo escribir aplicaciones que utilizan GSS-API: Oracle Solaris 11.4, Guía del desarrollador sobre seguridad".