<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          通俗易懂的告訴你,https是如何保證數(shù)據(jù)安全的

          共 2557字,需瀏覽 6分鐘

           ·

          2020-09-08 09:24

          HTTP存在的問(wèn)題

          1. 竊聽(tīng)風(fēng)險(xiǎn):通信使用明文(不加密),內(nèi)容可能會(huì)被竊聽(tīng)(第三方可能獲知通信內(nèi)容)
          2. 冒充風(fēng)險(xiǎn):不驗(yàn)證通信方的身份,因此有可能遭遇偽裝
          3. 篡改風(fēng)險(xiǎn):無(wú)法證明報(bào)文的完整性,所以有可能已遭篡改

          HTTPS

          HTTPS網(wǎng)站

          可以看到 HTTPS的網(wǎng)站,在瀏覽器的地址欄內(nèi)會(huì)出現(xiàn)一個(gè)帶鎖的標(biāo)記。

          HTTPS并非是應(yīng)用層一個(gè)新的協(xié)議,通常 HTTP 直接和 TCP 通信,HTTPS則先和安全層(SSL/TLS)通信,然后安全層再和 TCP 層通信。

          HTTPS

          SSL/TLS協(xié)議就是為了解決上面提到的HTTP存在的問(wèn)題而生的,下面我們來(lái)看一下它是怎么解決的:

          1. 所有的信息都是加密傳輸?shù)模谌綗o(wú)法竊聽(tīng)
          2. 配備身份驗(yàn)證,防止身份被冒充
          3. 具有校驗(yàn)機(jī)制,一旦被篡改,通信雙方會(huì)立刻發(fā)現(xiàn)

          加密

          對(duì)稱加密

          加密和解密同用一個(gè)秘鑰的方式稱為 共享秘鑰加密,也被叫做對(duì)稱秘鑰加密。

          對(duì)稱加密
          • 瀏覽器發(fā)送給服務(wù)端 client_random 和一系列加密方法
          • 服務(wù)端發(fā)送給瀏覽器 server_random和加密方法

          現(xiàn)有瀏覽器和服務(wù)器有了三個(gè)相同的憑證:client_random、server_random和加密方法 用加密方法把 client_random、server_random 兩個(gè)隨機(jī)數(shù)混合起來(lái),生成秘鑰,這個(gè)密鑰就是瀏覽器和服務(wù)端通信的暗號(hào)。

          存在的問(wèn)題:第三方可以在中間獲取到client_random、server_random和加密方法,由于這個(gè)加密方法同時(shí)可以解密,所以中間人可以成功對(duì)暗號(hào)進(jìn)行解密,拿到數(shù)據(jù),很容易就將這種加密方式破解了。

          非對(duì)稱加密

          非對(duì)稱加密
          • 瀏覽器發(fā)送給服務(wù)端 一系列加密方法
          • 服務(wù)端發(fā)送給瀏覽器 加密方法以及公鑰

          之后瀏覽器通過(guò)公鑰將數(shù)據(jù)加密傳輸給服務(wù)端,服務(wù)端收到數(shù)據(jù)使用私鑰進(jìn)行解密。服務(wù)端給瀏覽器發(fā)送數(shù)據(jù),則使用私鑰進(jìn)行加密,瀏覽器收到服務(wù)端發(fā)送過(guò)來(lái)的數(shù)據(jù),使用公鑰進(jìn)行解密。

          存在的問(wèn)題:

          1. 非對(duì)稱加密效率太低, 這會(huì)嚴(yán)重影響加解密的速度,進(jìn)而影響到用戶打開(kāi)頁(yè)面的速度。
          2. 無(wú)法保證服務(wù)器發(fā)送給瀏覽器的數(shù)據(jù)安全, 服務(wù)器的數(shù)據(jù)只能用私鑰進(jìn)行加密(因?yàn)槿绻霉€那么瀏覽器也沒(méi)法解密啦),中間人一旦拿到公鑰,那么就可以對(duì)服務(wù)端傳來(lái)的數(shù)據(jù)進(jìn)行解密了,就這樣又被破解了。

          HTTPS使用對(duì)稱加密和非對(duì)稱加密結(jié)合

          傳輸數(shù)據(jù)階段依然使用對(duì)稱加密,但是對(duì)稱加密的秘鑰我們采用非對(duì)稱加密傳輸。

          HTTPS加密
          • 瀏覽器向服務(wù)器發(fā)送client_random和加密方法列表。
          • 服務(wù)器接收到,返回server_random、加密方法以及公鑰。
          • 瀏覽器接收,接著生成另一個(gè)隨機(jī)數(shù)pre_master, 并且用公鑰加密,傳給服務(wù)器。(重點(diǎn)操作!)
          • 服務(wù)器用私鑰解密這個(gè)被加密后的pre_master。

          到此為止,服務(wù)器和瀏覽器就有了相同的 ?client_random、server_randompre_master, 然后服務(wù)器和瀏覽器會(huì)使用這三組隨機(jī)數(shù)生成對(duì)稱秘鑰。有了對(duì)稱秘鑰之后,雙方就可以使用對(duì)稱加密的方式來(lái)傳輸數(shù)據(jù)了。

          CA (數(shù)字證書)

          使用對(duì)稱和非對(duì)稱混合的方式,實(shí)現(xiàn)了數(shù)據(jù)的加密傳輸。但是這種仍然存在一個(gè)問(wèn)題,服務(wù)器可能是被黑客冒充的。這樣,瀏覽器訪問(wèn)的就是黑客的服務(wù)器,黑客可以在自己的服務(wù)器上實(shí)現(xiàn)公鑰和私鑰,而對(duì)瀏覽器來(lái)說(shuō),它并不完全知道現(xiàn)在訪問(wèn)的是這個(gè)是黑客的站點(diǎn)。

          服務(wù)器需要證明自己的身份,需要使用權(quán)威機(jī)構(gòu)頒發(fā)的證書,這個(gè)權(quán)威機(jī)構(gòu)就是 CA(Certificate Authority), 頒發(fā)的證書就稱為數(shù)字證書 (Digital Certificate)。

          對(duì)于瀏覽器來(lái)說(shuō),數(shù)字證書有兩個(gè)作用:

          1. 通過(guò)數(shù)字證書向?yàn)g覽器證明服務(wù)器的身份
          2. 數(shù)字證書里面包含了服務(wù)器公鑰

          下面我們來(lái)看一下含有數(shù)字證書的HTTPS的請(qǐng)求流程

          含有數(shù)字證書的HTTPS的請(qǐng)求流程

          相對(duì)于不含數(shù)字證書的HTTPS請(qǐng)求流程,主要以下兩點(diǎn)改動(dòng)

          1. 服務(wù)器沒(méi)有直接返回公鑰給瀏覽器,而是返回了數(shù)字證書,而公鑰正是包含數(shù)字證書中的;
          2. 在瀏覽器端多了一個(gè)證書驗(yàn)證的操作,驗(yàn)證了證書之后,才繼續(xù)后序流程。

          參考

          • 如何用通俗易懂的話來(lái)解釋非對(duì)稱加密?[1]
          • 十分鐘搞懂HTTP和HTTPS協(xié)議?[2]
          • HTTPS 原理分析——帶著疑問(wèn)層層深入[3]
          • 圖解HTTP[4]
          • 瀏覽器工作原理與實(shí)踐[5]

          參考資料

          [1]

          如何用通俗易懂的話來(lái)解釋非對(duì)稱加密?: https://www.zhihu.com/question/33645891

          [2]

          十分鐘搞懂HTTP和HTTPS協(xié)議?: https://zhuanlan.zhihu.com/p/72616216

          [3]

          HTTPS 原理分析——帶著疑問(wèn)層層深入: https://www.cnblogs.com/leap/p/11953836.html

          [4]

          圖解HTTP: https://book.douban.com/subject/25863515/

          [5]

          瀏覽器工作原理與實(shí)踐: https://time.geekbang.org/column/article/156181


          本公眾號(hào)將抽獎(jiǎng)送出?5?本??《Node.js+Express+Vue.js項(xiàng)目開(kāi)發(fā)實(shí)戰(zhàn)》,感謝機(jī)械工業(yè)出版社的贊助~


          本書首先講解了Node.js中流行的框架Express的安裝和使用,詳細(xì)介紹了Express路由、請(qǐng)求對(duì)象Request和返回對(duì)象Response,然后詳細(xì)講解了許愿墻、博客管理系統(tǒng)和裝修小程序管理系統(tǒng)三個(gè)完整項(xiàng)目的全部開(kāi)發(fā)流程,*后又講解了Node.js的部署方法和工具。全書共6章,分為三大部分:第1章介紹Express的基礎(chǔ)知識(shí);第2~5章講解三個(gè)完整商業(yè)項(xiàng)目的開(kāi)發(fā)實(shí)現(xiàn)過(guò)程,從需求分析到架構(gòu)設(shè)計(jì)再到代碼編寫一整套完整的流程;第6章介紹Node.js的服務(wù)器部署方法和常用工具PM2的使用方法。本書通俗易懂,圖文并茂,提供完整的商業(yè)項(xiàng)目開(kāi)發(fā)流程,對(duì)于擁有Node.js基礎(chǔ)而缺乏實(shí)戰(zhàn)經(jīng)驗(yàn)的開(kāi)發(fā)人員來(lái)說(shuō)非常適合。


          抽獎(jiǎng)鏈接 ?:




          瀏覽 74
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  豆花视频免费 | 奇米影视一区二区三区 | 天天综合91 | 伊人大香蕉99网 | 麻豆成人精品国产免费 |