王潮,胡廣躍,張煥國
(1. 上海大學 特種光纖與光接入網(wǎng)省部共建重點實驗室, 上海 200072;2. 空天信息安全與可信計算教育部重點實驗室,湖北 武漢 430072;3. 武漢大學 計算機學院,湖北 武漢 430072)
無線傳感器網(wǎng)絡(WSN, wireless sensor network)由大量節(jié)點以自組織的方式組成,網(wǎng)絡中沒有中心控制節(jié)點,較遠距離節(jié)點間以多跳的方式進行通信。由于無線傳感器網(wǎng)絡無需預先部署基礎設施,在戰(zhàn)場環(huán)境、搶險救災、環(huán)境威脅探索等領域具有廣泛的應用前景[1]。安全、高效是這些應用對自組織網(wǎng)絡提出的最基本要求。
無線傳感器網(wǎng)絡中的安全威脅主要有以下6個方面[2]。
1) 多跳共享的無線信道。無線傳感器網(wǎng)絡中,以無線信號作為傳輸媒介,信息在無線信道傳輸,任何具有無線接收裝置的人都可以竊聽。另外,無線傳感器網(wǎng)絡采用多跳通信,與傳統(tǒng)移動通信的單跳通信相比,節(jié)點的身份不僅僅需要像基站這樣的集中控制設備進行認證,而且需要其周圍的鄰居節(jié)點進行認證,傳統(tǒng)的安全措施無法在無線傳感器網(wǎng)絡中有效地應用。
2) 節(jié)點的移動性。無線傳感器網(wǎng)絡中,節(jié)點處于不同的區(qū)域(可能是安全區(qū)域,也可能是非安全區(qū)域)自由移動,無法保證網(wǎng)絡的物理安全,尤其在戰(zhàn)場環(huán)境中,節(jié)點在移動的過程中隨時可能被敵方俘獲,造成節(jié)點內的秘密信息可能泄露,造成嚴重的安全威脅;這些被俘獲的節(jié)點被敵軍利用,可能會重新加入網(wǎng)絡,用來獲取更多的秘密信息。因而,在無線傳感器網(wǎng)絡中,防范內部攻擊和外部入侵同樣重要。
3) 動態(tài)的網(wǎng)絡。節(jié)點的移動帶來網(wǎng)絡拓撲也經(jīng)常處于變化之中,動態(tài)變化的網(wǎng)絡拓撲容易造成路由的不正常中斷,帶來網(wǎng)絡上節(jié)點的重認證請求,因而需要高效的認證措施。
4) 無中心和無基礎設施。傳統(tǒng)網(wǎng)絡中,通過基礎設施的支持,采用PKI或CA認證等方式,可以有效地運行大多數(shù)安全服務,而在無線傳感器網(wǎng)絡中,無法提供一個全網(wǎng)信任的權威機構或認證中心來完成安全認證、密鑰管理等工作,而且,即使網(wǎng)絡中存在這樣的中心節(jié)點,也無法保證能提供實時在線的服務。另外,單一的認證中心容易成為系統(tǒng)的單一失效點,一旦崩潰將導致整個網(wǎng)絡無法工作,并造成密鑰等敏感信息的泄露。
5) 信任機制。現(xiàn)有無線傳感器網(wǎng)絡的大多數(shù)協(xié)議,如路由、鄰居發(fā)現(xiàn)等都假定網(wǎng)絡中所有的節(jié)點是樂于提供服務的,通過節(jié)點之間的相互合作,從而共同完成信息的傳遞。然而,網(wǎng)絡中節(jié)點有可能由于諸多的原因而不提供轉發(fā)數(shù)據(jù)服務,節(jié)點的自私行為會導致網(wǎng)絡性能下降,另外,由于沒有集中管理機構對所有節(jié)點進行管理,節(jié)點間很難建立一種相互信任的機制,采用完全信任的方式將導致泛洪攻擊和拒絕服務等攻擊,使得網(wǎng)絡性能急劇下降。
6) 多播安全。在無線傳感器網(wǎng)絡中,路由信息、簇算法、鄰居發(fā)現(xiàn)、機密通信等都需要多播通信支持,這些多播的數(shù)據(jù)多是機密或敏感的信息,如何保證多播數(shù)據(jù)分組的機密性、完整性和不可抵賴性,實現(xiàn)安全多播,是無線傳感器網(wǎng)絡多播必須解決的問題。
無線傳感器網(wǎng)絡的特點決定無線傳感器網(wǎng)絡的安全威脅、安全體系和安全算法與傳統(tǒng)網(wǎng)絡大相徑庭,不能照搬傳統(tǒng)網(wǎng)絡的安全體系和安全算法。同時,無線傳感器網(wǎng)絡有限的存儲空間和計算能力以及有限的帶寬和通信能量等自身特點,也決定了傳統(tǒng)的基于密碼技術的計算量較大的數(shù)據(jù)加密及公鑰密碼體制等網(wǎng)絡安全技術不太適應于無線傳感器網(wǎng)絡。本文將主要討論無線傳感器網(wǎng)絡相關的安全體系和安全算法設計。
目前,一些無線傳感器網(wǎng)絡安全方案存在密鑰管理效率低、缺乏組網(wǎng)安全和對節(jié)點的認證(雙向認證)、認證效率低、密碼算法復雜度高未達到輕量化等問題,不適合無線傳感器網(wǎng)絡資源有限等特點。
Ibriq和Mahgoub[3]提出了一種高效的層次密鑰模型,在該方案中,一個sink節(jié)點可以為連接的節(jié)點產生共享密鑰,然而,一些sink節(jié)點必須在表中保留每個節(jié)點的信息來支持節(jié)點的移動。Fantacci等[4]提出了分布式節(jié)點認證模型,該方案不需要基站作為認證的中心。該方案中,每個節(jié)點共享部分認證信息。當一個節(jié)點請求被另一個節(jié)點認證時,節(jié)點2作為認證器,其他節(jié)點(如節(jié)點5和節(jié)點6)作為分布式認證服務器。該方案需要大量的節(jié)點參與,使得開銷分布在每個節(jié)點上。因為節(jié)點必須作為認證過程的參與者或者一個認證服務器,那么計算和通信的開銷將會隨著認證請求的頻繁而不斷增大。Han等[5,6]提出的方案,能夠提高認證的效率,然而針對節(jié)點的初始化認證過程中卻仍然離不開第三方的參與,認證效率低,通信開銷也較大。
在無線傳感器網(wǎng)絡中,由sink節(jié)點組成了無線傳感器網(wǎng)絡的骨干網(wǎng)。在無線傳感器網(wǎng)絡環(huán)境中,為了防止惡意節(jié)點攻擊,在骨干網(wǎng)中,系統(tǒng)的主密鑰也不能單獨保存在某個節(jié)點,以防止單點失效以及惡意節(jié)點攻擊問題的發(fā)生。本文基于門限思想進行骨干網(wǎng)的組網(wǎng),由多個簇頭節(jié)點掌握系統(tǒng)的主密鑰s的秘密份額,利用門限秘密共享機制建立安全可靠的骨干網(wǎng)絡。
當普通節(jié)點接入骨干網(wǎng)進行通信時,本文基于ECC的CPK體制的思想[7],降低密鑰管理的存儲、通信和計算等開銷,并進行雙向認證[8],防止惡意節(jié)點的攻擊。采用輕量化的點乘運算減少計算開銷的ECC算法[9],優(yōu)化雙向認證過程進一步減少通信和計算的開銷。
基于ECC的組合公鑰(CPK)密碼體制[7]認證方式是基于標識的身份認證。它依據(jù)橢圓曲線離散對數(shù)的數(shù)學原理構建公鑰矩陣與私鑰矩陣,采用散列函數(shù)將實體的標識映射為矩陣的行與列坐標序列,用以對矩陣元素進行選取與組合,可以生成數(shù)量龐大的公私鑰對,從而實現(xiàn)基于標識的大規(guī)模密鑰生產與分發(fā)。實體節(jié)點只要知道對方節(jié)點的標識,就可以計算其公鑰,從而可以方便地實現(xiàn)認證和保密功能。其中,標識密鑰(identity key)由實體的標識通過組合矩陣生成。采用基于ECC的CPK體制,有以下的優(yōu)勢。
1) 在無線傳感器網(wǎng)絡中,只有合法的節(jié)點具有組合私鑰,而且可以根據(jù)對方的標識 ID以及分割密鑰,計算出對方的組合公鑰CPK,所以在無需第三方的參與下,即可實現(xiàn)簡單高效的認證過程。
2) 基于ECC的CPK體制可以通過少量的公/私鑰矩陣,組合出規(guī)模龐大的公/私鑰對,節(jié)點僅需要存儲很小的矩陣,就可實現(xiàn)網(wǎng)絡中大量節(jié)點的安全認證。
采用基于ECC的CPK體制,密鑰的安全性依賴于橢圓曲線離散對數(shù)求解困難性,是指數(shù)級破譯難度。攻擊者想通過公鑰獲得私鑰,基于橢圓曲線離散對數(shù)問題的困難是不可行的。
點乘運算是CPK算法的基礎。ECC簽名算法(ECDSA)是數(shù)字簽名算法(DSA)的橢圓曲線版本,同時也是 CPK數(shù)字簽名算法的基礎。本文采用基于 Montgomery型曲線的橢圓曲線密碼算法[9],為解決 ECC點乘計算量大等問題,采用如下輕量級的Montgomery型橢圓曲線的點乘運算,方案采用二進制移位 NAF編碼算法,在射影坐標下避免大部分模逆算法,采用未計算y值的點加和倍點快速運算。
點加公式如下:
計算點P=(x,y)的倍點dP在射影坐標下的坐標(X,Z),具體的算法如下:
2) 計算整數(shù):
3) 如果 0=i ,則跳到12),否則執(zhí)行4);
4) 1-←ii;
5) 如果 di=0,則執(zhí)行6),否則跳到9);
6) 計算整數(shù):
7) 計算整數(shù):
8) 跳到 3);
9) 計算整數(shù):
10) 計算整數(shù):
11) 跳到3);
12) 輸出整數(shù)X1,Z1,作為dP相應的X,Z。
計算出上面算法的復雜度為(6|d|-3)M+(4|d|-2)S,這里的表示轉化成二進制時的長度lbd。
在網(wǎng)絡部署前,密碼管理中心(KMC)選定散列函數(shù)、橢圓曲線參數(shù)信息、公/私鑰矩陣等信息,由密碼管理中心進行節(jié)點的標識、密鑰參數(shù)和各個節(jié)點證書的產生和分發(fā),這樣每個節(jié)點都擁有了自己的標識(ID)、分割密鑰(SPK)、組合私鑰(CSK)、組合公鑰矩陣PSK、證書以及橢圓曲線參數(shù)等信息。下面介紹本文具體方案的實現(xiàn)。
3.2.1 簇頭節(jié)點組網(wǎng)及其密鑰的建立
第1步 系統(tǒng)密鑰對的生成
為了防止單個簇頭節(jié)點失效和惡意簇頭節(jié)點攻擊等問題,由該網(wǎng)絡中的簇頭節(jié)點共舉產生主密鑰。下面描述其實現(xiàn)過程:
對于身份標識為IDi的節(jié)點i,隨機選擇si作為主密鑰s的秘密份額和系數(shù)ai,j(j∈1,2,…,k -1)以建立(n,k)門限多項式fi(x):
用節(jié)點i計算式(7),通過安全信道發(fā)送給相應的節(jié)點j。此外為了使節(jié)點j驗證si的有效性,節(jié)點i計算V0=siP及Vi=ai,jP( j∈1,2,…,k -1)傳送給節(jié)點j。
節(jié)點j收到fi(j)、V0和Vi后,驗證fi(j)≡V0+,如果成立則驗證通過,消息為節(jié)點i所發(fā),否則斷定消息并非節(jié)點i發(fā)送。
節(jié)點j收到來自網(wǎng)絡中的n個節(jié)點所發(fā)送的門限多項式,計算fj(j),共舉可以得出網(wǎng)絡的主密鑰s:
計算Ppub=sP,由此得出系統(tǒng)的密鑰對(s, Ppub)。
第2步 通信組密鑰的建立
當簇頭節(jié)點i進行通信前,需要用通信的加密信息對保障信息傳輸?shù)陌踩?。在簇頭節(jié)點共舉出主密鑰后,某個節(jié)點i需要申請會話密鑰的時候,可以通過向掌握系統(tǒng)秘密份額的簇頭節(jié)點查詢來獲取。
要實現(xiàn)這一過程,首先需要驗證節(jié)點i的有效性,即它是否為網(wǎng)絡的合法節(jié)點,以防止惡意節(jié)點的加入。具體的驗證過程如下。
1) 申請會話密鑰的節(jié)點i與掌握秘密份額的節(jié)點j進行通信,隨機選擇ri∈作為私鑰,并計算Qi=riP作為相應的公鑰發(fā)送給節(jié)點j。
2) 節(jié)點j接收到節(jié)點i的請求后,需要驗證節(jié)點i的身份。節(jié)點j是合法的節(jié)點,它擁有加密密鑰對(SKj,PKj),它隨機選擇信息m,發(fā)送r=(m,PKj)給節(jié)點i,等待后者的簽名。
3) 節(jié)點i收到簽名要求后,隨機選擇ti∈,其對應公鑰為ui=tiH2(IDi)。計算身份簽名,把(ui,σ)傳送給節(jié)點j。
4) 節(jié)點j收到節(jié)點i的簽名后,進行簽名認證。如果e(P,P)=e(H2(IDi)P +tiP,σ),則節(jié)點j接受節(jié)點i的簽名,把它認為是合法節(jié)點,不然則拒絕其簽名。
為了提高系統(tǒng)的安全性和健壯性,對于應答節(jié)點j發(fā)送的秘密份額,請求節(jié)點i同樣驗證其簽名,檢查其合法性,實現(xiàn)雙向認證,其具體過程如下。
1) 節(jié)點j計算發(fā)送的密鑰份額:sjH2(seed),同時隨機選擇tj∈,其對應公鑰為uj=tjH2(IDj)。計算身份簽名σ=[H2(IDj)+tj]-1P,把(uj,σ,sjH(seed))傳送給節(jié)點i。
2) 節(jié)點i收到簽名后進行簽名認證。如果e(P, P)=e(H2(IDj) P+tjP,σ),則節(jié)點i接受節(jié)點j的簽名,不然則拒絕其簽名。驗證身份后,節(jié)點i即可得到加密密鑰的份額sjH2(seed)。
3) 同理,節(jié)點i與其他掌握秘密份額的節(jié)點通信,當節(jié)點i獲得k個密鑰份額后,依據(jù)Lagrange插值原理獲得完整的通信組密鑰:
3.2.2 普通節(jié)點與其他節(jié)點的雙向認證和密鑰協(xié)商
密鑰協(xié)商方案就是一種能夠讓通信的雙方或者多個參與方在一個公開的、不安全的信道上通過密鑰協(xié)商聯(lián)合建立一次會話所用的臨時密鑰的密碼協(xié)議。
為了有效地抵御中間人攻擊及彌補這個顯著的缺陷,本文采用一種利用可信第三方頒發(fā)的證書以及產生隨機數(shù)增加臨時密鑰的算法來完成雙向認證和密鑰協(xié)商[8]。
以A和B之間的認證為例,假設在算法執(zhí)行前,已經(jīng)完成了合法節(jié)點證書的發(fā)放,具體參數(shù)設定為:Ad為A的私鑰,AQ為A的公鑰,Bd為B的私鑰,BQ為B的公鑰,Acert為A的證書,Bcert為B的證書。步驟如下:
1) A隨機產生一個數(shù)r1,計算TEP1=(dA-r1)·G,發(fā)送給B:TEP1,QA;
2) B隨機產生一個數(shù)r2,計算TEP2=dB·TEP1,TEP3=r2·G,發(fā)送給A:TEP2,QB,TEP3;
3) A收到相應的信息,A計算TEP4=dA·TEP3,TEP5=dB·TEP1+r1· QB,h1=h( TEP4, TEP5, cert A),發(fā)送給B:certA,h1;
4) B收到相應的信息,首先驗證certA,若不成功,返回錯誤信息,要求重發(fā),否則計算TEP6=r2·QA,TEP7=dB·QA,TEP8=(dB-r2)·G ,比較h2=h( TEP6, TEP7, certA)和h1是否相等,若驗證成功,繼續(xù)執(zhí)行。發(fā)送給A參數(shù)為:E(certB,TEP8),這里已經(jīng)產生會話密鑰dBdA·G,E表示用會話密鑰進行的加密;
5) A收到相應的信息,首先解密E(certB,TEP8),驗證certB,同時計算TEP9=dA·TEP8+dA·TEP3是否與TEP10=dA·QB相等,若成功,則認證成功,同時完成密鑰協(xié)商,會話密鑰為:dBdA·G。
本文采用基于ECC的CPK體制,其安全性是基于橢圓曲線離散對數(shù)問題,是國際上公認的安全實用的密碼體制。橢圓曲線的離散對數(shù)問題(ECDLP)的計算困難性在計算復雜度上目前是完全指數(shù)級,攻擊者想通過公鑰破譯私鑰是不可行的,可以滿足無線傳感器網(wǎng)絡的安全要求。本文提出的雙向認證的方法還可以抵御中間人攻擊。
文中在節(jié)點的認證以及重認證過程中,反復用到了加解密運算以及數(shù)字簽名算法,其中標量乘運算是主要的計算開銷,本文采用了基于Montgomery型輕量級的快速點乘運算,計算復雜度為,與目前其他典型方案的計算量的對比如表1所示,相對于其他的算法具有更少的計算復雜度(表1中M表示乘法,S表示平方,I表示求逆,n表示dP點乘運算中d的二進制位數(shù))。
表1 計算復雜度對比
方案中雙向認證(3.2.2節(jié))的計算復雜度分析如下:
第1步的計算復雜度為TM+;
第2步的計算復雜度為2TM;
第3步的計算復雜度為3TM+TA+Th;
第5步的計算復雜度為3TM+TA+。
所以,總的計算復雜度為11TM++2TA+。其中,TM表示計算ECC曲線點積所使用的時間,TA表示計算ECC曲線點加所使用的時間,表示計算模減所使用的時間,Th表示散列函數(shù)所使用的時間,表示證書驗證所使用的時間。
通過算法計算復雜度的分析,計算耗時最多的點積運算顯著減少,即在密鑰協(xié)商算法過程中,其點積運算僅為11次運算,而另一耗時比較多的證書認證計算僅為2次。同時在此算法中,使用了散列函數(shù),大大減少了交換的信息量,進一步提高了算法速度。
本文采用基于ECC的CPK體制思想:可以由規(guī)模很小的矩陣組合出很大數(shù)量的公/私鑰對,以達到規(guī)?;拿荑€管理。簇頭節(jié)點需要預存橢圓曲線公鑰矩陣信息,無需預存大量密鑰信息,節(jié)約存儲空間。對于普通節(jié)點僅需要保存自己的公/私鑰對,其他節(jié)點的公鑰可通過查詢公鑰矩陣,再對公鑰因子進行點加運算就可得到該用戶的公鑰。
無線傳感器網(wǎng)絡的特點決定了其安全威脅、安全體系和算法等與傳統(tǒng)電信網(wǎng)絡截然不同。
本文結合無線傳感器網(wǎng)絡的特點,提出了無線傳感器網(wǎng)絡的輕量級安全體系,基于門限秘密共享機制的思想解決了無線傳感器網(wǎng)絡組網(wǎng)中遭遇惡意節(jié)點的問題;采用雙向認證的方式保證普通節(jié)點與簇頭節(jié)點間的通信安全,認證過程簡單高效,使用輕量化 ECC算法設計,減少認證過程中的計算開銷和通信開銷;優(yōu)化基于ECC的CPK體制的思想,可實現(xiàn)高效的認證過程,安全性依賴于橢圓離散對數(shù)分解的指數(shù)級破譯計算復雜度;使得密鑰管理適應無線傳感器網(wǎng)絡的資源受限等要求。
[1] GERLA M. Ad Hoc Networks: Technologies and Protocols[M].Springer Science Press,2004.
[2] 王潮, 張振華, 應仲平. WSN中基于身份的分散密鑰管理研究[A].第六屆中國測試學術會議論文集[C]. 2010.WANG C, ZHANG Z H, YING Z P. Research on distributed key management based on identity in wireless sensor networks[A].CTC2010[C]. 2010.
[3] IBRIQ J, MAHGOUB I. A hierarchical key establishment scheme for wireless sensor networks[C]. AINA’07[C]. Niagara Falls, Canada,2007. 210-219.
[4] FANTACCI R, CHITI F, MACCARI L. Fast distributed bi-directional authentication for wireless sensor networks [J]. Security and Communication Networks, 2008, 1(1): 17-24.
[5] HAN K, SHON T, KIM K. Efficient mobile sensor authentication in smart home and WPAN [J]. IEEE Transactions on Consumer Electronics, 2010, 56(2): 591-596.
[6] HAN K, KIM K, SHON T. Untraceable mobile node authentication in WSN[J]. Sensors, 2010, 10(5): 4410-4429.
[7] 南湘浩. 組合公鑰(CPK)體制標準(v5.0)[J]. 計算機安全,2010,(10):1-2.NAN X H. CPK-cryptosystem standard (v5.0)[J]. Computer security,2010,(10):1-2.
[8] 王潮, 朱美麗, 時向勇. 基于ECC的CBTC無線接入安全認證架構研究[J]. 哈爾濱工業(yè)大學學報(增刊), 2009, 41(1):193-197 WANG C, ZHU M L, SHI X Y. Research of structure of secure authentication based on ECC for wireless CBTC[J]. Harbin Journal of Harbin Institute of Technology, 2009, 41(1): 193-197.
[9] 王潮, 時向勇, 牛志華. 基于 Montgomery 曲線改進 ECDSA算法的研究[J]. 通信學報, 2010,31(1):9-13.WANG C, SHI X Y, NIV Z H. The research of the promotion for ECDSA algorithm based on Montgomery-form ECC[J]. Journal on Communications, 2010, 31(1):9-13.
[10] OKEYA K, SAKURAI K. A scalar multiplication algorithm with recovery of y-coordinate on the Montgomery form and analysis of efficiency for elliptic curve cryptosystem[J]. IEICE Trans Fundamental,2002, 85(1): 84-93.
[11] FUTA Y, OHMORI M. Efficient scalar multiplication on Montgomery-form elliptic curves[J]. IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, 2004,87(8):2126- 2136.
[12] LIU D, DAI Y Q. The algorithm of computing kP+mQ+lR on a Montgomery-form elliptic curve[A]. Chinese National Conference of Computer 2003[C]. Beijing: Tsinghua University Press,2003.198-203.