1. 程式人生 > >Certificate Management Protocol (CMP)協議概述

Certificate Management Protocol (CMP)協議概述

概述


本文內容來自維基百科CMP詞條的翻譯
CMP協議是一個網際網路協議,用於在PKI體系中獲取符合X.509標準的數字證書。文件RFC4210對其進行了詳細地描述,該協議是至今為止唯二使用CRFM(Certificate Request Message Format)格式的,另一個使用該格式編碼的協議是CMC(Certificate Management over CMS),在文件RFC4211中進行描述。

CMP訊息使用ASN.1進行編碼,使用DER方法,通常在HTTP協議上傳輸。

PKI 實體


在PKI體系中,CA負責頒發數字證書,並作為服務端使用CMP協議。通過該協議獲取數字證書的客戶端被稱為EE(end entity終端實體)。EE和CA之間可以存在0個或者多個RA(registration authorities註冊機構)。

協議細節


EE可以通過CMP協議從CA獲取的數字證書分為三種類型:

  1. First certificate:新的數字證書同時攜帶一個新的公鑰的(請求方不存在任何有效的數字證書);

  2. Certificate renewal:新的數字證書同時仍攜帶之前的公鑰;

  3. Certificate rekey:新的數字證書同時攜帶一個新的公鑰的(請求方已經存在一個有效的數字證書)

CA與EE之間數字證書互動訊息包括下述四條,表格中描述了訊息功能,訊息流向和訊息目的:

Function Message flow direction Purpose
Certificate Request PKI client->PKI server Request a certificate
Certificate Response PKI server->PKI client Deliver a certificate
Certificate Confirmation PKI client->PKI server Confirm the reception of a certificate
Confirmation Acknowledgement PKI server->PKI client Acknowledge the Certificate Confirmation message

傳輸


可以有多種傳輸方式攜帶CMP訊息

  • 壓縮在Http訊息內

  • TCP或者其他可靠的傳輸連線

  • 通過檔案協議,例如FTP或者SCP

  • 通過E-mail,使用MIME編碼標準

參考


  • RFC 6712 Internet X.509 Public Key Infrastructure – HTTP Transfer for the Certificate Management Protocol (CMP)
  • EJBCA - The J2EE Certificate Authority
  • CMP for OpenSSL, Sourceforge Project page