<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] # HTTPS綜述 HTTPS是在HTTP上建立SSL加密層,對傳輸數據進行加密,是HTTP協議的安全版。主要作用是: 1、對數據進行加密,建立一個信息安全通道來保證傳輸過程中數據的安全 2、對網站服務器進行真實身份認證 # HTTP通信存在的問題 1、HTTP通信使用明文,內容可能被竊聽 2、無法證明報文的完整性,可能遭篡改 3、不驗證通信方的身份,可能遭遇偽裝 # HTTPS如何改進了HTTP存在的問題 ![](https://img.kancloud.cn/44/8d/448d749ef0bba8fd5128ea50f2e8477a_543x248.png) HTTP直接和TCP通信,當使用SSL時,變成HTTP先和SSL通信,再由SSL和TTCP通信。也就是HTTPS就是身披SSL協議這層外殼的HTTP。 ![](https://img.kancloud.cn/64/ad/64adee31f03500b31eb08838fa9325f1_539x300.png) ## 加密 HTTPS協議的主要功能依賴于TLS/SSL協議,TLS/SSL的功能實現主要依賴于三類基本算法:散列函數、對稱加密和非對稱加密,其中利用非對稱加密實現身份認證和密鑰協商,對稱加密算法采用協商后的密鑰對數據加密,基于散列函數驗證信息的完整性。 ![](https://img.kancloud.cn/f5/43/f543a9283b886b0fbf01402acaaf63bd_561x297.png) 1、對稱加密 這種方式加密和解密使用同一個密鑰。 2、非對稱加密 公開密鑰和私有密鑰是配對的一套密鑰,發送密文的一方使用對方的公開密鑰進行加密處理,對方收到加密信息后,使用自己的私有密鑰進行解密。 這種方式不需要發送用來解密的私有密鑰,就不用擔心密鑰被竊聽而盜走。但使用非對稱加密在數據加密解密過程需要消耗一定時間,降低了數據傳輸效率。 3、對稱加密+非對稱加密(HTTPS采用的方式) 發送密文的一方使用對方的公開密鑰進行加密處理“對稱的密鑰”,然后對方用自己的私有密鑰拿到“對稱的密鑰”,在確保安全的前提下拿到“對稱的密鑰”,再使用對稱加密的方式進行通信交換報文等。 ## 校驗數據完整性--數字簽名 數字簽名的兩個功能 1、確定消息是由發送方簽名并發送過來的,不是其他人假冒的 2、驗證消息的完整性,保證消息未被篡改 數字簽名的生成: ![](https://img.kancloud.cn/c8/de/c8de05937e5a525d80c8e67c4d62fa97_704x309.png) 將一段文本先用Hash函數生成消息摘要,然后用發送者的私鑰加密生成數字簽名,與原文一起傳給接受者。 接收者校驗數字簽名: ![](https://img.kancloud.cn/0a/6c/0a6cca447663eee5d627cdfd1513fc00_581x420.png) 接收者使用Hash函數對收到的文本生成摘要信息,再使用發送者的公鑰解密數字簽名得到信息摘要,對比兩個信息摘要是否完全一致。 當然接收者需要使用發送者的公鑰,公鑰不能在不安全網絡中直接發送,采用的是數字證書方案,后面詳細講解。 ## 解放身份偽裝問題--數字證書 數字證書認證機構處于客戶端與服務器雙方都可信賴的第三方機構的立場上。 ![](https://img.kancloud.cn/0a/c2/0ac2d28ee204fab5f18b8153b580df88_417x313.png) 數字證書認證機構的業務流程: * 服務器的運營人員向第三方機構CA提交公鑰、組織信息、個人信息(域名)等信息并申請認證; * CA通過線上、線下等多種手段驗證申請者提供信息的真實性,如組織是否存在、企業是否合法,是否擁有域名的所有權等; * 如信息審核通過,CA會向申請者簽發認證文件-證書。證書包含以下信息:申請者公鑰、申請者的組織信息和個人信息、簽發機構 CA的信息、有效時間、證書序列號等信息的明文,同時包含一個簽名。其中簽名的產生算法:首先,使用散列函數計算公開的明文信息的信息摘要,然后,采用 CA的私鑰對信息摘要進行加密,密文即簽名; * 客戶端 Client 向服務器 Server 發出請求時,Server 返回證書文件; * 客戶端 Client 讀取證書中的相關的明文信息,采用相同的散列函數計算得到信息摘要,然后,利用對應 CA的公鑰解密簽名數據,對比證書的信息摘要,如果一致,則可以確認證書的合法性,即服務器的公開密鑰是值得信賴的。 * 客戶端還會驗證證書相關的域名信息、有效時間等信息; 客戶端會內置信任CA的證書信息(包含公鑰),如果CA不被信任,則找不到對應 CA的證書,證書也會被判定非法。 # HTTPS工作流程 ![](https://img.kancloud.cn/4c/6d/4c6d886a96c1619beaa71002c7b06f4e_1080x636.png) 1.Client發起一個HTTPS(比如 `https://juejin.im/user`)的請求,根據RFC2818的規定,Client知道需要連接Server的443(默認)端口。 2.Server把事先配置好的公鑰證書(public key certificate)返回給客戶端。 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工作流程簡單版: ![](https://img.kancloud.cn/d8/30/d8300f80deaf297b306946637ff28966_913x700.png) 0、CA機構使用其私鑰對Server證書(包含Server公鑰)信息概要進行加密生成數字簽名,將公鑰證書部署到Server 1、Client發起Https請求,Server將加密數據返回給Client 2、Client使用CA機構的公鑰對加密數據進行解密,得到Server的證書和公鑰 3、Client隨機生成一個對稱加密的密鑰,使用Server的公鑰對其進行非對稱加密 4、Server收到加密后的信息后使用私鑰解密,得到對稱加密的密鑰 5、接下來Client和Server直接就可以使用對稱加密的方式進行通信了 # 為何不所有的網站都使用HTTPS 1、首先,很多人還是會覺得HTTPS實施有門檻,這個門檻在于需要權威CA頒發的SSL證書。從證書的選擇、購買到部署,傳統的模式下都會比較耗時耗力。 2、其次,HTTPS普遍認為性能消耗要大于HTTP,因為與純文本通信相比,加密通信會消耗更多的CPU及內存資源。如果每次通信都加密,會消耗相當多的資源,平攤到一臺計算機上時,能夠處理的請求數量必定也會隨之減少。 3、購買證書需要額外的開銷 4、國內安全意識相對薄弱 參考:[深入理解https工作原理]([https://mp.weixin.qq.com/s/G-mw8oJHWgcSOAV8Vp6bPw](https://mp.weixin.qq.com/s/G-mw8oJHWgcSOAV8Vp6bPw))
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看