Internet Engineering Task Force (IETF)                       E. Rescorla
Request for Comments: 5705                                    RTFM, Inc.
Category: Standards Track                                     March 2010
ISSN: 2070-1721
        
      Keying Material Exporters for Transport Layer Security (TLS)
        

Abstract

抽象

A number of protocols wish to leverage Transport Layer Security (TLS) to perform key establishment but then use some of the keying material for their own purposes. This document describes a general mechanism for allowing that.

多くのプロトコルは、鍵の確立を行いますが、その後自分自身の目的のための鍵材料の一部を使用するトランスポート層セキュリティ(TLS)を活用したいです。この文書はそれを可能にするための一般的なメカニズムについて説明します。

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/5705.

このドキュメントの現在の状態、任意の正誤表、そしてどのようにフィードバックを提供するための情報がhttp://www.rfc-editor.org/info/5705で取得することができます。

Copyright Notice

著作権表示

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

著作権(C)2010 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ライセンスのテキストを含める必要があり、この文書から抽出されました。

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.

この材料の一部がIETFトラストにこのような材料の変更を許可する権利を与えられていない可能性がありますにこの文書は、2008年、IETFドキュメントまたは11月10日以前に発行または公開さIETF貢献から著作権を支配する者(複数可)材料を含んでいてもよいですIETF標準化プロセスの外。そのような材料の著作権を管理者(単数または複数)から適切なライセンスを取得することなく、この文書は、IETF標準化過程の外側修正されないかもしれません、そして、それの派生物は、IETF標準化過程の外側に作成されない場合があり、それをフォーマットする以外出版RFCとして、英語以外の言語に翻訳します。

Table of Contents

目次

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 2
   2.  Conventions Used In This Document . . . . . . . . . . . . . . . 3
   3.  Binding to Application Contexts . . . . . . . . . . . . . . . . 3
   4.  Exporter Definition . . . . . . . . . . . . . . . . . . . . . . 4
   5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 5
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
   7.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 6
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 7
     8.1.  Normative References  . . . . . . . . . . . . . . . . . . . 7
     8.2.  Informative References  . . . . . . . . . . . . . . . . . . 7
        
1. Introduction
1. はじめに

Note: The mechanism described in this document was previously known as "TLS Extractors" but was changed to avoid a name conflict with the use of the term "Extractor" in the cryptographic community.

注:このドキュメントで説明するメカニズムは、以前に「TLSエクストラクタ」として知られていましたが、暗号化社会における用語「抽出」を使用して名前の競合を避けるために変更されました。

A number of protocols wish to leverage Transport Layer Security (TLS) [RFC5246] or Datagram TLS (DTLS) [RFC4347] to perform key establishment but then use some of the keying material for their own purposes. A typical example is DTLS-SRTP [DTLS-SRTP], a key management scheme for the Secure Real-time Transport Protocol (SRTP) that uses DTLS to perform a key exchange and negotiate the SRTP [RFC3711] protection suite and then uses the DTLS master_secret to generate the SRTP keys.

多くのプロトコルは、鍵の確立を行いますが、その後自分自身の目的のための鍵材料の一部を使用するトランスポート層セキュリティ(TLS)[RFC5246]またはデータグラムTLS(DTLS)[RFC4347]を活用したいです。典型的な例は、DTLS、SRTP [DTLS-SRTP]、鍵交換を実行し、SRTP [RFC3711]保護スイートを交渉するDTLSを使用してセキュアリアルタイムトランスポートプロトコル(SRTP)のための鍵管理方式で、その後DTLSを使用しますSRTP鍵を生成することでマスター_。

These applications imply a need to be able to export keying material (later called Exported Keying Material or EKM) from TLS/DTLS to an application or protocol residing at an upper layer, and to securely agree on the upper-layer context where the keying material will be used. The mechanism for exporting the keying material has the following requirements:

これらのアプリケーションは、上位層であるアプリケーションまたはプロトコルにTLS / DTLSから(後でエクスポート鍵材料またはEKMと呼ばれる)鍵材料エクスポートすることができるようにする必要性を意味し、安全キーイングマテリアル上位層コンテキストに同意します使用されます。鍵材料をエクスポートするためのメカニズムは、次の要件があります。

o Both client and server need to be able to export the same EKM value.

Oクライアントとサーバの両方が同じEKM値をエクスポートできるようにする必要があります。

o EKM values should be indistinguishable from random data to attackers who don't know the master_secret.

O EKM値は、マスター_を知らない攻撃者にランダムデータと区別できなければなりません。

o It should be possible to export multiple EKM values from the same TLS/DTLS association.

O同じTLS / DTLS会合から複数のEKM値をエクスポートすることが可能であるべきです。

o Knowing one EKM value should not reveal any useful information about the master_secret or about other EKM values.

O 1つのEKM値を知ることはマスター_約または他のEKM値に関する任意の有用な情報を明らかにはなりません。

The mechanism described in this document is intended to fulfill these requirements. This mechanism is compatible with all versions of TLS.

この文書で説明するメカニズムは、これらの要件を満たすことを意図しています。このメカニズムは、TLSのすべてのバージョンと互換性があります。

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].

この文書のキーワード "MUST"、 "MUST NOT"、 "REQUIRED"、、、、 "べきではない" "べきである" "ないもの" "ものとし"、 "推奨"、 "MAY"、および "OPTIONAL" はあります[RFC2119]に記載されているように解釈されます。

3. Binding to Application Contexts
3.アプリケーション・コンテキストへのバインド

In addition to using an exporter to obtain keying material, an application using the keying material has to securely establish the upper-layer context where the keying material will be used. The details of this context depend on the application, but it could include things such as algorithms and parameters that will be used with the keys, identifier(s) for the endpoint(s) who will use the keys, identifier(s) for the session(s) where the keys will be used, and the lifetime(s) for the context and/or keys. At a minimum, there should be some mechanism for signaling that an exporter will be used.

キーイング材料を得るために輸出を使用することに加えて、キーイング材料を使用するアプリケーションを確実キーイング材料が使用される上位層コンテキストを確立しなければなりません。このコンテキストの詳細は、アプリケーションに依存し、それはのためのキー、識別子(複数可)を使用するキーで使用されるようなアルゴリズムやパラメータなどのもの、エンドポイントの識別子(S)(複数可)を含むことができますキーが使用されるセッション(S)、およびコンテキストおよび/またはキーの有効期間(秒)。最低でも、輸出業者が使用されることをシグナリングするためのいくつかの機構があるべきです。

This specification does not mandate a single mechanism for agreeing on such context; instead, there are several possibilities that can be used (and can complement each other). For example:

この仕様は、このような状況に合意するための単一のメカニズムを強制しません。代わりに、使用することができる(お互いを補完することができる)は、いくつかの可能性があります。例えば:

o Information about the upper-layer context can be included in the optional data after the exporter label (see Section 4).

O上位層コンテキストに関する情報(セクション4を参照)輸出ラベル後に任意のデータに含めることができます。

o Information about the upper-layer context can be exchanged in TLS extensions included in the ClientHello and ServerHello messages. This approach is used in [DTLS-SRTP]. The handshake messages are protected by the Finished messages, so once the handshake completes, the peers will have the same view of the information. Extensions also allow a limited form of negotiation: for example, the TLS client could propose several alternatives for some context parameters, and the TLS server could select one of them.

O上位層コンテキストに関する情報はのClientHelloとのServerHelloメッセージに含まTLS拡張で交換することができます。このアプローチは、[DTLS-SRTP]で使用されています。ハンドシェイクメッセージがFinishedメッセージによって保護されているので、ハンドシェイクが完了すると、ピアは、情報の同じビューを持つことになります。拡張機能はまた、交渉の限定された形を許可する:例えば、TLSクライアントは、いくつかのコンテキストパラメータのためのいくつかの選択肢を提案することができ、およびTLSサーバは、それらのいずれかを選択することができます。

o The upper-layer protocol can include its own handshake, which can be protected using the keys exported by TLS.

O上位層プロトコルは、TLSによってエクスポートされたキーを使用して保護することができる独自のハンドシェイクを、含むことができます。

No matter how the context is agreed, it is required that it has one part that indicates which application will use the exported keys. This part is the disambiguating label string (see Section 4).

どんなに状況が合意されているか、アプリケーションがエクスポートされたキーを使用しますかを示す一つの部分を持っていることを必要としません。この部分は曖昧ラベル文字列(セクション4を参照)です。

It is important to note that just embedding TLS messages in the upper-layer protocol may not automatically secure all the important context information, since the upper-layer messages are not covered by TLS Finished messages.

上位層のメッセージがTLS Finishedメッセージによってカバーされていないので、ちょうど上位層プロトコルにTLSメッセージを埋め込みは自動的に、すべての重要なコンテキスト情報を確保できない可能性があることに注意することが重要です。

4. Exporter Definition
4.輸出の定義

The output of the exporter is intended to be used in a single scope, which is associated with the TLS session, the label, and the context value.

輸出の出力は、TLSセッション、ラベル、およびコンテキスト値に関連付けられた単一の範囲で使用されることが意図されます。

The exporter takes three input values:

輸出は、3つの入力の値をとります。

o a disambiguating label string,

O曖昧ラベル文字列、

o a per-association context value provided by the application using the exporter, and

エクスポータを使用するアプリケーションによって提供される単位のアソシエーションコンテキスト値O、及び

o a length value.

長さの値O。

If no context is provided, it then computes:

コンテキストが提供されていない場合は、その後、計算します。

           PRF(SecurityParameters.master_secret, label,
               SecurityParameters.client_random +
               SecurityParameters.server_random
               )[length]
        

If context is provided, it computes:

コンテキストが提供されている場合、それは計算します。

           PRF(SecurityParameters.master_secret, label,
               SecurityParameters.client_random +
               SecurityParameters.server_random +
               context_value_length + context_value
               )[length]
        

Where PRF is the TLS Pseudorandom Function in use for the session. The output is a pseudorandom bit string of length bytes generated from the master_secret. (This construction allows for interoperability with older exporter-type constructions which do not use context values, e.g., [RFC5281]).

PRFは、セッションのために使用されているTLS擬似ランダム関数です。出力は、マスター_から生成された長さのバイトの擬似ランダムビット列です。 (この構成は、コンテキスト値を使用していない旧式の輸出型構造との相互運用を可能にする、例えば、[RFC5281])。

Labels here have the same definition as in TLS, i.e., an ASCII string with no terminating NULL. Label values beginning with "EXPERIMENTAL" MAY be used for private use without registration. All other label values MUST be registered via Specification Required as described by RFC 5226 [RFC5226]. Note that exporter labels have the potential to collide with existing PRF labels. In order to prevent this, labels SHOULD begin with "EXPORTER". This is not a MUST because there are existing uses that have labels which do not begin with this prefix.

ここでのラベルは、TLS、無終端NULLを持つ、すなわち、ASCII文字列と同じ定義を持っています。 「実験」で始まるラベル値は、登録なし私的使用のために使用されるかもしれません。 RFC 5226 [RFC5226]で説明したように、他のすべてのラベル値は、仕様が必要介して登録されなければなりません。輸出ラベルは、既存のPRFラベルと衝突する可能性があることに注意してください。これを防ぐために、ラベルは「輸出」で開始する必要があります。この接頭辞で始まらないラベルを持つ既存の用途があるので、これはMUSTではありません。

The context value allows the application using the exporter to mix its own data with the TLS PRF for the exporter output. One example of where this might be useful is an authentication setting where the client credentials are valid for more than one identity; the context value could then be used to mix the expected identity into the keying material, thus preventing substitution attacks. The context value length is encoded as an unsigned, 16-bit quantity (uint16; see [RFC5246], Section 4.4) representing the length of the context value. The context MAY be zero length. Because the context value is mixed with the master_secret via the PRF, it is safe to mix confidential information into the exporter, provided that the master_secret will not be known to the attacker.

コンテキスト値は、輸出出力にTLS PRFと独自のデータを混合するエクスポータを使用してアプリケーションを可能にします。これは役に立つかもしれない場所の一例は、クライアントの資格情報が複数のアイデンティティのための有効な認証設定です。コンテキスト値は、このように置換攻撃を防ぐ、キーイング材料に期待されるアイデンティティを混合するために使用することができます。コンテキスト値の長さを表す、コンテキスト値の長さは、符号なし16ビット量([RFC5246]を参照して、セクション4.4 uint16の)として符号化されます。コンテキストは、ゼロの長さであってもよいです。コンテキスト値がPRF経由でマスター_と混合されているので、マスター_が攻撃者に知られないことを提供し、輸出に機密情報を混在しても安全です。

5. Security Considerations
5.セキュリティについての考慮事項

The prime security requirement for exporter outputs is that they be independent. More formally, after a particular TLS session, if an adversary is allowed to choose multiple (label, context value) pairs and is given the output of the PRF for those values, the attacker is still unable to distinguish between the output of the PRF for a (label, context value) pair (different from the ones that it submitted) and a random value of the same length. In particular, there may be settings, such as the one described in Section 4, where the attacker can control the context value; such an attacker MUST NOT be able to predict the output of the exporter. Similarly, an attacker who does not know the master secret should not be able to distinguish valid exporter outputs from random values. The current set of TLS PRFs is believed to meet this objective, provided the master secret is randomly generated.

輸出の出力のための主要なセキュリティ要件は、彼らが独立していることです。敵対者が複数(ラベル、コンテキスト値)ペアを選択させ、それらの値のためのPRFの出力を与えられた場合、より正式には、特定のTLSセッションの後、攻撃者は、PRFの出力のために区別することができません(ラベル、コンテキスト値)ペア(それは送信のものとは異なる)と同じ長さのランダム値。特に、そのような攻撃者は、コンテキスト値を制御することができ、セクション4で説明したもの、などの設定があってもよいです。そのような攻撃者は、輸出の出力を予測可能であってはなりません。同様に、マスター秘密を知らない攻撃者が任意の値から有効な輸出国出力を区別することはできないはず。 TLSのPRFの現在のセットは、この目的を達成するために考えられている、マスターシークレットがランダムに生成されました。

Because an exporter produces the same value if applied twice with the same label to the same master_secret, it is critical that two EKM values generated with the same label not be used for two different purposes -- hence, the requirement for IANA registration. However, because exporters depend on the TLS PRF, it is not a threat to the use of an EKM value generated from one label to reveal an EKM value generated from another label.

輸出業者が同じ値を生成するので、同一のマスター_に同じラベルで二回適用された場合、同じラベルで生成された二EKM値は、2つの異なる目的のために使用されないことが重要である - したがって、IANA登録要件。輸出業者は、TLS PRFに依存しているためしかし、それは別のラベルから生成されたEKM値を明らかにするために、1枚のラベルから生成されたEKM値の使用に脅威ではありません。

With certain TLS cipher suites, the TLS master secret is not necessarily unique to a single TLS session. In particular, with RSA key exchange, a malicious party acting as TLS server in one session and as TLS client in another session can cause those two sessions to have the same TLS master secret (though the sessions must be established simultaneously to get adequate control of the Random values). Applications using the EKM need to consider this in how they use the EKM; in some cases, requiring the use of other cipher suites (such as those using a Diffie-Hellman key exchange) may be advisable.

特定のTLS暗号スイートを使用すると、TLSマスター秘密は必ずしも単一のTLSセッションに固有のものではありません。具体的には、RSA鍵交換と、悪意のあるパーティは1つのセッションでTLSサーバとして動作し、別のセッションでTLSクライアントとしてセッションがの適切な制御を取得するために同時に確立されなければならないものの、これらの2つのセッションが(同じTLSマスターシークレットを持たせることができますランダムな値)。 EKMを使用するアプリケーションは、彼らがEKMを使用する方法でこれを検討する必要があります。いくつかのケースでは、(例えば、ディフィー・ヘルマン鍵交換を使用するもののような)他の暗号スイートの使用を必要とすることが望ましいことがあります。

Designing a secure mechanism that uses exporters is not necessarily straightforward. This document only provides the exporter mechanism, but the problem of agreeing on the surrounding context and the meaning of the information passed to and from the exporter remains. Any new uses of the exporter mechanism should be subject to careful review.

輸出業者を使用する安全なメカニズムを設計することは必ずしも容易ではありません。この文書では、唯一の輸出メカニズムを提供しますが、周囲の状況や輸出の遺跡へとから渡された情報の意味について合意の問題。輸出国機構のいずれかの新しい用途は、慎重に検討の対象とすべきです。

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

IANA has created a TLS Exporter Label registry for this purpose. The initial contents of the registry are given below:

IANAは、この目的のためにTLS輸出ラベルレジストリを作成しました。レジストリの初期の内容は以下の通りであります:

        Value                          Reference  Note
        -----------------------------  ---------  ----
        client finished                [RFC5246]  (1)
        server finished                [RFC5246]  (1)
        master secret                  [RFC5246]  (1)
        key expansion                  [RFC5246]  (1)
        client EAP encryption          [RFC5216]
        ttls keying material           [RFC5281]
        ttls challenge                 [RFC5281]
        

Note: (1) These entries are reserved and MUST NOT be used for the purpose described in RFC 5705, in order to avoid confusion with similar, but distinct, use in RFC 5246.

注:(1)これらのエントリは予約されており、RFC 5705に記載目的のために使用してはいけません、同様の、しかし異なるとの混同を避けるために、RFC 5246で使用します。

Future values are allocated via the RFC 5226 Specification Required policy. The label is a string consisting of printable ASCII characters. IANA MUST also verify that one label is not a prefix of any other label. For example, labels "key" or "master secretary" are forbidden.

将来の値は、RFC 5226仕様が必要ポリシーによって割り当てられています。ラベルは、印刷可能なASCII文字からなる文字列です。 IANAは、一つのラベルが他のラベルの接頭辞ではないことを確かめなければなりません。たとえば、ラベル「キー」または「マスター秘書は」禁止されています。

7. Acknowledgments
7.謝辞

Thanks to Pasi Eronen for valuable comments and for the contents of the IANA section and Section 3. Thanks to David McGrew for helpful discussion of the security considerations and to Vijay Gurbani and Alfred Hoenes for editorial comments.

貴重なコメントとIANAセクションとセクションの編集、コメントのためのセキュリティ上の考慮事項の有用な議論のためとビジェイGurbaniとアルフレッドHoenesにデビッドマグリュー3.感謝の内容のためのパシEronenに感謝します。

8. References
8.参照文献
8.1. Normative References
8.1. 引用規格

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

[RFC2119]ブラドナーの、S.、 "要件レベルを示すためにRFCsにおける使用のためのキーワード"、BCP 14、RFC 2119、1997年3月。

[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008.

[RFC5226] Narten氏、T.とH. Alvestrand、 "RFCsにIANA問題部に書くためのガイドライン"、BCP 26、RFC 5226、2008年5月。

[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, August 2008.

[RFC5246]ダークス、T.およびE.レスコラ、 "トランスポート層セキュリティ(TLS)プロトコルバージョン1.2"、RFC 5246、2008年8月。

8.2. Informative References
8.2. 参考文献

[DTLS-SRTP] McGrew, D. and E. Rescorla, "Datagram Transport Layer Security (DTLS) Extension to Establish Keys for Secure Real-time Transport Protocol (SRTP)", Work in Progress, February 2009.

[DTLS-SRTP]マグリュー、D.およびE.レスコラ、「データグラムトランスポート層セキュリティ(DTLS)拡張セキュアリアルタイム転送プロトコル(SRTP)のための鍵を確立するために」、進歩、2009年2月に作業。

[RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. Norrman, "The Secure Real-time Transport Protocol (SRTP)", RFC 3711, March 2004.

[RFC3711] Baugher、M.、マグリュー、D.、Naslund、M.、カララ、E.、およびK. Norrman、 "セキュアリアルタイム転送プロトコル(SRTP)"、RFC 3711、2004年3月。

[RFC4347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer Security", RFC 4347, April 2006.

[RFC4347]レスコラ、E.およびN. Modadugu、 "データグラムトランスポート層セキュリティ"、RFC 4347、2006年4月。

[RFC5216] Simon, D., Aboba, B., and R. Hurst, "The EAP-TLS Authentication Protocol", RFC 5216, March 2008.

[RFC5216]サイモン、D.、Aboba、B.、およびR.ハースト、 "EAP-TLS認証プロトコル"、RFC 5216、2008年3月。

[RFC5281] Funk, P. and S. Blake-Wilson, "Extensible Authentication Protocol Tunneled Transport Layer Security Authenticated Protocol Version 0 (EAP-TTLSv0)", RFC 5281, August 2008.

[RFC5281]ファンク、P.とS.ブレーク - ウィルソン、 "拡張認証プロトコルトンネル型トランスポート層セキュリティ認証プロトコルバージョン0(EAP-TTLSv0)"、RFC 5281、2008年8月。

Author's Address

著者のアドレス

Eric Rescorla RTFM, Inc. 2064 Edgewood Drive Palo Alto, CA 94303 USA

エリックレスコラRTFM、Inc.の2064エッジウッドドライブパロアルト、CA 94303 USA

EMail: ekr@rtfm.com

メールアドレス:ekr@rtfm.com