




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、HTTPS簡介2012-02-10第一節(jié)第一節(jié) HTTPSHTTPS簡介簡介引入: 隨著網(wǎng)絡(luò)通信和電子商務(wù)等服務(wù)和資源進(jìn)入人們的日常生活,人們在享受網(wǎng)絡(luò)帶來的各種便利的同時(shí),面臨各種各樣的安全隱患。 我們經(jīng)常接觸到的就有郵箱登錄,網(wǎng)上購物,電子銀行等等。這很多是基于 HTTP 協(xié)議的。 但HTTPRFC2616最初是在INTERNET上不用密碼的應(yīng)用。因此隨著人們對安全性的要求增加。HTTPS協(xié)議,為我們提供了面向通道的安全性。目錄目錄目錄nHTTPS簡介nSSL協(xié)議介紹nSSL記錄協(xié)議nSSL握手協(xié)議HTTPS簡介簡介nHTTPS(全稱:Hypertext Transfer Protocol
2、 over Secure Socket Layer)n是HTTP的安全版nHTTPS默認(rèn)使用TCP端口443,也可以指定其他的TCP端口。nURI格式 https/:URL一個(gè)URI例子: https:/ Sockets Layer)協(xié)議。nSSL是Netscape公司發(fā)明的一種用于WEB的安全傳輸協(xié)議。 隨著時(shí)間的推移由于Netscape失去了市場份額,它將SSL的維護(hù)工作移交給因特網(wǎng)工程任務(wù)組(IETF)。第一個(gè)后Netscape版本被重新命名為安全傳輸層協(xié)議(TLS), TLS (Transport Layer Security :RFC 2246)是基于SSL上研發(fā)的,但是與SSLv3
3、.0有細(xì)微的差別。n因此,SSL協(xié)議有時(shí)也稱為TLS協(xié)議。目前常用的是TLSv1.0的協(xié)議。SSL協(xié)議介紹協(xié)議介紹nSSL協(xié)議的功能n1)保證傳輸數(shù)據(jù)的保密性n2)保證傳輸數(shù)據(jù)的完整性n3)實(shí)現(xiàn)通信雙方的互相身份認(rèn)證SSL協(xié)議介紹協(xié)議介紹nSSL協(xié)議在協(xié)議棧的位置IP協(xié)議協(xié)議TCP協(xié)議協(xié)議HTTP、TELNET、FTP等應(yīng)用層協(xié)議等應(yīng)用層協(xié)議SSL記錄協(xié)議記錄協(xié)議應(yīng)用數(shù)據(jù)應(yīng)用數(shù)據(jù)告警告警握手握手ChangeCipherSpecSSL協(xié)議介紹協(xié)議介紹nSSL 協(xié)議是一個(gè)分層的協(xié)議,共有兩層組成。n高層協(xié)議包括 :nSSL 握手協(xié)議(SSL HandshakeProtocol) 、n改變加密約定協(xié)
4、議(Change Cipher Spec Protocol) 、n報(bào)警協(xié)議(AlertProtocol) n處于 SSL 協(xié)議的底層的是:n SSL記錄層協(xié)議(SSL Record Protocol)SSL記錄協(xié)議記錄協(xié)議nSSL的記錄協(xié)議n記錄層協(xié)議實(shí)際上是一個(gè)簡單的封裝或者說是“打包”協(xié)議。記錄可能是明文傳送的,也可能是被加密傳送的,n紀(jì)錄協(xié)議的功能n保證消息的完整性n機(jī)密性SSL記錄協(xié)議記錄協(xié)議nSSL記錄的結(jié)構(gòu)示意圖:類型類型版本版本長度長度明文數(shù)據(jù)明文數(shù)據(jù)/加密數(shù)據(jù)加密數(shù)據(jù)1字節(jié)2字節(jié)2字節(jié)(長度)字節(jié)類型類型:有握手協(xié)議、報(bào)警協(xié)議、改變加密約定協(xié)議、應(yīng)用數(shù)據(jù)等四種有握手協(xié)議、報(bào)警協(xié)
5、議、改變加密約定協(xié)議、應(yīng)用數(shù)據(jù)等四種加密數(shù)據(jù)加密數(shù)據(jù)可分解為數(shù)據(jù)HMAC填充*填充長度*注:HMAC: Keyed-Hash Message Authentication Code(消息驗(yàn)證碼)SSL記錄協(xié)議記錄協(xié)議nMAC(Message Authentication Code)消息驗(yàn)證碼消息驗(yàn)證碼n消息驗(yàn)證碼也稱為消息摘要,是實(shí)現(xiàn)數(shù)據(jù)完整性的主要手段。n主要目的是認(rèn)證消息、檢驗(yàn)數(shù)據(jù)是否被篡改。n目前常用的消息摘要算法有MD5(Message-Digest Algorithm 5 ) 和SHA(Secure Hash Algorithm )。nSSL中的摘要算法是:HMAC 即 Keyed-
6、Hash Message Authentication Code。nHMAC 是在使用消息摘要函數(shù)(例如 MD5 等)的同時(shí),增加了一個(gè)“密鑰”作為輸入。 SSL記錄協(xié)議記錄協(xié)議nSSL記錄協(xié)議封裝過程類型版本長度數(shù)據(jù)HMAC*填充*填充長度*1、填寫”記錄頭信息”中的”版本”和”類型”*2、如果協(xié)商了壓縮算法則壓縮“數(shù)據(jù)”3、計(jì)算并附加MAC*4、計(jì)算“填充長度”,填寫“填充字段”并“加密”5、填寫記錄頭信息中的“長度”SSL記錄協(xié)議記錄協(xié)議nSSL記錄協(xié)議解封裝過程類型版本長度數(shù)據(jù)HMAC*填充*填充長度*1、讀取”記錄頭信息”中的”版本”2、根據(jù)長度讀入記錄“數(shù)據(jù)”部分3、去掉“填充長度
7、”和“填充“字段*4、檢查并去掉MAC5、如果協(xié)商了壓縮算法則解壓“數(shù)據(jù)”SSL握手協(xié)議握手協(xié)議nSSL 握手協(xié)議是SSL 協(xié)議中最重要同時(shí)也是最復(fù)雜的協(xié)議。nSSL 握手協(xié)議主要負(fù)責(zé)如下工作握手協(xié)議主要負(fù)責(zé)如下工作:n算法協(xié)商 n身份驗(yàn)證n 確定密鑰SSL握手協(xié)議握手協(xié)議nSSL握手過程分為四種:nFull Handshake : 全流程握手,C/S雙方從無到有建立SSL連接;nResum session Handshake : C/S雙方曾經(jīng)建立過連接,但中途斷了,SSL會(huì)話信息還有保留,只需要執(zhí)行部分握手流程就可建立SSL連接;nServer Re-negotiation Handsha
8、ke : 已經(jīng)建立了SSL連接,但server端為了某些原因(比如安全性)要求重新對密鑰進(jìn)行協(xié)商,也只需要執(zhí)行部分握手流程;nClient Re-negotiation Handshake : 已經(jīng)建立SSL連接,但client端為了某些原因要求重新協(xié)商,只需執(zhí)行部分握手流程。n全流程握手(Full Handshake) 攜帶客戶的SSL版本號,加密套件列表,壓縮算法列表,客戶端隨機(jī)數(shù),sessionid = 0;傳送給服務(wù)器Server HelloServer Certificate*Client Certificate Requst*Server Hello done*Client Cer
9、tificateClient Key Exchang*Certificate verifyChange Cipher SpecClient finished MessageClient helloChange Cipher SpecServer finished MessageApplication DataApplication Data服務(wù)器選擇版本,確定要用的加密套件、壓縮算法,計(jì)算sessionid,以及隨機(jī)數(shù)發(fā)給客戶端服務(wù)器將自己的證書發(fā)送給客戶端服務(wù)端向客戶端索要證書服務(wù)端通知客戶端握手消息發(fā)送完成客戶端向服務(wù)器端發(fā)送自己的證書客戶端密鑰交換(產(chǎn)生預(yù)主密鑰(preMasterKey
10、)客戶端證書驗(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)文確保消息的完整性改變加密約定消息,通知客戶端,之后的消息開始啟用加密參數(shù)應(yīng)用數(shù)據(jù)傳送下一頁 攜帶客戶的SSL版本號,加密套件列表,壓縮算法列表,客戶端隨機(jī)數(shù),sessionid = 0;傳送給服務(wù)器Client hellon客戶端給服務(wù)器端發(fā)個(gè)hello的問候,問候里包含有它使用的SSL版本號、加密套件列表,壓縮算法列表,客戶端隨機(jī)數(shù),sessionid =
11、 0;n服務(wù)器收到客戶端的問候后,會(huì)從客戶端提供的版本號中選出雙方都支持的最高版本, 從加密套件列表選擇一種支持也安全性強(qiáng)的加密套件,從壓縮算法列表選擇壓縮算法(一般為空)。返回nClient hellon服務(wù)器端將上述選擇的加密套件,壓縮算法(NULL),且計(jì)算一個(gè)session_id,和服務(wù)器端隨機(jī)數(shù)發(fā)送給客戶端服務(wù)器選擇版本,確定要用的加密套件、壓縮算法,計(jì)算sessionid,以及隨機(jī)數(shù)發(fā)給客戶端Server hellon客戶端收到serverhello的報(bào)文會(huì)將加密套件,壓縮算法(NULL),session_id,和服務(wù)器端隨機(jī)數(shù)緩存起來。接著繼續(xù)握手過程。返回nServer hel
12、lo服務(wù)器將自己的證書發(fā)送給客戶端Server Certificate *n服務(wù)器端將自己的證書發(fā)送給客戶端,證明自己的身份。證書中包含有服務(wù)器的身份信息,以及服務(wù)器的公鑰。n客戶端收到Certificate報(bào)文會(huì)驗(yàn)證該證書是否過期,并將服務(wù)器的公鑰緩存起來。返回nServer Certificate *Client Certificate Requst*n如果是SSL的雙向認(rèn)證的話 ,那么服務(wù)器端會(huì)向客戶端發(fā)送client cert request 消息,索要客戶端的證書,證書中包含有server端支持的證書類型,和所信任的所有證書發(fā)行機(jī)構(gòu)(CA(Certificate Authority)
13、列表。 n客戶端收到Client Certificate Requst報(bào)文將消息中的證書類型列表和可信任證書發(fā)行機(jī)構(gòu)列表保存下來,可在后面發(fā)送客戶端證書時(shí)候拿來篩選證書用。 服務(wù)端向客戶端索要證書返回nClient Certificate Requst*Server Hello donen服務(wù)器端通知客戶端這一步的握手消息發(fā)送完成。等待客戶端確認(rèn)。服務(wù)端通知客戶端握手消息發(fā)送完成返回nServer Hello done*Client Certificaten客戶端從之前收到server 端發(fā)的 cert request 消息中的支持的證書類型列表和信任的根 CA (Certificate Au
14、thentication)列表中選擇滿足條件的第一個(gè)證書發(fā)送給服務(wù)器??蛻舳讼蚍?wù)器端發(fā)送自己的證書n服務(wù)器端會(huì)緩存客戶端的公鑰。返回n*Client CertificateClient Key Exchangn若為RSA加密,客戶端則產(chǎn)生一個(gè) 48 位隨機(jī)數(shù)作為 pre-master(預(yù)主密鑰) 并用服務(wù)器公鑰加密后發(fā)出去。 客戶端向服務(wù)器端發(fā)送一個(gè)48位的預(yù)主密鑰n服務(wù)器端緩存預(yù)主密鑰。返回nClient Key Exchang*Certificate verify客戶端證讓服務(wù)器驗(yàn)證發(fā)消息的客戶端和客戶端證書的真實(shí)性n由于之前的Client Certificate消息中包含有客戶端的公鑰
15、,因此用公鑰解密該消息,驗(yàn)證客戶端的真實(shí)性。nCertificate verify這個(gè)消息中要包含一個(gè)簽名,簽名里頭內(nèi)容就是從 client hello 開始到目前為止所有握手消息(不包括本消息)的摘要,然后用客戶端的私鑰加密。返回n*Certificate verifyChange Cipher Spec改變加密約定消息,通知服務(wù)端,之后的消息開始啟用加密參數(shù)n在發(fā)送該消息的同時(shí),客戶端會(huì)把之前的客戶端隨機(jī)數(shù),服務(wù)器端隨機(jī)數(shù)、以及預(yù)主鑰產(chǎn)生一個(gè)主密鑰。并將主密鑰進(jìn)行密鑰導(dǎo)出(服務(wù)器端的寫MAC密鑰、客戶端寫MAC密鑰、服務(wù)器端的寫密鑰、客戶端的寫密鑰),該過程只在本地進(jìn)行,不發(fā)送給對方。nC
16、hange Cipher Spec該消息只有一個(gè)值為1的字節(jié)。不屬于握手協(xié)議,和握手協(xié)議同一級別的改變加密約定協(xié)議。發(fā)送該消息的作用是為了告訴對方接下來的消息將采用新協(xié)商的加密套件和密鑰進(jìn)行通信。返回nChange Cipher SpecClient finished Message客戶端的 SSL 協(xié)商成功結(jié)束,發(fā)送握手驗(yàn)證報(bào)文確保消息的完整性n這是客戶端SSL協(xié)商成功結(jié)束的消息。也是第一個(gè)用協(xié)商好的密鑰加密的消息。會(huì)把從client hello一直到現(xiàn)在的數(shù)據(jù)摘要,用客戶端密鑰加密,發(fā)送給服務(wù)器。確保握手過程的完整性和機(jī)密性。返回nClient finished MessageSSL握手協(xié)議握手協(xié)議n 加密套件列表加密套件列表:n列表中包含了Client端支持的所有密鑰套件。n一個(gè)密鑰套件定義了一個(gè)密鑰規(guī)格,其中描述如下 內(nèi)容:n密鑰交換算法(非對稱加密算法),n是否出口n對稱加密算法n支持的最高對稱密鑰位數(shù)nMAC (Message Authentication Code)算法 (或摘要算法)。n例:SSL_RSA_WITH_RC4_128_MD5 = 0 x0004 /* 非對稱加密算法或密鑰交
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞斯萊斯魅影購車合同范本
- 為要使用合同范本
- pvc銷售合同范本
- 代辦旅游合同范本
- 兼職司機(jī) 合同范本
- 養(yǎng)生店合同范本
- 分期車輛協(xié)議合同范本
- 2024年上海健康醫(yī)學(xué)院招聘考試真題
- 北京一對一合伙合同范本
- 下鋪門店轉(zhuǎn)讓合同范本
- 2024年泰州職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
- 勞動(dòng)法培訓(xùn)課件
- 2024-2025學(xué)年成都市成華區(qū)七年級上英語期末考試題(含答案)
- 2024年05月青海青海省農(nóng)商銀行(農(nóng)信社)系統(tǒng)招考專業(yè)人才筆試歷年參考題庫附帶答案詳解
- 2025年山西杏花村汾酒集團(tuán)限責(zé)任公司人才招聘71名高頻重點(diǎn)提升(共500題)附帶答案詳解
- 貴州黔源電力股份有限公司招聘筆試沖刺題2025
- 2025年江蘇省環(huán)保集團(tuán)招聘筆試參考題庫含答案解析
- 新修訂中華人民共和國畜牧法全文解讀學(xué)習(xí)
- 統(tǒng)編版語文五年級下冊第二單元習(xí)作:寫讀后感課件
- 學(xué)校提高《規(guī)范書寫水平、傳承漢字文化》活動(dòng)方案3篇
- 幕墻施工現(xiàn)場安全檢查方案
評論
0/150
提交評論