[要約] RFC 5587は、拡張された汎用セキュリティサービスメカニズムの問い合わせAPIに関する仕様です。このRFCの目的は、セキュリティサービスの問い合わせに関する一般的なインターフェースを提供することです。

Network Working Group                                        N. Williams
Request for Comments: 5587                                           Sun
Category: Standards Track                                      July 2009
        

Extended Generic Security Service Mechanism Inquiry APIs

拡張ジェネリックセキュリティサービスメカニズム照会API

Abstract

概要

This document introduces new application programming interfaces (APIs) to the Generic Security Services API (GSS-API) for extended mechanism attribute inquiry. These interfaces are primarily intended to reduce instances of hardcoding of mechanism identifiers in GSS applications.

このドキュメントでは、新しいアプリケーションプログラミングインターフェイス(API)を一般的なセキュリティサービスAPI(GSS-API)に紹介し、拡張メカニズム属性照会を紹介します。これらのインターフェイスは、主にGSSアプリケーションのメカニズム識別子のハードコードのインスタンスを減らすことを目的としています。

These interfaces include mechanism attributes and attribute sets, a function for inquiring the attributes of a mechanism, a function for indicating mechanisms that possess given attributes, and a function for displaying mechanism attributes.

これらのインターフェイスには、メカニズムの属性と属性セット、メカニズムの属性を調査するための関数、与えられた属性を所有するメカニズムを示す機能、およびメカニズム属性を表示する機能が含まれます。

Status of This Memo

本文書の位置付け

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

このドキュメントは、インターネットコミュニティのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。このプロトコルの標準化状態とステータスについては、「インターネット公式プロトコル標準」(STD 1)の現在のエディションを参照してください。このメモの配布は無制限です。

Copyright Notice

著作権表示

Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved.

Copyright(c)2009 IETF Trustおよび文書著者として特定された人。全著作権所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document.

このドキュメントは、BCP 78およびこのドキュメントの公開日(http://trustee.ietf.org/license-info)に有効なIETFドキュメントに関連するIETF Trustの法的規定の対象となります。この文書に関するあなたの権利と制限を説明するので、これらの文書を注意深く確認してください。

Table of Contents

目次

   1. Introduction ....................................................2
   2. Conventions Used in This Document ...............................2
   3. New GSS-API Interfaces ..........................................3
      3.1. Mechanism Attributes and Attribute Sets ....................3
      3.2. List of Known Mechanism Attributes .........................4
      3.3. Mechanism Attribute Sets of Existing Mechs .................6
      3.4. New GSS-API Function Interfaces ............................8
           3.4.1. Mechanism Attribute Criticality .....................8
           3.4.2. GSS_Indicate_mechs_by_attrs() .......................9
           3.4.3. GSS_Inquire_attrs_for_mech() .......................10
           3.4.4. GSS_Display_mech_attr() ............................10
           3.4.5. New Major Status Values ............................11
           3.4.6. C-Bindings .........................................11
   4. Requirements for Mechanism Designers ...........................13
   5. IANA Considerations ............................................13
   6. Security Considerations ........................................13
   7. References .....................................................13
      7.1. Normative References ......................................13
      7.2. Informative References ....................................14
Appendix A. Typedefs and C Bindings ..................................15
        
1. Introduction
1. はじめに

GSS-API [RFC2743] mechanisms have a number of properties that may be of interest to applications. The lack of APIs for inquiring about available mechanisms' properties has meant that many GSS-API applications must hardcode mechanism Object Identifiers (OIDs). Ongoing work may result in a variety of new GSS-API mechanisms. Applications should not have to hardcode their OIDs.

GSS-API [RFC2743]メカニズムには、アプリケーションにとって興味深い可能性のある多くの特性があります。利用可能なメカニズムのプロパティについて問い合わせるためのAPIの欠如は、多くのGSS-APIアプリケーションがハードコードメカニズムオブジェクト識別子(OID)をしなければならないことを意味します。継続的な作業により、さまざまな新しいGSS-APIメカニズムが生じる可能性があります。アプリケーションはOIDをハードコードする必要はありません。

For example, the Secure Shell version 2 (SSHv2) protocol [RFC4251] supports the use of GSS-API mechanisms for authentication [RFC4462] but explicitly prohibits the use of Simple and Protected GSS-API Negotiation (SPNEGO) [RFC4178]. Future mechanisms that negotiate mechanisms would have to be forbidden as well, but there is no way to implement applications that inquire what mechanisms are available and then programmatically exclude mechanisms "like SPNEGO".

たとえば、Secure Shellバージョン2(SSHV2)プロトコル[RFC4251]は、認証のためのGSS-APIメカニズムの使用をサポートしています[RFC4462]が、単純および保護されたGSS-API交渉(SPNEGO)[RFC4178]の使用を明示的に禁止しています。メカニズムを交渉する将来のメカニズムも禁止されなければなりませんが、利用可能なメカニズムを問い合わせて、「Spnegoのような」メカニズムをプログラム的に除外するアプリケーションを実装する方法はありません。

2. Conventions Used in This Document
2. このドキュメントで使用されている規則

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

「必須」、「そうしない」、「必須」、「必要」、「「しない」、「そうでない」、「そうではない」、「そうでない」、「推奨」、「5月」、および「オプション」は、[RFC2119]に記載されているように解釈される。

3. New GSS-API Interfaces
3. 新しいGSS-APIインターフェイス

We introduce a new concept -- that of mechanism attributes. By allowing applications to query the set of attributes associated with individual mechanisms and to find out which mechanisms support a given set of attributes, we allow applications to select mechanisms based on their attributes without having to hardcode mechanism OIDs.

メカニズム属性の新しい概念を紹介します。アプリケーションが個々のメカニズムに関連付けられた属性のセットを照会し、どのメカニズムが特定の属性をサポートするかを調べることを許可することにより、ハードコードメカニズムOIDを必要とせずに、アプリケーションが属性に基づいてメカニズムを選択できるようにします。

Section 3.1 describes the mechanism attributes concept. Sections 3.4.2, 3.4.3, and 3.4.4 describe three new interfaces that deal in mechanisms and attribute sets:

セクション3.1では、メカニズム属性の概念について説明します。セクション3.4.2、3.4.3、および3.4.4は、メカニズムと属性セットで扱う3つの新しいインターフェイスについて説明します。

o GSS_Indicate_mechs_by_attrs()

o gss_indicate_mechs_by_attrs()

o GSS_Inquire_attrs_for_mech()

o gss_inquire_attrs_for_mech()

o GSS_Display_mech_attr()

o gss_display_mech_attr()

3.1. Mechanism Attributes and Attribute Sets
3.1. メカニズム属性と属性セット

An abstraction for the features provided by mechanisms and pseudo-mechanisms is needed in order to facilitate the programmatic selection of mechanisms. Pseudo-mechanisms are mechanisms that make reference to other mechanisms in order to provide their services. For example, SPNEGO is a pseudo-mechanism, for without other mechanisms SPNEGO is useless.

メカニズムのプログラムの選択を促進するために、メカニズムと擬似機械によって提供される機能の抽象化が必要です。疑似メカニズムは、サービスを提供するために他のメカニズムを参照するメカニズムです。たとえば、Spnegoは擬似機械系であり、他のメカニズムがなければSpnegoは役に立たないからです。

Two data types are needed: one for individual mechanism attributes and one for mechanism attribute sets. To simplify the mechanism attribute interfaces, we reuse the 'OID' and 'OID set' data types and model individual mechanism attribute types as OIDs.

2つのデータ型が必要です。1つは個々のメカニズム属性とメカニズム属性セット用の属性用です。メカニズム属性インターフェイスを簡素化するために、「OID」と「OIDセット」データ型を再利用し、個々のメカニズム属性をOIDとしてモデル化します。

To this end, we define an open namespace of mechanism attributes and assign them arcs off of this OID:

この目的のために、メカニズム属性のオープンネームスペースを定義し、このoidからアークを割り当てます。

<1.3.6.1.5.5.13>

<1.3.6.1.5.5.13>

Each mechanism has a set of mechanism attributes that it supports as described in its specification.

各メカニズムには、その仕様で説明されているようにサポートする一連のメカニズム属性があります。

3.2. List of Known Mechanism Attributes
3.2. 既知のメカニズム属性のリスト
      +-------------------------+---------+-------------------------+
      | Mech Attr Name          | OID Arc | Arc Name                |
      +-------------------------+---------+-------------------------+
      | GSS_C_MA_MECH_CONCRETE  |     (1) | concrete-mech           |
      | GSS_C_MA_MECH_PSEUDO    |     (2) | pseudo-mech             |
      | GSS_C_MA_MECH_COMPOSITE |     (3) | composite-mech          |
      | GSS_C_MA_MECH_NEGO      |     (4) | mech-negotiation-mech   |
      | GSS_C_MA_MECH_GLUE      |     (5) | mech-glue               |
      | GSS_C_MA_NOT_MECH       |     (6) | not-mech                |
      | GSS_C_MA_DEPRECATED     |     (7) | mech-deprecated         |
      | GSS_C_MA_NOT_DFLT_MECH  |     (8) | mech-not-default        |
      | GSS_C_MA_ITOK_FRAMED    |     (9) | initial-is-framed       |
      | GSS_C_MA_AUTH_INIT      |    (10) | auth-init-princ         |
      | GSS_C_MA_AUTH_TARG      |    (11) | auth-targ-princ         |
      | GSS_C_MA_AUTH_INIT_INIT |    (12) | auth-init-princ-initial |
      | GSS_C_MA_AUTH_TARG_INIT |    (13) | auth-targ-princ-initial |
      | GSS_C_MA_AUTH_INIT_ANON |    (14) | auth-init-princ-anon    |
      | GSS_C_MA_AUTH_TARG_ANON |    (15) | auth-targ-princ-anon    |
      | GSS_C_MA_DELEG_CRED     |    (16) | deleg-cred              |
      | GSS_C_MA_INTEG_PROT     |    (17) | integ-prot              |
      | GSS_C_MA_CONF_PROT      |    (18) | conf-prot               |
      | GSS_C_MA_MIC            |    (19) | mic                     |
      | GSS_C_MA_WRAP           |    (20) | wrap                    |
      | GSS_C_MA_PROT_READY     |    (21) | prot-ready              |
      | GSS_C_MA_REPLAY_DET     |    (22) | replay-detection        |
      | GSS_C_MA_OOS_DET        |    (23) | oos-detection           |
      | GSS_C_MA_CBINDINGS      |    (24) | channel-bindings        |
      | GSS_C_MA_PFS            |    (25) | pfs                     |
      | GSS_C_MA_COMPRESS       |    (26) | compress                |
      | GSS_C_MA_CTX_TRANS      |    (27) | context-transfer        |
      | <reserved>              | (28...) |                         |
      +-------------------------+---------+-------------------------+
        

Table 1

表1

   +-------------------------+-----------------------------------------+
   | Mech Attr Name          | Purpose                                 |
   +-------------------------+-----------------------------------------+
   | GSS_C_MA_MECH_CONCRETE  | Indicates that a mech is neither a      |
   |                         | pseudo-mechanism nor a composite        |
   |                         | mechanism.                              |
   | GSS_C_MA_MECH_PSEUDO    | Indicates that a mech is a              |
   |                         | pseudo-mechanism.                       |
   | GSS_C_MA_MECH_COMPOSITE | Indicates that a mech is a composite of |
   |                         | other mechanisms.  This is reserved for |
   |                         | a specification of "stackable"          |
   |                         | pseudo-mechanisms.                      |
   | GSS_C_MA_MECH_NEGO      | Indicates that a mech negotiates other  |
   |                         | mechs (e.g., SPNEGO has this            |
   |                         | attribute).                             |
   | GSS_C_MA_MECH_GLUE      | Indicates that the OID is not for a     |
   |                         | mechanism but for the GSS-API itself.   |
   | GSS_C_MA_NOT_MECH       | Indicates that the OID is known, yet it |
   |                         | is also known not to be the OID of any  |
   |                         | GSS-API mechanism (or of the GSS-API    |
   |                         | itself).                                |
   | GSS_C_MA_DEPRECATED     | Indicates that a mech (or its OID) is   |
   |                         | deprecated and MUST NOT be used as a    |
   |                         | default mechanism.                      |
   | GSS_C_MA_NOT_DFLT_MECH  | Indicates that a mech (or its OID) MUST |
   |                         | NOT be used as a default mechanism.     |
   | GSS_C_MA_ITOK_FRAMED    | Indicates that the given mechanism's    |
   |                         | initial context tokens are properly     |
   |                         | framed as per Section 3.1 of [RFC2743]. |
   | GSS_C_MA_AUTH_INIT      | Indicates support for authentication of |
   |                         | initiator to acceptor.                  |
   | GSS_C_MA_AUTH_TARG      | Indicates support for authentication of |
   |                         | acceptor to initiator.                  |
   | GSS_C_MA_AUTH_INIT_INIT | Indicates support for "initial"         |
   |                         | authentication of initiator to          |
   |                         | acceptor.  "Initial authentication"     |
   |                         | refers to the use of passwords, or keys |
   |                         | stored on tokens, for authentication.   |
   |                         | Whether a mechanism supports initial    |
   |                         | authentication may depend on IETF       |
   |                         | consensus (see Security                 |
   |                         | Considerations).                        |
   | GSS_C_MA_AUTH_TARG_INIT | Indicates support for initial           |
   |                         | authentication of acceptor to           |
   |                         | initiator.                              |
   | GSS_C_MA_AUTH_INIT_ANON | Indicates support for                   |
   |                         | GSS_C_NT_ANONYMOUS as an initiator      |
   |                         | principal name.                         |
        
   | GSS_C_MA_AUTH_TARG_ANON | Indicates support for                   |
   |                         | GSS_C_NT_ANONYMOUS as a target          |
   |                         | principal name.                         |
   | GSS_C_MA_DELEG_CRED     | Indicates support for credential        |
   |                         | delegation.                             |
   | GSS_C_MA_INTEG_PROT     | Indicates support for per-message       |
   |                         | integrity protection.                   |
   | GSS_C_MA_CONF_PROT      | Indicates support for per-message       |
   |                         | confidentiality protection.             |
   | GSS_C_MA_MIC            | Indicates support for Message Integrity |
   |                         | Code (MIC) tokens.                      |
   | GSS_C_MA_WRAP           | Indicates support for WRAP tokens.      |
   | GSS_C_MA_PROT_READY     | Indicates support for per-message       |
   |                         | protection prior to full context        |
   |                         | establishment.                          |
   | GSS_C_MA_REPLAY_DET     | Indicates support for replay detection. |
   | GSS_C_MA_OOS_DET        | Indicates support for out-of-sequence   |
   |                         | detection.                              |
   | GSS_C_MA_CBINDINGS      | Indicates support for channel bindings. |
   | GSS_C_MA_PFS            | Indicates support for Perfect Forward   |
   |                         | Security.                               |
   | GSS_C_MA_COMPRESS       | Indicates support for compression of    |
   |                         | data inputs to GSS_Wrap().              |
   | GSS_C_MA_CTX_TRANS      | Indicates support for security context  |
   |                         | export/import.                          |
   +-------------------------+-----------------------------------------+
        

Table 2

表2

3.3. Mechanism Attribute Sets of Existing Mechs
3.3. 既存のメカのメカニズム属性セット

The Kerberos V mechanism [RFC1964] provides the following mechanism attributes:

Kerberos Vメカニズム[RFC1964]は、次のメカニズム属性を提供します。

o GSS_C_MA_MECH_CONCRETE

o GSS_C_MA_MECH_CONCRETE

o GSS_C_MA_ITOK_FRAMED

o gss_c_ma_itok_framed

o GSS_C_MA_AUTH_INIT

o gss_c_ma_auth_init

o GSS_C_MA_AUTH_TARG

o GSS_C_MA_AUTH_TARG

o GSS_C_MA_DELEG_CRED

o GSS_C_MA_DELEG_CRED

o GSS_C_MA_INTEG_PROT

o gss_c_ma_integ_prot

o GSS_C_MA_CONF_PROT o GSS_C_MA_MIC

o gss_c_ma_conf_prot o gss_c_ma_mic

o GSS_C_MA_WRAP

o GSS_C_MA_WRAP

o GSS_C_MA_PROT_READY

o gss_c_ma_prot_ready

o GSS_C_MA_REPLAY_DET

o GSS_C_MA_REPLAY_DET

o GSS_C_MA_OOS_DET

o GSS_C_MA_OOS_DET

o GSS_C_MA_CBINDINGS

o GSS_C_MA_CBINDINGS

o GSS_C_MA_CTX_TRANS (some implementations, using implementation-specific exported context token formats)

o GSS_C_MA_CTX_TRANS(実装固有のエクスポートコンテキストトークン形式を使用して、いくつかの実装)

The Kerberos V mechanism also has a deprecated OID that has the same mechanism attributes as above as well as GSS_C_MA_DEPRECATED.

Kerberos Vメカニズムには、上記と同じメカニズム属性を持つ脱落したOIDとGSS_C_MA_DEPRECATEDもあります。

The mechanism attributes of the Simple Public-Key GSS-API Mechanism (SPKM) [RFC2025] family of mechanisms will be provided in a separate document, as SPKM is currently being reviewed for possibly significant changes due to problems in its specifications.

SPKMは現在、その仕様の問題による重要な変化について現在レビューされているため、シンプルなパブリックキーGSS-APIメカニズム(SPKM)[RFC2025]ファミリーのメカニズムのメカニズム属性は、別のドキュメントで提供されます。

The Low Infrastructure Public Key (LIPKEY) mechanism [RFC2847] offers the following attributes:

低インフラストラクチャ公開キー(LIPKEY)メカニズム[RFC2847]は、次の属性を提供します。

o GSS_C_MA_MECH_CONCRETE

o GSS_C_MA_MECH_CONCRETE

o GSS_C_MA_ITOK_FRAMED

o gss_c_ma_itok_framed

o GSS_C_MA_AUTH_INIT_INIT

o gss_c_ma_auth_init_init

o GSS_C_MA_AUTH_TARG (from SPKM-3)

o gss_c_ma_auth_targ(spkm-3から)

o GSS_C_MA_AUTH_TARG_ANON (from SPKM-3)

o GSS_C_MA_AUTH_TARG_ANON(SPKM-3から)

o GSS_C_MA_INTEG_PROT

o gss_c_ma_integ_prot

o GSS_C_MA_CONF_PROT

o GSS_C_MA_CONF_PROT

o GSS_C_MA_REPLAY_DET

o GSS_C_MA_REPLAY_DET

o GSS_C_MA_OOS_DET

o GSS_C_MA_OOS_DET

o GSS_C_MA_CTX_TRANS (some implementations, using implementation-specific exported context token formats) (LIPKEY should also provide GSS_C_MA_CBINDINGS, but SPKM-3 requires clarifications on this point.)

o GSS_C_MA_CTX_TRANS(いくつかの実装、実装固有のエクスポートコンテキストトークン形式を使用)(LIPKEYもGSS_C_MA_CBINDINGSを提供する必要がありますが、SPKM-3にはこの点で明確化が必要です。)

The SPNEGO mechanism [RFC4178] provides the following attributes:

SPNEGOメカニズム[RFC4178]は、次の属性を提供します。

o GSS_C_MA_MECH_NEGO

o GSS_C_MA_MECH_NEGO

o GSS_C_MA_ITOK_FRAMED

o gss_c_ma_itok_framed

All other mechanisms' attributes will be described elsewhere.

他のすべてのメカニズムの属性は、他の場所で説明されます。

3.4. New GSS-API Function Interfaces
3.4. 新しいGSS-API関数インターフェイス

Several new interfaces are given by which, for example, GSS-API applications may determine what features are provided by a given mechanism and what mechanisms provide what features.

たとえば、GSS-APIアプリケーションにより、特定のメカニズムによって提供される機能と、どの機能がどの機能を提供するかを決定できるいくつかの新しいインターフェイスが与えられます。

These new interfaces are all OPTIONAL.

これらの新しいインターフェイスはすべてオプションです。

Applications should use GSS_Indicate_mechs_by_attrs() instead of GSS_Indicate_mechs() wherever possible.

アプリケーションは、可能な限りgss_indicate_mechs()の代わりにgss_indicate_mechs_by_attrs()を使用する必要があります。

Applications can use GSS_Indicate_mechs_by_attrs() to determine what, if any, mechanisms provide a given set of features.

アプリケーションは、gss_indicate_mechs_by_attrs()を使用して、メカニズムが特定の機能を提供するものを決定することができます。

GSS_Indicate_mechs_by_attrs() can also be used to indicate (as in GSS_Indicate_mechs()) the set of available mechanisms of each type (concrete, mechanism negotiation pseudo-mechanism, etc.).

gss_indicate_mechs_by_attrs()を使用して(gss_indicate_mechs())、各タイプの利用可能なメカニズムのセット(具体的、メカニズム交渉擬似メカニズムなど)を示すこともできます。

3.4.1. Mechanism Attribute Criticality
3.4.1. メカニズムは重要性に起因します

Mechanism attributes may be added at any time. Not only may attributes be added to the list of known mechanism attributes at any time, but the set of mechanism attributes supported by a mechanism can be changed at any time.

メカニズム属性はいつでも追加される場合があります。属性をいつでも既知のメカニズム属性のリストに追加することができるだけでなく、メカニズムによってサポートされるメカニズムのセット属性をいつでも変更できます。

For example, new attributes might be added to reflect whether a mechanism's initiator must contact an online infrastructure and/or whether the acceptor must do so. In this example, the Kerberos V mechanism would gain a new attribute even though the mechanism itself is not modified.

たとえば、メカニズムのイニシエーターがオンラインインフラストラクチャに連絡する必要があるかどうか、および/またはアクセプターがそうする必要があるかどうかを反映するために、新しい属性を追加する場合があります。この例では、メカニズム自体が変更されていない場合でも、Kerberos Vメカニズムは新しい属性を獲得します。

Applications making use of attributes not defined herein would then have no way of knowing whether a GSS-API implementation and its mechanisms know about new mechanism attributes. To address this problem, GSS_Indicate_mechs_by_attrs() and GSS_Inquire_attrs_for_mech() support a notion of critical mechanism attributes. Applications can search for mechanisms that understand mechanism attributes that are critical to the application, and the application may ask what mechanism attributes are understood by a given mechanism.

ここで定義されていない属性を使用するアプリケーションは、GSS-APIの実装とそのメカニズムが新しいメカニズム属性について知っているかどうかを知る方法がありません。この問題に対処するために、gss_indicate_mechs_by_attrs()およびgss_inquire_attrs_for_mech()重要なメカニズム属性の概念をサポートします。アプリケーションは、アプリケーションに重要なメカニズム属性を理解するメカニズムを検索でき、アプリケーションは特定のメカニズムによってどのメカニズム属性が理解されるかを尋ねることができます。

3.4.2. GSS_Indicate_mechs_by_attrs()
3.4.2. gss_indicate_mechs_by_attrs()

Inputs:

入力:

o desired_mech_attrs SET OF OBJECT IDENTIFIER -- set of GSS_C_MA_* OIDs that the mechanisms indicated in the mechs output parameter MUST offer.

o Object識別子のSetired_mech_attrsセット-Mechs出力パラメーターに示されているメカニズムが提供する必要があるGSS_C_MA_* OIDSのセット。

o except_mech_attrs SET OF OBJECT IDENTIFIER -- set of GSS_C_MA_* OIDs that the mechanisms indicated in the mechs output parameter MUST NOT offer.

o Object Identifierのセット - Mechs出力パラメーターに示されているメカニズムが提供してはならないGSS_C_MA_* OIDのセット。

o critical_mech_attrs SET OF OBJECT IDENTIFIER -- set of GSS_C_MA_* OIDs that the mechanisms indicated in the mechs output parameter MUST understand (i.e., mechs must know whether critical attributes are or are not supported).

o crital_mech_attrsオブジェクト識別子のセット-Mechs出力パラメーターに示されているメカニズムが理解する必要があるGSS_C_MA_* OIDSのセット(つまり、MECHSは重要な属性がサポートされているか、サポートされていないかを知る必要があります)。

Outputs:

出力:

o major_status INTEGER

o Major_status整数

o minor_status INTEGER

o minor_status整数

o mechs SET OF OBJECT IDENTIFIER -- set of mechanisms that support the given desired_mech_attrs but not the except_mech_attrs, and all of which understand the given critical_mech_attrs (the caller must release this output with GSS_Release_oid_set()).

o Object IdentifierのMechsセット - 指定された希望の_mech_attrsをサポートするメカニズムのセットではなく、除外ではなく、すべてが指定された批判的_mech_attrsを理解している(発信者はgss_release_oid_set()でこの出力をリリースする必要があります。

Return major_status codes:

Major_statusコードを返す:

o GSS_S_COMPLETE indicates success; the output mechs parameter MAY be the empty set (GSS_C_NO_OID_SET).

o GSS_S_COMPLETEは成功を示します。出力Mechsパラメーターは、空のセット(gss_c_no_oid_set)である場合があります。

o GSS_S_FAILURE indicates that the request failed for some other reason.

o GSS_S_FAILUREは、他の理由でリクエストが失敗したことを示しています。

GSS_Indicate_mechs_by_attrs() returns the set of OIDs corresponding to mechanisms that offer at least the desired_mech_attrs but none of the except_mech_attrs, and that understand all of the attributes listed in critical_mech_attrs.

gss_indicate_mechs_by_attrs()は、少なくとも希望の_mech_attrsを提供するメカニズムに対応するoidsのセットを返しますが、除外を除く、crittal_mech_attrsにリストされているすべての属性を理解します。

When all three sets of OID input parameters are the empty set, this function acts as a version of GSS_indicate_mechs() that outputs the set of all supported mechanisms.

OID入力パラメーターの3つのセットすべてが空のセットである場合、この関数は、サポートされているすべてのメカニズムのセットを出力するGSS_INDICEED_MECHS()のバージョンとして機能します。

3.4.3. GSS_Inquire_attrs_for_mech()
3.4.3. gss_inquire_attrs_for_mech()

Inputs:

入力:

o mech OBJECT IDENTIFIER -- mechanism OID

o MECHオブジェクト識別子 - メカニズムOID

Outputs:

出力:

o major_status INTEGER

o Major_status整数

o minor_status INTEGER

o minor_status整数

o mech_attrs SET OF OBJECT IDENTIFIER -- set of mech_attrs OIDs (GSS_C_MA_*) supported by the mechanism (the caller must release this output with GSS_Release_oid_set()).

o MECH_ATTRSオブジェクト識別子のセット - メカニズムによってサポートされるMECH_ATTRS OIDS(GSS_C_MA_*のセット)(発信者はGSS_RELEASE_OID_SET()でこの出力をリリースする必要があります)。

o known_mech_attrs SET OF OBJECT IDENTIFIER -- set of mech_attrs OIDs known to the mechanism implementation (the caller must release this output with GSS_Release_oid_set()).

o Obsient_mech_attrsオブジェクト識別子のセット-Mech_attrs OIDのセットメカニズムの実装に既知のセット(発信者は、gss_release_oid_set()でこの出力をリリースする必要があります)。

Return major_status codes:

Major_statusコードを返す:

o GSS_S_COMPLETE indicates success; the output mech_attrs parameter MAY be the empty set (GSS_C_NO_OID_SET).

o GSS_S_COMPLETEは成功を示します。出力mech_attrsパラメーターは、空のセット(gss_c_no_oid_set)である場合があります。

o GSS_S_BAD_MECH indicates that the mechanism named by the mech parameter does not exist or that the mech is GSS_C_NO_OID and no default mechanism could be determined.

o GSS_S_BAD_MECHは、MECHパラメーターによって指定されたメカニズムが存在しないこと、またはMECHがGSS_C_NO_OIDであり、デフォルトメカニズムが決定できないことを示しています。

o GSS_S_FAILURE indicates that the request failed for some other reason.

o GSS_S_FAILUREは、他の理由でリクエストが失敗したことを示しています。

GSS_Inquire_attrs_for_mech() indicates the set of mechanism attributes supported by a given mechanism.

GSS_INQUIRE_ATTRS_FOR_MECH()は、特定のメカニズムによってサポートされるメカニズム属性のセットを示します。

3.4.4. GSS_Display_mech_attr()
3.4.4. gss_display_mech_attr()

Inputs:

入力:

o mech_attr OBJECT IDENTIFIER -- mechanism attribute OID

o mech_attrオブジェクト識別子 - メカニズム属性oid

Outputs:

出力:

o major_status INTEGER

o Major_status整数

o minor_status INTEGER o name OCTET STRING, -- name of mechanism attribute (e.g., GSS_C_MA_*).

o minor_status integer o name octet string、 - メカニズム属性の名前(例:gss_c_ma_*)。

o short_desc OCTET STRING, -- a short description of the mechanism attribute (the caller must release this output with GSS_Release_buffer()).

o short_desc occetet string、 - メカニズム属性の簡単な説明(発信者はgss_release_buffer()でこの出力をリリースする必要があります)。

o long_desc OCTET STRING -- a longer description of the mechanism attribute (the caller must release this output with GSS_Release_buffer()).

o Long_desc Octet String-メカニズム属性の長い説明(発信者はgss_release_buffer()でこの出力をリリースする必要があります)。

Return major_status codes:

Major_statusコードを返す:

o GSS_S_COMPLETE indicates success.

o GSS_S_COMPLETEは成功を示します。

o GSS_S_BAD_MECH_ATTR indicates that the mechanism attribute referenced by the mech_attr parameter is unknown to the implementation.

o GSS_S_BAD_MECH_ATTRは、MECH_ATTRパラメーターによって参照されるメカニズム属性が実装に不明であることを示します。

o GSS_S_FAILURE indicates that the request failed for some other reason.

o GSS_S_FAILUREは、他の理由でリクエストが失敗したことを示しています。

This function can be used to obtain human-readable descriptions of GSS-API mechanism attributes.

この関数は、GSS-APIメカニズム属性の人間が読みやすい説明を取得するために使用できます。

3.4.5. New Major Status Values
3.4.5. 新しい主要なステータス値

A single, new, major status code is added for GSS_Display_mech_attr():

gss_display_mech_attr()には、1つの新しい主要なステータスコードが追加されます。

o GSS_S_BAD_MECH_ATTR,

o GSS_S_BAD_MECH_ATTR、

roughly corresponding to GSS_S_BAD_MECH but applicable to mechanism attribute OIDs rather than to mechanism OIDs.

GSS_S_BAD_MECHにほぼ対応していますが、メカニズムOIDSではなくOIDSに属するメカニズムに適用できます。

For the C-bindings of the GSS-API [RFC2744], GSS_S_BAD_MECH_ATTR shall have a routine error number of 19 (this is shifted to the left by GSS_C_ROUTINE_ERROR_OFFSET).

GSS-API [RFC2744]のCビンディングの場合、GSS_S_BAD_MECH_ATTRのルーチンエラー番号は19の日常的なエラー番号を持つものとします(これはGSS_C_Routine_Error_Offsetによって左にシフトされます)。

3.4.6. C-Bindings
3.4.6. Cビンディング

Note that there is a bug in the C bindings of the GSS-APIv2u1 [RFC2744] in that the C 'const' attribute is applied to types that are pointer typedefs. This is a bug because it declares that the pointer argument is 'const' rather than that the object pointed by it is const. To avoid this error, we hereby define new typedefs, which include const properly:

c 'const'属性がポインターtypedefsであるタイプに適用されるという点で、GSS-APIV2U1 [RFC2744]のCバインディングにバグがあることに注意してください。これはバグです。なぜなら、ポインター引数は、それが指し示されているオブジェクトがconstであることではなく、「const」であると宣言するためです。このエラーを回避するために、constを適切に含む新しいtypedefsをここに定義します。

      typedef const gss_buffer_desc * gss_const_buffer_t;
      typedef const struct gss_channel_bindings_struct *
         gss_const_channel_bindings_t;
      typedef const <platform-specific> gss_const_ctx_id_t;
      typedef const <platform-specific> gss_const_cred_id_t;
      typedef const <platform-specific> gss_const_name_t;
      typedef const gss_OID_desc * gss_const_OID;
      typedef const gss_OID_set_desc * gss_const_OID_set;
        

Figure 1: const typedefs

図1:const typedefs

Note that only gss_const_OID and gss_const_OID_set are used below. We include the other const typedefs for convenience since the C bindings of the GSS-API do use const with pointer typedefs when it should often instead use the above typedefs instead.

GSS_CONST_OIDとGSS_CONST_OID_SETのみを以下で使用することに注意してください。GSS-APIのcバインディングは、代わりに上記のtypedefsを使用する必要がある場合にPointer typedefを使用してconstを使用するため、便利な他のconst typedefsを含めます。

      #define GSS_S_BAD_MECH_ATTR (19ul << GSS_C_ROUTINE_ERROR_OFFSET)
        

OM_uint32 gss_indicate_mechs_by_attrs( OM_uint32 *minor_status, gss_const_OID_set desired_mech_attrs, gss_const_OID_set except_mech_attrs, gss_const_OID_set critical_mech_attrs, gss_OID_set *mechs);

om_uint32 gss_indicate_mechs_by_attrs(om_uint32 *minor_status、gss_const_oid_set desired_mech_attrs、gss_const_oid_set除く

OM_uint32 gss_inquire_attrs_for_mech( OM_uint32 *minor_status, gss_const_OID mech, gss_OID_set *mech_attrs, gss_OID_set *known_mech_attrs);

OM_UINT32 GSS_INQUIRE_ATTRS_FOR_MECH(OM_UINT32 *MINTER_STATUS、GSS_CONST_OID MECH、GSS_OID_SET *MECH_ATTRS、GSS_OID_SET *necond_mech_attrs);

OM_uint32 gss_display_mech_attr( OM_uint32 *minor_status, gss_const_OID mech_attr, gss_buffer_t name, gss_buffer_t short_desc, gss_buffer_t long_desc);

OM_UINT32 GSS_DISPLAY_MECH_ATTR(OM_UINT32 *MINTER_STATUS、GSS_CONST_OID MECH_ATTR、GSS_BUFFER_T NAME、GSS_BUFFER_T SHORT_DESC、GSS_BUFFER_T LONG_DESC);

Figure 2: C bindings

図2:Cバインディング

Note that output buffers must be released via gss_release_buffer(). Output OID sets must be released via gss_release_oid_set().

出力バッファーはgss_release_buffer()を介してリリースする必要があることに注意してください。出力OIDセットは、gss_release_oid_set()を介してリリースする必要があります。

Please see Appendix A for a full set of typedef fragments defined in this document and the necessary code license.

このドキュメントで定義されているTypedefフラグメントの完全なセットと必要なコードライセンスについては、付録Aを参照してください。

4. Requirements for Mechanism Designers
4. メカニズムデザイナーの要件

All future GSS-API mechanism specifications MUST:

すべての将来のGSS-APIメカニズム仕様は次のことが必要です。

o list the set of GSS-API mechanism attributes associated with them.

o それらに関連付けられたGSS-APIメカニズム属性のセットをリストします。

5. IANA Considerations
5. IANAの考慮事項

The namespace of programming-language symbols with names beginning with GSS_C_MA_* is reserved for allocation by IETF Consensus. IANA allocated a base OID, as an arc of 1.3.6.1.5.5, for the set of GSS_C_MA_* described herein, and registered all of the GSS_C_MA_* values described in Section 3.2.

GSS_C_MA_*で始まる名前のプログラミング言語記号の名前空間は、IETFコンセンサスによる割り当てのために予約されています。IANAは、ここで説明するGSS_C_MA_*のセットに対して、1.3.6.1.5.5のアークとしてベースOIDを割り当て、セクション3.2で説明するすべてのGSS_C_MA_*値を登録しました。

6. Security Considerations
6. セキュリティに関する考慮事項

This document specifies extensions to a security-related API. It imposes new requirements on future GSS-API mechanisms, and the specifications of future protocols that use the GSS-API should make reference to this document where applicable. The ability to inquire about specific properties of mechanisms should improve security.

このドキュメントは、セキュリティ関連のAPIへの拡張機能を指定します。将来のGSS-APIメカニズムに新しい要件を課し、GSS-APIを使用する将来のプロトコルの仕様は、該当する場合はこのドキュメントを参照する必要があります。メカニズムの特定の特性について問い合わせる能力は、セキュリティを改善する必要があります。

The semantics of each mechanism attribute may include a security component.

各メカニズム属性のセマンティクスには、セキュリティコンポーネントが含まれる場合があります。

Application developers must understand that mechanism attributes may be added at any time -- both to the set of known mechanism attributes as well as to existing mechanisms' sets of supported mechanism attributes. Therefore, application developers using the APIs described herein must understand what mechanism attributes their applications depend critically on, and must use the mechanism attribute criticality features of these APIs.

アプリケーション開発者は、メカニズムの属性がいつでも追加される可能性があることを理解する必要があります。既知のメカニズム属性のセットと、既存のメカニズムのサポートされたメカニズム属性のセットの両方にも追加される可能性があることを理解する必要があります。したがって、本明細書に記載されているAPIを使用するアプリケーション開発者は、アプリケーションがどのようなメカニズムが批判的に依存しているかを理解する必要があり、これらのAPIのメカニズム属性の臨界機能を使用する必要があります。

7. References
7. 参考文献
7.1. Normative References
7.1. 引用文献

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119] Bradner、S。、「要件レベルを示すためにRFCで使用するためのキーワード」、BCP 14、RFC 2119、1997年3月。

[RFC2743] Linn, J., "Generic Security Service Application Program Interface Version 2, Update 1", RFC 2743, January 2000.

[RFC2743] Linn、J。、「Generic Security Service Application Program Interfaceバージョン2、Update 1」、RFC 2743、2000年1月。

[RFC2744] Wray, J., "Generic Security Service API Version 2 : C-bindings", RFC 2744, January 2000.

[RFC2744] Wray、J。、「ジェネリックセキュリティサービスAPIバージョン2:C-Bindings」、RFC 2744、2000年1月。

7.2. Informative References
7.2. 参考引用

[RFC1964] Linn, J., "The Kerberos Version 5 GSS-API Mechanism", RFC 1964, June 1996.

[RFC1964] Linn、J。、「Kerberosバージョン5 GSS-APIメカニズム」、RFC 1964、1996年6月。

[RFC2025] Adams, C., "The Simple Public-Key GSS-API Mechanism (SPKM)", RFC 2025, October 1996.

[RFC2025] Adams、C。、「シンプルなパブリックキーGSS-APIメカニズム(SPKM)」、RFC 2025、1996年10月。

[RFC2847] Eisler, M., "LIPKEY - A Low Infrastructure Public Key Mechanism Using SPKM", RFC 2847, June 2000.

[RFC2847]アイスラー、M。、「リプキー - SPKMを使用した低インフラストラクチャ公開キーメカニズム」、RFC 2847、2000年6月。

[RFC4178] Zhu, L., Leach, P., Jaganathan, K., and W. Ingersoll, "The Simple and Protected Generic Security Service Application Program Interface (GSS-API) Negotiation Mechanism", RFC 4178, October 2005.

[RFC4178] Zhu、L.、Leach、P.、Jaganathan、K。、およびW. Ingersoll、「シンプルで保護されたジェネリックセキュリティサービスアプリケーションプログラムインターフェイス(GSS-API)交渉メカニズム」、RFC 4178、2005年10月。

[RFC4251] Ylonen, T. and C. Lonvick, "The Secure Shell (SSH) Protocol Architecture", RFC 4251, January 2006.

[RFC4251] Ylonen、T。およびC. Lonvick、「The Secure Shell(SSH)プロトコルアーキテクチャ」、RFC 4251、2006年1月。

[RFC4462] Hutzelman, J., Salowey, J., Galbraith, J., and V. Welch, "Generic Security Service Application Program Interface (GSS-API) Authentication and Key Exchange for the Secure Shell (SSH) Protocol", RFC 4462, May 2006.

[RFC4462] Hutzelman、J.、Salowey、J.、Galbraith、J.、およびV. Welch、「ジェネリックセキュリティサービスアプリケーションプログラムインターフェイス(GSS-API)認証とセキュアシェル(SSH)プロトコルの主要な交換」、RFC4462、2006年5月。

Appendix A. Typedefs and C Bindings
付録A. typedefsおよびcバインディング

This appendix contains the full set of code fragments defined in this document.

この付録には、このドキュメントで定義されているコードフラグメントの完全なセットが含まれています。

Copyright (c) 2009 IETF Trust and the persons identified as authors of the code. All rights reserved.

Copyright(c)2009 IETF TrustおよびCodeの著者として特定された人。全著作権所有。

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

変更とバイナリ形式での再配布と使用は、変更を伴うまたは伴わない場合、次の条件が満たされている場合が許可されています。

- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

- ソースコードの再配布は、上記の著作権通知、この条件リスト、および次の免責事項を保持する必要があります。

- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

- バイナリ形式の再配布は、上記の著作権通知、この条件のリスト、および分布に提供されたドキュメントおよび/またはその他の資料の次の免責事項を再現する必要があります。

- Neither the name of Internet Society, IETF or IETF Trust, nor the names of specific contributors, may be used to endorse or promote products derived from this software without specific prior written permission.

- インターネット社会、IETFまたはIETFトラストの名前も、特定の貢献者の名前も、特定の事前の書面による許可なしにこのソフトウェアから派生した製品を支持または宣伝するために使用することはできません。

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

このソフトウェアは、制限された著作権所有者と貢献者によって提供されます。商品性と特定の目的に対する適合性の暗黙の保証は否認されます。いかなる場合でも、著作権所有者または貢献者は、直接的、間接的、偶発的、特別な、模範的、または結果的な損害(代替品またはサービスの調達を含むがこれらに限定されない、使用の損失、データ、または利益に対して責任を負いません。ただし、契約、厳格責任、または不法行為(過失などを含む)であろうと、このソフトウェアの使用から何らかの形で発生するかどうかにかかわらず、責任の理論に起因します。

   typedef const gss_buffer_desc * gss_const_buffer_t;
   typedef const struct gss_channel_bindings_struct *
      gss_const_channel_bindings_t;
   typedef const <platform-specific> gss_const_ctx_id_t;
   typedef const <platform-specific> gss_const_cred_id_t;
   typedef const <platform-specific> gss_const_name_t;
   typedef const gss_OID_desc * gss_const_OID;
   typedef const gss_OID_set_desc * gss_const_OID_set;
        
   #define GSS_S_BAD_MECH_ATTR (19ul << GSS_C_ROUTINE_ERROR_OFFSET)
        

OM_uint32 gss_indicate_mechs_by_attrs( OM_uint32 *minor_status, gss_const_OID_set desired_mech_attrs, gss_const_OID_set except_mech_attrs, gss_const_OID_set critical_mech_attrs, gss_OID_set *mechs);

om_uint32 gss_indicate_mechs_by_attrs(om_uint32 *minor_status、gss_const_oid_set desired_mech_attrs、gss_const_oid_set除く

OM_uint32 gss_inquire_attrs_for_mech( OM_uint32 *minor_status, gss_const_OID mech, gss_OID_set *mech_attrs, gss_OID_set *known_mech_attrs);

OM_UINT32 GSS_INQUIRE_ATTRS_FOR_MECH(OM_UINT32 *MINTER_STATUS、GSS_CONST_OID MECH、GSS_OID_SET *MECH_ATTRS、GSS_OID_SET *necond_mech_attrs);

OM_uint32 gss_display_mech_attr( OM_uint32 *minor_status, gss_const_OID mech_attr, gss_buffer_t name, gss_buffer_t short_desc, gss_buffer_t long_desc);

OM_UINT32 GSS_DISPLAY_MECH_ATTR(OM_UINT32 *MINTER_STATUS、GSS_CONST_OID MECH_ATTR、GSS_BUFFER_T NAME、GSS_BUFFER_T SHORT_DESC、GSS_BUFFER_T LONG_DESC);

Author's Address

著者の連絡先

Nicolas Williams Sun Microsystems 5300 Riata Trace Ct Austin, TX 78727 US

ニコラス・ウィリアムズサンマイクロシステムズ5300リアタトレースCTオースティン、テキサス78727 US

   EMail: Nicolas.Williams@sun.com