專利名稱:分層洋蔥環(huán)路由方法
技術領域:
本發(fā)明屬于網(wǎng)絡安全技術領域,涉及到網(wǎng)絡中路由協(xié)議的安全方法,具體是分層洋蔥環(huán) 路由方法,通過使用密碼學和冗余機制來保護網(wǎng)絡隱私不受全局性和侵略性的攻擊。
背景技術:
在無線Mesh網(wǎng)絡中,有一些活躍節(jié)點,它們會進行一些機密的商業(yè)活動。為了不讓外 界察覺到,這些活躍節(jié)點必須進行匿名通信,匿名通信要求1)不讓外界知道會話的內容; 2)不讓外界知道誰發(fā)起這次會話。這種保護對于網(wǎng)絡安全通信是非常重要的。但是,目前的 匿名通信現(xiàn)狀要么無法阻止手段狡猾的攻擊;要么是以浪費大量的帶寬為代價換取一定級別 的匿名性。
文獻"在Mesh網(wǎng)絡中達到隱私保護"(Achieving Privacy in Mesh Networks", Proc. of the SASN'06, pp.13 - 22, Oct., 2006)。提出了一種基于洋蔥路由器的環(huán)形安全通信模式。改方案 的主要思想是在一個簡單的環(huán)結構中,為了抵御全局性攻擊,設計一個環(huán)形的洋蔥路由協(xié) 議,使通信開始于網(wǎng)關,也終于網(wǎng)關。所有的通信方式都要按同一個方向進行,要么順時針, 要么逆時針。這樣就算外部攻擊者進行通信量分析,也無法分析出哪個節(jié)點是初始節(jié)點和目 的節(jié)點。其次就算在路由環(huán)中有惡意節(jié)點并且知道拓撲結構,也無法追蹤出初始節(jié)點和目的 節(jié)點。因為它只能跟蹤出一個環(huán)形的路徑,在環(huán)形路徑中,敵手無法分析出誰是初始節(jié)點, 誰是目的節(jié)點。但是該方案又引起了一種新型的攻擊,稱為交集攻擊。例如一個Mesh節(jié)點 通過環(huán)形路徑與Internet相連接的會話, 一段時間后,這個Mesh節(jié)點又訪問同一個Internet 地址,但是它是通過另一個環(huán)來進行會話的。這時如果敵手監(jiān)聽網(wǎng)關,發(fā)現(xiàn)這是一個非常特 殊的地址,基于觀察,敵手可以得出一個結論,會話發(fā)起者也就是初始節(jié)點,很可能是這兩 個環(huán)中的交集,那么這個通信的匿名性就會受到威協(xié)。另外,該方案的環(huán)形路徑只能通過網(wǎng) 關建立,并且所有的通信過程都是從網(wǎng)關開始的,這樣會給網(wǎng)關帶來很大的計算負荷。
發(fā)明內容
本發(fā)明要解決的技術問題是克服現(xiàn)有Mesh網(wǎng)絡存在的交集攻擊問題,同時為了保證環(huán)通信的有效性,提供了一種分層洋蔥環(huán)路由方法,它可以有效的抵抗交集攻擊,提高網(wǎng)絡 通信安全,并且有效減輕網(wǎng)關的負擔,降低網(wǎng)關的路由表記錄量,更好利用網(wǎng)絡資源,減少 延遲。
本發(fā)明為了在Mesh網(wǎng)絡進行安全的匿名通信,把整個通信過程分為三個部分環(huán)的初 始化,環(huán)間通信和通信結束。在無線Mesh網(wǎng)絡中,把節(jié)點分為三類網(wǎng)關,可信任節(jié)點, 普通節(jié)點,OP節(jié)點(OnionProxy)和網(wǎng)關G是誘導節(jié)點,它們每隔一段時間向它附近的OP節(jié)
點發(fā)送一個誘導信息載體(dummy包)。OP節(jié)點在環(huán)的初始化過程中起到了第一層路由和第 二層路由的選擇作用,在以后的通信過程中,它的作用和普通節(jié)點巧相同。為了便于理解, 將匿名集和分層路由的概念作以介紹-
匿名集設R為網(wǎng)絡中所有OP節(jié)點和網(wǎng)關G組成的集合,則稱滿足如下條件 a必須包括元素G;
b集合中的所有元素是以拓撲結構在網(wǎng)絡中形成哈密爾頓回路的R的子集為匿名集。對 這些匿名集進行標號。在網(wǎng)絡中,網(wǎng)關G和OP節(jié)點共享這些有編號的匿名集。
分層路由本發(fā)明把路由分為兩層。第一層路由洋蔥環(huán)路由助、議中,稱由匿名集中元 素形成的路徑為第一層路由,也就是由可信節(jié)點和網(wǎng)關組成的路徑。第一層路由主要由不相 鄰的可信節(jié)點組成環(huán)形。第二層路由在可信節(jié)點之間由普通節(jié)點填充后的構成的環(huán)路稱為 第二層路由,也稱為下一層路由。第二層路由是在初始化過程中由OP節(jié)點和網(wǎng)關隨機選擇 的。它主要是進行對路徑的填充。 一、環(huán)的初始化
本發(fā)明把環(huán)的初始化分為以下幾個步驟 第l歩封裝過程
首先OP節(jié)點(即匿名集中第一個元素)選擇第一層路由,也就是有標號的匿名集,
按照匿名集中節(jié)點的順序封裝洋蔥包,在其后附加一個dvimniy包。
包格式如下
{build},五—[(RI, /t功,OP2), [(RI, 、2, G), £一 (RI, dummy ;
{build}:包頭,表示建環(huán)信息,告訴節(jié)點要進行環(huán)的初始化;
i^:公鑰加密,用于封裝洋蔥包;0P1節(jié)點用自己的公鑰5—p,加密最外層包,即環(huán) 號RI、自己的會話密鑰、。,、下一條地址OP2,以及匿名集中第二個節(jié)點封裝的第二層洋蔥包。當OP2節(jié)點收到這個洋蔥包時,就可以確定下一跳發(fā)往哪兒。以此類推。
RI:環(huán)號,在網(wǎng)絡中可能同時有很多環(huán)進行通信,為了保證環(huán)號的不重復性,RI由 匿名集號和建環(huán)時間組成。
會話密鑰,節(jié)點Z與網(wǎng)關G的會話密鑰;是各個節(jié)點在此環(huán)通信時的會話密鑰,
會話密鑰是根據(jù)環(huán)的建立而建立的,當環(huán)通信結束時,此次會話密鑰的使命就完成了, 下次通信要重新建立會話密鑰。
"表示時間戳,用來檢測消息的實時性;
dummy:誘導信息,可以由任意非重要的信息組成。
然后OP節(jié)點再選擇到匿名集中到第二個元素的第二層路由,嚴格按照第二層路由 的順序封裝洋蔥包,并且分配好此次通信過程中環(huán)中上行鏈路的一次性會話密鑰(隨機數(shù)
^ 1,夂,&2,…,、2)。
這些分配好的一次性會話密鑰是要告訴網(wǎng)關G的,這樣網(wǎng)關就知道了上行鏈路的具 體路徑,而下行鏈路的一次性密鑰由網(wǎng)關分配。
從匿名集中第一個節(jié)點發(fā)送到第二個節(jié)點的包格式如下
(buikU,i^,[(RI,、,F(xiàn)2),五w[(RI,/t2,F0,…,五—p2((RI,^,G), ^(RI,人;,H…,、2,O)]],d畫my
巧網(wǎng)絡中的普通節(jié)點。
/C,.: 一次性會話密鑰
當OPl節(jié)點發(fā)送建環(huán)信息時,就封裝好洋蔥包,洋蔥包是一層層的。dummy表示誘
導信息,用節(jié)點巧的公鑰加密第一層包,包里包括環(huán)號RI,會話密鑰&和下一跳節(jié)點《 的IP地址。以此類推。最內層包由網(wǎng)關的公鑰封裝所有上行鏈路的節(jié)點的會話密鑰 、,,H...,、2,時間戳f和環(huán)號RI組成的。
將上述包格式簡化如下-
{build},—(i^,(i^2, ,,,(£—2(5^(m,)),diimmy,其中"-{RIM—A, V ,,、2};
環(huán)中的所有OP節(jié)點都是如此進行封裝洋蔥包的,例如OP2和網(wǎng)關G。 當匿名集中的第二個節(jié)點OP2接收到初始化信息時,它同理第一個元素的進行路徑選 擇和封裝洋蔥包,但是直接轉發(fā)dummy包。如下{build}^— (.. .(~。p3),£,碟)))), £二2(...《(dummy)),其中m2={、2入,,…,0
公鑰解密。第2步信息轉發(fā)過程
在信息轉發(fā)過程中,環(huán)中的沒有數(shù)據(jù)要發(fā)送的普通巧節(jié)點只進行解密這個洋蔥包和dummy包,然后把解密后的消息發(fā)給下一個節(jié)點;如下{build} (... (£—2 (五扭—,))),《,(dummy);第3步會話接入請求過程
當普通節(jié)點《想進行通信時,用接入請求信息來替代層層解密的dummy包;
{build} ,&(,+,)(五鐘+2)(…~g 《(request);第4步網(wǎng)關處理過程
當網(wǎng)關G收到從0P1節(jié)點發(fā)過來的包,就確定了會話發(fā)起者。如果網(wǎng)關同意這個請求,它根據(jù)環(huán)號和匿名集來確定另一半環(huán)路徑。網(wǎng)關G嚴格封裝一個洋蔥包發(fā)送給會話發(fā)起者。這個洋蔥包包含了從會話發(fā)起者到距其最近的OP節(jié)點或網(wǎng)關的上行鏈路的所有會話密鑰。這樣同意信息就可以從網(wǎng)關到達會話發(fā)起者進行通信。包格式如下
{buiid} 。..五—(-.,(&#;,,人,g畫t))));
在會話接入請求中遵循擦除機制,如果在環(huán)中有兩個節(jié)點想同時進行會話,那么后一個節(jié)點的請求信息將會擦掉前一個節(jié)點的請求信息。而在這個環(huán)中前一個節(jié)點不會得到同意信息,只能等待下一個環(huán)的載體到來時,重新發(fā)送請求。二、環(huán)間通信
在環(huán)初始化之后,網(wǎng)關G就確定了會話發(fā)起者,并且已經(jīng)把部分路徑的會話密鑰發(fā)送給了它。這時如果會話發(fā)起者正確的收到網(wǎng)關G所發(fā)送過來的包,還是以分層會話方式與網(wǎng)關G通信。在環(huán)間通信過程中,OP節(jié)點或網(wǎng)關G用會話密鑰加密洋蔥包,這樣可以大大減少計算量,并且加解密速度快。每次建立環(huán)時,都要重新分配會話密鑰,這樣也可以減少敵手篡改洋蔥包的機會。因為如果敵手知道了整個環(huán)形的路徑,它就可以用
公鑰封裝洋蔥包來冒充環(huán)中的節(jié)點。節(jié)點巧用會話密鑰封裝一個到距其最近的OP節(jié)點或
網(wǎng)關G洋蔥包,與其進行會話。當距其最近的OP節(jié)點收到包,同理選擇第二層路由與發(fā)解密后的洋蔥包。
會話發(fā)起者到網(wǎng)關G的通信過程如下
《—《+1 : {RI} (&(,+2) (■., (£紐(data,ack》))); 《+1 —《+2: {RI}, A(,+2)(…(U&(A,(data,ack)))));
F。一 OP : {RI}A .(data,aCk)))));
OP —F。P+, : {RI}^(—)(A(—)(…(&(五5,.(data,ack)))));
4—G :則,^(^(data,ack));
(RI)是包頭,它就表示了環(huán)已經(jīng)建立好了,開始進行通信。五,表示用私鑰加密?!阺, 表示用節(jié)點《的私鑰加密。data是發(fā)送信息內容。ack表示正確收到包后發(fā)送的一個消息
認證碼,用來證明通信雙方確實收到了包。
當網(wǎng)關G收到這個載體包后,它用自己的私鑰和節(jié)點S的公鑰解密這個包,來確定
這個包是發(fā)給自己的和這個包是節(jié)點《發(fā)送過來的。當網(wǎng)關G收到消息,它計算ack值,
如果雙方ack的值一樣,證明它們正確的收到包,然后進行以后的通信;如果不一樣那么 就是沒有正確收到包。
網(wǎng)關G根據(jù)環(huán)號和匿名集封裝一個到節(jié)點《的包,包格式如下
{RI} (data))))。
網(wǎng)關G到節(jié)點巧通信過程如下
G《{RI} & (;+)( ,. (£。pl (data))))));
&^F ,+1 : {RI}(4(data))));
OP"巧則AH.(^(data))));
《{RI},,sg(data》;三、通信結束
通信一段時間之后,如果雙方都沒有數(shù)據(jù)要發(fā)送時,那么網(wǎng)關G就封裝一個到OP節(jié)點 的空內容的洋蔥包,證明了通信結束。
但還有一種情況就是網(wǎng)關G沒有數(shù)據(jù)給會話發(fā)起者,而會話發(fā)起者還有數(shù)據(jù)要發(fā)送給網(wǎng) 關。本發(fā)明保證了在通信過程中網(wǎng)關G發(fā)送的信息一定到達會話發(fā)起者。所以會話發(fā)起者一 直可以發(fā)送數(shù)據(jù)到網(wǎng)關通過環(huán)。因為會話開始于OP節(jié)點,終結于OP節(jié)點。所以當會話發(fā)起 者沒有信息要發(fā)送時,這時會話發(fā)起者就發(fā)送一個空內容的包給網(wǎng)關G,這時網(wǎng)關就知道信 息發(fā)送完了,這時再封裝一個到OP節(jié)點的空內容的洋蔥包,證明通信結束。也就是說初始 化后,當OP節(jié)點收到一個到自己的包時,或網(wǎng)G收到空內容的包時,就證明通信結束。
但是也可能會發(fā)生一種情況,就是一個環(huán)內有兩個會話發(fā)起者。如果遇到這種情況,后 一個會話發(fā)起者總是會加密已經(jīng)被前一個初始節(jié)點加密過的dummy信息,來與網(wǎng)關G進行會
話。而前面一個會話發(fā)起者只能等待下一個環(huán)進行通話。這雖然會造成時延,但是網(wǎng)絡中同 時會有其他環(huán)進行通信。
本發(fā)明與現(xiàn)有技術相比較具有如下有益效果
① 本發(fā)明通過使用分層洋蔥環(huán)通信協(xié)議,匿名集的OP節(jié)點和網(wǎng)關共同參與到路由選
擇過程中,可以有效的混淆路徑阻止交集攻擊。
② OP節(jié)點或網(wǎng)關用會話密鑰加密洋蔥包,這樣可以大大減少計算量,并且加解密速
度快。每次建立環(huán)時,都要重新分配會話密鑰,這樣也可以減少敵手篡改洋蔥包的機會。
③ 采用分層洋蔥路由算法實現(xiàn)了路由合并功能,大大降低了網(wǎng)關對路由表的記錄量, 有效減輕網(wǎng)關的負擔,并且可以加速建環(huán)過程,更好地利用網(wǎng)絡資源,減少延遲。
@安全性方面,從直觀上看洋蔥路由數(shù)減少,但是安全強度是建立在公鑰安全基礎上 的,與節(jié)點數(shù)的多少無關。故安全強度并未減少,相反隱藏路由的效果更好。
圖l.本發(fā)明的分層洋蔥環(huán)形拓撲結構
圖2.本發(fā)明優(yōu)選實施例的簡單網(wǎng)絡拓撲結構 實施實例
本發(fā)明的分層洋蔥環(huán)如圖l所示。在網(wǎng)絡建成時,網(wǎng)關G就記錄了網(wǎng)絡中的可信節(jié)點 (網(wǎng)絡中的OP節(jié)點)。如圖1虛線所示,網(wǎng)關G和OP就組成了環(huán)形的路徑。如圖1所示,0P1節(jié)點是初始節(jié)點,它選擇匿名集(OPl,OP2,G),稱為第一層路由。 當洋蔥包開始進行傳輸時,由于包中指出的下一個節(jié)點是OP2節(jié)點,且OP2節(jié)點與OPl 節(jié)點不是相鄰節(jié)點,則OP1節(jié)點就建立新的連接,假設為(OPl,A,…,OP2》,稱此路由為
第二層路由,即相當于下一層路由。當洋蔥包傳到OP2節(jié)點時,第二層路由終止,返回 到上一層路由,即重新進入第一層路由。
下面結合附圖2的優(yōu)選實施例將描述一個完整的分層洋蔥環(huán)通信過程。
如圖2所示,假設OP3節(jié)點選擇的第一層路由是環(huán)RI:(OP3,OP2,W,第二層路徑是
(OP3,《,《,OP2),那么OP3節(jié)點就嚴格按照第二層路由的順序封裝成洋蔥包。 第1步封裝過程
OP3節(jié)點先選擇第一層路由,也就是有標號的匿名集,按照匿名集中節(jié)點的順序封裝好 洋蔥包,在其后附加一個dummy包.包格式如下
{build},£—3[(RU。p2),五—2[(RUg),^g(RI力)]],dummy ;
然后,OP3節(jié)點選擇到匿名集中第二個節(jié)點的第二層路ttUOP3,F4,《,OP2r嚴格按照第 二層路由的順序封裝洋蔥包,并且分配好此次通信過程中環(huán)中上行鏈路的一次性會話密鑰
從匿名集中第一個元素發(fā)送到第二個元素的包格式如下
一i叫A,3[(RU一),^4[(RI,/C4,巧),i^5[(RI,^^2),…,
五一2 ((RI, 、), ^ (RI," 、' H 、2 ))]]],du腿y ;
簡化包格式如下
{build},—3(~4(~5(i —2(£te("!)))),diimmy,其中= {RI,aop,,H、2}。
第2步信息轉發(fā)過程
在傳輸過程中,環(huán)中的沒有數(shù)據(jù)要發(fā)送的節(jié)點只進行解密這個洋蔥包和dummy包,然后
把解密后的消息發(fā)給下一個節(jié)點;如下
F。p3 —《{build} A" (&p5 (E—2 (附i ))》,dummy;
F4 — F5:{build},&5CB峙2(&(^))),&4(dummy)。
第3步會話接入請求過程當節(jié)點F5想進行通信時,用接入請求信息request來替代層層解密的dummy包;
《p2 : {bUild},£—2(&(m,)),^5(r叫uest); 尸一4巧(bnild〉,&6(^(^(^))),五—2(&5(request)); F6—F7 : {buildL&OBJm,)),^^—2(&5(request)》; 尸74& : (build),&(m,),&7(&6(五—2(&5(request))。 第4步網(wǎng)關處理過程
當網(wǎng)關G收到由OP2節(jié)點發(fā)送過來的包,并且知道節(jié)點《想進行通話。如果同意了這個
請求,它也同理根據(jù)環(huán)號和匿名集來確定到OP3節(jié)點的另一半環(huán)路徑,假設所選的路徑為 (G,《,OP3)。網(wǎng)關把節(jié)點《到網(wǎng)關上行鏈路所經(jīng)過節(jié)點的會話密鑰U^,&,、)發(fā)送給節(jié)點
F5。它將嚴格封裝一個洋蔥包給節(jié)點&。這時同意信息就可以從網(wǎng)關通過節(jié)點i^, OP3, F4
到達節(jié)點《進行通信。網(wǎng)關封裝包的簡化格式如下
{build},^(i^3(、4(i^5(i^(;"2))))),其中"'2 = {&2, W'gnmt}。
FG—F3 - {bU1ld}Ap3(KW£sg(m2)))));
: {bmld},£—3(~4(~5(^—2)))); ^3—F4 : {build},一(^5(&(附2)));
F4—尸5 : {biuld},& 2))。
在環(huán)初始化之后,網(wǎng)關就確定了會話發(fā)起者是節(jié)點《,并且已經(jīng)把部分路徑的會話密鑰 發(fā)送給了它。這時如果《正確的收到網(wǎng)關所發(fā)送過來的包,還是以分層的方式進行會話與網(wǎng) 關進行通信。節(jié)點《用會話密鑰封裝一個到OP2節(jié)點的洋蔥包,與其進行會話。當OP2節(jié) 點收到從節(jié)點g發(fā)過來的包,它根據(jù)環(huán)號確認第二層路由并與匿名集中下一個節(jié)點網(wǎng)關G進 行通信。
洋蔥環(huán)通信過程如下(用一次性會話密鑰加密) F5 — ; :{RI},五—2 (《4 (data,ack)));
《{RI}AU£ a,aCk)》);F6~>F7 : {RI},&7(~0^4(data,ack))); 尸7—FG : {RI},£4g(^4(data,ack));
當網(wǎng)關收到這個載體包后,它用自己的私鑰和節(jié)點《的公鑰解密這個包,來確定這個包 是發(fā)給自己的和這個包是節(jié)點《發(fā)送過來的。當網(wǎng)關收到包時,它計算ack值,如果雙方ack
的值一樣,證明它們正確的收到包,然后進行以后的通信;如果不一樣就是沒有正確收到包。 網(wǎng)關封裝一個到節(jié)點《的包,格式如下{RI},~3(£—3(~4(~5(data)))))。
—F4 :則,W^(data))); 尸4—,5 : {RI},A a))。
權利要求
1、一種分層洋蔥環(huán)路由方法,其特征在于將無線Mesh網(wǎng)絡中的節(jié)點分為三類網(wǎng)關G,可信任節(jié)點OP和普通節(jié)點Fi,OP節(jié)點和網(wǎng)關G是誘導節(jié)點,OP節(jié)點在環(huán)的初始化過程中起選擇路由的作用,所有OP節(jié)點和網(wǎng)關G的集合構成匿名集;把網(wǎng)絡的洋蔥路由分為兩層環(huán)路,第一層路由由匿名集的不相鄰可信節(jié)點OP和網(wǎng)關G組成的環(huán)形路徑;第二層路由在可信節(jié)點OP之間由普通節(jié)點Fi填充構成的環(huán)路,也稱為下一層路由;第二層路由在初始化過程中由OP節(jié)點和網(wǎng)關隨機選擇,通過洋蔥環(huán)路由的分層環(huán)路實現(xiàn)Mesh網(wǎng)絡匿名安全通信。
2、 根據(jù)權利要求l所述的分層洋蔥環(huán)路由方法,其特征在于采用分層洋蔥環(huán)路由進 行匿名通信首先進行環(huán)的初始化,所述環(huán)的初始化過程包括如下步驟-第l步封裝過程首先OP節(jié)點選擇第一層路由,也就是有標號的匿名集,按照匿名集中節(jié)點的順序封裝洋蔥包,并在其后附加一個dummy包,封裝的洋蔥包格式如下 {bmld}, ~。pl [(RI, ^, OP2),五峙2[(RI, 、2, G), (RI, du腿y ; {bmld}:包頭,表示建環(huán)信息,告訴節(jié)點要進行環(huán)的初始化;公鑰加密,用于封裝洋蔥包;OP1節(jié)點用自己的公鑰i^—加密最外層包,即環(huán)號RI、自己的會話密鑰/^,、下一條地址OP2,以及匿名集中第二個節(jié)點封裝的第二層洋蔥包,這樣當OP2節(jié)點收到這個洋蔥包時,就可以確定下一跳發(fā)往地址,以此類推; RI:環(huán)號,由匿名集號和建環(huán)時間構成; A:節(jié)點/與網(wǎng)關的會話密鑰;"表示時間戳,用來檢測消息的實時性; dummy:誘導信息;然后OP節(jié)點再選擇到匿名集中第二個元素的第二層路由,按照第二層路由的順序封裝洋蔥包,并且分配此次通信過程中環(huán)中上行鏈路的一次性會話密鑰/t—,^^,…,/t^;將分配好的一次性會話密鑰告訴網(wǎng)關,讓網(wǎng)關知道上行鏈路路徑,而下行鏈路的一次性 密鑰由網(wǎng)關分配;從匿名集中第一個節(jié)點發(fā)送到第二個節(jié)點的包格式如下-(build〉,五^[(RI,^,F2),五^[(RI,、,F3),…,E—p2((RI,A;2,G),五&,(RI, ,、,、,…,&印2,0)]],dmnmy巧網(wǎng)絡中的普通節(jié)點,將包的簡化格式如下 {builds—"五w(&2,■ ,(£—2(^g(^)),dummy'其中附dRJ,a^A, V",、2};環(huán)中的所有OP節(jié)點都是如此進行封裝洋蔥包的,例如OP2和網(wǎng)關G。 當匿名集中的第二個節(jié)點OP2接收到初始化信息時,它同理第一個元素的進行路徑 選擇和封裝洋蔥包,但是直接轉發(fā)dummy包如下《bui叫^"(…(^: 3(&g(m3)^^—)))),《—(.'《,(dummy)),其中附2={、2人人+1, ^, 公鑰解密; 第2步信息轉發(fā)過程在信息轉發(fā)過程中,路由環(huán)中沒有數(shù)據(jù)發(fā)送的普通巧節(jié)點只解密收到的洋蔥包和dummy包,然后把解密后的消息發(fā)給下一個節(jié)點如下 {build} ,Ap2 ( (五—2 (,))),《,(dummy);第3步會話接入請求過程當普通節(jié)點《想進行通信時,用接入請求信息替代層層解密的dummy包如下{buM} (^(!+2) ( .五* (附))),《,(request);第4步網(wǎng)關處理過程 當網(wǎng)關收到從0P1節(jié)點發(fā)過來的包,就確定了會話發(fā)起者,如果網(wǎng)關同意這個請求, 它根據(jù)環(huán)號和匿名集來確定另一半環(huán)路徑也就是從網(wǎng)關到會話發(fā)起者的下行鏈路,網(wǎng)關封裝 一個洋蔥包發(fā)送給會話發(fā)起者,這個洋蔥包包含從會話發(fā)起者到距其最近的OP節(jié)點或網(wǎng)關 的上行鏈路的所有會話密鑰,這樣同意請求信息就從網(wǎng)關到達會話發(fā)起者進行通信,包格式如下{build} ,£—(…(…化,…,、,g認t))))。
3、根據(jù)權利要求2所述的分層洋蔥環(huán)路由方法,其特征在于在會話接入請求過程, 如果路由環(huán)中有兩個節(jié)點在同時請求會話,后一個節(jié)點的請求信息將會擦掉前一個節(jié)點的請 求信息,前一個節(jié)點只能等待下一個環(huán)的載體到來時,重新發(fā)送請求。
4、根據(jù)權利要求1所述的分層洋蔥環(huán)路由方法,其特征在于采用分層洋蔥環(huán)路由進行環(huán)間通信包括會話發(fā)起者到網(wǎng)關的通信過程和網(wǎng)關到節(jié)點巧通信過程,OP節(jié)點或網(wǎng)關用會話密鑰加密洋蔥包,每次建立環(huán)時,都要重新分配會話密鑰,節(jié)點《用會話密鑰封裝一個到距其最近的OP節(jié)點或網(wǎng)關洋蔥包,與其進行會話。當距其最近的OP節(jié)點收到包,同理 選擇第二層路由與匿名集中下一個元素進行通信,除了網(wǎng)關和會話發(fā)起者,環(huán)中的每個節(jié)點 都只進行轉發(fā)解密后的洋蔥包,會話發(fā)起者到網(wǎng)關的通信過程如下f.—巧+1 : {RI} (&(,+2) (... (£鄉(xiāng)(data,ack))))); 4 ~> &2{RI}, ^(,+2) (... (£鄉(xiāng)((data,ack)))));Fopi—0P : {RI},Ui^(&(data,aCk)))》;OP —F, : {RI},^(—(A(—)(…(i^(i^(data,ack)))));其中,(RI)是包頭,它表示環(huán)已經(jīng)建立,開始進行通信,《i表示用節(jié)點巧的私鑰加密,data是發(fā)送信息內容,ack表示正確收到包后發(fā)送的消息認證碼,用來證明通信雙方確實收 到了包;當網(wǎng)關收到這個載體包后,用自己的私鑰和節(jié)點《的公鑰解密這個包,來確定這個包是 發(fā)給自己的和這個包是節(jié)點巧發(fā)送過來的,并計算ack值,如果雙方ack的值不相同,證明它們沒有正確收到包;反之,如果雙方ack的值相同,網(wǎng)關就可以與會話發(fā)起者進行通信, 這時網(wǎng)關根據(jù)環(huán)號和匿名集封裝一個到節(jié)點^的包(RO,Ag(A—(i^.0^(data))》;網(wǎng)關到節(jié)點巧通信過程如下G —: (RI),H')(.K,w(data腦;: {RI}A(m+1)(data))》;OP1 —巧(RIL&(…(A,.(&(data))));巧(叫A,(&(data))。
5、 根據(jù)權利要求4所述的分層洋蔥環(huán)路由方法,其特征在于當一個環(huán)內有兩個會話發(fā)起者時,后一個會話發(fā)起者會加密已經(jīng)被前一個初始節(jié)點加密過的dummy信息,來與網(wǎng)關進行會話,而前面一個會話發(fā)起者只能等待下一個環(huán)進行通話,這雖然會造成時延,但是 網(wǎng)絡中同時會有其他環(huán)進行通信。
6、 根據(jù)權利要求1所述的分層洋蔥環(huán)路由方法,其特征在于在通信過程中如果雙方 都沒有數(shù)據(jù)要發(fā)送,會話發(fā)起者就發(fā)送一個空內容的洋蔥包給網(wǎng)關,網(wǎng)關就封裝一個到OP 節(jié)點的空內容的洋蔥包,結束通信。
全文摘要
本發(fā)明公開一種分層洋蔥環(huán)路由方法,將無線Mesh網(wǎng)絡中的節(jié)點分為三類網(wǎng)關,可信任節(jié)點和普通節(jié)點,OP節(jié)點和網(wǎng)關是誘導節(jié)點,OP節(jié)點在環(huán)的初始化過程中起選擇路由的作用,所有OP節(jié)點和網(wǎng)關的集合構成匿名集;把網(wǎng)絡的洋蔥路由分為兩層環(huán)路,第一層路由由匿名集的不相鄰可信節(jié)點OP和網(wǎng)關組成的環(huán)形路徑;第二層路由在可信節(jié)點OP之間由普通節(jié)點F<sub>i</sub>填充構成的環(huán)路,第二層路由在初始化過程中由OP節(jié)點和網(wǎng)關隨機選擇,通過洋蔥環(huán)路由的分層環(huán)路實現(xiàn)Mesh網(wǎng)絡匿名安全通信。本發(fā)明使用分層洋蔥環(huán)通信協(xié)議,匿名集的OP節(jié)點和網(wǎng)關共同參與路由選擇,有效混淆路徑阻止交集攻擊。減少計算量和減輕網(wǎng)關的負擔,加速建環(huán)過程,更好地利用網(wǎng)絡資源減少延遲。
文檔編號H04W12/00GK101635918SQ200910023640
公開日2010年1月27日 申請日期2009年8月19日 優(yōu)先權日2009年8月19日
發(fā)明者劉思伯, 龐遼軍, 茹 李, 李慧賢, 焦李成, 裴慶祺, 趙曉輝 申請人:西安電子科技大學