验证数字证书的有效性
#此文來自于知乎的匿名用戶
要想驗證證書是否有效,要檢查三點:
1. 驗證證書是否在有效期內。
證書中會包含證書的有效期的起始時間和結束時間,取一個時間點去比較就好了。
關鍵問題是如何保證取到的時間點是可信的,這就是另外一個話題了。
2. 驗證證書是否被吊銷了。
被吊銷的證書是無效的。
驗證吊銷有CRL和OCSP兩種方法。
CRL即證書吊銷列表。證書被吊銷后會被記錄在CRL中,CA會定期發布CRL。應用程序可以依靠CRL來檢查證書是否被吊銷了。
CRL有兩個缺點,一是有可能會很大,下載很麻煩。針對這種情況有增量CRL這種方案。 二是有滯后性,就算證書被吊銷了,應用也只能等到發布最新的CRL后才能知道。增量CRL也能解決一部分問題,但沒有徹底解決。
OCSP是在線證書狀態檢查協議。應用按照標準發送一個請求,對某張證書進行查詢,之后服務器返回證書狀態。OCSP可以認為是即時的(實際實現中可能會有一定延遲),所以沒有CRL的缺點。不過對于一般的應用來說,實現OCSP還是有些難度的。
3. 驗證證書是否是上級CA簽發的。
每一張證書都是由上級CA證書簽發的,上級CA證書可能還有上級,最后會找到根證書。根證書即自簽證書,自己簽自己。 當你驗證一張證書是否是由上級CA證書簽發的時候,你必須有這張上級CA證書。通常這張證書會內置在瀏覽器或者是操作系統中,有些場景下應用系統也會保留。
--------- 以上三點,只要有一個沒通過,這張證書就是無效的,不該信任。 在實際場景中會衍生出一些問題,
比如: 1. 嚴格來說,證書狀態驗證“應該”是個“遞歸”過程:驗證完一張證書之后還得驗證上級CA證書,一直驗到根。這個開銷太巨大了,所以應用系統大多會做一些取舍。當然亂取舍的時候就有可能出問題。 2. 根證書的可信程度。根證書是整個信任體系的“根”,只有根證書可信,下級證書才可信。
總結
以上是生活随笔為你收集整理的验证数字证书的有效性的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: EBS查找帐套本位币及币种间汇率转换的方
- 下一篇: gtf文件学习+读取
