HTTPS


image-20211215224042489

1、概念

HTTPS(HyperText Transfer Protocol over Secure Socket Layer)超文本傳 輸安全協議, 近兩年Google、Baidu、Facebook 等這樣的互聯網巨頭,不謀 而合地開始大力推行 HTTPS, 國內外的大型互聯網公司很多也都已經啟用了全 站 HTTPS,這也是未來互聯網發展的趨勢

為鼓勵全球網站的 HTTPS 實現,一些互聯網公司都提出了自己的要求

  • Google 已調整搜索引擎算法,讓采用 HTTPS 的網站在搜索中排名更靠前
  • 從 2017 年開始,Chrome 瀏覽器已把采用 HTTP 協議的網站標記為不安全 網站
  • 蘋果要求 2017 年 App Store 中的所有應用都必須使用 HTTPS 加密連接
  • 當前國內炒的很火熱的微信小程序也要求必須使用 HTTPS 協議;
  • 新一代的 HTTP/2 協議的支持需以 HTTPS 為基礎

1.2 作用

  • 對數據進行加密,並建立一個信息安全通道,來保證傳輸過程中的數據安 全;
  • 對網站服務器進行真實身份認證。

1.3 使用特征

我們經常會在Web的登錄頁面和購物結算界面等使用HTTPS通信。

  • 使用HTTPS通信時,不再用 http:// ,而是改用 https:// 。另外,
  • 當瀏覽器訪問HTTPS通信有效的Web網站時,瀏覽器的地址欄內會出現一個 帶鎖的標記。

2、架構圖

HTTPS並非是應用層一個新的協議,通常 HTTP 直接和 TCP 通信,HTTPS則先 和安全層(SSL/TLS)通信,然后安全層再和 TCP 層通信。

image-20211215224312466

SSL/TLS協議就是為了解決上面提到的HTTP存在的問題而生的,下面我們來看 一下它是怎么解決的:

  • 所有的信息都是加密傳輸的,第三方無法竊聽
  • 配備身份驗證(服務端程序),防止身份被冒充
  • 具有校驗機制,一旦被篡改,通信雙方會立刻發現

3、HTTPS工作原理

HTTPS是身披SSL/TLS外殼的HTTPimage-20211215224402612

TLS全稱傳輸層安全協議Transport Layer Security Protocol,TLS/SSL是一種加 密通道的規范

TLS協議是由TLS記錄協議(TLS record Protocol)和TLS握手協議(TLS handshake Protocol)這兩層協議疊加而成的image-20211215225039844

  • 記錄協議:TLS Record protocol
    • TLS記錄協議位於TLS握手協議的下層,是負責使用對稱密碼對消息進行 加密通信的部分
    • 加密使用的密鑰是通過握手協議在服務器和客戶端之間協商決定的
  • 握手協議:TLS Handshaking Protocols由TLS Change Ciper Spec Protocol(密碼規格變更協議)和TLS Alert Protocol(警告協議)組成
    • 負責在客戶端和服務器之間協商決定密碼算法和共享密鑰。
    • 密碼規格變更協議負責向通信對象傳達變更密碼方式的信號,當協議中 途發生錯誤時,就會通過警告協議傳達給對方。
    • 警告協議是TLS握手協議負責在發送錯誤時將錯誤傳達給對方。

4、對稱加密算法

4.1 定義:

采用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解
密,這種加密方法稱為對稱加密,也稱為單密鑰加密。

4.2 要素:

原文、秘鑰、算法

秘鑰:在密碼學中是一個定長的字符串、需要根據加密算法確定其長度

4.3 工作過程:

加密:明文 + 密鑰 -> 密文

解密:密文 + 密鑰 -> 明文

image-20211215230439784

4.4 特點

  • 優點:算法公開、計算量小、加密速度快、加密效率高。
  • 缺點:相對來說不算特別安全,只有一把鑰匙,密文如果被攔截,且密鑰也被劫持,那么,信息很容易被破譯。

缺陷:

加密和解密同用一個密鑰,加密和解密都會用到密鑰,沒有密鑰就無法對密
碼解密,反過來說,任何人只要持有密鑰就能解密。

改進:比如服務器為每一個客戶端請求的TCP連接生成一個唯一的key

image-20211215230623812

缺陷:

  • 不同的客戶端、服務器數量龐大,所以雙方都需要維護大量的密鑰,維護成本很高
  • 因每個客戶端、服務器的安全級別不同,密鑰極易泄露

5、非對稱加密算法

5.1 簡介:

非對稱加密是計算機通信安全的基石,保證了加密數據不會被破解。

非對稱加密算法需要兩個密鑰:公開密鑰(public key) 和私有密(private key)

公開密鑰和私有密鑰是一對

5.2 特點:

如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密。
如果用私有密鑰對數據進行加密,只有用對應的公開密鑰才能解密。

由於其算法復雜,而使得加密、解密速度沒有對稱加密解密的速度快。有兩
種密鑰,其中一個是公開的,這樣就可以不需要像對稱密碼那樣傳輸對方的密
鑰了,這樣安全性就大了很多

image-20211215231847528

公鑰是公開的(也就是黑客也會有公鑰),所以第 4 步私鑰加密的信息,如 果被黑客截獲,其可以使用公鑰進行解密,獲取其中的內容。

5.3 對稱加密和非對稱加密

非對稱加密既然也有缺陷,那我們就將對稱加密,非對稱加密兩者結合起來,
取其精華、去其糟粕,發揮兩者的各自的優勢。

image-20211215231932765

解決問題:

通過對稱加密和非對稱加密的組合使用,解決內容可能被竊聽的問題

存在缺陷:

解決報文可能遭篡改問題
解決通信方身份可能被偽裝的問題

image-20211215232009233

6、數字簽名

6.1 數字簽名有兩種功能:

  • 能確定消息確實是由發送方簽名並發出來的,因為別人假冒不了發送方的簽名。
  • 數字簽名能確定消息的完整性,證明數據是否未被篡改過。

6.2 數字簽名如何生成

image-20211215232822384

將要發送的數據先用Hash算法(摘要算法、散列算法)生成消息摘要,然后用 發送者的私鑰加密生成數字簽名,與原文一起傳送給接收者

6.3 校驗數字簽名流程

image-20211215232851876

接收者只有用發送者的公鑰才能解密被加密的摘要信息,然后用HASH函數對 收到的原文產生一個摘要信息,與上一步得到的摘要信息對比。如果相同,則 說明收到的信息是完整的,在傳輸過程中沒有被修改,否則說明信息被修改 過,因此數字簽名能夠驗證信息的完整性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM