專利名稱:一種數(shù)據(jù)包處理的方法和裝置的制作方法
技術領域:
本發(fā)明涉及計算機網(wǎng)絡領域的安全技術,尤其涉及一種數(shù)據(jù)包處理的方法 和裝置。
背景技術:
RFC3972定義的CGA ( Cryptographically Generated Addresses,加密生 成地址)協(xié)i義是加密生成地址協(xié)議。 一個加密生成地址是一個IPv6地址,地 址長度為128位,前64位為子網(wǎng)前綴,后64位為接口標識符。CGA中的接 口標識符由公鑰和一些附加參數(shù)通過計算單向哈希函數(shù)生成。通過對參數(shù)重新 計算哈希值并與接口標識符比較,可以驗證這一由公鑰及參數(shù)生成的地址與公
鑰的關聯(lián)性。并通過用對應于該公鑰的私鑰對發(fā)送的消息進行簽名,以及接收 者對簽名的驗證過程,來達到驗證源地址的目的。
發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術至少存在以下缺點盡管 CGA具有源地址驗證的功能,但對CGA的應用大都是應用于某一種或幾種應 用協(xié)議提出的,缺乏通用性,使用范圍非常有限。
發(fā)明內(nèi)容
本發(fā)明的實施例提供一種應用于網(wǎng)絡層的通用的安全技術,擴展CGA協(xié) 議的使用范圍。
根據(jù)本發(fā)明的一個實施例,提供一種數(shù)據(jù)包處理的方法,包括 接收來自發(fā)送方的攜帶CGA擴展頭的IPv6報文;
在網(wǎng)絡層,從所述IPv6報文中獲得所述CGA擴展頭,所述擴展頭中包括 CGA參數(shù)、簽名信息;
根據(jù)所述CGA參數(shù)、簽名信息,對IPv6報文的源地址進行驗證,輸出驗 證結(jié)果;
驗證通過,則向上層傳輸去除所述CGA擴展頭的IPv6報文。根據(jù)本發(fā)明的另一實施例,提供一種數(shù)據(jù)包處理的裝置,包括
接收單元,用于接收來自發(fā)送方的攜帶CGA擴展頭的IPv6報文;
CGA擴展頭獲取單元,用于從所述IPv6報文中獲得所述CGA擴展頭中 攜帶的發(fā)送方的CGA參數(shù)、簽名信息;
驗證單元,用于根據(jù)所述CGA參數(shù)、簽名信息,對IPv6報文的源地址進 行驗證,并輸出驗證結(jié)果;
傳輸單元,用于當驗證結(jié)果為通過時,向上層傳輸去除所述CGA擴展頭 的IPv6報文。
根據(jù)本發(fā)明實施例,通過將發(fā)送方的CGA參數(shù)、簽名信息以CGA擴展 頭加入到IPv6擴展頭中,接收方可以利用接收到的信息在網(wǎng)絡層實現(xiàn)對IPv6 報文的源地址進行驗證,使得本不可靠的網(wǎng)絡層,有了安全性保障;同時由于 在網(wǎng)絡層實現(xiàn)安全機制,具有較強通用性及廣泛的使用范圍。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施 例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述 中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付 出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。 圖1為本發(fā)明提供的數(shù)據(jù)包處理方法的一個實施例的流程示意圖; 圖2為本發(fā)明一個實施例提供的CGA擴展頭的格式示意圖; 圖3為本發(fā)明一個實施例提供的CGA請求選項的格式示意圖; 圖4為本發(fā)明一個實施例提供的CGA參數(shù)選項的格式示意圖; 圖5為本發(fā)明一個實施例提供的CGA簽名選項的格式示意圖; 圖6為本發(fā)明提供的數(shù)據(jù)包處理方法的一個實施例的流程示意圖; 圖7為本發(fā)明實施例提供的-險-i正步驟的一個實施例的流程示意圖; 圖8為本發(fā)明一個實施例的應用場景;
圖9為本發(fā)明提供的數(shù)據(jù)包處理的裝置的一個實施例的結(jié)構示意圖;圖10為本發(fā)明提供的驗證單元一個實施例的結(jié)構示意圖。
具體實施例方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清 楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是 全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造 性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例在IP( Internet Protocol,因特網(wǎng)協(xié)議)報文,例如IPv6( Internet Protocol version 6,因特網(wǎng)協(xié)議版本6 )擴展頭中增加CGA ( Cryptographically Generated Addresses,加密生成地址)擴展頭,該CGA擴展頭可以包括CGA Request ( CGA請求)、CGA Params ( CGA參數(shù))、CGA Sig ( CGA簽名)。CGA 擴展頭用于攜帶CGA信息。數(shù)據(jù)包的接收方根據(jù)CGA信息對發(fā)送方的地址 進行驗證。下面以IPv6報文做為實施例進行闡述,顯然對于其他類型的IP報 文,只要具備擴展協(xié)議頭的字段或者兼容IPv6報文,則都可以應用本發(fā)明, 本發(fā)明并不限制于IPv6報文。例如,在后續(xù)高于IPv6版本的協(xié)議下的IP報 文或者兼容IPv6的IP報文,只要該IP報文具備擴展頭,都可以實施本發(fā)明。
在IPv6里,可選的網(wǎng)絡層信息在一個獨立的頭部編碼,;故在包中IPv6頭 與上層協(xié)議頭之間。 一個IPv6頭可以攜帶零個, 一個或者更多的擴展頭,每 個擴展頭由前一個頭中的"下一個頭"字段標識??梢栽贗Pv6擴展頭中增加 CGA擴展頭。例如,增加了 CGA擴展頭后的IPv6擴展頭排列順序如下 IPv6 header
0 Hop-by-Hop Options header
60 Destination Options header
43 Routing header
44 Fragment header 149 CGA header
51 Authentication header
850 Encapsulating Security Payload header
其中,前面的數(shù)字是協(xié)議號,由IANA分配得來,新增加的CGA擴展頭 可以使用暫未分配的協(xié)議號,例如上文中提及的149,當然還可以使用其他未 使用的協(xié)議號。
如圖l所示,本發(fā)明提供的數(shù)據(jù)包處理方法的一個實施例中,當發(fā)送方發(fā) 送一個攜帶CGA擴展頭的IPv6報文時,包括如下步驟 S101:生成一個CGA擴展頭;
所述CGA擴展頭中可以包括發(fā)送方公鑰以及發(fā)送方數(shù)字簽名;發(fā)送方 根據(jù)公鑰和一些相關參數(shù)通過計算單向哈希函數(shù)生成一個IPv6源地址,利用 發(fā)送方的私鑰進行數(shù)字簽名,并將相關參數(shù)、數(shù)字簽名填充到CGA擴展頭的 相應位置。
S102:將CGA擴展頭加入到IPv6報文的擴展頭中,生成一個攜帶所述
CGA擴展頭的IPv6報文;
CGA擴展頭位于IPv6報文中IPv6頭與上層協(xié)議頭之間。
S103:向接收方發(fā)送攜帶CGA擴展頭的IPv6報文,所述IPv6報文用于
接收方實現(xiàn)IPv6報文發(fā)送方的源地址驗證。
本發(fā)明的一個實施例中,CGA擴展頭的格式如圖2所示,所述CGA擴展 頭包括
下一頭(NextHeader)字段,為8比特的選擇符,標識該CGA擴展的下一個 頭類型。
擴展頭長度(HdrExtLen)字段,為8比特無符號整數(shù)。標識該CGA擴展頭 的長度,計算長度時不包括前8字節(jié),以8字節(jié)為單位。該字段長度為O,表示 一種特殊含義,即初始化CGA。當通信一方想要使用CGA保護通信時,可以 選擇發(fā)出長度為O的CGA擴展;當通信一方收到長度為O的擴展頭時,則向?qū)Ψ桨l(fā)出CGA請求。
預留域(Reserved)字段,長度為16比特,以備將來擴展使用。該預留域 字段設為0。
選項(Options)字段,該部分長度可變,包含了一個或者多個數(shù)據(jù)類型。
Options可以選擇三種類型數(shù)據(jù),分別是CGA請求、CGA參數(shù)、CGA 簽名。CGA請求用于請求對方提供CGA參數(shù);CGA參數(shù)用于傳輸CGA參 數(shù);CGA簽名是使用CGA節(jié)點的私鑰對數(shù)據(jù)包負載部分的簽名。CGA擴展 頭如果包含CGA參數(shù)選項,則同時包含CGA簽名選項,否則接收方向發(fā)送 方發(fā)送一個錯誤的ICMP消息至源地址,通知不可識別的選項類型。在沒有收 到CGA請求的時候,發(fā)送方也可以在數(shù)據(jù)包中添加CGA擴展頭;對CGA擴 展頭的處理方式(認證或者忽略)由接收方?jīng)Q定。
發(fā)送方主^/L在網(wǎng)絡層收到上層傳下來的數(shù)據(jù)包,在封裝IPv6頭時就可以 將CGA擴展頭同時封裝進去。如果主機發(fā)送的數(shù)據(jù)包的包頭中包含了 CGA請 求選項時,那么就是想驗證接收方的源地址,則接收方發(fā)回的數(shù)據(jù)包中就應該 攜帶CGA參數(shù)和CGA簽名選項,向發(fā)送方主機提供驗證所需要的數(shù)據(jù)內(nèi)容, 其中CGA參數(shù)選項中的Sequence Number字段為CGA請求選項中的序列號 的值加1;發(fā)送方主機也可以主動在發(fā)出的數(shù)據(jù)包中加入CGA擴展頭,包含 CGA參數(shù)和CGA簽名選項,為接收方提供驗證發(fā)送方地址的相關數(shù)據(jù)內(nèi)容, 其中CGA參數(shù)選項中的Sequence Number字段置0。
本發(fā)明實施例提出的CGA請求選項的格式如圖3所示,該CGA請求選 項包括
類型(Type)字段,為8比特無符號整數(shù),在本實施例中,當該類型字段 的數(shù)值為193時,表明該數(shù)據(jù)包為CGA請求。在其它實施例中,也可用其它 數(shù)值表明該數(shù)據(jù)包為CGA請求。
預留域(Reserved)字段,長度為24比特,以備將來擴展使用。該預留 域字段設為0。
序列號(SequenceNumber)字段,為32比特隨機數(shù),包括防止重放攻擊
10的信息。
主機可以根據(jù)上層協(xié)議,主動向接受方發(fā)起CGA請求,要求接受方發(fā)送
CGA參數(shù)和CGA簽名信息,對接受方進行源地址驗證。
本發(fā)明實施例提出的CGA參數(shù)選項的格式如圖4所示,該CGA參數(shù)選 項包括
類型(Type)字段,為8比特無符號整數(shù)。在本實施例中,當該類型字段 的數(shù)值為194時,表明該數(shù)據(jù)包為CGA參數(shù)。在其它實施例中,也可用其它 值表明該數(shù)據(jù)包為CGA參數(shù)。
長度(Length)字段,為8比特無符號整數(shù),以字節(jié)為單位,表明整個 CGA參數(shù)的長度,為類型字段、長度字段、填充長度字段、預留域字段、序 列號字段、CGA參數(shù)字段以及填充字段等各字段長度的總和。
填充長度(Pad Length)字段,為8比特無符號整數(shù),表示填充字段的長 度,單位為字節(jié)。
預留域(Reserved)字段,長度為8比特字段,以備將來擴展使用。該預 留域字段必須設為0。
序列號(SequenceNumber)字段,為32比特整數(shù),包括防止重放攻擊的 信息。如果該CGA參數(shù)用于響應CGA請求,該序列號字段的值為CGA請求 中的序列號的值加l;否則,將該序列號字段置為0。
參數(shù)(Parameters)字段,長度可變,包括CGA參數(shù)信息。
填充(Padding)字段,可變長度域,用于使數(shù)據(jù)包長度為8字節(jié)的整數(shù) 倍。該填充字段的內(nèi)容為0。
本發(fā)明實施例提出的CGA簽名選項的格式如圖5所示,該CGA簽名選 項包括
類型(Type)字段,為8比特無符號整數(shù)。在本實施例中,若類型字段的 數(shù)值為195時,表明該數(shù)據(jù)包為CGA簽名。在其它實施例中,也可用其它數(shù) 值表明該數(shù)據(jù)包為CGA簽名。
長度(Length)字段,為8比特無符號整數(shù),以字節(jié)為單位表明整個CGA簽名的長度,為類型字段、長度字段、填充長度字段、預留域字段、CGA簽
名字段和填充字段等各字段長度的總和。
填充長度(Pad Length)字段,為8比特無符號整數(shù),表示填充字段的長 度,單位為字節(jié)。
預留域(Reserved)字段,長度為8比特,以備將來擴展使用。該預留域 字段設為0。
簽名(Signature)字段,為可變長度字段,包括用發(fā)送者私鑰對數(shù)據(jù)包內(nèi) 容的簽名。
填充(Padding)字段,為可變長度字段,用于使數(shù)據(jù)包長度為8字節(jié)的 整數(shù)倍。該填充字段的內(nèi)容為0。
接收方可以在收到發(fā)送方的CGA請求后,向發(fā)送方返回攜帶CGA參數(shù) 和CGA簽名選項的數(shù)據(jù)包,提供給發(fā)送方主機驗證所需要的數(shù)據(jù)內(nèi)容,在這 種方式下,CGA參數(shù)選項中序列號字^殳的值為CGA請求中的序列號的值加1; 發(fā)送方也可以主動在發(fā)出的數(shù)據(jù)包中加入CGA擴展頭,包含CGA參數(shù)和 CGA簽名選項,為接收方提供驗證自己地址的相關數(shù)據(jù)內(nèi)容,在這種方式下, CGA參數(shù)選項中的Sequence Number字段置0。
CGA參數(shù)選項中攜帶的CGA參數(shù)字段與IPv6報文頭中的源地址對應。 發(fā)送方根據(jù)公鑰和一些附加參數(shù)通過計算單向哈希函數(shù)生成一個IPv6源地 址,并按照CGA協(xié)議的要求生成其他參數(shù)。
CGA簽名選項中的簽名使用的私鑰與同一個擴展頭中的CGA參數(shù)中攜 帶的公鑰對應。
發(fā)送方生成CGA簽名選項的步驟如下
主機獲取下列內(nèi)容,并按順序?qū)⑾铝袃?nèi)容連接起來
從IP數(shù)據(jù)包的報頭信息中獲得128位源地址;
從IP數(shù)據(jù)包的報頭信息中獲得128位目的地址;
除了 CGA簽名選項的CGA擴展頭部分;
IP數(shù)據(jù)包的負載部分(傳輸層以及以上部分)。
然后對得到的數(shù)據(jù)使用私鑰進行簽名,并將簽名放入CGA簽名選項的Digital Signature字^殳中。
如圖6所示,本發(fā)明提供的一個實施例中,當接收方收到一個攜帶CGA 擴展頭的IPv6報文,處理流程如下
S601:接收來自發(fā)送方的攜帶CGA擴展頭的IPv6凈艮文; 接收方的網(wǎng)絡層接收下層傳輸來的IPv6報文。
S602:在網(wǎng)絡層,從所述IPv6報文中獲得所述CGA擴展頭,所述擴展頭
中包括發(fā)送方的CGA參數(shù)、簽名信息;
S603:根據(jù)所述CGA擴展頭攜帶的信息,對發(fā)送方的源地址進行驗證; 根據(jù)CGA擴展頭中攜帶的CGA參數(shù)和CGA簽名選項,對IPv6報文進
行驗證。
S604:如果驗證通過,則向上層傳輸去除所述CGA擴展頭的IPv6報文, 由上層對報文進行相應處理;
S605:如果驗證不通過,則丟棄所述IPv6報文,并向發(fā)送方發(fā)送ICMP 錯誤報文。
在步驟S603之前還可以包括網(wǎng)絡層確認需要對IPv6報文的源地址進行 驗證;網(wǎng)絡層可以根據(jù)相關的配置信息確定是否需要進行驗證。所述配置信息 一般是來自上層協(xié)議,上層協(xié)議可以根據(jù)用戶的輸入、主機默認的配置或者上 層協(xié)議的安全性要求生成所述配置信息,并將配置信息通知給網(wǎng)絡層。如果接 收方根據(jù)相關的配置信息確認需要驗證,驗證步驟的一個實施例如下
S701:驗證CGA參數(shù)中序列號的值;
如果收到的IPv6報文為對CGA請求的響應,接收方首先將CGA參數(shù)選 項中的Sequence Number減1 ,與自己緩存的CGA請求中的Sequence Number 比較。如果一致,則進行下一步;否則,丟棄該IPv6報文,發(fā)送ICMP錯誤報文。
S702:根據(jù)CGA參數(shù),對IPv6報文頭中包含的源地址進行認證。如果認 證通過,則進行下一步;否則,丟棄該IPv6報文,發(fā)送ICMP錯誤報文。
S703:使用CGA參數(shù)中的公鑰對CGA簽名中的簽名字段的內(nèi)容解密, 將得到的內(nèi)容和IPv6報文中部分內(nèi)容串接的哈希值比較。如果內(nèi)容一致,則驗證通過;否則,丟棄該IPv6報文,發(fā)送ICMP錯誤報文。 在步驟S601之前還可以包括
生成并向發(fā)送方發(fā)送一個攜帶CGA擴展頭的IPv6報文,所述CGA擴展 頭中包含CGA請求選項,請求所述發(fā)送方發(fā)送CGA驗證信息;
發(fā)送方回復攜帶CGA擴展頭的IPv6報文,CGA擴展頭中包括CGA參 數(shù)和CGA簽名選項,其中CGA參數(shù)選項的Sequence Number為CGA請求 選項中Sequence Number的數(shù)值力口 1 。
生成并發(fā)送一個攜帶CGA擴展頭的IPv6報文的步驟包括
生成一個CGA擴展頭,所述CGA擴展頭中包括CGA請求選項;
將CGA擴展頭加入到IPv6報文的擴展頭中,生成一個攜帶所述CGA擴 展頭的IPv6寺艮文;
向接收方發(fā)送攜帶CGA擴展頭的IPv6報文。
本發(fā)明實施例中,通過將發(fā)送方的CGA參數(shù)、簽名信息以CGA擴展頭 加入到IPv6擴展頭中,接收方可以利用接收到的信息在網(wǎng)絡層實現(xiàn)對IPv6報 文的源地址進行驗證,為網(wǎng)絡層提供源地址驗證的方法,充分發(fā)揮CGA協(xié)議 源地址驗證的作用,使得本不可靠的網(wǎng)絡層,有了安全性保障;同時,由于在 網(wǎng)絡層進行安全驗證,該安全機制不限于某一種或幾種上層應用協(xié)議,具有應 用范圍廣泛、通用性強的特性。
顯然,本發(fā)明并不限制于IPv6報文。例如,在后續(xù)高于IPv6版本的協(xié)議 下的IP報文或者兼容IPv6的IP報文,只要該報文具備擴展頭,都可以實施 本發(fā)明,其實施的流程與上述實施例方法類似。
本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程, 是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算 機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。 其中,所述的存儲介質(zhì)可為;茲碟、光盤、只讀存儲記憶體(Read-OnlyMemory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。
14圖8所示為本發(fā)明一個實施例的應用場景,對于相互通信的兩個主機,發(fā)
送方在網(wǎng)絡層將CGA參數(shù)和簽名添加到CGA擴展頭中,并封裝到IPv6報文 中,再將IPv6報文發(fā)送出去;接收方在網(wǎng)絡層提取發(fā)送方的CGA參數(shù)和簽名 并進行驗證,如果驗證成功,則向傳輸層傳輸去掉CGA擴展頭的IPv6報文。 如圖9所示,本發(fā)明一種數(shù)據(jù)包處理的裝置的一個實施例包括 接收單元11,用于接收來自發(fā)送方的攜帶CGA擴展頭的IPv6報文; CGA擴展頭獲取單元12,用于從所述IPv6報文中獲得所述CGA擴展頭 中攜帶的發(fā)送方的CGA參數(shù)、簽名信息;
驗證單元13,用于根據(jù)所述CGA參數(shù)、簽名信息,對IPv6報文的源地 址進行驗證,并輸出驗證結(jié)果;
傳輸單元14,用于當驗證結(jié)果為通過時,向上層傳輸去除所述CGA擴展 頭的IPv6才艮文;
錯誤處理單元15,用于當驗證結(jié)果為不通過時,丟棄所述IPv6報文,并 向發(fā)送方發(fā)送錯誤報文。
根據(jù)本發(fā)明的一個實施例,所述數(shù)據(jù)包處理的裝置還可以包括 CGA信息請求單元,生成并發(fā)送一個攜帶CGA擴展頭的IPv6報文,所 述CGA擴展頭中包含CGA請求選項,請求發(fā)送方發(fā)送CGA參數(shù)、簽名信息。 在一個實施例中,所述CGA信息請求單元可以包括
擴展頭生成單元,用于生成一個CGA擴展頭,所述CGA擴展頭中包括 CGA請求選項;
添加單元,用于將CGA擴展頭加入到IPv6報文的擴展頭中,生成一個攜 帶所述CGA擴展頭的IPv6報文;
發(fā)送單元,用于發(fā)送攜帶所述CGA擴展頭的IPv6報文。
根據(jù)本發(fā)明的一個實施例,所述數(shù)據(jù)包處理的裝置還可以包括-. 驗證確認單元,用于根據(jù)相關的配置信息,確認需要對IPv6報文的源地 址進行驗證。所述配置信息一般是來自上層協(xié)議,上層協(xié)議可以根據(jù)用戶的輸入、主機 默認的配置或者上層協(xié)議的安全性要求生成所述配置信息,并將配置信息通知 給網(wǎng)絡層。
如圖IO所示,本發(fā)明實施例中驗證單元13的一個實施例包括 序列號驗證單元131,用于驗證CGA參數(shù)中序列號的值,并在驗證通過
后傳輸所述IPv6報文;否則,輸出驗證不通過的驗證結(jié)果;
源地址認證單元132,用于根據(jù)CGA參數(shù),對IPv6報文頭中包含的源地
址進行認證;并在-險i正通過后傳輸所述IPv6才艮文;否則,輸出-驗證不通過的
驗證結(jié)果;
簽名驗證單元133,用于使用CGA參數(shù)中的公鑰對CGA簽名中的簽名 字段的內(nèi)容解密,將得到的內(nèi)容和IPv6報文中部分內(nèi)容串接的哈希值比較, 如果內(nèi)容一致,輸出驗證通過的驗證結(jié)果;否則,輸出驗證不通過的驗證結(jié)果。
本發(fā)明實施例中,通過將發(fā)送方的CGA參數(shù)、簽名信息以CGA擴展頭 加入到IPv6擴展頭中,接收方可以利用接收到的信息在網(wǎng)絡層實現(xiàn)對IPv6報 文的源地址進行驗證,為網(wǎng)絡層提供源地址驗證的方法,充分發(fā)揮CGA協(xié)議 源地址驗證的作用,使得本不可靠的網(wǎng)絡層,有了安全性保障;同時,由于在 網(wǎng)絡層進行安全驗證,該安全機制不限于某一種或幾種上層應用協(xié)議,具有應 用范圍廣泛、通用性強的特性。
顯然,本發(fā)明裝置實施例并不限制于IPv6報文。例如,在后續(xù)高于IPv6 版本的協(xié)議下的IP報文或者兼容IPv6的IP報文,只要該IP報文具備擴展頭, 都可以實施本發(fā)明,其實施的方式與上述實施例的裝置類似。
以上所述僅為本發(fā)明的幾個實施例,本領域的技術人員依據(jù)申請文件公開 的可以對本發(fā)明進行各種改動或變型而不脫離本發(fā)明的精神和范圍。
權利要求
1、一種數(shù)據(jù)包處理的方法,其特征在于,包括接收來自發(fā)送方的攜帶CGA擴展頭的IPv6報文;在網(wǎng)絡層,從所述IPv6報文中獲得所述CGA擴展頭,所述擴展頭中包括CGA參數(shù)、簽名信息;根據(jù)所述CGA參數(shù)、簽名信息,對IPv6報文的源地址進行驗證,輸出驗證結(jié)果;驗證通過,則向上層傳輸去除所述CGA擴展頭的IPv6報文。
2、 如權利要求1所述的方法,其特征在于,所述根據(jù)所述CGA參數(shù)、簽名信息,對IPv6才艮文的源地址進行驗證的步驟包括驗證CGA參數(shù)中序列號的值;根據(jù)CGA參數(shù),對IPv6報文頭中包含的源地址進行認證;使用CGA參數(shù)中的公鑰對CGA簽名中的簽名字段的內(nèi)容解密,將得到的內(nèi)容和IPv6報文中部分內(nèi)容串接的哈希值比較。
3、 如權利要求l所述的方法,其特征在于,還包括生成并發(fā)送一個攜帶CGA擴展頭的IPv6報文,所述CGA擴展頭中包含CGA請求選項,請求所述發(fā)送方發(fā)送CGA參數(shù)、簽名信息。
4、 如權利要求3所述的方法,其特征在于,生成并發(fā)送一個攜帶CGA擴展頭的IPv6報文的步驟包括生成一個CGA擴展頭,所述CGA擴展頭中包括CGA請求選項;將CGA擴展頭加入到IPv6報文的擴展頭中,生成一個攜帶所述CGA擴展頭的IPv6報文;向接收方發(fā)送攜帶CGA擴展頭的IPv6報文。
5、 如權利要求l所述的方法,其特征在于,還包括網(wǎng)絡層根據(jù)相關配置信息,確認需要對IPv6 "^艮文的源地址進行驗證。
6、 如權利要求l所述的方法,其特征在于,還包括驗證不通過,則丟棄所述IPv6報文,并向發(fā)送方發(fā)送錯誤報文。
7、 一種數(shù)據(jù)包處理的裝置,其特征在于,包括接收單元,用于接收來自發(fā)送方的攜帶CGA擴展頭的IPv6報文;CGA擴展頭獲取單元,用于從所述IPv6報文中獲得所述CGA擴展頭中攜帶的發(fā)送方的CGA參數(shù)、簽名信息;驗證單元,用于根據(jù)所述CGA參數(shù)、簽名信息,對IPv6報文的源地址進4亍驗證,并輸出驗i正結(jié)果;傳輸單元,用于當-瞼證結(jié)果為通過時,向上層傳輸去除所述CGA擴展頭的IPv6才艮文。
8、 如權利要求7所述的裝置,其特征在于,還包括錯誤處理單元,用于當驗證結(jié)果為不通過時,丟棄所述IPv6報文,并向發(fā)送方發(fā)送錯誤報文。
9、 如權利要求7或8所述的裝置,其特征在于,所述驗證單元包括序列號驗證單元,用于驗證CGA參數(shù)中序列號的值;源地址認證單元,用于根據(jù)CGA參數(shù),對IPv6報文頭中包含的源地址進行認證;簽名驗證單元,用于使用CGA參數(shù)中的公鑰對CGA簽名中的簽名字段的內(nèi)容解密,將得到的內(nèi)容和IPv6報文中部分內(nèi)容串接的哈希值比較,如果內(nèi)容一致,則輸出驗證通過的驗證結(jié)果。
10、 如權利要求7所述的裝置,其特征在于,還包括驗證確認單元,用于根據(jù)相關配置信息,確認需要對IPv6報文的源地址進行驗證。
11、 如權利要求7所述的裝置,其特征在于,還包括CGA信息請求單元,生成并發(fā)送一個攜帶CGA擴展頭的IPv6報文,所述CGA擴展頭中包含CGA請求選項,請求所述發(fā)送方發(fā)送CGA參數(shù)、簽名信息。
12、 如權利要求11所述的裝置,其特征在于,所述CGA信息請求單元包括擴展頭生成單元,用于生成一個CGA擴展頭,所述CGA擴展頭中包括CGA請求選項;添加單元,用于將CGA擴展頭加入到IPv6報文的擴展頭中,生成一個攜帶所述CGA擴展頭的IPv6報文;發(fā)送單元,用于發(fā)送攜帶所述CGA擴展頭的IPv6報文。
13、 一種數(shù)據(jù)包處理的方法,其特征在于,包括接收來自發(fā)送方的攜帶CGA擴展頭的IP報文;在網(wǎng)絡層,從所述IP報文中獲得所述CGA擴展頭,所述擴展頭中包括CGA參數(shù)、簽名信息;根據(jù)所述CGA參數(shù)、簽名信息,對IP報文的源地址進行驗證,輸出驗證結(jié)果;驗證通過,則向上層傳輸去除所述CGA擴展頭的IP報文。
14、 如權利要求13所述的方法,其特征在于,所述根據(jù)所述CGA參數(shù)、簽名信息,對IP報文的源地址進行驗證的步驟包括驗證CGA參數(shù)中序列號的值;根據(jù)CGA參數(shù),對IP報文頭中包含的源地址進行認證;使用CGA參數(shù)中的公鑰對CGA簽名中的簽名字段的內(nèi)容解密,將得到的內(nèi)容和IP報文中部分內(nèi)容串接的哈希值比較。
15、 如權利要求13所述的方法,其特征在于,還包括生成并發(fā)送一個攜帶CGA擴展頭的IP報文,所述CGA擴展頭中包含CGA請求選項,請求所述發(fā)送方發(fā)送CGA參數(shù)、簽名信息。
16、 如權利要求13所述的方法,其特征在于,生成并發(fā)送一個攜帶CGA擴展頭的IP報文的步驟包括生成一個CGA擴展頭,所述CGA擴展頭中包括CGA請求選項;將CGA擴展頭加入到IP報文的擴展頭中,生成一個攜帶所述CGA擴展頭的IPv6報文;向接收方發(fā)送攜帶CGA擴展頭的IP報文。
全文摘要
本發(fā)明實施例公開了一種數(shù)據(jù)包處理的方法和裝置。所述方法包括接收來自發(fā)送方的攜帶CGA擴展頭的IPv6報文;在網(wǎng)絡層,從所述IPv6報文中獲得所述CGA擴展頭,所述擴展頭中包括CGA參數(shù)、簽名信息;根據(jù)所述CGA參數(shù)、簽名信息,對IPv6報文的源地址進行驗證,輸出驗證結(jié)果;驗證通過,則向上層傳輸去除所述CGA擴展頭的IPv6報文。
文檔編號H04L12/56GK101640631SQ200810142580
公開日2010年2月3日 申請日期2008年7月28日 優(yōu)先權日2008年7月28日
發(fā)明者劉利鋒, 東 張 申請人:成都市華為賽門鐵克科技有限公司