HTTPS協(xié)議分析解析課件_第1頁(yè)
HTTPS協(xié)議分析解析課件_第2頁(yè)
HTTPS協(xié)議分析解析課件_第3頁(yè)
HTTPS協(xié)議分析解析課件_第4頁(yè)
HTTPS協(xié)議分析解析課件_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、HTTPS簡(jiǎn)介2012-02-10HTTPS簡(jiǎn)介2012-02-10第一節(jié) HTTPS簡(jiǎn)介引入: 隨著網(wǎng)絡(luò)通信和電子商務(wù)等服務(wù)和資源進(jìn)入人們的日常生活,人們?cè)谙硎芫W(wǎng)絡(luò)帶來(lái)的各種便利的同時(shí),面臨各種各樣的安全隱患。 我們經(jīng)常接觸到的就有郵箱登錄,網(wǎng)上購(gòu)物,電子銀行等等。這很多是基于 HTTP 協(xié)議的。 但HTTPRFC2616最初是在INTERNET上不用密碼的應(yīng)用。因此隨著人們對(duì)安全性的要求增加。HTTPS協(xié)議,為我們提供了面向通道的安全性。第一節(jié) HTTPS簡(jiǎn)介引入:目錄目錄HTTPS簡(jiǎn)介SSL協(xié)議介紹SSL記錄協(xié)議SSL握手協(xié)議目錄目錄HTTPS簡(jiǎn)介HTTPS(全稱:Hypertext T

2、ransfer Protocol over Secure Socket Layer)是HTTP的安全版HTTPS默認(rèn)使用TCP端口443,也可以指定其他的TCP端口。URI格式 https/:URL一個(gè)URI例子: /HTTPS簡(jiǎn)介HTTPSSSL協(xié)議介紹HTTPS中S,實(shí)際上是SSL(Secure Sockets Layer)協(xié)議。SSL是Netscape公司發(fā)明的一種用于WEB的安全傳輸協(xié)議。 隨著時(shí)間的推移由于Netscape失去了市場(chǎng)份額,它將SSL的維護(hù)工作移交給因特網(wǎng)工程任務(wù)組(IETF)。第一個(gè)后Netscape版本被重新命名為安全傳輸層協(xié)議(TLS), TLS (Transpo

3、rt Layer Security :RFC 2246)是基于SSL上研發(fā)的,但是與SSLv3.0有細(xì)微的差別。因此,SSL協(xié)議有時(shí)也稱為TLS協(xié)議。目前常用的是TLSv1.0的協(xié)議。SSL協(xié)議介紹HTTPS中S,實(shí)際上是SSL(Secure SSL協(xié)議介紹SSL協(xié)議的功能1)保證傳輸數(shù)據(jù)的保密性2)保證傳輸數(shù)據(jù)的完整性3)實(shí)現(xiàn)通信雙方的互相身份認(rèn)證SSL協(xié)議介紹SSL協(xié)議的功能SSL協(xié)議介紹SSL協(xié)議在協(xié)議棧的位置IP協(xié)議TCP協(xié)議HTTP、TELNET、FTP等應(yīng)用層協(xié)議SSL記錄協(xié)議應(yīng)用數(shù)據(jù)告警握手ChangeCipherSpecSSL協(xié)議介紹SSL協(xié)議在協(xié)議棧的位置IP協(xié)議TCP協(xié)議H

4、TSSL協(xié)議介紹SSL 協(xié)議是一個(gè)分層的協(xié)議,共有兩層組成。高層協(xié)議包括 :SSL 握手協(xié)議(SSL HandshakeProtocol) 、改變加密約定協(xié)議(Change Cipher Spec Protocol) 、報(bào)警協(xié)議(AlertProtocol) 處于 SSL 協(xié)議的底層的是: SSL記錄層協(xié)議(SSL Record Protocol)SSL協(xié)議介紹SSL 協(xié)議是一個(gè)分層的協(xié)議,共有兩層組成。SSL記錄協(xié)議SSL的記錄協(xié)議記錄層協(xié)議實(shí)際上是一個(gè)簡(jiǎn)單的封裝或者說(shuō)是“打包”協(xié)議。記錄可能是明文傳送的,也可能是被加密傳送的,紀(jì)錄協(xié)議的功能保證消息的完整性機(jī)密性SSL記錄協(xié)議SSL的記錄協(xié)

5、議SSL記錄協(xié)議SSL記錄的結(jié)構(gòu)示意圖:類型版本長(zhǎng)度明文數(shù)據(jù)/加密數(shù)據(jù)1字節(jié)2字節(jié)2字節(jié)(長(zhǎng)度)字節(jié)類型:有握手協(xié)議、報(bào)警協(xié)議、改變加密約定協(xié)議、應(yīng)用數(shù)據(jù)等四種加密數(shù)據(jù)可分解為數(shù)據(jù)HMAC填充*填充長(zhǎng)度*注:HMAC: Keyed-Hash Message Authentication Code(消息驗(yàn)證碼)SSL記錄協(xié)議SSL記錄的結(jié)構(gòu)示意圖:類型版本長(zhǎng)度明文數(shù)據(jù)/SSL記錄協(xié)議MAC(Message Authentication Code)消息驗(yàn)證碼消息驗(yàn)證碼也稱為消息摘要,是實(shí)現(xiàn)數(shù)據(jù)完整性的主要手段。主要目的是認(rèn)證消息、檢驗(yàn)數(shù)據(jù)是否被篡改。目前常用的消息摘要算法有MD5(Message-

6、Digest Algorithm 5 ) 和SHA(Secure Hash Algorithm )。SSL中的摘要算法是:HMAC 即 Keyed-Hash Message Authentication Code。HMAC 是在使用消息摘要函數(shù)(例如 MD5 等)的同時(shí),增加了一個(gè)“密鑰”作為輸入。 SSL記錄協(xié)議MAC(Message AuthenticatSSL記錄協(xié)議SSL記錄協(xié)議封裝過(guò)程類型版本長(zhǎng)度數(shù)據(jù)HMAC*填充*填充長(zhǎng)度*1、填寫”記錄頭信息”中的”版本”和”類型”*2、如果協(xié)商了壓縮算法則壓縮“數(shù)據(jù)”3、計(jì)算并附加MAC*4、計(jì)算“填充長(zhǎng)度”,填寫“填充字段”并“加密”5、填寫

7、記錄頭信息中的“長(zhǎng)度”SSL記錄協(xié)議SSL記錄協(xié)議封裝過(guò)程類型版本長(zhǎng)度數(shù)據(jù)HMACSSL記錄協(xié)議SSL記錄協(xié)議解封裝過(guò)程類型版本長(zhǎng)度數(shù)據(jù)HMAC*填充*填充長(zhǎng)度*1、讀取”記錄頭信息”中的”版本”2、根據(jù)長(zhǎng)度讀入記錄“數(shù)據(jù)”部分3、去掉“填充長(zhǎng)度”和“填充“字段*4、檢查并去掉MAC5、如果協(xié)商了壓縮算法則解壓“數(shù)據(jù)”SSL記錄協(xié)議SSL記錄協(xié)議解封裝過(guò)程類型版本長(zhǎng)度數(shù)據(jù)HMASSL握手協(xié)議SSL 握手協(xié)議是SSL 協(xié)議中最重要同時(shí)也是最復(fù)雜的協(xié)議。SSL握手協(xié)議主要負(fù)責(zé)如下工作:算法協(xié)商身份驗(yàn)證確定密鑰SSL握手協(xié)議SSL 握手協(xié)議是SSL 協(xié)議中最重要同時(shí)也是SSL握手協(xié)議SSL握手過(guò)程分

8、為四種:Full Handshake: 全流程握手,C/S雙方從無(wú)到有建立SSL連接;Resum session Handshake: C/S雙方曾經(jīng)建立過(guò)連接,但中途斷了,SSL會(huì)話信息還有保留,只需要執(zhí)行部分握手流程就可建立SSL連接;Server Re-negotiation Handshake: 已經(jīng)建立了SSL連接,但server端為了某些原因(比如安全性)要求重新對(duì)密鑰進(jìn)行協(xié)商,也只需要執(zhí)行部分握手流程;Client Re-negotiation Handshake: 已經(jīng)建立SSL連接,但client端為了某些原因要求重新協(xié)商,只需執(zhí)行部分握手流程。SSL握手協(xié)議SSL握手過(guò)程分

9、為四種:全流程握手(Full Handshake) 攜帶客戶的SSL版本號(hào),加密套件列表,壓縮算法列表,客戶端隨機(jī)數(shù),sessionid = 0;傳送給服務(wù)器Server HelloServer Certificate*Client Certificate Requst*Server Hello done*Client CertificateClient Key Exchang*Certificate verifyChange Cipher SpecClient finished MessageClient helloChange Cipher SpecServer finished Mess

10、ageApplication DataApplication Data服務(wù)器選擇版本,確定要用的加密套件、壓縮算法,計(jì)算sessionid,以及隨機(jī)數(shù)發(fā)給客戶端服務(wù)器將自己的證書發(fā)送給客戶端服務(wù)端向客戶端索要證書服務(wù)端通知客戶端握手消息發(fā)送完成客戶端向服務(wù)器端發(fā)送自己的證書客戶端密鑰交換(產(chǎn)生預(yù)主密鑰(preMasterKey)客戶端證書驗(yàn)證,讓服務(wù)器驗(yàn)證發(fā)消息的客戶端和客戶端證書的真實(shí)所有者 改變加密約定消息,通知服務(wù)端,之后的消息開始啟用加密參數(shù)客戶端的SSL協(xié)商成功結(jié)束,發(fā)送握手驗(yàn)證報(bào)文確保消息的完整性服務(wù)器端的SSL協(xié)商成功結(jié)束,發(fā)送握手驗(yàn)證報(bào)文確保消息的完整性改變加密約定消息,通知客

11、戶端,之后的消息開始啟用加密參數(shù)應(yīng)用數(shù)據(jù)傳送下一頁(yè)全流程握手(Full Handshake) 攜帶客戶 攜帶客戶的SSL版本號(hào),加密套件列表,壓縮算法列表,客戶端隨機(jī)數(shù),sessionid = 0;傳送給服務(wù)器Client hello客戶端給服務(wù)器端發(fā)個(gè)hello的問(wèn)候,問(wèn)候里包含有它使用的SSL版本號(hào)、加密套件列表,壓縮算法列表,客戶端隨機(jī)數(shù),sessionid = 0;服務(wù)器收到客戶端的問(wèn)候后,會(huì)從客戶端提供的版本號(hào)中選出雙方都支持的最高版本, 從加密套件列表選擇一種支持也安全性強(qiáng)的加密套件,從壓縮算法列表選擇壓縮算法(一般為空)。返回Client hello 攜帶客戶的SSL版本號(hào),加密

12、套件列表,壓縮算法列表服務(wù)器端將上述選擇的加密套件,壓縮算法(NULL),且計(jì)算一個(gè)session_id,和服務(wù)器端隨機(jī)數(shù)發(fā)送給客戶端服務(wù)器選擇版本,確定要用的加密套件、壓縮算法,計(jì)算sessionid,以及隨機(jī)數(shù)發(fā)給客戶端Server hello客戶端收到serverhello的報(bào)文會(huì)將加密套件,壓縮算法(NULL),session_id,和服務(wù)器端隨機(jī)數(shù)緩存起來(lái)。接著繼續(xù)握手過(guò)程。返回Server hello服務(wù)器端將上述選擇的加密套件,壓縮算法(NULL),且計(jì)算一服務(wù)器將自己的證書發(fā)送給客戶端Server Certificate *服務(wù)器端將自己的證書發(fā)送給客戶端,證明自己的身份。證書

13、中包含有服務(wù)器的身份信息,以及服務(wù)器的公鑰。客戶端收到Certificate報(bào)文會(huì)驗(yàn)證該證書是否過(guò)期,并將服務(wù)器的公鑰緩存起來(lái)。返回Server Certificate *服務(wù)器將自己的證書發(fā)送給客戶端Server CertificClient Certificate Requst*如果是SSL的雙向認(rèn)證的話 ,那么服務(wù)器端會(huì)向客戶端發(fā)送client cert request 消息,索要客戶端的證書,證書中包含有server端支持的證書類型,和所信任的所有證書發(fā)行機(jī)構(gòu)(CA(Certificate Authority)列表。 客戶端收到Client Certificate Requst報(bào)文將消

14、息中的證書類型列表和可信任證書發(fā)行機(jī)構(gòu)列表保存下來(lái),可在后面發(fā)送客戶端證書時(shí)候拿來(lái)篩選證書用。 服務(wù)端向客戶端索要證書返回Client Certificate Requst*如果是SSL的雙向認(rèn)證的話 ,那么服務(wù)器端會(huì)向客戶端發(fā)送clServer Hello done服務(wù)器端通知客戶端這一步的握手消息發(fā)送完成。等待客戶端確認(rèn)。服務(wù)端通知客戶端握手消息發(fā)送完成返回Server Hello done服務(wù)器端通知客戶端這一步的握手消息發(fā)送完成。等待客戶端確認(rèn)。*Client Certificate客戶端從之前收到server端發(fā)的cert request消息中的支持的證書類型列表和信任的根CA(Ce

15、rtificate Authentication)列表中選擇滿足條件的第一個(gè)證書發(fā)送給服務(wù)器??蛻舳讼蚍?wù)器端發(fā)送自己的證書服務(wù)器端會(huì)緩存客戶端的公鑰。返回*Client Certificate客戶端從之前收到server端發(fā)的cert requesClient Key Exchang若為RSA加密,客戶端則產(chǎn)生一個(gè)48位隨機(jī)數(shù)作為pre-master(預(yù)主密鑰)并用服務(wù)器公鑰加密后發(fā)出去。 客戶端向服務(wù)器端發(fā)送一個(gè)48位的預(yù)主密鑰服務(wù)器端緩存預(yù)主密鑰。返回Client Key Exchang若為RSA加密,客戶端則產(chǎn)生一個(gè)48位隨機(jī)數(shù)作為pre*Certificate verify客戶端證讓

16、服務(wù)器驗(yàn)證發(fā)消息的客戶端和客戶端證書的真實(shí)性由于之前的Client Certificate消息中包含有客戶端的公鑰,因此用公鑰解密該消息,驗(yàn)證客戶端的真實(shí)性。Certificate verify這個(gè)消息中要包含一個(gè)簽名,簽名里頭內(nèi)容就是從client hello開始到目前為止所有握手消息(不包括本消息)的摘要,然后用客戶端的私鑰加密。返回*Certificate verify客戶端證讓服務(wù)器驗(yàn)證發(fā)消息的客戶端和客戶端證書的真實(shí)性由于之Change Cipher Spec改變加密約定消息,通知服務(wù)端,之后的消息開始啟用加密參數(shù)在發(fā)送該消息的同時(shí),客戶端會(huì)把之前的客戶端隨機(jī)數(shù),服務(wù)器端隨機(jī)數(shù)、以及

17、預(yù)主鑰產(chǎn)生一個(gè)主密鑰。并將主密鑰進(jìn)行密鑰導(dǎo)出(服務(wù)器端的寫MAC密鑰、客戶端寫MAC密鑰、服務(wù)器端的寫密鑰、客戶端的寫密鑰),該過(guò)程只在本地進(jìn)行,不發(fā)送給對(duì)方。Change Cipher Spec該消息只有一個(gè)值為1的字節(jié)。不屬于握手協(xié)議,和握手協(xié)議同一級(jí)別的改變加密約定協(xié)議。發(fā)送該消息的作用是為了告訴對(duì)方接下來(lái)的消息將采用新協(xié)商的加密套件和密鑰進(jìn)行通信。返回Change Cipher Spec改變加密約定消息,通知服務(wù)端,之后的消息開始啟用加密參數(shù)在發(fā)Client finished Message客戶端的SSL協(xié)商成功結(jié)束,發(fā)送握手驗(yàn)證報(bào)文確保消息的完整性這是客戶端SSL協(xié)商成功結(jié)束的消息。

18、也是第一個(gè)用協(xié)商好的密鑰加密的消息。會(huì)把從client hello一直到現(xiàn)在的數(shù)據(jù)摘要,用客戶端密鑰加密,發(fā)送給服務(wù)器。確保握手過(guò)程的完整性和機(jī)密性。返回Client finished MessageClient finished Message客戶端的SSSSL握手協(xié)議加密套件列表:列表中包含了Client端支持的所有密鑰套件。一個(gè)密鑰套件定義了一個(gè)密鑰規(guī)格,其中描述如下 內(nèi)容:密鑰交換算法(非對(duì)稱加密算法),是否出口對(duì)稱加密算法支持的最高對(duì)稱密鑰位數(shù)MAC (Message Authentication Code)算法 (或摘要算法)。例:SSL_RSA_WITH_RC4_128_MD5 = 0 x0004/* 非對(duì)稱加密算法或密鑰交換算法為RSA,采用高強(qiáng)度128位對(duì)稱加密算法

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論