計(jì)算機(jī)系統(tǒng)與網(wǎng)絡(luò)安全技術(shù)(第2版)-課件 5-6 SSL協(xié)議_第1頁
計(jì)算機(jī)系統(tǒng)與網(wǎng)絡(luò)安全技術(shù)(第2版)-課件 5-6 SSL協(xié)議_第2頁
計(jì)算機(jī)系統(tǒng)與網(wǎng)絡(luò)安全技術(shù)(第2版)-課件 5-6 SSL協(xié)議_第3頁
計(jì)算機(jī)系統(tǒng)與網(wǎng)絡(luò)安全技術(shù)(第2版)-課件 5-6 SSL協(xié)議_第4頁
計(jì)算機(jī)系統(tǒng)與網(wǎng)絡(luò)安全技術(shù)(第2版)-課件 5-6 SSL協(xié)議_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第四章網(wǎng)絡(luò)安全技術(shù)-安全套接層協(xié)議計(jì)算機(jī)系統(tǒng)與網(wǎng)絡(luò)安全技術(shù)安全套接層協(xié)議安全協(xié)議技術(shù)安全套接層(SSL:SecureSocketsLayerProtocol),是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。Netscape公司1994年所研發(fā)其繼任者為傳輸層安全協(xié)議(TLS:TransportLayerSecurity)什么是安全套接層協(xié)議?安全套接層協(xié)議安全協(xié)議技術(shù)機(jī)密性:利用對稱加密算法保證通信的機(jī)密性。完整性:利用完整性保護(hù)機(jī)制確保數(shù)據(jù)沒有被修改身份認(rèn)證:通過證書實(shí)現(xiàn)單向或者雙向認(rèn)證密鑰交換:為對稱加密算法協(xié)商密鑰安全套接層協(xié)議所提供的安全服務(wù)安全套接層協(xié)議安全協(xié)議技術(shù)端到端可靠安全:使用TCP協(xié)議來提供一個(gè)可靠的端到端安全服務(wù)??蓴U(kuò)展性(Scalability):新的密碼算法可以容易的加入。高效性(Efficiency):通過壓縮等方法減少通信開銷。透明性:對應(yīng)用層透明安全套接層協(xié)議的特色FTPHTTPSMTPTelnet安全套接層協(xié)議安全協(xié)議技術(shù)NFSSSL/TLSTCPIPUDPSNMPRPCXDR數(shù)據(jù)鏈路層物理層SSL與TCP/IP協(xié)議棧的關(guān)系TLS與SSL在傳輸層對網(wǎng)絡(luò)連接進(jìn)行加密來提供安全服務(wù)。安全套接層協(xié)議安全協(xié)議技術(shù)SSL與TCP/IP協(xié)議棧的關(guān)系DHRSADESRC4IDEASHA.........應(yīng)用程序.....TelnetHTTPFTPTCPSPX........InternetEthernet可靠傳輸協(xié)議SSL協(xié)議實(shí)現(xiàn)應(yīng)用協(xié)議明文數(shù)據(jù)流密文數(shù)據(jù)流安全套接層協(xié)議安全協(xié)議技術(shù)物理層(PhysicalLayer)應(yīng)用層(Application)傳輸層(TCP)網(wǎng)絡(luò)層(IP)數(shù)據(jù)鏈路層(LinkLayer)物理層(PhysicalLayer)客戶機(jī)服務(wù)器互聯(lián)網(wǎng)路由器路由器路由器應(yīng)用層(Application)傳輸層(TCP)網(wǎng)絡(luò)層(IP)數(shù)據(jù)鏈路層(LinkLayer)安全套接層協(xié)議安全套接層協(xié)議明文密文明文明文密文明文SSL協(xié)議的傳輸過程安全套接層協(xié)議安全協(xié)議技術(shù)SSL中的通信實(shí)體通信實(shí)體(entity)是指SSL的參與者在SSLv3中定義了兩個(gè)通信實(shí)體客戶客戶是協(xié)議的發(fā)起者服務(wù)器服務(wù)器是協(xié)議的響應(yīng)者SSLServer(SSL服務(wù)器)SSLClient(SSL客戶)安全套接層協(xié)議安全協(xié)議技術(shù)SSL的幾個(gè)重要概念在SSL中,有幾個(gè)關(guān)鍵概念;SSLSession(SSL會(huì)話)SSLConnection(SSL連接)SSLSessionState(SSL會(huì)話狀態(tài))SSLConnectionState(SSL連接狀態(tài))安全套接層協(xié)議安全協(xié)議技術(shù)會(huì)話連接是一種通信實(shí)體具有對等關(guān)系的通信連接它規(guī)定了TLS客戶和服務(wù)器之間一條具體的具有對等關(guān)系的通信連接所需要的各種參數(shù)。連接是瞬時(shí)的,用后即消失TLS連接(TLSconnection)是SSL客戶和SSL

服務(wù)器之間的一個(gè)關(guān)聯(lián)關(guān)系它定義了客戶和服務(wù)器之間的一套加密規(guī)范參數(shù)(如加密算法、加密密鑰、初始化向量等)可以被多個(gè)SSL連接共享TLS會(huì)話(TLSSessison)SSL會(huì)話與連接一個(gè)連接中可以有多個(gè)會(huì)話安全套接層協(xié)議安全協(xié)議技術(shù)SSL會(huì)話與連接的關(guān)系會(huì)話是用來協(xié)商安全參數(shù)的(如加密算法等)會(huì)話定義了一組可以被多個(gè)連接共用的密碼安全參數(shù)連接是用來安全傳輸應(yīng)用程序數(shù)據(jù)的(如加密傳送消息)對于每個(gè)連接,可以利用會(huì)話來避免對新安全參數(shù)進(jìn)行代價(jià)昂貴的協(xié)商一個(gè)會(huì)話可能包含多個(gè)安全連接理論上,雙方可以存在多個(gè)同時(shí)會(huì)話,但在實(shí)踐中并未用到這個(gè)特性在任意一對通信雙方之間,也許會(huì)有多個(gè)安全連接每個(gè)連接都只和一個(gè)會(huì)話相關(guān)TLS客戶TLS服務(wù)器同一個(gè)連接K1K2安全協(xié)議技術(shù)安全套接層協(xié)議SSL連接的單向性連接是單向的客戶和服務(wù)器之間如果需要相互通信,則需要建立兩個(gè)連接。根據(jù)當(dāng)前會(huì)話狀態(tài),給出壓縮算法密碼規(guī)范(CipherSpec)給出對稱加密算法、MAC算法、密鑰長度、Hash長度、IV長度連接狀態(tài)給出的Client和Server的隨機(jī)數(shù)、加密密鑰、MAC秘密值、IV、消息序列號等SSL會(huì)話狀態(tài)與連接狀態(tài)的作用安全協(xié)議技術(shù)安全套接層協(xié)議安全套接層協(xié)議安全協(xié)議技術(shù)連接狀態(tài)包含屬于某個(gè)SSL會(huì)話的某次具體連接所需要的所有信息。兩個(gè)32字節(jié)的隨機(jī)數(shù)兩個(gè)MAC密鑰一個(gè)對稱加密密鑰兩個(gè)初始向量兩個(gè)序號會(huì)話狀態(tài)包含某次SSL會(huì)話的所有信息會(huì)話標(biāo)識(shí)證書壓縮方法加密規(guī)范主秘密標(biāo)志會(huì)話和連接所包含的內(nèi)容稱之為會(huì)話狀態(tài)和連接狀態(tài)。SSL會(huì)話狀態(tài)與連接狀態(tài)安全套接層協(xié)議安全協(xié)議技術(shù)SSL加密規(guī)約修改協(xié)議SSL報(bào)警協(xié)議SSL應(yīng)用SSL握手協(xié)議SSL記錄層協(xié)議TCP協(xié)議IP數(shù)據(jù)鏈路層物理層SLL協(xié)議SLL協(xié)議框架握手協(xié)議:用來實(shí)現(xiàn)密鑰交換和認(rèn)證記錄層協(xié)議:用來安全傳輸數(shù)據(jù)加密規(guī)約修改協(xié)議:啟用新的密碼參數(shù)報(bào)警協(xié)議:報(bào)警和錯(cuò)誤安全協(xié)議技術(shù)安全套接層協(xié)議SSL的握手協(xié)議握手協(xié)議握手協(xié)議時(shí)SSL中最復(fù)雜的部分用于客戶和服務(wù)器之間協(xié)商各種信息握手協(xié)議在傳遞應(yīng)用程序數(shù)據(jù)之前使用安全協(xié)議技術(shù)安全套接層協(xié)議SSL的握手協(xié)議握手協(xié)議的功能客戶和服務(wù)器之間相互認(rèn)證協(xié)商密鑰交換算法協(xié)商加密算法協(xié)商壓縮算法密鑰交換初始向量值協(xié)商安全協(xié)議技術(shù)安全套接層協(xié)議SSL的握手協(xié)議握手協(xié)議本質(zhì)上是一個(gè)密鑰交換協(xié)議,但它也包含認(rèn)證功能,因此可以視為認(rèn)證和密鑰交換協(xié)議握手協(xié)議主要由四個(gè)過程組成交換安全能力服務(wù)器認(rèn)證和密鑰交換客戶端認(rèn)證和密鑰交換完成:通知啟用新的安全參數(shù)因?yàn)镾SL在同一個(gè)連接的兩個(gè)方向采用不同的密鑰為什么需要服務(wù)器密鑰交換和客戶端密鑰交換兩個(gè)過程?TLS客戶TLS服務(wù)器ClientHelloServerHello第一階段:交換安全能力第二階段:服務(wù)器密鑰交換與認(rèn)證第三階段:客戶密鑰交換與認(rèn)證第四階段:完成階段交換應(yīng)用數(shù)據(jù)CertificateServerKeyExchangeCertificateRequestServerHelloDoneClientKeyExchange/ClientCertificateCertificateVerifyChangeCipherSPEC.FinishChangeCipherSPEC.FinishApplicationDataProtocolApplicationDataProtocol安全協(xié)議技術(shù)安全套接層協(xié)議SSL的握手協(xié)議安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第一階段:交換安全能力客戶和服務(wù)器之間通過發(fā)送要求建立會(huì)話的消息(ClientHello消息和ServerHello消息),交換彼此的要求和能力使二者在TLS版本、會(huì)話表示、將要使用的密碼組(包括加密算法、壓縮算法、密鑰交換算法等)方面達(dá)成一致從而為下一步所需要的安全參數(shù)提供了具體的信息安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第一階段:交換安全能力TheClientHellomessage&TheServerHellomessageSSL版本號(SSLVersion):一般是客戶所支持的最高版本號隨機(jī)數(shù)(ClientHello.random&ServerHello.random):防重放攻擊會(huì)話標(biāo)示(SessionIdentifier):用來唯一標(biāo)示這個(gè)會(huì)話0:新建一個(gè)會(huì)話和連接非0:在已有會(huì)話上建立連接(也叫做會(huì)話重用)加密算法:客戶支持的密碼算法,包括:密鑰交換算法(KeyExchange)加密算法(cihperSpec):密碼算法、MAC算法、MAC長度、密鑰材料、IV大小數(shù)據(jù)壓縮算法:客戶支持的壓縮算法安全套接層協(xié)議安全協(xié)議技術(shù)加密算法IDEA_CBCRC2_CBC_40RC4_40RC4_128DES40_CBCDES_CBC3DES_EDE_CBCNULL密鑰交換算法DHE_DSSDHE_RSADH_anonDH_DSSDH_RSANULLRSA數(shù)字摘要算法NULLMD5SHA壓縮算法NULLPKZipWinZipgzipSSL支持的密碼算法服務(wù)器證書列表消息(Certificate)通過服務(wù)器向客戶發(fā)送自己的證書(和證書列表)來實(shí)現(xiàn)客戶對服務(wù)器的身份認(rèn)證。服務(wù)器密鑰交換消息(Server_Key_Exchange)向客戶端發(fā)送服務(wù)器自己的密鑰信息??蛻舳俗C書請求消息(Certificate_Request)如果服務(wù)器需要對客戶身份進(jìn)行認(rèn)證,則向客戶發(fā)送客戶證書請求(Certificaterequest)消息,要求客戶在下一階段返回自己合適的證書。對于匿名密鑰交換,如果客戶收到服務(wù)器發(fā)送的Certificaterequest消息,則通過報(bào)警消息發(fā)送致命錯(cuò)誤后關(guān)閉連接。服務(wù)器結(jié)束消息(Server_Hello_Done)向客戶發(fā)送服務(wù)器結(jié)束消息(ServerHelloDone),通告客戶可以執(zhí)行密鑰交換協(xié)議。安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第二階段:服務(wù)器密鑰交換與認(rèn)證安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第二階段:服務(wù)器密鑰交換與認(rèn)證服務(wù)器標(biāo)示服務(wù)器的證書(也可能是一組證書),包含服務(wù)器公鑰說明:服務(wù)器證書消息是服務(wù)器向客戶端傳送自己的證書,使得客戶端知道服務(wù)器的公鑰以及其他信息。TheServerCertificatemessage安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第二階段:服務(wù)器密鑰交換與認(rèn)證證書類型:用來指明服務(wù)器使用何種公鑰體制證書的認(rèn)證權(quán)威:是一組服務(wù)器支持的證書權(quán)威(CA)說明:(1)服務(wù)器密鑰交換消息用來向客戶端發(fā)送服務(wù)器自己的密鑰信息(2)服務(wù)器密鑰交換消息不是必須的如果使用了固定Diffie-Hellman或者RSA密鑰交換,則不需要。反之,如果使用匿名Diffie-Hellman、瞬時(shí)Diffie-Hellman、Fortzza或者服務(wù)器在使用RSA時(shí)僅用了RSA簽名密鑰。RSA:在第一階段包含了服務(wù)器的公鑰固定DH:由于在固定DH中,服務(wù)器在第一階段發(fā)送的證書消息中包含了服務(wù)器自己的公鑰ServerKeyexchangemessage安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第二階段:服務(wù)器密鑰交換與認(rèn)證TheClientCertificateRequestmessage說明:如果服務(wù)器不使用匿名Diffie-Hellman,則客戶端證書請求消息是必須的。它的目的是要求客戶端向服務(wù)器發(fā)送證書等消息,以便對客戶進(jìn)行認(rèn)證。證書類型:用來指明服務(wù)器支持公鑰體制證書的認(rèn)證權(quán)威:是一組服務(wù)器支持的證書權(quán)威(CA)安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第二階段:服務(wù)器密鑰交換與認(rèn)證ServerDonemessage表明服務(wù)器的hello和相關(guān)信息結(jié)束在此消息之后,服務(wù)器將等待客戶端的應(yīng)答安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第二階段:服務(wù)器密鑰交換與認(rèn)證SSLClientSSLServerServerCertificateClientCertificateRequestServerDoneMessageServer_key_Exchange服務(wù)器到客戶的消息交換小結(jié)安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第三階段:客戶密鑰交換與認(rèn)證在接收到服務(wù)器完成消息之后如果請求了證書,客戶端需要驗(yàn)證服務(wù)器是否提供了合法的證書檢查server_hello參數(shù)是否可以接受如果所有條件滿足,則客戶端向服務(wù)器發(fā)回一個(gè)或者多個(gè)消息:(1)客戶端證書消息(Certificate):如果服務(wù)器請求了證書,必須有該消息(2)客戶端密鑰交換消息(Client_Key_Exchange):必須發(fā)送(3)客戶端證書校驗(yàn)消息(Ceritificate_Verify):可以發(fā)送(便于服務(wù)器驗(yàn)證自己的證書)客戶端證書消息(Certificate)如果服務(wù)器請求了證書(即服務(wù)器發(fā)送了Certificaterequest消息),且客戶擁有合適的證書,客戶端必須發(fā)送該消息來向服務(wù)器傳遞自己的證書。如果客戶沒有合適的證書,則通過向服務(wù)器發(fā)送一個(gè)零長度的證書列表結(jié)構(gòu),表明無法證明自己的身份。客戶端密鑰交換消息(ClientKeyExchange)客戶必須發(fā)送該消息用于完成與服務(wù)器之間的密鑰交換。客戶端證書校驗(yàn)消息(CeritificateVerify)通過發(fā)送客戶端的證書校驗(yàn)消息,允許服務(wù)器驗(yàn)證客戶證書的有效性安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第三階段:客戶密鑰交換與認(rèn)證安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第三階段:客戶密鑰交換與認(rèn)證ClientCertificatemessage客戶標(biāo)示:客戶的身份標(biāo)示信息客戶的證書:客戶證書的有關(guān)信息說明:如果服務(wù)器請求了證書,但是客戶端沒有合適的證書,則發(fā)送”無證書警報(bào)“消息安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第三階段:客戶密鑰交換與認(rèn)證ClientKeyExchangemessage密鑰參數(shù)密鑰:用服務(wù)器公鑰加密的會(huì)話密鑰或者是密鑰交換消息說明:如果是RSA,該消息包含客戶端生成的48字節(jié)的次密鑰(pre-mastersecretkey),并使用服務(wù)器證書中的公鑰或者服務(wù)器密鑰交換消息中的臨時(shí)RSA密鑰加密,它用于生成主密鑰(mastersecretkey)如果是Diffie-Hellman,該消息包含客戶端的Diffie-Hellman公鑰參數(shù)安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第三階段:客戶密鑰交換與認(rèn)證CertificateVerifyMessage驗(yàn)證信息:客戶證書的Hash簽名驗(yàn)證信息說明:Hash簽名很復(fù)雜,它對簽名的所有消息即密鑰信息等進(jìn)行Hash運(yùn)算,并用自己的私鑰加密,從而即是有人盜用了客戶端證書,也無法發(fā)送該證書驗(yàn)證消息安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第三階段:客戶密鑰交換與認(rèn)證客戶到服務(wù)器的消息交換小結(jié)SSLClientSSLServerCertificateClientKeyExchangeCertificate_Verify安全套接層協(xié)議安全協(xié)議技術(shù)SSL中基于RSA的密鑰交換與認(rèn)證在握手協(xié)議中,服務(wù)器證書請求和客戶端證書請求都是可選的,因此SSL的握手過程實(shí)際蘊(yùn)含三種驗(yàn)證方式:客戶端和服務(wù)器均被認(rèn)證只驗(yàn)證服務(wù)器客戶端和服務(wù)器均不被認(rèn)證(即匿名模式)安全套接層協(xié)議安全協(xié)議技術(shù)SSL客戶SSL服務(wù)器(1)服務(wù)器的RSA證書CAs(2)用Ks簽名的秘密值SSL中基于RSA的密鑰交換與認(rèn)證服務(wù)器的證書CAs包含服務(wù)器公鑰Ks)或者由CA簽名的臨時(shí)RSA公鑰Ks安全套接層協(xié)議安全協(xié)議技術(shù)SSL客戶SSL服務(wù)器(1)服務(wù)器的RSA或DSS證書CAs(2)用Ks簽名的秘密值

(3)客戶的RSA或DSS證書CAc(4)用Kc簽名的臨時(shí)DH參數(shù)SSL中的瞬時(shí)DH密鑰交換與認(rèn)證服務(wù)器證書CAs含服務(wù)器公鑰Ks或者由CA簽名的臨時(shí)RSA或DSS公鑰Ks客戶證書CAc包含客戶的公鑰Kc安全套接層協(xié)議安全協(xié)議技術(shù)SSL客戶SSL服務(wù)器(1)服務(wù)器的RSA或DSS證書CAs(2)客戶的RSA或DSS證書CAc服務(wù)器的證書CAs包含由服務(wù)器簽名的需要交換的固定DH參數(shù)客戶證書CAc包含客戶簽名的需要交換的固定DH參數(shù);或者客戶的RSA或DSS證書CAc||客戶簽名的臨時(shí)DH參數(shù)SSL中的固定DH密鑰交換與認(rèn)證安全套接層協(xié)議安全協(xié)議技術(shù)SSL客戶SSL服務(wù)器(1)

DH參數(shù)(2)

DH參數(shù)SSL中的匿名DH密鑰交換就是普遍意義上的DH密鑰交換過程該過程中沒有認(rèn)證功能安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第四階段:結(jié)束階段此階段完成安全連接的設(shè)置,主要包含以下消息:客戶:(1)客戶端發(fā)送的修改密碼規(guī)范消息(Change_Cipher_Spec)(2)客戶端發(fā)送的完成消息(Finished)服務(wù)器(1)服務(wù)器發(fā)送的修改密碼規(guī)范消息(Change_Cipher_Spec)(2)服務(wù)器發(fā)送的完成消息(Finished)客戶的加密規(guī)范修改消息(ChangeCipherSpec)修改密碼協(xié)議來通過服務(wù)器啟用新的安全參數(shù),且記錄層協(xié)議對以后的所有數(shù)據(jù)均使用新的密碼參數(shù)來加密??蛻舻耐瓿上ⅲ‵inished)驗(yàn)證密鑰交換和認(rèn)證協(xié)議成功完成服務(wù)器的修改密碼規(guī)范消息(ChangeCipherSpec)通告客戶啟用新的安全參數(shù)。

服務(wù)器的完成消息(Finished)發(fā)送該消息后服務(wù)器將等待應(yīng)用程序數(shù)據(jù)。安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第四階段:結(jié)束階段安全協(xié)議技術(shù)安全套接層協(xié)議握手協(xié)議第四階段:結(jié)束階段結(jié)束階段的消息交換總結(jié)SSLClientSSLServerChange_Cipher_SpecClientFinishChange_Cipher_SpecServerFinish從此刻開始,客戶端和服務(wù)器的記錄層協(xié)議將啟用新的密鑰和算法進(jìn)行數(shù)據(jù)加密安全套接層協(xié)議安全協(xié)議技術(shù)SSL的加密規(guī)范修改協(xié)議問題:當(dāng)握手協(xié)議結(jié)束后,何時(shí)開始啟用新的密碼參數(shù)呢?答案:SSL需要從預(yù)備狀態(tài)向當(dāng)前狀態(tài)改變安全套接層協(xié)議安全協(xié)議技術(shù)SSL客戶SSL服務(wù)器SSL記錄層協(xié)議當(dāng)前狀態(tài)預(yù)備狀態(tài)當(dāng)前狀態(tài)當(dāng)前狀態(tài)預(yù)備狀態(tài)當(dāng)前狀態(tài)SSL記錄層協(xié)議SSL加密規(guī)約修改協(xié)議SSL握手協(xié)議SSL的加密規(guī)范修改協(xié)議SSL連接中的預(yù)備狀態(tài)如何改變到新狀態(tài)?預(yù)備狀態(tài)過渡到新的當(dāng)前狀態(tài)實(shí)際上就是啟用新的密碼參數(shù)狀態(tài)改變由SSL中密碼規(guī)約修改協(xié)議來通知雙方啟用新參數(shù)使用參數(shù)使用參數(shù)安全協(xié)議技術(shù)安全套接層協(xié)議SSL的報(bào)警協(xié)議問題:當(dāng)SSL協(xié)議執(zhí)行過程中出息錯(cuò)誤怎么辦?答案:使用報(bào)警協(xié)議來解決SSL協(xié)議執(zhí)行過程中出現(xiàn)的各種問題。警告消息(WarningMsg)僅僅是通告對方有關(guān)報(bào)警信息,不會(huì)導(dǎo)致連接的關(guān)閉。一般連接被關(guān)閉,盡管其它已經(jīng)打開的連接依然可以使用,但是會(huì)話標(biāo)識(shí)被標(biāo)記為無效,因此可以防止通過該會(huì)話創(chuàng)建新的連接。致命消息(FatalMsg)將導(dǎo)致連接被立即中止,并將與這個(gè)連接相關(guān)的會(huì)話(會(huì)話標(biāo)識(shí)符)作廢,以免這個(gè)會(huì)話被繼續(xù)用來建立新的連接。安全協(xié)議技術(shù)安全套接層協(xié)議SSL的報(bào)警協(xié)議用于將SSL握手協(xié)議或者記錄層協(xié)議等過程有關(guān)的告警傳輸給對方或向?qū)Ψ桨l(fā)出警告,或者中止當(dāng)前連接。安全協(xié)議技術(shù)安全套接層協(xié)議SSL的報(bào)警協(xié)議警告消息結(jié)束通知無證書證書出錯(cuò)不支持的證書證書撤銷證書過期未知證書致命消息意外消息MAC記錄出錯(cuò)解壓失敗握手失敗非法參數(shù)TLS客戶TLS服務(wù)器ClientHelloServerHelloChangeCipherSPEC.FinishChangeCipherSPEC.FinishApplicationDataProtocolApplicationDataProtocol安全協(xié)議技術(shù)安全套接層協(xié)議會(huì)話重用在SSL中,為了節(jié)約密碼參數(shù)協(xié)商帶來的開銷,允許一個(gè)連接中的密碼參數(shù)被多個(gè)會(huì)話重用會(huì)話重用不需要經(jīng)過完整的握手協(xié)議,只需要通知雙方利用過去會(huì)話標(biāo)示重用過去協(xié)商的密碼參數(shù)即可。安全協(xié)議技術(shù)安全套接層協(xié)議SSL的密鑰生成Question:在handshake協(xié)議中,只交換了一個(gè)秘密SSL是如何得到通信中需要的加密密鑰(即工作密鑰)、MAC計(jì)算密鑰和密碼算法需要的IV值的?Answer:回答這個(gè)問題需要知道SSL的密鑰計(jì)算規(guī)則安全協(xié)議技術(shù)安全套接層協(xié)議SSL需要哪些密鑰?SSLClientSSLServerC>SS>CC>SS>CEncryptionMACIVEncryptionMACIVpre_master_secret(每個(gè)會(huì)話)MasterSecret(每個(gè)會(huì)話)Server_Random(每個(gè)連接)Client_Random(每個(gè)連接)安全協(xié)議技術(shù)安全套接層協(xié)議SSL的密鑰生成Key_Block初始向量(每個(gè)連接)會(huì)話密鑰(每個(gè)連接)哈希密鑰(每個(gè)連接)主秘密的創(chuàng)建次密鑰(pre_master_secret)通過客戶和服務(wù)器交換得到交換方法主要有兩種:

RSA:由客戶端生成48字節(jié)的次密鑰,并用服務(wù)器的RSA公鑰加密后發(fā)送到服務(wù)器

Diffie-Hellman:客戶端和服務(wù)器同時(shí)生成Diffie-Hellman公鑰,密鑰交換后雙方執(zhí)行Diffie-Hellman計(jì)算,創(chuàng)建共享次密鑰次密鑰(pre_master_secret)如何得到?master_secret=MD5(pre_master_secret+SHA('A'+pre_master_secret+ClientHello.random+ServerHello.random))+MD5(pre_master_secret+SHA('BB'+pre_master_secret+ClientHello.random+ServerHello.random))+MD5(pre_master_secret+SHA('CCC'+pre_master_secret+ClientHello.random+ServerHello.random));主密鑰的生成算法主密鑰通過次密鑰(pre_master_secret)和隨機(jī)數(shù)ClientHello.random&ServerHello.random來生成

key_block=MD5(master_secret+SHA(`A'+master_secret+ServerHello.random+ClientHello.random))+MD5(master_secret+SHA(`BB'+master_secret+ServerHello.random+ClientHello.random))+MD5(master_secret+SHA(`CCC'+master_secret+ServerHello.random+ClientHello.random))+[...]由主密鑰和隨機(jī)數(shù)、ClientHello.random、ServerHello.random生成密鑰塊(KeyBlock)生成密鑰塊直到長度足夠

client_write_MAC_secret[CipherSpec.hash_size]server_write_MAC_secret[CipherSpec.hash_size]client_write_key[CipherSpec.key_material]server_write_key[CipherSpec.key_material]client_write_IV[CipherSpec.IV_size]server_write_IV[CipherSpec.IV_size]各密鑰的最終生成各密鑰通過對密鑰塊進(jìn)行切割而得到安全協(xié)議技術(shù)安全套接層協(xié)議SSL的記錄層協(xié)議發(fā)送方處理流程發(fā)方Step1分片:從上層接收任意大小的數(shù)據(jù)塊(Records)Step2壓縮:用當(dāng)前會(huì)話狀態(tài)中給出的壓縮算法明文結(jié)構(gòu)SSLPlaintext壓縮為壓縮記錄SSLCompressedStep3MAC計(jì)算:用當(dāng)前會(huì)話狀態(tài)中指定的MAC算法對SSLCompressed計(jì)算消息摘要Step4加密:用加密算法加密壓縮數(shù)據(jù)和消息摘要,形成密文結(jié)構(gòu)(SSLCiphertext)Step5封裝發(fā)送:將數(shù)據(jù)封裝為可靠傳輸層協(xié)議的數(shù)據(jù)包,并發(fā)送到TCP協(xié)議abcdefghijklmnabcdefghijklmn應(yīng)用程序數(shù)據(jù)分片(Fragment)壓縮(Compress)增加消息摘要(AddMAC)加密(Encrypt)添加SSL記錄層協(xié)議頭安全協(xié)議技術(shù)安全套接層協(xié)議SSL的記錄層協(xié)議發(fā)送方處理流程SSL頭安全協(xié)議技術(shù)安全套接層協(xié)議SSL的記錄層協(xié)議接收方處理流程收方Step1解封裝:從TCP接收到包含SSL記錄層協(xié)議頭的數(shù)據(jù),去掉記錄層協(xié)議頭得到加密的數(shù)據(jù)Step2解密:用解密算法解密數(shù)據(jù),得到明文消息和消息摘要Step3MAC驗(yàn)證:根據(jù)明文消息計(jì)算消息摘要并與解密得到的消息摘要進(jìn)行比較,驗(yàn)證完整性是否保證Step4解壓:用解壓縮算法解壓壓縮數(shù)據(jù)Step5組裝:將各數(shù)據(jù)塊組裝得到應(yīng)用層數(shù)據(jù)塊abcdefghijklmnabcdefghijklmn應(yīng)用程序數(shù)據(jù)組裝(Component)解壓縮(Decompress)驗(yàn)證消息摘要(VerifyMAC)解密(Decrypt)接收數(shù)據(jù)安全協(xié)議技術(shù)安全套接層協(xié)議SSL的記錄層協(xié)議接收方處理流程SSL頭HTTP協(xié)議在傳輸過程中沒有提供足夠的安全保護(hù)網(wǎng)景公司(Netscape)在1995年首先提出了采用SSL保護(hù)HTTP的方案(HTTPoverSSL)HTTPoverTLS具體在RFC2817和RFC2818中描述。使用HTTPOverSSL的方式/ref=nav_ya_signin?tag=zcn0e-23&SSL與HTTP安全協(xié)議技術(shù)SSL協(xié)議應(yīng)用實(shí)例:HTTPSSTEP1:客戶(瀏覽器)向WEB服務(wù)器發(fā)起連接,執(zhí)行SSL握手協(xié)議。瀏覽器既是WEB服務(wù)器的客戶端,也是SSL的客戶端,因此首先通過向SSL服務(wù)器發(fā)送ClientHello消息而發(fā)起SSL握手協(xié)議。協(xié)商所需要的所有安全參數(shù)。STEP2:通過SSL加密規(guī)約修改協(xié)議通知雙方使用新的安全參數(shù)啟用SSL協(xié)議。在未啟用SSL之前,不會(huì)傳送HTTP數(shù)據(jù)。HTTPOverSSL執(zhí)行過程安全協(xié)議技術(shù)SSL協(xié)議應(yīng)用實(shí)例:HTTPSSTEP3:在已建立的SSL信道上,通過SSL記錄層協(xié)議來傳輸HTTP數(shù)據(jù)。一般是分配443端口,端口可以通過配置來更改。對于很大的web頁面,可通過多個(gè)SSL記錄層協(xié)議包來傳送。STEP4:客戶或服務(wù)器關(guān)閉SSL連接客戶或服務(wù)器通過SSL報(bào)警協(xié)議發(fā)送close_notify消息通知服務(wù)器關(guān)閉SSL連接,并同時(shí)發(fā)送TPFIN關(guān)閉TCP連接。如果沒有收到close_notify而直接收到了TCPFIN(稱之為提前關(guān)閉連接),則可能是系統(tǒng)錯(cuò)誤或攻擊行為??蛻舳丝梢栽谌魏螘r(shí)候關(guān)閉連接,因此服務(wù)器必須能夠適應(yīng)這種方式以恢復(fù)連接。HTTPOverSSL概述安全協(xié)議技術(shù)SSL協(xié)議應(yīng)用實(shí)例:HTTPSContenttypes:SSL加密規(guī)約修改協(xié)議(ChangeCipherSpec)SSL握手協(xié)議(Handshake)SSL報(bào)警協(xié)議(Alert)應(yīng)用數(shù)據(jù)(Appli

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論