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

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

加密算法的意義

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

  • 對(duì)稱算法

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

對(duì)稱加密

  • 非對(duì)稱加密算法

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

非對(duì)稱加密

  • 消息摘要算法

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

消息摘要算法

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

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

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

概況總結(jié)

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