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.

このドキュメントの現在の状態、任意の正誤表、そしてどのようにフィードバックを提供するための情報が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.

著作権(C)2011 IETF信託とドキュメントの作成者として特定の人物。全著作権所有。

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トラストの法律の規定に従うものとします。彼らは、この文書に関してあなたの権利と制限を説明するように、慎重にこれらの文書を確認してください。コードコンポーネントは、トラスト法規定のセクションで説明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]は、コンテキストトークンへとから、いくつかのASN.1タグを含むこのトークンヘッダ、長さ、及び機構のOIDを追加および削除する能力を必要とします。 GSS-APIライブラリがこの機能を提供できるよう、このドキュメントでは、2 GSS-APIインタフェース(GSS_Encapsulate_tokenとGSS_Decapsulate_token)を追加します。

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.

交渉さメカニズムが要求されたものと一致することを検証する際のOIDを比較することが可能であることは、例えば、便利です。この文書では、この目的のための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コール

Inputs:

入力:

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

オクテット文字列入力トークンO - カプセル化するトークンデータをバッファリング

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

O token_oidオブジェクト識別子 - トークン機構のオブジェクト識別子

Outputs:

出力:

o major_status INTEGER

O major_status INTEGER

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

Oのoutput_tokenオクテットSTRING - トークンのデータをカプセル化されました。呼び出し側は(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 - デカプセル化するためにトークンを使用してバッファ

o token_oid OBJECT IDENTIFIER -- expected object identifier of token

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

Outputs:

出力:

o major_status INTEGER

O major_status INTEGER

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

Oのoutput_tokenオクテットSTRING - カプセル化を解除トークンのデータ。呼び出し側は(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ミスマッチ又は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ミスマッチ又は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オブジェクト識別子 - 第1のオブジェクト識別子を比較します

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非0もOIDはGSS_C_NO_OIDであり、2つのOIDが等しい場合。

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

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オブジェクトID、比較する最初のオブジェクト識別子を読みます。

second_oid Object ID, read Second object identifier to compare.

second_oidオブジェクトID、比較するために第二のオブジェクト識別子を読みます。

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
前記テストベクトル

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機能のために、(使用して「入力トークン」バッファーは、3バイトのオクテット列「foo」という場合であり、「token_oid」OIDは9バイト長のオクテット配列に対応する符号化された1.2.840.113554.1.2.2、ありますC表記) "\ X2A \ X86 \ X48 \ X86 \ XF7 \ X12 \ X01 \ X02 \ X02"、出力「)C表記で再度16バイト長のオクテット列を(あるべきである\ X60 \ x0e \ 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.

グレッグ・ハドソンは、このドキュメントの以前のバージョンのCバインディングで「constのか」の問題を指摘し、ルークハワードは[RFC5587]タイプを使用して、それを解決するために提案しました。スティーブン・ファレルは、いくつかの編集上の改良およびカプセル化機能の不在のセキュリティ機能に関するセキュリティ上の考慮事項を示唆しました。クリスLonvickは、いくつかの改善を示唆しました。

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]リン、J.、 "ジェネリックセキュリティーサービス適用業務プログラムインタフェースバージョン2、アップデート1"、RFC 2743、2000年1月。

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

[RFC2744]レイ、J.、 "ジェネリックセキュリティサービスAPIバージョン2:C-バインディング"、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.

、RFC 5801、2010年7月: "GS2メカニズム家族簡易認証セキュリティー層(SASL)で一般的なセキュリティサービスアプリケーションプログラムインタフェース(GSS-API)メカニズムを使用して" [RFC5801] Josefsson氏、S.およびN.ウィリアムズ、。

Authors' Addresses

著者のアドレス

Simon Josefsson SJD AB Hagagatan 24 Stockholm 113 47 SE

サイモンJosefsson氏SJD AB Hagagatan 24ストックホルム113 47 SE

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

電子メール:simon@josefsson.org URI:http://josefsson.org/

Love Hornquist Astrand Apple, Inc.

Hornquist Astrandアップル社を愛し

EMail: lha@apple.com

メールアドレス:lha@apple.com