Online Certificate Status Protocol (OCSP)協議概述
概述
本文內容來自維基百科OCSP詞條的翻譯
線上證書狀態協議(OCSP)是一個網際網路協議,用於獲取符合X.509標準的數字證書的狀態。該協議符合網際網路標準規範,文件RFC6960對其進行了詳細地描述。OCSP協議的產生是用於在公鑰基礎設施(PKI)體系中替代證書吊銷列表(CRL)來查詢數字證書的狀態,OCSP克服了CRL的主要缺陷:必須經常在客戶端下載以確保列表的更新。通過OCSP協議傳輸的訊息使用ASN.1的語義進行編碼。訊息型別分為“請求訊息”和“響應訊息”,因此致OCSP伺服器被稱為OCSP響應端。
與CRLs比較
與CRL相比OCSP訊息中資訊內容更少,這能減少網路的負擔和客戶端的資源;
由於OCSP響應端需要解析的資訊更少,客戶端提供的用於解析訊息的庫函式更簡單;
OCSP向發起響應方公開了一個特定的網路主機在特定時刻所使用的特定證書。由於OCSP並不強制加密該證書,因此資訊可能被第三方攔截
基本PKI應用場景
Alice和Bob使用Ivan頒發的數字證書。該場景中Ivan是數字證書認證中心(CA);
Alice向Bob傳送其由Ivan頒發的數字證書,併發出請求建立連線的申請;
Bob擔心Alice的私鑰已經洩露,因此向Ivan傳送’OCSP request’ 訊息幷包含Alice的數字證書序列號;
Ivan的OCPS響應端從Bob傳送的訊息中獲取數字證書的序列號,並在CA資料庫中查詢該數字證書的狀態;
Ivan向Bob傳送由其私鑰加密的訊息’OCSP response’,幷包含證書狀態正常的資訊;
由於Bob事先已經安裝了Ivan的數字證書,因此Bob使用Ivan的公鑰解密訊息並獲取到Alice的數字證書狀態資訊;
Bob決定與Alice進行通訊
協議細節
數字證書狀態互動訊息包括下述兩條:
Function | Allication | Purpose |
---|---|---|
OCSP Request | OCSP client | Request for the revocation status of a certificate |
OCSP Response | OCSP response | Provide the revocation status of a certificate |
OCSP Request訊息包含以下資料:
協議版本
服務請求
目標證書標識
可能被OCSP響應器處理的可選擴充套件
在接受一個請求之後,OCSP響應端(通常是CA)檢測是否:
資訊正確格式化
響應器被配置提供請求服務而且
請求包含了響應器需要的資訊,返回一個確定的回覆,OCSP響應端回覆的加密訊息中包含證書的狀態可以是’good’,’revoked’或者’unknown’
如果任何一個先決條件沒有滿足,那麼OCSP響應器將產生一個錯誤資訊,錯誤碼可能包含以下內容:
- 未正確格式化的請求(malformedRequest)
- 內部錯誤(internalError)
- 請稍後再試(trylater)
- 需要簽名(sigRequired)
- 未授權(unauthorized)
其他
OCSP的請求訊息格式支援額外的擴充套件,這樣在特殊的PKI場景中允許客戶擴充套件其功能。
OCSP可能會遭受‘replay attacks’ 攻擊。 當一個加密後的, 響應訊息為‘good’的訊息被惡意的中間方攔截,並在證書過期後再向客戶端傳送該訊息,此時訊息中所傳遞的證書狀態已經與實際的證書狀態不符。OCSP通過在請求訊息和響應訊息中加入‘nonce’來避免受該類攻擊。然後,由於大部分OCSP的響應端和客戶端都不支援使用‘nonce’擴充套件,而且CA回覆的訊息的有效性是幾天時間,所以‘replay attacks’ 是系統的一個主要威脅。