專利名稱:一種基于IPsec的報文傳輸方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其是涉及一種基于IPsec (IP Security, IP安全)的報文傳輸方法和設(shè)備。
背景技術(shù):
IPsec是實現(xiàn)三層VPN (Virtual Private Network,虛擬專用網(wǎng))的技術(shù),通過建立IPsec隧道來傳輸數(shù)據(jù)報文,并在IP層提供以下安全服務(wù):數(shù)據(jù)機密性(IPsec發(fā)送端設(shè)備在通過網(wǎng)絡(luò)傳輸數(shù)據(jù)報文之前對數(shù)據(jù)報文進行加密),數(shù)據(jù)完整性(IPsec接收端設(shè)備對數(shù)據(jù)報文進行認(rèn)證,以確保數(shù)據(jù)報文在傳輸過程中沒有被篡改),數(shù)據(jù)來源認(rèn)證(IPsec接收端設(shè)備認(rèn)證IPsec發(fā)送端設(shè)備是否合法),防重放(IPsec接收端設(shè)備檢測并拒絕接收過時或重復(fù)的數(shù)據(jù)報文)。其中,IPsec提供了兩種安全機制:認(rèn)證機制和加密機制;認(rèn)證機制可以使得IPsec接收端設(shè)備能夠確認(rèn)IPsec發(fā)送端設(shè)備的真實身份以及數(shù)據(jù)報文在傳輸過程中是否遭到篡改;加密機制通過對數(shù)據(jù)報文進行加密運算來保證數(shù)據(jù)報文的機密性,以防止數(shù)據(jù)報文在傳輸過程中被竊聽。IPsec包括AH(Authentication Header,認(rèn)證頭)和ESP(Encapsulating SecurityPayload,封裝安全載荷)等安全協(xié)議,并支持傳輸模式和隧道模式;如圖1所示,在傳輸模式下,數(shù)據(jù)報文的發(fā)送端(主機A,即IPsec發(fā)送端設(shè)備)和接收端(主機B,即IPsec接收端設(shè)備)為數(shù)據(jù)報文的實際發(fā)送端和接收端,通常情況下,傳輸模式用于保護兩臺主機之間的數(shù)據(jù)報文傳輸過程。如圖2所示,為傳輸模式下的數(shù)據(jù)報文封裝示意圖,在ESP封裝(即將數(shù)據(jù)報文封裝為ESP報文)之前,包括IP頭和內(nèi)部數(shù)據(jù)(數(shù)據(jù)報文頭和數(shù)據(jù)報文載荷);在進行ESP封裝之后,包括IP頭、ESP頭、內(nèi)部數(shù)據(jù)和ESP尾;如圖3所示,為一種ESP報文的格式示意圖,其中包括ESP頭、內(nèi)部數(shù)據(jù)和ESP尾等。為了防止對ESP報文進行攻擊,IPsec發(fā)送端設(shè)備在發(fā)送ESP報文時,需要在ESP報文中隨機填充TFC (Traffic Flow Confidentiality,流信息保密)Padding (填充),且數(shù)據(jù)報文頭中需要明確內(nèi)部數(shù)據(jù)的長度,以使IPsec接收端設(shè)備能夠?qū)FC Padding從ESP報文中刪除;而現(xiàn)有技術(shù)中,大部分協(xié)議的數(shù)據(jù)報文頭中均不會明確內(nèi)部數(shù)據(jù)的長度,導(dǎo)致TFC Padding的應(yīng)用場景受到限制,即在沒有明確內(nèi)部數(shù)據(jù)長度的應(yīng)用場景下無法使用TFCPadding 技術(shù)。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種基于IPsec的報文傳輸方法和設(shè)備,以提高傳輸模式下,TFC Padding應(yīng)用場景的使用范圍。為達上述目的,本發(fā)明實施例提供一種基于IPsec的報文傳輸方法,應(yīng)用于包括IPsec發(fā)送端設(shè)備和IPsec接收端設(shè)備的網(wǎng)絡(luò)中,該方法包括以下步驟:
所述IPsec發(fā)送端設(shè)備確定待發(fā)送給所述IPsec接收端設(shè)備的數(shù)據(jù)報文,所述數(shù)據(jù)報文中攜帶IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷;所述IPsec發(fā)送端設(shè)備將所述IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷添加到ESP報文中,并在所述ESP報文中添加TFC Padding,在所述TFC Padding的指定字段中添加TFCPadding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度;所述IPsec發(fā)送端設(shè)備對所述數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFCPadding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理,并將經(jīng)過IPsec處理后的ESP報文發(fā)送給所述IPsec接收端設(shè)備;由所述IPsec接收端設(shè)備利用TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,并利用所述TFC Padding的長度從所述ESP報文中刪除TFC Padding,以得到所述數(shù)據(jù)報文。所述TFC Padding的指定字段具體為:所述TFC Padding中的最后兩位字節(jié);或者,所述IPsec發(fā)送端設(shè)備與所述IPsec接收端設(shè)備之間協(xié)商的TFC Padding中的指定位鉻的多個字節(jié)。本發(fā)明實施例提供一種基于IPsec的報文傳輸方法,應(yīng)用于包括IPsec發(fā)送端設(shè)備和IPsec接收端設(shè)備的網(wǎng)絡(luò)中,該方法包括以下步驟:所述IPsec接收端設(shè)備接收來自所述IPsec發(fā)送端設(shè)備的ESP報文,所述ESP報文中攜帶了 IP頭,經(jīng)過IPsec處理后的數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFCPadding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度;所述IPsec接收端設(shè)備對所述數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFCPadding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理;所述IPsec接收端設(shè)備從所述TFC Padding的指定字段中獲得TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度;所述IPsec接收端設(shè)備利用TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,并利用所述TFC Padding的長度從所述ESP報文中刪除TFC Padding,以得到數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷;所述IPsec接收端設(shè)備利用所述IP頭、數(shù)據(jù)報文頭和數(shù)據(jù)報文載荷得到所述IPsec發(fā)送端設(shè)備需要發(fā)送給所述IPsec接收端設(shè)備的數(shù)據(jù)報文。所述IPsec接收端設(shè)備利用數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,具體包括:所述IPsec接收端設(shè)備確定數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding的長度之和,并確定TFC Padding的長度為數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding的長度之和減去數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度。所述TFC Padding的指定字段具體為:所述TFC Padding中的最后兩位字節(jié);或者,所述IPsec接收端設(shè)備與所述IPsec發(fā)送端設(shè)備之間協(xié)商的TFC Padding中的指定位鉻的多個字節(jié)。本發(fā)明實施例提供一種IPsec發(fā)送端設(shè)備,應(yīng)用于包括所述IPsec發(fā)送端設(shè)備和IPsec接收端設(shè)備的網(wǎng)絡(luò)中,所述IPsec發(fā)送端設(shè)備具體包括:確定模塊,用于確定待發(fā)送給所述IPsec接收端設(shè)備的數(shù)據(jù)報文,所述數(shù)據(jù)報文中攜帶IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷;處理模塊,用于將所述IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷添加到ESP報文中,并在所述ESP報文中添加TFC Padding,并在所述TFC Padding的指定字段中添加TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度;以及,對所述數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理;發(fā)送模塊,用于將經(jīng)過IPsec處理后的ESP報文發(fā)送給所述IPsec接收端設(shè)備;由所述IPsec接收端設(shè)備利用TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,并利用所述TFC Padding的長度從所述ESP報文中刪除TFCPadding,以得到所述數(shù)據(jù)報文。所述TFC Padding的指定字段具體為:所述TFC Padding中的最后兩位字節(jié);或者,所述IPsec發(fā)送端設(shè)備與所述IPsec接收端設(shè)備之間協(xié)商的TFC Padding中的指定位鉻的多個字節(jié)。本發(fā)明實施例提供一種IPsec接收端設(shè)備,應(yīng)用于包括IPsec發(fā)送端設(shè)備和所述IPsec接收端設(shè)備的網(wǎng)絡(luò)中,所述IPsec接收端設(shè)備具體包括:接收模塊,用于接收來自所述IPsec發(fā)送端設(shè)備的ESP報文,所述ESP報文中攜帶了 IP頭,經(jīng)過IPsec處理后的數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度;處理模塊,用于對所述數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理;確定模塊,用于從所述TFC Padding的指定字段中獲得TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度,并利用TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,并利用所述TFC Padding的長度從所述ESP報文中刪除TFC Padding,以得到數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷;獲得模塊,用于利用所述IP頭、數(shù)據(jù)報文頭和數(shù)據(jù)報文載荷得到所述IPsec發(fā)送端設(shè)備需要發(fā)送給所述IPsec接收端設(shè)備的數(shù)據(jù)報文。所述確定模塊,具體用于確定數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding的長度之和,并確定TFC Padding的長度為數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding的長度之和減去數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度。所述TFC Padding的指定字段具體為:所述TFC Padding中的最后兩位字節(jié);或者,所述IPsec接收端設(shè)備與所述IPsec發(fā)送端設(shè)備之間協(xié)商的TFC Padding中的指定位鉻的多個字節(jié)。與現(xiàn)有技術(shù)相比,本發(fā)明實施例至少具有以下優(yōu)點:本發(fā)明實施例中,IPsec發(fā)送端設(shè)備在發(fā)送ESP報文時,需要在TFC Padding的指定字段中攜帶TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度;基于此,IPsec接收端設(shè)備在收到ESP報文之后,能夠依據(jù)TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定出TFC Padding的長度,從而利用TFC Padding的長度刪除TFC Padding ;上述過程中,不需要在數(shù)據(jù)報文頭中明確內(nèi)部數(shù)據(jù)的長度,從而提高了傳輸模式下,TFC Padding應(yīng)用場景的使用范圍。
圖1是現(xiàn)有技術(shù)中傳輸模式下數(shù)據(jù)報文的傳輸過程示意圖;圖2是現(xiàn)有技術(shù)中傳輸模式下的數(shù)據(jù)報文封裝示意圖;圖3是現(xiàn)有技術(shù)中ESP報文的格式示意圖;圖4是本發(fā)明實施例提供的一種基于IPsec的報文傳輸方法流程示意圖;圖5是本發(fā)明實施例提供的一種IPsec發(fā)送端設(shè)備的結(jié)構(gòu)示意圖;圖6是本發(fā)明實施例提供的一種IPsec接收端設(shè)備的結(jié)構(gòu)示意圖。
具體實施例方式針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明實施例提供一種基于IPsec的報文傳輸方法,該方法應(yīng)用于包括IPsec發(fā)送端設(shè)備和IPsec接收端設(shè)備的網(wǎng)絡(luò)中,且該IPsec發(fā)送端設(shè)備與IPsec接收端設(shè)備之間采用基于IPsec的傳輸模式;以圖1為本發(fā)明實施例的應(yīng)用場景示意圖,IPsec發(fā)送端設(shè)備為主機A,IPsec接收端設(shè)備為主機B;如圖4所示,該方法包括以下步驟:步驟401,IPsec發(fā)送端設(shè)備確定待發(fā)送給IPsec接收端設(shè)備的數(shù)據(jù)報文,該數(shù)據(jù)報文中攜帶IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷。具體的,IPsec發(fā)送端設(shè)備在對數(shù)據(jù)報文進行ESP封裝(即將數(shù)據(jù)報文封裝為ESP報文)之前,該數(shù)據(jù)報文中可以攜帶:IP頭(記為IPHdr)、數(shù)據(jù)報文頭(記為ProtoHdr)、數(shù)據(jù)報文載荷(記為ProtoPayload)。步驟402,IPsec發(fā)送端設(shè)備將IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷添加到ESP報文中,并在ESP報文中隨機添加TFC Padding,并在TFC Padding的指定字段中添加TFCPadding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度。針對數(shù)據(jù)報文頭中沒有攜帶數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷長度(即數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷長度之和)的應(yīng)用場景,如基于TCP (Transmission Control Protocol,傳輸控制協(xié)議)時,不會攜帶數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度;基于此,本發(fā)明實施例中,需要在TFC Padding的指定字段中添加TFC Padding的長度(記為TFC-Padding-Length)或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度。在本發(fā)明實施例的一種優(yōu)選實施方式中,TFC Padding的指定字段具體可以為TFCPadding中的最后兩位字節(jié);基于此,IPsec發(fā)送端設(shè)備可以將TFC Padding的最后兩個字節(jié)定義為TFC Padding的長度;或者,將TFC Padding的最后兩個字節(jié)定義為數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度。在本發(fā)明實施例的另一種優(yōu)選實施方式中,TFC Padding的指定字段具體可以為IPsec發(fā)送端設(shè)備與IPsec接收端設(shè)備之間協(xié)商的TFC Padding中的指定位絡(luò)的多個字節(jié),如:IPsec發(fā)送端設(shè)備與IPsec接收端設(shè)備協(xié)商TFC Padding中的第五字節(jié)和第六字節(jié)為指定字段;基于此,IPsec發(fā)送端設(shè)備可以將TFC Padding的第五字節(jié)和第六字節(jié)定義為TFCPadding的長度;或者,將TFC Padding的第五字節(jié)和第六字節(jié)定義為數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度。其中,IPsec發(fā)送端設(shè)備與IPsec接收端設(shè)備之間協(xié)商TFC Padding中的指定位鉻的多個字節(jié)為指定字段具體包括=IPsec發(fā)送端設(shè)備確定指定字段為TFC Padding中的指定位鉻的多個字節(jié),并將指定字段的信息通知給IPsec接收端設(shè)備(如通過IKE協(xié)商報文通知);或者,IPsec接收端設(shè)備確定指定字段為TFC Padding中的指定位鉻的多個字節(jié),并將指定字段的信息通知給IPsec發(fā)送端設(shè)備(如通過IKE協(xié)商響應(yīng)報文通知)。本發(fā)明實施例中,將IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度添加到ESP報文的過程為ESP封裝過程;基于圖3所示的ESP報文格式示意圖,在ESP封裝過程中,IPsec發(fā)送端設(shè)備還可以將SPI (Security Parameters Index,安全參數(shù)索引,4個字節(jié),用于索引解密使用的SA),Sequence Number (抗重放序列號,4個字節(jié)),Padding (填充,即擴展位,0_255個字節(jié),當(dāng)前要求數(shù)據(jù)報文長度(以位為單位)模512為448,如果數(shù)據(jù)報文長度不足,則使用擴展位填充),Padding Length (填充長度),Next Header (下一個協(xié)議頭)、Integrity CheckValue-1CV (完整性校驗數(shù)據(jù))等內(nèi)容添加到ESP報文中。步驟403,IPsec發(fā)送端設(shè)備對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFCPadding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理。本發(fā)明實施例的具體實施方式
中,IPsec發(fā)送端設(shè)備對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding,TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理,具體包括但不限于=IPsec發(fā)送端設(shè)備對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFCPadding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行加密處理;或者,IPsec發(fā)送端設(shè)備對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行加密處理和認(rèn)證處理;加密處理和認(rèn)證處理過程不再贅述。此外,IPsec發(fā)送端設(shè)備還需要對 Padding, Padding Length, Next Header 進行加密處理;或者,IPsec發(fā)送端設(shè)備還需要對Padding, Padding Length, Next Header進行加密處理和認(rèn)證處理;此外,IPsec發(fā)送端設(shè)備還需要對SPI, Sequence Number進行認(rèn)證處理;加密處理和認(rèn)證處理過程不再贅述。本發(fā)明實施例中,IPsec發(fā)送端設(shè)備在對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFCPadding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理之后,還需要調(diào)整IP頭中的IP數(shù)據(jù)長度以及校驗和。步驟404,IPsec發(fā)送端設(shè)備將經(jīng)過IPsec處理之后的ESP報文(即ESP封裝之后的報文,如圖3所示)發(fā)送給IPsec接收端設(shè)備。步驟405,IPsec接收端設(shè)備接收來自IPsec發(fā)送端設(shè)備的ESP報文,該ESP報文中攜帶了 IP頭,經(jīng)過IPsec處理后的數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度。此外,該ESP報文中還攜帶了經(jīng)過IPsec處理后的SPI, Sequence Number,Padding, Padding Length, Next Header、Integrity Check Value-1CV 等內(nèi)容。步驟406,IPsec接收端設(shè)備對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFCPadding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理。
本發(fā)明實施例的具體實施方式
中,基于步驟403中的IPsec處理處理方式,IPsec接收端設(shè)備對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理,具體包括但不限于=IPsec接收端設(shè)備對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行解密處理;或者,IPsec接收端設(shè)備對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行解密處理和驗證處理。此外,IPsec接收端設(shè)備還需要對 Padding, Padding Length, Next Header 進行解密處理;或者,IPsec接收端設(shè)備還需要對Padding, Padding Length, Next Header進行解密處理和驗證處理;此外,IPsec接收端設(shè)備還需要對SPI, Sequence Number進行驗證處理;解密處理和驗證處理過程不再贅述。具體的,IPsec接收端設(shè)備在收到ESP報文之后,可以利用SPI查找對應(yīng)的SA(Security Association,安全聯(lián)盟),并利用查找到的SA對ESP報文(除了 IP頭之外的其它內(nèi)容)進行解密處理和驗證處理。步驟407,IPsec接收端設(shè)備從TFC Padding的指定字段中獲得TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度,并利用TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度。本發(fā)明實施例中,TFC Padding的指定字段具體為:TFC Padding中的最后兩位字節(jié);或者,IPsec接收端設(shè)備與IPsec發(fā)送端設(shè)備之間協(xié)商的TFC Padding中的指定位絡(luò)的多個字節(jié)。本發(fā)明實施例中,IPsec接收端設(shè)備利用TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,具體包括如下方式:方式一、IPsec接收端設(shè)備利用TFC Padding長度字段的值直接確定TFCPadding的長度;具體的,IPsec接收端設(shè)備對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFCPadding的長度進行IPsec處理之后,可以從ESP報文中得到TFC Padding長度字段,繼而直接確定TFC Padding的長度。方式二、IPsec接收端設(shè)備利用數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFCPadding的長度,具體包括=IPsec接收端設(shè)備對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理之后,可計算數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding的長度之和(即總長度減其它內(nèi)容長度),并從ESP報文中得到數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度;進一步,IPsec接收端設(shè)備確定TFC Padding的長度為數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding的長度之和減數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度。步驟408,IPsec接收端設(shè)備利用TFC Padding的長度從ESP報文中刪除TFCPadding,得到數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷,并利用IP頭、數(shù)據(jù)報文頭和數(shù)據(jù)報文載荷得到IPsec發(fā)送端設(shè)備需要發(fā)送給IPsec接收端設(shè)備的數(shù)據(jù)報文。具體的,IPsec接收端設(shè)備在對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFCPadding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度、SPI, SequenceNumber, Padding,Padding Length, Next Header、Integrity Check Value-1CV 等內(nèi)容進行 IPsec 處理之后,可以直接從ESP報文中刪除TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度、SPI, Sequence Number, Padding, Padding Length, Next Header、Integrity CheckValue-1CV等內(nèi)容;并利用TFC Padding的長度從ESP報文中刪除TFC Padding,之后可以得到數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷,在補充IP頭之后,可以得到數(shù)據(jù)報文。本發(fā)明實施例中,IPsec發(fā)送端設(shè)備在發(fā)送ESP報文時,需要在ESP報文中攜帶TFCPadding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度;基于此,IPsec接收端設(shè)備在收到ESP報文之后,能夠依據(jù)TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定出TFC Padding的長度,從而利用TFC Padding的長度刪除TFC Padding ;上述過程中,不需要在數(shù)據(jù)報文頭中明確內(nèi)部數(shù)據(jù)的長度,從而提高了傳輸模式下,TFC Padding應(yīng)用場景的使用范圍?;谂c上述方法同樣的發(fā)明構(gòu)思,本發(fā)明實施例中還提供了一種IPsec發(fā)送端設(shè)備,應(yīng)用于包括所述IPsec發(fā)送端設(shè)備和IPsec接收端設(shè)備的網(wǎng)絡(luò)中,如圖5所示,所述IPsec發(fā)送端設(shè)備具體包括:確定模塊11,用于確定待發(fā)送給所述IPsec接收端設(shè)備的數(shù)據(jù)報文,所述數(shù)據(jù)報文中攜帶IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷;處理模塊12,用于將所述IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷添加到ESP報文中,并在所述ESP報文中添加TFC Padding,并在所述TFC Padding的指定字段中添加TFCPadding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度;以及,對所述數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理;發(fā)送模塊13,用于將經(jīng)過IPsec處理后的ESP報文發(fā)送給所述IPsec接收端設(shè)備;由所述IPsec接收端設(shè)備利用TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,并利用所述TFC Padding的長度從所述ESP報文中刪除TFCPadding,以得到所述數(shù)據(jù)報文。本發(fā)明實施例中,所述TFC Padding的指定字段具體為:所述TFC Padding中的最后兩位字節(jié);或者,所述IPsec發(fā)送端設(shè)備與所述IPsec接收端設(shè)備之間協(xié)商的TFC Padding中的指定位鉻的多個字節(jié)。其中,本發(fā)明裝鉻的各個模塊可以集成于一體,也可以分離部署。上述模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊?;谂c上述方法同樣的發(fā)明構(gòu)思,本發(fā)明實施例中還提供了一種IPsec接收端設(shè)備,應(yīng)用于包括IPsec發(fā)送端設(shè)備和所述IPsec接收端設(shè)備的網(wǎng)絡(luò)中如圖6所示,所述IPsec接收端設(shè)備具體包括:接收模塊21,用于接收來自所述IPsec發(fā)送端設(shè)備的ESP報文,所述ESP報文中攜帶了 IP頭,經(jīng)過IPsec處理后的數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度;處理模塊22,用于對所述數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理;確定模塊23,用于從所述TFC Padding的指定字段中獲得TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度,并利用TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,并利用所述TFC Padding的長度從所述ESP報文中刪除TFC Padding,以得到數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷;獲得模塊24,用于利用所述IP頭、數(shù)據(jù)報文頭和數(shù)據(jù)報文載荷得到所述IPsec發(fā)送端設(shè)備需要發(fā)送給所述IPsec接收端設(shè)備的數(shù)據(jù)報文。所述確定模塊23,具體用于確定數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding的長度之和,并確定TFC Padding的長度為數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding的長度之和減去數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度。本發(fā)明實施例中,所述TFC Padding的指定字段具體為:所述TFC Padding中的最后兩位字節(jié);或者,所述IPsec接收端設(shè)備與所述IPsec發(fā)送端設(shè)備之間協(xié)商的TFC Padding中的指定位鉻的多個字節(jié)。其中,本發(fā)明裝鉻的各個模塊可以集成于一體,也可以分離部署。上述模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實施例中的裝鉻中的模塊可以按照實施例描述進行分布于實施例的裝鉻中,也可以進行相應(yīng)變化位于不同于本實施例的一個或多個裝鉻中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護范圍。
權(quán)利要求
1.一種基于IPsec的報文傳輸方法,應(yīng)用于包括IPsec發(fā)送端設(shè)備和IPsec接收端設(shè)備的網(wǎng)絡(luò)中,其特征在于,該方法包括以下步驟: 所述IPsec發(fā)送端設(shè)備確定待發(fā)送給所述IPsec接收端設(shè)備的數(shù)據(jù)報文,所述數(shù)據(jù)報文中攜帶IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷; 所述IPsec發(fā)送端設(shè)備將所述IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷添加到ESP報文中,并在所述ESP報文中添加TFC Padding,在所述TFC Padding的指定字段中添加TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度; 所述IPsec發(fā)送端設(shè)備對所述數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理,并將經(jīng)過IPsec處理后的ESP報文發(fā)送給所述IPsec接收端設(shè)備; 由所述IPsec接收端設(shè)備利用TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,并利用所述TFC Padding的長度從所述ESP報文中刪除TFCPadding,以得到所述數(shù)據(jù)報文。
2.如權(quán)利要求1所述的方法,其特征在于,所述TFCPadding的指定字段具體為: 所述TFC Padding中的最后兩位字節(jié);或者, 所述IPsec發(fā)送端設(shè)備與所述IPsec接收端設(shè)備之間協(xié)商的TFC Padding中的指定位鉻的多個字節(jié)。
3.一種基于IPsec的報文傳輸方法,應(yīng)用于包括IPsec發(fā)送端設(shè)備和IPsec接收端設(shè)備的網(wǎng)絡(luò)中,其特征在于,該方法包括以下步驟: 所述IPsec接收端設(shè)備接收來自所述IPsec發(fā)送端設(shè)備的ESP報文,所述ESP報文中攜帶了 IP頭,經(jīng)過IPsec處理后的數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度; 所述IPsec接收端設(shè)備對所述數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理; 所述IPsec接收端設(shè)備從所述TFC Padding的指定字段中獲得TFCPadding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度; 所述IPsec接收端設(shè)備利用TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,并利用所述TFC Padding的長度從所述ESP報文中刪除TFCPadding,以得到數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷; 所述IPsec接收端設(shè)備利用所述IP頭、數(shù)據(jù)報文頭和數(shù)據(jù)報文載荷得到所述IPsec發(fā)送端設(shè)備需要發(fā)送給所述IPsec接收端設(shè)備的數(shù)據(jù)報文。
4.如權(quán)利要求3所述的方法,其特征在于,所述IPsec接收端設(shè)備利用數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,具體包括: 所述IPsec接收端設(shè)備確定數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding的長度之和,并確定TFC Padding的長度為數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding的長度之和減去數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度。
5.如權(quán)利要求3或4所述的方法,其特征在于,所述TFCPadding的指定字段具體為: 所述TFC Padding中的最后兩位字節(jié);或者, 所述IPsec接收端設(shè)備與所述IPsec發(fā)送端設(shè)備之間協(xié)商的TFC Padding中的指定位鉻的多個字節(jié)。
6.一種IPsec發(fā)送端設(shè)備,應(yīng)用于包括所述IPsec發(fā)送端設(shè)備和IPsec接收端設(shè)備的網(wǎng)絡(luò)中,其特征在于,所述IPsec發(fā)送端設(shè)備具體包括: 確定模塊,用于確定待發(fā)送給所述IPsec接收端設(shè)備的數(shù)據(jù)報文,所述數(shù)據(jù)報文中攜帶IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷; 處理模塊,用于將所述IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷添加到ESP報文中,并在所述ESP報文中添加TFC Padding,并在所述TFC Padding的指定字段中添加TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度; 以及,對所述數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理; 發(fā)送模塊,用于將經(jīng)過IPsec處理后的ESP報文發(fā)送給所述IPsec接收端設(shè)備;由所述IPsec接收端設(shè)備利用TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,并利用所述TFC Padding的長度從所述ESP報文中刪除TFC Padding,以得到所述數(shù)據(jù)報文。
7.如權(quán)利要求6所述的IPsec發(fā)送端設(shè)備,其特征在于,所述TFCPadding的指定字段具體為: 所述TFC Padding中的最后兩位字節(jié);或者, 所述IPsec發(fā)送端設(shè)備與所述IPsec接收端設(shè)備之間協(xié)商的TFC Padding中的指定位鉻的多個字節(jié)。
8.—種IPsec接收端設(shè)備,應(yīng)用于包括IPsec發(fā)送端設(shè)備和所述IPsec接收端設(shè)備的網(wǎng)絡(luò)中,其特征在于,所述IPsec接收端設(shè)備具體包括: 接收模塊,用于接收來自所述IPsec發(fā)送端設(shè)備的ESP報文,所述ESP報文中攜帶了 IP頭,經(jīng)過IPsec處理后的數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度; 處理模塊,用于對所述數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度進行IPsec處理; 確定模塊,用于從所述TFC Padding的指定字段中獲得TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度,并利用TFC Padding的長度或者數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度確定TFC Padding的長度,并利用所述TFC Padding的長度從所述ESP報文中刪除TFC Padding,以得到數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷; 獲得模塊,用于利用所述IP頭、數(shù)據(jù)報文頭和數(shù)據(jù)報文載荷得到所述IPsec發(fā)送端設(shè)備需要發(fā)送給所述IPsec接收端設(shè)備的數(shù)據(jù)報文。
9.如權(quán)利要求8所述的IPsec接收端設(shè)備,其特征在于, 所述確定模塊,具體用于確定數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding的長度之和,并確定TFC Padding的長度為數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding的長度之和減去數(shù)據(jù)報文頭與數(shù)據(jù)報文載荷的長度。
10.如權(quán)利要求8或9所述的IPsec接收端設(shè)備,其特征在于,所述TFCPadding的指定字段具體為: 所述TFC Padding中的最后兩位字節(jié);或者,所述IPsec接收端設(shè)備與所述IPsec發(fā)送端設(shè)備之間協(xié)商的TFC Padding中的指定位鉻的多個字節(jié)。`
全文摘要
本發(fā)明公開了一種基于IPsec的報文傳輸方法和設(shè)備,該方法包括IPsec發(fā)送端設(shè)備確定數(shù)據(jù)報文,其中攜帶IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷;IPsec發(fā)送端設(shè)備將IP頭、數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷添加到ESP報文中,并在TFC Padding的指定字段中添加TFC Padding和TFC Padding的長度;IPsec發(fā)送端設(shè)備對數(shù)據(jù)報文頭、數(shù)據(jù)報文載荷、TFC Padding、TFC Padding的長度進行IPsec處理,并經(jīng)過IPsec處理后的ESP報文發(fā)送給IPsec接收端設(shè)備;IPsec接收端設(shè)備利用TFC Padding的長度從ESP報文中刪除TFC Padding,以得到數(shù)據(jù)報文。本發(fā)明實施例中,提高了傳輸模式下,TFC Padding應(yīng)用場景的使用范圍。
文檔編號H04L29/06GK103179055SQ20131009335
公開日2013年6月26日 申請日期2013年3月21日 優(yōu)先權(quán)日2013年3月21日
發(fā)明者楊超 申請人:杭州華三通信技術(shù)有限公司