數(shù)字證書是如何工作的?一文看懂數(shù)字證書的工作流程

在之前的文章中,我們聊了數(shù)字證書,以及它和數(shù)字簽名的關(guān)系,知道了數(shù)字證書的作用和特點,那么今天我們來了解一下數(shù)字證書是如何工作的。

加密算法的意義

首先我們先來了解一下對稱加密算法、非對稱加密算法和消息摘要算法三者分別是什么含義。

  • 對稱算法

一個密鑰可以同時用作信息的加密和解密,也被稱之為單密鑰加密 。當消息發(fā)送方需要加密大量數(shù)據(jù)時使用對稱加密,此時對稱加密也被稱為密鑰加密。

對稱加密

  • 非對稱加密算法

對稱加密使用的是同一個密鑰,而非對稱加密使用的是一對密鑰,有公鑰和私鑰之分。如果用公鑰對數(shù)據(jù)進行加密,只有用對應(yīng)的私鑰才能解密;如果用私鑰對數(shù)據(jù)進行加密,那么只有用對應(yīng)的公鑰才能解密。

非對稱加密

  • 消息摘要算法

消息摘要算法用于產(chǎn)生散列值,主要用于確保信息傳輸?shù)耐暾c無誤,使用公鑰對摘要信息進行加密,彌補摘要算法易破解的不足的同時還能用來驗證消息是否完整無誤,適用于數(shù)字簽名。

消息摘要算法

接下來我們來了解數(shù)字證書的工作流程

  1. 客戶端發(fā)送請求到服務(wù)端獲取包含公鑰A的CA數(shù)字證書,私鑰B則保存在服務(wù)器端,隨后開始驗證證書的合法性
  2. 合法則取出其中的公鑰A對生成隨機碼加密,向服務(wù)器發(fā)送加密后的隨機碼,作為后面?zhèn)鬏敂?shù)據(jù)時使用的對稱加密算法的密鑰。
  3. 服務(wù)端拿到加密后的隨機碼后用之前保存的私鑰B進行解密,從而拿到原始隨機碼,用它來加密向客戶端傳輸?shù)膬?nèi)容數(shù)據(jù),隨即發(fā)送。
  4. 由于客戶端保存了一份原始隨機碼,只要拿它作為對稱加密的密鑰即可解密傳輸過來的內(nèi)容數(shù)據(jù)。
  5. 至此,客戶端和服務(wù)端就建立了一種能安全高效地傳輸所有數(shù)據(jù)的通信連接了。

數(shù)字證書的工作流程

概況總結(jié)

  1. 雙方通過數(shù)字證書確認身份,數(shù)字簽名和原始信息組成了數(shù)字證書,通過公鑰加解密拿到摘要算法處理后的摘要消息,并比對原始消息確認信息是否完整無誤。
  2. 由于性能損耗是非對稱加密的最大弊端,所以基于HTTPS進行大量數(shù)據(jù)傳輸時,為了平衡效率和安全性,需要將非對稱加密和對稱加密算法結(jié)合起來。
  3. 對稱公鑰通過公鑰加密,只有另一方的私鑰才能解密,解開后方能使用它解密傳輸?shù)膬?nèi)容,從此利用對稱公鑰保持連接通信。