欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

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

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

               1、HTTPS的基本概念?

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

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

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

               5、使用openssl怎么制造自簽證書(shū)?

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

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

               8、實(shí)際項(xiàng)目開(kāi)發(fā)過(guò)程中遇到的問(wèn)題總結(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:// 開(kāi)頭,據(jù)此就可以分辨某個(gè)Web 頁(yè)面是通過(guò)HTTPS 而不是HTTP 訪(fǎng)問(wèn)的。

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

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

               二、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ù)倪^(guò)程中都進(jìn)行了加密處理;通常HTTP使用的在業(yè)務(wù)層做的數(shù)據(jù)字段的加密,是業(yè)務(wù)數(shù)據(jù)的加密,傳輸?shù)倪^(guò)程中是沒(méi)有加密的;而HTTPS的加密是指?jìng)鬏攲拥募用堋TTPS跟HTTP相比,有以下幾個(gè)明顯的優(yōu)點(diǎn):

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

              三 、HTTPS的交互過(guò)程

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

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

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

           

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

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

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

           

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

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

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

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

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

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

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

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

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

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

                           (3)計(jì)算協(xié)商密鑰:
                                   此時(shí)客戶(hù)端已經(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及約定好的算法對(duì)消息進(jìn)行加密。

                         D:   6.6-6.7 服務(wù)器端接收到客戶(hù)端發(fā)來(lái)的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解密客戶(hù)端發(fā)來(lái)的握手消息,并驗(yàn)證HASH是否與客戶(hù)端發(fā)來(lái)的一致。
                            (4)生成握手消息使用協(xié)商密鑰enc_key及約定好的算法加密一段握手消息,發(fā)送給客戶(hù)端。

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

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