[META] { “protocol”: “CMC (Certificate Management over CMS)”, “draft_status”: “Submitted to IESG for Publication (rfc5272bis/rfc5273bis)”, “primary_rfc”: “RFC 5272 (obsoleting), RFC 5273 (obsoleting)”, “target_audience”: “Network Security Engineers / PKI Developers”, “technical_focus”: [“CMS Encapsulation”, “ASN.1”, “Crypto-Agility”, “Full PKI Request”] } [/META] 本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
RFC 5272bis/5273bis: Certificate Management over CMS (CMC) 更新ドラフト
【背景と設計目標】
CMSベースの証明書管理仕様を現代化し、暗号アルゴリズム更新と相互運用性の向上を目指す。 既存のRFC 5272/5273を統合・整理し、現代の暗号スイート(SHA-2/SHA-3、EdDSA等)への対応と曖昧さの排除を目的とした事実上の上位互換規格です。
【通信シーケンスと動作】
CMCは通常、エンドエンティティ(EE)と登録機関(RA)または認証局(CA)の間で、CMS(Cryptographic Message Syntax)でカプセル化されたメッセージをやり取りします。
sequenceDiagram
participant "EE as End Entity (Client)"
participant "RA_CA as RA/CA (Server)"
Note over EE: Generate Key Pair
EE ->> RA_CA: Full PKI Request (TaggedCertificationRequest)
Note right of RA_CA: Verify Signature / Policy Check
alt Success
RA_CA -->> EE: Full PKI Response (CMCStatusInfo: Success + Certificates)
else Proof of Possession (PoP) Required
RA_CA -->> EE: Full PKI Response (CMCStatusInfo: Confirm Required)
EE ->> RA_CA: PKI Response Confirmation
RA_CA -->> EE: Final Full PKI Response
end
【データ構造 / パケットフォーマット】
CMCメッセージはASN.1で定義され、CMSの SignedData または AuthenticatedData 内にカプセル化されます。以下は Full PKI Request の論理構造です。
+---------------------------------------------------------------+
| CMS ContentInfo (oid: id-ct-PKIData) |
+---------------------------------------------------------------+
| PKIData ::= SEQUENCE { |
| controlSequence SEQUENCE OF TaggedAttribute |
| (Offset 0:32) -> [TransactionID, SenderNonce, etc.] |
| |
| reqSequence SEQUENCE OF TaggedCertificationRequest |
| (Offset 32:64) -> [PKCS #10 or nested CMC requests] |
| |
| cmsSequence SEQUENCE OF TaggedContentInfo |
| (Offset 64:96) -> [Nested CMS objects] |
| |
| otherMsgSequence SEQUENCE OF TaggedOtherMsg |
+---------------------------------------------------------------+
【技術的な特徴と比較】
CMCは、簡易的なSCEPやモダンなESTと比較して、非常に高い柔軟性と複雑な登録フロー(複数ホップのRA経由など)をサポートします。
| 機能・特性 | SCEP (RFC 8894) | EST (RFC 7030) | CMC (rfc5272bis) |
|---|---|---|---|
| ベースプロトコル | HTTP (GET/POST) | HTTP (TLS mandatory) | CMS (Transport agnostic) |
| 暗号の柔軟性 | 低(旧式アルゴリズム) | 中(TLS依存) | 高(Crypto-agility対応) |
| 多重署名/承認 | 不可 | 不可 | 可能(RAによる重ね署名等) |
| 管理オブジェクト | 単一要求 | 単一要求 | バッチ処理・複数要求 |
| 主な用途 | ネットワーク機器 | IoT/デバイス証明書 | 大規模PKI / 高機密環境 |
【セキュリティ考慮事項】
リプレイ攻撃耐性:
SenderNonceおよびRecipientNonceを制御シーケンスに含めることで、メッセージの再利用を防止します。証明書の所有証明 (PoP): 秘密鍵の所有を証明するための
Proof-of-Possessionフィールドが厳格化されており、偽装申請を防御します。暗号アジリティ: ドラフトでは、SHA-1などのレガシーアルゴリズムを非推奨(Deprecated)とし、現代的なAEADアルゴリズムや楕円曲線暗号(ECC)の利用を前提とした構造に整理されています。
ダウングレード攻撃: 署名アルゴリズムの最小要件を定めることで、攻撃者による強度の低いアルゴリズムへの強制を抑止します。
【まとめと実装への影響】
既存実装の改修: RFC 5272/5273準拠のシステムは、新しいOIDやアルゴリズム制限に対応するため、ASN.1パーサーおよび検証ロジックの更新が必要。
トランスポートの独立性: RFC 5273bisにより、HTTPだけでなくファイルベースやメールベースの転送も引き続きサポートされるが、セキュリティ確保のためにTLS 1.3等の下位レイヤー併用が推奨される。
相互運用性の向上: 曖昧だったエラーコード(CMCStatusInfo)の定義が具体化されたため、マルチベンダー環境でのデバッグが容易になる。


コメント