[Protocol: CMC (Certificate Management over CMS) Updates] [Draft: draft-ietf-lamps-rfc5272bis / draft-ietf-lamps-rfc5273bis] [Status: IESG Evaluation / Proposed Standard Revision] [Keywords: PKI, CMS, Enrollment, LAMPS, RFC5272]
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
draft-ietf-lamps-rfc5272bis: Certificate Management over CMS (CMC) Update
【背景と設計目標】
PKIにおける証明書ライフサイクル管理の自動化とCMSベースの高度な署名検証機能の強化。 従来のRFC 5272を、最新の暗号アルゴリズム(EdDSA等)や現代的なトランスポート要件に適合させるための上位互換アップデートです。
【通信シーケンスと動作】
CMCは、エンドエンティティ(EE)、登録機関(RA)、および認証局(CA)の間で証明書管理メッセージを交換します。以下は、最も一般的な「Simple Enrollment Request」のシーケンスです。
sequenceDiagram
participant "EE as End Entity (Client)"
participant "RA/CA as Registration/Certification Authority"
Note over EE: Generate Key Pair & CSR
EE ->> RA/CA: Full PKI Request (CMS SignedData)
Note right of RA/CA: Verify Signature & Policy
RA/CA -->> EE: Full PKI Response (CMS ContentInfo)
Note over EE: Install Certificate
Request: クライアントはCSR(証明書署名要求)をCMS(Cryptographic Message Syntax)の
SignedData構造でカプセル化し、サーバーに送信します。Verification: サーバー側(RA/CA)は、CMSの署名を検証し、要求されたポリシーが適切か確認します。
Response: サーバーは、発行された証明書またはエラー情報を同様にCMS形式でパッキングして返します。
【データ構造 / パケットフォーマット】
CMCメッセージはASN.1で定義され、DERエンコードされます。ビット単位のオフセットではなく、CMS ContentInfo 内の論理構造を以下に示します。
+---------------------------------------------------------------+ | CMS ContentInfo (OID: id-ct-CMC-statusInfo or id-signedData) | +---------------------------------------------------------------+ | [SignedData] | | +- version (v3) | | +- digestAlgorithms | | +- encapContentInfo (eContentType: id-cct-PKIData) | | +- eContent (OCTET STRING) | | +- PKIData Structure: | | +- controlSequence (TransactionID, SenderNonce, etc)| | +- reqSequence (TaggedAttribute, TaggedRequest) | | +- cmsSequence (Encapsulated CMS objects) | | +- otherMsgSequence | | +- certificates (Optional: for chain building) | | +- signerInfos (Signature over PKIData) | +---------------------------------------------------------------+
【技術的な特徴と比較】
CMCは、先行するCMP(Certificate Management Protocol)や、より軽量なEST(Enrollment over Secure Transport)と比較して、CMSとの親和性と柔軟性に重きを置いています。
| 特徴 | CMC (RFC 5272bis) | CMP (RFC 4210) | EST (RFC 7030) |
|---|---|---|---|
| 基本構造 | CMS (RFC 5652) ベース | 独自メッセージ構造 | HTTP + PKCS#10 |
| 柔軟性 | 非常に高い(多重署名・RA中継) | 高い | 限定的(シンプル重視) |
| トランスポート | HTTP/HTTPS (RFC 5273) | HTTP/TCP/Mail/File | HTTPS |
| 暗号アルゴリズム | 最新のEdDSA, PQ暗号を考慮 | 幅広いが複雑 | 一般的なスイートのみ |
| 多重化 | 制御メッセージの多重化が可能 | 構造的に可能 | 不可(単一要求) |
【セキュリティ考慮事項】
リプレイ攻撃への耐性:
SenderNonceおよびRecipientNonceを制御シーケンスに含めることで、メッセージの鮮度を保証し、再送攻撃を防止します。ダウングレード攻撃の防止: 署名対象の
AuthenticatedAttributes内にアルゴリズム識別子を保持し、攻撃者による弱い暗号への差し替えを検知します。前方秘匿性 (PFS): CMC自体はメッセージ保護プロトコルですが、トランスポート層(TLS 1.3)でPFSを確保することが強く推奨されています。
証明書確認 (Confirm): 証明書の発行後にクライアントが「受け取り」を通知するステップ(CertConfirm)により、不完全なトランザクションを防ぎます。
【まとめと実装への影響】
ネットワークエンジニアおよび開発者が留意すべき点は以下の3点です。
ライブラリの更新:
rfc5272bisで追加・整理された新しい OID や制御属性(Control Attributes)を処理できるよう、ASN.1 パーサーおよび CMS ライブラリの更新が必要になります。HTTPトランスポートの厳格化:
rfc5273bisでは、HTTP経由の転送時に適切なContent-Type(application/pkcs7-mime) の使用が再定義されており、既存のWAFやプロキシのフィルタリング設定の見直しが必要です。PQ暗号への準備: このドラフト更新は、耐量子計算機暗号(Post-Quantum Cryptography)をCMSに統合するための布石となっており、将来的なアルゴリズム移行のロードマップにCMCを組み込みやすくなっています。

