| The information
below contains a brief description of the GSS-API standard
for network security and introduces the CyberSafe implementation
of this standard, known as the Application Security SDK.
GSS-API Standard
GSS-API stands for Generic Security Service
Application Program Interface. The GSS-API is a standard programming
interface that defines a set of generic functions that can
be used to secure distributed applications.
The GSS-API functions enable applications in a distributed
network environment to use the following security services
on the network:
- Authentication — The application
can verify the identity of a user or service. By using authentication,
a distributed application can be guaranteed it is talking
to its authentic counterpart (that is, it is not being spoofed
by an imposter). It is common for mutual-authentication
to be used, where the initiator of a conversation trusts
who the conversation acceptor is and the acceptor also trusts
the initiator.
- Integrity — The application can
detect message tampering or corruption when it receives
a message.
- Confidentiality — A message can
be encrypted to render it unintelligible to eavesdroppers
during transmission.
The GSS-API has two primary design goals fundamental to
its operation:
- Security mechanism independence
- Transport protocol independence
Because it is an open standard, the GSS-API has been designed
to be generic so that as security and network technologies
evolve, the API does not have to change.
The GSS-API supports a wide range of underlying security mechanisms
and technologies using the following architecture.

A Security Mechanism is a method of providing security
(such as Kerberos or public-key encryption). It is not only
the cryptographic technology used, but also the syntax and
semantics of the data that the technology employs. An application
secured using the GSS-API standard may use one or more Security
Mechanism's.
The GSS-API can be used in a broad range of network environments
(for example, TCP/IP, SNA, and DECnet). The standard was not
designed to provide a transport mechanism. Rather, the design
provides security over an arbitrary network transport. The
transport must be provided by the application. The communications
protocol can be an interprocess communications path or a series
of networks.

GSS-API functions return information to the application, which
then sends the information across the communications protocol
in use. The other side of the distributed application passes
the information to the GSS-API library.
For a developer securing an application using the GSS-API
standard, these design goals of mechanism and transport independence
provide a consistent interface that is independent of the
underlying hardware and software platform — a one-time
programming investment. The investment in modifications to
secure an application remains constant even as the technologies
evolve.
GSS-API Assumptions
The GSS-API standard makes the following assumptions:
- The application is distributed.
The GSS-API standard assumes that the application is a distributed
network application or divided into two parts using a peer-to-peer
or a initiator-acceptor relationship.
- The source code can be modified.
The GSS-API standard assumes that you can incorporate GSS-API
functions in the application source code.
- The application guarantees token delivery.
A token is an opaque data object returned by the GSS-API
that an application needs to communicate with its peer.
The GSS-API standard assumes that your application can deliver
tokens generated during context establishment and context
termination in the order in which they are generated.
- The application deallocates its data objects.
The GSS-API standard assumes that if an application allocated
a data object, it is responsible for deallocating it. If
a data object is returned by a GSS-API function, the application
must use the corresponding GSS-API function to release the
object, thereby deallocating it. Otherwise, there can be
a memory leak or memory fault in the application. Failure
to use the proper functions for deallocation may create
a situation where the security of the network may be compromised.
|