本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
RFC 5272 bis: Certificate Management over CMS (CMC) 更新仕様
【背景と設計目標】
現代的な署名アルゴリズム(EdDSA等)への対応と、複雑化するPKI環境での自動発行プロセスを最適化する既存仕様の抜本的更新。 旧規格(RFC 5272等)との上位互換性を維持しつつ、不透明だったエラー処理と属性定義を現代の暗号要件に合わせて再定義しています。
【通信シーケンスと動作】
CMCは、End Entity (EE)、Registration Authority (RA)、Certification Authority (CA) 間の多段構成をサポートします。
sequenceDiagram
participant "EE as End Entity (Client)"
participant "RA as Registration Authority"
participant "CA as Certification Authority"
Note over EE, CA: Enrollment Preparation (Key Gen)
EE ->> RA: Full PKI Request (TaggedAttribute + CSR)
Note right of EE: CMS SignedData で保護
RA ->> RA: Validate Proof-of-Possession (PoP)
RA ->> CA: Forwarded PKI Request (Adding RA Identity)
CA ->> CA: Verify Policy & Issue Certificate
CA ->> RA: Full PKI Response (Certificate + CMC Status)
RA ->> EE: Full PKI Response (Relayed)
EE ->> EE: Install Certificate
EE ->> RA: CMC Confirmation (Optional)
Request: クライアントは公開鍵と属性情報を含む
TaggedAttributeをCMS(Cryptographic Message Syntax)でカプセル化して送信。PoP (Proof-of-Possession): 秘密鍵の所有証明をCMS署名により担保。
Response: 成功時には証明書、失敗時には詳細な
CMCStatusInfoを含む構造体が返却される。
【データ構造 / パケットフォーマット】
CMCはASN.1 DERで符号化されます。以下は、CMS内部に配置されるCMCリクエストの論理構造です。
+---------------------------------------------------------------+ | CMS ContentInfo (oid: id-ct-KP-allRequest / id-cct-PKIData) | +---------------------------------------------------------------+ | PKIData Structure (ASN.1 DER Encoded) | | offset:bits | | 00:32 [controlSequence] - TaggedAttribute (Sequence of) | | +-- tag: 0..MAX (Integer) | | +-- body: CMC Control Attributes (Status, RegKey...) | | 04:32 [reqSequence] - TaggedRequest (Sequence of) | | +-- t_req: Choice (t_cr, t_orm, t_atrq) | | 08:32 [cmsSequence] - TaggedContentInfo (Sequence of) | | 12:32 [otherMsgSequence] - OtherMsg (Extensibility point) | +---------------------------------------------------------------+ | CMS SignerInfo / Signature (Ensures Integrity & Auth) | +---------------------------------------------------------------+
【技術的な特徴と比較】
CMCは、シンプルなSCEPやESTと比較して、エンタープライズやキャリアグレードの複雑な要件に対応可能です。
| 特徴 | CMC (Update Draft) | EST (RFC 7030) | SCEP (Legacy) |
|---|---|---|---|
| ベース形式 | CMS (RFC 5652) | HTTP / TLS | PKCS#7 / HTTP |
| 暗号アジリティ | 極めて高い (EdDSA/PQC対応) | 高い (TLSに依存) | 低い (DES/MD5依存多) |
| トランスポート | 任意 (HTTP, Mail, TCP) | HTTP(S) のみ | HTTP のみ |
| 多段認証 | RAによる属性追加・多重署名可 | 困難 | 限定的 |
| エラー詳細度 | 非常に詳細 (CMCStatusInfo) | HTTP Status + ASN.1 | 限定的 (failInfo) |
HOL Blocking: トランスポート非依存のため、プロトコル層での影響は受けにくい。
多重化: 一つの
PKIDataに複数の証明書要求を同梱可能(原子性を確保)。
【セキュリティ考慮事項】
リプレイ攻撃耐性:
SenderNonceおよびRecipientNonce属性の使用により、過去の有効なメッセージを再送する攻撃を防御。Proof-of-Possession (PoP): 署名生成能力を検証することで、他人の公開鍵を用いた証明書偽造(Key Substitution Attack)を防止。
前方秘匿性 (PFS): CMC自体はメッセージ保護プロトコルですが、トランスポートにTLS 1.3を併用することで、通信経路全体でのPFSを確保することが推奨されます。
【まとめと実装への影響】
ネットワークエンジニアおよび開発者が注目すべき点は以下の3点です。
暗号アルゴリズムの刷新: SHA-1/RSA-PKCS#1 v1.5等のレガシーな暗号は非推奨となり、RSA-PSSやEd25519/Ed448への移行が求められます。
ASN.1 パーサの堅牢化: CMCは再帰的な構造を持つCMSを利用するため、脆弱性を狙った不正なASN.1パケットに対する境界チェックの実装が必須です。
自動化への適合: 更新ドラフトでは、手動介入を減らすための自動化属性が整理されており、ACME等と比較してより厳格なアイデンティティ検証が必要な環境に適しています。

