樊子牛,向 宏,陳建國,李曉彤
(1. 四川外語學(xué)院,重慶 400031;2. 重慶大學(xué),重慶 400030)
IPSec與NAT兼容性的研究與改進(jìn)
樊子牛1,向 宏2,陳建國1,李曉彤1
(1. 四川外語學(xué)院,重慶 400031;2. 重慶大學(xué),重慶 400030)
IPSec是構(gòu)建VPN(Virtual Private Network 虛擬專用網(wǎng))的常用技術(shù),但在實際的應(yīng)用中,IPSec技術(shù)與用于解決IPv4地址匱乏的NAT技術(shù)存在嚴(yán)重的不兼容性[1,2]。這一不兼容性已經(jīng)嚴(yán)重地限制了NAT和IPSec的應(yīng)用范圍,特別是對校外用戶訪問校內(nèi)網(wǎng)絡(luò)資源造成很大的不便。而目前的情況是,大量的寬帶用戶的終端是使用NAT方式接入互聯(lián)網(wǎng)的。
IPSec與NAT不兼容的問題是多方面的, 主要有以下幾點:
1)IPSec AH和NAT[6]
AH利用消息摘要算法對整個IP數(shù)據(jù)包產(chǎn)生一個加密后的散列值,接收方利用該散列值認(rèn)證收到的IP數(shù)據(jù)包。但NAT將會改變數(shù)據(jù)包地址字段的值,導(dǎo)致消息完整性認(rèn)證失效。
2)校驗和和NAT[6]
IP數(shù)據(jù)包中封裝的上一層協(xié)議(TCP或者UDP)的協(xié)議頭中都有一個校驗和字段,在NAT的處理中會重新計算并修改這個校驗和字段,這樣的IP包就會被對方的IPSec丟棄。對于隧道模式,不存在這個問題。
3)IKE中IP地址作身份標(biāo)識符和NAT[6]
在IKE中,主模式(階段1)、快速模式(階段2)用IP地址作為通信雙方的身份標(biāo)識符,雙方用身份載荷(ID Payload)交換IP地址的HASH值驗證對方的身份。NAT對IP源、目的地址的修改將造成身份載荷與IP地址不相符。
4)固定的IKE端口和NAPT端口[6]
NAPT的工作原理是通過不同的端口號來區(qū)分不同的連接。在IKE協(xié)商時,進(jìn)行的UDP通信的端口號是一般是固定的(一般是500),這會出現(xiàn)問題。
5)重疊的SPD項和NAT[6]
RFC2401規(guī)定了安全策略選擇符允許值,其中包括目的IP地址、源IP地址、名字(用戶ID和系統(tǒng)名)、數(shù)據(jù)敏感級別、傳輸層協(xié)議、源和目的端口等,如果其中某些值無法確定,可以用特殊值(Wildcard)代替。根據(jù)這個規(guī)定,假設(shè)服務(wù)器1.2.3.4為用戶提供FTP服務(wù),用戶子網(wǎng)1和用戶子網(wǎng)2內(nèi)的IP地址均為192.168.50.25的主機(jī)都想使用這個FTP服務(wù),而公司對這兩臺主機(jī)訪問FTP服務(wù)的安全策略是不同的。這種情況下,在服務(wù)器上對兩臺主機(jī)的安全策略配置(不考慮數(shù)據(jù)敏感級別)如圖1所示。
當(dāng)服務(wù)器向外發(fā)送數(shù)據(jù)包時,需要查找安全策略庫確定對這個數(shù)據(jù)包安全保護(hù)的安全關(guān)聯(lián),因為兩個策略的查找鍵值是相同的,服務(wù)器就不能正確的用安全策略選擇符定位這個數(shù)據(jù)包應(yīng)該使用的安全關(guān)聯(lián)。
6)NAT無法多路傳輸IPSec數(shù)據(jù)流[6]
在隧道模式中,ESP保護(hù)的IPSec流量沒有包含可見的TCP或UDP報頭,TCP或UDP端口號無法將流量多路傳輸?shù)讲煌膬?nèi)部網(wǎng)絡(luò)的主機(jī)。對于NAT端的多個IPSec會話,其IPSec ESP數(shù)據(jù)流的傳入流量的目標(biāo)IP地址是相同的。為了將一個IPSec ESP數(shù)據(jù)流與另一個區(qū)分開,目標(biāo)IP地址和SPI必須得到跟蹤并映射到某個內(nèi)部網(wǎng)絡(luò)的IP地址和SPI。
7)動態(tài)NAT問題[6]
如前所述,動態(tài)NAT的地址綁定可能隨時間變化。如果在一個安全關(guān)聯(lián)的生存期內(nèi),IP地址發(fā)生變化,IPSec將不能正常的通信。
8)應(yīng)用層協(xié)議中的IP和NAT[6]
NAT必須對應(yīng)用透明,保證NAT在網(wǎng)絡(luò)中的快速部署、應(yīng)用。但是,在用IPSec ESP通信中,應(yīng)用層數(shù)據(jù)是被加密傳輸?shù)模虼?,某些?yīng)用(如FTP)在IPSec和NAT存在的環(huán)境中不能正常的應(yīng)用。
RSIP[3~5](Realm Specific IP)是指在不同地址域通信的主機(jī)自己能處理跨越不同地址域的地址變換問題。私有網(wǎng)絡(luò)中主機(jī)在和公共網(wǎng)絡(luò)中主機(jī)通信前,獲取跨越不同地址域需要的地址映射信息,然后按照地址映射來封裝數(shù)據(jù)包,使數(shù)據(jù)報能穿越不同的地址域。
RSIP的特點:從對IPSec的支持性角度來說,RSIP較UDP封裝更為優(yōu)越,因為RSIP的實施無須對現(xiàn)有IPSec實現(xiàn)進(jìn)行修改。
RSIP的不足:協(xié)議復(fù)雜,同時涉及對客戶機(jī)的修改、服務(wù)器的部署、服務(wù)器的修改等問題,因此實施費用相對較大,是一項長期的工作。NAT網(wǎng)關(guān)已廣泛應(yīng)用于各個領(lǐng)域,將現(xiàn)有的NAT網(wǎng)關(guān)升級為RSIP網(wǎng)關(guān)必然是耗費巨大的。
用UDP協(xié)議封裝IPSec。協(xié)議數(shù)據(jù)單元方法實質(zhì)是在通信實體之間建立一個UDP隧道,用UDP隧道來穿越NAT設(shè)備?;镜脑硎牵涸贗PSec協(xié)議頭前面加上一個UDP協(xié)議頭,在通信中間系統(tǒng)上看到傳輸?shù)氖荱DP數(shù)據(jù)包,IPSec數(shù)據(jù)包作為UDP協(xié)議的用戶數(shù)據(jù)。
UDP封裝的特點:NAT不需要作任何的修改,就可以和IPSec協(xié)同工作,對目前的NAT應(yīng)用和聯(lián)網(wǎng)結(jié)構(gòu)沒有任何影響。對系統(tǒng)其它的部件干擾較小,因為,UDP本身就是TCP/IP協(xié)議的一部分,大多數(shù)程序能正確處理UDP數(shù)據(jù)包。
UDP封裝的不足:UDP協(xié)議本身存在安全缺陷;要增加8個字節(jié)UDP協(xié)議頭的通信開銷;對某些高層協(xié)議不能有效支持;協(xié)商IPSec SA過程的時間明顯增加;對多用戶接入時無法支持細(xì)粒度的安全服務(wù)。
在IETF的UDP封裝方案的基礎(chǔ)上,文獻(xiàn)[9]、文獻(xiàn)[10]和文獻(xiàn)[11]分別提出了不同的改進(jìn)方案。主要目的是要解決文獻(xiàn)[7]中提到的兩個關(guān)于多用戶接入時的問題(問題描述見1.4節(jié))。
改進(jìn)方案實際上也就是建立另一層隧道來傳輸IPSec包,用中間層封裝的IP包作為區(qū)分會話的參數(shù)。文獻(xiàn)[9]在隧道的選取上采用了L2TP+PPP,文獻(xiàn)[10]在隧道的選取上采用了L2TP,文獻(xiàn)[11]在隧道的選取上采用了PPPoE。
UDP封裝改進(jìn)方案的特點:解決了IETF的UDP封裝方案在處理多用戶接入時的問題。
UDP封裝改進(jìn)方案的不足:需要隧道網(wǎng)關(guān)的支持與部署;比原UDP封裝方案多增加了一層隧道,處理效率相對來說也就下降了;沒有形成統(tǒng)一標(biāo)準(zhǔn),需要用戶自主設(shè)計開發(fā),要求較高;依然存在原UDP封裝方案的安全問題。
在文獻(xiàn)[7]中提到的兩個無法解決的問題,這也是大多數(shù)校外師生用VPN接入校園網(wǎng)時所最到的問題。
圖2 重疊SPD問題
在UDP封裝隧道模式下(圖2),兩臺不同NAT設(shè)備下的內(nèi)部主機(jī)與IPSec網(wǎng)關(guān)通信,如果兩臺主機(jī)使用相同的內(nèi)部地址(如:10.1.2.3),則IPSec網(wǎng)關(guān)上會建立兩個SA與10.1.2.3關(guān)聯(lián),這樣導(dǎo)致IPsec網(wǎng)關(guān)無法正確轉(zhuǎn)發(fā)外部流入SGW的數(shù)據(jù)包。
當(dāng)同一NAT設(shè)備下多臺內(nèi)部主機(jī)與IPsec網(wǎng)關(guān)采用UDP封裝傳輸模式通信時(圖3),如果多臺內(nèi)部主機(jī)申請的安全服務(wù)不同,則會產(chǎn)生沖突和SPD重疊。采用UDP封裝隧道模式可避免此問題的出現(xiàn),但不能提供更加靈活的安全策略。傳統(tǒng)的UDP封裝方案中沒有解決多用戶接入時支持細(xì)粒度的安全服務(wù),而UDP封裝改進(jìn)方案雖然解決多用戶接入的問題,但也帶來新問題,如需要更多硬件與部署,性能降低等。
圖3 同一NAT后多用戶接入問題
本文提出的基于X.509證書的UDP封裝方案主要思路是嘗試解決多用戶接入時的細(xì)粒度問題,并不會產(chǎn)生另外的硬件成本與部署要求。
圖4 服務(wù)器的安全策略庫
工作原理:考慮將IPSec協(xié)議和PKI體系進(jìn)行結(jié)合,IPSec可以保障雙方的通信安全,X.509[8]證書來確認(rèn)隧道連接雙方的身份。這樣做不但能提高VPN網(wǎng)關(guān)的數(shù)據(jù)通信安全,而且可以解決之前IETF的RFC3984中提到的兩個問題。如圖4所示,將原來選擇符中的源地址(圖1)更改為X.509中的DN,即可滿足以上要求。RFC2401規(guī)定了安全策略選擇符的允許值范圍,其中可以包含名字,名字可設(shè)置為X.509的Distinguished Name,如:C = US, SP = MA,O = GTE Internetworking, CN= Stephen T. Kent。DN名可以唯一地區(qū)別計算機(jī)或用戶,所以上圖中策略1、2的選擇符可根據(jù)DN的不同來加以區(qū)分。這樣就避免了由于源地址相同而產(chǎn)生的混淆問題。
封裝方案的特點:解決了IETF的UDP封裝方案在處理多用戶接入時的問題,并不產(chǎn)生額外的硬件部署要求;性能上與IETF提出的UDP封裝方案一致,比國內(nèi)的UDP封裝的改進(jìn)方案在性能、資金投入和部署方面更為優(yōu)越。
封裝方案的不足:目前沒有實現(xiàn)此方法的軟件系統(tǒng),所以需要修改現(xiàn)有系統(tǒng)的源代碼。
將本方案與已有的IPSec和NAT兼容性方案進(jìn)行比較,結(jié)果如表1所示:
表1 IPSec和NAT兼容性方案比較
如上表所示,RSIP的實施無須對現(xiàn)有的IPSec實現(xiàn)進(jìn)行修改,從對IPSec的支持角度來說,所以RSIP比UDP封裝法更為優(yōu)越。然而,從易操作性、費用成本和向后兼容性來看,UDP封裝方案似乎是最佳選擇。在UDP方案中,傳統(tǒng)的UDP方案沒有解決重疊SPD問題,即提供多用戶接入時的細(xì)粒度安全服務(wù),UDP改進(jìn)方案雖然解決了這個問題,但需要額外的硬件投入,同時系統(tǒng)性能也在下降。
基于X.509證書的UDP封裝方案具有以下特點:
1)綜合傳統(tǒng)UDP封裝方案和UDP改進(jìn)方案的優(yōu)點,避免兩者在多用戶接入問題的不足。
2)可部署性好。基于X.509證書的UDP封裝穿越NAT方案比由IPv4升級到IPv6要更加簡單,更容易在短時期內(nèi)實現(xiàn)。由于不需要對現(xiàn)有NAT設(shè)備進(jìn)行重新部署,所需費用較低。
3)使用X.509技術(shù)來實現(xiàn)VPN中的身份安全認(rèn)證,安全性較已有兼容性方案有所提高。
4)遠(yuǎn)程訪問的支持度好??梢灾С忠苿佑脩粢訧PSec隧道模式安全地連接目標(biāo)網(wǎng)絡(luò)并實現(xiàn)NAT穿越。
5)具有良好的擴(kuò)展性,可以部署在大規(guī)模遠(yuǎn)程訪問的環(huán)境中。
6)互操作性好。基于X.509證書的UDP封裝穿越NAT方案可以和現(xiàn)有的IPSec實現(xiàn)互操作,并可以達(dá)到向后兼容性的要求。
7)防火墻的兼容性好。網(wǎng)絡(luò)管理員只需要在防火墻原有配置的基礎(chǔ)上打開500和4500端口就可以對穿越NAT的IPSec數(shù)據(jù)流給予支持。
[1]祝之梅,李之棠.NAT與IPSec協(xié)議兼容性問題及解決方案[J].計算機(jī)應(yīng)用,2004,24(3).
[2]歐陽星明,朱尚文.IPSec與NAT的沖突問題及其解決方案研究[J].華中科技大學(xué)學(xué)報.2005,33(2).
[3]M.Borella,J.Lo.RFC 3102.October 2001.Realm Specific IP:Framework.IETF.
[4]M.Borella,D.Grabelsky,J.Lo,K.Taniguchi.RFC3103. October 2001. Realm Specific IP:Protocol Specification.IETF.
[5]G.Montenegro, M.Borella.RFC 3104.October 2001.RSIP Support for End-to-end IPsec.IETF.
[6]B.Aboba,W.Dixon.RFC 3715. March 2004. IPsec Network Address Translation(NAT)Compatibility Requirements.IETF.
[7]A. Huttunen, B.Swander,V.Volpe.RFC 3948. January 2005.UDP Encapsulation of IPsec ESP Packets.IETF.
[8]R.Housley,W.Polk.RFC 2528. March 1999.Internet X.509 Public Key Infrastructure.IETF.
[9]潘登,徐佩霞.一種新的IPSec穿越NAT方案[J].小型微型計算機(jī)系統(tǒng),2005,26(2).
[10]魏臻,楊海潮.一種改進(jìn)的IPSec穿越NAT方案[J].計算機(jī)技術(shù)與發(fā)展,2006,16(8).
[11]陳熊貴,曹珍富,郭圣.IPSec穿越NAT多用戶的一種實現(xiàn)方案[J].計算機(jī)工程,2006,32(20).
Analysis and improvement of compatibility of IPSec with NAT
FAN Zi-niu1, XIANG Hong2, CHEN Jian-guo1, LI Xiao-tong1
通過對目前多種IPSec與NAT兼容性方案的研究與分析,提出了用X.509證書來進(jìn)行身份認(rèn)證的IPSec與NAT兼容性方案。在保持靈活設(shè)置安全策略能力和進(jìn)一步提高安全性的前提下,能很好地解決多用戶接入的并發(fā)性問題。
IPSec;NAT;X.509;SPD
樊子牛(1972-),云南昆明人,網(wǎng)絡(luò)工程師,碩士,研究方向為教育技術(shù)輔助外語教學(xué)、雙語教學(xué)、網(wǎng)絡(luò)技術(shù)。
TP391
B
1009-0134(2010)06-0104-04
10.3969/j.issn.1009-0134.2010.06.35
2010-03-30