Lably
Skip to content

Generic Security Services Application Programming Interface

Application programming interface

  • 3 min read
  • 5 chapters

Related on Lably

Through Security, Library (computing) and Standardization

The GSSAPI is an IETF standard that addresses the problem of many similar but incompatible security services in use as of 2005.

Operation

The GSSAPI, by itself, does not provide any security. Instead, security-service vendors provide GSSAPI implementations - usually in the form of libraries installed with their security software. These libraries present a GSSAPI-compatible interface to application writers who can write their application to use only the vendor-independent GSSAPI. If the security implementation ever needs replacing, the application need not be rewritten.

The definitive feature of GSSAPI applications is the exchange of opaque messages (tokens) which hide the implementation detail from the higher-level application. The client and server sides of the application are written to convey the tokens given to them by their respective GSSAPI implementations. GSSAPI tokens can usually travel over an insecure network as the mechanisms provide inherent message security. After the exchange of some number of tokens, the GSSAPI implementations at both ends inform their local application that a security context is established.

Once a security context is established, sensitive application messages can be wrapped (encrypted) by the GSSAPI for secure communication between client and server. Typical protections guaranteed by GSSAPI wrapping include confidentiality (secrecy) and integrity (authenticity). The GSSAPI can also provide local guarantees about the identity of the remote user or remote host.

The GSSAPI describes about 45 procedure calls. Significant ones include:

GSS_Acquire_cred
Obtains the user's identity proof, often a secret cryptographic key
GSS_Import_name
Converts a username or hostname into a form that identifies a security entity
GSS_Init_sec_context
Generates a client token to send to the server, usually a challenge
GSS_Accept_sec_context
Processes a token from GSS_Init_sec_context and can generate a response token to return
GSS_Wrap
Converts application data into a secure message token (typically encrypted)
GSS_Unwrap
Converts a secure message token back into application data

The GSSAPI is standardized for the C (RFC 2744) language. Java implements the GSSAPI as JGSS, the Java Generic Security Services Application Program Interface.

Some limitations of GSSAPI are:

  1. standardizing only authentication, rather not authorization too;
  2. assuming a client–server architecture.

Anticipating new security mechanisms, the GSSAPI includes a negotiating pseudo mechanism, SPNEGO, that can discover and use new mechanisms not present when the original application was built.

Availability

Various languages implement the GSSAPI. Java provides these features in its standard library package org.ietf.jgss.*.

Sign in to keep reading

4 more chapters are free with a Lably account.

More in Computing and communication