網路基礎 三 HTTPS

2021-10-04 12:41:51 字數 2180 閱讀 1674

三、https

http的不足

通訊使用明文(不加密),內容可能會被竊聽。

不驗證通訊方的身份,因此有可能遇到偽裝。

無法驗證報文的完整性,所以有可能已遭篡改。

下面針對以上3點給出解決方案。

問題:

已知 http 的不足,資訊在網路傳送過程的任何乙個節點都有可能被竊取,導致了資訊的不安全。

方案:

為了解決這個問題,我們可以對傳送的資訊進行加密處理,從而達到了安全傳輸的目的。(雖然加密後的資訊仍可能被竊取,但使用者無法對資訊進行解密或解密的難度提公升很多)。

加密策略通訊的加密

http 協議中沒有加密機制,但可以通 過和 ssl (secure socket layer,安全套接層) 或tls (transport layer security,安全層傳輸協議) 的組合使用,加密 http 的通訊內容。

內容加密

對http報文內容進行加密。如下圖所示:

問題:

不驗證通訊方的身份,存在各種隱患:

無法確定請求傳送 目 的 web 伺服器是 是 實意圖返回 響應的 臺伺服器。有可能是已偽裝的 web 伺服器

無法確定正在通訊的對方是否具備訪問許可權。

無法判斷請求來自何方,出自誰手。

即使是無意義的請求也會照單全收,所以可能存在dos攻擊。

方案:

檢視請求方的證書,證書需要第三方權威機構頒發 (即請求方的身份合法性由頒發證書機構保證)。ssl提供了證書功能。

問題:

http 協議無法保證接收到的報文就是傳送方請求的原始報文,也有可能在傳送過程中被第三方劫持篡改過。如下圖所示:

方案:

ssl提供了摘要功能,可以驗證資訊的完整性。

https = http + 加密+認證 + 完整性保護 = http + ssl

由於ssl提供了加密、認證、完整性保護功能,因此 https 相當於是http + ssl

共分為8個步驟:

客戶端發起https請求。

服務端配置證書,證書其實就是一對公鑰和私鑰。

傳送證書,其實就是將公鑰傳遞給客戶端(證書包含了頒發機構,過期時間等資訊)。

客戶端通過 tls 對證書進行解析,如果證書沒有問題,就生成乙個隨機值 key,然後用證書(公鑰)對該隨機值進行加密。

將加密後的隨機值 key 傳送回服務端。

服務端使用證書(私鑰)對接收到的加密資訊進行解密,獲取到客戶端生成的隨機值 key。

使用獲取到的隨機值 key 對傳送的資料進行加密,並傳送給客戶端。

客戶端接收到加密資訊之後,使用之前證書生成的隨機值key對加密資訊進行解密。

會導致請求和響應變慢。

主要有兩個原因:

通訊慢:除了tcp連線、傳送 http 請求、響應http 外,還得進行 sll通訊,流程變多了。

使用 ssl 會對傳輸的內容進行加密處理,導致 cpu 和 記憶體消耗增加。

網路基礎 Https加解密詳解

目錄 一 簡述 二 流程 1.加密通訊 2.入侵者 3.證書通訊 三 參考文件 概要 https採用兩種加密方式。首先通過非對稱加密產生對稱金鑰,後續通過對稱金鑰做對稱加密通訊。概要 加密通訊的主要流程 如圖所示,二者通過非對稱加密產生金鑰,再通過金鑰使用對稱加密做通訊。概要 在步驟1中已經完成了初...

網路程式設計 網路基礎(三)

tcp ip協議規定,網路資料必須採用大端位元組序,即低位址高位元組 大端 低位址存到高位,高位址存到低位 小端 低位址存到低位,高位址存到高位 為了使網路具有可移植性,使同樣的c 在大端小端計算機上編譯後都能正確執行,可以呼叫以下函式做網路位元組序和主機位元組序的轉換 h表示host n表示net...

網路程式設計 Https

1 http協議以明文形式傳輸資料,為了資料傳輸的安全,在http 的基礎上加入了 ssl 協議,ssl 依靠證書來驗證伺服器的身份。即,https。2 http是無狀態協議,它通過cookie session技術實現狀態儲存 比如 電商需要對使用者一段時間的http通訊狀態進行儲存,執行一次登陸操...