S/MIME証明書にPQCアルゴリズムが正式導入:Ballot SMC013

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-DSAML-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は keyUsagekeyEncipherment のみを設定する必要がある。

今後の論点と展望

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

各オプションの意味

オプション説明
-x509CSRではなく、直接自己署名証明書を生成
-newkey ML-DSA-44ML-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.pemML-DSA秘密鍵(署名用)
ml-dsa-cert.crt自己署名証明書(ML-DSA公開鍵を含む)

この証明書は、署名検証のPQCテストに使える。

タイトルとURLをコピーしました