當執行驗證、簽署或加密操作時,大部分依存 X.509 憑證的應用程式需要驗證所使用憑證的狀態。憑證的有效性和撤銷檢查是對憑證鏈結中的所有憑證執行,一路到根憑證。如果根憑證或鏈結中的任何憑證無效,則在鏈結中位於無效憑證之下的憑證也都無效。

驗證包括下列項目:

  • 每個憑證的簽章皆有效。

  • 目前的日期和時間落在每個憑證的有效期間內。

  • 沒有毀損或格式錯誤的憑證。

此外,還要檢查憑證鏈結中每個憑證的撤銷狀態。可以使用憑證撤銷清單 (CRL) 或線上憑證狀態通訊協定 (OCSP) 回應來執行撤銷檢查。

什麼是 OCSP?

Microsoft 線上回應是執行 OCSP 通訊協定,這個通訊協定讓憑證的收件者可以使用超文字傳輸通訊協定 (HTTP) 提交憑證狀態要求給 OCSP 回應程式。此 OCSP 回應程式會傳回明確的數位簽署回應,回應中指出憑證狀態。每個要求能擷取的資料量是一定的,不管 CA 中已撤銷的憑證有幾個。

如需相關資訊,請參閱 RFC 2560<X.509 網際網路公開金鑰基礎結構線上憑證狀態通訊協定 - OCSP>(https://go.microsoft.com/fwlink/?LinkID=71068 (可能為英文網頁))。

線上回應

Microsoft 實作的 OCSP (即線上回應) 分成用戶端元件和伺服器元件。用戶端元件是內建在 CryptoAPI 2.0 程式庫中,伺服器元件則是當做 Active Directory 憑證服務 (AD CS) 伺服器角色所提供的新服務。以下程序描述用戶端元件和伺服器元件如何互動:

  1. 當應用程式嘗試驗證指定 OCSP 回應程式位置的憑證,用戶端元件會先搜尋本機記憶體和磁碟快取,找到包含目前撤銷資料的快取 OCSP 回應。

  2. 如果找不到可接受的快取回應,就會使用 HTTP 通訊協定傳送要求給線上回應。

  3. 線上回應 Web Proxy 會將要求解碼並驗證。如果要求有效,會檢查 Web proxy 快取中滿足要求的撤銷資訊。如果快取中沒有目前的資訊,會將要求轉送給線上回應服務。

  4. 線上回應服務收到要求,並檢查本機 CRL (如果有的話) 以及 CA 最新發行 CRL 的快取複本。

  5. 如果憑證不在本機或快取撤銷清單中,撤銷提供者會從撤銷設定中列出的位置取得更新的 CA CRL (如果有的話),以便檢查憑證狀態。另一方面,提供者則將憑證狀態傳回線上回應服務。

  6. 接著,Web proxy 會將回應編碼傳送回去給用戶端,通知用戶端該憑證有效。它也會快取回應的複本一段時間,以防有其他對此憑證的狀態要求。