專利名稱:網(wǎng)絡(luò)層安全報(bào)文穿越地址變換設(shè)備的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)層安全(IPSec)技術(shù)領(lǐng)域,特別是指一種IPSec報(bào)文穿越網(wǎng)絡(luò)地址變換(NAT)設(shè)備的方法。
背景技術(shù):
IPSec是Internet Protocol Security的縮寫,它是為IPv4和IPv6協(xié)議提供基于加密安全的協(xié)議。IPSec它使用AH和ESP協(xié)議來實(shí)現(xiàn)其安全,使用ISAKMP/Oakley及SKIP進(jìn)行密鑰交換、管理及安全協(xié)商(SecurityAssociation)。
IPSec包括兩個(gè)子協(xié)議,分別是認(rèn)證頭(AH)協(xié)議和安全載荷封裝(ESP)協(xié)議。AH協(xié)議完成對(duì)通信報(bào)文的完整性保護(hù),即保證通信報(bào)文在傳送過程中不被第三方篡改,一旦被認(rèn)證保護(hù)的報(bào)文被篡改,接收方判斷重新計(jì)算報(bào)文的鑒別字(需要密鑰)與認(rèn)證頭中的鑒別字將無法匹配,從而丟棄報(bào)文;ESP協(xié)議在提供對(duì)通信報(bào)文完整性保護(hù)的同時(shí),提供加密保護(hù)。
參見圖1和2所示,ESP協(xié)議和AH協(xié)議對(duì)報(bào)文的完整性保護(hù)的范圍不同。AH協(xié)議報(bào)文的封裝格式包括原始IP地址頭(Orig IP Hdr)、驗(yàn)證頭(AH)、TCP/UDP端口號(hào)以及數(shù)據(jù)包(Data)。AH的完整性保護(hù)范圍是整個(gè)IP報(bào)文,包括IP地址頭和端口號(hào)。ESP協(xié)議報(bào)文的封裝格式包括原始IP地址頭、ESP協(xié)議頭、TCP/UDP端口號(hào)、數(shù)據(jù)包、ESP填充部分(ESP trlr)以及ESP認(rèn)證部分。ESP協(xié)議完整性保護(hù)的范圍是ESP頭、TCP/UDP端口號(hào)、數(shù)據(jù)包以及ESP填充部分,但不包括IP地址頭和尾部的ESP認(rèn)證部分。
當(dāng)設(shè)備A和設(shè)備B通信,并且采用IPSec保護(hù)時(shí),由于IPSec AH和ESP協(xié)議都將報(bào)文的端口號(hào)作為保護(hù)范圍,AH同時(shí)保護(hù)IP地址,因此,如果設(shè)備A和設(shè)備B中間沒有NAT設(shè)備,是沒有問題的。但當(dāng)設(shè)備A和設(shè)備B中間加入NAT設(shè)備時(shí),由于NAT設(shè)備會(huì)改變報(bào)文的IP地址或端口號(hào),因此導(dǎo)致設(shè)備接收端在對(duì)報(bào)文進(jìn)行完整性鑒別時(shí),重新計(jì)算出報(bào)文的鑒別字與報(bào)文中攜帶的鑒別字不匹配,結(jié)果將報(bào)文丟棄。
目前,在下一代網(wǎng)絡(luò)(NGN)及IP多媒體子系統(tǒng)(IMS)等各種基于分組網(wǎng)的業(yè)務(wù)網(wǎng)絡(luò)安全架構(gòu)中,IPSec成為一種常用的安全技術(shù),但是由于IP地址的缺乏,在分組承載網(wǎng)絡(luò)中部署了大量的NAT設(shè)備。從上述IPSec完整性保護(hù)方案中可知,報(bào)文在經(jīng)過NAT設(shè)備時(shí),NAT設(shè)備對(duì)報(bào)文的IP頭進(jìn)行地址或端口變換,最終導(dǎo)致接收方在收到報(bào)文后,對(duì)報(bào)文進(jìn)行完整性校驗(yàn)失敗而將報(bào)文丟棄,使得IPSec無法在實(shí)際網(wǎng)絡(luò)中得到有效的應(yīng)用。
為解決上述問題,可以采用IETF中的三個(gè)RFC,一個(gè)是RFC3715(IPsec-Network Address Translation(NAT) Compatibility Requirements),一個(gè)是RFC3947(Negotiation of NAT-Traversal in the IKE),另一個(gè)是RFC3948(UDP Encapsulation of IPsec ESP Packets)。這三個(gè)RFC相互配合,實(shí)現(xiàn)IPSec ESP的NAT穿越,第一個(gè)RFC描述IPSec穿越NAT的需求,第二個(gè)RFC描述用于IPSec協(xié)商SA的IKE(internet key exchange-internet密鑰交換協(xié)議)對(duì)NAT穿越的支持,第三個(gè)描述如何通過IPSec ESP的UDP封裝來穿越NAT。
參見圖3所示,IPSec ESP的UDP封裝格式包括原始IP地址頭、UDP協(xié)議頭、ESP協(xié)議頭、TCP/UDP端口號(hào)、數(shù)據(jù)包、ESP填充部分以及ESP認(rèn)證部分。
IPSec UDP封裝穿越NAT的基本原理如下IPSec通常采用IKE來進(jìn)行密鑰協(xié)商,對(duì)IKE進(jìn)行升級(jí)支持NAT轉(zhuǎn)換時(shí)的轉(zhuǎn)換端口協(xié)商,IPSec ESP封裝的UDP頭中的源端口號(hào)和目的端口號(hào)與IKE協(xié)商時(shí)采用的源/目的端口號(hào)一致,使得封裝后的IPSec ESP報(bào)文在穿越NAT時(shí),NAT變換的IP地址和端口號(hào)與IKE協(xié)商時(shí)的一致,報(bào)文接收端能通過和IKE協(xié)商時(shí)的報(bào)文IP頭比較來確認(rèn)對(duì)端是與IKE協(xié)商時(shí)的對(duì)端是一致的,同時(shí)對(duì)ESP封裝的認(rèn)證和加密數(shù)據(jù)沒有影響,來完成對(duì)NAT的穿越,同時(shí)為防止NAT設(shè)備上NAT表項(xiàng)的老化,保證后續(xù)通信報(bào)文也能穿越NAT設(shè)備,定期發(fā)送NAT表項(xiàng)?;顖?bào)文(keep alive packet),確保NAT設(shè)備上的NAT表項(xiàng)不給老化,NAT保活報(bào)文的地址和端口號(hào)與IKE報(bào)文和IPSec ESP的UDP封裝報(bào)文的IP報(bào)文頭都是一致的。
上述采用UDP封裝穿越NAT的方案,要求通信設(shè)備采用支持NAT穿越的IKE版本(相當(dāng)于IKEv2),而且密鑰協(xié)商或安全聯(lián)盟建立必須通過IKE來完成,不支持手工配置方式來建立安全聯(lián)盟,或其它應(yīng)用層的安全聯(lián)盟建立方式,如3GPP規(guī)范中定義的IMS AKA安全聯(lián)盟建立方式。并且,該方法實(shí)現(xiàn)過于復(fù)雜,要求通信設(shè)備雙方定期發(fā)送NAT?;顖?bào)文,確保NAT設(shè)備上的NAT表項(xiàng)不被老化,當(dāng)NAT設(shè)備一旦故障重起或異常時(shí),安全聯(lián)盟必須重新協(xié)商建立。并且該方法只支持IPSec ESP協(xié)議,還不支持IPSec AH的NAT穿越。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種IPSec報(bào)文穿越NAT設(shè)備的方法,該方法能不要求采用支持NAT穿越的IKE版本,就能使IPSec報(bào)文穿越后能通過完整性驗(yàn)證。
為了達(dá)到上述目的,本發(fā)明提供了一種IPSec報(bào)文穿越NAT設(shè)備的方法,應(yīng)用于發(fā)送端通過地址變換NAT設(shè)備向接收端發(fā)送網(wǎng)絡(luò)層安全I(xiàn)P Sec報(bào)文的過程中,該方法包含A.在發(fā)送端,利用預(yù)先設(shè)置的固定值作為IP Sec報(bào)文中IP地址/端口號(hào)計(jì)算完整性驗(yàn)證字;B.在接收端,利用所述固定值作為接收到的IP Sec報(bào)文中IP地址/端口號(hào)計(jì)算完整性驗(yàn)證字。
所述固定值為預(yù)先配置在發(fā)送端和接收端的,或在發(fā)送IP Sec報(bào)文前的安全聯(lián)盟建立過程中協(xié)商,并保存在發(fā)送端和接收端的。
所述安全聯(lián)盟采用IKE方式,或手工配置方式,或應(yīng)用層協(xié)商等其它方式。
所述發(fā)送端采用IPSec傳輸模式或隧道模式發(fā)送IP Sec報(bào)文。
所述發(fā)送端采用IPSec AH或ESP協(xié)議封裝IP Sec報(bào)文。
所述IP地址采用IPv4或IPv6格式。
通過上述方案可知,本發(fā)明具有如下優(yōu)點(diǎn)和特點(diǎn)(1)本發(fā)明實(shí)現(xiàn)簡單,對(duì)現(xiàn)有的設(shè)備和網(wǎng)絡(luò)影響小。
(2)本發(fā)明可以支持多種協(xié)議的IPSec報(bào)文,如IPSec AH和ESP協(xié)議,以及采用多種方式傳輸,如傳輸模式和隧道模式。而且,本發(fā)明還可以支持多種配置方式,包括手工配置、IKE協(xié)商或應(yīng)用層的協(xié)商等其它方式來建立IPSec的安全聯(lián)盟等。
(3)本發(fā)明應(yīng)用廣泛,該方法可以應(yīng)用在所有通信系統(tǒng)中,如NGN、IMS等,解決IPSec在實(shí)際網(wǎng)絡(luò)中由于NAT變換帶來IPSec應(yīng)用問題。
圖1為IPSec報(bào)文AH封裝格式示意圖;圖2為IPSec報(bào)文ESP封裝格式示意圖;圖3為IPSec ESP的UDP封裝格式示意圖;圖4為實(shí)現(xiàn)本發(fā)明方法的流程示意圖;圖5為本發(fā)明計(jì)算報(bào)文驗(yàn)證字時(shí)IPSec報(bào)文中參數(shù)的取值。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
本發(fā)明的核心思想是在發(fā)送端通過地址變換NAT設(shè)備向接收端發(fā)送IP Sec報(bào)文的過程中,發(fā)送端利用預(yù)先設(shè)置的固定值作為IP Sec報(bào)文中IP地址/端口號(hào)計(jì)算完整性驗(yàn)證字,同樣,接收端也利用與發(fā)送端一樣的固定值作為接收到的IP Sec報(bào)文中IP地址/端口號(hào)計(jì)算完整性驗(yàn)證字。
參見圖4所示,實(shí)現(xiàn)本發(fā)明的方法包括以下步驟步驟401在發(fā)送端,利用預(yù)先設(shè)置的固定值作為IPSec報(bào)文中IP地址/端口號(hào)計(jì)算完整性驗(yàn)證字;步驟402在接收端,利用所述固定值作為接收到的IP Sec報(bào)文中IP地址/端口號(hào)計(jì)算完整性驗(yàn)證字。
在本發(fā)明中,可以在發(fā)送端和接收端預(yù)先配置固定值作為完整性驗(yàn)證字時(shí)所使用的IP地址/端口號(hào),也可以通過安全聯(lián)盟建立過程中協(xié)商某個(gè)固定值作為完整性驗(yàn)證字時(shí)所使用的IP地址/端口號(hào)。而且,可以采用IKE方式、手工配置方式或應(yīng)用層協(xié)商方式建立安全聯(lián)盟。
本發(fā)明中發(fā)送端可以采用IPSec傳輸模式或隧道模式向接收端發(fā)送IP Sec報(bào)文,可以采用IPSec AH或ESP協(xié)議封裝IP Sec報(bào)文。并且,IPSec報(bào)文中的IP地址格式可以采用IPv4或IPv6格式。
并且,在實(shí)際應(yīng)用過程中,可以將所有發(fā)送端和接收端中配置相同的固定值,也可以在發(fā)送端和接收端通信之前建立安全聯(lián)盟中協(xié)商兩者所使用的固定值。
下面以采用IPSec傳輸模式為例說明本發(fā)明的技術(shù)方案。
例如通信設(shè)備A通過NAT設(shè)備向通信設(shè)備B發(fā)送IPSec報(bào)文,該報(bào)文采用AH封裝格式,參見圖3所示。
由于通信設(shè)備A需要利用報(bào)文中的部分內(nèi)容和預(yù)先協(xié)商好的密鑰輸入HMAC算法,計(jì)算出消息驗(yàn)證字(MAC)。而且,報(bào)文中的部分內(nèi)容包括IP地址/端口號(hào),而這里通信設(shè)備A將預(yù)先設(shè)置的一個(gè)固定值作為IP地址/端口號(hào)計(jì)算出MAC。
該固定值既可以為一個(gè)在規(guī)范中定義的缺省值,如設(shè)置為全0x00或全0xFF,作為一種事實(shí)標(biāo)準(zhǔn)在實(shí)現(xiàn)支持IPSec的設(shè)備上應(yīng)用,或者在密鑰協(xié)商過程中建立安全聯(lián)盟時(shí),作為安全聯(lián)盟的一項(xiàng)參數(shù)指定,這樣可以在安全聯(lián)盟建立過程中動(dòng)態(tài)設(shè)定該值。
由于IPSec報(bào)文經(jīng)過NAT設(shè)備地址轉(zhuǎn)換后,IPSec報(bào)文的IP地址/端口號(hào)已經(jīng)被更改,因此,通信設(shè)備B接收到IPSec報(bào)文后,也需要利用預(yù)先配置的固定值作為計(jì)算MAC的IP地址/端口號(hào),并且算法與發(fā)送端一致。此時(shí),接收端再比較自己計(jì)算出的MAC值和發(fā)送端計(jì)算出的MAC值是一樣的,因此完整性驗(yàn)證通過,從而保證IPSec報(bào)文在經(jīng)過NAT變換后,不會(huì)因IP地址或端口號(hào)的變化導(dǎo)致驗(yàn)證失敗而被丟棄。
參見圖5所示,當(dāng)采用IPSec ESP協(xié)議時(shí),即采用ESP格式,由于ESP封裝格式的IPsec完整性的保護(hù)范圍中不包括IP頭,因此,在發(fā)送端和接收端只需要將端口號(hào)設(shè)置為一個(gè)固定值,即可保證兩端計(jì)算出的MAC值一致。
另外,對(duì)于IPSec ESP協(xié)議的加密保護(hù),由于經(jīng)過NAT變換后,可能端口號(hào)發(fā)生了變化,無法獲得原始報(bào)文的源端口號(hào),這是本方案無法解決的問題。但這一問題在大多數(shù)應(yīng)用中是微不足道的,或者說是可以不用關(guān)心的,因?yàn)楸M管源端口號(hào)發(fā)生了變化,報(bào)文中攜帶的有效數(shù)據(jù)Data部分仍然能被有效的還原,并不會(huì)影響設(shè)備間的有效通信。
另外,對(duì)于安全保護(hù)中的源認(rèn)證問題(IPSec協(xié)議中AH具有源認(rèn)證功能,ESP沒有該功能),即對(duì)報(bào)文的發(fā)源地進(jìn)行認(rèn)證,如對(duì)IP地址的認(rèn)證,本發(fā)明方案IP地址中如果采用在安全協(xié)商中獲得的值來計(jì)算報(bào)文驗(yàn)證字,也能解決源認(rèn)證問題,此時(shí),需要通過對(duì)應(yīng)用層數(shù)據(jù)報(bào)文的驗(yàn)證(基于密鑰的驗(yàn)證)和報(bào)文中的時(shí)間戳(防重放攻擊)的配合來一起完成對(duì)用戶的源認(rèn)證功能。
總之,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種保證網(wǎng)絡(luò)層安全報(bào)文穿越地址變換設(shè)備的方法,應(yīng)用于發(fā)送端通過地址變換NAT設(shè)備向接收端發(fā)送網(wǎng)絡(luò)層安全I(xiàn)P Sec報(bào)文的過程中,其特征在于該方法包括以下步驟A.在發(fā)送端,利用預(yù)先設(shè)置的固定值作為IP Sec報(bào)文中IP地址/端口號(hào)計(jì)算完整性驗(yàn)證字;B.在接收端,利用所述固定值作為接收到的IP Sec報(bào)文中IP地址/端口號(hào)計(jì)算完整性驗(yàn)證字。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述固定值為預(yù)先配置在發(fā)送端和接收端的,或在發(fā)送IP Sec報(bào)文前的安全聯(lián)盟建立過程中協(xié)商,并保存在發(fā)送端和接收端的。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述安全聯(lián)盟采用IKE方式,或手工配置方式,或應(yīng)用層協(xié)商方式。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述發(fā)送端采用IPSec傳輸模式或隧道模式發(fā)送IP Sec報(bào)文。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述發(fā)送端采用IPSec AH或ESP協(xié)議封裝IP Sec報(bào)文。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述IP地址采用IPv4或IPv6格式。
全文摘要
本發(fā)明公開了一種保證網(wǎng)絡(luò)層安全報(bào)文穿越地址變換設(shè)備的方法,應(yīng)用于發(fā)送端通過地址變換NAT設(shè)備向接收端發(fā)送網(wǎng)絡(luò)層安全I(xiàn)P Sec報(bào)文的過程中,該方法包括A.在發(fā)送端,利用預(yù)先設(shè)置的固定值作為IP Sec報(bào)文中IP地址/端口號(hào)計(jì)算完整性驗(yàn)證字;B.在接收端,利用所述固定值作為接收到的IP Sec報(bào)文中IP地址/端口號(hào)計(jì)算完整性驗(yàn)證字。本發(fā)明可以解決IPSec報(bào)文通過NAT設(shè)備時(shí)由于NAT變換帶來IPSec應(yīng)用問題,而且實(shí)現(xiàn)簡單,對(duì)現(xiàn)有的設(shè)備和網(wǎng)絡(luò)影響小,應(yīng)用廣泛,可以應(yīng)用在所有通信系統(tǒng)中,支持多種方式,包括手工配置、IKE協(xié)商或應(yīng)用層的協(xié)商等其它方式來建立IPSec的安全聯(lián)盟等。
文檔編號(hào)H04L29/06GK1855924SQ20051006822
公開日2006年11月1日 申請(qǐng)日期2005年4月27日 優(yōu)先權(quán)日2005年4月27日
發(fā)明者嚴(yán)軍 申請(qǐng)人:華為技術(shù)有限公司