https如何工作的

17級南郵彭于晏發表於2020-09-26

為什麼使用https

不是存在http了嗎,為什麼還要https呢,兩個字“安全”,HTTPS是一種通過計算機網路進行安全通訊的傳輸協議,經由HTTP進行通訊,利用SSL/TLS建立全通道,加密資料包。HTTPS使用的主要目的是提供對網站伺服器的身份認證,同時保護交換資料的隱私與完整性。

基礎知識

如果你還不知道http是什麼,麻煩出門百度吧。
加密技術

  • 對稱加密(AES):採用單鑰密碼系統的加密方法,同一個金鑰可以同時用作資訊的加密和解密
  • 非對稱加密(RSA): 公鑰與私鑰是一對,如果用公鑰對資料進行加密,只有用對應的私鑰才能解密
    非對稱加密的兩種使用方式
    1.加密 公鑰加密,私鑰解密,公鑰暴露給外界,私鑰只有自己知道,所以安全
    2.驗籤 私鑰加密,公鑰解密,用來驗證傳送方,以及驗證傳送方資料有沒有被篡改。舉個支付驗籤的例子,業務方傳送支付的入參,以及自己用私鑰把入參加密後的值,支付端用公鑰把業務方加密的資料進行解密,得到的資料和支付入參進行比較,如果一致,那就可以驗證這條資料就是這個業務方發的,且沒有被篡改。如果中間有人改了支付的入參,但他沒有私鑰,無法再將入參進行加密,也就篡改後用公鑰解密後的結果會和支付入參不一致。
  • SSL : SSL是一個安全協議,它提供使用 TCP/IP 的通訊應用程式間的隱私與完整性,存在應用層和傳輸層之間,https就是其的一個應用。具體原理我們會講

圖解原理

在這裡插入圖片描述
這是個大致的流程,實際上更復雜,下面我們來梳理一下這個流程。
1.首先瀏客戶端使用https進行訪問
2.伺服器會把他的公鑰給到客戶端,以及簽字認證資訊,這個CA機構會用自己的私鑰對伺服器公鑰加密,至於CA是什麼待會我們會說
3.客戶端內建了CA的公鑰,然後會驗證服務端下發的簽字證書,解密後得到的伺服器公鑰和傳過來的伺服器公鑰做比對,這裡用到的是驗籤,保證伺服器下發的公鑰沒有被修改,隨後建立一個隨機祕鑰並且用伺服器的公鑰加密,這裡用到非對稱加密
4.伺服器用私鑰解密後得到客戶端生成的祕鑰,這樣就可以通過對稱加密進行通訊了,只有客戶端和伺服器知道這個祕鑰

總結:使用到了 對稱加密 + 非對稱加密 + CA (+ 隨機數 + SSL版本) ,括號裡是實際使用到,但我沒說到的

CA認證,即電子認證服務,是指為電子簽名相關各方提供真實性、可靠性驗證的活動。證書頒發機構(CA, Certificate Authority)即頒發數字證書的機構。是負責發放和管理數字證書的權威機構,並作為電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。
下圖是CA簽字認證過程:
在這裡插入圖片描述

疑問

會有人有這樣的疑問,訪問https的網站,但是F12看到的介面傳輸還是明文,不應該是密文嗎?
答:你看到的http傳輸在應用層,SSL加解密是在應用層和傳輸層之間,之間會轉成密文,返回到http時又已經解密了,所以你看到的入參和出參都是明文

相關文章