[要約] RFC 8732は、GSS-API Key Exchange with SHA2プロトコルに関する仕様を定めたものであり、セキュアな鍵交換を提供することを目的としています。

Internet Engineering Task Force (IETF)                          S. Sorce
Request for Comments: 8732                                      H. Kario
Updates: 4462                                              Red Hat, Inc.
Category: Standards Track                                  February 2020
ISSN: 2070-1721
        

Generic Security Service Application Program Interface (GSS-API) Key Exchange with SHA-2

Generic Security Serviceアプリケーションプログラムインターフェイス(GSS-API)SHA-2との鍵交換

Abstract

概要

This document specifies additions and amendments to RFC 4462. It defines a new key exchange method that uses SHA-2 for integrity and deprecates weak Diffie-Hellman (DH) groups. The purpose of this specification is to modernize the cryptographic primitives used by Generic Security Service (GSS) key exchanges.

このドキュメントでは、RFC 4462への追加と修正を指定しています。SHA-2を使用して整合性を確保し、弱いDiffie-Hellman(DH)グループを廃止する新しい鍵交換方法を定義しています。この仕様の目的は、Generic Security Service(GSS)鍵交換で使用される暗号プリミティブを最新のものにすることです。

Status of This Memo

本文書の状態

This is an Internet Standards Track document.

これはInternet Standards Trackドキュメントです。

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

このドキュメントは、IETF(Internet Engineering Task Force)の製品です。これは、IETFコミュニティのコンセンサスを表しています。公開レビューを受け、インターネットエンジニアリングステアリンググループ(IESG)による公開が承認されました。インターネット標準の詳細については、RFC 7841のセクション2をご覧ください。

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

このドキュメントの現在のステータス、正誤表、およびフィードバックの提供方法に関する情報は、https://www.rfc-editor.org/info/rfc8732で入手できます。

Copyright Notice

著作権表示

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

著作権(c)2020 IETFトラストおよびドキュメントの作成者として識別された人物。全著作権所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://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文書に関するIETFトラストの法的規定(https://trustee.ietf.org/license-info)の対象であり、この文書の発行日に有効です。これらのドキュメントは、このドキュメントに関するあなたの権利と制限を説明しているため、注意深く確認してください。このドキュメントから抽出されたコードコンポーネントには、Trust Legal Provisionsのセクション4.eに記載されているSimplified BSD Licenseテキストが含まれている必要があり、Simplified BSD Licenseに記載されているように保証なしで提供されます。

Table of Contents

目次

   1.  Introduction
   2.  Rationale
   3.  Document Conventions
   4.  New Diffie-Hellman Key Exchange Methods
   5.  New Elliptic Curve Diffie-Hellman Key Exchange Methods
     5.1.  Generic GSS-API Key Exchange with ECDH
     5.2.  ECDH Key Exchange Methods
   6.  Deprecated Algorithms
   7.  IANA Considerations
   8.  Security Considerations
     8.1.  New Finite Field DH Mechanisms
     8.2.  New Elliptic Curve DH Mechanisms
     8.3.  GSS-API Delegation
   9.  References
     9.1.  Normative References
     9.2.  Informative References
   Authors' Addresses
        
1. Introduction
1. はじめに

Secure Shell (SSH) Generic Security Service Application Program Interface (GSS-API) methods [RFC4462] allow the use of GSS-API [RFC2743] for authentication and key exchange in SSH. [RFC4462] defines three exchange methods all based on DH groups and SHA-1. This document updates [RFC4462] with new methods intended to support environments that desire to use the SHA-2 cryptographic hash functions.

セキュアシェル(SSH)汎用セキュリティサービスアプリケーションプログラムインターフェイス(GSS-API)メソッド[RFC4462]では、SSHでの認証とキー交換にGSS-API [RFC2743]を使用できます。 [RFC4462]は、すべてDHグループとSHA-1に基づく3つの交換方法を定義しています。このドキュメントは、SHA-2暗号化ハッシュ関数を使用したい環境をサポートすることを目的とした新しいメソッドで[RFC4462]を更新します。

2. Rationale
2. 根拠
   Due to security concerns with SHA-1 [RFC6194] and with modular
   exponentiation (MODP) groups with less than 2048 bits
   [NIST-SP-800-131Ar2], we propose the use of hashes based on SHA-2
   [RFC6234] with DH group14, group15, group16, group17, and group18
   [RFC3526].  Additionally, we add support for key exchange based on
   Elliptic Curve Diffie-Hellman with the NIST P-256, P-384, and P-521
   [SEC2v2], as well as the X25519 and X448 [RFC7748] curves.  Following
   the practice of [RFC8268], only SHA-256 and SHA-512 hashes are used
   for DH groups.  For NIST curves, the same curve-to-hashing algorithm
   pairing used in [RFC5656] is adopted for consistency.
        
3. Document Conventions
3. 文書規約

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

キーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「NOT RECOMMENDED」、「MAY」、「OPTIONALこのドキュメントの「」は、BCP 14 [RFC2119] [RFC8174]で説明されているように解釈されます。

4. New Diffie-Hellman Key Exchange Methods
4. 新しいDiffie-Hellman鍵交換方式

This document adopts the same naming convention defined in [RFC4462] to define families of methods that cover any GSS-API mechanism used with a specific Diffie-Hellman group and SHA-2 hash combination.

このドキュメントは、[RFC4462]で定義された同じ命名規則を採用して、特定のDiffie-HellmanグループとSHA-2ハッシュの組み合わせで使用されるGSS-APIメカニズムをカバーするメソッドのファミリを定義します。

       +--------------------------+--------------------------------+
       | Key Exchange Method Name | Implementation Recommendations |
       +==========================+================================+
       | gss-group14-sha256-*     | SHOULD/RECOMMENDED             |
       +--------------------------+--------------------------------+
       | gss-group15-sha512-*     | MAY/OPTIONAL                   |
       +--------------------------+--------------------------------+
       | gss-group16-sha512-*     | SHOULD/RECOMMENDED             |
       +--------------------------+--------------------------------+
       | gss-group17-sha512-*     | MAY/OPTIONAL                   |
       +--------------------------+--------------------------------+
       | gss-group18-sha512-*     | MAY/OPTIONAL                   |
       +--------------------------+--------------------------------+
        

Table 1: New Key Exchange Algorithms

表1:新しいキー交換アルゴリズム

Each key exchange method prefix is registered by this document. The IESG is the change controller of all these key exchange methods; this does NOT imply that the IESG is considered to be in control of the corresponding GSS-API mechanism.

このドキュメントでは、各キー交換メソッドのプレフィックスが登録されています。 IESGは、これらすべての鍵交換方法の変更コントローラーです。これは、IESGが対応するGSS-APIメカニズムを制御していると見なされることを意味するものではありません。

Each method in any family of methods (Table 2) specifies GSS-API-authenticated Diffie-Hellman key exchanges as described in Section 2.1 of [RFC4462]. The method name for each method (Table 1) is the concatenation of the family name prefix with the base64 encoding of the MD5 hash [RFC1321] of the ASN.1 DER encoding [ISO-IEC-8825-1] of the corresponding GSS-API mechanism's OID. Base64 encoding is described in Section 4 of [RFC4648].

[RFC4462]のセクション2.1で説明されているように、メソッドのファミリー(表2)の各メソッドは、GSS-APIで認証されたDiffie-Hellman鍵交換を指定します。各メソッドのメソッド名(表1)は、対応するGSS-のASN.1 DERエンコーディング[ISO-IEC-8825-1]のMD5ハッシュ[RFC1321]のbase64エンコーディングとファミリプレフィックスを連結したものです。 APIメカニズムのOID。 Base64エンコードについては、[RFC4648]のセクション4で説明されています。

     +---------------------+---------------+----------+--------------+
     | Family Name Prefix  | Hash Function | Group    | Reference    |
     +=====================+===============+==========+==============+
     | gss-group14-sha256- | SHA-256       | 2048-bit | Section 3 of |
     |                     |               | MODP     | [RFC3526]    |
     +---------------------+---------------+----------+--------------+
     | gss-group15-sha512- | SHA-512       | 3072-bit | Section 4 of |
     |                     |               | MODP     | [RFC3526]    |
     +---------------------+---------------+----------+--------------+
     | gss-group16-sha512- | SHA-512       | 4096-bit | Section 5 of |
     |                     |               | MODP     | [RFC3526]    |
     +---------------------+---------------+----------+--------------+
     | gss-group17-sha512- | SHA-512       | 6144-bit | Section 6 of |
     |                     |               | MODP     | [RFC3526]    |
     +---------------------+---------------+----------+--------------+
     | gss-group18-sha512- | SHA-512       | 8192-bit | Section 7 of |
     |                     |               | MODP     | [RFC3526]    |
     +---------------------+---------------+----------+--------------+
        

Table 2: Family Method References

表2:ファミリメソッドの参照

5. New Elliptic Curve Diffie-Hellman Key Exchange Methods
5. 新しい楕円曲線Diffie-Hellmanキー交換メソッド

In [RFC5656], new SSH key exchange algorithms based on elliptic curve cryptography are introduced. We reuse much of Section 4 of [RFC5656] to define GSS-API-authenticated Elliptic Curve Diffie-Hellman (ECDH) key exchanges.

[RFC5656]では、楕円曲線暗号に基づく新しいSSH鍵交換アルゴリズムが導入されています。 [RFC5656]のセクション4の多くを再利用して、GSS-APIで認証された楕円曲線Diffie-Hellman(ECDH)鍵交換を定義します。

Additionally, we also utilize the curves defined in [RFC8731] to complement the three classic NIST-defined curves required by [RFC5656].

さらに、[RFC8731]で定義された曲線を利用して、[RFC5656]で必要とされる3つの古典的なNIST定義曲線を補完します。

5.1. Generic GSS-API Key Exchange with ECDH
5.1. ECDHとの汎用GSS-APIキー交換

This section reuses much of the scheme defined in Section 2.1 of [RFC4462] and combines it with the scheme defined in Section 4 of [RFC5656]; in particular, all checks and verification steps prescribed in Section 4 of [RFC5656] apply here as well.

このセクションでは、[RFC4462]のセクション2.1で定義されたスキームの多くを再利用し、[RFC5656]のセクション4で定義されたスキームと組み合わせます。特に、[RFC5656]のセクション4で規定されているすべてのチェックと検証の手順がここでも適用されます。

The key-agreement schemes "ECDHE-Curve25519" and "ECDHE-Curve448" perform the Diffie-Hellman protocol using the functions X25519 and X448, respectively. Implementations MUST compute these functions using the algorithms described in [RFC7748]. When they do so, implementations MUST check whether the computed Diffie-Hellman shared secret is the all-zero value and abort if so, as described in Section 6 of [RFC7748]. Alternative implementations of these functions SHOULD abort when either the client or the server input forces the shared secret to one of a small set of values, as described in Sections 6 and 7 of [RFC7748].

鍵合意方式「ECDHE-Curve25519」および「ECDHE-Curve448」は、それぞれ関数X25519およびX448を使用してDiffie-Hellmanプロトコルを実行します。 [RFC7748]で説明されているアルゴリズムを使用して、実装はこれらの関数を計算しなければなりません。その場合、[RFC7748]のセクション6で説明されているように、実装は計算されたDiffie-Hellman共有秘密がすべてゼロの値であるかどうかをチェックし、そうである場合は中止する必要があります。これらの関数の代替実装は、[RFC7748]のセクション6と7で説明されているように、クライアントまたはサーバーの入力が共有シークレットを小さな値のセットの1つに強制したときに中止する必要があります(SHOULD)。

This section defers to [RFC7546] as the source of information on GSS-API context establishment operations, Section 3 being the most relevant. All security considerations described in [RFC7546] apply here, too.

このセクションは、GSS-APIコンテキスト確立操作に関する情報のソースとして[RFC7546]に従います。セクション3が最も関連性があります。 [RFC7546]で説明されているすべてのセキュリティの考慮事項もここに適用されます。

The parties each generate an ephemeral key pair, according to Section 3.2.1 of [SEC1v2]. Keys are verified upon receipt by the parties according to Section 3.2.3.1 of [SEC1v2].

[SEC1v2]のセクション3.2.1に従って、当事者はそれぞれ短命鍵ペアを生成します。 [SEC1v2]のセクション3.2.3.1に従って、当事者が鍵を受け取ったときに検証されます。

For NIST curves, the keys use the uncompressed point representation and MUST be converted using the algorithm in Section 2.3.4 of [SEC1v2]. If the conversion fails or the point is transmitted using the compressed representation, the key exchange MUST fail.

NIST曲線の場合、キーは非圧縮ポイント表現を使用し、[SEC1v2]のセクション2.3.4のアルゴリズムを使用して変換する必要があります。変換が失敗するか、ポイントが圧縮表現を使用して送信される場合、キー交換は失敗する必要があります。

A GSS context is established according to Section 4 of [RFC5656]; the client initiates the establishment using GSS_Init_sec_context(), and the server responds to it using GSS_Accept_sec_context(). For the negotiation, the client MUST set mutual_req_flag and integ_req_flag to "true". In addition, deleg_req_flag MAY be set to "true" to request access delegation, if requested by the user. Since the key exchange process authenticates only the host, the setting of anon_req_flag is immaterial to this process. If the client does not support the "gssapi-keyex" user authentication method described in Section 4 of [RFC4462], or does not intend to use that method in conjunction with the GSS-API context established during key exchange, then anon_req_flag SHOULD be set to "true". Otherwise, this flag MAY be set to "true" if the client wishes to hide its identity. This key exchange process will exchange only a single message token once the context has been established; therefore, the replay_det_req_flag and sequence_req_flag SHOULD be set to "false".

GSSコンテキストは、[RFC5656]のセクション4に従って確立されます。クライアントはGSS_Init_sec_context()を使用して確立を開始し、サーバーはGSS_Accept_sec_context()を使用してそれに応答します。ネゴシエーションの場合、クライアントは、mutual_req_flagおよびinteg_req_flagを「true」に設定する必要があります。さらに、ユーザーから要求された場合、deleg_req_flagを「true」に設定して、アクセスの委任を要求してもよい(MAY)。鍵交換プロセスはホストのみを認証するため、anon_req_flagの設定はこのプロセスには重要ではありません。クライアントが[RFC4462]のセクション4で説明されている「gssapi-keyex」ユーザー認証方法をサポートしていない場合、または鍵交換中に確立されたGSS-APIコンテキストと一緒にその方法を使用する予定がない場合は、anon_req_flagを設定する必要があります(SHOULD) 「真」に。それ以外の場合、クライアントがIDを非表示にする場合は、このフラグを「true」に設定できます。この鍵交換プロセスは、コンテキストが確立されると、単一のメッセージトークンのみを交換します。したがって、replay_det_req_flagおよびsequence_req_flagは「false」に設定する必要があります。

The client MUST include its public key with the first message it sends to the server during this process; if the server receives more than one key or none at all, the key exchange MUST fail.

クライアントは、このプロセス中にサーバーに送信する最初のメッセージに公開鍵を含める必要があります。サーバーが複数のキーを受信するか、まったく受信しない場合、キー交換は失敗する必要があります。

During GSS context establishment, multiple tokens may be exchanged by the client and the server. When the GSS context is established (major_status is GSS_S_COMPLETE), the parties check that mutual_state and integ_avail are both "true". If not, the key exchange MUST fail.

GSSコンテキストの確立中に、クライアントとサーバーは複数のトークンを交換できます。 GSSコンテキストが確立されると(major_statusがGSS_S_COMPLETE)、パーティは、mutual_stateとinteg_availがどちらも「true」であることを確認します。そうでない場合、鍵交換は失敗する必要があります。

Once a party receives the peer's public key, it proceeds to compute a shared secret K. For NIST curves, the computation is done according to Section 3.3.1 of [SEC1v2], and the resulting value z is converted to the octet string K using the conversion defined in Section 2.3.5 of [SEC1v2]. For curve25519 and curve448, the algorithms in Section 6 of [RFC7748] are used instead.

当事者がピアの公開鍵を受信すると、共有秘密Kの計算に進みます。NIST曲線の場合、計算は[SEC1v2]のセクション3.3.1に従って行われ、結果の値zはオクテット文字列Kに変換されます。 [SEC1v2]のセクション2.3.5で定義されている変換。 curve25519およびcurve448の場合は、[RFC7748]のセクション6のアルゴリズムが代わりに使用されます。

To verify the integrity of the handshake, peers use the hash function defined by the selected key exchange method to calculate H:

ピアは、ハンドシェイクの整合性を検証するために、選択した鍵交換方法で定義されたハッシュ関数を使用してHを計算します。

H = hash(V_C || V_S || I_C || I_S || K_S || Q_C || Q_S || K).

H =ハッシュ(V_C || V_S || I_C || I_S || K_S || Q_C || Q_S || K)。

The server uses the GSS_GetMIC() call with H as the payload to generate a Message Integrity Code (MIC). The GSS_VerifyMIC() call is used by the client to verify the MIC.

サーバーは、ペイロードとしてHを指定したGSS_GetMIC()呼び出しを使用して、メッセージ整合性コード(MIC)を生成します。 GSS_VerifyMIC()呼び出しは、MICを検証するためにクライアントによって使用されます。

If any GSS_Init_sec_context() or GSS_Accept_sec_context() returns a major_status other than GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED, or any other GSS-API call returns a major_status other than GSS_S_COMPLETE, the key exchange MUST fail. The same recommendations expressed in Section 2.1 of [RFC4462] are followed with regard to error reporting.

GSS_Init_sec_context()またはGSS_Accept_sec_context()がGSS_S_COMPLETEまたはGSS_S_CONTINUE_NEEDED以外のmajor_statusを返す場合、または他のGSS-API呼び出しがGSS_S_COMPLETE以外のmajor_statusを返す場合、キー交換は失敗する必要があります。エラー報告に関しては、[RFC4462]のセクション2.1に記載されているのと同じ推奨事項に従います。

The following is an overview of the key exchange process:

以下は、鍵交換プロセスの概要です。

       Client                                                Server
       ------                                                ------
       Generates ephemeral key pair.
       Calls GSS_Init_sec_context().
       SSH_MSG_KEXGSS_INIT  --------------->
        
                                              Verifies received key.
   (Optional)                  <------------- SSH_MSG_KEXGSS_HOSTKEY
        
   (Loop)
   |                                 Calls GSS_Accept_sec_context().
   |                           <------------ SSH_MSG_KEXGSS_CONTINUE
   |   Calls GSS_Init_sec_context().
   |   SSH_MSG_KEXGSS_CONTINUE ------------>
        
                                     Calls GSS_Accept_sec_context().
                                       Generates ephemeral key pair.
                                             Computes shared secret.
                                                    Computes hash H.
                                        Calls GSS_GetMIC( H ) = MIC.
                               <------------ SSH_MSG_KEXGSS_COMPLETE
        

Verifies received key. Computes shared secret. Computes hash H. Calls GSS_VerifyMIC( MIC, H ).

受信した鍵を検証します。共有秘密を計算します。ハッシュHを計算します。GSS_VerifyMIC(MIC、H)を呼び出します。

This is implemented with the following messages:

これは、次のメッセージで実装されます。

The client sends:

クライアントは次のものを送信します。

byte SSH_MSG_KEXGSS_INIT string output_token (from GSS_Init_sec_context()) string Q_C, client's ephemeral public key octet string

バイトSSH_MSG_KEXGSS_INIT文字列output_token(GSS_Init_sec_context()から)文字列Q_C、クライアントの一時的な公開鍵オクテット文字列

The server may respond with:

サーバーは次のように応答します。

byte SSH_MSG_KEXGSS_HOSTKEY string server public host key and certificates (K_S)

バイトSSH_MSG_KEXGSS_HOSTKEY文字列サーバーの公開ホストの鍵と証明書(K_S)

The server sends:

サーバーは次のものを送信します。

byte SSH_MSG_KEXGSS_CONTINUE string output_token (from GSS_Accept_sec_context())

バイトSSH_MSG_KEXGSS_CONTINUE文字列output_token(GSS_Accept_sec_context()から)

Each time the client receives the message described above, it makes another call to GSS_Init_sec_context().

クライアントは、上記のメッセージを受信するたびに、GSS_Init_sec_context()をもう一度呼び出します。

The client sends:

クライアントは次のものを送信します。

byte SSH_MSG_KEXGSS_CONTINUE string output_token (from GSS_Init_sec_context())

バイトSSH_MSG_KEXGSS_CONTINUE文字列output_token(GSS_Init_sec_context()から)

As the final message, the server sends the following if an output_token is produced:

最後のメッセージとして、output_tokenが生成された場合、サーバーは以下を送信します。

byte SSH_MSG_KEXGSS_COMPLETE string Q_S, server's ephemeral public key octet string string mic_token (MIC of H) boolean TRUE string output_token (from GSS_Accept_sec_context())

バイトSSH_MSG_KEXGSS_COMPLETE文字列Q_S、サーバーの一時的な公開鍵オクテット文字列文字列mic_token(MIC of H)ブール値TRUE文字列output_token(GSS_Accept_sec_context()から)

If no output_token is produced, the server sends:

output_tokenが生成されない場合、サーバーは以下を送信します。

byte SSH_MSG_KEXGSS_COMPLETE string Q_S, server's ephemeral public key octet string string mic_token (MIC of H) boolean FALSE

バイトSSH_MSG_KEXGSS_COMPLETE文字列Q_S、サーバーの一時公開鍵オクテット文字列文字列mic_token(MIC of H)ブールFALSE

The hash H is computed as the HASH hash of the concatenation of the following:

ハッシュHは、次の連結のHASHハッシュとして計算されます。

string V_C, the client's version string (CR, NL excluded) string V_S, server's version string (CR, NL excluded) string I_C, payload of the client's SSH_MSG_KEXINIT string I_S, payload of the server's SSH_MSG_KEXINIT string K_S, server's public host key string Q_C, client's ephemeral public key octet string string Q_S, server's ephemeral public key octet string mpint K, shared secret

文字列V_C、クライアントのバージョン文字列(CR、NL除外)文字列V_S、サーバーのバージョン文字列(CR、NL除外)文字列I_C、クライアントのSSH_MSG_KEXINIT文字列I_S、サーバーのSSH_MSG_KEXINIT文字列K_S、サーバーの公開ホストキー文字列Q_C 、クライアントの一時公開鍵オクテット文字列文字列Q_S、サーバーの一時公開鍵オクテット文字列mpint K、共有秘密

This value is called the "exchange hash", and it is used to authenticate the key exchange. The exchange hash SHOULD be kept secret. If no SSH_MSG_KEXGSS_HOSTKEY message has been sent by the server or received by the client, then the empty string is used in place of K_S when computing the exchange hash.

この値は「交換ハッシュ」と呼ばれ、鍵交換の認証に使用されます。交換ハッシュは秘密にしてください。 SSH_MSG_KEXGSS_HOSTKEYメッセージがサーバーによって送信されていないか、クライアントによって受信されていない場合、交換ハッシュを計算するときにK_Sの代わりに空の文字列が使用されます。

Since this key exchange method does not require the host key to be used for any encryption operations, the SSH_MSG_KEXGSS_HOSTKEY message is OPTIONAL. If the "null" host key algorithm described in Section 5 of [RFC4462] is used, this message MUST NOT be sent.

この鍵交換方式では、暗号化操作にホスト鍵を使用する必要がないため、SSH_MSG_KEXGSS_HOSTKEYメッセージはオプションです。 [RFC4462]のセクション5で説明されている「null」のホスト鍵アルゴリズムを使用する場合、このメッセージを送信してはなりません(MUST NOT)。

If the client receives an SSH_MSG_KEXGSS_CONTINUE message after a call to GSS_Init_sec_context() has returned a major_status code of GSS_S_COMPLETE, a protocol error has occurred, and the key exchange MUST fail.

GSS_Init_sec_context()への呼び出しがGSS_S_COMPLETEのmajor_statusコードを返した後にクライアントがSSH_MSG_KEXGSS_CONTINUEメッセージを受信した場合、プロトコルエラーが発生し、キー交換は失敗しなければなりません(MUST)。

If the client receives an SSH_MSG_KEXGSS_COMPLETE message and a call to GSS_Init_sec_context() does not result in a major_status code of GSS_S_COMPLETE, a protocol error has occurred, and the key exchange MUST fail.

クライアントがSSH_MSG_KEXGSS_COMPLETEメッセージを受信し、GSS_Init_sec_context()を呼び出しても結果がGSS_S_COMPLETEのmajor_statusコードにならない場合、プロトコルエラーが発生しており、鍵交換は失敗しなければなりません(MUST)。

5.2. ECDH Key Exchange Methods
5.2. ECDH鍵交換方式
       +--------------------------+--------------------------------+
       | Key Exchange Method Name | Implementation Recommendations |
       +==========================+================================+
       | gss-nistp256-sha256-*    | SHOULD/RECOMMENDED             |
       +--------------------------+--------------------------------+
       | gss-nistp384-sha384-*    | MAY/OPTIONAL                   |
       +--------------------------+--------------------------------+
       | gss-nistp521-sha512-*    | MAY/OPTIONAL                   |
       +--------------------------+--------------------------------+
       | gss-curve25519-sha256-*  | SHOULD/RECOMMENDED             |
       +--------------------------+--------------------------------+
       | gss-curve448-sha512-*    | MAY/OPTIONAL                   |
       +--------------------------+--------------------------------+
        

Table 3: New Key Exchange Methods

表3:新しいキー交換方法

Each key exchange method prefix is registered by this document. The IESG is the change controller of all these key exchange methods; this does NOT imply that the IESG is considered to be in control of the corresponding GSS-API mechanism.

このドキュメントでは、各キー交換メソッドのプレフィックスが登録されています。 IESGは、これらすべての鍵交換方法の変更コントローラーです。これは、IESGが対応するGSS-APIメカニズムを制御していると見なされることを意味するものではありません。

Each method in any family of methods (Table 4) specifies GSS-API-authenticated Elliptic Curve Diffie-Hellman key exchanges as described in Section 5.1. The method name for each method (Table 3) is the concatenation of the family method name with the base64 encoding of the MD5 hash [RFC1321] of the ASN.1 DER encoding [ISO-IEC-8825-1] of the corresponding GSS-API mechanism's OID. Base64 encoding is described in Section 4 of [RFC4648].

メソッドのファミリー(表4)の各メソッドは、5.1節で説明されているように、GSS-API認証の楕円曲線Diffie-Hellman鍵交換を指定します。各メソッドのメソッド名(表3)は、対応するGSS-のASN.1 DERエンコーディング[ISO-IEC-8825-1]のMD5ハッシュ[RFC1321]のbase64エンコーディングとファミリメソッド名を連結したものです。 APIメカニズムのOID。 Base64エンコードについては、[RFC4648]のセクション4で説明されています。

   +------------------------+----------+---------------+---------------+
   | Family Name Prefix     | Hash     | Parameters /  | Definition    |
   |                        | Function | Function Name |               |
   +========================+==========+===============+===============+
   | gss-nistp256-sha256-   | SHA-256  | secp256r1     | Section       |
   |                        |          |               | 2.4.2 of      |
   |                        |          |               | [SEC2v2]      |
   +------------------------+----------+---------------+---------------+
   | gss-nistp384-sha384-   | SHA-384  | secp384r1     | Section       |
   |                        |          |               | 2.5.1 of      |
   |                        |          |               | [SEC2v2]      |
   +------------------------+----------+---------------+---------------+
   | gss-nistp521-sha512-   | SHA-512  | secp521r1     | Section       |
   |                        |          |               | 2.6.1 of      |
   |                        |          |               | [SEC2v2]      |
   +------------------------+----------+---------------+---------------+
   | gss-curve25519-sha256- | SHA-256  | X22519        | Section 5     |
   |                        |          |               | of            |
   |                        |          |               | [RFC7748]     |
   +------------------------+----------+---------------+---------------+
   | gss-curve448-sha512-   | SHA-512  | X448          | Section 5     |
   |                        |          |               | of            |
   |                        |          |               | [RFC7748]     |
   +------------------------+----------+---------------+---------------+
        

Table 4: Family Method References

表4:ファミリメソッドのリファレンス

6. Deprecated Algorithms
6. 非推奨のアルゴリズム

Because they have small key lengths and are no longer strong in the face of brute-force attacks, the algorithms in the following table are considered deprecated and SHOULD NOT be used.

キーの長さが短く、ブルートフォース攻撃を受けても強力ではなくなるため、次の表のアルゴリズムは非推奨と見なされ、使用しないでください。

       +--------------------------+--------------------------------+
       | Key Exchange Method Name | Implementation Recommendations |
       +==========================+================================+
       | gss-group1-sha1-*        | SHOULD NOT                     |
       +--------------------------+--------------------------------+
       | gss-group14-sha1-*       | SHOULD NOT                     |
       +--------------------------+--------------------------------+
       | gss-gex-sha1-*           | SHOULD NOT                     |
       +--------------------------+--------------------------------+
        

Table 5: Deprecated Algorithms

表5:非推奨のアルゴリズム

7. IANA Considerations
7. IANAに関する考慮事項

This document augments the SSH key exchange message names that were defined in [RFC4462] (see and Section 6); IANA has listed this document as reference for those entries in the "SSH Protocol Parameters" [IANA-KEX-NAMES] registry.

このドキュメントは、[RFC4462]で定義されたSSH鍵交換メッセージ名を補強します(およびセクション6を参照)。 IANAは、このドキュメントを「SSHプロトコルパラメータ」[IANA-KEX-NAMES]レジストリのエントリの参照としてリストしました。

In addition, IANA has updated the registry to include the SSH key exchange message names described in Sections 4 and 5.

さらに、IANAはレジストリを更新して、セクション4および5で説明されているSSHキー交換メッセージ名を含めました。

                 +--------------------------+-----------+
                 | Key Exchange Method Name | Reference |
                 +==========================+===========+
                 | gss-group1-sha1-*        | RFC 8732  |
                 +--------------------------+-----------+
                 | gss-group14-sha1-*       | RFC 8732  |
                 +--------------------------+-----------+
                 | gss-gex-sha1-*           | RFC 8732  |
                 +--------------------------+-----------+
                 | gss-group14-sha256-*     | RFC 8732  |
                 +--------------------------+-----------+
                 | gss-group15-sha512-*     | RFC 8732  |
                 +--------------------------+-----------+
                 | gss-group16-sha512-*     | RFC 8732  |
                 +--------------------------+-----------+
                 | gss-group17-sha512-*     | RFC 8732  |
                 +--------------------------+-----------+
                 | gss-group18-sha512-*     | RFC 8732  |
                 +--------------------------+-----------+
                 | gss-nistp256-sha256-*    | RFC 8732  |
                 +--------------------------+-----------+
                 | gss-nistp384-sha384-*    | RFC 8732  |
                 +--------------------------+-----------+
                 | gss-nistp521-sha512-*    | RFC 8732  |
                 +--------------------------+-----------+
                 | gss-curve25519-sha256-*  | RFC 8732  |
                 +--------------------------+-----------+
                 | gss-curve448-sha512-*    | RFC 8732  |
                 +--------------------------+-----------+
        

Table 6: Additions/Changes to the Key Exchange Method Names Registry

表6:キー交換メソッド名レジストリへの追加/変更

8. Security Considerations
8. セキュリティに関する考慮事項
8.1. New Finite Field DH Mechanisms
8.1. 新しい有限フィールドDHメカニズム

Except for the use of a different secure hash function and larger DH groups, no significant changes have been made to the protocol described by [RFC4462]; therefore, all the original security considerations apply.

異なる安全なハッシュ関数とより大きなDHグループの使用を除いて、[RFC4462]で説明されているプロトコルに大きな変更は加えられていません。したがって、元のセキュリティに関する考慮事項がすべて適用されます。

8.2. New Elliptic Curve DH Mechanisms
8.2. 新しい楕円曲線DHメカニズム

Although a new cryptographic primitive is used with these methods, the actual key exchange closely follows the key exchange defined in [RFC5656]; therefore, all the original security considerations, as well as those expressed in [RFC5656], apply.

これらの方法では新しい暗号プリミティブが使用されますが、実際の鍵交換は[RFC5656]で定義されている鍵交換に厳密に従います。したがって、元のセキュリティに関するすべての考慮事項と、[RFC5656]に記載されている考慮事項が適用されます。

8.3. GSS-API Delegation
8.3. GSS-API委任

Some GSS-API mechanisms can act on a request to delegate credentials to the target host when the deleg_req_flag is set. In this case, extra care must be taken to ensure that the acceptor being authenticated matches the target the user intended. Some mechanism implementations (such as commonly used krb5 libraries) may use insecure DNS resolution to canonicalize the target name; in these cases, spoofing a DNS response that points to an attacker-controlled machine may result in the user silently delegating credentials to the attacker, who can then impersonate the user at will.

一部のGSS-APIメカニズムは、deleg_req_flagが設定されている場合、要求に基づいて資格情報をターゲットホストに委任できます。この場合、認証されるアクセプターがユーザーの意図するターゲットと確実に一致するように、さらに注意が必要です。一部のメカニズム実装(一般的に使用されるkrb5ライブラリなど)では、安全でないDNS解決を使用してターゲット名を正規化する場合があります。このような場合、攻撃者が制御するマシンを指すDNS応答をスプーフィングすると、ユーザーは秘密裏に資格情報を攻撃者に委任し、攻撃者は自由にユーザーになりすますことができます。

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

[RFC1321] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, DOI 10.17487/RFC1321, April 1992, <https://www.rfc-editor.org/info/rfc1321>.

[RFC1321] Rivest、R。、「The MD5 Message-Digest Algorithm」、RFC 1321、DOI 10.17487 / RFC1321、1992年4月、<https://www.rfc-editor.org/info/rfc1321>。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>.

[RFC2119] Bradner、S。、「要件レベルを示すためにRFCで使用するキーワード」、BCP 14、RFC 2119、DOI 10.17487 / RFC2119、1997年3月、<https://www.rfc-editor.org/info/ rfc2119>。

[RFC2743] Linn, J., "Generic Security Service Application Program Interface Version 2, Update 1", RFC 2743, DOI 10.17487/RFC2743, January 2000, <https://www.rfc-editor.org/info/rfc2743>.

[RFC2743] Linn、J。、「Generic Security Service Application Program Interface Version 2、Update 1」、RFC 2743、DOI 10.17487 / RFC2743、2000年1月、<https://www.rfc-editor.org/info/rfc2743> 。

[RFC3526] Kivinen, T. and M. Kojo, "More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)", RFC 3526, DOI 10.17487/RFC3526, May 2003, <https://www.rfc-editor.org/info/rfc3526>.

[RFC3526] Kivinen、T。、およびM. Kojo、「インターネット鍵交換(IKE)のためのその他のModular Exponential(MODP)Diffie-Hellmanグループ」、RFC 3526、DOI 10.17487 / RFC3526、2003年5月、<https:// www。 rfc-editor.org/info/rfc3526>。

[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, DOI 10.17487/RFC4462, May 2006, <https://www.rfc-editor.org/info/rfc4462>.

[RFC4462] Hutzelman、J.、Salowey、J.、Galbraith、J。、およびV. Welch、「Generic Security Service Application Program Interface(GSS-API)Authentication and Key Exchange for the Secure Shell(SSH)Protocol」、RFC 4462、DOI 10.17487 / RFC4462、2006年5月、<https://www.rfc-editor.org/info/rfc4462>。

[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, <https://www.rfc-editor.org/info/rfc4648>.

[RFC4648] Josefsson、S。、「The Base16、Base32、およびBase64データエンコーディング」、RFC 4648、DOI 10.17487 / RFC4648、2006年10月、<https://www.rfc-editor.org/info/rfc4648>。

[RFC5656] Stebila, D. and J. Green, "Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer", RFC 5656, DOI 10.17487/RFC5656, December 2009, <https://www.rfc-editor.org/info/rfc5656>.

[RFC5656] Stebila、D。およびJ. Green、「Secure Shell Transport Layerにおける楕円曲線アルゴリズムの統合」、RFC 5656、DOI 10.17487 / RFC5656、2009年12月、<https://www.rfc-editor.org/info / rfc5656>。

[RFC7546] Kaduk, B., "Structure of the Generic Security Service (GSS) Negotiation Loop", RFC 7546, DOI 10.17487/RFC7546, May 2015, <https://www.rfc-editor.org/info/rfc7546>.

[RFC7546] Kaduk、B。、「Structure of the Generic Security Service(GSS)Negotiation Loop」、RFC 7546、DOI 10.17487 / RFC7546、May 2015、<https://www.rfc-editor.org/info/rfc7546> 。

[RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves for Security", RFC 7748, DOI 10.17487/RFC7748, January 2016, <https://www.rfc-editor.org/info/rfc7748>.

[RFC7748]ラングレー、A。、ハンブルク、M。、およびS.ターナー、「セキュリティのための楕円曲線」、RFC 7748、DOI 10.17487 / RFC7748、2016年1月、<https://www.rfc-editor.org/info / rfc7748>。

[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.

[RFC8174] Leiba、B。、「RFC 2119キーワードの大文字と小文字のあいまいさ」、BCP 14、RFC 8174、DOI 10.17487 / RFC8174、2017年5月、<https://www.rfc-editor.org/info/ rfc8174>。

[RFC8731] Adamantiadis, A., Josefsson, S., and M. Baushke, "Secure Shell (SSH) Key Exchange Method Using Curve25519 and Curve448", RFC 8731, DOI 10.17487/RFC8731, February 2020, <https://www.rfc-editor.org/info/rfc8731>.

[RFC8731] Adamantiadis、A.、Josefsson、S。、およびM. Baushke、「Curve25519およびCurve448を使用したセキュアシェル(SSH)鍵交換方式」、RFC 8731、DOI 10.17487 / RFC8731、2020年2月、<https:// www .rfc-editor.org / info / rfc8731>。

[SEC1v2] Standards for Efficient Cryptography Group, "SEC 1: Elliptic Curve Cryptography", Version 2.0, May 2009.

[SEC1v2] Standards for Efficient Cryptography Group、「SEC 1:Elliptic Curve Cryptography」、バージョン2.0、2009年5月。

[SEC2v2] Standards for Elliptic Cryptography Group, "SEC 2: Recommended Elliptic Curve Domain Parameters", Version 2.0, January 2010.

[SEC2v2]楕円暗号グループの標準、「SEC 2:推奨される楕円曲線ドメインパラメータ」、バージョン2.0、2010年1月。

9.2. Informative References
9.2. 参考引用

[IANA-KEX-NAMES] IANA, "Secure Shell (SSH) Protocol Parameters: Key Exchange Method Names", <https://www.iana.org/assignments/ssh-parameters/>.

[IANA-KEX-NAMES] IANA、「Secure Shell(SSH)Protocol Parameters:Key Exchange Method Names」、<https://www.iana.org/assignments/ssh-parameters/>。

[ISO-IEC-8825-1] ITU-T, "Information technology -- ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)", ISO/IEC 8825-1:2015, ITU-T Recommendation X.690, November 2015, <http://standards.iso.org/ittf/PubliclyAvailableStandards/ c068345_ISO_IEC_8825-1_2015.zip>.

[ISO-IEC-8825-1] ITU-T、「情報技術-ASN.1エンコーディングルール:基本エンコーディングルール(BER)、正規エンコーディングルール(CER)およびDistinguished Encodingルール(DER)の仕様」、ISO / IEC 8825-1:2015、ITU-T勧告X.690、2015年11月、<http://standards.iso.org/ittf/PubliclyAvailableStandards/ c068345_ISO_IEC_8825-1_2015.zip>。

[NIST-SP-800-131Ar2] National Institute of Standards and Technology, "Transitioning of the Use of Cryptographic Algorithms and Key Lengths", DOI 10.6028/NIST.SP.800-131Ar2, NIST Special Publication 800-131A Revision 2, November 2015, <https://nvlpubs.nist.gov/nistpubs/SpecialPublications/ NIST.SP.800-131Ar2.pdf>.

[NIST-SP-800-131Ar2]国立標準技術研究所、「暗号化アルゴリズムとキー長の使用の移行」、DOI 10.6028 / NIST.SP.800-131Ar2、NIST Special Publication 800-131A Revision 2、11月2015、<https://nvlpubs.nist.gov/nistpubs/SpecialPublications/ NIST.SP.800-131Ar2.pdf>。

[RFC6194] Polk, T., Chen, L., Turner, S., and P. Hoffman, "Security Considerations for the SHA-0 and SHA-1 Message-Digest Algorithms", RFC 6194, DOI 10.17487/RFC6194, March 2011, <https://www.rfc-editor.org/info/rfc6194>.

[RFC6194] Polk、T.、Chen、L.、Turner、S。、およびP. Hoffman、「SHA-0およびSHA-1メッセージダイジェストアルゴリズムのセキュリティに関する考慮事項」、RFC 6194、DOI 10.17487 / RFC6194、3月2011、<https://www.rfc-editor.org/info/rfc6194>。

[RFC6234] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)", RFC 6234, DOI 10.17487/RFC6234, May 2011, <https://www.rfc-editor.org/info/rfc6234>.

[RFC6234] Eastlake 3rd、D。およびT. Hansen、「US Secure Hash Algorithms(SHA and SHA-based HMAC and HKDF)」、RFC 6234、DOI 10.17487 / RFC6234、2011年5月、<https://www.rfc- editor.org/info/rfc6234>。

[RFC8268] Baushke, M., "More Modular Exponentiation (MODP) Diffie-Hellman (DH) Key Exchange (KEX) Groups for Secure Shell (SSH)", RFC 8268, DOI 10.17487/RFC8268, December 2017, <https://www.rfc-editor.org/info/rfc8268>.

[RFC8268] Baushke、M。、「More Modular Exponentiation(MODP)Diffie-Hellman(DH)Key Exchange(KEX)Groups for Secure Shell(SSH)」、RFC 8268、DOI 10.17487 / RFC8268、2017年12月、<https:/ /www.rfc-editor.org/info/rfc8268>。

Authors' Addresses

著者のアドレス

Simo Sorce Red Hat, Inc. 140 Broadway, 24th Floor New York, NY 10025 United States of America

Simo Sorce Red Hat、Inc. 140 Broadway、24th Floor New York、NY 10025アメリカ合衆国

   Email: simo@redhat.com
        

Hubert Kario Red Hat, Inc. Purkynova 115 612 00 Brno Czech Republic

Hubert Kario Red Hat、Inc. Purkynova 115 612 00ブルノチェコ

   Email: hkario@redhat.com