【计算机网络】HTTP 与 HTTPS ( HTTP 在网络各个层级的传输过程 | HTTPS 工作流程 | HTTPS 弊端 )
文章目錄
- 一、HTTP 在網(wǎng)絡(luò)各個層級的傳輸過程
- 二、HTTPS 工作流程
- 1、中間人篡改服務(wù)器下發(fā)的數(shù)字證書
- 2、中間人冒充服務(wù)器端
- 三、HTTPS 弊端
一、HTTP 在網(wǎng)絡(luò)各個層級的傳輸過程
應(yīng)用層 : 在客戶端瀏覽器 , 即應(yīng)用層 , 生成 HTTP 請求報文 , 如下 :
GET / HTTP/1.1 Host: rucfd.ruc.edu.cn Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 If-None-Match: "b7f-5b575595fe630-gzip" If-Modified-Since: Wed, 02 Dec 2020 06:28:18 GMT如果只有 HTTP 請求報文 , 是無法將該報文準(zhǔn)確送達(dá) Web 服務(wù)器的 , 無法完整網(wǎng)絡(luò)傳輸 ;
傳輸層 : 在傳輸層 , 添加 TCP 首部信息 ; ( TCP 首部信息 ( HTTP 報文 ) )
網(wǎng)絡(luò)層 : 在網(wǎng)絡(luò)層 , 添加 IP 首部信息 ; ( IP 首部信息 ( TCP 首部信息 ( HTTP 報文 ) ) )
數(shù)據(jù)鏈路層 : 在數(shù)據(jù)鏈路層 , 添加以太網(wǎng)首部信息 ; ( 以太網(wǎng)首部信息 ( IP 首部信息 ( TCP 首部信息 ( HTTP 報文 ) ) ) )
物理層 : 只進(jìn)行物理傳輸 , 不改變數(shù)據(jù) ;
二、HTTPS 工作流程
HTTPS 工作流程 :
① 客戶端發(fā)送請求 : 瀏覽器向服務(wù)器發(fā)送請求 , 連接到服務(wù)器的 443443443 端口 , 發(fā)送 " 隨機(jī)值 111 " 和 客戶端支持的加密算法 ;
② 服務(wù)器端響應(yīng)請求 : 服務(wù)器端 收到客戶端的信息后 , 回送響應(yīng)信息 , 包括 " 隨機(jī)值 222 " 和 匹配好的客戶端的加密算法 ; 客戶端支持的加密算法 范圍 大于等于 服務(wù)器端匹配的加密算法 ;
③ 服務(wù)器端發(fā)送證書 : 服務(wù)器端 給 客戶端 發(fā)送 數(shù)字證書 , 數(shù)字證書是由專門的組織機(jī)構(gòu)頒發(fā)的 ;
數(shù)字證書 也可以自己生成 , 自己生成的證書需要客戶端驗證通過才能繼續(xù)訪問 ; 會彈出警告界面 ;
受信任的組織頒發(fā)的證書不會彈出警告界面 ;
數(shù)字證書由公鑰和私鑰構(gòu)成 ;
傳輸?shù)淖C書是公鑰 , 公鑰中包含了 : 證書頒發(fā)機(jī)構(gòu) , 過期時間 , 服務(wù)器端公鑰 , 證書機(jī)構(gòu)簽名 , 服務(wù)器端域名信息 ;
④ 客戶端解析證書 : 客戶端 TSL 進(jìn)行 數(shù)字證書解析 ;
驗證 公鑰有效性 , 頒發(fā)機(jī)構(gòu) , 過期時間 等 , 如果發(fā)現(xiàn)異常彈出警告 , 提示證書出現(xiàn)問題 ;
如果驗證通過 , 則生成 " 預(yù)主密鑰 " ;
⑤ 客戶端生成會話秘鑰 : 客戶端證書驗證通過后 , 將 " 隨機(jī)值 111 " , " 隨機(jī)值 222 " , " 預(yù)主密鑰 " 組裝為 " 會話秘鑰 " , 使用數(shù)字證書公鑰 , 加密會話秘鑰 ;
⑥ 客戶端發(fā)送會話秘鑰 : 客戶端向服務(wù)器端發(fā)送 加密后的 會話秘鑰 ;
⑦ 服務(wù)器端解密會話秘鑰 : 服務(wù)器端使用 數(shù)字證書 的私鑰 , 解密使用 數(shù)字證書 公鑰 加密后的 會話秘鑰 , 得到 " 隨機(jī)值 111 " , " 隨機(jī)值 222 " , " 預(yù)主密鑰 " , 將 333 者組裝成 會話秘鑰 , 與客戶端進(jìn)行溝通 ;
⑧ 客戶端發(fā)送測試加密數(shù)據(jù) : 客戶端通過 " 會話秘鑰 " 向服務(wù)器端發(fā)送加密后的消息 , 驗證服務(wù)器端是否可以接收客戶端加密后的信息 ;
⑨ 服務(wù)器端發(fā)送測試加密數(shù)據(jù) : 服務(wù)器端通過 " 會話秘鑰 " 加密一條消息發(fā)送給客戶端 , 如果客戶端可以解密該數(shù)據(jù) , 說明 SSL 加密連接建立完成 ;
1、中間人篡改服務(wù)器下發(fā)的數(shù)字證書
服務(wù)器端向客戶端發(fā)送公鑰時 , 可能被中間人攔截 , 偽裝一個公鑰 , 發(fā)送給客戶端 ;
在第 ④ 步 , 客戶端要驗證服務(wù)器端發(fā)送的 數(shù)字證書 信息 ;
通過 權(quán)威機(jī)構(gòu) 認(rèn)證中心 確保該數(shù)字證書 的真實性 ;
客戶端本地配置有 權(quán)威機(jī)構(gòu) CA 的公鑰 , 對 數(shù)字證書 進(jìn)行解密 , 得到 服務(wù)器端的公鑰 和 數(shù)字簽名 , 數(shù)字簽名經(jīng)過 CA 公鑰解密 , 得到數(shù)字證書信息摘要 ;
計算當(dāng)前數(shù)字證書的 信息摘要 , 與收到的 信息摘要 進(jìn)行對比 , 如果一致 , 說明該 數(shù)字證書 沒有被篡改 ;
數(shù)字證書 是 CA 權(quán)威機(jī)構(gòu)認(rèn)證中心 使用 私鑰生成的 , 中間人只有 CA 公鑰 , 無法進(jìn)行修改 ;
通過鑒定 數(shù)字證書 就可以判定對方是否是中間者 ;
2、中間人冒充服務(wù)器端
到 認(rèn)證中心 CA 申請數(shù)字證書時 , 需要綁定域名信息 , 提供域名管理員郵箱等 , 用戶訪問 域名1 , 中間人發(fā)送一個 域名2 的數(shù)字證書 , 肯定通不過驗證 ;
三、HTTPS 弊端
HTTPS 的弊端 :
① 只能避免部分攻擊 : 無法避免 拒絕服務(wù)攻擊 , 服務(wù)器劫持 等黑客攻擊 ;
② 不是絕對安全 : SSL 數(shù)字證書不是絕對安全的 , 美國控制 CA 根證書 , 可以實施中間人攻擊 ;
③ 費用高 : SSL 證書需要購買申請 , 功能越強(qiáng) , 費用越貴 ;
④ 資源消耗高 : 與 HTTP 對比 , 使用 HTTPS 緩存低效 , 流量成本高 , 延遲增加 50% , 耗電量增加 20% , 服務(wù)器資源占用高 ;
推薦不需要加密訪問的頁面使用 HTTP , 需要時再使用 HTTPS 協(xié)議 ;
總結(jié)
以上是生活随笔為你收集整理的【计算机网络】HTTP 与 HTTPS ( HTTP 在网络各个层级的传输过程 | HTTPS 工作流程 | HTTPS 弊端 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算机网络】HTTP 与 HTTPS
- 下一篇: 【OkHttp】OkHttp Get 和