RFC 10015 (D)TLSにおける旧式の鍵交換の非推奨化 2026年7月
Aviram 標準化過程 [ページ]
ストリーム:
Internet Engineering Task Force (IETF)
RFC:
10015
更新対象:
4162, 4279, 4346, 4785, 5246, 5288, 5289, 5469, 5487, 5932, 6209, 6347, 6367, 6655, 7905, 8422, 9325
カテゴリー:
標準化過程
公開:
ISSN:
2070-1721
著者:
N. Aviram

RFC 10015

TLS 1.2およびDTLS 1.2における旧式の鍵交換方式の非推奨化

概要

(D)TLS 1.2について、本書では、有限体上の Diffie-Hellman(DH)およびRSAという2つの鍵交換方式の使用を非推奨とする。また、静的Elliptic Curve Diffie-Hellman(ECDH) 暗号スイートの使用も推奨しない。

これらの規定は(D)TLS 1.2にのみ適用される。これは、(D)TLS 1.0およびTLS 1.1が RFC 8996によって非推奨とされており、(D)TLS 1.3では、影響を受ける アルゴリズムが使用されないか、関連する構成オプションが共有されないためである。 (DTLSバージョン1.1は存在しない。)

本書は、RFC 4162、4279、4346、4785、5246、5288、5289、5469、 5487、5932、6209、6347、6367、6655、7905、8422、および9325を更新し、(D)TLS 1.2接続において、上記の鍵交換 方式を使用する暗号スイートの使用を非推奨とするか、 推奨しないものとする。

このメモの位置付け

本書は、インターネット標準化過程の文書である。

本書は、Internet Engineering Task Force (IETF)による成果物である。本書はIETFコミュニティの合意を 表す。公開レビューを受け、 Internet Engineering Steering Group (IESG)によって公開を承認されている。 インターネット標準の詳細については、 RFC 7841のセクション2を参照されたい。

本書の現在の状態、正誤情報、および フィードバックの提供方法に関する情報は、 https://www.rfc-editor.org/info/rfc10015から入手できる。

目次

1. 序論

(D)TLS 1.2は、RSA、有限体上のDiffie-Hellman (DH)、 およびElliptic Curve Diffie-Hellman (ECDH)を含む、さまざまな鍵交換アルゴリズムをサポートする。

任意の群上のDH鍵交換には、一時的な方式と非一時的な 方式がある。非一時的DHアルゴリズムは、 認証するピアの証明書に含まれる静的DH公開鍵を使用する。詳細については[RFC4492]を参照されたい。これに 対し、一時的DHアルゴリズムは、ハンドシェイクで送信され、 ピアの証明書によって認証される一時的DH公開鍵を使用する。一時的および非一時的な有限体DH アルゴリズムは、それぞれDHEおよびDH(またはFFDHEおよびFFDH)と呼ばれ、 一時的および非一時的な楕円曲線DHアルゴリズムは、 それぞれECDHEおよびECDHと呼ばれる[RFC4492]

一般に、非一時的暗号スイートは前方秘匿性を 欠くため推奨されない。さらに、有限体DHに対するRaccoon攻撃[RACCOON]が示すように、公開鍵の再利用( 非一時的暗号スイートによるもの、または 一時的暗号スイートで鍵を再利用するもの)は、接続の 秘密を漏洩する可能性があるタイミングサイドチャネルにつながり得る。ECDHについても、無効曲線攻撃は同様に秘密の 再利用を悪用してセキュリティを破る[ICA]ため、 公開鍵を再利用するリスクがさらに示されている。どちらのサイドチャネルも実装によって回避できるものの、 経験上、必要な緩和策の 複雑さと数の多さにより、実際の実装ではこのような攻撃を阻止できない場合がある。

また、RSA鍵交換には、実装上の選択とは無関係な セキュリティ上の問題に加え、セキュリティ対策を正しく 実装することの難しさのみに起因する問題がある。

概略として、(D)TLS 1.2のFFDHEに影響する問題は次のとおりである。

  1. FFDHEには、群をネゴシエートする仕組みがなく、 一部の実装は小さな群サイズしかサポートしていないため、 相互運用性の問題がある([RFC7919]のセクション 1を参照)。

  2. FFDHE群には小さな部分群が存在する場合があり、それによって複数の攻撃が可能になる [SUBGROUPS]。カスタムの標準化されていない FFDHE群が提示された場合、ハンドシェイク中のクライアントは、サーバーが選択した 群にこの問題がないことを現実的には検証できない。また、このようなハンドシェイクが、 クライアントにとって受け入れ可能な別の鍵交換パラメーターにフォールバックする仕組みもない。 カスタムFFDHE群は広く普及している([WEAK-DH]に基づく助言の結果である)。 したがって、クライアントは、カスタムであり、そのため潜在的に 危険な群を提示するハンドシェイクを単純に拒否することはできない。

  3. 実際には、一部の運用者は1024ビットFFDHE群を使用している。これは、 広範なサポートを確保できる最大サイズであるためである([RFC7919]のセクション1を参照)。 このサイズでは、現在の離散対数計算記録である 795ビット[DLOG795]に対して、わずかなセキュリティ余裕しか残らない。

  4. 前項をさらに敷衍すると、ごく少数の非常に大規模な計算によって、 攻撃者は比較的大きな割合のFFDHEトラフィック (具体的には、特定の標準化された群を使用して暗号化されたトラフィック)を低コストで復号できる[WEAK-DH]

  5. 秘密が完全に一時的でない場合、FFDHEはRaccoon サイドチャネル攻撃[RACCOON]の影響を受ける。(定数時間の緩和策が 採用されていない限り、FFDHは本質的にRaccoon攻撃に対して脆弱であることに注意されたい。)

(D)TLS 1.2のRSA鍵交換に影響する問題は次のとおりである。

  1. RSA鍵交換は、その構造上、前方秘匿性を提供しない。

  2. RSA鍵交換はBleichenbacher攻撃[BLEI]に対して脆弱である可能性がある。 経験上、関連する対策を正しく 実装することが難しいため、この攻撃の亜種は数年ごとに出現している( [ROBOT][NEW-BLEI]、および[DROWN]を参照)。

  3. 上記に加え、(D)TLS 1.2には鍵のドメイン分離を行う便利な仕組みがない。 したがって、Bleichenbacher攻撃に対して脆弱な単一のエンドポイントが、 同じRSA鍵を共有するすべてのエンドポイントに影響を及ぼす( [XPROT]および[DROWN]を参照)。

本書は、 [RFC4162][RFC4279][RFC4346][RFC4785][RFC5246][RFC5288][RFC5289][RFC5469][RFC5487][RFC5932][RFC6209][RFC6347][RFC6367][RFC6655][RFC7905][RFC8422]、および[RFC9325]を更新し、セクション5.25.35.4、および5.5に記載されているとおり、影響を受ける暗号スイートの使用を非推奨または非推奨相当とすることで、上記の問題を是正する。

BCP 195 [RFC8996] [RFC9325]には、(D)TLSプロトコル(特に(D)TLS 1.2)の 利用者に対する最新のIETF勧告が含まれており、本書は [RFC9325]の複数の箇所を更新する。セクション6に正確な相違点を示す。 BCP文書にあるその他のすべての勧告は引き続き有効である。

1.1. 要件を表す用語

本書におけるキーワード「MUST」、「MUST NOT」、 「REQUIRED」、「SHALL」、「SHALL NOT」、 「SHOULD」、「SHOULD NOT」、 「RECOMMENDED」、「NOT RECOMMENDED」、 「MAY」、および「OPTIONAL」は、ここに示すように、 すべて大文字で記述されている場合に限り、BCP 14 [RFC2119] [RFC8174]に記載されているとおりに 解釈されるものとする。

2. 非一時的Diffie-Hellman

クライアントは(D)TLS 1.2接続で非一時的FFDH暗号スイートを提供してはならず、サーバーはそれを選択してはならない 。 ((D)TLS 1.0およびTLS 1.1は[RFC8996]によって非推奨とされており、(D)TLS 1.3は FFDHをサポートしない[RFC9846] [RFC9147]ことに注意されたい。)これには、セクション5.1表1に記載されているすべての暗号スイートが含まれる。

クライアントは(D)TLS 1.2接続で非一時的ECDH暗号スイートを提供すべきではなく、サーバーはそれを選択すべきではない。 (この要件はすでに[RFC9325]に存在する。 (D)TLS 1.0およびTLS 1.1は[RFC8996]によって非推奨とされており、 (D)TLS 1.3はECDHをサポートしない[RFC9846] [RFC9147]ことに注意されたい。)これには、セクション5.2表2に記載されているすべての暗号スイートが含まれる。

さらに、非一時的DHの使用を避けるため、クライアントは固定DH パラメーターを持つ証明書を使用すべきではなく、サーバーはそれを受け入れるべきではない。 これらの証明書タイプは、セクション5.5に記載されているrsa_fixed_dh、dss_fixed_dh、rsa_fixed_ecdh、およびecdsa_fixed_ecdh である。これらの値は、1.2以前の (D)TLSバージョンにのみ適用される。

3. 一時的有限体Diffie-Hellman

クライアントは(D)TLS 1.2接続でFFDHE暗号スイートを提供してはならず、サーバーはそれを選択してはならない 。 これには、セクション5.3表 3に記載されているすべての暗号スイートが含まれる。 ((D)TLS 1.0およびTLS 1.1は[RFC8996]によって非推奨とされていることに注意されたい。)(D)TLS 1.3のFFDHE暗号スイートは、 セクション1で示した問題の影響を受けない。[RFC9846]および[RFC9147]を参照されたい。したがって、クライアントおよびサーバーは(D)TLS 1.3接続でFFDHE暗号スイートを提供してよい

4. RSA

クライアントは(D)TLS 1.2接続でRSA暗号スイートを提供してはならず、サーバーはそれを選択してはならない 。 ((D)TLS 1.0およびTLS 1.1は[RFC8996]によって非推奨とされており、(D)TLS 1.3は静的RSAをサポートしない[RFC9846] [RFC9147]ことに注意されたい。)これには、セクション5.4表4に 記載されているすべての暗号スイートが含まれる。これらの暗号スイートは、以前、 「TLS Cipher Suites」レジストリ[TLS-REGISTRY]で非推奨とされていたことに注意されたい。

5. 暗号スイートおよびTLS ClientCertificateType識別子の更新

以下の各サブセクションでは、「TLS Cipher Suites」および「TLS ClientCertificateType Identifiers」レジストリ[TLS-REGISTRY]の「Recommended」列での「D」の使用について言及する。「D」の使用に関する情報については、[RFC9847]を参照されたい。

5.1. 本書によって非推奨とされるDH暗号スイート

IANAは、「TLS Cipher Suites」レジストリ[TLS-REGISTRY]の以下のエントリーについて、「Recommended」列を「D」に設定し、本書を 参照として追加した。

表1
暗号スイート 参照
TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA [RFC4346]
TLS_DH_DSS_WITH_DES_CBC_SHA [RFC8996]
TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA [RFC5246]
TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA [RFC4346]
TLS_DH_RSA_WITH_DES_CBC_SHA [RFC8996]
TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA [RFC5246]
TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 [RFC4346] [RFC6347]
TLS_DH_anon_WITH_RC4_128_MD5 [RFC5246] [RFC6347]
TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA [RFC4346]
TLS_DH_anon_WITH_DES_CBC_SHA [RFC8996]
TLS_DH_anon_WITH_3DES_EDE_CBC_SHA [RFC5246]
TLS_DH_DSS_WITH_AES_128_CBC_SHA [RFC5246]
TLS_DH_RSA_WITH_AES_128_CBC_SHA [RFC5246]
TLS_DH_anon_WITH_AES_128_CBC_SHA [RFC5246]
TLS_DH_DSS_WITH_AES_256_CBC_SHA [RFC5246]
TLS_DH_RSA_WITH_AES_256_CBC_SHA [RFC5246]
TLS_DH_anon_WITH_AES_256_CBC_SHA [RFC5246]
TLS_DH_DSS_WITH_AES_128_CBC_SHA256 [RFC5246]
TLS_DH_RSA_WITH_AES_128_CBC_SHA256 [RFC5246]
TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA [RFC5932]
TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA [RFC5932]
TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA [RFC5932]
TLS_DH_DSS_WITH_AES_256_CBC_SHA256 [RFC5246]
TLS_DH_RSA_WITH_AES_256_CBC_SHA256 [RFC5246]
TLS_DH_anon_WITH_AES_128_CBC_SHA256 [RFC5246]
TLS_DH_anon_WITH_AES_256_CBC_SHA256 [RFC5246]
TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA [RFC5932]
TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA [RFC5932]
TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA [RFC5932]
TLS_DH_DSS_WITH_SEED_CBC_SHA [RFC4162]
TLS_DH_RSA_WITH_SEED_CBC_SHA [RFC4162]
TLS_DH_anon_WITH_SEED_CBC_SHA [RFC4162]
TLS_DH_RSA_WITH_AES_128_GCM_SHA256 [RFC5288]
TLS_DH_RSA_WITH_AES_256_GCM_SHA384 [RFC5288]
TLS_DH_DSS_WITH_AES_128_GCM_SHA256 [RFC5288]
TLS_DH_DSS_WITH_AES_256_GCM_SHA384 [RFC5288]
TLS_DH_anon_WITH_AES_128_GCM_SHA256 [RFC5288]
TLS_DH_anon_WITH_AES_256_GCM_SHA384 [RFC5288]
TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 [RFC5932]
TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 [RFC5932]
TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 [RFC5932]
TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 [RFC5932]
TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 [RFC5932]
TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 [RFC5932]
TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 [RFC6209]
TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 [RFC6209]
TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 [RFC6209]
TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 [RFC6209]
TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 [RFC6209]
TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 [RFC6209]
TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 [RFC6209]
TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 [RFC6209]
TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 [RFC6209]
TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 [RFC6209]
TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 [RFC6209]
TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 [RFC6209]
TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 [RFC6367]
TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 [RFC6367]
TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 [RFC6367]
TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 [RFC6367]
TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 [RFC6367]
TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 [RFC6367]

5.2. 本書によって使用が推奨されないECDH暗号スイート

[RFC9325]では、 実装は以下の暗号スイートをネゴシエートすべきではないと規定している。 したがって、これらはIANAの「TLS Cipher Suites」 レジストリ[TLS-REGISTRY]の「Recommended」列で「N」として表示されていた。本書に従い、 IANAは、[RFC9847]と整合させるため、これらの「Recommended」列を「D」に更新し(各エントリーの 参照として本書も追加した)。本書はまた、これらの 暗号スイートの使用を推奨しない根拠を記録し、関連するリスクを示す以前の分析および攻撃を引用する (セクション8を参照)。

表2
暗号スイート 参照
TLS_ECDH_ECDSA_WITH_NULL_SHA [RFC8422]
TLS_ECDH_ECDSA_WITH_RC4_128_SHA [RFC8422] [RFC6347]
TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA [RFC8422]
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA [RFC8422]
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA [RFC8422]
TLS_ECDH_RSA_WITH_NULL_SHA [RFC8422]
TLS_ECDH_RSA_WITH_RC4_128_SHA [RFC8422] [RFC6347]
TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA [RFC8422]
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA [RFC8422]
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA [RFC8422]
TLS_ECDH_anon_WITH_NULL_SHA [RFC8422]
TLS_ECDH_anon_WITH_RC4_128_SHA [RFC8422] [RFC6347]
TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA [RFC8422]
TLS_ECDH_anon_WITH_AES_128_CBC_SHA [RFC8422]
TLS_ECDH_anon_WITH_AES_256_CBC_SHA [RFC8422]
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 [RFC5289]
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 [RFC5289]
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 [RFC5289]
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 [RFC5289]
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 [RFC5289]
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 [RFC5289]
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 [RFC5289]
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 [RFC5289]
TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 [RFC6209]
TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 [RFC6209]
TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 [RFC6209]
TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 [RFC6209]
TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 [RFC6209]
TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 [RFC6209]
TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 [RFC6209]
TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 [RFC6209]
TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 [RFC6367]
TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 [RFC6367]
TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 [RFC6367]
TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 [RFC6367]
TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 [RFC6367]
TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 [RFC6367]
TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 [RFC6367]
TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 [RFC6367]

5.3. 本書によって非推奨とされるDHE暗号スイート

IANAは、「TLS Cipher Suites」レジストリ[TLS-REGISTRY]の以下のエントリーについて、「Recommended」列を「D」に設定し、本書を 参照として追加した。

表3
暗号スイート 参照
TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA [RFC4346]
TLS_DHE_DSS_WITH_DES_CBC_SHA [RFC8996]
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA [RFC5246]
TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA [RFC4346]
TLS_DHE_RSA_WITH_DES_CBC_SHA [RFC8996]
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA [RFC5246]
TLS_DHE_PSK_WITH_NULL_SHA [RFC4785]
TLS_DHE_DSS_WITH_AES_128_CBC_SHA [RFC5246]
TLS_DHE_RSA_WITH_AES_128_CBC_SHA [RFC5246]
TLS_DHE_DSS_WITH_AES_256_CBC_SHA [RFC5246]
TLS_DHE_RSA_WITH_AES_256_CBC_SHA [RFC5246]
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 [RFC5246]
TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA [RFC5932]
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA [RFC5932]
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 [RFC5246]
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 [RFC5246]
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 [RFC5246]
TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA [RFC5932]
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA [RFC5932]
TLS_DHE_PSK_WITH_RC4_128_SHA [RFC4279] [RFC6347]
TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA [RFC4279]
TLS_DHE_PSK_WITH_AES_128_CBC_SHA [RFC4279]
TLS_DHE_PSK_WITH_AES_256_CBC_SHA [RFC4279]
TLS_DHE_DSS_WITH_SEED_CBC_SHA [RFC4162]
TLS_DHE_RSA_WITH_SEED_CBC_SHA [RFC4162]
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 [RFC5288]
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 [RFC5288]
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 [RFC5288]
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 [RFC5288]
TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 [RFC5487]
TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 [RFC5487]
TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 [RFC5487]
TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 [RFC5487]
TLS_DHE_PSK_WITH_NULL_SHA256 [RFC5487]
TLS_DHE_PSK_WITH_NULL_SHA384 [RFC5487]
TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 [RFC5932]
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 [RFC5932]
TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 [RFC5932]
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 [RFC5932]
TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 [RFC6209]
TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 [RFC6209]
TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 [RFC6209]
TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 [RFC6209]
TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 [RFC6209]
TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 [RFC6209]
TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 [RFC6209]
TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 [RFC6209]
TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 [RFC6209]
TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 [RFC6209]
TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 [RFC6209]
TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 [RFC6209]
TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 [RFC6367]
TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 [RFC6367]
TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 [RFC6367]
TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 [RFC6367]
TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 [RFC6367]
TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 [RFC6367]
TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 [RFC6367]
TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 [RFC6367]
TLS_DHE_RSA_WITH_AES_128_CCM [RFC6655]
TLS_DHE_RSA_WITH_AES_256_CCM [RFC6655]
TLS_DHE_RSA_WITH_AES_128_CCM_8 [RFC6655]
TLS_DHE_RSA_WITH_AES_256_CCM_8 [RFC6655]
TLS_DHE_PSK_WITH_AES_128_CCM [RFC6655]
TLS_DHE_PSK_WITH_AES_256_CCM [RFC6655]
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 [RFC7905]
TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 [RFC7905]
TLS_PSK_DHE_WITH_AES_128_CCM_8 [RFC6655]
TLS_PSK_DHE_WITH_AES_256_CCM_8 [RFC6655]

5.4. 本書によって非推奨とされるRSA暗号スイート

IANAは、「TLS Cipher Suites」レジストリ[TLS-REGISTRY]の以下のエントリーについて、「Recommended」列を「D」に設定し、本書を 参照として追加した。

表4
暗号スイート 参照
TLS_RSA_WITH_NULL_MD5 [RFC5246]
TLS_RSA_WITH_NULL_SHA [RFC5246]
TLS_RSA_EXPORT_WITH_RC4_40_MD5 [RFC4346] [RFC6347]
TLS_RSA_WITH_RC4_128_MD5 [RFC5246] [RFC6347]
TLS_RSA_WITH_RC4_128_SHA [RFC5246] [RFC6347]
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 [RFC4346]
TLS_RSA_WITH_IDEA_CBC_SHA [RFC8996]
TLS_RSA_EXPORT_WITH_DES40_CBC_SHA [RFC4346]
TLS_RSA_WITH_DES_CBC_SHA [RFC8996]
TLS_RSA_WITH_3DES_EDE_CBC_SHA [RFC5246]
TLS_RSA_PSK_WITH_NULL_SHA [RFC4785]
TLS_RSA_WITH_AES_128_CBC_SHA [RFC5246]
TLS_RSA_WITH_AES_256_CBC_SHA [RFC5246]
TLS_RSA_WITH_NULL_SHA256 [RFC5246]
TLS_RSA_WITH_AES_128_CBC_SHA256 [RFC5246]
TLS_RSA_WITH_AES_256_CBC_SHA256 [RFC5246]
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA [RFC5932]
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA [RFC5932]
TLS_RSA_PSK_WITH_RC4_128_SHA [RFC4279] [RFC6347]
TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA [RFC4279]
TLS_RSA_PSK_WITH_AES_128_CBC_SHA [RFC4279]
TLS_RSA_PSK_WITH_AES_256_CBC_SHA [RFC4279]
TLS_RSA_WITH_SEED_CBC_SHA [RFC4162]
TLS_RSA_WITH_AES_128_GCM_SHA256 [RFC5288]
TLS_RSA_WITH_AES_256_GCM_SHA384 [RFC5288]
TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 [RFC5487]
TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 [RFC5487]
TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 [RFC5487]
TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 [RFC5487]
TLS_RSA_PSK_WITH_NULL_SHA256 [RFC5487]
TLS_RSA_PSK_WITH_NULL_SHA384 [RFC5487]
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 [RFC5932]
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 [RFC5932]
TLS_RSA_WITH_ARIA_128_CBC_SHA256 [RFC6209]
TLS_RSA_WITH_ARIA_256_CBC_SHA384 [RFC6209]
TLS_RSA_WITH_ARIA_128_GCM_SHA256 [RFC6209]
TLS_RSA_WITH_ARIA_256_GCM_SHA384 [RFC6209]
TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 [RFC6209]
TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 [RFC6209]
TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 [RFC6209]
TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 [RFC6209]
TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 [RFC6367]
TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 [RFC6367]
TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 [RFC6367]
TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 [RFC6367]
TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 [RFC6367]
TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 [RFC6367]
TLS_RSA_WITH_AES_128_CCM [RFC6655]
TLS_RSA_WITH_AES_256_CCM [RFC6655]
TLS_RSA_WITH_AES_128_CCM_8 [RFC6655]
TLS_RSA_WITH_AES_256_CCM_8 [RFC6655]
TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 [RFC7905]

5.5. 本書によって非推奨とされるTLS ClientCertificateType識別子

IANAは、「TLS ClientCertificateType Identifiers」レジストリ [TLS-REGISTRY]の以下のエントリーについて、「Recommended」列を「D」に設定し、本書を 参照として追加した。

表5
証明書タイプ 参照
rsa_fixed_dh (3) [RFC5246] [RFC9847]
dss_fixed_dh (4) [RFC5246] [RFC9847]
rsa_fixed_ecdh (65) [RFC8422] [RFC9847]
ecdsa_fixed_ecdh (66) [RFC8422] [RFC9847]

6. RFC 9325の更新

本書は、(D)TLS 1.2の使用に関して[RFC9325]を 更新し、表 6に 正確な変更点を示す。これらの変更はすべて、[RFC9325]のセクション4.1に対して行われる。

表6
RFC 9325 RFC 10015
非一時的FFDH SHOULD NOT MUST NOT
非一時的ECDH SHOULD NOT 変更なし
固定DH証明書タイプ 未規定 SHOULD NOT
一時的FFDH SHOULD NOT MUST NOT
静的RSA SHOULD NOT MUST NOT

7. IANAに関する考慮事項

「TLS Cipher Suites」および「TLS ClientCertificateType Identifiers」レジストリは、いずれも 「Transport Layer Security (TLS) Parameters」レジストリグループ[TLS-REGISTRY]内に存在する。IANAは、セクション5.15.25.3、および5.4に示すとおり、「TLS Cipher Suites」レジストリ[TLS-REGISTRY]の エントリーを更新した。IANAはまた、セクション5.5に示すとおり、「TLS ClientCertificateType Identifiers」レジストリのエントリーも更新した。

セクション5.15.25.35.4、および5.5に記載された各エントリーについて、 IANAは「Recommended」列を「D」に設定し、エントリーの「Reference」列を本書を参照するよう更新した。 「Recommended」列での「D」の使用については、[RFC9847]を参照されたい。

8. セキュリティに関する考慮事項

非一時的有限体DH暗号スイート(TLS_DH_*)、および有限体DH暗号スイートでの一時鍵の再利用は、 Raccoon攻撃[RACCOON]のため禁止される。どちらも前方秘匿性を提供しないため、 すでに不適切な慣行と見なされている。しかし、 Raccoon攻撃により、TLSのpremaster secret処理におけるタイミングサイドチャネルが、 暗号化されたpremaster secretを明らかにするために悪用され得ることが判明した。

非一時的ECDH暗号スイート(TLS_ECDH_*)については、前方秘匿性を放棄すると、 鍵が侵害された場合に過去の通信を復号できるようになるだけでなく、 攻撃者が鍵の再利用を悪用して 暗号学的秘密を繰り返し照会する広範な種類の攻撃も可能になり得る。

この種類には、必ずしも以下に限定されないが、次の 例が含まれる。

  1. 無効曲線攻撃。攻撃者は鍵の再利用を悪用して繰り返し 照会し、最終的に鍵自体を取得する。このような攻撃が、 実際のTLS実装に対して実用可能であることが示されている[ICA]

  2. サイドチャネル攻撃。攻撃者は鍵の再利用と追加の サイドチャネルを悪用して暗号学的秘密を取得する。このような攻撃の例については、 [MAY4]を参照されたい。

  3. 故障攻撃。攻撃者は鍵の再利用と誤った 計算を悪用して暗号学的秘密を取得する。このような攻撃の例については、 [PARIS256]を参照されたい。

上記の例を含め、このような攻撃は実装に依存することが多い。 しかし、これらの例は、鍵を再利用しつつ この種類の攻撃を回避するシステムを構築することが実際には困難であることを示している。対照的に、 鍵の再利用を避けることは、鍵が侵害された場合の復号を防ぐだけでなく、 この種類の攻撃そのものを完全に排除する。したがって、本書は ECDH公開鍵の再利用を推奨しない。

(D)TLS 1.2の一時的有限体DH(TLS_DHE_*およびTLS_PSK_DHE_*)については、 前述のとおり、クライアントが、自身にとって受け入れ可能なセキュリティパラメーターのみを ネゴシエートすることを保証しながら、これらの暗号スイートをサポートする現実的な方法はない。(D)TLS 1.2では、サーバーがDH 群を選択し、カスタム群が広く使用されている。したがって、クライアントがハンドシェイクにこれらの暗号スイートを含め、 サーバーがカスタム群を提示した場合、クライアントはセキュリティを 確保しながらハンドシェイクを完了することができない。群の構造を検証することは、クライアントにとって法外に高コストである。 安全性が既知の群の許可リストを使用することも、サーバー運用者が 独自のカスタム群を生成するよう推奨されていたため現実的ではない。さらに、ハンドシェイクが、 クライアントとサーバーの両方にとって受け入れ可能な別の パラメーターへフォールバックする仕組みもない。

9. 参考文献

9.1. 規範的参考文献

[RFC2119]
Bradner, S., 「要件レベルを示すために RFCで使用するキーワード」, BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC4162]
Lee, H.J., Yoon, J.H., and J.I. Lee, 「Transport Layer Security (TLS)へのSEED暗号 スイートの追加」, RFC 4162, DOI 10.17487/RFC4162, , <https://www.rfc-editor.org/info/rfc4162>.
[RFC4279]
Eronen, P., 編 and H. Tschofenig, 編, 「Transport Layer Security (TLS)用の事前共有鍵暗号スイート」, RFC 4279, DOI 10.17487/RFC4279, , <https://www.rfc-editor.org/info/rfc4279>.
[RFC4346]
Dierks, T. and E. Rescorla, 「Transport Layer Security (TLS)プロトコル バージョン1.1」, RFC 4346, DOI 10.17487/RFC4346, , <https://www.rfc-editor.org/info/rfc4346>.
[RFC4785]
Blumenthal, U. and P. Goel, 「Transport Layer Security (TLS)用のNULL暗号化を使用する事前共有鍵(PSK)暗号スイート」, RFC 4785, DOI 10.17487/RFC4785, , <https://www.rfc-editor.org/info/rfc4785>.
[RFC5246]
Dierks, T. and E. Rescorla, 「Transport Layer Security (TLS)プロトコル バージョン1.2」, RFC 5246, DOI 10.17487/RFC5246, , <https://www.rfc-editor.org/info/rfc5246>.
[RFC5288]
Salowey, J., Choudhury, A., and D. McGrew, 「TLS用のAES Galois Counter Mode (GCM)暗号スイート」, RFC 5288, DOI 10.17487/RFC5288, , <https://www.rfc-editor.org/info/rfc5288>.
[RFC5289]
Rescorla, E., 「SHA-256/384およびAES Galois Counter Mode (GCM)を使用するTLS楕円曲線 暗号スイート」, RFC 5289, DOI 10.17487/RFC5289, , <https://www.rfc-editor.org/info/rfc5289>.
[RFC5469]
Eronen, P., 編, 「Transport Layer Security (TLS)用のDESおよびIDEA暗号 スイート」, RFC 5469, DOI 10.17487/RFC5469, , <https://www.rfc-editor.org/info/rfc5469>.
[RFC5487]
Badra, M., 「SHA-256/384およびAES Galois Counter Modeを使用するTLS用の事前共有鍵暗号 スイート」, RFC 5487, DOI 10.17487/RFC5487, , <https://www.rfc-editor.org/info/rfc5487>.
[RFC5932]
Kato, A., Kanda, M., and S. Kanno, 「TLS用のCamellia暗号スイート」, RFC 5932, DOI 10.17487/RFC5932, , <https://www.rfc-editor.org/info/rfc5932>.
[RFC6209]
Kim, W., Lee, J., Park, J., and D. Kwon, 「Transport Layer Security (TLS)へのARIA暗号スイートの追加」, RFC 6209, DOI 10.17487/RFC6209, , <https://www.rfc-editor.org/info/rfc6209>.
[RFC6347]
Rescorla, E. and N. Modadugu, 「Datagram Transport Layer Security バージョン1.2」, RFC 6347, DOI 10.17487/RFC6347, , <https://www.rfc-editor.org/info/rfc6347>.
[RFC6367]
Kanno, S. and M. Kanda, 「Transport Layer Security (TLS)へのCamellia暗号スイートの追加」, RFC 6367, DOI 10.17487/RFC6367, , <https://www.rfc-editor.org/info/rfc6367>.
[RFC6655]
McGrew, D. and D. Bailey, 「Transport Layer Security (TLS)用のAES-CCM暗号スイート」, RFC 6655, DOI 10.17487/RFC6655, , <https://www.rfc-editor.org/info/rfc6655>.
[RFC7905]
Langley, A., Chang, W., Mavrogiannopoulos, N., Strombergson, J., and S. Josefsson, 「Transport Layer Security (TLS)用のChaCha20-Poly1305暗号スイート」, RFC 7905, DOI 10.17487/RFC7905, , <https://www.rfc-editor.org/info/rfc7905>.
[RFC7919]
Gillmor, D., 「Transport Layer Security (TLS)用のネゴシエート可能な有限体 Diffie-Hellman一時パラメーター」, RFC 7919, DOI 10.17487/RFC7919, , <https://www.rfc-editor.org/info/rfc7919>.
[RFC8174]
Leiba, B., 「RFC 2119キーワードにおける大文字と 小文字の曖昧さ」, BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8422]
Nir, Y., Josefsson, S., and M. Pegourie-Gonnard, 「Transport Layer Security (TLS)バージョン1.2以前向けの楕円曲線 暗号(ECC)暗号スイート」, RFC 8422, DOI 10.17487/RFC8422, , <https://www.rfc-editor.org/info/rfc8422>.
[RFC8996]
Moriarty, K. and S. Farrell, 「TLS 1.0およびTLS 1.1の非推奨化」, BCP 195, RFC 8996, DOI 10.17487/RFC8996, , <https://www.rfc-editor.org/info/rfc8996>.
[RFC9147]
Rescorla, E., Tschofenig, H., and N. Modadugu, 「Datagram Transport Layer Security (DTLS)プロトコル バージョン1.3」, RFC 9147, DOI 10.17487/RFC9147, , <https://www.rfc-editor.org/info/rfc9147>.
[RFC9325]
Sheffer, Y., Saint-Andre, P., and T. Fossati, 「Transport Layer Security (TLS)およびDatagram Transport Layer Security (DTLS)の安全な使用に関する勧告」, BCP 195, RFC 9325, DOI 10.17487/RFC9325, , <https://www.rfc-editor.org/info/rfc9325>.
[RFC9846]
Rescorla, E., 「Transport Layer Security (TLS)プロトコル バージョン1.3」, RFC 9846, DOI 10.17487/RFC9846, , <https://www.rfc-editor.org/info/rfc9846>.
[RFC9847]
Salowey, J. and S. Turner, 「TLSおよびDTLSのIANAレジストリ更新」, RFC 9847, DOI 10.17487/RFC9847, , <https://www.rfc-editor.org/info/rfc9847>.

9.2. 参考情報

[BLEI]
Bleichenbacher, D., 「RSA暗号化標準PKCS #1に基づくプロトコルに対する選択暗号文 攻撃」, Advances in Cryptology -- CRYPTO'98, Lecture Notes in Computer Science, vol. 1462, pp. 1-12, DOI 10.1007/BFb0055716, , <https://doi.org/10.1007/BFb0055716>.
[DLOG795]
Boudot, F., Gaudry, P., Guillevic, A., Heninger, N., Thomé, E., and P. Zimmermann, 「素因数分解と離散対数の難しさの比較: 240桁の実験」, Cryptology ePrint Archive, Paper 2020/697, DOI 10.1007/978-3-030-56880-1_3, , <https://eprint.iacr.org/2020/697>.
[DROWN]
Aviram, N., Schinzel, S., Somorovsky, J., Heninger, N., Dankel, M., Steube, J., Valenta, L., Adrian, D., Halderman, J. A., Dukhovni, V., Käsper, E., Cohney, S., Engels, S., Paar, C., and Y. Shavitt, 「DROWN:SSLv2を使用したTLSの 破壊」, 第25回USENIX Security Symposiumの予稿集, , <https://drownattack.com/drown-attack-paper.pdf>.
[ICA]
Jager, T., Schwenk, J., and J. Somorovsky, 「TLS-ECDHに対する実用的な無効 曲線攻撃」, ESORICS 2015, Part I, Lecture Notes in Computer Science, vol. 9326, pp. 407-425, DOI 10.1007/978-3-319-24174-6_21, , <https://link.springer.com/content/pdf/10.1007/978-3-319-24174-6_21.pdf>.
[MAY4]
Genkin, D., Valenta, L., and Y. Yarom, 「May the Fourth Be With You: Curve25519を使用する複数の実世界アプリケーションに対する マイクロアーキテクチャサイドチャネル攻撃」, 2017 ACM SIGSAC Conference on Computer and Communications Securityの予稿集, DOI 10.1145/3133956.3134029, , <https://dl.acm.org/doi/pdf/10.1145/3133956.3134029>.
[NEW-BLEI]
Meyer, C., Somorovsky, J., Weiss, E., Schwenk, J., Schinzel, S., and E. Tews, 「SSL/TLS実装の再検討:新たなBleichenbacherサイドチャネル と攻撃」, 第23回USENIX Security Symposiumの予稿集, , <https://www.usenix.org/system/files/conference/usenixsecurity14/sec14-paper-meyer.pdf>.
[PARIS256]
Devlin, S. and F. Valsorda, 「PARIS256攻撃」, , <https://i.blackhat.com/us-18/Wed-August-8/us-18-Valsorda-Squeezing-A-Key-Through-A-Carry-Bit-wp.pdf>.
[RACCOON]
Merget, R., Brinkmann, M., Aviram, N., Somorovsky, J., Mittmann, J., and J. Schwenk, 「Raccoon攻撃:TLS-DH(E)における最上位ビットオラクルの 発見と悪用」, , <https://raccoon-attack.com/RacoonAttack.pdf>.
[RFC4492]
Blake-Wilson, S., Bolyard, N., Gupta, V., Hawk, C., and B. Moeller, 「Transport Layer Security (TLS)用の楕円曲線暗号 (ECC)暗号スイート」, RFC 4492, DOI 10.17487/RFC4492, , <https://www.rfc-editor.org/info/rfc4492>.
[ROBOT]
Boeck, H., Somorovsky, J., and C. Young, 「Return Of Bleichenbacher's Oracle Threat (ROBOT)」, 第27回USENIX Security Symposiumの予稿集, , <https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-bock.pdf>.
[SUBGROUPS]
Valenta, L., Adrian, D., Sanso, A., Cohney, S., Fried, J., Hastings, M., Halderman, J. A., and N. Heninger, 「Diffie-Hellmanに対する小部分群攻撃の 測定」, Cryptology ePrint Archive, Paper 2016/995, , <https://eprint.iacr.org/2016/995/20161017:193515>.
[TLS-REGISTRY]
IANA, 「Transport Layer Security (TLS) Parameters」, <https://www.iana.org/assignments/tls-parameters>.
[WEAK-DH]
Adrian, D., Bhargavan, K., Durumeric, Z., Gaudry, P., Green, M., Halderman, J. A., Heninger, N., Springall, D., Thomé, E., Valenta, L., VanderSloot, B., Wustrow, E., Zanella-Béguelin, S., and P. Zimmermann, 「脆弱なDiffie-HellmanとLogjam 攻撃」, , <https://weakdh.org/>.
[XPROT]
Jager, T., Schwenk, J., and J. Somorovsky, 「PKCS#1 v1.5暗号化の脆弱性に対するTLS 1.3およびQUICの安全性」, 第22回ACM SIGSAC Conference on Computer and Communications Securityの予稿集, pp. 1185-1196, DOI 10.1145/2810103.2813657, , <https://doi.org/10.1145/2810103.2813657>.

謝辞

本書には、文章の大部分を執筆し、IETF TLS WGで複数回発表したCarrie Bartleによる多くの重要な貢献が含まれている。

本書は、TLS WGメーリングリストでの議論と、 Raccoon攻撃[RACCOON]の公開後にFilippo Valsordaから寄せられた 提案に着想を得た。 本書の最初の草案を作成したChristopher A. Woodに感謝する。 また、コメントおよび提案を寄せたThomas FossatiSean TurnerJoe SaloweyYaron ShefferChristian BuchgraberJohn Preuß Mattsson、およびManuel Pégourié-Gonnardにも感謝する。

著者の連絡先

Nimrod Aviram