[要約] RFC 6339は、GSS-APIのためのコンテキストトークンのカプセル化/デカプセル化とOID比較関数に関する仕様です。このRFCの目的は、GSS-APIのセキュリティ機能を強化し、トークンの処理とOIDの比較を効率的に行うことです。

Internet Engineering Task Force (IETF)                      S. Josefsson
Request for Comments: 6339                                        SJD AB
Category: Standards Track                           L. Hornquist Astrand
ISSN: 2070-1721                                              Apple, Inc.
                                                             August 2011
        

Context Token Encapsulate/Decapsulate and OID Comparison Functions for the Generic Security Service Application Program Interface (GSS-API)

コンテキストトークンジェネリックセキュリティサービスアプリケーションプログラムインターフェイス(GSS-API)のコンテストカプセル化/脱カプセル化およびOID比較関数

Abstract

概要

This document describes three abstract Generic Security Service Application Program Interface (GSS-API) interfaces used to encapsulate/decapsulate context tokens and compare OIDs. This document also specifies C bindings for the abstract interfaces.

このドキュメントでは、コンテキストトークンをカプセル化/脱カプセル化してOIDを比較するために使用される3つの抽象的なセキュリティサービスアプリケーションプログラムインターフェイス(GSS-API)インターフェイスについて説明します。このドキュメントは、抽象インターフェイスのCバインディングも指定しています。

Status of This Memo

本文書の位置付け

This is an Internet Standards Track document.

これは、インターネット標準トラックドキュメントです。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.

このドキュメントは、インターネットエンジニアリングタスクフォース(IETF)の製品です。IETFコミュニティのコンセンサスを表しています。公開レビューを受けており、インターネットエンジニアリングステアリンググループ(IESG)からの出版が承認されています。インターネット標準の詳細については、RFC 5741のセクション2で入手できます。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6339.

このドキュメントの現在のステータス、任意のERRATA、およびそのフィードバックを提供する方法に関する情報は、http://www.rfc-editor.org/info/rfc6339で取得できます。

Copyright Notice

著作権表示

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

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

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

このドキュメントは、BCP 78およびIETFドキュメント(http://trustee.ietf.org/license-info)に関連するIETF Trustの法的規定の対象となります。この文書に関するあなたの権利と制限を説明するので、これらの文書を注意深く確認してください。このドキュメントから抽出されたコードコンポーネントには、セクション4.Eで説明されている法的規定のセクション4.Eで説明されており、単純化されたBSDライセンスで説明されているように保証なしで提供される簡略化されたBSDライセンステキストを含める必要があります。

Table of Contents

目次

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 2
   2.  Conventions Used in This Document . . . . . . . . . . . . . . . 2
   3.  GSS_Encapsulate_token Call  . . . . . . . . . . . . . . . . . . 3
     3.1.  gss_encapsulate_token . . . . . . . . . . . . . . . . . . . 3
   4.  GSS_Decapsulate_token Call  . . . . . . . . . . . . . . . . . . 4
     4.1.  gss_decapsulate_token . . . . . . . . . . . . . . . . . . . 5
   5.  GSS_OID_equal Call  . . . . . . . . . . . . . . . . . . . . . . 6
     5.1.  gss_oid_equal . . . . . . . . . . . . . . . . . . . . . . . 6
   6.  Test Vector . . . . . . . . . . . . . . . . . . . . . . . . . . 7
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 7
   8.  Security Considerations . . . . . . . . . . . . . . . . . . . . 7
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 7
     9.1.  Normative References  . . . . . . . . . . . . . . . . . . . 7
     9.2.  Informative Reference . . . . . . . . . . . . . . . . . . . 8
        
1. Introduction
1. はじめに

The Generic Security Service Application Program Interface (GSS-API) [RFC2743] is a framework that provides security services to applications using a variety of authentication mechanisms. There are widely implemented C bindings [RFC2744] for the abstract interface.

ジェネリックセキュリティサービスアプリケーションプログラムインターフェイス(GSS-API)[RFC2743]は、さまざまな認証メカニズムを使用してアプリケーションにセキュリティサービスを提供するフレームワークです。抽象インターフェイスには、広く実装されたCバインディング[RFC2744]があります。

For initial context tokens, a mechanism-independent token format may be used (see Section 3.1 of [RFC2743]). Some protocols, e.g., Simple Authentication and Security Layer (SASL) GS2 [RFC5801], need the ability to add and remove this token header, which contains some ASN.1 tags, a length, and the mechanism OID to and from context tokens. This document adds two GSS-API interfaces (GSS_Encapsulate_token and GSS_Decapsulate_token) so that GSS-API libraries can provide this functionality.

初期コンテキストトークンの場合、メカニズムに依存しないトークン形式を使用できます([RFC2743]のセクション3.1を参照)。一部のプロトコル、たとえば、単純な認証とセキュリティレイヤー(SASL)GS2 [RFC5801]には、コンテキストトークンへのoid、およびメカニズムを含むこのトークンヘッダーを追加および削除する機能が必要です。このドキュメントでは、GSS-APIインターフェイス(GSS_ENCAPSULET_TOKENおよびGSS_DECAPSULATE_TOKEN)を追加して、GSS-APIライブラリがこの機能を提供できるようにします。

Being able to compare OIDs is useful, for example, when validating that a negotiated mechanism matches the requested one. This document adds one GSS-API interface (GSS_OID_equal) for this purpose.

たとえば、OIDSを比較できることは、ネゴシエートされたメカニズムが要求されたメカニズムと一致することを検証するときに役立ちます。このドキュメントでは、この目的のために1つのGSS-APIインターフェイス(GSS_OID_EQUAL)を追加します。

Text from this specification can be used as implementation documentation, and for this reason, Sections 3, 4, 5, 6, and 8 should be considered code components.

この仕様のテキストは、実装ドキュメントとして使用できます。このため、セクション3、4、5、6、および8はコードコンポーネントと見なす必要があります。

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

The document uses terms from, and is structured in a similar way as, [RFC2743] and [RFC2744]. The normative reference to [RFC5587] is for the C types "gss_const_buffer_t" and "gss_const_OID"; nothing else from that document is required to implement this document.

このドキュメントは、[RFC2743]および[RFC2744]と同様の方法で用語を使用し、構造化されています。[rfc5587]への規範的参照は、cタイプ "gss_const_buffer_t"および "gss_const_oid";このドキュメントからは、このドキュメントを実装するために他に何も必要ありません。

3. GSS_Encapsulate_token Call
3. gss_encapsulate_token call

Inputs:

入力:

o input_token OCTET STRING -- buffer with token data to encapsulate

o input_token octet文字列 - トークンデータ付きバッファーをカプセル化

o token_oid OBJECT IDENTIFIER -- object identifier of mechanism for the token

o token_oidオブジェクト識別子 - トークンのメカニズムのオブジェクト識別子

Outputs:

出力:

o major_status INTEGER

o Major_status整数

o output_token OCTET STRING -- Encapsulated token data; caller must release with GSS_Release_buffer()

o output_token octet文字列 - カプセル化されたトークンデータ。発信者はgss_release_buffer()でリリースする必要があります

Return major_status codes:

major_statusコードを返す:

o GSS_S_COMPLETE indicates that completion was successful and that output parameters hold correct information.

o GSS_S_COMPLETEは、完了が成功し、出力パラメーターが正しい情報を保持していることを示しています。

o GSS_S_FAILURE indicates that encapsulation failed for reasons unspecified at the GSS-API level.

o GSS_S_FAILUREは、GSS-APIレベルで不特定の理由でカプセル化が失敗したことを示しています。

GSS_Encapsulate_token() is used to add the mechanism-independent token header to GSS-API context token data.

gss_encapsulate_token()は、メカニズムに依存しないトークンヘッダーをGSS-APIコンテキストトークンデータに追加するために使用されます。

3.1. gss_encapsulate_token
3.1. gss_encapsulate_token

OM_uint32 gss_encapsulate_token ( gss_const_buffer_t input_token, gss_const_OID token_oid, gss_buffer_t output_token)

om_uint32 gss_encapsulate_token(gss_const_buffer_t input_token、gss_const_oid token_oid、gss_buffer_t output_token)

Purpose:

目的:

Add the mechanism-independent token header to GSS-API context token data.

メカニズムに依存しないトークンヘッダーをGSS-APIコンテキストトークンデータに追加します。

Parameters:

パラメーター:

input_token buffer, opaque, read Buffer with GSS-API context token data.

input_tokenバッファ、不透明、GSS-APIコンテキストトークンデータを使用したバッファーを読み取ります。

token_oid Object ID, read Object identifier of token.

token_oidオブジェクトID、トークンのオブジェクト識別子を読み取ります。

output_token buffer, opaque, modify Encapsulated token data; caller must release with gss_release_buffer().

output_tokenバッファ、不透明、カプセル化されたトークンデータを変更します。発信者はgss_release_buffer()でリリースする必要があります。

Function values: GSS status codes

関数値:GSSステータスコード

GSS_S_COMPLETE Indicates that completion was successful and that output parameters hold correct information.

GSS_S_COMPLETEは、完了が成功し、出力パラメーターが正しい情報を保持していることを示しています。

GSS_S_FAILURE Indicates that encapsulation failed for reasons unspecified at the GSS-API level.

GSS_S_FAILUREは、GSS-APIレベルで不特定の理由でカプセル化が失敗したことを示しています。

4. GSS_Decapsulate_token Call
4. gss_decapsulate_tokenコール

Inputs:

入力:

o input_token OCTET STRING -- buffer with token to decapsulate

o input_tokenオクテット文字列 - 脱カプセル化するトークン付きバッファー

o token_oid OBJECT IDENTIFIER -- expected object identifier of token

o token_oidオブジェクト識別子 - トークンの予想オブジェクト識別子

Outputs:

出力:

o major_status INTEGER

o Major_status整数

o output_token OCTET STRING -- Decapsulated token data; caller must release with GSS_Release_buffer()

o output_token octet文字列 - 脱カプセル化トークンデータ。発信者はgss_release_buffer()でリリースする必要があります

Return major_status codes:

major_statusコードを返す:

o GSS_S_COMPLETE indicates that completion was successful and that output parameters hold correct information.

o GSS_S_COMPLETEは、完了が成功し、出力パラメーターが正しい情報を保持していることを示しています。

o GSS_S_DEFECTIVE_TOKEN means that the token failed consistency checks (e.g., OID mismatch or ASN.1 DER length errors).

o gss_s_defective_tokenとは、トークンが一貫性チェックに失敗したことを意味します(たとえば、oid mismatchまたはasn.1 der長エラー)。

o GSS_S_FAILURE indicates that decapsulation failed for reasons unspecified at the GSS-API level.

o GSS_S_FAILUREは、GSS-APIレベルで不特定の理由で脱カプセル化が失敗したことを示しています。

GSS_Decapsulate_token() is used to remove the mechanism-independent token header from an initial GSS-API context token.

GSS_Decapsulate_Token()は、初期GSS-APIコンテキストトークンからメカニズムに依存しないトークンヘッダーを削除するために使用されます。

4.1. gss_decapsulate_token
4.1. gss_decapsulate_token

OM_uint32 gss_decapsulate_token ( gss_const_buffer_t input_token, gss_const_OID token_oid, gss_buffer_t output_token)

om_uint32 gss_decapsulate_token(gss_const_buffer_t input_token、gss_const_oid token_oid、gss_buffer_t output_token)

Purpose:

目的:

Remove the mechanism-independent token header from an initial GSS-API context token.

初期のGSS-APIコンテキストトークンからメカニズムに依存しないトークンヘッダーを削除します。

Parameters:

パラメーター:

input_token buffer, opaque, read Buffer with GSS-API context token.

input_tokenバッファ、不透明、GSS-APIコンテキストトークンを備えたバッファーを読み取ります。

token_oid Object ID, read Expected object identifier of token.

token_oidオブジェクトID、トークンの予想オブジェクト識別子を読み取ります。

output_token buffer, opaque, modify Decapsulated token data; caller must release with gss_release_buffer().

output_tokenバッファ、不透明、脱カプセル化トークンデータを変更します。発信者はgss_release_buffer()でリリースする必要があります。

Function values: GSS status codes

関数値:GSSステータスコード

GSS_S_COMPLETE Indicates that completion was successful and that output parameters hold correct information.

GSS_S_COMPLETEは、完了が成功し、出力パラメーターが正しい情報を保持していることを示しています。

GSS_S_DEFECTIVE_TOKEN Means that the token failed consistency checks (e.g., OID mismatch or ASN.1 DER length errors).

gss_s_defective_tokenとは、トークンが一貫性チェックに失敗したことを意味します(たとえば、oid mismatchまたはasn.1 der長エラー)。

GSS_S_FAILURE Indicates that decapsulation failed for reasons unspecified at the GSS-API level.

GSS_S_FAILUREは、GSS-APIレベルで不特定の理由で脱カプセル化が失敗したことを示しています。

5. GSS_OID_equal Call
5. gss_oid_equalコール

Inputs:

入力:

o first_oid OBJECT IDENTIFIER -- first object identifier to compare

o first_oidオブジェクト識別子 - 比較する最初のオブジェクト識別子

o second_oid OBJECT IDENTIFIER -- second object identifier to compare

o Second_oidオブジェクト識別子 - 比較する2番目のオブジェクト識別子

Return codes:

返品コード:

o non-0 when neither OID is GSS_C_NO_OID and the two OIDs are equal.

o どちらのOIDもGSS_C_NO_OIDであり、2つのOIDが等しい場合は0です。

o 0 when the two OIDs are not identical or either OID is equal to GSS_C_NO_OID.

o 0 2つのOIDが同一でない場合、またはどちらのOIDがGSS_C_NO_OIDに等しい場合。

GSS_OID_equal() is used to add compare two OIDs for equality. The value GSS_C_NO_OID will not match any OID, including GSS_C_NO_OID itself.

gss_oid_equal()は、2つのoidを均等に比較するために使用されます。値GSS_C_NO_OIDは、GSS_C_NO_OID自体を含むOIDと一致しません。

5.1. gss_oid_equal
5.1. gss_oid_equal

extern int gss_oid_equal ( gss_const_OID first_oid, gss_const_OID second_oid )

extern int gss_oid_equal(gss_const_oid first_oid、gss_const_oid second_oid)

Purpose:

目的:

Compare two OIDs for equality. The value GSS_C_NO_OID will not match any OID, including GSS_C_NO_OID itself.

平等について2つのOIDを比較します。値GSS_C_NO_OIDは、GSS_C_NO_OID自体を含むOIDと一致しません。

Parameters:

パラメーター:

first_oid Object ID, read First object identifier to compare.

first_oid object id、first object識別子を読み取り、比較してください。

second_oid Object ID, read Second object identifier to compare.

second_oidオブジェクトID、比較する2番目のオブジェクト識別子を読み取ります。

Function values: GSS status codes

関数値:GSSステータスコード

non-0 Neither OID is GSS_C_NO_OID, and the two OIDs are equal.

非0どちらのOIDもGSS_C_NO_OIDではなく、2つのOIDは等しくなります。

0 The two OIDs are not identical, or either OID is equal to GSS_C_NO_OID.

0 2つのOIDは同一ではありません。または、いずれかのOIDがGSS_C_NO_OIDに等しくなります。

6. Test Vector
6. テストベクトル

For the GSS_Encapsulate_token function, if the "input_token" buffer is the 3-byte octet sequence "foo" and the "token_oid" OID is 1.2.840.113554.1.2.2, which encoded corresponds to the 9-byte-long octet sequence (using C notation) "\x2a\x86\x48\x86\xf7\x12\x01\x02\x02", the output should be the 16-byte-long octet sequence (again in C notation) "\x60\x0e\x06\x09\x2a\x86\x48\x86\xf7\x12\x01\x02\x02\x66\x6f\x6f". These values may also be used to test the GSS_Decapsulate_token interface.

gss_encapsulate_token関数の場合、「input_token」バッファが3バイトのオクテットシーケンス「foo」であり、「token_oid」oidが1.2.840.113554.1.2.2である場合、エンコードされたエンコードは9バイトロングのオクテットシーケンスに対応しています(c表記) "\ x2a \ x86 \ x48 \ x86 \ xf7 \ x12 \ x01 \ x02 \ x02"、出力は16バイトのオクテットシーケンス(再びC表記)でなければなりません "\ x60 \ x0e \ x06 \ x06 \x09 \ x2a \ x86 \ x48 \ x86 \ xf7 \ x12 \ x01 \ x02 \ x02 \ x66 \ x6f \ x6f "。これらの値は、GSS_Decapsulate_Tokenインターフェイスをテストするためにも使用できます。

7. Acknowledgements
7. 謝辞

Greg Hudson pointed out the 'const' problem with the C bindings in earlier versions of this document, and Luke Howard suggested to resolve it by using the [RFC5587] types. Stephen Farrell suggested several editorial improvements and the security consideration regarding absent security features of the encapsulation function. Chris Lonvick suggested some improvements.

Greg Hudsonは、このドキュメントの以前のバージョンのCバインディングの「const」の問題を指摘し、Luke Howardは[RFC5587]タイプを使用して解決することを提案しました。Stephen Farrellは、いくつかの編集上の改善と、カプセル化関数のセキュリティ機能の欠如に関するセキュリティの考慮事項を提案しました。クリス・ロンヴィックはいくつかの改善を提案しました。

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

The security considerations of the base GSS-API specification ([RFC2743]) and the base C bindings ([RFC2744]) are inherited.

ベースGSS-API仕様([RFC2743])とベースCバインディング([RFC2744])のセキュリティ上の考慮事項は継承されます。

Encapsulation of data does not provide any kind of integrity or confidentiality.

データのカプセル化は、いかなる種類の整合性や機密性を提供しません。

Implementations need to treat input as potentially untrustworthy for purposes of dereferencing memory objects to avoid security vulnerabilities. In particular, ASN.1 DER length fields are a common source of mistakes.

実装は、セキュリティの脆弱性を回避するために、メモリオブジェクトを参照する目的のために、入力を潜在的に信頼できないものとして扱う必要があります。特に、ASN.1 derの長さフィールドは、一般的な間違いの原因です。

9. References
9. 参考文献
9.1. Normative References
9.1. 引用文献

[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月。

[RFC5587] Williams, N., "Extended Generic Security Service Mechanism Inquiry APIs", RFC 5587, July 2009.

[RFC5587]ウィリアムズ、N。、「拡張ジェネリックセキュリティサービスメカニズム調査API」、RFC 5587、2009年7月。

9.2. Informative Reference
9.2. 有益なリファレンス

[RFC5801] Josefsson, S. and N. Williams, "Using Generic Security Service Application Program Interface (GSS-API) Mechanisms in Simple Authentication and Security Layer (SASL): The GS2 Mechanism Family", RFC 5801, July 2010.

[RFC5801] Josefsson、S。およびN. Williams、「一般的な認証およびセキュリティ層(SASL)のジェネリックセキュリティサービスアプリケーションプログラムインターフェイス(GSS-API)メカニズム:GS2メカニズムファミリー」、RFC 5801、2010年7月。

Authors' Addresses

著者のアドレス

Simon Josefsson SJD AB Hagagatan 24 Stockholm 113 47 SE

Simon Josefsson SJD AB Hagagatan 24 Stockholm 113 47 SE

   EMail: simon@josefsson.org
   URI:   http://josefsson.org/
        

Love Hornquist Astrand Apple, Inc.

Love Hornquist Astrand Apple、Inc。

   EMail: lha@apple.com