CRL校驗與OCSP套封

2021-10-03 10:26:36 字數 1941 閱讀 8763

如果你的證書是cer格式的,可以先格式轉換成pem格式,然後繼續使用openssl命令列,開啟這個pem格式的證書。檢視證書可以看到很多的資訊,如伺服器公鑰,使用的簽名演算法等,我們要尋找的是它的crl分發點,即找到crl distribution points:

然後我們用crl子命令來開啟這個crl吊銷列表:

從圖中可以看到,檔案裡儲存了許多證書的序列號serial number,以及它們的吊銷日期,最後就是根據要校驗的證書序列號在裡面尋找是否有匹配,有即表明該證書已經處於被吊銷狀態。

自動校驗在windows的cmd下用certutil子命令加引數-verify,在openssl下則是使用verify子命令。這裡用cmd舉例:

certutil是命令列證書命令,可以用它來完成許多證書服務操作。通過校驗後,可以看到最後的校驗結果:「證書是乙個最終實體證書,通過了分支證書吊銷檢查。」

不過cosp服務也是有一些缺點的,第一是安全性問題,在ocsp響應結構中有certstatus引數儲存的是證書的狀態,分別為good,revoked和unknown三種,攻擊者可以通過篡改每一次ocsp響應,一直傳送證書狀態為「good」的ocsp響應。第二個問題就是隱私問題,使用者每訪問乙個**,都會傳送不同的ocsp請求,如果這些請求被攔截,使用者的瀏覽習慣可能就會被洩漏。

為了解決上述的問題,在部署https服務時及要用到ocsp套封。

使用ocsp套封技術,需要用到status_request擴充套件,即客戶端(瀏覽器)告訴伺服器,我不送ocsp請求,由你來傳送。

第一步,在瀏覽器和伺服器建立連線階段就由瀏覽器傳送了這個status_request擴充套件給伺服器。

之後進行證書吊銷狀態校驗時,由伺服器向ocsp服務提供方傳送ocsp請求,也由伺服器來接收ocsp響應。

伺服器接收到ocsp響應後,向客戶端(瀏覽器)傳送certiticatestatus子訊息,裡面包含有ocsp響應。

如果伺服器接收到的ocsp響應異常,或者無法處理,伺服器可以選擇不向瀏覽器傳送certificatestatus子訊息,若瀏覽器沒有接收到伺服器的響應,可以選擇自行向ocsp服務提供方傳送請求,即回到了標準的ocsp校驗。

由上述步驟可以看出,ocsp套封解決了使用者瀏覽習慣隱私洩露問題,因為使用者訪問乙個**時,ocsp請求是由伺服器傳送給cosp服務提供方,伺服器接收到ocsp響應後再傳送回客戶端(瀏覽器)。

最後到ocsp校驗,也就是通過傳送ocsp請求來校驗證書的吊銷狀態,首先我們要從證書中獲取ocsp位址,因為前面說過,ocsp和crl一樣有乙個url位址,它們都是服務提供方,獲得這個ocsp服務位址,才能知道請求傳送到**去:

從輸出資訊可以看到ocsp request data是請求資訊,下面的ocsp response data是響應資訊,黃字處cert status標識的就是證書的狀態,good表示證書沒有吊銷,校驗成功。

go與證書crl實踐

在證書中,crl 證書登出列表 是乙個很重要的東西,證書一旦發出,那麼就無法收回。證書的有效性的判斷就會有點麻煩。一種方法就是通過證書的有效期,但是這種方法存在問題,萬一使用者的私鑰丟失,使用者向ca提交證書的吊銷請求。ca對該使用者使用的這張證書進行了吊銷。這張證書就應該是失效的。對於這種情況有兩...

IFS日期校驗與數字校驗

在ifs 後台有時從外部匯入資料,直接資料oracle報錯資訊可讀性較差,現改進校驗過程,如下 procedure validate date value in varchar2,format in varchar2 is tmp date date begin tmp date to date v...

WPF Binding轉換與校驗

binding是wpf的核心,而資料的轉換與校驗是與binding配套的,其重要性不言而喻,前面介紹了wpf的binding,現在來看下converter validation。本文目標是以簡單的demo展示converter validation的用法。binding用於資料有效性校驗的是bind...