メインコンテンツまでスキップ

4.2. 推奨される暗号スイート (Recommended Cipher Suites)

前述の考慮事項を踏まえ、以下の暗号スイートの実装と展開が推奨されます (RECOMMENDED):

  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

これらの暗号スイートは、認証付き暗号 (AEAD) アルゴリズム [RFC5116] であるため、TLS 1.2でのみサポートされています。

通常、これらのスイートを優先するためには、サーバーソフトウェアでスイートの順序を明示的に構成する必要があります。(役立つ展開ガイドラインについては [BETTERCRYPTO] を参照してください。ただし、その推奨事項は本文書といくつかの詳細で異なります。) サーバーソフトウェアの実装がデフォルトでこれらのスイートを優先するのが理想的です。

一部のデバイスはAES-CCMのハードウェアサポートを持っていますが、AES-GCMはサポートしていないため、暗号スイートに関する前述の推奨事項に従うことができません。公開鍵暗号をまったくサポートしていないデバイスさえありますが、それらは完全に範囲外です。

4.2.1. 実装の詳細

クライアントは、TLS 1.2 client_helloメッセージに応答できないという事前知識がない限り、任意のサーバーに対する最初の提案としてTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256を含めるべきです (SHOULD)。

サーバーは、この暗号スイートが最初の提案でなくても、提案された場合は常により弱い暗号スイートよりもこの暗号スイートを優先しなければなりません (MUST)。

クライアントはもちろん、AES-256を使用するなど、より強力な暗号スイートを自由に提供できます。その場合、深刻なパフォーマンス低下などの説得力のある理由がない限り、サーバーはより強力な暗号スイートを優先すべきです (SHOULD)。

本文書は、TLSによって規定される必須実装のTLS暗号スイートを変更するものではありません。相互運用性を最大化するため、RFC 5246はTLS_RSA_WITH_AES_128_CBC_SHA暗号スイートの実装を義務付けていますが、これはここで推奨される暗号スイートよりも大幅に弱いものです。(GCMモードはAEAD動作モードを使用するため、TLS [Krawczyk2001] におけるMAC-then-Encryptの順序によって引き起こされる同じ弱点を持ちません。) 実装者は、TLS_RSA_WITH_AES_128_CBC_SHA暗号スイートを展開する際に、相互運用性の向上とセキュリティの低下を比較検討する必要があります。他のアプリケーションプロトコルは、必須実装 (MTI) として他の暗号スイートを指定しています。

TLS 1.2の一部のプロファイルでは、異なる暗号スイートが使用されることに注意してください。例えば、[RFC6460] は、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256およびTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384暗号スイートを使用するプロファイルを定義しています。

[RFC4492] は、クライアントとサーバーがECDHパラメータ (曲線) をネゴシエーションすることを許可しています。クライアントとサーバーの両方が「サポートされている楕円曲線」拡張 [RFC4492] を含めるべきです (SHOULD)。相互運用性のため、クライアントとサーバーはNIST P-256 (secp256r1) 曲線 [RFC4492] をサポートすべきです (SHOULD)。さらに、クライアントは単一の要素「uncompressed」を持つec_point_formats拡張を送信すべきです (SHOULD)。