Articulo de referencia

Interfaz de programación de aplicaciones de servicios de seguridad genéricos

La Interfaz de Programación de Aplicaciones del Servicio de Seguridad Genérico ( GSSAPI , también GSS-API ) es una interfaz de programación de aplicaciones para que los programa...

La Interfaz de Programación de Aplicaciones del Servicio de Seguridad Genérico ( GSSAPI , también GSS-API ) es una interfaz de programación de aplicaciones para que los programas accedan a los servicios de seguridad [ 1 ] .

GSSAPI es un estándar IETF que aborda el problema de muchos servicios de seguridad similares pero incompatibles que se utilizaban desde 2005..

Operación

La API GSSAPI, por sí sola, no proporciona seguridad. En cambio, los proveedores de servicios de seguridad ofrecen implementaciones de GSSAPI , generalmente en forma de bibliotecas instaladas con su software de seguridad. Estas bibliotecas presentan una interfaz compatible con GSSAPI para los desarrolladores de aplicaciones, quienes pueden escribir sus aplicaciones para usar únicamente la API GSSAPI independiente del proveedor . Si alguna vez es necesario reemplazar la implementación de seguridad, no es necesario reescribir la aplicación. [ 2 ]

La característica distintiva de las aplicaciones GSSAPI es el intercambio de mensajes opacos ( tokens ) que ocultan los detalles de implementación a la aplicación de nivel superior [ 3 ] . Tanto el cliente como el servidor de la aplicación están programados para transmitir los tokens que les proporcionan sus respectivas implementaciones GSSAPI. Los tokens GSSAPI generalmente pueden viajar a través de una red no segura, ya que los mecanismos proporcionan seguridad de mensajes inherente. Después del intercambio de un cierto número de tokens, las implementaciones GSSAPI en ambos extremos informan a su aplicación local que se ha establecido un contexto de seguridad .

Una vez establecido un contexto de seguridad, los mensajes confidenciales de la aplicación pueden ser encriptados (cifrados) por GSSAPI para una comunicación segura entre el cliente y el servidor. Las protecciones típicas que garantiza la encriptación de GSSAPI incluyen la confidencialidad (secreto) y la integridad (autenticidad) [ 4 ] . GSSAPI también puede proporcionar garantías locales sobre la identidad del usuario o host remoto.

El GSSAPI describe aproximadamente 45 llamadas a procedimientos. Entre las más importantes se incluyen:

GSS_Adquirir_cred
Obtiene la prueba de identidad del usuario, a menudo una clave criptográfica secreta.
Nombre de importación de GSS
Convierte un nombre de usuario o nombre de host en un formato que identifica una entidad de seguridad.
GSS_Init_sec_context
Genera un token de cliente para enviar al servidor, generalmente un desafío.
GSS_Accept_sec_context
Procesa un token de GSS_Init_sec_context y puede generar un token de respuesta para devolver.
GSS_Wrap
Convierte los datos de la aplicación en un token de mensaje seguro (normalmente cifrado).
GSS_Unwrap
Convierte un token de mensaje seguro de nuevo en datos de la aplicación.

La GSSAPI está estandarizada para el lenguaje C (RFC 2744). Java implementa la GSSAPI [ 5 ] como JGSS, [ 6 ] la Interfaz de Programación de Aplicaciones de Servicios de Seguridad Genéricos de Java. [ 7 ]

Algunas limitaciones [ 8 ] de GSSAPI son:

  1. estandarizar únicamente la autenticación , y no también la autorización ;
  2. suponiendo una arquitectura cliente-servidor .

Anticipándose a nuevos mecanismos de seguridad, la API 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.

Disponibilidad

Varios lenguajes implementan la GSSAPI. Java proporciona estas características en su paquete de biblioteca estándarorg.ietf.jgss.* . [ 9 ]

Relación con Kerberos

La implementación dominante del mecanismo GSSAPI en uso es Kerberos . A diferencia de GSSAPI, la API de Kerberos no ha sido estandarizada y varias implementaciones existentes utilizan API incompatibles. GSSAPI permite que las implementaciones de Kerberos sean compatibles en cuanto a API. [ 10 ]

Conceptos clave

Nombre
Una cadena binaria que identifica una entidad de seguridad (es decir, un usuario o un programa de servicio); consulte control de acceso e identidad . Por ejemplo, Kerberos utiliza nombres como user@REALM para los usuarios y service/hostname@REALM para los programas.
Cartas credenciales
Información que acredita una identidad; utilizada por una entidad para actuar como el 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. Los mecanismos conocidos incluyen Kerberos , NTLM , Entorno de Computación Distribuida (DCE), SESAME, SPKM y LIPKEY.
Iniciador/aceptor
El interlocutor que envía el primer token es el iniciador; el otro es el receptor. Generalmente, el programa cliente es el iniciador, mientras que el servidor es el receptor.

Historia

  • Julio de 1991: El Grupo de Trabajo sobre Tecnología de Autenticación Común (CAT) del IETF se reúne en Atlanta, liderado por John Linn.
  • Septiembre de 1993: GSSAPI versión 1 (RFC 1508, RFC 1509)
  • Mayo de 1995: Se lanza Windows NT 3.51, que 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, que 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 relacionadas con CAT.
  • Mayo de 2006: Se estandariza el uso de GSSAPI en Secure Shell (RFC 4462).

Véase también

Referencias

  1. "Introducción básica a GSSAPI — Documentación de Python-GSSAPI 1.2.2" . pythonhosted.org . Consultado el 8 de mayo de 2026 .
  2. "Capítulo 1 La API GSS: una descripción general (Guía de programación de la API GSS)" . docs.oracle.com . Consultado el 8 de mayo de 2026 .
  3. "Autenticación GSSAPI" . docs.ssh.com . Consultado el 8 de mayo de 2026 .
  4. "Introducción básica a GSSAPI — Documentación de Python-GSSAPI 1.2.2" . pythonhosted.org . Consultado el 8 de mayo de 2026 .
  5. "JSR-000072 Especificación de la API de servicios de seguridad genéricos 0.1" . 15 de junio de 2001. Consultado el 7 de octubre de 2015 .
  6. 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. Consultado el 07-10-2015 . JGSS es la implementación en JAVA de la API GSSAPI.
  7. 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. Consultado el 07/10/2015 . Interfaz de programación de aplicaciones de servicios de seguridad genéricos de Java (JGSS) API para acceso uniforme a servicios de seguridad sobre una variedad de mecanismos de seguridad subyacentes, incluido Kerberos, que son componentes básicos para el inicio de sesión único y el cifrado de datos.
  8. "Limitaciones de GSS-API - Guía del desarrollador para la seguridad de Oracle® Solaris 11" . docs.oracle.com . Consultado el 8 de mayo de 2026 .
  9. "org.ietf.jgss (Java SE 25 y JDK 25)" . docs.oracle.com . Oracle Corporation . Consultado el 10 de octubre de 2025 .
  10. "Desarrollo con GSSAPI — Documentación de MIT Kerberos" . web.mit.edu . Consultado el 8 de mayo de 2026 .
  • RFC 2743 La API del Servicio de Seguridad Genérico, versión 2, actualización 1 
  • RFC 2744 La API del 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 El mecanismo simple de API GSS de clave pública (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 de GSS-API — Sun Solaris 9" . Oracle Corporation .
  • Oracle Corporation (2020). "Desarrollo de aplicaciones que utilizan GSS-API: Oracle Solaris 11.4, Guía de seguridad para desarrolladores" .