當執行驗證、簽署或加密操作時,大部分依存 X.509 憑證的應用程式需要驗證所使用憑證的狀態。憑證的有效性和撤銷檢查是對憑證鏈結中的所有憑證執行,一路到根憑證。如果根憑證或鏈結中的任何憑證無效,則在鏈結中位於無效憑證之下的憑證也都無效。
驗證包括下列項目:
-
每個憑證的簽章皆有效。
-
目前的日期和時間落在每個憑證的有效期間內。
-
沒有毀損或格式錯誤的憑證。
此外,還要檢查憑證鏈結中每個憑證的撤銷狀態。可以使用憑證撤銷清單 (CRL) 或線上憑證狀態通訊協定 (OCSP) 回應來執行撤銷檢查。
什麼是 OCSP?
Microsoft 線上回應是執行 OCSP 通訊協定,這個通訊協定讓憑證的收件者可以使用超文字傳輸通訊協定 (HTTP) 提交憑證狀態要求給 OCSP 回應程式。此 OCSP 回應程式會傳回明確的數位簽署回應,回應中指出憑證狀態。每個要求能擷取的資料量是一定的,不管 CA 中已撤銷的憑證有幾個。
如需相關資訊,請參閱 RFC 2560<X.509 網際網路公開金鑰基礎結構線上憑證狀態通訊協定 - OCSP>(
線上回應
Microsoft 實作的 OCSP (即線上回應) 分成用戶端元件和伺服器元件。用戶端元件是內建在 CryptoAPI 2.0 程式庫中,伺服器元件則是當做 Active Directory 憑證服務 (AD CS) 伺服器角色所提供的新服務。以下程序描述用戶端元件和伺服器元件如何互動:
-
當應用程式嘗試驗證指定 OCSP 回應程式位置的憑證,用戶端元件會先搜尋本機記憶體和磁碟快取,找到包含目前撤銷資料的快取 OCSP 回應。
-
如果找不到可接受的快取回應,就會使用 HTTP 通訊協定傳送要求給線上回應。
-
線上回應 Web Proxy 會將要求解碼並驗證。如果要求有效,會檢查 Web proxy 快取中滿足要求的撤銷資訊。如果快取中沒有目前的資訊,會將要求轉送給線上回應服務。
-
線上回應服務收到要求,並檢查本機 CRL (如果有的話) 以及 CA 最新發行 CRL 的快取複本。
-
如果憑證不在本機或快取撤銷清單中,撤銷提供者會從撤銷設定中列出的位置取得更新的 CA CRL (如果有的話),以便檢查憑證狀態。另一方面,提供者則將憑證狀態傳回線上回應服務。
-
接著,Web proxy 會將回應編碼傳送回去給用戶端,通知用戶端該憑證有效。它也會快取回應的複本一段時間,以防有其他對此憑證的狀態要求。