《HTTPS協(xié)議分析》PPT課件.ppt_第1頁
《HTTPS協(xié)議分析》PPT課件.ppt_第2頁
《HTTPS協(xié)議分析》PPT課件.ppt_第3頁
《HTTPS協(xié)議分析》PPT課件.ppt_第4頁
《HTTPS協(xié)議分析》PPT課件.ppt_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、HTTPS簡介,2012-02-10,第一節(jié) HTTPS簡介,引入: 隨著網絡通信和電子商務等服務和資源進入人們的日常生活,人們在享受網絡帶來的各種便利的同時,面臨各種各樣的安全隱患。 我們經常接觸到的就有郵箱登錄,網上購物,電子銀行等等。這很多是基于 HTTP 協(xié)議的。 但HTTPRFC2616最初是在INTERNET上不用密碼的應用。因此隨著人們對安全性的要求增加。HTTPS協(xié)議,為我們提供了面向通道的安全性。,目錄,目錄 HTTPS簡介 SSL協(xié)議介紹 SSL記錄協(xié)議 SSL握手協(xié)議,HTTPS簡介,HTTPS (全稱:Hypertext Transfer Protocol over S

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

3、基于SSL上研發(fā)的,但是與SSLv3.0有細微的差別。 因此,SSL協(xié)議有時也稱為TLS協(xié)議。目前常用的是TLSv1.0的協(xié)議。,SSL協(xié)議介紹,SSL協(xié)議的功能 1)保證傳輸數據的保密性 2)保證傳輸數據的完整性 3)實現通信雙方的互相身份認證,SSL協(xié)議介紹,SSL協(xié)議在協(xié)議棧的位置,IP協(xié)議,TCP協(xié)議,HTTP、TELNET、FTP等應用層協(xié)議,SSL協(xié)議介紹,SSL 協(xié)議是一個分層的協(xié)議,共有兩層組成。 高層協(xié)議包括 : SSL 握手協(xié)議(SSL HandshakeProtocol) 、 改變加密約定協(xié)議(Change Cipher Spec Protocol) 、 報警協(xié)議(Ale

4、rtProtocol) 處于 SSL 協(xié)議的底層的是: SSL記錄層協(xié)議(SSL Record Protocol),SSL記錄協(xié)議,SSL的記錄協(xié)議 記錄層協(xié)議實際上是一個簡單的封裝或者說是“打包”協(xié)議。記錄可能是明文傳送的,也可能是被加密傳送的, 紀錄協(xié)議的功能 保證消息的完整性 機密性,SSL記錄協(xié)議,SSL記錄的結構示意圖:,類型:有握手協(xié)議、報警協(xié)議、改變加密約定協(xié)議、應用數據等四種,加密數據,可分解為,數據,HMAC,填充*,填充長度*,注:HMAC: Keyed-Hash Message Authentication Code(消息驗證碼),SSL記錄協(xié)議,MAC(Message

5、Authentication Code)消息驗證碼 消息驗證碼也稱為消息摘要,是實現數據完整性的主要手段。 主要目的是認證消息、檢驗數據是否被篡改。 目前常用的消息摘要算法有MD5(Message-Digest Algorithm 5 ) 和SHA(Secure Hash Algorithm )。 SSL中的摘要算法是:HMAC 即 Keyed-Hash Message Authentication Code。 HMAC 是在使用消息摘要函數(例如 MD5 等)的同時,增加了一個“密鑰”作為輸入。,SSL記錄協(xié)議,SSL記錄協(xié)議封裝過程,類型,版本,長度,數據,HMAC*,填充*,填充長度*,

6、1、填寫”記錄頭信息” 中的”版本”和”類型”,*2、如果協(xié)商了壓縮 算法則壓縮“數據”,3、計算并附加MAC,*4、計算“填充長度”,填 寫“填充字段”并“加密”,5、填寫記錄頭信息中 的“長度”,SSL記錄協(xié)議,SSL記錄協(xié)議解封裝過程,類型,版本,長度,數據,HMAC*,填充*,填充長度*,1、讀取”記錄頭信息” 中的”版本”,2、根據長度讀入記 錄“數據”部分,3、去掉“填充長度”和 “填充“字段,*4、檢查并去掉MAC,5、如果協(xié)商了壓縮算 法則解壓“數據”,SSL握手協(xié)議,SSL 握手協(xié)議是SSL 協(xié)議中最重要同時也是最復雜的協(xié)議。 SSL握手協(xié)議主要負責如下工作: 算法協(xié)商 身份

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

8、商,只需執(zhí)行部分握手流程。,全流程握手(Full Handshake),攜帶客戶的SSL版本號,加密套件列表,壓縮算法列表,客戶端隨機數,sessionid = 0;傳送給服務器,Server Hello Server Certificate* Client Certificate Requst* Server Hello done,*Client Certificate Client Key Exchang *Certificate verify Change Cipher Spec Client finished Message,Client hello,Change Cipher Spe

9、c Server finished Message,Application Data,Application Data,服務器選擇版本,確定要用的加密套件、壓縮算法,計算sessionid,以及隨機數發(fā)給客戶端,服務器將自己的證書發(fā)送給客戶端,服務端向客戶端索要證書,服務端通知客戶端握手消息發(fā)送完成,客戶端向服務器端發(fā)送自己的證書,客戶端密鑰交換(產生預主密鑰(preMasterKey),客戶端證書驗證,讓服務器驗證發(fā)消息的客戶端和客戶端證書的真實所有者,改變加密約定消息,通知服務端,之后的消息開始啟用加密參數,客戶端的SSL協(xié)商成功結束,發(fā)送握手驗證報文確保消息的完整性,服務器端的SSL協(xié)商

10、成功結束,發(fā)送握手驗證報文確保消息的完整性,改變加密約定消息,通知客戶端,之后的消息開始啟用加密參數,應用數據傳送,下一頁,攜帶客戶的SSL版本號,加密套件列表,壓縮算法列表,客戶端隨機數,sessionid = 0;傳送給服務器,Client hello,客戶端給服務器端發(fā)個hello的問候,問候里包含有它使用的SSL版本號、加密套件列表,壓縮算法列表,客戶端隨機數,sessionid = 0;,服務器收到客戶端的問候后,會從客戶端提供的版本號中選出雙方都支持的最高版本, 從加密套件列表選擇一種支持也安全性強的加密套件,從壓縮算法列表選擇壓縮算法(一般為空)。,返回,Client hello

11、,服務器端將上述選擇的加密套件,壓縮算法(NULL),且計算一個session_id,和服務器端隨機數發(fā)送給客戶端,服務器選擇版本,確定要用的加密套件、壓縮算法,計算sessionid,以及隨機數發(fā)給客戶端,Server hello,客戶端收到serverhello的報文會將加密套件,壓縮算法(NULL),session_id,和服務器端隨機數緩存起來。接著繼續(xù)握手過程。,返回,Server hello,服務器將自己的證書發(fā)送給客戶端,Server Certificate *,服務器端將自己的證書發(fā)送給客戶端,證明自己的身份。證書中包含有服務器的身份信息,以及服務器的公鑰。,客戶端收到Cert

12、ificate報文會驗證該證書是否過期,并將服務器的公鑰緩存起來。,返回,Server Certificate *,Client Certificate Requst*,如果是SSL的雙向認證的話 ,那么服務器端會向客戶端發(fā)送client cert request 消息,索要客戶端的證書,證書中包含有server端支持的證書類型,和所信任的所有證書發(fā)行機構(CA(Certificate Authority)列表。,客戶端收到Client Certificate Requst報文將消息中的證書類型列表和可信任證書發(fā)行機構列表保存下來,可在后面發(fā)送客戶端證書時候拿來篩選證書用。,服務端向客戶端索要

13、證書,返回,Client Certificate Requst*,Server Hello done,服務器端通知客戶端這一步的握手消息發(fā)送完成。等待客戶端確認。,服務端通知客戶端握手消息發(fā)送完成,返回,Server Hello done,*Client Certificate,客戶端從之前收到server端發(fā)的cert request消息中的支持的證書類型列表和信任的根CA(Certificate Authentication)列表中選擇滿足條件的第一個證書發(fā)送給服務器。,客戶端向服務器端發(fā)送自己的證書,服務器端會緩存客戶端的公鑰。,返回,*Client Certificate,Client

14、 Key Exchang,若為RSA加密,客戶端則產生一個48位隨機數作為pre-master(預主密鑰)并用服務器公鑰加密后發(fā)出去。,客戶端向服務器端發(fā)送一個48位的預主密鑰,服務器端緩存預主密鑰。,返回,Client Key Exchang,*Certificate verify,客戶端證讓服務器驗證發(fā)消息的客戶端和客戶端證書的真實性,由于之前的Client Certificate消息中包含有客戶端的公鑰,因此用公鑰解密該消息,驗證客戶端的真實性。,Certificate verify這個消息中要包含一個簽名,簽名里頭內容就是從client hello開始到目前為止所有握手消息(不包括本消

15、息)的摘要,然后用客戶端的私鑰加密。,返回,*Certificate verify,Change Cipher Spec,改變加密約定消息,通知服務端,之后的消息開始啟用加密參數,在發(fā)送該消息的同時,客戶端會把之前的客戶端隨機數,服務器端隨機數、以及預主鑰產生一個主密鑰。并將主密鑰進行密鑰導出(服務器端的寫MAC密鑰、客戶端寫MAC密鑰、服務器端的寫密鑰、客戶端的寫密鑰),該過程只在本地進行,不發(fā)送給對方。,Change Cipher Spec該消息只有一個值為1的字節(jié)。不屬于握手協(xié)議,和握手協(xié)議同一級別的改變加密約定協(xié)議。發(fā)送該消息的作用是為了告訴對方接下來的消息將采用新協(xié)商的加密套件和密鑰

16、進行通信。,返回,Change Cipher Spec,Client finished Message,客戶端的SSL協(xié)商成功結束,發(fā)送握手驗證報文確保消息的完整性,這是客戶端SSL協(xié)商成功結束的消息。也是第一個用協(xié)商好的密鑰加密的消息。會把從client hello一直到現在的數據摘要,用客戶端密鑰加密,發(fā)送給服務器。確保握手過程的完整性和機密性。,返回,Client finished Message,SSL握手協(xié)議,加密套件列表: 列表中包含了Client端支持的所有密鑰套件。 一個密鑰套件定義了一個密鑰規(guī)格,其中描述如下 內容: 密鑰交換算法(非對稱加密算法), 是否出口 對稱加密算法 支持的最高對稱密鑰位數 MAC (Message Authentication Code)算法 (或摘要算法)。 例:SSL_RSA_WITH_RC4_128_MD5 = 0 x0004/* 非對稱加密算法或密鑰交換算法為RSA,采用高強度128位

溫馨提示

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

評論

0/150

提交評論