當前位置:
首頁 > 知識 > 理解下HTTPS的原理及流程了

理解下HTTPS的原理及流程了

1.什麼是HTTP協議?

HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議),位於TCP/IP模型當中的應用層。HTTP協議通過請求/響應的方式,在客戶端和服務端之間進行通信。HTTP協議的信息傳輸完全以明文的方式,不做任何加密,相當於在網路上「裸奔」,所以容易遭受中間人的惡意截獲甚至篡改(中間人攻擊)。

2.什麼是HTTPS協議?

HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

3.對稱加密和非對稱加密

對稱加密

對稱加密採用了對稱密碼編碼技術,它的特點是文件加密和解密都是使用相同的密鑰。

這種方法在密碼學中叫做對稱加密演算法,對稱加密演算法使用起來簡單快捷,密鑰較短,且破譯困難,除了數據加密標準(DES),另一個對稱密鑰加密系統是國際數據加密演算法(IDEA),它比DES的加密性好,而且對計算機功能要求也沒有那麼高。

非對稱加密

與對稱加密演算法不同,非對稱加密演算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。

公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。

因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫作非對稱加密演算法。

4.HTTPS流程

1.服務端首先把自己的公鑰(Key1)發給證書頒發機構,向證書頒發機構申請證書。

2.證書頒發機構自己也有一對公鑰私鑰。機構利用自己的私鑰來加密Key1,並且通過服務端網址等信息生成一個證書籤名,證書籤名同樣經過機構的私鑰加密。證書製作完成後,機構把證書發送給了服務端。

3.當客戶端向服務端請求通信的時候,服務端不再直接返回自己的公鑰(Key1),而是把自己申請的證書返回給客戶端。

4.客戶端收到證書以後,要做的第一件事情是驗證證書的真偽。需要說明的是,各大瀏覽器和操作系統已經維護了所有權威證書機構的名稱和公鑰。所以客戶端只需要知道是哪個機構頒布的證書,就可以從本地找到對應的機構公鑰,解密出證書籤名。

客戶端對證書驗證成功後,就可以放心地再次利用機構公鑰,解密出服務端的公鑰Key1。

客戶端本地如何驗證證書呢?

證書本身就已經告訴客戶端怎麼驗證證書的真偽,也就是證書上寫著如何根據證書上的方法自己生成一個證書編號,如果生成的證書編號與證書上的證書編號相同,那麼證明這個證書是真實的。同時,為避免證書編號本身又被調包,所以使用第三方機構的私鑰進行加密。

證書就是HTTPS中的數字證書,證書編號就是數字簽名,而第三方機構就是指數字證書籤發機構(CA)

5.客戶端生成自己的對稱加密密鑰Key2,並且用服務端公鑰Key1加密Key2,發送給服務端。

6.服務端用自己的私鑰解開加密,得到對稱加密密鑰Key2。於是客戶端與服務端開始用Key2進行對稱加密的通信。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 千鋒JAVA開發學院 的精彩文章:

深入淺析一致性模型之Linearizability
hystrix要解決的分散式系統可用性問題以及其設計原則

TAG:千鋒JAVA開發學院 |