https 工作原理剖析

HTTPS(安全套接字層超文本傳輸協議)

我們知道http協議傳輸的數據都是未加密的,也就是明文傳輸(內容容易被竊聽)、不驗證通信方身份(容易僞裝)、無法確定報文完整性(內容易被篡改)、是不安全的。因此,HTTP協議不適合傳輸一些敏感信息,比如:信用卡號、密碼等支付信息。爲了解決這個問題我們的Https就產生了。

HTTPS在HTTP的基礎上加入了SSL(安全套接層)協議,SSL依靠證書來驗證服務器的身份,併爲瀏覽器和服務器之間的通信加密。(SSL 協議就是用來解決 HTTP 傳輸過程的不安全問題,到了1999年,SSL 因爲應用廣泛,已經成爲互聯網上的事實標準。IETF 就在那年把 SSL 標準化。標準化之後的名稱改爲 TLS(是“Transport Layer Security”的縮寫),中文叫做“傳輸層安全協議”。可以說ssl和tsl是同一事物的不同階段)
在這裏插入圖片描述

工作原理

  1. Client 使用https的URL訪問 Server,要求與 Server 建立 SSL 連接
  2. Server 把事先配置好的公鑰證書返回給客戶端。
  3. Client驗證公鑰證書:比如是否在有效期內,證書的用途是不是匹配Client請求的站點,是不是在CRL吊銷列表裏面,它的上一級證書是否有效,這是一個遞歸的過程,直到驗證到根證書(操作系統內置的Root證書或者Client內置的Root證書)。如果驗證通過則繼續,不通過則顯示警告信息。
  4. Client使用僞隨機數生成器生成加密所使用的對稱密鑰,然後用證書的公鑰加密這個對稱密鑰,發給Server。
  5. Server使用自己的私鑰(private key)解密這個消息,得到對稱密鑰。至此,Client和Server雙方都持有了相同的對稱密鑰。
  6. Server使用對稱密鑰加密“明文內容A”,發送給Client。
  7. Client使用對稱密鑰解密響應的密文,得到“明文內容A”。
  8. Client再次發起HTTPS的請求,使用對稱密鑰加密請求的“明文內容B”,然後Server使用對稱密鑰解密密文,得到“明文內容B”。

Https與Http的區別

  • HTTP 明文傳輸,數據都是未加密的,安全性較差 H T T P S ( S S L + H TTP) 數據傳輸過程是加密的,安全性較好。
  • 使用 HTTPS 協議需要到 CA(Certificate Authority,數字證書認證機構) 申請證書,一般免費證書較少,因而需要一定費用。證書頒發機構如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
  • HTTP 頁面響應速度比 HTTPS 快,主要是因爲 HTTP 使用 TCP 三次握手建立連接,客戶端和服務器需要交換 3 個包,而 HTTPS除了 TCP 的三個包,還要加上 ssl 握手需要的 9 個包,所以一共是 12 個包。
  • http 和 https 使用的是完全不同的連接方式,用的端口也不一樣,前者是 80,後者是 443。
  • HTTPS 其實就是建構在 SSL/TLS 之上的 HTTP 協議,所以,要比較 HTTPS 比 HTTP 要更耗費服務器資源。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章