是時候理解下HTTPS的原理及流程了

1.什麼是HTTP協議?

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

640?wx_fmt=png

2.什麼是HTTPS協議?

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

img

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

對稱加密瀏覽器

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

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

非對稱加密網站

與對稱加密算法不一樣,非對稱加密算法須要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。編碼

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

由於加密和解密使用的是兩個不一樣的密鑰,因此這種算法叫做非對稱加密算法。操作系統

4.HTTPS流程

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

640?wx_fmt=png

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

640?wx_fmt=png

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

640?wx_fmt=png

4.客戶端收到證書之後,要作的第一件事情是驗證證書的真僞。須要說明的是,各大瀏覽器和操做系統已經維護了全部權威證書機構的名稱和公鑰。因此客戶端只須要知道是哪一個機構頒佈的證書,就能夠從本地找到對應的機構公鑰,解密出證書籤名。

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

擴展:

如今有一些銀行網站在進行支付上還會要求用戶在電腦上下載安裝該銀行網站的數字證書,緣由就是銀行網站使用的是私有的證書頒發機構,用戶電腦並無內置該證書頒發機構的數字證書(含該證書機構的公鑰等),因此須要用戶自行下載安裝。

640?wx_fmt=png

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

640?wx_fmt=png

6.服務端用本身的私鑰解開加密,獲得對稱加密密鑰Key2。因而客戶端與服務端開始用Key2進行對稱加密的通訊。

640?wx_fmt=png

你還有什麼不理解的呢?歡迎下方評論。

本文參考資料及圖片來源:

http://www.javashuo.com/article/p-mqymjxjy-ho.html

http://www.javashuo.com/article/p-zestqzvu-nr.html

https://blog.csdn.net/luweicheng24/article/details/80579731

https://www.jianshu.com/p/14cd2c9d2cd2

https://blog.csdn.net/love_hot_girl/article/details/81164279

相關文章
相關標籤/搜索