• <ul id="cgeq2"></ul>
  • 歡迎您光臨深圳塔燈網絡科技有限公司!
    電話圖標 余先生:13699882642

    網站百科

    為您解碼網站建設的點點滴滴

    深入淺出 HTTPS

    發表日期:2018-04 文章編輯:小燈 瀏覽次數:2982

    一、前言

    本文適合對 HTTP 傳輸原理有一定了解,并有意進一步了解 HTTPS 傳輸原理的人。

    關于 HTTP 原理的了解,建議阮一峰老師的文章 HTTP 協議入門

    二、HTTP 和 HTTPS

    HTTPS 不是一個新鮮的協議,它仍然是基于 HTTP 協議,可以把 HTTPS 協議看成是穿著防彈衣的 HTTP 協議,協議層對比如下圖:

    HTTP 和 HTTPS 協議層對比

    基于 HTTP 協議的網絡傳輸是明文的,對響應的內容也不加驗證,這意味著只要傳輸內容被黑客截獲,黑客就能知道傳輸內容,甚至能夠返回一段修改后的內容給用戶。這就是常說的 HTTP 劫持,一些運營商會使用這種手段往用戶的網頁里注入廣告。

    連接不安全 WiFi 后被竊取個人信息,以及被一些運營商注入廣告是 HTTP 劫持的兩種常見場景。所以棍子哥提醒您:不要隨意連接使用陌生 WiFi 哦~

    HTTP 劫持示意圖

    三、了解 HTTPS 傳輸原理前儲備知識

    講解 HTTPS 傳輸原理前,讓我們來先了解幾個故事輕松一下(已了解對稱加密和非對稱加密的朋友可以跳過這個段落)

    1. HTTP 的故事

    小馬讀小學的時候就開始給小燕寫情書,每次都是把折好的情書交給小明,由小明轉交給小燕,最后小燕讀到小馬的情書。

    這其實就是 HTTP 傳輸原理最簡單的描述。小馬代表瀏覽器,小明代表網絡傳輸過程,小燕代表服務器。從這個故事很容易看出,小明可以輕而易舉地偷看小馬的情書。

    2. HTTPS 的故事

    很快,小馬和小燕讀初中了,他們也開始意識到情書可能會被小明偷看,于是小馬想了一個辦法。小馬和小燕私下里協商好一套文字映射表,比如用 A 代表“我”,用 B 代表“愛”,用 C 代表“你”。當小馬想在情書里寫“我愛你”的時候,小馬就寫“ABC”,當小燕收到情書后就拿出文字映射表,把“ABC”翻譯成“我愛你”。這樣,即使小明偷看情書,小明也只知道情書的內容是“ABC”,并不知道真實的內容。

    這就是 HTTPS 的基本原理,但過程會稍微復雜一點,接下來我們再了解幾個概念做知識儲備。

    兩種加密算法

    對稱加密

    加密和解密使用同樣秘鑰的加密算法稱之為對稱加密。像上述小馬和小燕之間使用同樣的文字映射表進行的加密方式就屬于對稱加密。對稱加密算法的優點是執行快,缺點是安全性較低,如果秘鑰被第三方知道的話就泄密了。

    非對稱加密(又稱為公開秘鑰加密)

    加密和解密使用不同秘鑰的加密算法稱之為非對稱加密。非對稱加密有兩個秘鑰——公開秘鑰和私有秘鑰(下文簡稱公鑰和私鑰),公鑰用來加密,私鑰用來解密,以公鑰加密的內容只能使用私鑰解密。這樣的話,私鑰只會讓自己知道,公鑰的話可以讓任何人知道,保證了安全。但非對稱加密的的缺點是執行慢

    非對稱加密的原理異常復雜,非三言兩語能夠解釋清楚,這里大家只需要知道公鑰加密只有私鑰能夠解密就足夠了。如果有求知欲特別強的朋友硬要了解非對稱加密的原理,棍子哥個建議閱讀阮一峰老師的 RSA 算法原理

    四、HTTPS 傳輸原理詳解

    時序圖真的是個好東西,讓我們先以時序圖的方式瞧一瞧 HTTPS 的整體流程,然后再一一做解釋:

    如果你能完全看懂時序圖,那么恭喜你,可以不用浪費時間往下看了,如果你對時序圖心存疑問,那么我們就來一一了解時序圖中的每一個步驟。

    圖3-1 HTTPS 傳輸時序圖

    細心的朋友可能會問:服務器的公鑰、私鑰從何而來?瀏覽器如何校驗公鑰的正確性?如果你有這樣的疑問,說明你對 HTTP 的傳輸過程還是很了解的。

    1. 瀏覽器獲取公鑰

    對應如圖的紅框①區域,瀏覽器在整個通信的最開始會請求服務器的公鑰(其實是證書,下文會說明),這里的公鑰就是我們常說的 SSL 證書的一部分了。關于 SSL 證書,一般是由專門機構(CA 機構)頒發,其實也就是頒發幾個文件,其中有包含私鑰信息的文件和包含公鑰信息的文件,私鑰文件一直秘密地保存在服務器,不會公布出去,公鑰文件會在這次請求中下發給瀏覽器。

    公鑰文件除了包含有公鑰信息外,還有其他信息比如域名、頒發機構、有效期等等。具體大家在 Chrome 上點擊任意帶有綠色鎖圖標的網站的綠色鎖圖標,然后展開細節查看。

    谷歌 SSL 證書示例

    2. 校驗證書

    對應圖 3-1 的綠色框區域②。圖中為了簡單易懂,說服務器返回的是公鑰,這并不準確,服務器其實是返回了包含公鑰的證書。每一個證書都包含域名信息,操作系統也維護了一個可信的證書列表。當瀏覽器獲得服務器返回的證書后,提取證書里的域名、辦法機構等信息,然后根據本地的可信證書列表判斷該證書是否可信,然后才提取證書里的公鑰并接著和服務器通信,否則給出警告。以 Chrome 為例,當證書不可信時,Chrome 會提示如下圖所示的界面,并且在地址欄顯示紅色的不安全警告,當用戶點擊“高級 - 繼續前往 xxx (不安全)”后才可以打開該網頁。

    不被信任的 HTTPS 網頁示例

    一般來說,高質量的 SSL 證書需要購買,而且價格不菲。如果對站點的要求沒有那么高,也可以在一些網站上申請免費證書,比如SSL證書選購 - 騰訊云、SSL For Free。

    3. 交換臨時傳輸公鑰

    對應圖 3-1 的藍色框部分③。當瀏覽器信任證書并提取證書里的公鑰后,會隨機再生成一條臨時公鑰。然后瀏覽器用證書的公鑰加密臨時公鑰并發送給服務器,服務器收到后用證書里私鑰解密內容得到臨時公鑰。這這里開始進入第④步后,瀏覽器和服務器都知道了臨時公鑰的值,之后的通信,瀏覽器和服務器都將使用該臨時公鑰對傳出內容進行對稱加解密。

    臨時公鑰的用途是為了加解密之后真正的傳輸內容,它在每次 HTTPS 的傳輸過程都不同,而證書里的公鑰是始終保持不變的(除非更換了證書)。

    4. 內容傳輸

    對應圖 3-1 的黃色框部分④。以上三步其實都處于握手階段,到這一步 HTTPS 才真正進入內容傳輸階段。這之前,瀏覽器和服務器已經通過非對稱加密的方式交換了一個臨時公鑰,保證沒有第三方知道這個臨時公鑰,之后進行內容傳輸的時候瀏覽器和服務器雙方都將使用該臨時公鑰對稱加密。之所以到傳輸階段選擇使用對稱加密的方式是因為對稱加密的方式執行快。


    這就是 HTTPS 的基本原理啦,如果對您有幫助的話請動動手指轉發給更多有需要的人。如果有說錯的地方,還請評論留言,大家一起改進。


    下期預告:webpack 實戰教程


    本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.juherenli.com/20381.html
    相關開發語言
     八年  行業經驗

    多一份參考,總有益處

    聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

    咨詢相關問題或預約面談,可以通過以下方式與我們聯系

    業務熱線:余經理:13699882642

    Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

    • QQ咨詢
    • 在線咨詢
    • 官方微信
    • 聯系電話
      座機0755-29185426
      手機13699882642
    • 預約上門
    • 返回頂部
    国产午夜福利精品一区二区三区 | 福利姬在线精品观看| 久久精品一本到99热免费| 国产在线精品一区二区夜色| 午夜人屠h精品全集| 亚洲日韩国产精品无码av| 九九99精品久久久久久| 国产三级精品三级在线观看专1 | 久久国产成人亚洲精品影院 | 精品久久久久久久免费人妻| 亚洲精品国产成人| 久久亚洲精品中文字幕三区| 亚洲AV无码乱码精品国产 | 亚洲精品日韩专区silk| 久久精品亚洲一区二区| 在线涩涩免费观看国产精品| 九九九精品视频免费| 国产精品伦理一二三区伦理| 亚洲国产aⅴ成人精品无吗| 精品免费人成视频app| 老司机性色福利精品视频| 国产精品乱码高清在线观看| 自拍中文精品无码| 国产午夜精品久久久久九九电影| mm1313亚洲国产精品美女| 国产亚洲精品美女久久久久久下载| 亚洲精品美女久久7777777| 国产精品亚洲综合五月天| 精品无码一区二区三区爱欲九九| 久久一区二区三区精品| 国产成人精品免费久久久久| 亚洲精品成人片在线播放| 欧亚精品卡一卡二卡三| 91麻豆精品国产自产在线观看一区| 国产精品内射视频免费| 国产精品免费观看视频| 国产精品自在线拍国产电影| 精品久久综合1区2区3区激情| 精品久久久久久国产牛牛app| 国产精品自在拍一区二区不卡| 精品日韩在线视频一区二区三区 |