安全套接字層(SSL)協(xié)議,是對(duì)計(jì)算機(jī)之間整個(gè)會(huì)話進(jìn)行加密的協(xié)議,它能提供Internet上通信的保密性。該協(xié)議允許客戶∕服務(wù)器應(yīng)用程序在通信時(shí),能夠阻止竊聽、報(bào)文偽造等安全攻擊。
下面,我們將從通信量分析、主動(dòng)攻擊、重放攻擊、密碼組回滾攻擊以及中間人攻擊這五種常見的安全攻擊入手,初步分析SSL的抵御攻擊能力。
1.通信量分析
如果常規(guī)的攻擊失敗,密碼破譯專家會(huì)轉(zhuǎn)向使用更復(fù)雜的攻擊。通信量分析是另外一種被動(dòng)攻擊,但它經(jīng)常是惡意攻擊,因此值得一提。通信量分析的目標(biāo)在于,通過檢查包中未加密的域及屬性,以獲得受保護(hù)會(huì)話的機(jī)密信息。例如,通過檢查未加密的源和目標(biāo)的IP地址(甚至TCP端口號(hào)),或者檢查網(wǎng)絡(luò)通信流,一個(gè)通信量分析專家可以確定通信各方的通信內(nèi)容,使用的服務(wù)類型,有時(shí)甚至還可以獲得有關(guān)商業(yè)或個(gè)兒關(guān)系的信息。實(shí)際上,用戶大都認(rèn)為通信量分析的威脅相對(duì)來說是無害的,因此SSL不會(huì)試圖阻止這種攻擊。忽略通信量分析看來是一種可行的設(shè)計(jì)方案。
然而在SSL體系結(jié)構(gòu)中,通信量分析仍會(huì)造成一些巧妙的威脅。Bennet Yee已經(jīng)指出,檢查密文的長(zhǎng)度會(huì)暴露出有關(guān)SSL或被SSL加密的網(wǎng)站通信中用到的URL請(qǐng)求的信息【Yee96】。當(dāng)一個(gè)Web瀏覽器通過加密傳輸(如SSL)連接到一臺(tái)Web服務(wù)器時(shí),包含有URL信息的GET請(qǐng)求會(huì)以加密方式進(jìn)行傳輸。嚴(yán)格來說,瀏覽器要下載哪一個(gè)頁面,這種信息是保密的——顯然,具有URL方面的知識(shí),對(duì)于一個(gè)想下載整個(gè)網(wǎng)站的人來說,這已經(jīng)足夠了——而且,通信量分析可以獲得Web服務(wù)器的身份信息,請(qǐng)求的URL長(zhǎng)度,以及從Web服務(wù)器所返回的html數(shù)據(jù)的長(zhǎng)度。這個(gè)漏洞往往使得竊聽者能夠發(fā)現(xiàn)用戶訪問了哪些Web頁面。
上述弱點(diǎn)之所以出現(xiàn),是因?yàn)槊芪拈L(zhǎng)度暴露了明文的長(zhǎng)度。SSL在塊加密模式中支持隨機(jī)填充,而在流加密模式中卻不支持。我們相信,對(duì)于所有的加密模式,SSL將會(huì)在最小程度上支持任意長(zhǎng)度填充的使用,而且會(huì)仔細(xì)地考慮它在特定應(yīng)用程序中的需求。
2.主動(dòng)攻擊
SSL能抵御主動(dòng)攻擊以安全地保護(hù)機(jī)密數(shù)據(jù),這一點(diǎn)非常重要。當(dāng)然,所使用的加密算法應(yīng)該在被選擇明文∕被選擇密文攻擊下是安全的,但這對(duì)于加密算法來說還不夠。IETF的IPSEC工作組的最近研究表明,即使所使用的密碼強(qiáng)度足夠,在記錄層上精明的主動(dòng)攻擊仍能打破系統(tǒng)的保密性。SSL 3.0的記錄層能抵御這些強(qiáng)有力的攻擊:更進(jìn)一步,為何這些攻擊會(huì)被阻止,值得我們討論。
IPSEC中的一個(gè)重要的主動(dòng)攻擊是Bellovin的剪貼攻擊?;叵肫饋?,要獲得保密性,光對(duì)鏈接進(jìn)行加密是不夠的——接收端也必須防止敏感數(shù)據(jù)在無意中被泄露出來。剪貼攻擊的攻擊方式就是謀求接收端的信任,使之對(duì)敏感數(shù)據(jù)進(jìn)行解密并將這些數(shù)據(jù)泄露給它們。
SSL 3.0能夠阻止剪貼攻擊。阻止這種攻擊的一種局部性防御策略是為每一個(gè)不同的上下文使用獨(dú)立的會(huì)話密鑰,這樣便能在不同的連接之間,以及連接的不同方向之間阻止剪貼操作。SSL已經(jīng)為每個(gè)連接方向使用了獨(dú)立的密鑰。但是,這種機(jī)制無法阻止傳輸中一個(gè)方向上的剪貼操作。應(yīng)用最廣泛的防御策略是在所有加密包上使用強(qiáng)大的認(rèn)證機(jī)制,以阻止敵方對(duì)密文數(shù)據(jù)的修改。SSL記錄層確實(shí)采用了這種防御策略,因此剪貼操作被完全阻止住了。
另一種主動(dòng)攻擊是短塊攻擊,它主要針對(duì)IPSEC。這種攻擊適用于最后的報(bào)文塊包含一個(gè)一字節(jié)長(zhǎng)的明文并且報(bào)文塊剩余部分由隨機(jī)數(shù)填充的情況。在SSL上并沒有明顯的短塊攻擊。SSL記錄層格式與以前的IPSEC格式相當(dāng)類似,這種格式容易遭到攻擊,因此可以想象,修改性攻擊會(huì)對(duì)SSL產(chǎn)生威脅。但是,無論如何,由標(biāo)準(zhǔn)SSL加密的Web服務(wù)器基本上不會(huì)受到短塊攻擊的威脅,因?yàn)檫@些服務(wù)器不會(huì)經(jīng)常對(duì)短塊進(jìn)行加密。(但要注意,由SSL加密的telnet客戶端必須得到特殊的保護(hù),以防止短塊攻擊,因?yàn)槊恳淮伟存I在傳送時(shí)都是一字節(jié)長(zhǎng)的數(shù)據(jù)包。)
下面,我們將從通信量分析、主動(dòng)攻擊、重放攻擊、密碼組回滾攻擊以及中間人攻擊這五種常見的安全攻擊入手,初步分析SSL的抵御攻擊能力。
1.通信量分析
如果常規(guī)的攻擊失敗,密碼破譯專家會(huì)轉(zhuǎn)向使用更復(fù)雜的攻擊。通信量分析是另外一種被動(dòng)攻擊,但它經(jīng)常是惡意攻擊,因此值得一提。通信量分析的目標(biāo)在于,通過檢查包中未加密的域及屬性,以獲得受保護(hù)會(huì)話的機(jī)密信息。例如,通過檢查未加密的源和目標(biāo)的IP地址(甚至TCP端口號(hào)),或者檢查網(wǎng)絡(luò)通信流,一個(gè)通信量分析專家可以確定通信各方的通信內(nèi)容,使用的服務(wù)類型,有時(shí)甚至還可以獲得有關(guān)商業(yè)或個(gè)兒關(guān)系的信息。實(shí)際上,用戶大都認(rèn)為通信量分析的威脅相對(duì)來說是無害的,因此SSL不會(huì)試圖阻止這種攻擊。忽略通信量分析看來是一種可行的設(shè)計(jì)方案。
然而在SSL體系結(jié)構(gòu)中,通信量分析仍會(huì)造成一些巧妙的威脅。Bennet Yee已經(jīng)指出,檢查密文的長(zhǎng)度會(huì)暴露出有關(guān)SSL或被SSL加密的網(wǎng)站通信中用到的URL請(qǐng)求的信息【Yee96】。當(dāng)一個(gè)Web瀏覽器通過加密傳輸(如SSL)連接到一臺(tái)Web服務(wù)器時(shí),包含有URL信息的GET請(qǐng)求會(huì)以加密方式進(jìn)行傳輸。嚴(yán)格來說,瀏覽器要下載哪一個(gè)頁面,這種信息是保密的——顯然,具有URL方面的知識(shí),對(duì)于一個(gè)想下載整個(gè)網(wǎng)站的人來說,這已經(jīng)足夠了——而且,通信量分析可以獲得Web服務(wù)器的身份信息,請(qǐng)求的URL長(zhǎng)度,以及從Web服務(wù)器所返回的html數(shù)據(jù)的長(zhǎng)度。這個(gè)漏洞往往使得竊聽者能夠發(fā)現(xiàn)用戶訪問了哪些Web頁面。
上述弱點(diǎn)之所以出現(xiàn),是因?yàn)槊芪拈L(zhǎng)度暴露了明文的長(zhǎng)度。SSL在塊加密模式中支持隨機(jī)填充,而在流加密模式中卻不支持。我們相信,對(duì)于所有的加密模式,SSL將會(huì)在最小程度上支持任意長(zhǎng)度填充的使用,而且會(huì)仔細(xì)地考慮它在特定應(yīng)用程序中的需求。
2.主動(dòng)攻擊
SSL能抵御主動(dòng)攻擊以安全地保護(hù)機(jī)密數(shù)據(jù),這一點(diǎn)非常重要。當(dāng)然,所使用的加密算法應(yīng)該在被選擇明文∕被選擇密文攻擊下是安全的,但這對(duì)于加密算法來說還不夠。IETF的IPSEC工作組的最近研究表明,即使所使用的密碼強(qiáng)度足夠,在記錄層上精明的主動(dòng)攻擊仍能打破系統(tǒng)的保密性。SSL 3.0的記錄層能抵御這些強(qiáng)有力的攻擊:更進(jìn)一步,為何這些攻擊會(huì)被阻止,值得我們討論。
IPSEC中的一個(gè)重要的主動(dòng)攻擊是Bellovin的剪貼攻擊?;叵肫饋?,要獲得保密性,光對(duì)鏈接進(jìn)行加密是不夠的——接收端也必須防止敏感數(shù)據(jù)在無意中被泄露出來。剪貼攻擊的攻擊方式就是謀求接收端的信任,使之對(duì)敏感數(shù)據(jù)進(jìn)行解密并將這些數(shù)據(jù)泄露給它們。
SSL 3.0能夠阻止剪貼攻擊。阻止這種攻擊的一種局部性防御策略是為每一個(gè)不同的上下文使用獨(dú)立的會(huì)話密鑰,這樣便能在不同的連接之間,以及連接的不同方向之間阻止剪貼操作。SSL已經(jīng)為每個(gè)連接方向使用了獨(dú)立的密鑰。但是,這種機(jī)制無法阻止傳輸中一個(gè)方向上的剪貼操作。應(yīng)用最廣泛的防御策略是在所有加密包上使用強(qiáng)大的認(rèn)證機(jī)制,以阻止敵方對(duì)密文數(shù)據(jù)的修改。SSL記錄層確實(shí)采用了這種防御策略,因此剪貼操作被完全阻止住了。
另一種主動(dòng)攻擊是短塊攻擊,它主要針對(duì)IPSEC。這種攻擊適用于最后的報(bào)文塊包含一個(gè)一字節(jié)長(zhǎng)的明文并且報(bào)文塊剩余部分由隨機(jī)數(shù)填充的情況。在SSL上并沒有明顯的短塊攻擊。SSL記錄層格式與以前的IPSEC格式相當(dāng)類似,這種格式容易遭到攻擊,因此可以想象,修改性攻擊會(huì)對(duì)SSL產(chǎn)生威脅。但是,無論如何,由標(biāo)準(zhǔn)SSL加密的Web服務(wù)器基本上不會(huì)受到短塊攻擊的威脅,因?yàn)檫@些服務(wù)器不會(huì)經(jīng)常對(duì)短塊進(jìn)行加密。(但要注意,由SSL加密的telnet客戶端必須得到特殊的保護(hù),以防止短塊攻擊,因?yàn)槊恳淮伟存I在傳送時(shí)都是一字節(jié)長(zhǎng)的數(shù)據(jù)包。)

