TLS WG @ IETF 126(ウィーン、2026年7月23日・24日)議事要約

Summarized by @unasuke with Claude on 2026-08-07 10:47:46 UTC

TLS WG @ IETF 126 議事要約

木曜 2026-07-23 07:00–09:00 UTC(session 35590、2時間)/金曜 2026-07-24(session 35591、90分)

Notes: Rich Salz, Muhammad Usama Sardar(木)/Mike Ounsworth, Usama Sardar, Morgane Guerreau(金)
情報源: スライド13点、session notes、録画文字起こし2本、投票ログ2本、agenda
議題から拒否された項目: draft-usama-tls-fatt-extension


1. Chairs からの WG アップデート(木)

苦情・アピール

ML-KEM/ML-DSA 関連で DJB から chairs 宛に 6/27 付の苦情2件("jeopardy claim"、"charter complaint")。いずれも却下。他のアピールは IESG・IAB・ISOC Board 側で処理中で、WG では扱わない方針。

文書ステータス

状態 文書
RFC 発行 9846 (TLS 1.3), 9850 (SSLKEYLOG), 9851 (TLS 1.2 Frozen), 9954 (Hybrid Design), 9963 (Legacy RSASSA-PKCS1-v1.5), 9973 (Certificates + PSK), 10015 (Deprecate Obsolete KEX)
RFC Editor queue -ecdhe-mlkem-mldsa(※アピール係属中)
WGLC + FATT レビュー待ち -extended-key-update
FATT 送付済/送付予定 -pake
実装経験待ち -super-jumbo-record-limit, -key-share-prediction, -trust-anchor-ids, -tlsflags, -wkech

相互依存の指摘(EKR)

supplemental certificates を採用するなら、extended key update と合同で形式解析すべき。EKU を単独で標準化した後に supplemental certificates と噛み合わないと判明しても、もう変更できない。Hannes からは Nick が既存 post-handshake authentication を含めて EKU の形式解析を進行中との報告。

Jonathan Hoyland は6〜7年前に書いた合成可能な鍵スケジュール拡張の draft(draft-jhoyla-tls-extended-key-schedule)を挙げ、他提案と解析上 composable にする指針を authors に出す価値があるかを提起。

Thom Wiggers(FATT メンバー、個人として)は「拡張可能プロトコルでは 本体 / 本体+A / 本体+B を検証しても A+B については何も言えない。全組合せの検証は現実的でないので、併用が想定される拡張については authors が Security Considerations で相互作用を明示すべき」と整理。

メーリングリストの荒れ

Chairs(Sean Turner)は「本当にひどい状態」と率直に述べ、月次リマインダが機能していないこと、chairs の moderation が遅かったことを認めた上で、スレッドの squelch を今後積極的に行うと表明。IETF 全体の moderator team も稼働開始しており、TLS が優先対象になる見込み。

投票(Show of hands) Yes No 意見なし
リストをもっと機能させたいか 81 0 3
chairs はより厳格に moderation すべきか 65 2 7

Sean は「何人もが『この仕事を持ち込みたいがリストが有害すぎる』と個人的に伝えてきている」と述べ、実装者が離れれば WG の意味がないと危機感を示した。off-topic の定義(RFC 3683 ベース)に「過度なプロセス議論」を追加予定。

FATT

「でこぼこ道だった」と認めつつ、GitHub ページで誰が担当し何が送られたかを公開して透明性を確保。collaboration に関する PR#24 をレビュー依頼。FATT を続ける理由として、TLS 1.3 のとき研究者と協調しなかったせいで公開直前にロゴ付きの攻撃発表が繰り返された経緯を挙げた。

投票 Yes No 意見なし
FATT の手続き議論は気散じか 35 0 8
sniff test 送付の判断は chairs が行うべきか 42 1 4
authors と形式解析実施者は協働すべきか 49 3 8

※ session notes 側には 80/0/3、49/2/8 とありますが、上表は polls ログの値です。

Sean の回答: chairs が真空中で決めているわけではなく、文書受領時に「他に誰と話しているか」等を確認している。今後は送る/送らないの判断とその理由を必ずメールで通知するプロセスにする。


2. DTLS 1.3 — draft-ietf-tls-rfc9147bis(EKR)

Hannes が issue を大量に PR 化し、EKR が取り込んだ結果、提起済み issue のほぼ全てに対応済み。

-01 からの変更: post-handshake の KeyUpdate 明確化 [EID 8047]/ACK 内の未来 epoch チェックを必須化 [EID 8108]/epoch 2^48 には message sequence number の制約で到達不可(実質 2^16)[EID 8050]/バージョンネゴ前の ACK 処理の明確化/不正レコード処理テキストの整理(drop を推奨)。

PR#317 replay protection の必須化

Montreal での懸念は、SCTP(Michael Tuexen)が OBE、性能(Paul Wouters)は根拠が弱いと判断。

反対者なしでマージ

PR#326 epoch closure: David Benjamin のレビュー由来。いつ閉じてよいか/いつ閉じなければならないかを詳述。EKR は基本的に問題ないと見るがレビューを募集(David Benjamin, Martin Thomson, Ana Wein を名指し、1か月程度で)。

Issue #291 ACK の epoch 遷移中の扱い: 最後の残課題。全体を通して漏れがないか確認する。

これらが片付き次第 WGLC を要請予定。「pre-last-call」として今のうちに issue を出すよう呼びかけ。

Hannes からは相互運用マトリクスの作成(OpenSSL 実装が進行中、mbedTLS ほか)と、学生による DTLS 1.3 の形式解析(extended key update で使った Promela/SPIN ベースの手法を base handshake に適用、同期の corner case を確認)の報告。実装リストは Chris Wood の tlsworkinggroup.org へ PR を出す方向。


3. Authenticated ECH Config Distribution and Rotation — draft-sullivan-tls-signed-ech-updates-02(Alessandro Ghedini)

問題: RFC 9849 では retry path が public_name の証明書に結び付いており、(a) 全 public name に CA 証明書が必要、(b) ECH を終端する全エンドポイントが public name の秘密鍵を共有、(c) public name が少ないほど鍵漏洩・名前ブロック時の blast radius が大きい。

提案: DNS の ECHConfig に ech_authinfo 拡張で許可された署名鍵のハッシュを掲載。ECH 拒否時のリトライ config に ech_auth(SPKI・署名・not_after)を付し、クライアントは TLS 証明書ではなく署名とタイムスタンプを検証する。結果として public name ごとの CA 証明書が不要になり、クライアントごとに異なる public name も可能、署名はオフラインで行えるため TLS サーバに署名鍵を置かなくてよい。

-02 の変更: PKIX 方式を削除し RPK 専用に単純化(CA との調整が不要)/ech_auth に明示的な boolean disable フィールドを追加(zero-length ECHConfigList 慣習を置換)/両拡張を high-order bit 付きの mandatory extension codepoint に変更し、旧クライアントが壊れずに config をスキップするように/1つの ECHConfig が両拡張を持つことを禁止。

実装: Rust/Go/C の interop harness、BoringSSL ベースと NSS ベースが WIP(未 interop)。

議論

投票 Yes No 意見なし
draft を読んだか 11 28 4
WG で採択すべきか 12 9 19

貢献者が十分いそうなのでリストで採択確認へ。


4. Workload Identifier Scope Hint — draft-rosomakho-tls-wimse-cert-hint-02(Yaroslav Rosomakho)

mTLS は bot・workload・一部プロキシ・OT/IoT には有効だが、ブラウザには向かない。現状、公開 API で mTLS を選択肢として提供するには SNI ベースで別エンドポイントを立てる必要がある(CertificateRequest を送ると想定しないクライアントが予期しない挙動を取るため)。

提案: ClientHello 拡張に workload identifier scope(WIMSE workload identifier の scheme + authority/trust domain 部分、例 spiffe://… の先頭2要素)のリストを載せる。拡張の存在自体が「CertificateRequest を受けても壊れない」「列挙した scope の証明書を出せる」ことを示すヒント。サーバの挙動は実装依存(CertificateRequest を出す/出さない/接続を落とす)。

scope を含める理由: マルチテナント/フェデレーション環境ではクライアントが複数の workload identifier を持ちうるが TLS では1つしか出せない。サーバ側も数千顧客の trust domain を CertificateRequest に全列挙するのは不可能かつ顧客リストの開示になる。

プライバシー: 空リストが有効(実質「mTLS 要求フラグ」)。ECH と組み合わせ、outer ClientHello は空リスト、inner に実際の scope を入れるパターンが可能。

議論

投票 Yes No 意見なし
draft を読んだか 8 24 0

Shumon との調整を経て、次回 IETF 前に採択検討の可能性。


5. Supplemental Authentication in TLS 1.3 — draft-rosomakho-tls-supplemental-auth-00

主ユースケース: エンタープライズ VPN/ZTNA でのユーザ証明書+デバイス証明書。デバイス証明書は「会社管理端末である」ことの証明で、UEM/MDM が管理端末の証跡として証明書をトラストストアに配置するのが業界の常套。しかし現行の VPN クライアントはこれを独自方式で実装しており、秘密鍵の所持証明なしに帯域内で証明書を送る(誰でも偽装可能)、あるいはサーバが nonce を送り署名させる(リレー攻撃・タイミング攻撃に脆弱)といった品質。

副次: WIMSE で hostname 証明書(Web PKI)と X509-SVID の両方を提示したい。複数 hostname 証明書(プロキシ↔CDN で同一 HTTP/3 チャネルを複数 origin に使う)。さらに PQ/T・PQ/PQ の代替解。

設計: ClientHello に supplemental_certificate_requests 拡張(CR 拡張のリストで制約可能)。サーバは Certificate に supplemental_certificate フラグを立て、Finished の直後・application data の前に追加の Certificate/CertificateVerify/Finished フライトを送る。追加フライトは application traffic secret で暗号化され、transcript は ClientHello…server Finished + 直前の supplemental フライトを継続。クライアント側も対称(ただし主 Certificate が前提)。鍵スケジュールもハンドシェイクメッセージのフローも変更しない点を利点として主張。post-handshake authentication と異なり両方向に適用でき、application data 開始前に全認証コンテキストが揃うので HTTP/2・QUIC の多重化との相性問題が起きない。追加 RTT もなし。

議論はおおむね批判的

Sean の締め: 反対した人たちと話して、嫌がられない形にできるか探ること。


6. PQC Continuity — draft-sheffer-tls-pqc-continuity-02(Yaron Sheffer, Tiru Reddy)

移行期には多くのクライアントが従来証明書と PQC 証明書の両方を受理する状態が長く続き、能動的攻撃者が PQC 証明書を剥がして従来のみに落とす rollback が可能で、クライアントは検知できない。提案は TLS 拡張でサーバが一定期間 PQ 資格情報を提示することをコミットし、クライアントがキャッシュして検証する TOFU ベースの緩和策(完全な修正ではない)。

-02 の変更: OpenSSL で PoC 実装。クライアント証明書対応は複雑さに見合わないと判断して削除しサーバコミットのみに。キャッシュキーを RFC 9525 identity+ポート番号+TLS/DTLS の別で明確化。特定アルゴリズムではなく「PQC であること」のみをキャッシュ(アルゴリズムはまだ成熟していないため切替可能に)。チェーン全体が PQC であることを要求し、混在チェーンは明確に拒否。

未解決: Ilari が指摘した Merkle Tree Certificates。証明書チェーンがない場合に「PQC 性」をどう定義するか。

議論

投票 Yes No 意見なし
draft を読んだか 14 12 0

7. PAKE 拡張 — draft-ietf-tls-pake(Chris Wood、金曜)

仕組みの復習: ClientHello で identity pair(client/server)と1つ以上の PAKE メッセージを提示 → サーバがサポート集合と identity の存在確認からアルゴリズムを選択して応答 → クライアントが完了し、導出した共有秘密を既存の (EC)DHE と並んで鍵スケジュールに注入。

制限

新規: External PAKE

ハンドシェイク外で任意の PAKE(何ラウンドでも可)を走らせて PSK を導出し、RFC 9258 の importer でインポートして通常の TLS を走らせる指針を追加。ImportedIdentity に external_identity・context・target_protocol・target_kdf を持たせ、internal PAKE と同じ application context を使う。運用上は PAKE 用ポートと TLS 用ポートを分けるなどの識別手段が要るが、P2P のように両端を制御できる場面では障害にならない。

新規: 形式解析https://github.com/chris-wood/tls-pake-model

ECH の公開 ProVerif モデルを fork。相互認証(replay を考慮したセッション鍵と identity の合意)、鍵秘匿性、前方秘匿性、通常の TLS 性質の非回帰を実証。

制限: 高エントロピー秘密を入力と仮定(辞書攻撃は非モデル、PAKE は正しく動く黒箱と仮定)/サーバシミュレーション・証明書・ECH との合成は未モデル化/augmented PAKE の per-client 秘密はパスワードに畳み込み。

残作業: 機能組合せのモデル化(証明書認証・PSK・ECH との併用で回帰がないこと)と、client key confirmation を TLS key confirmation で代替した点の計算量的(cryptographic)解析。記号的解析は適切な道具ではないとの認識。この状態で FATT assessment に出す用意ができたとの主張。Chairs は既に FATT へのメッセージを準備中。

質疑


8. PQ + T 署名(金曜、55分の集中セッション)

8-0. Chairs の枠組み設定

EKR の発案で「PQ+T 署名をやるかどうか WG の意見を形成し、やるならアプローチを1つ選ぶ」ことを目的に設定。スライドで**「アルゴリズムの話ではない」を3回**強調(スレッドは squelch すると宣言)。数か月前の side meeting ではより多くの選択肢があったが、draft として出てきたのはこの2本のみ。両 draft の authors は敵対関係ではなく、一部は両方に名を連ねている。

8-1. Dual Certificates — draft-yusef-tls-pqt-dual-certs-03(Rifaat Shekh-Yusef, Hannes Tschofenig ほか Tiru Reddy, Mike Ounsworth, Yaroslav Rosomakho)

動機: 一部の管轄・顧客が hybrid 署名を要求しており、もはや選択の問題ではない。Composite の置き換えではなく、異なるユースケースに対する別モデル。

対象: エンタープライズ/産業 IoT。Web は重要だが唯一のユースケースではない。具体例として Ciena の光システム(データセンター間、ルータ↔光システム間で長寿命の mutual PQ/T TLS 1.3 チャネルを張り、そこから鍵を mint して専用ハードウェアで光トラフィックを暗号化)。両端を同一組織が管理する。

PKI の比較: composite では traditional / composite / PQC の3系統の PKI が必要で、CA と EE の組合せを混在させるとさらに複雑化。dual なら traditional と PQC の2系統で、hybrid モードでは証明書を2枚出す。ただし明確に分離された PKI 階層のみが対象で、mix-and-match 階層はカバーしない。

仕様: Certificate の構造は変更なし。空の CertificateEntry を区切りとして2つのチェーンを連結。CertificateVerify も構造は変更せず(IETF 123 のフィードバックを受け、新メッセージを作る案は撤回)、新 SignatureScheme(ecdsa_secp256r1_sha256_mldsa44ecdsa_secp384r1_sha384_mldsa65)を定義。

signing-input    = Transcript-Hash(Handshake Context, Certificate)
first-signature  = Sign(traditional-private-key, signing-input)
second-signature = Sign(pq-private-key, signing-input)
signature        = uint16(len(first-signature)) || first-signature || second-signature

質疑

8-2. Composite ML-DSA — draft-reddy-tls-composite-mldsa-10(Tiru Reddy ほか Tim Hollebeek, John Gray, Scott Fluhrer, Daniel Van Geest)

LAMPS で約7年、draft-ietf-lamps-pq-composite-sigsRFC Editor queue にある。PQC と従来の署名・公開鍵をアトミックな操作として扱い、両方の検証が成功した場合のみ検証成功。defense in depth と、PQC 署名アルゴリズムにバグ・脆弱性が見つかった場合の耐性、そして規制上の要求に応える。

TLS 統合: 既存の signature_algorithmssignature_algorithms_cert のみを使用。新しいハンドシェイクメッセージも拡張も区切り子も不要。composite ML-DSA は opaque な署名アルゴリズムとして扱われ、TLS はハッシュ関数を選ばない(ハッシュはアルゴリズム内部)。context string は空(TLS が RFC 8446 §4.4.3 のプロトコル固有 context を既に持つため)。

制限: RSA PKCS#1 v1.5 の組合せは signature_algorithms_cert のみで許可し、CertificateVerify では使わない。

アルゴリズム選定: LAMPS の composite 組合せ ∩ TLS 1.3 推奨の従来署名アルゴリズム。Brainpool 系を除いた全ペア。削減の余地はある。

セキュリティ: EUF-CMA(偽造には両方の構成要素を破る必要)。SUF-CMA が追加するのは「既署名メッセージに対する別の有効署名の防止」だけで、なりすましには新しい TLS transcript に対する有効署名が必要であり、TLS のハンドシェイク transcript は毎回一意なので TLS には不要。

利点: ワイヤ上は1証明書・1チェーン、検証も1チェーン、取得・更新・デバッグも単一 CA、TLS 側の変更は最小。暗号ライブラリが合成・分解を担い、IPsec・JOSE・SSH と共有されるのでコストは1回だけ。

Nicola Tuveri (Tampere University): 過去1年半、Web シナリオと制約デバイスの mutual TLS の双方で composite ML-DSA をサーバ・クライアント両側に展開してきた実体験として、非常に肯定的。opaque であるおかげで展開が実に簡単で、ライブラリがエンコーディングをサポートし TLS コードポイントがあればそれ以上は要らない(自分たちは引退したコードポイントを流用)。「これは実質もう終わっている」ので、選ぶならこちらは即座に実現できる。

8-3. 議論

8-4. 投票結果

# 質問 Yes No 意見なし
0 方向性を決めるだけの情報は揃っているか 67 10 1
1 WG は PQ+T 署名に取り組むべきか 53 20 12
2 どちらか一方だけに取り組むべきか 55 11 14
3 -pqt-dual-certs のみに取り組むべきか 8 51 12
4 -composite-ml-dsa のみに取り組むべきか 53 8 17
コードポイントだけ割り当てて先へ進めるか(中断) 11 7 3
コードポイントを割り当て、draft は採択しないか 31 23 8

質問2が Yes だったため、両方に取り組む場合の順序を問う質問5〜7は実施されず。

結論: 一方のみ、かつ composite ML-DSA に取り組む方向で、chairs がリストで確認する。最後のコードポイント関連の質問は文言をめぐる混乱(「割り当てて進む」なのか「割り当てて採択しない」なのか)で chair が打ち切り、次の議題へ移行した。

Usama からは「スライドのアップロードが遅すぎる。1週間前なら2案を比較・分析できた」との異議(chairs は「両 draft 自体は長く公開されている」としつつ指摘は受け入れ)。


9. XOF ベース鍵スケジュール — draft-sullivan-tls-xof-ciphers(Nick Sullivan)

「TLS 1.4 を発表します」→「冗談です。TLS 1.3 に新しい KDF を入れただけ」という導入。connection = cipher suite (RFC 9846) + KDF (this document)

不変: ハンドシェイクメッセージの表現とフロー/レコード層/cipher suite・AEAD・状態機械/鍵スケジュールのステージ・名前付きシークレット・leaf・checkpoint。

変更されるのは KDF のみ: HKDF over SHA-2 → 単一の Keccak permutation。schedule_profile 拡張で選択し、拡張がなければ通常の RFC 9846 ハンドシェイク。

permutation 呼び出し数の推移

構成 回数
SHA-2(現行) 156 compressions
SHA-3 素朴置換(HKDF/HMAC を SHA-3 に) 156 permutation calls
NIST primitives(Expand→KMAC-KDF, Hash→SHAKE, MAC→KMAC。Extract のみ SP 800-56C が HMAC/AES-CMAC しか認めないため SHA-3 のまま) 117
deck function 39

SHAKE256 は 24 ラウンド/呼び出しで計 936、TurboSHAKE256 なら 12 ラウンドで計 468(ただし EUF-CMA の解析は未了)。

deck function: XOF の可変長入出力に対する既知のパターン(Doubly-Extendable Cryptographic Keyed function、ここでは unkeyed 利用)。TLS 1.3 に必要な4操作は Init("tls13 " を framing した新しい sponge)、Absorb(tag 付き入力を1つ折り込む、出力なし)、Derive(clone → context → label を absorb → 1回 squeeze)、Ratchet(= Init(Derive(D, "derived"))、幹を squeeze して次段の種にする)。early/handshake/main secret は具体的なデータではなく deck の状態となり、leaf ごとに clone、段の境界で Ratchet。TLS 1.3 が暗黙にしていた Ratchet を明示的に名付けた形。

根拠: TLS13KS(Brzuska et al., ASIACRYPT 2022)は SHA-2 を塊としてではなく役割で分解して解析している(Hash=衝突耐性、Extract=どちらの入力で鍵付けしても PRF、Expand-Label=PRF、MAC=EUF-CMA、Derive-Secret=PRF)。置き換えは解析が依拠する性質さえ保てばよく、sponge は indifferentiability(BDPV 2008)により 2^256 まで random oracle であり、単一の oracle が全役割を同時に満たす。injective framing により異なる導出は異なるクエリになる。

deck Derive は HKDF ではない: HKDF-Expand-Label が label→context の順なのに対し、deck Derive は transcript→label の順で全フィールドを長さ prefix で framing する。injective なので順序自体は安全性に影響しないが、これにより TH_SF を共有する3つの leaf(c_ap_traffic / s_ap_traffic / exp_master)が transcript を1回 absorb してから fork できる。HKDF は label が先に来るため leaf ごとに TH_SF を再ハッシュせざるをえない。

transcript hash: SHA-256(32オクテット固定)→ SHAKE256(prefix, 512)(64オクテット、任意長)。5つの checkpoint(TH_CH0/TH_CH/TH_SH/TH_SF/TH_CF)で cipher suite に依存しないため、クライアントは事前計算できる。

ML-KEM/ML-DSA が既に Keccak permutation 上で動くため、PSK 専用・純 PQ 展開では SHA-2 が最後の hard dependency だった、というのが動機。証明書側には SHA-2 が残る。

-00 へのメーリングリストレビュー(Markku-Juhani Saarinen, Thom Wiggers, Joan Daemen, Ilari Liusvaara)

質疑


10. ECH の実測 — Encrypted Client Hello: An active measurement perspective(Jonas Mücke, TU Dresden ほか Konstantin Gasser, Matthias Wählisch, Thomas C. Schmidt)

手法: DNS の ECH 情報に依存せず、top list のドメイン名を outer SNI に入れた GREASE ECH 付きハンドシェイクを行い、HelloRetryRequest の RetryConfiguration から実際の設定を取得。それを使って本番の ECH 接続を行う。1年以上集約。入力が top list ベースなので全展開を網羅するわけではない。

結果

ツールは hackathon 作の echtool、および ech.understanding-quic.net で試用可能。

コメント


次のアクション一覧

項目 状態
DTLS 1.3 PR#317(replay protection 必須化) マージ
DTLS 1.3 PR#326(epoch closure)/Issue #291 レビュー募集中、その後 WGLC 要請
-pake FATT へ送付(chairs が作業中)、計算量的解析と機能組合せのモデル化が残作業
-extended-key-update FATT レビュー待ち。supplemental certificates との合同解析の可能性
-signed-ech-updates リストで採択確認。disable config の replay とクロックドリフトが open issue
-wimse-cert-hint DANCE との統合を Shumon と調整、一般化の要求。次回 IETF で採択検討
-supplemental-auth 反対者との調整が宿題。exported authenticators ベースへの誘導圧力が強い
-pqc-continuity 展開意向が確認できず。HTTP レイヤ解への転換要求
PQ+T 署名 composite ML-DSA 一本に絞る方向でリスト確認
-xof-ciphers 仕様レビューと形式解析を募集。ネゴシエーション方法(拡張 vs cipher suite)はリストで継続
FATT PR#24 のレビュー募集。sniff test の送付有無を毎回メールで通知するプロセスへ
メーリングリスト chairs による squelch を積極運用、月次リマインダに「過度なプロセス議論」を追加