http和https那些事

總結篇

  • http: 
    ①,HyperText Transfer Protocol(超文本傳輸協議)
    ②,http是一個簡單的請求-響應協議,它通常運行在TCP(Transmission Control Protocol【傳輸控制協議】)之上。它指定了客戶端可能發送給服務器什麼樣的消息以及得到什麼樣的響應。請求和響應消息的頭以ASCII碼形式給出;而消息內容則具有一個類似MIME的格式。
    ③,作者理解:http就是客戶端和服務器兩者溝通的橋樑,只不過橋上走的是遭到限制的特殊數據
  • https:
    ①,Hyper Text Transfer Protocol over SecureSocket Layer(以安全爲目標的超文本傳輸協議)
    ②,是以安全爲目標的 HTTP 通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性 。HTTPS 在HTTP 的基礎下加入SSL (Secure Socket Layer 安全套接層)層,HTTPS 的安全基礎是 SSL,因此加密的詳細內容就需要 SSL。(TLS:Transport Layer Security【傳輸層安全】,是更爲安全的升級版 SSL。由於 SSL 這一術語更爲常用,因此我們仍然將我們的安全證書稱作 SSL。TLS/SSL是一種加密通道的規範)
  • http的缺陷
           HTTP 協議雖然使用極爲廣泛, 但是卻存在不小的安全缺陷, 主要是其數據的明文傳送和消息完整性檢測的缺乏, 而這兩點恰好是網絡支付, 網絡交易等新興應用中安全方面最需要關注的。
           另外,HTTP協議在傳輸客戶端請求和服務端響應時, 唯一的數據完整性檢驗就是在報文頭部包含了本次傳輸數據的長度, 而對內容是否被篡改不作確認。 因此攻擊者可以輕易的發動中間人攻擊, 修改客戶端和服務端傳輸的數據, 甚至在傳輸數據中插入惡意代碼, 導致客戶端被引導至惡意網站被植入木馬。
  • https的改進
           HTTPS 協議是由 HTTP 加上 TLS/SSL 協議構建的可進行加密傳輸、身份認證的網絡協議,主要通過數字證書、加密算法、非對稱密鑰等技術完成互聯網數據傳輸加密,實現互聯網傳輸安全保護。
    設計目標:
    (1)數據保密性:保證數據內容在傳輸的過程中不會被第三方查看。就像快遞員傳遞包裹一樣,都進行了封裝,別人無法獲知裏面裝了什麼。
    (2)數據完整性:及時發現被第三方篡改的傳輸內容。就像快遞員雖然不知道包裹裏裝了什麼東西,但他有可能中途掉包,數據完整性就是指如果被掉包,我們能輕鬆發現並拒收。
    (3)身份校驗安全性:保證數據到達用戶期望的目的地。就像我們郵寄包裹時,雖然是一個封裝好的未掉包的包裹,但必須確定這個包裹不會送錯地方,通過身份校驗來確保送對了地方。
  • 原理
    http原理:
           ① 客戶端的瀏覽器首先要通過網絡與服務器建立連接,該連接是通過TCP 來完成的,一般 TCP 連接的端口號是80。 建立連接後,客戶機發送一個請求給服務器,請求方式的格式爲:統一資源標識符(URL)、協議版本號,後邊是 MIME 信息包括請求修飾符、客戶機信息和許可內容 [2] 。
           ② 服務器接到請求後,給予相應的響應信息,其格式爲一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,後邊是 MIME 信息包括服務器信息、實體信息和可能的內容。
    https原理:
           ① 客戶端將它所支持的算法列表和一個用作產生密鑰的隨機數發送給服務器 ;
           ② 服務器從算法列表中選擇一種加密算法,並將它和一份包含服務器公用密鑰的證書發送給客戶端;該證書還包含了用於認證目的的服務器標識,服務器同時還提供了一個用作產生密鑰的隨機數;
           ③ 客戶端對服務器的證書進行驗證(有關驗證證書,可以參考數字簽名),並抽取服務器的公用密鑰;然後,再產生一個稱作 pre_master_secret 的隨機密碼串,並使用服務器的公用密鑰對其進行加密(參考非對稱加 / 解密),並將加密後的信息發送給服務器 ;
           ④ 客戶端與服務器端根據 pre_master_secret 以及客戶端與服務器的隨機數值獨立計算出加密和 MAC密鑰(參考 DH密鑰交換算法) ;
           ⑤ 客戶端將所有握手消息的 MAC 值發送給服務器 ;
           ⑥ 服務器將所有握手消息的 MAC 值發送給客戶端。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章