2025年8月22日、CA/Browser ForumにおいてBallot SMC013が正式採択され、S/MIME Baseline Requirements v1.0.11にて耐量子暗号(Post-Quantum Cryptography, 以下PQC)アルゴリズムが導入された。これは、量子計算時代に向けた暗号制度の転換点であり、S/MIME証明書の設計・運用における新たなフェーズの始まりを意味する。
PQCアルゴリズムの導入背景
量子コンピュータの実用化が現実味を帯びる中、RSAやECDSAといった量子以前の暗号は、Shorのアルゴリズムによって破られる可能性が指摘されている。これに対し、NISTは格子ベース暗号を中心としたPQCアルゴリズムの標準化を進めてきた。
Ballot SMC013では、以下の2つのPQCアルゴリズムがS/MIME証明書において使用可能となった。
アルゴリズム | 用途 | OID |
---|---|---|
ML-DSA | デジタル署名 | 2.16.840.1.101.3.4.3.17〜19 |
ML-KEM | 鍵カプセル化(暗号化) | 2.16.840.1.101.3.4.4.1〜3 |
これらは「非ハイブリッド」方式であり、量子以前の暗号との併用を前提としない純粋なPQC証明書として位置づけられている。
制度的な位置づけと採択プロセス
Ballot SMC013は、DigiCertのStephen Davidsonによって提案され、D-TrustおよびSectigoのメンバーによって支持された。採択に至るまでのプロセスは以下の通り:
- 議論期間:2025年7月2日〜11日
- 投票期間:2025年7月14日〜21日
- IPRレビュー期間:2025年7月21日〜8月20日
- 採択日:2025年8月22日
投票結果は以下の通り:
- 証明書発行者(CA):19賛成、0反対、1棄権
- 証明書利用者(ブラウザ等):2賛成(Mozilla, rundQuadrat)、1反対(Microsoft)
CA/B Forumの定款要件(定足数、賛成多数)をすべて満たし、正式に採択された。
Microsoftの反対理由
原文出典
- 投稿日時:2025年7月22日 1:40(UTC)
- 投稿者:Karina Sirota Goodley(Microsoft Trusted Root Program)
- 原文URL:Google Groups – SMCWG Public
反対理由の整理
Baseline Requirements(BRs)の硬直性
“Our concern is that once included, any subsequent changes—particularly those involving cryptographic algorithm requirements—would be significantly more difficult to implement due to the codified nature of the BRs.”
解釈:BRsにPQC証明書プロファイルを一度組み込むと、将来的な暗号アルゴリズムの変更が制度的に困難になる。Microsoftは、技術進化の柔軟性を制度が阻害するリスクを懸念している。
考察:
- 暗号技術の標準化は流動的であり、BRsのような固定的な制度に組み込むには慎重さが必要。
- 「制度の可塑性 vs 技術の進化速度」という構造的ジレンマ。
Windowsプラットフォームの未対応
“The Windows platform does not currently support post-quantum cryptography (PQC). There is no established environment within Windows itself to facilitate meaningful testing of third-party PQC certificates.”
解釈:Windows OSは現時点でPQC証明書の検証・運用環境を備えておらず、実装・テストが困難。
考察:
- Microsoft自身のエコシステム(Windows, Outlook, Exchangeなど)でPQC証明書の運用が現実的でない。
- 実装の成熟度と制度導入のタイミングの乖離。
実験は容認、信頼は否定
“Importantly, this position does not prevent proponents from conducting testing or experimentation. However, we do not believe these certificates should be trusted by default or chain to a root that is broadly trusted at this time.”
解釈:MicrosoftはPQC証明書の実験的利用は否定していないが、PublicとしてのTrust(Public trusted rootへの連鎖)は時期尚早と判断。
考察:
- 「実験と制度の境界線」を明確に引いている。
- 信頼モデル(PKI)の根幹に関わるため、Root CAとの連鎖は慎重に扱うべきという立場。
制度設計的な論点整理
観点 | Microsoftの立場 | 背景 |
---|---|---|
技術成熟度 | 未成熟と判断 | Windows未対応、Lintingルール不整備 |
制度柔軟性 | BRsの硬直性を懸念 | 暗号要件の変更が困難になる |
信頼モデル | Root CAへの連鎖は不可 | 実験と信頼の境界を明確化 |
実装環境 | テスト環境が未整備 | WindowsでのPQC証明書検証が困難 |
ML-DSAとML-KEMの技術的比較
項目 | ML-DSA | ML-KEM |
---|---|---|
用途 | 署名・検証 | 暗号化・復号(鍵配送) |
暗号方式 | 格子ベース(Module-Lattice) | 格子ベース(Module-Lattice) |
鍵サイズ | 大きめ(署名サイズも大) | 暗号文・鍵サイズともに大きめ |
計算負荷 | 署名生成は高速、検証はやや重い | 暗号化・復号ともに高速 |
S/MIMEでの役割 | メールの改ざん防止・送信者認証 | メール内容の秘匿性確保 |
両者は補完的な関係にあり、S/MIME証明書の設計において用途に応じた使い分けが求められる。
S/MIME証明書における適用例
シナリオ | 使用アルゴリズム | 説明 |
---|---|---|
メール署名のみ | ML-DSA | 送信者の真正性を保証。改ざん検知が可能。 |
メール暗号化のみ | ML-KEM | 受信者の公開鍵で暗号化。内容の秘匿性を確保。 |
署名+暗号化 | ML-DSA + ML-KEM(別証明書) | 両方の機能を分離して運用。用途ごとに鍵管理が明確。 |
ハイブリッド非使用 | ML-DSAまたはML-KEM単独 | 量子以前の暗号を含まない純粋なPQC証明書。 |
S/MIME Baseline Requirements v1.0.11では、Generation(Strict / Multipurpose / Legacy)ごとにPQCアルゴリズムの使用条件が明記されており、例えばML-KEMは keyUsage
に keyEncipherment
のみを設定する必要がある。
今後の論点と展望
PQC証明書の導入は、制度設計・技術実装の両面で新たな課題を突きつける。特に以下の点が今後の論点となる:
- Rootプログラムによる信頼ポリシーの整備(Microsoftの反対票は象徴的)
- 証明書サイズの増大による通信・保存コストの増加
- LintingツールやCPS記述のPQC対応
- ハイブリッド証明書の是非と将来的な標準化動向
PQCは単なる技術的アップデートではなく、暗号制度の根幹に関わる設計思想の転換でもある。S/MIMEという比較的レガシーな領域において、こうした先進的な仕様が導入されたことは、制度設計者・実装者にとって大きな意味を持つ。
了解です。OpenSSL(OQS版)を使って、ML-DSA署名鍵による自己署名PQC証明書(.crt
形式)を一発で生成するコマンドを以下に示します。
OpenSSL(OQS版)によるPQC証明書のテスト発行(ML-DSA署名鍵による自己署名証明書生成)
PQC証明書テスト発行のための環境構築手順(Windows)
1. インストーラーの入手元
Shining Light Productionsが提供するWindows向けOpenSSLインストーラーは以下のページにある: Win32/Win64 OpenSSL Installer for Windows
PQC対応バージョン
OpenSSLが公式にPQCアルゴリズム(ML-KEM, ML-DSA, SLH-DSA)をサポートしたのは バージョン3.5.0以降。 2025年4月8日にリリースされたOpenSSL 3.5.0では、以下のPQC機能が追加された。
アルゴリズム | 用途 | OpenSSL対応開始 |
---|---|---|
ML-KEM | 鍵共有 | 3.5.0 |
ML-DSA | 署名 | 3.5.0 |
SLH-DSA | 署名 | 3.5.0(実験的) |
発行コマンド
openssl req -x509 -newkey ML-DSA-44 -keyout ml-dsa-key.pem -out ml-dsa-cert.crt -subj "/CN=test-user/O=Example Corp/C=JP" -days 365 -nodes
各オプションの意味
オプション | 説明 |
---|---|
-x509 | CSRではなく、直接自己署名証明書を生成 |
-newkey ML-DSA-44 | ML-DSA(Level 1)署名鍵を新規生成 |
-keyout ml-dsa-key.pem | 秘密鍵の保存先 |
-out ml-dsa-cert.crt | 生成される証明書(.crt 形式) |
-subj "/CN=.../O=.../C=..." | 証明書のSubject(識別情報) |
-days 365 | 有効期限(日数) |
-nodes | 鍵をパスフレーズなしで保存(テスト用途向け) |
生成されるファイル
ファイル名 | 内容 |
---|---|
ml-dsa-key.pem | ML-DSA秘密鍵(署名用) |
ml-dsa-cert.crt | 自己署名証明書(ML-DSA公開鍵を含む) |
この証明書は、署名検証のPQCテストに使える。