
用戶在用數字證書加密和驗證數字簽名時,硬要要先驗證證書的有效性。
證書有效性的驗證主要包括以下步驟:
1.驗證CA簽名
①把待驗證證書設置為當前證書。
②根據當前證書中簽發者信息查詢簽發者證書,並使用簽發者證書驗證當前證書中的數字簽名是否正確。
③如果不正確,則待驗證證書無效。
④如果正確且簽發者證書是預先確定的可信任CA證書,則說明待驗證證書的CA簽名正確;否則,將簽發者證書設置為當前證書,重複步驟②~④。
2.驗證證書有效期
①如果待驗證證書中not Before在當前日期之後,則該證書未生效。
②如果待驗證證書中not After在當前日期之前,則該證書已過期。
③否則,該證書處於有效期內。
3.驗證證書狀態
(1)基於CRL驗證證書狀態
①根據待驗證證書中擴展項CRLDistributionPoints信息取得CRL地址,並根據該地址下載CRL文件。
②檢查CRL文件是否在有效期內,如果不在則需要重新下載。
③驗證CRL中數字簽名是否正確,若不正確則重新下載。
④如果CRL中包括待驗證證書的序列號,則說明該證書狀態為無效;否則說明該證書狀態為有效。
(2)基於OCSP驗證證書狀態
①把待驗證證書的序列號組織成OCSP請求包。
②把OCSP請求包發送給OCSP服務器。
③從OCSP服務器取得OCSP響應包。
④解析OCSP響應包取得該證書的當前狀態。
4.驗證證書其他屬性
①驗證證書密鑰用途:KeyUsage、ExtKeyUsage、NetscapeCertType。
②驗證證書策略:CertificatePolicie。
③其他專用屬性。
