欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于密碼學(xué)生成地址的源地址驗證裝置的制作方法

文檔序號:7701233閱讀:135來源:國知局
專利名稱:基于密碼學(xué)生成地址的源地址驗證裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明 一般地涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,更具體地涉及源地址驗證技術(shù)。
背景技術(shù)
互聯(lián)網(wǎng)上的采用偽造IP (Internet Protocol,互聯(lián)網(wǎng)協(xié)議)源地址的攻 擊相當(dāng)泛濫,據(jù)互聯(lián)網(wǎng)觀測組織的統(tǒng)計,每周至少有4000起采用偽造源地 址的拒絕服務(wù)攻擊。這類攻擊具有容易發(fā)起但是難以追溯的的特點,這是 造成偽造源地址攻擊泛濫的原因。
目前已經(jīng)有很多技術(shù)被提出來希望能控制這類攻擊。它們可以分為以 下三類
路徑過濾類(FUtering,過濾),這一類技術(shù)主要是使用路由信息來過濾 4卓一部分偽造源地址的凈艮文。典型的例子如入口過濾(Ingress filtering),就 是通過檢查網(wǎng)關(guān)上接收到的報文其源地址是否在接入子網(wǎng)的地址空間范圍 內(nèi),從而判斷報文是否合法;
端到端i/^L類(End-to-End Approach,端到端方法),這一類4支術(shù)在源端 給報文加入標(biāo)記,這一標(biāo)記在報文的目的端被檢查用來判斷報文中所含源 地址的真實性;
回溯類(Traceback,回溯),回溯類纟支術(shù)是一種^皮動的4支術(shù)。它希望獲 取報文在互聯(lián)網(wǎng)上所經(jīng)過的路徑,在攻擊發(fā)生時,通過分析報文路徑來獲 取攻擊源的;也址。
IPv6 (Internet Protocol version 6,因特網(wǎng)協(xié)議版本6 )的部署越來越廣 泛,保護(hù)IPv6源地址不被偽造也成了新的需求。但是,目前還沒有針對IPv6 源地址的細(xì)粒度^^徑過濾方案。由于IPv6源地址^:量更多,前綴級別的過 濾方案無法有效遏制偽造源地址攻擊,因此,需要一種主機粒度的IPv6源 地址l企證方案。盡管對交換機的修改可以達(dá)到主機粒度的IPv6源地址-驗證,但是這一類方案需要升級大量的二層設(shè)備,并且對網(wǎng)絡(luò)的構(gòu)建有很多限制。 因此,目前需要一種不依賴于底層接入設(shè)備的源地址驗證方案。

發(fā)明內(nèi)容
為了解決上述問題之一,本發(fā)明提出了一種源地址驗證裝置,包括主 機模塊和網(wǎng)關(guān)模塊。其中,所述主機模塊部署于主機上,用于生成公私鑰
對,生成CGA ( Cryptographically Generated Address,密碼學(xué)產(chǎn)生地址)地
址,控制獲取其他源地址,以及控制數(shù)據(jù)報文的發(fā)送;所述網(wǎng)關(guān)模塊部署 在驗證網(wǎng)關(guān)上,用于完成授權(quán)地址使用,分配密鑰種子,以及驗證報文中 的簽名。
本發(fā)明所提出的源地址驗證裝置可以不依賴于底層網(wǎng)絡(luò)設(shè)備,具有主 機級別粒度,并且支持所有源地址分配方式。


本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描 述中將變得明顯和容易理解,其中
圖1為根據(jù)本發(fā)明的一個實施例的源地址驗證裝置的示意圖;以及 圖2為根據(jù)本發(fā)明的 一個實施例的源地址驗證裝置操作的流程圖。
具體實施例方式
下面詳細(xì)描述本發(fā)明的實施例,所述實施例的示例在附圖中示出。下 面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解 釋為對本發(fā)明的限制。
如圖1所示為根據(jù)本發(fā)明的一個實施例的源地址驗證裝置的示意圖。 作為本發(fā)明的一個實施例,該源地址驗證裝置包括主機模塊和網(wǎng)關(guān)模塊, 其中主機模塊部署于主機上,用于生成公私鑰對,生成CGA (Cryptographically Generated Address, 密碼學(xué)產(chǎn)生地址)地址,控制獲取 其他源地址,以及控制數(shù)據(jù)報文的發(fā)送;網(wǎng)關(guān)模塊部署在驗證網(wǎng)關(guān)上,用 于完成授權(quán)地址使用,分配密鑰種子,以及驗證報文中的簽名。作為本發(fā)明的 一 個實施例,所述驗證網(wǎng)關(guān)包括部署在本地流量往外的 出口處的網(wǎng)絡(luò)設(shè)備和/或部署在靠近主機的路由器上的路由器模塊。
在圖l所示的實施例中,網(wǎng)關(guān)模塊被配置在接近主機的第一跳路由器
上。主機和路由器首先分別產(chǎn)生自己的公私鑰對和CGA地址,其后主機向 路由器申請地址An的使用權(quán)。路由器發(fā)現(xiàn)該地址沒有被使用,向主機發(fā)送 一個簽名種子SeedAn。此后主機和路由器分別根據(jù)簽名種子產(chǎn)生第一個簽 名SigAn。在主機向外發(fā)送報文時,里面會附加上簽名SigAn,路由器經(jīng)過 查表發(fā)現(xiàn)An和SigAn已經(jīng)被記錄,則轉(zhuǎn)發(fā)報文。對于攻擊者發(fā)送的源地 址An的報文,由于其中沒有簽名,路由器認(rèn)為是攻擊報文,丟棄報文。
作為本發(fā)明的一個實施例,所述主機模塊包括密鑰生成模塊、CGA地 址生成模塊、地址分配模塊、地址注冊模塊和報文發(fā)送模塊。其中
密鑰生成模塊用于生成公私鑰對,并采用 一個單向的哈希函數(shù)在公鑰 上進(jìn)行計算,獲得公鑰比特串;
CGA地址生成模塊用于從路由器公告中獲取一個地址前綴,或者使用 鏈路本地地址的地址前綴,以這個前綴結(jié)合所述公鑰比特串生成CGA地
址;
地址分配模塊用于使用所述CGA地址作為源地址,進(jìn)行地址分配,獲 耳又普通i也址;
地址注冊模塊用于向所述網(wǎng)關(guān)模塊注冊所述普通地址,并交換密鑰種
子;
報文發(fā)送模塊用于根據(jù)所述簽名種子產(chǎn)生簽名,在所需要發(fā)送的數(shù)據(jù) 才良文中添加此簽名,并發(fā)送該報文。
作為本發(fā)明的一個實施例,地址分配模塊包括無狀態(tài)地址分配模塊、
DHCPv6 ( Dynamic Host Configuration Protocol version 6, 動'態(tài)主才幾酉己置十辦 議版本6)地址分配模塊、CGA地址分配模塊和靜態(tài)地址分配模塊,其中, 無狀態(tài)地址分配模塊用于在處于無狀態(tài)的地址分配方式時,使用所述 CGA地址作為源地址,希望使用的地址作為目標(biāo)地址,發(fā)送Neighbor Solicitation (鄰居懇求)報文,所述鄰居懇求報文附加CGA選項頭,其中 包含產(chǎn)生所述CGA地址的公鑰以及RSA ( Ron Rivest, Adi Shamir,and Leonard Adleman,里韋斯特-沙米爾-阿德爾曼公鑰加密算法)選項頭, 其中包含所述密鑰生成模塊所產(chǎn)生的私鑰計算的對報文的簽名;如果在一 定時間內(nèi),該模塊沒有收到針對所述鄰居懇求的鄰居宣告報文,則將希望 使用的地址配置到本地接口;如果收到相應(yīng)的鄰居宣告報文,則重新生成 一個地址,再次發(fā)送所述鄰居懇求報文;
DHCPv6地址分配模塊用于使用所述CGA地址作為源地址發(fā)送 DHCPv6請求/確認(rèn)報文,所述DHCPv6請求/確認(rèn)(DHCPv6 R叫uest/Confirm )報文附加CGA選項頭,其中包含產(chǎn)生所述CGA地址的 乂〉鑰以及R S A選項頭,其中包含使用所述密鑰生成模塊所產(chǎn)生的私鑰計算 的對報文的簽名;
CGA地址分配模塊用于在主機使用CGA地址時,使用所述CGA地址 作為目標(biāo)地址發(fā)送鄰居懇求報文,報文附加CGA選項頭,其中包含產(chǎn)生所 述CGA地址的公鑰,以及RSA選項頭,其中包含使用所述密鑰生成模塊 所產(chǎn)生的私鑰計算的對報文的簽名;
靜態(tài)地址分配模塊用于在主機使用靜態(tài)地址時,將地址配置到本地接口 。
作為本發(fā)明的一個實施例,地址注冊才莫塊包括ICMP (Internet Control Message Protocol,互聯(lián)網(wǎng)控制報文協(xié)議)報文發(fā)送模塊、ICMP報文驗證 模塊和解密模塊,其中,
ICMP報文發(fā)送模塊用于使用所述CGA地址作為源地址,所述驗證網(wǎng) 關(guān)的地址為目的地址,發(fā)送第一ICMP報文,所述第一 ICMP報文中包括 希望使用的地址、CGA選項頭(CGA Option Header ) 、 RSA選項頭(RSA Option Header )以及CGA標(biāo)識選項頭和隨才幾字段,其中所述CGA選項頭 中包含產(chǎn)生所述CGA地址的公鑰,所述RSA選項頭中包含使用所述密鑰 生成模塊所產(chǎn)生的私鑰計算的對報文的簽名;
ICMP凈艮文驗證模塊用于在所述地址被所述驗證網(wǎng)關(guān)認(rèn)為可以被所述 主沖幾使用時,從驗證網(wǎng)關(guān)接收針對其希望使用的地址的第二 ICMP報文, 所述第二ICMP報文的目的地址是所述主機產(chǎn)生的CGA地址,源地址是所 述驗證網(wǎng)關(guān)的CGA地址,所述第二 ICMP報文中包括說明所述ICMP報文
10針對的主機申請的地址的字段,所述第二 ICMP報文包括CGA選項頭和相 應(yīng)的RSA選項頭,以及使用所述主機的公鑰加密之后的簽名種子;在沒有 收到回復(fù)的報文時,重新發(fā)送所述第一 ICMP報文或換用其他地址重新發(fā) 送所述第一ICMP報文;
解密模塊用于使用所述密鑰生成模塊所產(chǎn)生的私鑰對所述簽名種子解 密,獲得明文的簽名種子。
作為本發(fā)明的一個實施例,CGA標(biāo)識選項頭,為CGA地址,對于靜 態(tài)地址的情況,為對用戶標(biāo)識、隨機值和公鑰的哈希值,其中所述用戶標(biāo) 識是一個任意長字段,在靜態(tài)地址被分配時由用戶和驗證網(wǎng)關(guān)雙方共同保 存,且不能泄露給其他用戶。
作為本發(fā)明的一個實施例,報文發(fā)送模塊包括簽名生成模塊和簽名更 新模塊,其中
簽名生成模塊用于使用偽隨機數(shù)生成算法,根據(jù)所述簽名種子產(chǎn)生簽 名,在報文中增加選項頭,在其中放入所述簽名并發(fā)送所述報文;
簽名更新模塊用于在一個簽名使用 一個生命周期之后,根據(jù)所述偽隨 機數(shù)生成算法生成下一個簽名,并使用所述更新的簽名發(fā)送報文。
作為本發(fā)明的一個實施例,所述網(wǎng)關(guān)模塊包括配置模塊、密鑰種子分 配模塊和驗證模塊,其中,
配置模塊用于通過監(jiān)聽地址分配或手動配置建立源地址和所述主機的 CGA標(biāo)識或用戶標(biāo)識的綁定關(guān)系;
密鑰種子分配模塊用于接收所述主機對于源地址的申請,驗證所述主 機是否可以使用申請的地址,并向所述主機分配密鑰種子;
驗證模塊用于檢查所述主機發(fā)送的報文中所包括的簽名,對所述報文 的源地址進(jìn)4于-驗證。
作為本發(fā)明的 一個實施例,所述配置模塊包括靜態(tài)方式分配模塊、 DHCPv6方式分配才莫塊以及無狀態(tài)和CGA方式分配沖莫塊,其中,
靜態(tài)方式分配模塊用于在靜態(tài)地址方式時,手動配置用戶標(biāo)識和靜態(tài) ;也址的又于應(yīng)關(guān)系;
DHCPv6方式分配模塊用于在DHCPv6地址進(jìn)行分配時,監(jiān)聽DHCPv6請求/確認(rèn)報文,記錄其中的CGA標(biāo)識,在DHCP服務(wù)器返回DHCPv6回 復(fù)之后,記錄其中的地址,并將所述地址和之前記錄的所述CGA標(biāo)識綁定;
無狀態(tài)和CGA方式分配模塊用于對于無狀態(tài)分配的地址和CGA地址 不進(jìn)行預(yù)先的綁定操作。
作為本發(fā)明的一個實施例,所述密鑰種子分配模塊包括檢查模塊和分 配模塊,其中,
檢查模塊用于接收到達(dá)本地的特定類型的ICMP報文,檢查其中的RSA 簽名的正確性以及CGA選項頭和CGA標(biāo)識對應(yīng)關(guān)系的正確性;若4全查不 通過,則丟棄該報文,若檢查通過,則檢查具有所述CGA標(biāo)識的主機是否 具有權(quán)力使用其申請的地址,若是申請的是靜態(tài)地址,使用的CGA標(biāo)識是 否是公鑰、對應(yīng)用戶標(biāo)識和隨機數(shù)的正確哈希值,若是申請的是無狀態(tài)地 址或者CGA地址,是否是所述地址的第一個申請者,若是DHCP地址,是 否是所述配置模塊所記錄的綁定關(guān)系;
分配模塊用于在判斷所述主機有使用該地址的權(quán)力時,產(chǎn)生隨機值, 作為分配給所述主機的簽名種子,并從收到的ICMP報文中獲取所述主機 的公鑰,使用所述公鑰對簽名種子進(jìn)行加密,產(chǎn)生ICMP報文,ICMP報文 的源地址是所述驗證網(wǎng)關(guān)的CGA地址,目的地址是所述主機的CGA地址, 所述ICMP報文中用來存放加密后的簽名種子的字段,以及所述驗證網(wǎng)關(guān) 的CGA選項頭和RSA簽名,將所述ICMP報文發(fā)送給所述主機;在判斷 所述主機沒有使用其申請地址的權(quán)力時,丟棄所述主機發(fā)送的ICMP報文, 不進(jìn)行進(jìn)一步處理。
作為本發(fā)明的一個實施例,驗證模塊包括簽名綁定模塊、簽名驗證模 塊和簽名更新模塊,其中,
簽名綁定模塊用于使用和所述主機相同的算法通過簽名種子產(chǎn)生簽 名,并將報文申請的源地址和所述簽名以及報文的CGA地址進(jìn)行綁定;
簽名驗證模塊用于根據(jù)所述配置模塊確定的綁定檢查數(shù)據(jù)報文中源地 址和簽名的一致性;如果數(shù)據(jù)報文中源地址和簽名不一致,或者不具有簽 名,則丟棄報文,如果數(shù)據(jù)報文中源地址和簽名一致,則從報文中去除簽 名之后轉(zhuǎn)發(fā);簽名更新模塊用于在簽名使用 一個生命周期之后,通過簽名種子產(chǎn)生 下一個簽名,并使用新產(chǎn)生的簽名對報文源地址進(jìn)行驗證。
如圖2所示為根據(jù)本發(fā)明的一個實施例的源地址驗證裝置操作的流程
圖。如圖所示,包括以下步驟
步驟(l),在主機部署主機模塊。所述主機模塊具有如下功能生成公 私鑰對、生成CGA地址、控制獲取其他源地址、控制數(shù)據(jù)報文的發(fā)送;該 模塊按照如下步驟完成功能
步驟(l.l),在配置所述主機模塊之后,該模塊首先生成一個隨機的公 私鑰對(Kp, Ks);所述公私鑰對不得暴露給其他主機;此后,該模塊利 用上述公鑰,采用一個單向的哈希函數(shù)hash,該函數(shù)可以任何單向hash函 數(shù),例如對RSA摘要取前64位,在該公鑰上進(jìn)行計算,獲得一個64位的比 特串;
步驟(1.2),該模塊從路由器公告中獲取一個地址前綴P,或者使用鏈 路本地地址的地址前綴P,以這個前綴結(jié)合步驟(1.1 )中生成的64位比特 串,生成一個CGA地址,即Ah=P+hash(Kp);
步驟(1.3),該模塊使用該CGA地址作為源地址,進(jìn)入地址分配過程, 獲耳又一個普通地址An;各種地址分配方式下的工作流程如下
步驟(1.3.1),對于無狀態(tài)的地址分配方式,該模塊使用該CGA地址作 為源地址,希望4吏用的地址作為目標(biāo)地址,發(fā)送一個Neighbor Solicitation 報文,報文需要附加一個CGA選項頭,其中包含產(chǎn)生該CGA地址的公鑰, 同是還有一個RSA選項頭,其中包含使用步驟(1.1 )生成的私鑰計算的對 整個報文的簽名;如果在一段時間內(nèi)(例如,配置為2秒),該模塊沒有 收到4十對該Neighbor Solicitation(鄰居懇求)的Neighbor Advertisement(鄰 居宣告)報文,將希望使用的地址配置到本地接口 ;如果收到相應(yīng)的 Neighbor Advertisement報文,重新生成一個地址,再次發(fā)送上述才各式的 Neighbor Solicitation報文;
步驟(1.3.2),對于DHCPv6方式的地址分配,該模塊使用CGA地址作 為源地址發(fā)送DHCPv6 R叫uest/Confirm報文,報文需要附加一個CGA選 項頭,其中包含產(chǎn)生該CGA地址的/>鑰,同是還有一個RSA選項頭,其
13中包含使用步驟(1.1)生成的私鑰計算的對整個報文的簽名;
步驟(1.3.3),對于主機使用CGA地址的情況,主機可以直接使用該 CGA地址作為目標(biāo)地址發(fā)送Neighbor Solicitation報文,報文需要附加一個 CGA選項頭,其中包含產(chǎn)生該CGA地址的公鑰,同是還有一個RSA選項 頭,其中包含使用步驟(1.1)生成的私鑰計算的對整個報文的簽名;
步驟(1.3.4),對于主機使用靜態(tài)地址的情況,可以直接將地址配置到本 地接口 ;
步驟(1.4),該模塊向驗證網(wǎng)關(guān)注冊步驟(1.3)中獲取的普通地址An,并 交換一個密鑰種子SeedAn;所述驗證網(wǎng)關(guān),是指對源地址進(jìn)行檢查的網(wǎng)絡(luò) 設(shè)備,在步驟(2)中將對其進(jìn)行描述;所述密鑰種子,是一個256位的比特 串;本步驟的詳細(xì)描述如下
步驟(1.4.1),該模塊使用步驟(1.2)中生成的CGA地址Ah作為源地 址,驗證網(wǎng)關(guān)的地址為目的地址,發(fā)送一個ICMP報文,報文中使用一個 字段包含希望使用的地址,報文需要附加一個CGA選項頭,其中包含產(chǎn)生 該CGA地址的公鑰Kp, 一個RSA選項頭,其中包含使用步驟(1.1 )生 成的私鑰Ks計算的對整個報文的簽名,另外還有一個CGA標(biāo)識選項頭和 一個字段包含一個隨機值;所述CGA標(biāo)識選項頭, 一般情況下使用的是步 驟(1.2)中CGA地址本身Ah,對于靜態(tài)地址的情況,使用的是對用戶標(biāo)識、 上述隨機值和公鑰的哈希值;所述用戶標(biāo)識是一個任意長字段,它在靜態(tài) 地址^皮分配時由用戶和驗證網(wǎng)關(guān)雙方共同保存,且不能泄露給其他用戶;
步驟(1.4.2),在發(fā)送ICMP報文之后,如果該地址被驗證網(wǎng)關(guān)"i人為可以 被該主機使用,該主機模塊將從驗證網(wǎng)關(guān)收到一個針對其希望使用的地址 的ICMP報文,才艮文的目的地址是該主機產(chǎn)生的CGA地址,源地址是驗證 網(wǎng)關(guān)的CGA地址,報文中具有一個字段說明該報文針對的是主機申請的哪 一個i也址,同時包含一個CGA Option Header和一個相應(yīng)的RSA Option Header,報文另外包含一個字段,其中是使用主機的公鑰加密之后的簽名 種子;如果沒有收到回復(fù)的報文,主機需要重發(fā)步驟(1.4.1)中的ICMP報文, 或者換用其他地址再次發(fā)送該報文;
步驟(1.4.3),主機使用步驟(l.l)中產(chǎn)生的私鑰對簽名種子解密,獲得明文的簽名種子;
步驟(1.5),主機模塊根據(jù)簽名種子產(chǎn)生簽名SigAn,在所需要發(fā)送的 數(shù)據(jù)報文中添加此簽名,并發(fā)送該報文;報文中的簽名將被驗證網(wǎng)管檢查, 判斷其源地址的真實性;具體的步驟如下
步驟(1.5.1),主機模塊使用一個偽隨機數(shù)生成算法Pseudo,該算法可 以是現(xiàn)實已經(jīng)存在的偽隨機數(shù)生成算法,例如Fortuna(福特圖納)算法,根 據(jù)簽名種子產(chǎn)生一個簽名,即SigAn-Pseudo ( SeedAn );在報文中增加一 個選項頭,在其中放入該簽名;轉(zhuǎn)發(fā)報文;
步驟(1.5.2),每當(dāng)一個簽名使用一個生命周期之后,主機模塊根據(jù)上述 偽隨機數(shù)生成算法生成下一個簽名,并開始使用這個簽名;所述生命周期 是一段固定的時間,該時間可以被配置,驗證網(wǎng)關(guān)和主機必須使用相同的 生命周期;
作為本發(fā)明的一個實施例,驗證網(wǎng)關(guān)模塊的工作方式如下 步驟(2),在網(wǎng)絡(luò)中部署驗證網(wǎng)關(guān)模塊,該網(wǎng)關(guān)模塊可以是獨立的網(wǎng)絡(luò) 設(shè)備,部署在本地流量向外的出口處,或者是一個路由器模塊,部署在靠 近主機的第一跳路由器上;該網(wǎng)關(guān)模塊完成網(wǎng)關(guān)CGA地址的產(chǎn)生,授權(quán)地 址使用,分配密鑰種子,驗證報文中簽名的功能;該網(wǎng)關(guān)模塊按照如下步 驟進(jìn)行工作
步驟(2.1),驗證網(wǎng)關(guān)生成一個公私鑰對(p,s),或者手動配置一個公 私鑰對;基于公鑰和預(yù)先配置的單向哈希函數(shù)hash,該函數(shù)可以任何單向 hash函數(shù),例如對RSA摘要取前64位,產(chǎn)生一個64位的比特串;基于手 動配置或者其他協(xié)議獲取的網(wǎng)絡(luò)前綴P,結(jié)合前面產(chǎn)生的比特串,生成一 個CGA地址Ar=P+hash(p);使用這個CGA地址Ar作為源地址,向網(wǎng)絡(luò)進(jìn) 行RA公告,RA公告里面需要加上CGA選項頭和RSA簽名;此步驟沒有 在權(quán)利要求書和發(fā)明內(nèi)容中進(jìn)行對應(yīng),因為這部分是基本配置,屬于已經(jīng) 廣泛存在的內(nèi)容,因此不要求進(jìn)行保護(hù)。
步驟(2.2),驗證網(wǎng)關(guān)通過監(jiān)聽地址分配過程或者手動配置建立起源地 址和主機的CGA地址(或用戶標(biāo)識)的綁定關(guān)系;對于靜態(tài)地址,驗證網(wǎng) 關(guān)需要事先手動配置用戶標(biāo)識和靜態(tài)地址的對應(yīng)關(guān)系;對于其他類型的地址,步驟描述如下
步驟(2.2.1),對于DHCPv6分配的地址,驗證網(wǎng)關(guān)監(jiān)聽所有的DHCPv6 R叫uest/Confirm報文,記錄其中的CGA標(biāo)識;在DHCP服務(wù)器返回DHCPv6 Reply之后,記錄其中的地址,并將這個地址和前面記錄的CGA標(biāo)識綁定 起來;
步驟(2.2.2),對于無狀態(tài)分配的地址和CGA地址,驗證網(wǎng)管不進(jìn)行預(yù) 先的綁定操作;
步驟(2.3),驗證網(wǎng)關(guān)接收主機對于源地址的申請,-驗證主機是否可以 使用申請的地址,并向主機分配密鑰種子SeedAn;詳細(xì)的步驟描述如下 步驟(2.3.1),驗證網(wǎng)關(guān)接收到達(dá)本地的特定類型的ICMP報文,檢查其
沖全查不通過,丟棄該才艮文,否則,4企查具有該CGA標(biāo)識的主4幾是否具有權(quán) 力使用其申請的地址,即若是申請的是靜態(tài)地址,使用的CGA標(biāo)識是否 是公鑰、對應(yīng)用戶標(biāo)識和隨機數(shù)的正確哈希值,若是申請的是無狀態(tài)地址 或者CGA地址,是否是該地址的第一個申請者,若是DHCP地址,是否是 步驟(2.1.1)中記錄的綁定關(guān)系;
步驟(2.3.2),如果驗證網(wǎng)關(guān)經(jīng)過才企查判斷主機有使用該地址的權(quán)力,將 產(chǎn)生一個隨機值,作為分配給主機的簽名種子,并從收到的ICMP報文中 拿出主機的公鑰,使用這個公鑰對簽名種子進(jìn)行加密;然后,驗證網(wǎng)關(guān)產(chǎn) 生一個ICMP報文,其源地址是自己的CGA地址,目的地址是主機的CGA 地址,報文中包含一個字段用來存放加密后的簽名種子,另外還需要加上 驗證網(wǎng)關(guān)的CGA Option Header和RSA簽名;產(chǎn)生該ICMP報文之后,將 該報文發(fā)送給主機;如果驗證網(wǎng)管判斷主機沒有使用其申請地址的權(quán)力, 將直接丟棄主機發(fā)送的ICMP報文,不進(jìn)行進(jìn)一步處理;
步驟(2.4),驗證網(wǎng)關(guān)檢查主機發(fā)送的數(shù)據(jù)報文中所含的有的簽名 SigAn,對報文的源地址進(jìn)行驗證;詳細(xì)的步驟描述如下
步驟(2.4.1),驗證網(wǎng)關(guān)使用和主機相同的算法通過簽名種子產(chǎn)生簽名, 并將報文申請的源地址和該簽名,以及報文的CGA地址進(jìn)行綁定;
步驟(2.4.2),驗證網(wǎng)關(guān)依賴(2.3.1)建立的綁定4企查數(shù)據(jù)報文中源地址和簽名的一致性;如果發(fā)現(xiàn)數(shù)據(jù)報文中存在源地址和簽名不一致的情況,或 者不具有簽名,直接丟棄報文,否則,從報文中去除簽名之后轉(zhuǎn)發(fā);
步驟(2.4.3),每當(dāng)一個簽名使用一個生命周期之后,通過簽名種子產(chǎn)生 下一個簽名,并使用新產(chǎn)生的簽名對報文源地址進(jìn)行驗證。
作為本發(fā)明的一個實施例,主要的數(shù)據(jù)結(jié)構(gòu)是驗證網(wǎng)關(guān)模塊所使用的 過濾表,驗證網(wǎng)關(guān)模塊利用該表對報文的簽名進(jìn)行檢查。該表的表項具有 如下表1的結(jié)構(gòu)
表l:驗證網(wǎng)關(guān)所使用的過濾表
授權(quán)的 源地址當(dāng)前簽 名前一個 簽名CGA地 址CGA公 鑰地址生 存期簽名種 子隨機 數(shù)
128 比 特128 比 特128 比 特128比特384比特32比特256比 特32 比 特
作為本發(fā)明的 一個實施例,過濾表以授權(quán)的源地址和CGA公鑰作為索引。
作為本發(fā)明的一個實施例,步驟(1.4.1)中,主機發(fā)送給驗證網(wǎng)關(guān)的 ICMP l艮文具有如下表2的才各式
表2:主機發(fā)送給驗證網(wǎng)關(guān)的ICMP報文格式
類型(l字節(jié))類型(l字節(jié))校驗和(2字節(jié))
申請使用的地址(16字節(jié))
隨機數(shù)(4字節(jié)) CGA選項頭(可變長)
RSA簽名(可變長)
作為本發(fā)明的一個實施例,步驟(2.3.1)中,驗證網(wǎng)關(guān)發(fā)送給主機的 ICMP報文具有如下表3所示的格式表3:-險證網(wǎng)關(guān)發(fā)送給主機的ICMP報文格式
類型(l字節(jié))類型(l字節(jié))校驗和(2字節(jié))
申請使用的地址(16字節(jié))
簽名種子(32字節(jié))
CGA選項頭(可變長)
RSA簽名(可變長)
本發(fā)明的實施例提出了一種可以不依賴于底層網(wǎng)絡(luò)設(shè)備的、具有主機 級別粒度的、支持所有源地址分配方式的IPv6源地址驗證方案。其使用 CGA技術(shù),在不引入PKI (Public Key Infrastructure,公鑰基礎(chǔ)設(shè)施)的基 礎(chǔ)上達(dá)到安全的密鑰使用,并使用輕量的簽名技術(shù)對報文的源地址進(jìn)行驗 證。它可以作為獨立的專用網(wǎng)絡(luò)設(shè)備實現(xiàn),也可以嵌入路由器作為擴展部 件。
盡管已經(jīng)示出和描述了本發(fā)明的實施例,對于本領(lǐng)域的普通技術(shù)人員 而言,可以理解在不脫離本發(fā)明的原理和精神的情況下可以對這些實施例 進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由所附權(quán)利要求及其等 同限定。
權(quán)利要求
1、一種源地址驗證裝置,其特征在于,包括主機模塊和網(wǎng)關(guān)模塊,其中,所述主機模塊部署于主機上,用于生成公私鑰對,生成密碼學(xué)產(chǎn)生地址CGA地址,控制獲取其他源地址,以及控制數(shù)據(jù)報文的發(fā)送;以及所述網(wǎng)關(guān)模塊部署在驗證網(wǎng)關(guān)上,用于完成授權(quán)地址使用,分配密鑰種子,以及驗證報文中的簽名。
2、 根據(jù)權(quán)利要求1所述的源地址驗證裝置,其特征在于,所述驗證網(wǎng) 關(guān)包括部署在本地流量往外的出口處的網(wǎng)絡(luò)設(shè)備和/或部署在靠近主機的 路由器上的路由器模塊。
3、 根據(jù)權(quán)利要求1所述的源地址驗證裝置,其特征在于,所述主機模 塊包括密鑰生成模塊、CGA地址生成模塊、地址分配模塊、地址注冊模塊 和報文發(fā)送模塊,其中,所述密鑰生成模塊用于生成公私鑰對,并采用一個單向的哈希函數(shù)在 公鑰上進(jìn)行計算,獲得公鑰比特串;所述CGA地址生成模塊用于從路由器公告中獲取一個地址前綴,或者 4吏用4連路本地地址的地址前綴,以這個前綴結(jié)合所述公鑰比特串生成CGA 地址;所述地址分配模塊用于使用所述CGA地址作為源地址,進(jìn)行地址分 配,獲取普通地址;所述地址注冊模塊用于向所述網(wǎng)關(guān)模塊注冊所述普通地址,并交換密 鑰種子;所述報文發(fā)送模塊用于根據(jù)所述簽名種子產(chǎn)生簽名,在所需要發(fā)送的 數(shù)據(jù)報文中添加此簽名,并發(fā)送該報文。
4、 根據(jù)權(quán)利要求3所述的源地址驗證裝置,其特征在于,所述地址分 配模塊包括無狀態(tài)地址分配模塊、動態(tài)主機配置協(xié)議版本6 DHCPv6地址 分配模塊、CGA地址分配模塊和靜態(tài)地址分配才莫塊,其中,所述無狀態(tài)地址分配模塊用于在處于無狀態(tài)的地址分配方式時,使用所述CGA地址作為源地址,希望使用的地址作為目標(biāo)地址,發(fā)送鄰居懇求 報文,所述鄰居懇求報文附加CGA選項頭,其中包含產(chǎn)生所述CGA地址 的公鑰以及里韋斯特-沙米爾-阿德爾曼公鑰加密算法RSA選項頭,其中包 含所述密鑰生成模塊所產(chǎn)生的私鑰計算的對報文的簽名;如果在一定時間 內(nèi),該模塊沒有收到針對所述鄰居懇求的鄰居宣告報文,則將希望使用的 地址配置到本地接口;如果收到相應(yīng)的鄰居宣告報文,則重新生成一個地 址,再次發(fā)送所述鄰居懇求報文;所述DHCPv6地址分配模塊用于使用所述CGA地址作為源地址發(fā)送 DHCPv6請求/確認(rèn)報文,所述DHCPv6請求/確認(rèn)報文附加CGA選項頭, 其中包含產(chǎn)生所述CGA地址的乂>鑰以及RSA選項頭,其中包含使用所述 密鑰生成模塊所產(chǎn)生的私鑰計算的對報文的簽名;所述CGA地址分配才莫塊用于在主機使用CGA地址時,使用所述CGA 地址作為目標(biāo)地址發(fā)送鄰居懇求報文,報文附加CGA選項頭,其中包含產(chǎn) 生所述CGA地址的7>鑰,以及RSA選項頭,其中包含使用所述密鑰生成 模塊所產(chǎn)生的私鑰計算的對報文的簽名;所述靜態(tài)地址分配模塊用于在主機使用靜態(tài)地址時,將地址配置到本 地接口 。
5、根據(jù)權(quán)利要求3所述的源地址驗證裝置,其特征在于,所述地址注 冊模塊包括互聯(lián)網(wǎng)控制報文協(xié)議ICMP報文發(fā)送模塊、ICMP報文驗證模塊 和解密模塊,其中,所述ICMP報文發(fā)送模塊用于使用所述CGA地址作為源地址,所述驗 證網(wǎng)關(guān)的地址為目的地址,發(fā)送第一ICMP報文,所述第一ICMPl艮文中 包括希望使用的地址、CGA選項頭、RSA選項頭以及CGA標(biāo)識選項頭和 隨^/l字^a,其中所述CGA選項頭中包含產(chǎn)生所述CGA地址的^^鑰,所述 RSA選項頭中包含使用所述密鑰生成模塊所產(chǎn)生的私鑰計算的對報文的簽名;所述主機使用時,從驗證網(wǎng)關(guān)接收針對其希望使用的地址的第二 ICMP報 文,所述第二 ICMP報文的目的地址是所述主機產(chǎn)生的CGA地址,源地址是所述驗證網(wǎng)關(guān)的CGA地址,所述第二ICMP才艮文中包括說明所述ICMP 報文針對的主機申請的地址的字段,所述第二 ICMP報文包括CGA選項頭 和相應(yīng)的RSA選項頭,以及使用所述主機的公鑰加密之后的簽名種子;在 沒有收到回復(fù)的才艮文時,重新發(fā)送所述第一 ICMP才艮文或換用其他地址重 新發(fā)送所述第一 ICMP報文;所述解密模塊用于使用所述密鑰生成模塊所產(chǎn)生的私鑰對所述簽名種 子解密,獲得明文的簽名種子。
6、 根據(jù)權(quán)利要求5所述的源地址驗證裝置,其特征在于, 所述CGA標(biāo)識選項頭,為所述CGA地址,對于靜態(tài)地址的情況,為對用戶標(biāo)識、隨機值和公鑰的哈希值,其中所述用戶標(biāo)識是一個任意長字 段,在靜態(tài)地址被分配時由用戶和驗證網(wǎng)關(guān)雙方共同保存,且不能泄露給 其他用戶。
7、 根據(jù)權(quán)利要求3所述的源地址驗證裝置,其特征在于,所述報文發(fā) 送模塊包括簽名生成模塊和簽名更新模塊,其中所述簽名生成模塊用于使用偽隨機數(shù)生成算法,根據(jù)所述簽名種子產(chǎn) 生簽名,在報文中增加選項頭,在其中放入所述簽名并發(fā)送所述報文;所述簽名更新模塊用于在一個簽名使用一個生命周期之后,根據(jù)所述 偽隨機數(shù)生成算法生成下一個簽名,并使用所述更新的簽名發(fā)送報文。
8、 根據(jù)權(quán)利要求1所述的源地址驗證裝置,其特征在于,所述網(wǎng)關(guān)模 塊包括配置模塊、密鑰種子分配模塊和驗證模塊,其中,所述配置模塊用于通過監(jiān)聽地址分配或手動配置建立源地址和所述主 機的CGA標(biāo)識或用戶標(biāo)識的綁定關(guān)系;所述密鑰種子分配模塊用于接收所述主機對于源地址的申請,驗證所 述主機是否可以使用申請的地址,并向所述主機分配密鑰種子;所述驗證模塊用于檢查所述主機發(fā)送的報文中所包括的簽名,對所述 報文的源地址進(jìn)行驗證。
9、 根據(jù)權(quán)利要求8所述的源地址驗證裝置,其特征在于,所述配置模 塊包括l爭態(tài)方式分配才莫塊、DHCPv6方式分配才莫塊以及無狀態(tài)和CGA方式 分配模塊,其中,所述靜態(tài)方式分配模塊用于在靜態(tài)地址方式時,手動配置用戶標(biāo)識和靜態(tài)地址的對應(yīng)關(guān)系;所述DHCPv6方式分配4莫塊用于在DHCPv6地址進(jìn)行分配時,監(jiān)聽 DHCPv6請求/確認(rèn)報文,記錄其中的CGA標(biāo)識,在DHCP服務(wù)器返回 DHCPv6回復(fù)之后,記錄其中的地址,并將所述地址和之前記錄的所述CGA 標(biāo)識綁定;所述無狀態(tài)和CGA方式分配模塊用于對于無狀態(tài)分配的地址和CGA 地址不進(jìn)行預(yù)先的綁定操作。
10、 根據(jù)權(quán)利要求8所述的源地址驗證裝置,其特征在于,所述密鑰 種子分配模塊包括檢查模塊和分配模塊,其中,所述檢查模塊用于接收到達(dá)本地的特定類型的ICMP報文,檢查其中 的RSA簽名的正確性以及CGA選項頭和CGA標(biāo)識對應(yīng)關(guān)系的正確性;若 斗企查不通過,則丟棄該才艮文,若4企查通過,則纟企查具有所述CGA標(biāo)識的主 機是否具有權(quán)力使用其申請的地址,若是申請的是靜態(tài)地址,使用的CGA 標(biāo)識是否是公鑰、對應(yīng)用戶標(biāo)識和隨機數(shù)的正確哈希值,若是申請的是無 狀態(tài)地址或者CGA地址,是否是所述地址的第一個申請者,若是DHCP 地址,是否是所述配置模塊所記錄的綁定關(guān)系;所述分配模塊用于在判斷所述主機有使用該地址的權(quán)力時,產(chǎn)生隨機 值,作為分配給所述主機的簽名種子,并從收到的ICMP報文中獲取所述 主機的公鑰,使用所述公鑰對簽名種子進(jìn)行加密,產(chǎn)生ICMP報文,ICMP 報文的源地址是所述驗證網(wǎng)關(guān)的CGA地址,目的地址是所述主機的CGA 地址,所述ICMP報文中用來存放加密后的簽名種子的字段,以及所述驗 證網(wǎng)關(guān)的CGA選項頭和RSA簽名,將所述ICMP報文發(fā)送給所述主機; 在判斷所述主機沒有使用其申請地址的權(quán)力時,丟棄所述主機發(fā)送的ICMP 報文。
11、 根據(jù)權(quán)利要求8所述的源地址驗證裝置,其特征在于,所述驗證 模塊包括簽名綁定模塊、簽名驗證模塊和簽名更新模塊,其中,所述簽名綁定模塊用于使用和所述主機相同的算法通過簽名種子產(chǎn)生 簽名,并將報文申請的源地址和所述簽名以及才艮文的CGA地址進(jìn)行綁定;所述簽名驗證模塊用于根據(jù)所述配置模塊確定的綁定檢查數(shù)據(jù)報文中源地址和簽名的一致性;如果數(shù)據(jù)報文中源地址和簽名不一致,或者不具 有簽名,則丟棄報文,如果數(shù)據(jù)報文中源地址和簽名一致,則從報文中去 除簽名之后轉(zhuǎn)發(fā);所述簽名更新模塊用于在簽名使用 一個生命周期之后,通過簽名種子 產(chǎn)生下一個簽名,并使用新產(chǎn)生的簽名對報文源地址進(jìn)行驗證。
12、根據(jù)權(quán)利要求1-11任一項所述的源地址驗證裝置,其特征在于, 所述源地址包括IPv6源地址。
全文摘要
本發(fā)明提出了一種源地址驗證裝置,包括主機模塊和網(wǎng)關(guān)模塊。其中,所述主機模塊部署于主機上,用于生成公私鑰對,生成密碼學(xué)產(chǎn)生地址CGA地址,控制獲取其他源地址,以及控制數(shù)據(jù)報文的發(fā)送;所述網(wǎng)關(guān)模塊部署在驗證網(wǎng)關(guān)上,用于完成授權(quán)地址使用,分配密鑰種子,以及驗證報文中的簽名。本發(fā)明所提出的源地址驗證裝置可以不依賴于底層網(wǎng)絡(luò)設(shè)備,具有主機級別粒度,并且支持所有源地址分配方式。
文檔編號H04L29/06GK101610255SQ200910088189
公開日2009年12月23日 申請日期2009年7月10日 優(yōu)先權(quán)日2009年7月10日
發(fā)明者吳建平, 廣 姚, 軍 畢 申請人:清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
黎城县| 辰溪县| 辽源市| 湘西| 灵山县| 崇仁县| 扎兰屯市| 房产| 渝中区| 广南县| 海原县| 阿坝县| 吉林省| 精河县| 大庆市| 乡城县| 田林县| 家居| 肥城市| 拜泉县| 灵宝市| 聂拉木县| 庆云县| 怀来县| 高碑店市| 姚安县| 石阡县| 高尔夫| 凌源市| 定陶县| 兴业县| 历史| 浪卡子县| 屯门区| 鄂尔多斯市| 铁岭县| 略阳县| 克什克腾旗| 高淳县| 屏东县| 北安市|