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