HTTP與HTTPS
- 一、HTTP與HTTPS的區別
- 二、HTTPS解決了HTTP的三大問題
- 混合加密
- 摘要演算法
- 數字證書
- 三、SSL/TLS建立流程
- 基本流程
- 詳細流程
- 1.ClientHello
- 2.ServerHello
- 3.客戶端回應
- 4.服務器最后的回應
一、HTTP與HTTPS的區別
文字描述就可以看出HTTPS肯定是HTTP的升級版,
- HTTP是明文傳輸,存在不安全問題,HTTPS則很好地解決了這個問題,在TCP和HTTP之間加入了SSL/TLS安全協議,使得報文能夠加密傳輸,
- HTTP連接的建立相對簡單一些,只需要TCP的三次握手就可以進行HTTP的報文傳輸,HTTPS除了TCP的三次握手,還需要進行SSL/TLS的握手程序,才可以進行加密傳輸,
- HTTP的埠是80,HTTPS是443,
- HTTPS需要向CA (證書權威機構)申請數字證書,來確保服務器的身份是可信的,
二、HTTPS解決了HTTP的三大問題
HTTP存在的問題有
- 竊聽風險(明文傳輸)
- 篡改風險(報文完整性無法控制)
- 冒充風險(無法驗證通信方的身份)
為此HTTPS在HTTP與TCP之間加入了SSL/TLS協議
- 資訊加密
- 校驗機制
- 身份證書
混合加密

HTTPS采用的時對稱加密和非對稱加密結合的混合加密方式
- 通信建立前采用非對稱加密的方式交換會話密鑰
- 通信程序中全部使用對稱加密的會話密鑰的方式加密明文資料
采用混合加密的原因
- 對稱加密:只使用一個密鑰,運算速度快,密鑰必須保密,無法做到安全的密鑰交換
- 非對稱加密:使用兩個密鑰,公鑰可以任意分發,而私鑰必須保密,解決了密鑰交換問題但速度慢
摘要演算法
摘要演算法用來實作完整性,使得資料擁有一個唯一標識,用于校驗資料的完整性,
客戶端在發送明文之前會通過摘要演算法算出明文的唯一標識,發送的時候把唯一標識和明文?同加密成密文后,發送給服務器,服務器解密后,用相同的摘要演算法算出發送過來的明?,通過比較客戶端攜帶的唯一表示和當前算出的唯一標識做比較,若相同,則說明資料是完整的,

數字證書
數字證書是為了保證公鑰不被篡改和信任度,第三方權威機構CA(數字證書認證機構),將服務器公鑰放在數字證書(由數字證書認證機構頒發)中,只要證書是可信的,公鑰就是可信的,

三、SSL/TLS建立流程
基本流程
- 客戶端向服務器索要并驗證服務器的公鑰
- 雙方協商生產會話密鑰
- 雙方采用會話密鑰進行加密通道
詳細流程
1.ClientHello
首先,由客戶端向服務器發起加密通道請求,
客戶端主要向服務器發送以下資訊
- 客戶端支持的SSL/TLS協議版本
- 客戶端產生的亂數(用于生產會話密鑰)
- 客戶端支持的密碼套件串列(如RSA加密演算法)
2.ServerHello
服務器收到客戶端請求,向客戶端發出回應,
回應內容有
- 確認SSL/TLS協議版本,如果不支持,則關閉加密通信
- 服務器產生的亂數(用于生產會話密鑰)
- 確認的密碼套件串列(如RSA加密演算法)
- 服務器的數字證書
3.客戶端回應
客戶端收到服務器回應之后,首先通過瀏覽器或者作業系統中的CA公鑰,確認服務器數字證書的真實性,如果證書沒有問題,客戶端會從數字證書中取出服務器的公鑰,然后使用它進行加密報文,向服務器發送如下資訊
- 一個亂數,該亂數會被服務器公鑰加密
- 加密通信演算法改變通知:表示隨后的資訊都將用會話密鑰加密通信
- 客戶端握手結束通知:表示客戶端的握手階段已經結束,這一項同時把之前所有的內容的發生的資料做個摘要,用來服務端校驗
4.服務器最后的回應
服務器收到客戶端的第三個亂數之后,通過協商的加密演算法,計算出本次通信的會話密鑰,然后向服務器發送最后的資訊
- 加密通信演算法改變通知:表示隨后的資訊都將用會話密鑰進行加密通信
- 服務器握手結束通知,表示服務端端的握手階段已經結束,這一項同時把之前所有的內容的發生的資料做個摘要,用來客戶端校驗
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/305157.html
標籤:其他
上一篇:你知道HTTP的特性有哪些嗎?
