https基本原理

2021-09-26 03:45:03 字數 1061 閱讀 3006

一句話解釋:使用tls協議加密http通訊,就是https。

不用tls的http就是明文傳輸,中間人可以嗅探通訊內容,可以篡改,還可以用你的客戶端身份憑證進行冒充。

(利用場景簡單舉例,比如我加入了你的wi-fi,那麼我就可以對所有連線這個wi-fi的裝置通過軟體進行中間人攻擊,或者你們公司有一台電腦被入侵,也可以遠端完成中間人攻擊)

用經過tls加密的https協議,就是加密傳輸,傳輸內容都是加密的,而且因為有指紋、簽名以及服務端證書的校驗,如果篡改內容則簽名和指紋都對不上了,通訊雙方就會發現。

在https中,tls用的什麼加密演算法呢?

我們一般常用的是對稱加密,就是乙個密碼,和服務端校驗如果吻合即通過。但在http協議中,瀏覽器和服務端顯然不能使用這種方式,否則https就失去了意義。

所以數學家設計了一種演算法,可以基於兩個配對的秘鑰對資訊進行加解密,公鑰對資訊加密後只有私鑰能解密,私鑰對資訊加密後只有公鑰能解密。這樣就可以把公鑰交給客戶端,私鑰服務端保留。

一般http三次握手後建立連線,客戶端和服務端就可以開始進行http報文通訊了,https在這三次握手中增加了一次握手,這個握手用於校驗伺服器端傳來的公鑰合法性(證書合法性),並建立加密通道,底層實現是tls協議。

tls握手基本過程:

1.客戶端向服務端索要證書,並驗證證書是否可信,若可信則取出公鑰,否則向使用者提示證書錯誤警告。

2.雙方協商生成「對話秘鑰」。

3.雙方採用「對話秘鑰」進行加密通訊。

tls握手成功後,接下來的通訊tls會把通訊明文加密,並使用公鑰根據明文生成簽名和指紋,服務端收到請求後使用私鑰解密並核對簽名和指紋。

指紋:有時也叫摘要,在技術上也叫雜湊。一般是指的乙個訊息的雜湊值,比如某個字串或檔案的md5或shasum摘要值。

簽名:用非對稱加密演算法裡的私鑰對明文訊息的摘要進行加密,最終這個加密結果就叫簽名。所以簽名等於」對摘要進行加密」。

ssl:tls以前的叫法,可以理解為別名【ssl 3.1 = tls 1.0】【ssl 3.2 = tls 1.1】【ssl 3.3 = tls 1.2】

這篇文章是我自己的理解進行總結的,若需更詳細專業的了解,請參考以下資料:

HTTPS基本原理

https,也稱作http over tls。tls的前身是ssl,tls 1.0通常被標示為ssl 3.1,tls 1.1為ssl 3.2,tls 1.2為ssl 3.3。下圖描述了在tcp ip協議棧中tls 各子協議 和http的關係。二 http和https協議的區別 1 https協議需要...

mysql的基本原理 Mysql 基本原理

mysql 基本原理 mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性 ysql是資料庫登入命令 uroot預設超級使用者登入 p 預設沒密碼 中寫密碼 mysqladmin uroot password 12...

深入淺出HTTPS基本原理

基礎知識準備 在了解https的基本原理之前,需要先了解如下的基本知識。一 什麼是https,tls,ssl https,也稱作http over tls。tls的前身是ssl,tls 1.0通常被標示為ssl 3.1,tls 1.1為ssl 3.2,tls 1.2為ssl 3.3。下圖描述了在tc...