https進行加密傳輸

2021-09-24 15:46:05 字數 1384 閱讀 1940

ssl握手協議的過程

握手階段分成以下五步:

第一步,客戶端給出協議版本號、乙個客戶端生成的隨機數(client random),以及客戶端支援的加密方法。

第二步,伺服器確認雙方使用的加密方法,並給出數字證書、以及乙個伺服器生成的隨機數(server random)。

第三步,客戶端確認數字證書有效,然後生成乙個新的隨機數(premaster secret),並使用數字證書中的公鑰,加密這個隨機數,發給伺服器。

第四步,伺服器使用自己的私鑰,獲取客戶端發來的隨機數(即premaster secret)。

第五步,客戶端和伺服器根據約定的加密方法,使用前面的三個隨機數,生成"對話金鑰"(session key),用來加密接下來的整個對話過程。

客戶端是沒有證書的,也就沒有公鑰和私鑰。

ssl握手階段,伺服器把證書傳輸給客戶端,同時也就傳輸了公鑰(公鑰是證書的一部分)。

有乙個問題?如何保證公鑰傳輸正確,如何防止中間人攻擊?

找到乙個擁有公信力、大家都認可的認證中心(ca)

伺服器在給客戶端傳輸公鑰的過程中,會把公鑰以及伺服器的個人資訊通過hash演算法生成資訊摘要

為了防止資訊摘要被人調換,伺服器還會用ca提供的私鑰對資訊摘要進行加密來形成數字簽名

並且,最後還會把原來沒hash演算法之前的個人資訊以及公鑰 和 數字簽名合併在一起,形成數字證書

當客戶端拿到這份數字證書之後,就會用ca提供的公鑰來對數字證書裡面的數字簽名進行解密來得到資訊摘要,然後對數字證書裡伺服器的公鑰以及個人資訊進行hash得到另外乙份資訊摘要。最後把兩份資訊摘要進行對比,如果一樣,則證明這個人是伺服器,否則就不是。

這樣,就可以保證伺服器的公鑰安全著交給客戶端了。從而防止了中間人攻擊。

由客戶端來對這個證書進行有效性認可,再由這個客戶端來生成對稱金鑰。

對稱金鑰用伺服器證書中的公鑰加密後,傳回給伺服器。只有伺服器才能解密這個資訊,也就只有伺服器才知道你的對稱金鑰。

只要這個ssl連線沒有關閉,後續的所有資料,無論是客戶端發出的還是伺服器發出的,均會使用這個對稱金鑰加密。

對稱加密演算法中,依賴的是金鑰的保密性,只要金鑰沒有被洩露,對稱加密的結果被截獲也沒有什麼意義。而金鑰是用公鑰加密的,只能由伺服器解開。

***********************************

所以在ssl連線沒有建立的時候,伺服器給客戶端發的可以被截獲的資料僅有證書,沒有其他的資料。其他的資料都要等ssl連線建立之後加密傳輸。

所以https的證書加密還是安全的,在沒有私鑰的情況下不存在洩露的可能。

https加密傳輸詳解

https採用對稱加密與非對稱加密的混合加密方式 混合加密方式原理 1.服務端將非對稱加密的公鑰傳送給客戶端 2.客戶端拿著服務端發來的公鑰,對對稱加密的key做加密並發給服務端 3.服務端拿著自己的私鑰對發來的密文解密,從來獲取到對稱加密的key 4.二者利用對稱加密的key對需要傳輸的訊息做加解...

HTTPS加密傳輸過程

https全稱hyper text transfer protocol over securesocket layer,是以安全為目標的http通道,在http的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性。https在http的基礎下加入ssl層,https的安全基礎是ssl,因此加密的詳細...

淺顯易懂Https加密傳輸原理

https是一種加密傳輸協議,基於非對稱加密演算法和對稱加密演算法的協作使用。伺服器每次傳送真實資料前,會先生成一把金鑰傳輸給客戶端,伺服器給客戶端傳送的真實資料會實現用這把金鑰進行加密,客戶端收到加密資料後再用金鑰進行解密。客戶端給伺服器傳送資料同理 圖一.https對稱加密 2.單一使用對稱加密...