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