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