關於https 證明公開金鑰正確性的證書

zhangfaliang發表於2018-12-24

結合上篇文章《https的ssl加密方式》會更好理解,這片文章中有介紹了https的加密方式是 混合加密,公開金鑰加密和共享金鑰加密,先選公開金鑰加密來交換共享金鑰加密的金鑰,然後在使用共享金鑰加密傳送密文,為什麼會選擇兩者金鑰加密呢?不直接使用共享加密機制呢?因為共享金鑰加密要比公開金鑰加密快,具體是怎麼快的請檢視《SSL 速度慢嗎》

遺憾的是在使用混合加密時,使用公開金鑰加密方式還是存在一些問題。那就是無法證明公開金鑰本身是貨真價實的公開金鑰。

比如,正準備和某臺伺服器建立公開金鑰加密方式下的通訊時,如何證明收到的公開金鑰就是原本預想的那臺伺服器發行的公開金鑰。或許金鑰在傳輸途中,真正的公開金鑰已經被攻擊者替換掉了。

上面的問題可以使用由數字證書認證機構(CA,certificate Authority)和其相關頒發的公開金鑰證書。

數字證書認證機構處於是客戶端和伺服器雙方可信賴的第三方機構立場上,威瑞信(veriSign)就是其中一家非常有名的數字證書認證機構。

簡介一下數字證書認證機構的業務流程。首先伺服器的運營人員向數字證書認證機構提出公鑰的申請。數字證書認證機構在判明提出申請者的身份後,會對已申請的公開金鑰做數字簽名,然後分配這個已簽名的公開金鑰,並將公開金鑰放入公鑰證書後繫結在一起(注意已簽名的公共金鑰和公開密碼是兩個不同的金鑰,公開金鑰是伺服器提供的,已簽名的公開金鑰是簽名機構自己生成的)

伺服器會將這份數字認證機構頒發的公鑰證書傳送給客戶端,已進行公開加密方式通訊。公鑰證書也可以叫做數字證書或直接稱為證書。

接到證書的客戶端可使用數字證書認證機構的公開金鑰,對那張證書上的數字簽名進行驗證,一旦驗證通過,客戶端便可以明確兩件事情: 1、 認證伺服器的公開金鑰是真實有效的數字證書認證機構。2、伺服器的公開金鑰是值得信賴的。

此處認證機關的公開金鑰必須安全地轉交給客戶端,使用通訊發生時,如何安全轉交是一件非常困難的事,因此,多數瀏覽器開發商釋出版本時,會事先在內部植入常用認證機構的公開金鑰

關於https 證明公開金鑰正確性的證書

可證明組織真實性的EV SSL證書

證書的一個作用是用來證明為通訊一方的伺服器是否規範,另外一個作用是可確定對方伺服器背後運營的企業是否真實存在。擁有該特性的證書就是EV SSL證書(Extended Validation ssl Cretificate )

EV SSL 證書是基於國際標準的認證指導方針頒發的證書,其嚴格規定了對運營商組織是否真實的確認方針,因此,用過認證的web網站能獲得更高的認可度。上述機制的原意就是為了防止使用者釣魚攻擊,很多使用者可能不瞭解EV SSL證書相關的知識。


用以確認客戶端的客戶端證書

https中還可以使用客戶端證書,以客戶端證書進行客戶端認證,證明伺服器正在通訊的客戶端時預料之內的客戶端,起作用和伺服器證書如出一轍。

但客戶端證書仍存在幾處問題。其中的一個問題是證書的獲取和釋出。

想獲取證書時,使用者需要自行安裝客戶端證書,但客戶端證書需要付費購買的,且每張證書對應到每位使用者也就意味著需要支付和使用者對等的費用。另外讓知識層次不同的使用者來自行安裝證書,這是一件充滿挑戰的事情。

現在是,安全性極高的認證機構可頒發客戶端證書但僅用於特殊用途的業務,比如有些可支撐客戶端證書支出費用的業務。

例如,銀行的網上銀行就採用了客戶端證書,在登入網銀時不僅要求客戶端確認輸入ID和密碼,還會要求使用者的客戶端證書,以確認使用者時候從特定終端訪問網銀。

客戶端證書存在的另一個問題是,客戶端證書畢竟只能用來證明客戶端實際存在,而不能用來證明使用者本人的真實有效性。



相關文章