筆記分享:網絡基礎之HTTPS

HTTPS簡介

圖片來源自網絡

SSL(Security Sockets Layer,安全套接層)

  • 爲網絡通信提供安全及數據完整性的一種安全協議
  • 是操作系統對外的API,SSL3.0後更名爲TLS
  • 採用身份驗證和數據加密保證網絡通信的安全和數據的完整性

 

加密方式

  • 對稱加密:加密和解密都使用同一個祕鑰(效率高)。
  • 非對稱加密:加密使用的祕鑰和解密使用的祕鑰是不相同的。(性能較低,安全性十分強)
  • 哈希算法:將任意長度的信息轉換爲固定長度的值,算法不可逆
  • 數字簽名:證明某個消息或者文件是某人發出/認同的

 

HTTPS數據傳輸流程

  瀏覽器會在發送HTTP信息前跟服務器進行握手操作,下面是整體流程:

  • 瀏覽器將支持的加密算法信息發送給服務器
  • 服務器選擇一套瀏覽器支持的加密算法,以證書的形式回發瀏覽器
    • 證書的信息有:發佈的CA機構、證書的有效期、公鑰、所有者、簽名等
    • CA機構是具有證書頒發的權威機構
  • 瀏覽器驗證證書合法性,並結合證書公鑰加密信息發送給服務器
  • 服務器使用私鑰解密握手信息,驗證哈希,加密新的握手響應消息回發瀏覽器
  • 瀏覽器解密握手響應小溪,並對消息進行驗真,之後進行加密交互數據

 

HTTPHTTPS的區別

  • HTTPS需要到CA申請證書,HTTP不需要
  • HTTPS密文傳輸,HTTP明文傳輸
  • 連接方式不同,HTTPS默認使用443端口
  • HTTPS = HTTP + 加密 +認證 +完整性保護,較HTTP安全

 

HTTPS真的安全嗎?

  • 瀏覽器默認填充http://,請求需要進行跳轉,有被劫持的風險
  • 可以使用HSTS(HTTP Strict Transport Security)優化
    • HSTS的作用是強制客戶端(如瀏覽器)使用HTTPS與服務器創建連接。服務器開啓HSTS的方法是,當客戶端通過HTTPS發出請求時,在服務器返回的超文本傳輸協議(HTTP)響應頭中包含Strict-Transport-Security字段。非加密傳輸時設置的HSTS字段無效。[3]
    • 比如,https://example.com/ 的響應頭含有Strict-Transport-Security: max-age=31536000; includeSubDomains。這意味着兩點:

在接下來的31536000秒(即一年)中,瀏覽器向example.com或其子域名發送HTTP請求時,必須採用HTTPS來發起連接。比如,用戶點擊超鏈接或在地址欄輸入 http://www.example.com/ ,瀏覽器應當自動將 http 轉寫成 https,然後直接向 https://www.example.com/ 發送請求。

在接下來的一年中,如果 example.com 服務器發送的TLS證書無效,用戶不能忽略瀏覽器警告繼續訪問網站。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章