https的基本流程----個人簡單理解

1.客戶端發(fā)起https請求

2.服務端響應一個證書(包含服務器信息,公鑰,數(shù)字簽名---證書頒發(fā)機構,證書的指紋(證書頒發(fā)機構自己用私鑰加密的)和指紋算法等)

3.客戶端驗證證書是否安全.判斷內容

(1)判斷頒發(fā)機構是否為操作系統(tǒng)所信任的(一般在本地) --------操作系統(tǒng)會默認一些頒發(fā)機構是安全的
(2)利用操作系統(tǒng)所信任的頒發(fā)機構的證書 (這里的證書是頒發(fā)機構自己用的) 中的公鑰,去解密上述證書的加密的指紋得到指紋hash摘要
(3)利用上述指紋算法算出指紋hash摘要,從而對比兩個hash摘要是否相同,從而保證證書數(shù)據(jù)沒有被篡改過

4.如果第3步都驗證通過說明該證書是可信的

5.檢驗服務器響應證書的公鑰,是否為服務器所發(fā)

6.給服務器發(fā)送隨機字符串,服務器用私鑰加密隨機字符串并做hash摘要響應給客戶端,客戶端用公鑰解密得到hash摘要并和自己生成的hash值對比是否一致,從而判斷對方是否為服務器

7.如果第6步通過,說明服務端確實擁有正確的私鑰,客戶端就可以用這個公鑰加密一個對稱加密的密鑰(簡稱對稱密鑰)然后發(fā)送給服務端

8.服務端用私鑰解密這個加密的對稱密鑰,以后雙方便用這個對稱密鑰加密進行通信。




上述存在的疑問的個人見解

(2)利用操作系統(tǒng)所信任的頒發(fā)機構的證書 (這里的證書是頒發(fā)機構自己用的) 中的公鑰,去解密上述證書的加密的指紋得到指紋hash摘要

這一步的指紋hash摘要的意義是什么?不做hash摘要會不會有影響?

答:因為證書中的(公鑰)對應了一個私鑰,而這個私鑰只有證書機構才擁有。
不做hash的情況,黑客只要篡改證書信息,很難模擬對應的私鑰加密生成的指紋,而該指紋如果不做hash摘要,那么我們驗證也不做hash摘要保持一致就可以了。所以可以不是必須的。
這里做hash的意義,可以減小數(shù)據(jù)長度,加快到時對方用公鑰解密速度,優(yōu)化性能。


第6步同理,hash可以優(yōu)化性能,且此處這樣使用可以讓黑客更難找出加密規(guī)律(因為是主動探查服務端有沒有私鑰)。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容