久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      HTTPS的基礎(chǔ)理論知識

      首先推薦一本書,《HTTP權(quán)威指南》我就是看這本書入門的,對http協(xié)議有了更好的理解,學(xué)習(xí)https的理論知識我認(rèn)為需要了解以下幾點(diǎn),需要一步步的深入學(xué)習(xí):

           1、HTTPS的基本概念?

           2、HTTPS和HTTP的差別?HTTP + 數(shù)據(jù)加密技術(shù) =HTTPS ?HTTPS 所謂的安全是指哪里安全?

           3、HTTPS 的詳細(xì)交互過程? 

           4、基礎(chǔ)的密碼學(xué)知識學(xué)習(xí):數(shù)字加密,對稱密鑰,非對稱密鑰,數(shù)字簽名,數(shù)字證書的基本概念。

           5、使用openssl怎么制造自簽證書?

           6、實(shí)現(xiàn)簡單的https的客戶端和服務(wù)器端(Python版本)

           7、利用wireshake抓包進(jìn)一步分析HTTPS協(xié)議

           8、實(shí)際項(xiàng)目開發(fā)過程中遇到的問題總結(jié)

            其中1-3個(gè)點(diǎn),放在本筆記中,4放在同系列學(xué)習(xí)筆記二下;5放在同系列學(xué)習(xí)筆記三下;6放在同系列學(xué)習(xí)筆記四下;7放在同系列學(xué)習(xí)筆記五下

          一、HTTPS的基本概念   

                HTTPS 是最流行的HTTP 安全形式。它是由網(wǎng)景公司首創(chuàng)的,所有主要的瀏覽器和服務(wù)器都支持此協(xié)議。HTTPS 的URL 以https://,而不是http:// 開頭,據(jù)此就可以分辨某個(gè)Web 頁面是通過HTTPS 而不是HTTP 訪問的。

               HTTPS = HTTP + SSL(TLS),HTTPS 就是在安全的傳輸層上發(fā)送的HTTP。如下圖所示:HTTPS 沒有將未加密的HTTP 報(bào)文發(fā)送給TCP,它在將HTTP 報(bào)文發(fā)送給TCP 之前,先將其發(fā)送給了一個(gè)安全層,對其進(jìn)行加密?,F(xiàn)在,HTTP 安全層是通過SSL 及其現(xiàn)代替代協(xié)議TLS 來實(shí)現(xiàn)的。我們遵循常見的用法,用術(shù)語SSL 來表示SSL 或者TLS。

              HTTPS的基礎(chǔ)理論知識

           二、HTTPS與HTTP的區(qū)別

                  HTTP + 業(yè)務(wù)數(shù)據(jù)加密技術(shù) ≠ HTTPS ;因?yàn)?nbsp;HTTPS = HTTP + SSL(TLS),SSL  ≠ 業(yè)務(wù)數(shù)據(jù)加密技術(shù);SSL是安全層,建立SSL隧道需要做隧道認(rèn)證,至少要完成單向認(rèn)證(服務(wù)器認(rèn)證)或者雙向認(rèn)證,之后數(shù)據(jù)在傳輸?shù)倪^程中都進(jìn)行了加密處理;通常HTTP使用的在業(yè)務(wù)層做的數(shù)據(jù)字段的加密,是業(yè)務(wù)數(shù)據(jù)的加密,傳輸?shù)倪^程中是沒有加密的;而HTTPS的加密是指傳輸層的加密。HTTPS跟HTTP相比,有以下幾個(gè)明顯的優(yōu)點(diǎn):

               • 服務(wù)器認(rèn)證(客戶端知道它們是在與真正的而不是偽造的服務(wù)器通話);
               • 客戶端認(rèn)證(服務(wù)器知道它們是在與真正的而不是偽造的客戶端通話),通常現(xiàn)在web服務(wù),不需要做客戶端認(rèn)證,只需要做服務(wù)器認(rèn)證;
               • 完整性(客戶端和服務(wù)器的數(shù)據(jù)不會被修改),因?yàn)檎麄€(gè)傳輸過程是加密的;
               • 加密(客戶端和服務(wù)器的對話是私密的,無需擔(dān)心被竊聽),使用wireshake監(jiān)聽HTTPS端口會捕獲不到數(shù)據(jù)。
               • 效率(一個(gè)運(yùn)行的足夠快的算法,以便低端的客戶端和服務(wù)器使用),如果使用HTTP+特別復(fù)雜的數(shù)據(jù)加密技術(shù)來試圖替代HTTPS,交互的雙方在加解密的過程會消耗大量的性能,性能下降特別明顯。
               • 普適性(基本上所有的客戶端和服務(wù)器都支持這些協(xié)議)。
               • 管理的可擴(kuò)展性(在任何地方的任何人都可以立即進(jìn)行安全通信)。
               • 適應(yīng)性(能夠支持當(dāng)前最知名的安全方法)。
               • 在社會上的可行性(滿足社會的政治文化需要)。

          三 、HTTPS的交互過程

                1、歷程一:利用非對稱加密傳輸數(shù)據(jù), HTTP + 非對稱加密技術(shù)

                    采用HTTP協(xié)議,利用非對稱加密RSA技術(shù)對數(shù)據(jù)進(jìn)行加密(RSA 算法自身,甚至RSA 實(shí)現(xiàn)的源代碼,破解代碼找到相應(yīng)的私有密鑰的難度仍相當(dāng)于對一個(gè)極大的數(shù)進(jìn)行質(zhì)因數(shù)分解的困難程度,這種計(jì)算被認(rèn)為是所有計(jì)算機(jī)科學(xué)中最難的問題之一)

                    HTTPS的基礎(chǔ)理論知識

       

                     只要服務(wù)器端保存好私鑰,這樣看來數(shù)據(jù)的傳輸鐵定是沒問題的,但是這還有一個(gè)很大的風(fēng)險(xiǎn),如果黑客假冒自己是服務(wù)器端,把客戶端的公鑰替換成跟黑客服務(wù)器匹配的一對公鑰,客戶端會在不知情的情況下,與黑客服務(wù)器進(jìn)行交互。

               2、歷程二:簽名證書 + SSL 加密,驗(yàn)證服務(wù)器身份,加密傳輸通道,所有的通信數(shù)據(jù)在應(yīng)用層下加密傳輸,保證傳輸層安全。HTTPS

                  HTTPS的基礎(chǔ)理論知識

       

               交互過程如上圖所示,詳細(xì)的描述了在簡歷TCP請求后,SSL握手的過程,整個(gè)HTTPS的交互過程大致如下:

                 第一步:1-3 服務(wù)器端生成一個(gè)證書請求,服務(wù)器向權(quán)威的CA機(jī)構(gòu)申請證書,一般是把公鑰給CA進(jìn)行加密生成帶CA簽名的證書。

                 第二步:4 如果CA是權(quán)威的機(jī)構(gòu),一般情況下瀏覽器會報(bào)錯(cuò)CA的根證書,如果是自簽,則需要客戶端主動(dòng)加載或者選擇信任服務(wù)器發(fā)來的證書。

                 第三步:5 建立底層socket服務(wù),完成TCP的三次握手。

                 第四步:6 建立傳輸層的SSL握手,具體又可描述為:

                     A :  6.0-6.1 客戶端發(fā)起clent hello 請求:將自己支持的一套加密規(guī)則、以及一個(gè)隨機(jī)數(shù)(Random_C)發(fā)送給服務(wù)器。

                     B :  6.2-6.3 服務(wù)器響應(yīng)server hello :服務(wù)器根據(jù)自己支持的加密規(guī)則,從客戶端發(fā)來的請求中選出一組加密算法與HASH算法,生成隨機(jī)數(shù)(Random_S),并將自己的身份信息以證書(CA)的形式發(fā)回給瀏覽器。

                     C:   6.4-6.5 客戶端接到服務(wù)器的初步響應(yīng)后做四件事情,然后把數(shù)據(jù)發(fā)送給服務(wù)器端:               

                       (1)證書校驗(yàn): 驗(yàn)證證書的合法性(頒發(fā)證書的機(jī)構(gòu)是否合法,證書中包含的網(wǎng)站地址是否與正在訪問的地址一致等)。

                       (2)生成密碼:瀏覽器會生成一串隨機(jī)數(shù)的密碼(Pre_master),并用CA證書里的公鑰加密(enc_pre_master),用于傳給服務(wù)器。

                       (3)計(jì)算協(xié)商密鑰:
                               此時(shí)客戶端已經(jīng)獲取全部的計(jì)算協(xié)商密鑰需要的信息:兩個(gè)明文隨機(jī)數(shù) Random_C 和 Random_S 與自己計(jì)算產(chǎn)生的 Pre-master,計(jì)算得到協(xié)商密鑰enc_key。enc_key=Fuc(random_C, random_S, Pre-Master)

                       
      (4)生成握手信息:使用約定好的HASH計(jì)算握手消息,并使用協(xié)商密鑰enc_key及約定好的算法對消息進(jìn)行加密。

                     D:   6.6-6.7 服務(wù)器端接收到客戶端發(fā)來的SSL握手信息后,做以下3件事:
                       (1)私鑰解密:使用自己的私鑰從接收到的enc_pre_master中解密取出密碼Pre_master。

                       (2)計(jì)算協(xié)商密鑰:此時(shí)服務(wù)器已經(jīng)獲取全部的計(jì)算協(xié)商密鑰需要的信息:兩個(gè)明文隨機(jī)數(shù) Random_C 和 Random_S 與Pre-master,計(jì)算得到協(xié)商密鑰enc_key。enc_key=Fuc(random_C, random_S, Pre-Master)

                        (3)解密握手消息:使用協(xié)商密鑰enc_key解密客戶端發(fā)來的握手消息,并驗(yàn)證HASH是否與客戶端發(fā)來的一致。
                        (4)生成握手消息使用協(xié)商密鑰enc_key及約定好的算法加密一段握手消息,發(fā)送給客戶端。

                   第五步: 7 正常加密通信
                         握手成功之后,所有的通信數(shù)據(jù)在應(yīng)用層下都將由之前協(xié)商密鑰enc_key及約定好的算法進(jìn)行加密解密。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號