第四章身份認(rèn)證技術(shù)-SSL協(xié)議_第1頁(yè)
第四章身份認(rèn)證技術(shù)-SSL協(xié)議_第2頁(yè)
第四章身份認(rèn)證技術(shù)-SSL協(xié)議_第3頁(yè)
第四章身份認(rèn)證技術(shù)-SSL協(xié)議_第4頁(yè)
第四章身份認(rèn)證技術(shù)-SSL協(xié)議_第5頁(yè)
已閱讀5頁(yè),還剩36頁(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)介

SSL,SecureSocketLayerTLS,TransportLayerSecurity參考資料密碼編碼學(xué)與網(wǎng)絡(luò)安全:原理與實(shí)踐第14章WilliamStallings電子工業(yè)出版社SSL連接像TCP的套接字那樣SSL的目標(biāo)SSL(SecureSocketLayer)是一種在TCP協(xié)議之上為兩個(gè)端實(shí)體(EndEntity)之間提供安全通道的協(xié)議。包括SSLv2、SSLv3、TLS協(xié)議應(yīng)用層IPTCPSSLSSL的歷史Netscape公司于1994開發(fā)

SSLv2releasedin1995SSLv3alsoreleasedin1995duetobugsinv2

Microsoft提出PCT(PrivateCommunicationTechnology)1996年IETF成立

TransportLayerSecurity(TLS)committeeTLSv1wasbaseduponSSLv3

Netscape、Microsoft都支持TLSv1TLS1與SSL3的差別非常微小。SSL提供3個(gè)方面的安全服務(wù)-認(rèn)證認(rèn)證-利用數(shù)字證書技術(shù)和可信任的第三方認(rèn)證機(jī)構(gòu),為客戶機(jī)和服務(wù)器之間的通信提供身份認(rèn)證功能,以便于彼此之間進(jìn)行身份識(shí)別-使用

X.509v3數(shù)字證書客戶對(duì)服務(wù)器的身份認(rèn)證(可選)SSL服務(wù)器允許客戶的瀏覽器使用標(biāo)準(zhǔn)的公鑰加密技術(shù)和一些可靠的認(rèn)證中心(CA)的證書,來(lái)確認(rèn)服務(wù)器的合法性。服務(wù)器對(duì)客戶的身份認(rèn)證可通過(guò)公鑰技術(shù)和證書進(jìn)行認(rèn)證,也可通過(guò)用戶名,password來(lái)認(rèn)證。SSL提供3個(gè)方面的安全服務(wù)

-機(jī)密性和完整性機(jī)密性-在SSL客戶機(jī)和服務(wù)器之間傳輸?shù)乃袛?shù)據(jù)都經(jīng)過(guò)了加密處理,以防止非法用戶進(jìn)行竊取、篡改和冒充。usingoneofDES,TripleDES,IDEA,RC2,RC4,…完整性-SSL利用加密算法和Hash函數(shù)來(lái)保證客戶機(jī)和服務(wù)器之間傳輸?shù)臄?shù)據(jù)的完整性。usingMACwithMD5orSHA-1建立服務(wù)器與客戶之間安全的數(shù)據(jù)通道SSL要求客戶與服務(wù)器之間的所有發(fā)送的數(shù)據(jù)都被發(fā)送端加密、接收端解密,同時(shí)還檢查數(shù)據(jù)的完整性SSL提供的安全服務(wù)用戶和服務(wù)器的合法性認(rèn)證usingX.509v3digitalcertificates傳輸數(shù)據(jù)的機(jī)密性u(píng)singoneofDES,TripleDES,IDEA,RC2,RC4,…傳輸數(shù)據(jù)的完整性u(píng)singMACwithMD5orSHA-1SSL結(jié)構(gòu)-兩層握手協(xié)議:用于在客戶與服務(wù)器之間建立安全連接之前交換安全信息客戶和服務(wù)器之間相互認(rèn)證協(xié)商加密算法和密鑰它提供連接安全性,有三個(gè)特點(diǎn)身份認(rèn)證,至少對(duì)一方實(shí)現(xiàn)認(rèn)證(對(duì)服務(wù)器的),也可以是雙向認(rèn)證協(xié)商得到的共享密鑰是安全的,中間人不能夠知道協(xié)商過(guò)程本身是可靠的記錄協(xié)議建立在可靠的傳輸層協(xié)議(TCP)上它提供連接安全性,有兩個(gè)特點(diǎn)保密性,使用了對(duì)稱加密算法完整性,使用HMAC算法用來(lái)封裝上層的協(xié)議改變密碼規(guī)格協(xié)議告警協(xié)議SSL工作原理采用握手協(xié)議建立客戶與服務(wù)器之間的安全通道,該協(xié)議包括雙方的相互認(rèn)證,交換密鑰參數(shù)采用告警協(xié)議向?qū)Χ酥甘酒浒踩e(cuò)誤采用改變密碼規(guī)格協(xié)議告知改變密碼參數(shù)采用記錄協(xié)議封裝以上三種協(xié)議或應(yīng)用層數(shù)據(jù)SSL基本概念

連接(Connection)和會(huì)話(Session)連接:連接是能提供合適服務(wù)類型的傳輸(在OSI分層模型中的定義);對(duì)SSL,這樣的連接是對(duì)等關(guān)系;連接是暫時(shí)的,每個(gè)連接都和一個(gè)會(huì)話相關(guān)會(huì)話:SSL會(huì)話是指在客戶機(jī)和服務(wù)器之間的關(guān)聯(lián);會(huì)話由握手協(xié)議創(chuàng)建;會(huì)話定義了一組可以被多個(gè)連接共用的密碼安全參數(shù)對(duì)于每個(gè)連接,可以利用會(huì)話來(lái)避免對(duì)新的安全參數(shù)進(jìn)行代價(jià)昂貴的協(xié)商。會(huì)話是虛擬的結(jié)構(gòu)會(huì)話狀態(tài)參數(shù)連接狀態(tài)參數(shù)SSLHandshake握手協(xié)議SSL最復(fù)雜部分服務(wù)器和客戶能夠相互鑒別對(duì)方的身份;協(xié)商加密和MAC算法;協(xié)商用來(lái)保護(hù)SSL記錄中發(fā)送的數(shù)據(jù)的加密密鑰。握手由在客戶和服務(wù)器之間交換的報(bào)文實(shí)現(xiàn)。SSL握手協(xié)議報(bào)文格式ClientServerC>SHandshakeClientHelloVersion3.1random[32]=17083bddaf902e92952026cb884c8b855c71860b2870d6959bc909959e7d99ebciphersuitesTLS_RSA_WITH_RC4_128_MD5TLS_DH_RSA_WITH_DES_CBC_SHA......compressionmethodsNULLS>CHandshakeServerHelloVersion3.1random[32]=27f4389a5b238e…….7d71780b325ee4……session_id[32]=3a0e…………………………….4566cipherSuiteTLS_RSA_WITH_RC4_128_SHAcompressionMethodNULL一建立安全能力ClientHelloSSLClientSSLServerPort443https://www.在SSL上運(yùn)行HTTP客戶發(fā)送一個(gè)client_hello消息,包括以下參數(shù):

版本、隨機(jī)數(shù)(32位時(shí)間戳+28字節(jié)隨機(jī)序列)、會(huì)話ID、客戶支持的密碼算法列表(CipherSuite)、客戶支持的壓縮方法列表然后,客戶等待服務(wù)器的server_hello消息SSLClientSSLServerServerHello服務(wù)器發(fā)送server_hello消息,參數(shù):

客戶建議的低版本以及服務(wù)器支持的最高版本、服務(wù)器產(chǎn)生的隨機(jī)數(shù)、會(huì)話ID、服務(wù)器從客戶建議的密碼算法中挑出一套、服務(wù)器從客戶建議的壓縮方法中挑出一個(gè)DataEncryption:

RC2-40RC4-128DESDES403DESIDEA

FortezzaMessageDigest:MD5SHA.CipherSuiteAlternativesKeyExchange.

RSAFixedDiffie-HellmanEphemeralDiffie-HellmanAnonymousDiffie-Hellman

FortezzaDataCompression:

PKZipWinZip

gzip

StuffItSSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5SSLClientSSLServerServerCertificate服務(wù)器發(fā)送certificate消息,消息包含一個(gè)X.509證書,或者一條證書鏈(除了匿名DH之外的密鑰交換方法都需要)服務(wù)器發(fā)送server_key_exchange消息(可選的),有些情況下可以不需要。服務(wù)器長(zhǎng)期密鑰只能用于簽名時(shí),簽發(fā)一個(gè)臨時(shí)的長(zhǎng)度較短的密鑰消息包含簽名,被簽名的內(nèi)容包括兩個(gè)隨機(jī)數(shù)以及服務(wù)器參數(shù)ClientCertificateRequest服務(wù)器發(fā)送certificate_request消息(可選)非匿名server可以向客戶請(qǐng)求一個(gè)證書包含證書類型和CAsServerDoneMessage服務(wù)器發(fā)送server_hello_done,然后等待應(yīng)答二服務(wù)器鑒別和密鑰交換SSLClientSSLServerClientCertificate客戶收到server_done消息后,它根據(jù)需要檢查服務(wù)器提供的證書,并判斷server_hello的參數(shù)是否可以接受,如果都沒有問題的話,發(fā)送一個(gè)或多個(gè)消息給服務(wù)器。如果服務(wù)器請(qǐng)求證書的話,則客戶首先發(fā)送一個(gè)certificate消息,若客戶沒有證書,則發(fā)送一個(gè)no_certificate警告。然后客戶發(fā)送client_key_exchange消息,消息的內(nèi)容取決于密鑰交換的類型(如果是RSA,則含加密的48字節(jié)的PreMasterSecret)。最后,客戶發(fā)送一個(gè)certificate_verify消息(可選),其中包含一個(gè)簽名,對(duì)從第一條消息以來(lái)的所有握手消息的HMAC值(用master_secret)進(jìn)行簽名三客戶機(jī)驗(yàn)證和密鑰交換SSL密鑰的計(jì)算KDF:keyderivationfunction密鑰導(dǎo)出函數(shù)pre_master_secret的獲得-密鑰交換算法在hello消息中,雙方交換隨機(jī)數(shù)以及各種算法兩類密鑰交換算法:RSA,客戶產(chǎn)生一個(gè)48字節(jié)的pre_master_secret,然后通過(guò)服務(wù)器的公鑰傳遞給服務(wù)器Diffie-Hellman,雙方協(xié)商得到的密鑰被用作pre_master_secret再?gòu)膒re_master_secret計(jì)算得到master_secretmaster_secret總是48字節(jié)長(zhǎng),而pre_master_secret長(zhǎng)度不定,取決于密鑰交換算法密鑰導(dǎo)出函數(shù)-MD5、SHA-1或者兩者結(jié)合確保每個(gè)摘要的輸出都是不同的pre_master_secretmastersecretClientwriteMACsecretClientwritesecretClientwriteIVServerwriteMACsecretServerwritesecretServerwriteIV密碼參數(shù)的生成密碼參數(shù)的生成確保每個(gè)摘要的輸出都是不同的Key_block導(dǎo)出其他密鑰SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5

選用密鑰塊的次序client_write_MAC_secret=key_block[0,..,15]server_write_MAC_secret=key_block[16,…,31]client_write_key=key_block[32,…,36]server_write_key=key_block[37,…,41]相關(guān)密鑰生成final_client_write_key=MD5(client_write_key||ClientHello.random||ServerHello.random)[0.…,15]final_server_write_key=MD5(server_write_key||ServerHello.random||ClientHello.random)[0,…,15]client_write_IV=MD5(ClientHello.random||ServerHello.random)[0,…,7]server_write_IV=MD5(ServerHello.random||ClientHello.random)[0,…,7]SSLClientSSLServerC>SS>CC>SS>CEncryptionMACIVEncryptionMACIV密鑰交換結(jié)果SSLClientSSLServerClientFinishchange_cipher_specchange_cipher_spec

ServerFinish四完成第四階段建立起一個(gè)安全的連接客戶發(fā)送一個(gè)change_cipher_spec消息,并且把協(xié)商得到的CipherSuite拷貝到當(dāng)前連接的狀態(tài)之中(目前只包含類型號(hào))然后,客戶用本次連接協(xié)商的算法、密鑰參數(shù)發(fā)送一個(gè)finished消息,這條消息可以檢查密鑰交換和鑒別過(guò)程是否已經(jīng)成功。其中包括一個(gè)校驗(yàn)值,對(duì)所有以來(lái)的消息進(jìn)行校驗(yàn)。服務(wù)器同樣發(fā)送change_cipher_spec消息和finished消息。握手過(guò)程完成,客戶和服務(wù)器可以傳送應(yīng)用層數(shù)據(jù)。第一次加密ByIntroducingSSLandCertificatesusingSSLeay-FrederickJ.hirschSSL記錄協(xié)議(SSLRecordProtocol)操作ByIntroducingSSLandCertificatesusingSSLeay-FrederickJ.hirsch1.分片ByIntroducingSSLandCertificatesusingSSLeay-FrederickJ.hirsch2.壓縮無(wú)損壓縮不會(huì)增加1024字節(jié)以上長(zhǎng)度的內(nèi)容沒有默認(rèn)壓縮算法3.MAC計(jì)算4.加密5.封裝SSL記錄協(xié)議提供的服務(wù)機(jī)密性(confidentiality)報(bào)文完整性(messageintegrity)SSL修改密碼規(guī)格協(xié)議由單個(gè)報(bào)文組成,報(bào)文值為1的單個(gè)字節(jié)將掛起狀態(tài)變成當(dāng)前狀態(tài),指示在此之后的所有消息都將使用剛剛商定的密碼進(jìn)行加密。SSLAlertProtocol(警告協(xié)議)decompressionfailure,handshakefailure,illegalparameterclosenotify,nocertificate,badcertificate,unsupportedcertifi

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論