IPSec與NAT兼容性研究論文
時間:2022-03-17 05:30:00
導(dǎo)語:IPSec與NAT兼容性研究論文一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù)(NAT)與ipsec在因特網(wǎng)上都是得到廣泛應(yīng)用的技術(shù),但是它們之間卻是不兼容的。該文首先分別介紹了nat和IPSec兩種協(xié)議的基本原理,分析了兩者的不兼容性,然后討論了解決該問題必須滿足的要求,最后給出了利用UDP封裝法實(shí)現(xiàn)NAT透明穿透的解決方案。關(guān)鍵詞IPSec;NAT;IKE;UDP封裝1引言基于IP技術(shù)的虛擬專用網(wǎng)(VirtualProfessionalNetwork,簡稱VPN)是通過Internet平臺將局域網(wǎng)擴(kuò)展到遠(yuǎn)程網(wǎng)絡(luò)和遠(yuǎn)程計算機(jī)用戶的一種成本效益極佳的方法。隨著網(wǎng)絡(luò)安全技術(shù)的飛快發(fā)展,越來越多大型企業(yè)利用互聯(lián)網(wǎng)采用IPSec技術(shù)建立VPN網(wǎng)絡(luò),IPSec已逐漸成為VPN構(gòu)建的主流技術(shù)。IP安全協(xié)議(IPSecurityProtocol,簡稱IPSec)是由互聯(lián)網(wǎng)工程工業(yè)組(InternetEngineeringTaskForce,簡稱IETF)1998年底規(guī)劃并制定的網(wǎng)絡(luò)IP層標(biāo)準(zhǔn)。IPSec不僅可以為IP協(xié)議層以上所有的高層協(xié)議和應(yīng)用提供一致性的安全保護(hù),而且除了可用于IPv4之外,也可用于下一代IP協(xié)議IPv6。另外,NAT(NetworkAddressTranslation)技術(shù)通過改變進(jìn)出內(nèi)部網(wǎng)絡(luò)的IP數(shù)據(jù)包的源和目的地址,把無效的內(nèi)部網(wǎng)絡(luò)地址翻譯成合法的IP地址在Internet上使用。該技術(shù)一方面可以把私有IP地址隱藏起來,使外界無法直接訪問內(nèi)部網(wǎng)絡(luò),對內(nèi)部網(wǎng)絡(luò)起到保護(hù)作用;另一方面,它可以緩解由于IPv4先天設(shè)計上的不足,而導(dǎo)致的IP地址嚴(yán)重短缺的現(xiàn)狀。但是,被廣泛使用的網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)設(shè)備卻制約著基于IPSec技術(shù)的VPN的發(fā)展,這是因?yàn)镮PSec協(xié)議在VPN中承擔(dān)保護(hù)傳輸數(shù)據(jù)的安全性任務(wù)。在數(shù)據(jù)傳輸過程中,任何對IP地址及傳輸標(biāo)志符的修改,都被視作對該協(xié)議的違背,并導(dǎo)致數(shù)據(jù)包不能通過安全檢查而被丟棄。但在VPN中運(yùn)用NAT技術(shù),則不可避免地要將私網(wǎng)地址映射為公網(wǎng)地址,即對IP地址要進(jìn)行修改。因此,在VPN網(wǎng)絡(luò)中如何使IPSec和NAT協(xié)同工作,實(shí)現(xiàn)NAT的透明穿透具有現(xiàn)實(shí)意義。2協(xié)議介紹2.1IPSecIPSec包括安全協(xié)議和密鑰管理兩部分。其中,AH和ESP是兩個安全協(xié)議,提供數(shù)據(jù)源驗(yàn)證、面向無連接的數(shù)據(jù)完整性、抗重放、數(shù)據(jù)機(jī)密性和有限抗流量分析等安全任務(wù)。為了能夠?qū)⑾鄳?yīng)的安全服務(wù)、算法和密鑰應(yīng)用于需要保護(hù)的安全通道,IPSec規(guī)定兩個通信實(shí)體進(jìn)行IPSec通信之前首先構(gòu)建安全關(guān)聯(lián)SA。SA規(guī)定了通信實(shí)體雙方所需要的具體安全協(xié)議、加密算法、認(rèn)證算法以及密鑰。IKE提供了用來協(xié)商、交換和更新SA以及密鑰的完整機(jī)制。IPSec定義了兩種類型的封裝模式——傳輸模式和隧道模式。傳輸模式只對IP分組應(yīng)用IPSec協(xié)議,對IP報頭不進(jìn)行任何修改,它只能應(yīng)用于主機(jī)對主機(jī)的IPSec虛擬專用網(wǎng)VPN中。隧道模式中IPSec將原有的IP分組封裝成帶有新的IP報頭的IPSec分組,這樣原有的IP分組就被有效地隱藏起來了。隧道主要應(yīng)用于主機(jī)到網(wǎng)關(guān)的遠(yuǎn)程接入的情況。2.2NATNAT能解決目前IP地址緊缺的問題,而且能使得內(nèi)外網(wǎng)絡(luò)隔離,提供一定的網(wǎng)絡(luò)安全保障。它解決問題的辦法是:在內(nèi)部網(wǎng)絡(luò)中使用內(nèi)部地址,通過NAT把內(nèi)部地址翻譯成合法的IP地址在Internet上使用,其具體的做法是把IP包內(nèi)的地址或用合法的IP地址來替換。NAT功能通常被集成到路由器、防火墻、ISDN路由器或者單獨(dú)的NAT設(shè)備中。NAT有三種類型:靜態(tài)NAT、動態(tài)地址NAT、網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT。其中靜態(tài)NAT設(shè)置起來最為簡單,內(nèi)部網(wǎng)絡(luò)中的每個主機(jī)都被永久映射成外部網(wǎng)絡(luò)中的某個合法的地址。而動態(tài)地址NAT則是在外部網(wǎng)絡(luò)中定義了一系列的合法地址,采用動態(tài)分配的方法映射到內(nèi)部網(wǎng)絡(luò)。NAPT則是把內(nèi)部地址映射到外部網(wǎng)絡(luò)的一個IP地址的不同端口上。根據(jù)不同的需要,三種NAT方案各有利弊。3IPSec與NAT的不兼容性分析根據(jù)協(xié)議的定義,我們知道IPSec和NAT兩個協(xié)議之間存在一定的不兼容性。其不兼容性主要有以下幾種形式:1)NAT對AH的影響IPSecAH進(jìn)行驗(yàn)證的時候,處理的是整個IP包,包括源地址和目的地址。如果IPSec通信雙方存在NAT設(shè)備,NAT設(shè)備就會修改外層IP包頭的源地址并修改其校驗(yàn)和,這樣接收方會因認(rèn)證失敗而丟棄該包。2)NAT對ESP的影響TCP/UDP校驗(yàn)和地計算涉及一個虛構(gòu)的IP包頭,該包頭含有IP源和目的地址。因此,當(dāng)NAT設(shè)備改變IP地址時也需要更新IP頭和TCP/UDP校驗(yàn)和。如果采用ESP傳輸模式,IP包經(jīng)過NAT設(shè)備時,NAT設(shè)備修改了IP包頭,但是TCP/UDP校驗(yàn)和由于處于加密負(fù)載中而無法被修改。這樣,該信包經(jīng)過IPSec層后將因?yàn)門CP協(xié)議層的校驗(yàn)和的錯誤而被丟棄。另外,由于TCP/UDP校驗(yàn)和只與內(nèi)層原始IP包頭有關(guān),外層IP包頭的修改并不對其造成影響,因此采用ESP隧道模式和僅靜態(tài)或動態(tài)NAT的情況下不存在TCP校驗(yàn)和的問題。但是,在NAPT情況下,因?yàn)镹APT需要TCP/UDP端口來匹配出入信包,而端口號受到ESP加密保護(hù),所以ESP分組通信將會失敗。3)NAT對IKE的影響IKE主模式與快速模式中如果使用IP地址作為身份信息,經(jīng)過NAT后,會導(dǎo)致IKE協(xié)商的失敗。IKE協(xié)議使用固定目的端口500,當(dāng)NAPT設(shè)備后的多個主機(jī)向同一響應(yīng)者發(fā)起SA協(xié)商時,為了實(shí)現(xiàn)多路分發(fā)返回的IKE包,NAPT修改外出的IKE包的UDP源端口。因此,響應(yīng)者應(yīng)該能處理端口號并非500的IKE協(xié)商請求,但往往NAPT對UDP端口的映射很快會被刪除,再協(xié)商的過程就將出現(xiàn)一些不可預(yù)見的問題,很容易導(dǎo)致NAPT設(shè)備無法將協(xié)商包送到正確的目的地。綜上所述,IPSec組件的支持能力從表1中可以看出,只有在隧道模式和地址轉(zhuǎn)換情況下才可以實(shí)現(xiàn)IPSec數(shù)據(jù)流的NAT穿越。這一方法既降低了IPSec協(xié)議的安全性,又限制了NAT的工作方式,因此在實(shí)際應(yīng)用中可行度較差。4IPSec與NAT的兼容性要求在現(xiàn)有的條件下,為了推動基于IPSec的VPN的發(fā)展,IPSec和NAT兼容性解決方案需要滿足下列要求:1)可部署性IPSec和NAT兼容性解決方案作為一個過渡的解決辦法必須比IPv6易于部署。應(yīng)該只需修改主機(jī),無需改變路由器,在短時間內(nèi)能與現(xiàn)存的路由器和NAT產(chǎn)品協(xié)同工作。2)遠(yuǎn)程訪問IPSec的一個重要應(yīng)用是遠(yuǎn)程訪問公司的內(nèi)部網(wǎng)絡(luò)。NAT穿越方案必須考慮遠(yuǎn)程客戶端與VPN網(wǎng)關(guān)之間存在多個NAT的情況。3)防火墻兼容性IPSec和NAT兼容性方案應(yīng)該避免對IKE或IPSec目的端口的動態(tài)分配,使防火墻管理員進(jìn)行簡單的配置,就可以控制穿越NAT的IPSec數(shù)據(jù)流。4)可擴(kuò)展性IPSec和NAT兼容性方案應(yīng)具有良好的擴(kuò)展性,必須保證在大規(guī)模遠(yuǎn)程訪問的環(huán)境中,在大量遠(yuǎn)程接入的環(huán)境下,同一時間段多個主機(jī)和遠(yuǎn)程安全網(wǎng)關(guān)建立連接。5)后向兼容性IPSec和NAT兼容性方案中必須能與已有的IPSec實(shí)現(xiàn)互操作。穿越方案應(yīng)該能自動檢測是否存在NAT,能判斷通信對方的IKE實(shí)現(xiàn)是否支持NAT穿越。6)安全性IPSec和NAT兼容性解決方案的引入必須保證不得帶來新的安全漏洞。5利用UDP封裝法實(shí)現(xiàn)NAT的穿透本文中的解決方案是采用UDP封裝法實(shí)現(xiàn)NAT的透明穿透,不需要修改現(xiàn)有的NAT網(wǎng)關(guān)和路由器。所以該方案具有簡單且易于實(shí)現(xiàn)的優(yōu)點(diǎn),缺點(diǎn)是由于添加了一個UDP報文頭,而加大了帶寬開銷,但相對于目前持續(xù)擴(kuò)大的傳輸帶寬來說,這個UDP報文頭的帶寬開銷可以忽略不計。下面詳細(xì)討論其原理和實(shí)現(xiàn)過程。5.1封裝格式UDP封裝法是在原有的IP包的IP頭和AH/ESP的數(shù)據(jù)之間再封裝一個UDP頭,這樣封裝后的數(shù)據(jù)包端口值對NAT可見,就可以正確的實(shí)現(xiàn)端口轉(zhuǎn)換。UDP封裝格式如圖1所示。端口,為了簡化配置和避免多個端口帶來的安全隱患,UDP封裝的ESP也使用該端口。這樣就需要采取一定的方法來區(qū)分端口500的數(shù)據(jù)包是IKE消息還是UDP封裝的ESP。為了區(qū)分兩者,我們采用在IKE報頭添加Non-ESP標(biāo)記。在確定存在一個中間NAT之后,支持IPSecNAT-T的對話方開始使用新的IKE報頭。5.2IKE協(xié)商過程IPSec通信實(shí)體雙方是否采用UDP封裝取決于對話對方是否支持該方法以及是否存在NAT設(shè)備,這個過程通過IKE協(xié)商來完成。在IKE協(xié)商過程中增添了新的NAT-D和NAT-OA有效載荷和以及UDP通道類型。1)新的NAT-Discovery(NAT-D)有效載荷這個新的有效載荷包含一個散列值,它整合了一個地址和端口號。在主模式協(xié)商期間,即IKE協(xié)商第一階段第三、四條消息中,IPSec對話方包括兩個NAT-Discovery有效載荷——一個用于目標(biāo)地址和端口,另一個用于源地址和端口。接收方使用NAT-Discovery有效載荷來發(fā)現(xiàn)NAT之后是否存在一個經(jīng)NAT轉(zhuǎn)換過的地址或端口號,并基于被改變的地址和端口號來確定是否有對話方位于NAT之后。2)新的NAT-OriginalAddress(NAT-OA)有效載荷:這個新的有效載荷包含IPSec對話方的原始地址。對于UDP封裝的ESP傳輸模式,每個對話方在快速模式協(xié)商期間發(fā)送NAT-OA有效載荷。接收方將這個地址存儲在用于SA的參數(shù)中。3)用于UDP封裝的ESP傳輸模式和隧道模式的新的封裝模式這兩種新的封裝模式是在快速模式協(xié)商期間指定的,用于通知IPSec對話方應(yīng)該對ESP使用UDP封裝。5.3地址通告和Keepalive包由于用UDP來封裝IPSec分組的思想只解決了NAPT設(shè)備不支持AH和ESP通信的問題。例如TCP校驗(yàn)和錯誤、UDP端口映射的保持等問題還需要輔助方法來解決。為保證校驗(yàn)和正確無誤,通信雙方需將自身的原始IP地址和端口發(fā)送給對方,即實(shí)現(xiàn)地址通告。地址通告的實(shí)現(xiàn)通過IKE第二階段的前兩條消息中的NAT-OA有效載荷。因?yàn)镹AT-OA有效載荷中包含IPSec對話方的原始地址,為此,接收方就擁有了檢驗(yàn)解密之后的上層校驗(yàn)和所需的信息。消息發(fā)起者在NAT中創(chuàng)建了一個UDP端口映射,它在初始主模式和快速模式IKE協(xié)商期間使用。然而,NAT中的UDP映射通常超過一定時間沒用就會被刪除掉。如果響應(yīng)者隨后向發(fā)起者發(fā)送IKE消息卻沒有提供UDP端口映射,那么這些消息將被NAT丟棄。這個問題的解決辦法是通過定期發(fā)送Keepalive包,用于后續(xù)IKE協(xié)商和UDP封裝的ESP的UDP端口映射同時在NAT中得到刷新,從而保證通信的正常運(yùn)行。6結(jié)束語IPSec作為網(wǎng)絡(luò)層的安全協(xié)議,目前的應(yīng)用越來越廣泛,已成為構(gòu)建VPN的基礎(chǔ)協(xié)議之一。而由于IPv6取代IPv4將是一個漫長的過程,NAT設(shè)備的廣泛存在極大地限制了IP層安全協(xié)議IPSec的推廣,因此在目前的條件下,UDP封裝方法無疑是一種在當(dāng)前環(huán)境下無需修改NAT網(wǎng)關(guān)和路由器、簡單可接受的解決IPSec和NAT兼容性的方法,具有一定的現(xiàn)實(shí)意義。但是該方案還不完善,有待進(jìn)一步討論和研究。參考文獻(xiàn)[1]RFC3022-2001.TraditionalIPnetworkaddresstranslator(TraditionalNAT)[S].[2]RFC2401-1998.SecurityArchitectureoftheInternetProtocol[S].[3]RFC2402-1998.IPAuthenticationHeader[S].[4]RFC2406-1998.IPEncapsulatingSecurityPayload(ESP)[S].[5]RFC2409-1998.TheInternetKeyExchange(IKE)[S].[6]RFC3103-2001.RealmSpecificIPProtocolSpecification[S].[7]AbobaB,WilliamDixon.IPSec-NATcompatibilityrequirements[Z].Internetdraft,draft-ietf-ipsec-nat-reqtstxt,2001[8]AriHuttunen.UDPencapsulateofIPSecpackets[Z].Internetdraft,draft-ietf-ipsec-udp-encapstxt,2001.[9]KivirenT.NegotiationofNAT-traversalintheIKE[Z].Internetdraft,draft-ietf-ipsec-udp-iketxt,2001
- 上一篇:FC和iSCSI協(xié)議分析比較論文
- 下一篇:市企業(yè)工資清算工作通知