複製鏈接
請複製以下鏈接發送給好友

HTTPS

鎖定
HTTPS (全稱:Hypertext Transfer Protocol Secure [5]  ),是以安全為目標的 HTTP 通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性 [1]  。HTTPS 在HTTP 的基礎下加入SSL,HTTPS 的安全基礎是 SSL,因此加密的詳細內容就需要 SSL。 HTTPS 存在不同於 HTTP 的默認端口及一個加密/身份驗證層(在 HTTP與 TCP 之間)。這個系統提供了身份驗證與加密通訊方法。它被廣泛用於萬維網上安全敏感的通訊,例如交易支付等方面 [2] 
中文名
超文本傳輸安全協議
外文名
HTTPS
目    標
安全的HTTP通道
應    用
安全數據傳輸
外 文 全 文 名
Hypertext Transfer Protocol Secure [5] 

HTTPSHTTP的缺點

HTTP雖然使用極為廣泛, 但是卻存在不小的安全缺陷, 主要是其數據的明文傳送和消息完整性檢測的缺乏, 而這兩點恰好是網絡支付, 網絡交易等新興應用中安全方面最需要關注的 [3] 
關於 HTTP的明文數據傳輸, 攻擊者最常用的攻擊手法就是網絡嗅探, 試圖從傳輸過程當中分析出敏感的數據, 例如管理員對 Web 程序後台的登錄過程等等, 從而獲取網站管理權限, 進而滲透到整個服務器的權限。即使無法獲取到後台登錄信息, 攻擊者也可以從網絡中獲取普通用户的隱秘信息, 包括手機號碼, 身份證號碼, 信用卡號等重要資料, 導致嚴重的安全事故。進行網絡嗅探攻擊非常簡單, 對攻擊者的要求很低。使用網絡發佈的任意一款抓包工具, 一個新手就有可能獲取到大型網站的用户信息 [3] 
另外,HTTP在傳輸客户端請求和服務端響應時, 唯一的數據完整性檢驗就是在報文頭部包含了本次傳輸數據的長度, 而對內容是否被篡改不作確認。 因此攻擊者可以輕易的發動中間人攻擊, 修改客户端和服務端傳輸的數據, 甚至在傳輸數據中插入惡意代碼, 導致客户端被引導至惡意網站被植入木馬 [3] 

HTTPS改進目標

HTTPS 協議是由 HTTP 加上 TLS/SSL 協議構建的可進行加密傳輸、身份認證的網絡協議,主要通過數字證書加密算法、非對稱密鑰等技術完成互聯網數據傳輸加密,實現互聯網傳輸安全保護。設計目標主要有三個。
(1)數據保密性:保證數據內容在傳輸的過程中不會被第三方查看。就像快遞員傳遞包裹一樣,都進行了封裝,別人無法獲知裏面裝了什麼 [4] 
(2)數據完整性:及時發現被第三方篡改的傳輸內容。就像快遞員雖然不知道包裹裏裝了什麼東西,但他有可能中途掉包,數據完整性就是指如果被掉包,我們能輕鬆發現並拒收 [4] 
(3)身份校驗安全性:保證數據到達用户期望的目的地。就像我們郵寄包裹時,雖然是一個封裝好的未掉包的包裹,但必須確定這個包裹不會送錯地方,通過身份校驗來確保送對了地方 [4] 

HTTPSHTTPS協議的改進

HTTPS雙向的身份認證

客户端服務端在傳輸數據之前,會通過基於X.509證書對雙方進行身份認證 。具體過程如下 [3]  :
客户端發起 SSL 握手消息給服務端要求連接。
服務端將證書發送給客户端。
客户端檢查服務端證書,確認是否由自己信任的證書籤發機構簽發。 如果不是,將是否繼續通訊的決定權交給用户選擇 ( 注意,這裏將是一個安全缺陷 )。如果檢查無誤或者用户選擇繼續,則客户端認可服務端的身份。
服務端要求客户端發送證書,並檢查是否通過驗證。失敗則關閉連接,認證成功則從客户端證書中獲得客户端的公鑰,一般為1024位或者 2048位。到此,服務器客户端雙方的身份認證結束,雙方確保身份都是真實可靠的。

HTTPS數據傳輸的機密性

客户端和服務端在開始傳輸數據之前,會協商傳輸過程需要使用的加密算法。 客户端發送協商請求給服務端, 其中包含自己支持的非對稱加密的密鑰交換算法 ( 一般是RSA), 數據簽名摘要算法 ( 一般是SHA或者MD5) , 加密傳輸數據的對稱加密算法 ( 一般是DES),以及加密密鑰的長度。 服務端接收到消息之後,選中安全性最高的算法,並將選中的算法發送給客户端,完成協商。客户端生成隨機的字符串,通過協商好的非對稱加密算法,使用服務端的公鑰對該字符串進行加密,發送給服務端。 服務端接收到之後,使用自己的私鑰解密得到該字符串。在隨後的數據傳輸當中,使用這個字符串作為密鑰進行對稱加密 [3] 

HTTPS防止重放攻擊

SSL使用序列號來保護通訊方免受報文重放攻擊。這個序列號被加密後作為數據包的負載。在整個SSL握手中,都有一個唯一的隨機數來標記SSL握手。 這樣防止了攻擊者嗅探整個登錄過程,獲取到加密的登錄數據之後,不對數據進行解密, 而直接重傳登錄數據包的攻擊手法。
可以看到,鑑於電子商務等安全上的需求,HTTPS對比HTTP,在安全方面已經取得了極大的增強。總結來説,HTTPS的改進點在於創造性的使用了非對稱加密算法,在不安全的網路上,安全的傳輸了用來進行對稱加密的密鑰,綜合利用了非對稱加密的安全性和對稱加密的快速性 [3] 

HTTPSHTTPS與HTTP原理區別

HTTPS 主要由兩部分組成:HTTP + SSL / TLS,也就是在 HTTP 上又加了一層處理加密信息的模塊。服務端和客户端的信息傳輸都會通過 TLS 進行加密,所以傳輸的數據都是加密後的數據。

HTTPSHTTP 原理

① 客户端的瀏覽器首先要通過網絡與服務器建立連接,該連接是通過TCP 來完成的,一般 TCP 連接的端口號是80。 建立連接後,客户機發送一個請求給服務器,請求方式的格式為:統一資源標識符(URL)、協議版本號,後邊是 MIME 信息包括請求修飾符、客户機信息和許可內容 [2] 
② 服務器接到請求後,給予相應的響應信息,其格式為一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,後邊是 MIME 信息包括服務器信息、實體信息和可能的內容 [2] 

HTTPSHTTPS 原理

① 客户端將它所支持的算法列表和一個用作產生密鑰的隨機數發送給服務器 [2] 
② 服務器從算法列表中選擇一種加密算法,並將它和一份包含服務器公用密鑰的證書發送給客户端;該證書還包含了用於認證目的的服務器標識,服務器同時還提供了一個用作產生密鑰的隨機數 [2] 
③ 客户端對服務器的證書進行驗證(有關驗證證書,可以參考數字簽名),並抽取服務器的公用密鑰;然後,再產生一個稱作 pre_master_secret 的隨機密碼串,並使用服務器的公用密鑰對其進行加密(參考非對稱加 / 解密),並將加密後的信息發送給服務器 [2] 
④ 客户端與服務器端根據 pre_master_secret 以及客户端與服務器的隨機數值獨立計算出加密和 MAC密鑰(參考 DH密鑰交換算法) [2] 
⑤ 客户端將所有握手消息的 MAC 值發送給服務器 [2] 
⑥ 服務器將所有握手消息的 MAC 值發送給客户端 [2] 

HTTPS優缺點

HTTPS優點

  1. 使用 HTTPS 協議可認證用户和服務器,確保數據發送到正確的客户機和服務器 [2] 
  2. HTTPS 協議是由 SSL+HTTP構建的可進行加密傳輸、身份認證的網絡協議,要比 HTTP安全,可防止數據在傳輸過程中被竊取、改變,確保數據的完整性 [2] 
  3. HTTPS 是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本 [2] 

HTTPS缺點

  1. 相同網絡環境下,HTTPS 協議會使頁面的加載時間延長近 50%,增加 10%到 20%的耗電。此外,HTTPS 協議還會影響緩存,增加數據開銷和功耗 [2] 
  2. HTTPS 協議的安全是有範圍的,在黑客攻擊、拒絕服務攻擊和服務器劫持等方面幾乎起不到什麼作用 [2] 
  3. 最關鍵的是,SSL 證書的信用鏈體系並不安全。特別是在某些國家可以控制 CA 根證書的情況下,中間人攻擊一樣可行 [2] 
  4. 成本增加。部署 HTTPS 後,因為 HTTPS 協議的工作要增加額外的計算資源消耗,例如 SSL 協議加密算法和 SSL 交互次數將佔用一定的計算資源和服務器成本。在大規模用户訪問應用的場景下,服務器需要頻繁地做加密和解密操作,幾乎每一個字節都需要做加解密,這就產生了服務器成本。隨着雲計算技術的發展,數據中心部署的服務器使用成本在規模增加後逐步下降,相對於用户訪問的安全提升,其投入成本已經下降到可接受程度 [4] 

HTTPS應用方案實踐

現有銀行對外提供的互聯網金融服務中,互聯網門户類網站和圖片網站主要通過 HTTP對外服務。其 中門户網站為用户提供金融諮詢和優惠信息等服務,還提供銀行App客户端、U盾驅動等程序下載服務。為提升用户服務體驗,此類 HTTP 網站還部署了內容分發網絡(Content Delivery Network,CDN),通過 CDN 將用户需要訪問的信息放到離用户所在物理地區最近內容服務站點,可以大幅提升互聯網對外服務的獲取速度,提供最佳訪問體驗。上述 CDN 通常為基於 HTTP的互聯網應用提供服務,而隨着互聯網環境中的劫持、篡改等訪問安全問題的日趨嚴峻,CDN 提供的網絡分發方案也需要支持 HTTP改造為 HTTPS 協議。下面是對 HTTP 到 HTTPS 改造應用和網絡的方案介紹 [4] 
(1) 從 HTTP 轉向 HTTPS 的應用改造要點:HTTP 頁面分析評估信息數據安全等級;WEB 頁面訪問改造;站點證書申請和部署;啓用 HTTPS 協議支持,增加 TCP-443 端口,對外服務 [4] 
(2)從 HTTP 轉向 HTTPS 的 CDN 服務改造要點: CDN 側調整網絡服務;CDN 站點增加對 HTTPS 協議支持;CDN 站點對 HTTPS 加速技術進行優化提升穩定性; CDN 站點支持端到端的全鏈路 HTTPS 支持能力;CDN 站點增加 CA 證書部署的實施方案 [4] 
現有互聯網環境中仍大約有 65% 的網站使用 HTTP,此部分的互聯網站的用户訪問會存在很高的安全 隱患,導致信息泄露、木馬植入等情況出現。針對這一情況,為互聯網提供安全服務而採用 HTTPS 已是大勢所趨。HTTP 到 HTTPS 的轉向可以幫助企業網提升用 户訪問安全水平,特別是對於有敏感信息保存和提供金融交易等服務的企業更有幫助。GoogleFacebook 和國內諸多大型互聯網公司應用已經全面支持 HTTPS,並且蘋果和谷歌兩大公司也在積極推動 HTTPS 擴大應用 範圍,對 HTTPS 協議在全球網站的部署進度起到加速作用 [4] 
參考資料
  • 1.    張寶玉. 淺析HTTPS協議的原理及應用 [J]. 網絡安全技術與應用, 2016(7):36-37,39共3頁.
  • 2.    郭浩然. 網站安全之HTTPS優缺點分析[J]. 計算機與網絡, 2017, 43(5):50-51.
  • 3.    魏興國. HTTP和HTTPS協議安全性分析[J]. 程序員, 2007(07):55-57.
  • 4.    夏剛. 互聯網信息安全加固技術探討——HTTPS技術介紹與應用[J]. 中國金融電腦, 2018, No.347(06):67-69.
  • 5.    RFC 9110 - HTTP Semantics  .IETF[引用日期2022-09-01]