引言
隨著中國社會經(jīng)濟的持續(xù)迅猛發(fā)展,人們的生活水平不斷提高,人們在住宅方面的觀念也潛移默化,由原來的居住溫飽逐漸地傾向于舒適和方便。在此背景下,智能家居產(chǎn)業(yè)如雨后春筍般蓬勃發(fā)展,蒸蒸日上,從概念到實際應(yīng)用,正一步一步地走進我們的生活。智能家居的遠程控制系統(tǒng),讓我們能夠隨時隨地而輕松快捷地了解家庭狀況,并且進行遠程遙控,極大方便了我們的生活,吸弓了大量消費者的眼球。然而,這種遠程控制是否可靠,是否會被不法分子非法控制,這一系列的不安因素讓許多用戶望而止步。智能家居遠程控制的安全性,直接或間接地關(guān)系到我們的生命財產(chǎn)安全,所以對智能家居的信息安全研究亥壞容緩。
1密鑰管理技術(shù)發(fā)展
現(xiàn)代信息安全技術(shù)是基于密鑰完成的,因此密鑰的安全管理和分配是現(xiàn)代信息安全的重要基礎(chǔ)。有效的密鑰管理機制也是其他安全機制,如安全路由、安全定位、安全數(shù)據(jù)融合及針對特定攻擊的解決方案等的基礎(chǔ)。
密鑰技術(shù)的發(fā)展,經(jīng)歷了一段曲折漫長的道路。1976年,Diffie、Hellman提出了著名的D-H密鑰分發(fā)體制,第一次解決了不依賴秘密信道的密鑰分發(fā)問題,但這種體制只能用于會話密鑰的交換,而且不能抵抗中間人攻擊(attackinthemiddle)。1978年,Kohnfelder提出了CA認證機構(gòu)概念,采用密鑰動態(tài)分發(fā)的管理體制,公鑰以CA證書形式公布,用于解決密鑰的規(guī)?;瘑栴}。1991年,相繼出現(xiàn)了PGP、PEM,首次提出密鑰由個人生成的分散式體系。各依賴方各自建立密鑰環(huán),將常用對方公鑰儲存在自己設(shè)備中。1996年,提出了SPKI解決方案叫PKI設(shè)立了證書授權(quán)中心機構(gòu)(CertificateAuthority,CA),證明公鑰和標識的一體化,防止他人冒名;創(chuàng)立了多層CA架構(gòu),以解決密鑰的規(guī)?;瘑栴}。PKI的另一進展是利用提供數(shù)字簽名的功能,構(gòu)建在線認證系統(tǒng),從而大大推動了認證理論的發(fā)展。由于需要數(shù)據(jù)庫的在線支持,應(yīng)用效率不高,維護代價過高。
2001年,Boneh和Franklin利用Weil對理論,將標識作為公鑰,私鑰由密鑰中心產(chǎn)生配發(fā)的新體制,實現(xiàn)了Shamir的基于標識密碼(IdentityBasedEncryption,IBE)設(shè)想叫此方案將個體的唯一標識符或網(wǎng)絡(luò)地址作為它的公鑰,從而兩通信方不需要交換私鑰或公鑰來解密和驗證簽名,也無需保存密鑰目錄,取消了依靠第三方證明的層次化CA機構(gòu)鏈。但是,該方案仍然需要數(shù)據(jù)庫的在線支持,同樣效率不高。
2矩陣密鑰管理方案
智能家居的網(wǎng)路大部分都是無線傳感網(wǎng)絡(luò)(WirelessSensorNetworks,WSN),相對于傳統(tǒng)有線網(wǎng)絡(luò),WSN的開放性使得網(wǎng)絡(luò)更加地容易受到竊聽、干擾等各種攻擊。有線網(wǎng)絡(luò)的網(wǎng)絡(luò)連接是相對固定的,具有確定的邊界,攻擊者必須物理地接入網(wǎng)絡(luò)或經(jīng)過物理邊界,如防火墻和網(wǎng)關(guān),才能進入到有線網(wǎng)絡(luò)。通過對接入端口的管理可以有效地控制非法用戶的接入。而無線網(wǎng)絡(luò)則沒有一個明確的防御邊界。首先,無線網(wǎng)絡(luò)的開放性帶來了信息截取、未授權(quán)使用服務(wù)、惡意注入信息等一系列信息安全問題。其次,WSN節(jié)點大部分都是低端的處理器,它們的資源(包括存儲容量、計算能力、通信帶寬和距離等)極其有限。再者,WSN的網(wǎng)絡(luò)容量非常龐大。鑒于以上特點,傳統(tǒng)密鑰管理方案并不適用于WSN。
本文在南相浩教授的組合公鑰算法的研究基礎(chǔ)上,對算法進行改進,提出了一種矩陣密鑰的認證方案。跟IBE一樣,矩陣密鑰算法也是基于身份標識的公鑰算法,不需要第三方證明的CA機構(gòu)鏈,但是,它不需要保留與用戶相關(guān)的參數(shù),只要保留少量的公共參數(shù)即可處理大量的公鑰,無需數(shù)據(jù)庫的支持。該算法以芯片級的儲存能力處理大規(guī)模(比如1048)的公鑰,非常適合應(yīng)用于智能家居控制網(wǎng)絡(luò)。
矩陣密鑰管理體制的安全基礎(chǔ)是橢圓曲線上的離散對數(shù)難題(EllipticCurveDiscreteLogarithmProblem,ECDLP),即對橢圓曲線上的點P,求Q=kP很容易,相反已知P和Q求k卻非常的困難。
矩陣密鑰管理體制在公開參數(shù)基礎(chǔ)上建立公鑰矩陣和私鑰矩陣,采用散列映射函數(shù)將實體的標識映射為矩陣的行列坐標,將矩陣元素進行組合生成龐大的公鑰與私鑰。
2.1橢圓曲線及其公開參數(shù)
由于本系統(tǒng)的有限域計算是在FPGA上實施的,考慮二進制有限域在硬件上比素數(shù)域?qū)崿F(xiàn)更加地方便,本系統(tǒng)選取了F2m上的Koblitz橢圓曲線y2+xy=x+ax+bmodF。其中,F(xiàn)為約減多項式(在南相浩教授的組合公鑰方案里,采用的是素數(shù)域[8])確定橢圓曲線后,適當(dāng)?shù)剡x取曲線上的點G作為生成元,成為基點。基點G=(Gx,Gy)的所有倍點構(gòu)成子群S={G,2G,3G,…,(N—1)G,NG}。其中NG即O,稱為子群S的階図。表明N是個殆素數(shù)(almost-prime),可以表示為N=hXn,其中n是個大素數(shù),h是個小整數(shù)。橢圓曲線密碼的公開參數(shù)組為T={a,b,G,N,m}。
按照NIST推薦,本系統(tǒng)參數(shù)選取見表1所列。橢圓曲線的計算可參見文獻。
2.2私鑰矩陣、公鑰矩陣的構(gòu)建
公鑰矩陣為16×32的矩陣。矩陣中的16×32個元素記為Xi,j(0≤i≤15,0≤j≤31)。它們都是子群S中的元素,即
2.3基于標識的密鑰的產(chǎn)生
密鑰是根據(jù)實體標識產(chǎn)生的。每個實體都有一個唯一可以區(qū)分其他實體的標識,比如居民的身份證號。在網(wǎng)絡(luò)中,每個節(jié)點都有一個網(wǎng)絡(luò)地址,這地址在整個網(wǎng)絡(luò)中是唯一的。我們首先對這個網(wǎng)絡(luò)地址進行散列映射處理,使得標識更具有隨機性。運算表達式如下:
identity為實體的標識,ID為標識的散列映射值。本系統(tǒng)中,HASH為SHA1算法,影射值為160位。從160位的ID中取出后128位,分割成32組,每組4位,每組依次為W0,W1,…,W31。計算公鑰為:
2.4密鑰管理
本系統(tǒng)中,有一個設(shè)備來負責(zé)密鑰的產(chǎn)生和發(fā)放,該設(shè)備叫密鑰管理中心(KeyManageCenter,KMC)。KMC首先選擇系統(tǒng)的加密曲線參數(shù)以及基點,參數(shù)T={a,b,G,N,m}向網(wǎng)絡(luò)公布。然后隨機產(chǎn)生16×32的私鑰矩陣。為了使每個不同的標識產(chǎn)生不同的私鑰,文獻給出了優(yōu)化方案。根據(jù)私鑰矩陣和基點,計算出公鑰矩陣。私鑰矩陣由KMC秘密保留,公鑰矩陣則公布。
當(dāng)網(wǎng)絡(luò)節(jié)點申請入網(wǎng)時,KMC根據(jù)節(jié)點的標識計算出節(jié)點的私鑰,并通過安全信道告知節(jié)點私鑰。公開參數(shù)和公鑰矩陣則在公開信道告知。圖1所示是其密鑰管理方案示意圖。
兩節(jié)點之間通信時,發(fā)送方用自己的私鑰對消息進行簽名,將消息和簽名在公開信道上發(fā)送給目標節(jié)點。接收方接收到消息和簽名時,先根據(jù)發(fā)送者的標識,從公鑰矩陣中計算出接收者的公鑰,從而進行消息的驗證。此過程無需第三方的參與,減少了網(wǎng)絡(luò)信息流量,提高了效率。
本方案支持海量節(jié)點的網(wǎng)絡(luò),以16X32密鑰矩陣為例,幾百Kb的容量就能支持1632=2128=1039個節(jié)點。
3數(shù)字簽名協(xié)議
本系統(tǒng)簽名協(xié)議采用橢圓曲線簽名算法(EllipticCurveDigitalSignatureAlgorithm,ECDSA)。簽名算法如算法1。其中,H為散列映射函數(shù),m為待簽名的消息,心為發(fā)送者的私鑰,Qa為發(fā)送者的公鑰。
算法1ECDSA如下:
簽名過程:
選擇整數(shù)kG(0,n);
計算kG=(X1,y1),并將轉(zhuǎn)換為整數(shù)x:
計算r=xmodn,如果r=0,則返回步驟1):
計算e=H(n);
計算s=k」(e+dAr)modn。若s=0,則跳至步驟1):
返回(r,s)。
驗證過程:
檢查r,s是否是區(qū)間(0,n)內(nèi)的整數(shù),若任一個不成立則否認簽名;
計算e=H(m);
計算w=s_1modn;
計算u1=ewmodn,u2=rwmodn;
計算X=uG+u2Qa=(x。,y。);
若X=8,則否認簽名;
將X0轉(zhuǎn)換為整數(shù)x,計算v=xmodn;
若v=r,則認可簽名,否則否認簽名。
簽名驗證的工作證明以及安全性證明詳見文獻。
4系統(tǒng)設(shè)計
本系統(tǒng)完成對智能家居控制網(wǎng)絡(luò)通信的地址認證。本系統(tǒng)的家居控制網(wǎng)絡(luò)由ZigBee網(wǎng)絡(luò)構(gòu)成。ZigBee網(wǎng)絡(luò)是一種短距離、低功耗的無線通信技術(shù),其近距離、低復(fù)雜度、自組織、低功耗、低數(shù)據(jù)速率、低成本等特點非常適合智能家居控制網(wǎng)絡(luò)。ZigBee節(jié)點的通信地址有64位的IEEE地址(也叫擴展地址,由設(shè)備商固化在設(shè)備中)和32位的網(wǎng)絡(luò)地址(也叫短地址,加入網(wǎng)絡(luò)后由協(xié)調(diào)器分配,每次加入網(wǎng)絡(luò)可能都不同)。在試驗中,我們采用擴展地址通信方式。本系統(tǒng)中網(wǎng)絡(luò)通信認證主要是對地址真實性的認證,能夠正確地識別數(shù)據(jù)的來源,避免消息的偽造。消息的簽名和認證算法則由FPGA完成。ZigBee模塊與FPGA之間通過SPI總線通信。其硬件設(shè)計框圖見圖2所示。
圖2 硬件設(shè)計框圖
ZigBee模塊在發(fā)送消息m前,將消息發(fā)送給FPGA,FPGA完成對消息的簽名,并將簽名<rs>返回給ZigBee模塊。之后,ZigBee模塊在接收到后,將簽名內(nèi)容附屬在消息后面,形成<m,r,s>,并將這發(fā)送。當(dāng)ZigBee模塊接收到附帶簽名的消息<m,r,s>后,將消息發(fā)送給FPGA進行處理。FPGA對消息進行驗證,將驗證結(jié)果返回給ZigBee模塊。若消息驗證成功,則交給用戶進行下一步的處理,否則認為消息來源不可信,拋棄消息不予處理。
圖3 軟件流程圖
FPGA簽名和認證流程圖如圖3所示。FPGA模塊有簽名和驗證兩種模式,由ZigBee模塊通知選擇。在兩種模式下分別進行ECDSA簽名和ECDSA驗證處理,將處理結(jié)果傳送回ZigBee模塊進行下一步處理。
5實驗結(jié)果分析
本次試驗中,采用CC2530作為ZigbBee模塊,簽名認證算法由EP2C5T144CB完成,時鐘頻率為40MHz。
發(fā)送方發(fā)送消息為“Hello!”,消息HASH值為表2中的HASH(m)。
發(fā)送方用自己的私鑰dA對消息進行簽名,得到消息簽名r和s。
接收方收到帶有簽名的消息后,根據(jù)發(fā)送方的IEEE地址,通過公鑰矩陣查詢到發(fā)送方的公鑰為坐標(QA_x,QA_y),經(jīng)過ECDSA認證算法后得到v。
表2記錄了實驗數(shù)據(jù)。
分析實驗數(shù)據(jù)表2可得v=r,根據(jù)認證算法接收該簽名。本方案實現(xiàn)了對消息的簽名和認證,提高了網(wǎng)絡(luò)通信的可靠安全性。
6結(jié)語
本系統(tǒng)將基于標志認證的矩陣密鑰算法應(yīng)用到智能家居遠程控制網(wǎng)絡(luò)的真實性認證當(dāng)中,實現(xiàn)了無需第三方的在線參與的本地認證,大大提高了認證效率。網(wǎng)絡(luò)中的KMC只需要在設(shè)備加入網(wǎng)絡(luò)時分配密鑰,平時并不參與認證活動;網(wǎng)絡(luò)中的各個終端節(jié)點,也只是增加一些算法的實現(xiàn),以很小的代價實現(xiàn)了對家庭網(wǎng)絡(luò)的地址認證,為建立安全可信任的網(wǎng)絡(luò)打下了良好的基礎(chǔ),確保了網(wǎng)絡(luò)通信間的安全可靠。