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