耐量子 TLS はすでに握手の中にいる、ただし解決したのは半分だけ

ブラウザと CDN は X25519MLKEM768 のようなハイブリッド鍵交換を既定で交渉するようになり、「今保存して後で復号」はほぼ塞がった。署名の半分は未解決だ。

結論から。鍵交換の半分はほぼ解決済み。署名の半分は解決していない。

脅威モデルは「量子コンピュータが来る」ではない

本当の脅威は harvest now, decrypt later(今保存して、後で復号する)と呼ばれる。今日あなたのサイトの TLS 通信を丸ごと録って保存し、量子コンピュータが使えるようになってから復号する。

厄介なのは、今成功する必要がないことだ。今日録ったセッションが十年守るべき内容を含むなら、その十年のうちに量子コンピュータが来れば、その録音は元を取ったことになる。

だから「量子コンピュータが出てから考える」話ではない。判断基準は 守るべき情報の機密保持期間だ。医療記録、身分証、長期鍵 —— これらは数十年単位で、今から扱う価値がある。

NIST は 2024 年に三つの標準を確定した

  • FIPS 203 — ML-KEM:鍵カプセル化。ECDH などの鍵交換の置き換え
  • FIPS 204 — ML-DSA:デジタル署名
  • FIPS 205 — SLH-DSA:ハッシュ基盤のもう一つの署名系。署名は大きいが仮定は保守的

ブラウザと CDN が取った策:ハイブリッド

現在の主要ブラウザと CDN が既定で交渉するのは X25519MLKEM768 のようなハイブリッド群だ。古典的な楕円曲線と耐量子 KEM を同時に走らせ、両方の出力を結合して鍵材料にする。

ハイブリッドは移行期の手抜きではなく、意図的な選択である。

  • 耐量子アルゴリズムは解析の歴史が圧倒的に短く、十年後に新しい攻撃が出ないと誰も保証できない
  • 古典アルゴリズムは将来破られても、今日はまだ安全
  • 両方走らせれば、どちらか一方が持ちこたえればセッションは持つ

代価は握手一回につき KEM が一回増えること。得られるものに比べれば誤差だ。

なぜ「半分」なのか

鍵交換は一時的な秘密を交渉する。変更は握手の内部で完結し、上位層は何も気づかない。だからブラウザと CDN が上げれば、こちらは何もしなくても手に入る。

署名は違う。 証明書チェーンの各環の署名を耐量子アルゴリズムに替える必要があり、しかも耐量子の署名と公開鍵はずっと大きい —— 署名は 2 KB を超え、公開鍵もキロバイト級。連鎖して二つの問題が起きる。

  1. 証明書チェーンが太る。 三段のチェーンなら、署名と公開鍵だけで数 KB 増える。
  2. 握手が単一 TLS レコードの容量を超えうる。分割が起きたり、中間機器のバッファ上限に当たったりする。

二つ目が運用で最も嫌な形だ。普段は何も起きない。ある日 CA を変えるか中間証明書を一段足した瞬間に、一部のクライアントが繋がらなくなる。

サイト運営者が今すべきこと

  • CDN / クラウドの後ろにいるなら、鍵交換の半分はすでに無料で手に入っている。何もしなくていい
  • 気にし始めるべきは証明書チェーンの長さ。TLS 1.3 を使い、不要な中間証明書は外す
  • 自分で TLS を終端しているなら、使っているライブラリとバージョンが ML-KEM ハイブリッド群に対応しているか確認し、有効にする
  • 耐量子を理由に署名アルゴリズムを今変えない。エコシステム(CA、OCSP、クライアント検証)が追いついていない

私の判断はこうだ。今回急いで動く必要はないが、「証明書チェーンの長さ」は点検項目に入れる。完全に問題なく見えたまま、ある日突然握手が失敗する典型で、この種の問題は予防より診断のほうがずっと高い。

← 記事一覧に戻る

コメント

…