rfc1964.txt

来自「著名的RFC文档,其中有一些文档是已经翻译成中文的的.」· 文本 代码 · 共 1,124 行 · 第 1/4 页

TXT
1,124
字号
RFC 1964               Kerberos Version 5 GSS-API              June 1996   DES-MAC algorithm: A standard 64-bit DES-CBC MAC is computed on the   plaintext padded data per [FIPS-PUB-113], employing the context key   and a zero IV. The plaintext padded data is already assured to be an   integral multiple of 8 bytes; no additional padding is required or   applied in order to accomplish MAC calculation.  The result is an 8-   byte value, which is stored in the SGN_CKSUM field.  Support for this   lgorithm may not be present in all implementations.1.2.2.2. Sequence Number   Sequence number field: The 8 byte plaintext sequence number field is   formed from the sender's four-byte sequence number as follows.  If   the four bytes of the sender's sequence number are named s0, s1, s2   and s3 (from least to most significant), the plaintext sequence   number field is the 8 byte sequence: (s0, s1, s2, s3, di, di, di,   di), where 'di' is the direction-indicator (Hex 0 - sender is the   context initiator, Hex FF - sender is the context acceptor).   The field is then DES-CBC encrypted using the context key and an IV   formed from the first 8 bytes of the SEAL_CKSUM field.   After sending a GSS_GetMIC() or GSS_Wrap() token, the sender's   sequence numbers are incremented by one.1.2.2.3. Padding   Data padding: Before encryption and/or signature calculation,   plaintext data is padded to the next highest multiple of 8 bytes, by   appending between 1 and 8 bytes, the value of each such byte being   the total number of pad bytes.  For example, given data of length 20   bytes, four pad bytes will be appended, and each byte will contain   the hex value 04.  An 8-byte random confounder is prepended to the   data, and signatures are calculated over the resulting padded   plaintext.   After padding, the data is encrypted according to the algorithm   specified in the SEAL_ALG field.  For SEAL_ALG=DES (the only non-null   algorithm currently supported), the data is encrypted using DES-CBC,   with an IV of zero.  The key used is derived from the established   context key by XOR-ing the context key with the hexadecimal constant   f0f0f0f0f0f0f0f0.1.2.3. Context deletion token   The token emitted by GSS_Delete_sec_context() is based on the packet   format for tokens emitted by GSS_GetMIC().  The context-deletion   token has the following format:Linn                        Standards Track                    [Page 11]RFC 1964               Kerberos Version 5 GSS-API              June 1996   Byte no          Name           Description    0..1           TOK_ID          Identification field.                                   Tokens emitted by                                   GSS_Delete_sec_context() contain                                   the hex value 01 02 in this field.    2..3           SGN_ALG         Integrity algorithm indicator.                                   00 00 - DES MAC MD5                                   01 00 - MD2.5                                   02 00 - DES MAC    4..7           Filler          Contains ff ff ff ff    8..15          SND_SEQ         Sequence number field.    16..23         SGN_CKSUM       Checksum of "to-be-signed data",                                   calculated according to algorithm                                   specified in SGN_ALG field.   SGN_ALG and SND_SEQ will be calculated as for tokens emitted by   GSS_GetMIC().  The SGN_CKSUM will be calculated as for tokens emitted   by GSS_GetMIC(), except that the user-data component of the "to-be-   signed" data will be a zero-length string.2. Name Types and Object Identifiers   This section discusses the name types which may be passed as input to   the Kerberos V5 GSS-API mechanism's GSS_Import_name() call, and their   associated identifier values.  It defines interface elements in   support of portability, and assumes use of C language bindings per   RFC-1509.  In addition to specifying OID values for name type   identifiers, symbolic names are included and recommended to GSS-API   implementors in the interests of convenience to callers.  It is   understood that not all implementations of the Kerberos V5 GSS-API   mechanism need support all name types in this list, and that   additional name forms will likely be added to this list over time.   Further, the definitions of some or all name types may later migrate   to other, mechanism-independent, specifications. The occurrence of a   name type in this specification is specifically not intended to   suggest that the type may be supported only by an implementation of   the Kerberos V5 mechanism.   In particular, the occurrence of the   string "_KRB5_" in the symbolic name strings constitutes a means to   unambiguously register the name strings, avoiding collision with   other documents; it is not meant to limit the name types' usage or   applicability.   For purposes of clarification to GSS-API implementors, this section's   discussion of some name forms describes means through which those   forms can be supported with existing Kerberos technology.  These   discussions are not intended to preclude alternative implementation   strategies for support of the name forms within Kerberos mechanisms   or mechanisms based on other technologies.  To enhance applicationLinn                        Standards Track                    [Page 12]RFC 1964               Kerberos Version 5 GSS-API              June 1996   portability, implementors of mechanisms are encouraged to support   name forms as defined in this section, even if their mechanisms are   independent of Kerberos V5.2.1. Mandatory Name Forms   This section discusses name forms which are to be supported by all   conformant implementations of the Kerberos V5 GSS-API mechanism.2.1.1. Kerberos Principal Name Form   This name form shall be represented by the Object Identifier {iso(1)   member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)   krb5(2) krb5_name(1)}.  The recommended symbolic name for this type   is "GSS_KRB5_NT_PRINCIPAL_NAME".   This name type corresponds to the single-string representation of a   Kerberos name.  (Within the MIT Kerberos V5 implementation, such   names are parseable with the krb5_parse_name() function.)  The   elements included within this name representation are as follows,   proceeding from the beginning of the string:        (1) One or more principal name components; if more than one        principal name component is included, the components are        separated by `/`.  Arbitrary octets may be included within        principal name components, with the following constraints and        special considerations:           (1a) Any occurrence of the characters `@` or `/` within a           name component must be immediately preceded by the `\`           quoting character, to prevent interpretation as a component           or realm separator.           (1b) The ASCII newline, tab, backspace, and null characters           may occur directly within the component or may be           represented, respectively, by `\n`, `\t`, `\b`, or `\0`.           (1c) If the `\` quoting character occurs outside the contexts           described in (1a) and (1b) above, the following character is           interpreted literally.  As a special case, this allows the           doubled representation `\\` to represent a single occurrence           of the quoting character.           (1d) An occurrence of the `\` quoting character as the last           character of a component is illegal.Linn                        Standards Track                    [Page 13]RFC 1964               Kerberos Version 5 GSS-API              June 1996        (2) Optionally, a `@` character, signifying that a realm name        immediately follows. If no realm name element is included, the        local realm name is assumed.  The `/` , `:`, and null characters        may not occur within a realm name; the `@`, newline, tab, and        backspace characters may be included using the quoting        conventions described in (1a), (1b), and (1c) above.2.1.2. Host-Based Service Name Form   This name form has been incorporated at the mechanism-independent   GSS-API level as of GSS-API, Version 2.  This subsection retains the   Object Identifier and symbolic name assignments previously made at   the Kerberos V5 GSS-API mechanism level, and adopts the definition as   promoted to the mechanism-independent level.   This name form shall be represented by the Object Identifier {iso(1)   member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)   generic(1) service_name(4)}.  The previously recommended symbolic   name for this type is "GSS_KRB5_NT_HOSTBASED_SERVICE_NAME".  The   currently preferred symbolic name for this type is   "GSS_C_NT_HOSTBASED_SERVICE".   This name type is used to represent services associated with host   computers.  This name form is constructed using two elements,   "service" and "hostname", as follows:      service@hostname   When a reference to a name of this type is resolved, the "hostname"   is canonicalized by attempting a DNS lookup and using the fully-   qualified domain name which is returned, or by using the "hostname"   as provided if the DNS lookup fails.  The canonicalization operation   also maps the host's name into lower-case characters.   The "hostname" element may be omitted. If no "@" separator is   included, the entire name is interpreted as the service specifier,   with the "hostname" defaulted to the canonicalized name of the local   host.   Values for the "service" element will be registered with the IANA.2.1.3. Exported Name Object Form for Kerberos V5 Mechanism   Support for this name form is not required for GSS-V1   implementations, but will be required for use in conjunction with the   GSS_Export_name() call planned for GSS-API Version 2.  Use of this   name form will be signified by a "GSS-API Exported Name Object" OID   value which will be defined at the mechanism-independent level forLinn                        Standards Track                    [Page 14]RFC 1964               Kerberos Version 5 GSS-API              June 1996   GSS-API Version 2.   This name type represents a self-describing object, whose framing   structure will be defined at the mechanism-independent level for   GSS-API Version 2.  When generated by the Kerberos V5 mechanism, the   Mechanism OID within the exportable name shall be that of the   Kerberos V5 mechanism.  The name component within the exportable name   shall be a contiguous string with structure as defined for the   Kerberos Principal Name Form.   In order to achieve a distinguished encoding for comparison purposes,   the following additional constraints are imposed on the export   operation:        (1) all occurrences of the characters `@`,  `/`, and `\` within        principal components or realm names shall be quoted with an        immediately-preceding `\`.        (2) all occurrences of the null, backspace, tab, or newline        characters within principal components or realm names will be        represented, respectively, with `\0`, `\b`, `\t`, or `\n`.        (3) the `\` quoting character shall not be emitted within an        exported name except to accomodate cases (1) and (2).2.2. Optional Name Forms   This section discusses additional name forms which may optionally be   supported by implementations of the Kerberos V5 GSS-API mechanism.   It is recognized that some of the name forms cited here are derived   from UNIX(tm) operating system platforms; some listed forms may be   irrelevant to non-UNIX platforms, and definition of additional forms   corresponding to such platforms may also be appropriate.  It is also   recognized that OS-specific functions outside GSS-API are likely to   exist in order to perform translations among these forms, and that   GSS-API implementations supporting these forms may themselves be   layered atop such OS-specific functions.  Inclusion of this support   within GSS-API implementations is intended as a convenience to   applications.2.2.1. User Name Form   This name form shall be represented by the Object Identifier {iso(1)   member-body(2) United States(840) mit(113554) infosys(1) gssapi(2)   generic(1) user_name(1)}.  The recommended symbolic name for this   type is "GSS_KRB5_NT_USER_NAME".   This name type is used to indicate a named user on a local system.Linn                        Standards Track                    [Page 15]

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?