資源描述:
《讓SSL_TLS協(xié)議流行起來:深度解讀SSL_TLS實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、讓SSL/TLS協(xié)議流行起來:深度解讀SSL/TLS實(shí)現(xiàn)一前言SSL/TLS協(xié)議是網(wǎng)絡(luò)安全通信的重要基石,本系列將簡單介紹SSL/TLS協(xié)議,主要關(guān)注SSL/TLS協(xié)議的安全性,特別是SSL規(guī)范的正確實(shí)現(xiàn)。本系列的文章大體分為3個(gè)部分:SSL/TLS協(xié)議的基本流程典型的針對SSL/TLS協(xié)議的攻擊SSL/TLS協(xié)議的安全加固措施本文對SSIZHS協(xié)議概況做基本介紹,包括SSL/TLS協(xié)議的版本變遷,協(xié)議的詳細(xì)流程以及流行的SSL/TLS協(xié)議實(shí)現(xiàn)。文章的主要內(nèi)容翻譯自波鴻魯爾大學(xué)ChristopherMeyer的文章《20Years
2、ofSSL/TLSResearchAnAnalysisoftheInternet*sSecurityFoundation)),同時(shí)也根據(jù)作者自己的理解增加了部分內(nèi)容,以使對SSL/TLS協(xié)議的介紹更為完整。二什么是SSL/TLS?SSL全稱是SecureSocketsIwycr,安全套接字層,它是由網(wǎng)景公司(Netscape)設(shè)計(jì)的主要用于Web的安全傳輸協(xié)議,目的是為網(wǎng)絡(luò)通信提供機(jī)密性、認(rèn)證性及數(shù)據(jù)完整性保障。如今,SSL已經(jīng)成為互聯(lián)網(wǎng)保密通信的工業(yè)標(biāo)準(zhǔn)。SSL最初的幾個(gè)版本(SSL1.0.SSI20、SSL3.0)由網(wǎng)景公司設(shè)
3、計(jì)和維護(hù),從3.1版本開始,SSL協(xié)議由因特網(wǎng)工程任務(wù)小組(IETF)正式接管,并更名為TLS(TransportLayerSecurity),發(fā)展至今已有TLS1.0、TLS1.1、TLS1.2這幾個(gè)版本。如TLS名字所說,SSL/TLS協(xié)議僅保障傳輸層安全。同時(shí),由于協(xié)議自身特性(數(shù)字證書機(jī)制),SSL/TLS不能被用于保護(hù)多跳(multi-hop)端到端通信,而只能保護(hù)點(diǎn)到點(diǎn)通信。SSL/TLS協(xié)議能夠提供的安全目標(biāo)主耍包括如下兒個(gè):認(rèn)證性一借助數(shù)字證書認(rèn)證服務(wù)器端和客戶端身份,防止身份偽造機(jī)密性——借助加密防止第三方竊聽完
4、整性——借助消息認(rèn)證碼(MAC)保障數(shù)據(jù)完整性,防止消息篡改重放保護(hù)一通過使用隱式序列號防止重放攻擊為了實(shí)現(xiàn)這些安全目標(biāo),SSL/TLS協(xié)議被設(shè)計(jì)為一個(gè)兩階段協(xié)議,分為握手階段和應(yīng)用階段:握手階段也稱協(xié)商階段,在這一階段,客戶端和服務(wù)器端會(huì)認(rèn)證對方身份(依賴FPKI體系,利用數(shù)字證書進(jìn)行身份認(rèn)證),并協(xié)商通信中使用的安全參數(shù)、密碼套件以及MasterSecreto后續(xù)通信使用的所有密鑰都是通過MasterSecret生成。在握手階段完成厲,進(jìn)入應(yīng)用階段。在應(yīng)用階段通信雙方使用握手階段協(xié)商好的密鑰進(jìn)行安全通信。SSL/TLS協(xié)議有一
5、個(gè)高度模塊化的架構(gòu),分為很冬子協(xié)議,如下圖所示:TLS/SSL—drops.wooywLorgHandshake協(xié)議:包括協(xié)商安金參數(shù)和密碼套件、服務(wù)器身份認(rèn)證(客戶端身份認(rèn)證可選)、密鑰交換;ChangcCiphcrSpcc協(xié)議:一條消息表明握手協(xié)議已經(jīng)克成;Alert協(xié)議:對握手協(xié)議中一些異常的錯(cuò)誤提醒,分為fatalfllwarning兩個(gè)級別,fatal類型的錯(cuò)誤會(huì)直接中斷SSL鏈接,而warning級別的錯(cuò)誤SSL鏈接仍可繼續(xù),只是會(huì)給出錯(cuò)謀警告;Record協(xié)議:包折對消息的分段、壓縮、消息認(rèn)證和完整性保護(hù)、加密等。三
6、協(xié)議流程詳解本節(jié)對SSL/TLS協(xié)議的流程進(jìn)行詳細(xì)介紹。一個(gè)典型的TLS1.0協(xié)議交互流程如下圖所示:ClientServerClientHello]7、ApplicationDataExplanationHandshakeProtocol]ChangeCipherSpecProtocoloptionalHandshakemessagesApplicationDataProtocol1drops.wooyun.org每一個(gè)SSL/TLS鏈接都是從握手開始的,握手過程包含一個(gè)消息序列,用以協(xié)商安全參數(shù)、密碼套件,進(jìn)行身份認(rèn)證以及密鑰交換。握手過程小的消息必須嚴(yán)格按照預(yù)先定義的順序發(fā)生,否則就會(huì)帶來潛在的安全威脅。今年頂級安全會(huì)議CCS有文章提出了建立綜合狀態(tài)機(jī)來檢查SSL鏈接中消息序
8、列……3.1握手過程中的消息序列ClientHello:ClientHcllo通常是握手過程中的第一條消息,用于告知服務(wù)器客戶端所支持的密碼套件種類、最高SSL/TLS協(xié)議版本以及壓縮算法。ClientHello中還包含-■個(gè)隨機(jī)數(shù),這個(gè)隨機(jī)數(shù)宙4