驗證數字證書的有效性

2022-06-24 20:24:13 字數 671 閱讀 2325

#此文來自於知乎的匿名使用者

要想驗證證書是否有效,要檢查三點:

1. 驗證證書是否在有效期內。

證書中會包含證書的有效期的起始時間和結束時間,取乙個時間點去比較就好了。

關鍵問題是如何保證取到的時間點是可信的,這就是另外乙個話題了。 

2. 驗證證書是否被吊銷了。

被吊銷的證書是無效的。

驗證吊銷有crl和ocsp兩種方法。

crl即證書吊銷列表。證書被吊銷後會被記錄在crl中,ca會定期發布crl。應用程式可以依靠crl來檢查證書是否被吊銷了。

3. 驗證證書是否是上級ca簽發的。

每一張證書都是由上級ca證書簽發的,上級ca證書可能還有上級,最後會找到根證書。根證書即自簽證書,自己籤自己。 當你驗證一張證書是否是由上級ca證書簽發的時候,你必須有這張上級ca證書。通常這張證書會內建在瀏覽器或者是作業系統中,有些場景下應用系統也會保留。

--------- 以上三點,只要有乙個沒通過,這張證書就是無效的,不該信任。 在實際場景中會衍生出一些問題,

比如: 1. 嚴格來說,證書狀態驗證「應該」是個「遞迴」過程:驗證完一張證書之後還得驗證上級ca證書,一直驗到根。這個開銷太巨大了,所以應用系統大多會做一些取捨。當然亂取捨的時候就有可能出問題。 2. 根證書的可信程度。根證書是整個信任體系的「根」,只有根證書可信,下級證書才可信。

數字證書有效性的驗證

分為三步 1.數字證書有效期驗證 就是說證書的使用時間要在起始時間和結束時間之內。通過解析證書很容易得到證書的有效期 2.證書鏈的驗證 證書鏈可以有任意環節的長度,所以在三節的鏈中,信任錨證書ca 環節可以對中間證書簽名 中間證書的所有者可以用自己的私鑰對另乙個證書簽名。certpath api 可...

驗證證書的有效性 cryptoapi

使用certgetissuercertificatefromstore函式來驗證證書的有效性,其函式宣告如下 pccert context winapicertgetissuercertificatefromstore hcertstorehcertstore in 要查詢的證書庫pccert co...

郵箱有效性驗證

由於面對全球性客戶,主要是用郵箱來做為聯絡的主要工具所以,應用 軟體來做集中 程式有時有問題主要原因總結為郵箱不合法造成的 提前對不合法的郵箱進行一定的標記是很不必要的 以前的處理方法對郵箱進行正則驗證,但沒找到比較好的規則.後來想到了利用微軟提供的乙個 mailaddress 物件來對其email...