Network Working Group                               N. Mavrogiannopoulos
Request for Comments: 5081                                   Independent
Category: Experimental                                     November 2007
        

Using OpenPGP Keys for Transport Layer Security (TLS) Authentication

トランスポート層セキュリティ(TLS)認証のためのOpenPGPキーの使用

Status of This Memo

このメモのステータス

This memo defines an Experimental Protocol for the Internet community. It does not specify an Internet standard of any kind. Discussion and suggestions for improvement are requested. Distribution of this memo is unlimited.

このメモはインターネットコミュニティのためにExperimentalプロトコルを定義します。それはどんな種類のインターネット標準を指定しません。改善のための議論や提案が要求されています。このメモの配布は無制限です。

Abstract

抽象

This memo proposes extensions to the Transport Layer Security (TLS) protocol to support the OpenPGP key format. The extensions discussed here include a certificate type negotiation mechanism, and the required modifications to the TLS Handshake Protocol.

このメモは、OpenPGPのキーの形式をサポートするためのトランスポート層セキュリティ(TLS)プロトコルの拡張を提案しています。ここでの議論の拡張機能は、証明書の種類のネゴシエーションメカニズム、およびTLSハンドシェイクプロトコルに必要な変更が含まれています。

Table of Contents

目次

   1. Introduction ....................................................2
   2. Terminology .....................................................2
   3. Changes to the Handshake Message Contents .......................2
      3.1. Client Hello ...............................................2
      3.2. Server Hello ...............................................3
      3.3. Server Certificate .........................................3
      3.4. Certificate Request ........................................4
      3.5. Client Certificate .........................................5
      3.6. Other Handshake Messages ...................................5
   4. Security Considerations .........................................5
   5. IANA Considerations .............................................6
   6. Acknowledgements ................................................6
   7. References ......................................................6
      7.1. Normative References .......................................6
      7.2. Informative References .....................................7
        
1. Introduction
1. はじめに

The IETF has two sets of standards for public key certificates, one set for use of X.509 certificates [PKIX] and one for OpenPGP certificates [OpenPGP]. At the time of writing, TLS [TLS] standards are defined to use only X.509 certificates. This document specifies a way to negotiate use of OpenPGP certificates for a TLS session, and specifies how to transport OpenPGP certificates via TLS. The proposed extensions are backward compatible with the current TLS specification, so that existing client and server implementations that make use of X.509 certificates are not affected.

IETFは、二つの公開鍵証明書のための基準のセット、X.509証明書の使用のために1セット[PKIX]とのOpenPGP証明書[のOpenPGP]のための1つを持っています。執筆時点では、TLS [TLS]の規格にのみX.509証明書を使用するように定義されています。この文書では、TLSセッションのためのOpenPGP証明書の使用を交渉する方法を指定し、TLS経由のOpenPGP証明書を輸送する方法を指定します。 X.509証明書を利用して、既存のクライアントとサーバの実装は影響を受けないように提案した拡張は、現在のTLS仕様と下位互換性があります。

2. Terminology
2.用語

The term "OpenPGP key" is used in this document as in the OpenPGP specification [OpenPGP]. We use the term "OpenPGP certificate" to refer to OpenPGP keys that are enabled for authentication.

用語「OpenPGPのキーが」OpenPGPの仕様【のOpenPGP]のように、本書で使用されています。私たちは、認証のために有効になっているのOpenPGPキーを参照するために用語「OpenPGPの証明書」を使用しています。

This document uses the same notation and terminology used in the TLS Protocol specification [TLS].

この文書では、TLSプロトコル仕様[TLS]で使用したものと同じ表記法及び用語を使用します。

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. Changes to the Handshake Message Contents
ハンドシェイクメッセージの内容3.変更

This section describes the changes to the TLS handshake message contents when OpenPGP certificates are to be used for authentication.

このセクションでは、OpenPGPの証明書が認証に使用されるTLSハンドシェイクメッセージの内容への変更について説明します。

3.1. Client Hello
3.1. クライアントこんにちは

In order to indicate the support of multiple certificate types, clients MUST include an extension of type "cert_type" (see Section 5) to the extended client hello message. The hello extension mechanism is described in [TLSEXT].

複数の証明書タイプのサポートを示すために、クライアントは、タイプ「cert_type」の拡張子を含める必要があり、拡張クライアントハローメッセージに(セクション5を参照)。ハロー拡張機構は、[TLSEXT]に記載されています。

This extension carries a list of supported certificate types the client can use, sorted by client preference. This extension MUST be omitted if the client only supports X.509 certificates. The "extension_data" field of this extension contains a CertificateTypeExtension structure.

この拡張は、クライアントの好みによってソートされたクライアントが使用できる、サポートされている証明書の種類のリストを運びます。クライアントのみX.509証明書をサポートしている場合は、この拡張機能は省略しなければなりません。この拡張機能の「拡大」フィールドはCertificateTypeExtension構造が含まれています。

      enum { client, server } ClientOrServerExtension;
        
      enum { X.509(0), OpenPGP(1), (255) } CertificateType;
        
      struct {
         select(ClientOrServerExtension) {
            case client:
               CertificateType certificate_types<1..2^8-1>;
            case server:
               CertificateType certificate_type;
         }
      } CertificateTypeExtension;
        

No new cipher suites are required to use OpenPGP certificates. All existing cipher suites that support a compatible, with the key, key exchange method can be used in combination with OpenPGP certificates.

新しい暗号スイートは、OpenPGPの証明書を使用する必要はありません。キーを使用して、互換性をサポートするすべての既存の暗号スイートは、鍵交換方式は、OpenPGPの証明書と組み合わせて使用​​することができます。

3.2. Server Hello
3.2. サーバーこんにちは

If the server receives a client hello that contains the "cert_type" extension and chooses a cipher suite that requires a certificate, then two outcomes are possible. The server MUST either select a certificate type from the certificate_types field in the extended client hello or terminate the connection with a fatal alert of type "unsupported_certificate".

サーバは「cert_type」の拡張子を含むクライアントのhelloを受信して​​、証明書が必要な暗号スイートを選択した場合、その後、2つの結果が考えられます。サーバは、こんにちは、拡張クライアントに証明書_フィールドから証明書の種類を選択するか、「unsupported_certificate」タイプの致命的な警告との接続を終了する必要があります。

The certificate type selected by the server is encoded in a CertificateTypeExtension structure, which is included in the extended server hello message using an extension of type "cert_type". Servers that only support X.509 certificates MAY omit including the "cert_type" extension in the extended server hello.

サーバによって選択された証明書の種類は、タイプ「cert_type」の拡張子を使用して、拡張されたサーバハローメッセージに含まれているCertificateTypeExtension構造で符号化されます。唯一のX.509証明書をサポートするサーバーは、ハロー拡張サーバーに「cert_type」拡張子を含む省略することができます。

3.3. Server Certificate
3.3. サーバー証明書

The contents of the certificate message sent from server to client and vice versa are determined by the negotiated certificate type and the selected cipher suite's key exchange algorithm.

クライアントとその逆に、サーバから送信された証明書のメッセージの内容は、交渉し、証明書の種類と選択された暗号スイートの鍵交換アルゴリズムによって決定されます。

If the OpenPGP certificate type is negotiated, then it is required to present an OpenPGP certificate in the certificate message. The certificate must contain a public key that matches the selected key exchange algorithm, as shown below.

OpenPGPの証明書タイプをネゴシエートされた場合、証明書メッセージにOpenPGPの証明書を提示する必要があります。証明書には、以下に示すように、選択された鍵交換アルゴリズムに一致する公開鍵が含まれている必要があります。

Key Exchange Algorithm OpenPGP Certificate Type

鍵交換アルゴリズムのOpenPGP証明書の種類

RSA RSA public key that can be used for encryption.

暗号化に使用することができRSA RSA公開鍵。

DHE_DSS DSS public key that can be used for authentication.

DHE_DSS DSS認証に使用できる公開鍵。

DHE_RSA RSA public key that can be used for authentication.

認証に使用することができますDHE_RSA RSA公開鍵。

An OpenPGP certificate appearing in the certificate message is sent using the binary OpenPGP format. The certificate MUST contain all the elements required by Section 11.1 of [OpenPGP].

証明書メッセージに現れるのOpenPGP証明書は、バイナリOpenPGP形式を使用して送信されます。証明書は、[のOpenPGP]のセクション11.1に必要なすべての要素を含まなければなりません。

The option is also available to send an OpenPGP fingerprint, instead of sending the entire certificate. The process of fingerprint generation is described in Section 12.2 of [OpenPGP]. The peer shall respond with a "certificate_unobtainable" fatal alert if the certificate with the given fingerprint cannot be found. The "certificate_unobtainable" fatal alert is defined in Section 4 of [TLSEXT].

オプションでは、全体ではなく、証明書を送信する、のOpenPGP指紋を送信することも可能です。フィンガープリント生成のプロセスは、[のOpenPGP]のセクション12.2に記載されています。指定された指紋との証明書が見つからない場合、ピアは、「certificate_unobtainable」致命的なアラートに応答しなければなりません。 「certificate_unobtainable」致命的なアラートが[TLSEXT]のセクション4で定義されています。

      enum {
           cert_fingerprint (0), cert (1), (255)
      } OpenPGPCertDescriptorType;
        

opaque OpenPGPCertFingerprint<16..20>;

不透明OpenPGPCertFingerprint <16..20>。

opaque OpenPGPCert<0..2^24-1>;

不透明OpenPGPCert <0..2 ^ 24-1>;

      struct {
           OpenPGPCertDescriptorType descriptorType;
           select (descriptorType) {
                case cert_fingerprint: OpenPGPCertFingerprint;
                case cert: OpenPGPCert;
           }
      } Certificate;
        
3.4. Certificate Request
3.4. 証明書要求

The semantics of this message remain the same as in the TLS specification. However, if this message is sent, and the negotiated certificate type is OpenPGP, the "certificate_authorities" list MUST be empty.

このメッセージの意味は、TLS仕様と同じまま。このメッセージが送信され、そして交渉した証明書の種類がOpenPGPのあるされている場合しかし、「証明して」リストが空である必要があります。

3.5. Client Certificate
3.5. クライアント証明書

This message is only sent in response to the certificate request message. The client certificate message is sent using the same formatting as the server certificate message, and it is also required to present a certificate that matches the negotiated certificate type. If OpenPGP certificates have been selected and no certificate is available from the client, then a certificate structure that contains an empty OpenPGPCert vector MUST be sent. The server SHOULD respond with a "handshake_failure" fatal alert if client authentication is required.

このメッセージは、唯一の証明書要求メッセージに応答して送信されます。クライアント証明書のメッセージは、サーバ証明書のメッセージと同じフォーマットを使用して送信され、そしてまた交渉し、証明書の種類と一致する証明書の提示が必要とされます。 OpenPGPの証明書が選択されていると証明書がクライアントから利用できない場合は、空のOpenPGPCertベクトルが含まれている証明書の構造を送らなければなりません。クライアント認証が必要な場合は、サーバーは「握手_」致命的なアラートに応答する必要があります。

3.6. Other Handshake Messages
3.6. 他のハンドシェイクメッセージ

All the other handshake messages are identical to the TLS specification.

他のすべてのハンドシェイクメッセージは、TLS仕様と同じです。

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

All security considerations discussed in [TLS], [TLSEXT], and [OpenPGP] apply to this document. Considerations about the use of the web of trust or identity and certificate verification procedure are outside the scope of this document. These are considered issues to be handled by the application layer protocols.

すべてのセキュリティ上の考慮事項は、[TLS]、[TLSEXT]で議論し、[OpenPGPのこのドキュメントに適用されます。信頼やアイデンティティおよび証明書の検証手順のウェブの使用についての考慮事項は、この文書の範囲外です。これらは、問題は、アプリケーション層のプロトコルで処理していると考えられます。

The protocol for certificate type negotiation is identical in operation to ciphersuite negotiation of the [TLS] specification with the addition of default values when the extension is omitted. Since those omissions have a unique meaning and the same protection is applied to the values as with ciphersuites, it is believed that the security properties of this negotiation are the same as with ciphersuite negotiation.

証明書タイプのネゴシエーションのためのプロトコルは、拡張子を省略した場合、デフォルト値を加えて[TLS明細書の交渉を暗号のための操作と同一です。これらの省略は独特の意味と同じ保護が暗号スイートのように値に適用されているので、この交渉のセキュリティプロパティは暗号スイートのネゴシエーションと同じであると考えられています。

When using OpenPGP fingerprints instead of the full certificates, the discussion in Section 6.3 of [TLSEXT] for "Client Certificate URLs" applies, especially when external servers are used to retrieve keys. However, a major difference is that although the "client_certificate_url" extension allows identifying certificates without including the certificate hashes, this is not possible in the protocol proposed here. In this protocol, the certificates, when not sent, are always identified by their fingerprint, which serves as a cryptographic hash of the certificate (see Section 12.2 of [OpenPGP]).

OpenPGP指紋の代わりに、完全な証明書を使用する場合は、「クライアント証明書のURL」の[TLSEXT]の6.3節での議論は、外部のサーバがキーを取得するために使用されている場合は特に、適用されます。しかし、大きな違いは「client_certificate_url」拡張子が証明書のハッシュを含めずに証明書を識別することができますが、これはここで提案されたプロトコルでは不可能であるということです。送信されていない場合は、このプロトコルでは、証明書は、常に証明書の暗号ハッシュとしてのそれらの指紋、([のOpenPGP]のセクション12.2を参照)によって識別されます。

The information that is available to participating parties and eavesdroppers (when confidentiality is not available through a previous handshake) is the number and the types of certificates they hold, plus the contents of certificates.

参加パーティーや盗聴者(機密性は、以前の握手からは使用できません)に利用可能な情報には、数と、彼らが保持する証明書の種類に加え、証明書の内容です。

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

This document defines a new TLS extension, "cert_type", assigned a value of 9 from the TLS ExtensionType registry defined in [TLSEXT]. This value is used as the extension number for the extensions in both the client hello message and the server hello message. The new extension type is used for certificate type negotiation.

この文書では、[TLSEXT]で定義されたTLS ExtensionTypeレジストリから9の値を割り当て、新しいTLS拡張、「cert_type」を定義します。この値は、クライアントハローメッセージとサーバハローメッセージの両方で機能拡張のための内線番号として使用されています。新しい拡張タイプが証明書タイプのネゴシエーションに使用されます。

The "cert_type" extension contains an 8-bit CertificateType field, for which a new registry, named "TLS Certificate Types", is established in this document, to be maintained by IANA. The registry is segmented in the following way:

「cert_type」拡張子が「TLS証明書の種類」という名前のための新しいレジストリ、8ビットのCertificateTypeフィールドが含まれ、IANAによって維持されるように、この文書で確立されています。レジストリは次のようにセグメント化されています。

1. Values 0 (X.509) and 1 (OpenPGP) are defined in this document.
1.値0(509)及び1(OpenPGPの)は、この文書で定義されています。

2. Values from 2 through 223 decimal inclusive are assigned via IETF Consensus [RFC2434].

2から223小数含め介して2値はIETFコンセンサス[RFC2434]を介して割り当てられます。

3. Values from 224 decimal through 255 decimal inclusive are reserved for Private Use [RFC2434].

包括進255 224小数点以下の3値は私用[RFC2434]のために予約されています。

6. Acknowledgements
6.謝辞

This document was based on earlier work made by Will Price and Michael Elkins.

この文書は、ウィル価格とマイケル・エルキンズによって作られた初期の研究に基づいていました。

The author wishes to thank Werner Koch, David Taylor, Timo Schulz, Pasi Eronen, Jon Callas, Stephen Kent, Robert Sparks, and Hilarie Orman for their suggestions on improving this document.

著者はこの文書を改善することに彼らの提案のためにワーナー・コック、デビッド・テイラー、ティモシュルツ、パシEronen、ジョン・カラス、スティーブン・ケント、ロバートスパークス、およびヒラリーオーマンに感謝したいです。

7. References
7.参考
7.1. Normative References
7.1. 引用規格

[TLS] Dierks, T. and E. Rescorla, "The TLS Protocol Version 1.1", RFC 4346, April 2006.

[TLS]ダークス、T.およびE.レスコラ、 "TLSプロトコルバージョン1.1"、RFC 4346、2006年4月。

[OpenPGP] Callas, J., Donnerhacke, L., Finey, H., Shaw, D., and R. Thayer, "OpenPGP Message Format", RFC 4880, November 2007.

[OpenPGPの]カラス、J.、Donnerhacke、L.、Finey、H.、ショー、D.、およびR.セイヤー、 "OpenPGPのメッセージフォーマット"、RFC 4880、2007年11月。

[TLSEXT] Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J., and T. Wright, "Transport Layer Security (TLS) Extensions", RFC 4366, April 2006.

[TLSEXT]ブレイク・ウィルソン、S.、Nystrom、M.、ホップウッド、D.、ミケルセン、J.、およびT.ライト、 "トランスポート層セキュリティ(TLS)拡張機能"、RFC 4366、2006年4月。

[RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", RFC 2434, October 1998.

[RFC2434] Narten氏、T.とH. Alvestrand、 "RFCsにIANA問題部に書くためのガイドライン"、RFC 2434、1998年10月。

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

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

7.2. Informative References
7.2. 参考文献

[PKIX] Housley, R., Ford, W., Polk, W., and D. Solo, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3280, April 2002.

[PKIX] Housley氏、R.、フォード、W.、ポーク、W.、およびD.ソロ、 "インターネットX.509公開鍵暗号基盤証明書と証明書失効リスト(CRL)プロフィール"、RFC 3280、2002年4月。

Author's Address

著者のアドレス

Nikos Mavrogiannopoulos Independent Arkadias 8 Halandri, Attiki 15234 Greece

ニックMafrogiannopoulos Intependentアルカディア私Halandri、アテネ15234ギリシャ

EMail: nmav@gnutls.org URI: http://www.gnutls.org/

電子メール:nmav@gnutls.org URI:http://www.gnutls.org/

Full Copyright Statement

完全な著作権声明

Copyright (C) The IETF Trust (2007).

著作権(C)IETFトラスト(2007)。

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

この文書では、BCP 78に含まれる権利と許可と制限の適用を受けており、その中の記載を除いて、作者は彼らのすべての権利を保有します。

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

この文書とここに含まれている情報は、基礎とCONTRIBUTOR「そのまま」、ORGANIZATION HE / SHEが表すまたはインターネットSOCIETY、(もしあれば)を後援し、IETF TRUST ANDインターネットエンジニアリングタスクフォース放棄ALLに設けられています。保証は、明示または黙示、この情報の利用および特定目的に対する権利または商品性または適合性の黙示の保証を侵害しない任意の保証がこれらに限定されません。

Intellectual Property

知的財産

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

IETFは、本書またはそのような権限下で、ライセンスがたりないかもしれない程度に記載された技術の実装や使用に関係すると主張される可能性があります任意の知的財産権やその他の権利の有効性または範囲に関していかなる位置を取りません利用可能です。またそれは、それがどのような権利を確認する独自の取り組みを行ったことを示すものでもありません。 RFC文書の権利に関する手続きの情報は、BCP 78およびBCP 79に記載されています。

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

IPRの開示のコピーが利用できるようにIETF事務局とライセンスの保証に行われた、または本仕様の実装者または利用者がそのような所有権の使用のための一般的なライセンスまたは許可を取得するために作られた試みの結果を得ることができますhttp://www.ietf.org/iprのIETFのオンラインIPRリポジトリから。

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

IETFは、その注意にこの標準を実装するために必要とされる技術をカバーすることができる任意の著作権、特許または特許出願、またはその他の所有権を持ってすべての利害関係者を招待します。 ietf-ipr@ietf.orgのIETFに情報を記述してください。