rfc1508.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,393 行 · 第 1/5 页
TXT
1,393 行
remaining lifetime, suitable usage modes, and supported
mechanism types.
Linn [Page 20]
RFC 1508 Generic Security Interface September 1993
o GSS_NO_CRED indicates that no information could be returned
about the referenced credentials, either because the input
cred_handle was invalid or because the caller lacks
authorization to access the referenced credentials.
o GSS_FAILURE indicates that the release operation failed for
reasons unspecified at the GSS-API level.
The GSS_Inquire_cred() call is defined primarily for the use of
those callers which make use of default credentials rather than
acquiring credentials explicitly with GSS_Acquire_cred(). It enables
callers to determine a credential structure's associated principal
name, remaining validity period, usability for security context
initiation and/or acceptance, and supported mechanisms.
2.2. Context-level calls
This group of calls is devoted to the establishment and management of
security contexts between peers. A context's initiator calls
GSS_Init_sec_context(), resulting in generation of a token which the
caller passes to the target. At the target, that token is passed to
GSS_Accept_sec_context(). Depending on the underlying mech_type and
specified options, additional token exchanges may be performed in the
course of context establishment; such exchanges are accommodated by
GSS_CONTINUE_NEEDED status returns from GSS_Init_sec_context() and
GSS_Accept_sec_context(). Either party to an established context may
invoke GSS_Delete_sec_context() to flush context information when a
context is no longer required. GSS_Process_context_token() is used
to process received tokens carrying context-level control
information. GSS_Context_time() allows a caller to determine the
length of time for which an established context will remain valid.
2.2.1. GSS_Init_sec_context call
Inputs:
o claimant_cred_handle OCTET STRING, -NULL specifies "use
default"
o input_context_handle INTEGER, -0 specifies "none assigned
yet"
o targ_name INTERNAL NAME,
o mech_type OBJECT IDENTIFIER, -NULL parameter specifies "use
default"
o deleg_req_flag BOOLEAN,
Linn [Page 21]
RFC 1508 Generic Security Interface September 1993
o mutual_req_flag BOOLEAN,
o replay_det_req_flag BOOLEAN,
o sequence_req_flag BOOLEAN,
o lifetime_req INTEGER,-0 specifies default lifetime
o chan_bindings OCTET STRING,
o input_token OCTET STRING-NULL or token received from target
Outputs:
o major_status INTEGER,
o minor_status INTEGER,
o output_context_handle INTEGER,
o mech_type OBJECT IDENTIFIER, -actual mechanism always
indicated, never NULL
o output_token OCTET STRING, -NULL or token to pass to context
target
o deleg_state BOOLEAN,
o mutual_state BOOLEAN,
o replay_det_state BOOLEAN,
o sequence_state BOOLEAN,
o conf_avail BOOLEAN,
o integ_avail BOOLEAN,
o lifetime_rec INTEGER - in seconds, or reserved value for
INDEFINITE
This call may block pending network interactions for those mech_types
in which an authentication server or other network entity must be
consulted on behalf of a context initiator in order to generate an
output_token suitable for presentation to a specified target.
Return major_status codes:
Linn [Page 22]
RFC 1508 Generic Security Interface September 1993
o GSS_COMPLETE indicates that context-level information was
successfully initialized, and that the returned output_token will
provide sufficient information for the target to perform per-
message processing on the newly-established context.
o GSS_CONTINUE_NEEDED indicates that control information in the
returned output_token must be sent to the target, and that a reply
must be received and passed as the input_token argument to a
continuation call to GSS_Init_sec_context(), before per-message
processing can be performed in conjunction with this context.
o GSS_DEFECTIVE_TOKEN indicates that consistency checks performed on
the input_token failed, preventing further processing from being
performed based on that token.
o GSS_DEFECTIVE_CREDENTIAL indicates that consistency checks
performed on the credential structure referenced by
claimant_cred_handle failed, preventing further processing from
being performed using that credential structure.
o GSS_BAD_SIG indicates that the received input_token contains an
incorrect signature, so context setup cannot be accomplished.
o GSS_NO_CRED indicates that no context was established, either
because the input cred_handle was invalid, because the referenced
credentials are valid for context acceptor use only, or because
the caller lacks authorization to access the referenced
credentials.
o GSS_CREDENTIALS_EXPIRED indicates that the credentials provided
through the input claimant_cred_handle argument are no longer
valid, so context establishment cannot be completed.
o GSS_BAD_BINDINGS indicates that a mismatch between the caller-
provided chan_bindings and those extracted from the input_token
was detected, signifying a security-relevant event and preventing
context establishment. (This result will be returned by
GSS_Init_sec_context only for contexts where mutual_state is
TRUE.)
o GSS_NO_CONTEXT indicates that no valid context was recognized for
the input context_handle provided; this major status will be
returned only for successor calls following GSS_CONTINUE_NEEDED
status returns.
o GSS_BAD_NAMETYPE indicates that the provided targ_name is of a
type uninterpretable or unsupported by the supporting GSS-API
implementation, so context establishment cannot be completed.
Linn [Page 23]
RFC 1508 Generic Security Interface September 1993
o GSS_BAD_NAME indicates that the provided targ_name is inconsistent
in terms of internally-incorporated type specifier information, so
context establishment cannot be accomplished.
o GSS_FAILURE indicates that context setup could not be accomplished
for reasons unspecified at the GSS-API level, and that no
interface-defined recovery action is available.
This routine is used by a context initiator, and ordinarily emits one
(or, for the case of a multi-step exchange, more than one)
output_token suitable for use by the target within the selected
mech_type's protocol. Using information in the credentials structure
referenced by claimant_cred_handle, GSS_Init_sec_context()
initializes the data structures required to establish a security
context with target targ_name. The claimant_cred_handle must
correspond to the same valid credentials structure on the initial
call to GSS_Init_sec_context() and on any successor calls resulting
from GSS_CONTINUE_NEEDED status returns; different protocol sequences
modeled by the GSS_CONTINUE_NEEDED mechanism will require access to
credentials at different points in the context establishment
sequence.
The input_context_handle argument is 0, specifying "not yet
assigned", on the first GSS_Init_sec_context() call relating to a
given context. That call returns an output_context_handle for future
references to this context. When continuation attempts to
GSS_Init_sec_context() are needed to perform context establishment,
the previously-returned non-zero handle value is entered into the
input_context_handle argument and will be echoed in the returned
output_context_handle argument. On such continuation attempts (and
only on continuation attempts) the input_token value is used, to
provide the token returned from the context's target.
The chan_bindings argument is used by the caller to provide
information binding the security context to security-related
characteristics (e.g., addresses, cryptographic keys) of the
underlying communications channel. See Section 1.1.6 of this document
for more discussion of this argument's usage.
The input_token argument contains a message received from the target,
and is significant only on a call to GSS_Init_sec_context() which
follows a previous return indicating GSS_CONTINUE_NEEDED
major_status.
It is the caller's responsibility to establish a communications path
to the target, and to transmit any returned output_token (independent
of the accompanying returned major_status value) to the target over
that path. The output_token can, however, be transmitted along with
Linn [Page 24]
RFC 1508 Generic Security Interface September 1993
the first application-provided input message to be processed by
GSS_Sign() or GSS_Seal() in conjunction with a successfully-
established context.
The initiator may request various context-level functions through
input flags: the deleg_req_flag requests delegation of access rights,
the mutual_req_flag requests mutual authentication, the
replay_det_req_flag requests that replay detection features be
applied to messages transferred on the established context, and the
sequence_req_flag requests that sequencing be enforced. (See Section
1.2.3 for more information on replay detection and sequencing
features.)
Not all of the optionally-requestable features will be available in
all underlying mech_types; the corresponding return state values
(deleg_state, mutual_state, replay_det_state, sequence_state)
indicate, as a function of mech_type processing capabilities and
initiator-provided input flags, the set of features which will be
active on the context. These state indicators' values are undefined
unless the routine's major_status indicates COMPLETE. Failure to
provide the precise set of features requested by the caller does not
cause context establishment to fail; it is the caller's prerogative
to delete the context if the feature set provided is unsuitable for
the caller's use. The returned mech_type value indicates the
specific mechanism employed on the context, and will never indicate
the value for "default".
The conf_avail return value indicates whether the context supports
per-message confidentiality services, and so informs the caller
whether or not a request for encryption through the conf_req_flag
input to GSS_Seal() can be honored. In similar fashion, the
integ_avail return value indicates whether per-message integrity
services are available (through either GSS_Sign() or GSS_Seal()) on
the established context.
The lifetime_req input specifies a desired upper bound for the
lifetime of the context to be established, with a value of 0 used to
request a default lifetime. The lifetime_rec return value indicates
the length of time for which the context will be valid, expressed as
an offset from the present; depending on mechanism capabilities,
credential lifetimes, and local policy, it may not correspond to the
value requested in lifetime_req. If no constraints on context
lifetime are imposed, this may be indicated by return
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?