張彥杰,龐振江,王暉南,袁艷芳,梁曉兵,劉佳易,楊 峰
(1.北京智芯微電子科技有限公司,國家電網(wǎng)公司重點實驗室 電力芯片設(shè)計分析實驗室,北京 100192;2.國網(wǎng)山西省電力公司營銷服務(wù)中心,太原 030032;3.中國電力科學(xué)研究院有限公司,北京 100192)
近年來,隨著智能電網(wǎng)、智能家居、智能交通、智能物流等技術(shù)的不斷發(fā)展,物聯(lián)網(wǎng)的應(yīng)用越發(fā)普及,萬物互聯(lián)互通,加強了人與物、物與物的信息交流,實現(xiàn)更高的工作效率[1]。同時,物聯(lián)網(wǎng)的出現(xiàn)使得信息系統(tǒng)面臨巨大的安全和隱私保護挑戰(zhàn),如物理安全、運行安全、數(shù)據(jù)安全等。因此,要加強讀取控制、隱私保護、用戶認證、數(shù)據(jù)保密性和可用性。
物聯(lián)網(wǎng)通常包含感知層、傳輸層、應(yīng)用層。借助互聯(lián)網(wǎng)的發(fā)展成果,傳輸層和應(yīng)用層已有相對成熟的安全防護技術(shù),如端到端加密、PGP、SSL/TLS和IPsec等技術(shù),提供通信加密和認證功能,保證通信雙方的數(shù)據(jù)傳輸和業(yè)務(wù)交互安全[2]。但是物聯(lián)網(wǎng)感知層具有節(jié)點設(shè)備種類復(fù)雜、設(shè)備能力和資源差異大等特點,而且感知層設(shè)備擁有大量原始數(shù)據(jù),如果被不合法節(jié)點、服務(wù)器訪問,將會導(dǎo)致數(shù)據(jù)泄露,威脅用戶和行業(yè)信息安全,增加管理風(fēng)險。因此,物聯(lián)網(wǎng)感知層設(shè)備的身份識別顯得尤為重要。
傳統(tǒng)的身份識別技術(shù),如基于口令的身份識別[3]、基于電子識別卡的身份識別[4],這些方法由于安全性缺陷、成本較高等問題,不適用于物聯(lián)網(wǎng)業(yè)務(wù)系統(tǒng)。目前,基于指紋、聲紋、虹膜等的生物特征識別得到了廣泛應(yīng)用,具有穩(wěn)定性高、不易被仿制和竊取的特點[5],很多學(xué)者將這個思路拓展應(yīng)用到了硬件設(shè)備中,CHEN et al[6]從無線物聯(lián)網(wǎng)設(shè)備中聲音播放和采集器件的頻率響應(yīng)中提取聲學(xué)硬件指紋。此方法需要借助信號采集與分析工具,過程復(fù)雜,指紋提取耗時長,且在元器件老化后難以校對與更新,識別精度達不到既定的要求。方瑩瑩[7]利用電池生產(chǎn)以及用戶使用的差異性提取電量消耗特征,進而識別不同的移動終端。其中電量特征涵蓋時域及頻域特征,信息量大,需要消耗較多的存儲空間,且設(shè)備識別效率隨著電量的降低而降低。另外,現(xiàn)有方案在設(shè)備信息隱私保護方面的機制不完善,不利于在物理環(huán)境復(fù)雜的場景下使用。因此,此類技術(shù)難以在物聯(lián)網(wǎng)海量不同種類的設(shè)備中推廣。
基于以上分析,為滿足物聯(lián)網(wǎng)設(shè)備身份識別對安全性、實時性、穩(wěn)定性和不可偽造性的要求,提出基于設(shè)備軟硬件特征標識和輕量級密碼學(xué)技術(shù)的指紋生成方法。首先,獲取設(shè)備的軟硬件特征標識數(shù)據(jù),并可選地結(jié)合其中的內(nèi)嵌模塊的特征信息,運用信息量理論合理選取特征子集;其次,對比不同密碼算法的特點,綜合考慮計算效率和占用存儲空間、密鑰管理等因素,使用國密輕量級算法生成設(shè)備指紋。最后,通過實驗驗證了本文方法的有效性和可行性。
設(shè)備指紋是一種特征信息,其具有唯一性或獨特性,能夠依據(jù)該特征識別出設(shè)備。通常由一個或多個唯一標識符組成,如:移動通信終端的IMEI編號、設(shè)備硬件序列號、網(wǎng)卡的MAC地址、CPU序列號、磁盤序列號、BIOS序列號、聲卡ID等特征信息,巧妙地利用這些硬件信息組合,即可唯一地確定某個設(shè)備[8-9]。
物聯(lián)網(wǎng)感知層通常需要獲取的數(shù)據(jù)類型多種多樣,如電氣量感知、環(huán)境量感知、物理量感知、行為量感知等,因此感知設(shè)備涵蓋了多種傳感器、視頻采集器、數(shù)據(jù)采集設(shè)備等,一個設(shè)備根據(jù)其功能的復(fù)雜程度不同,涵蓋的特征標簽也不盡相同,如設(shè)備編號、性能參數(shù)、運行環(huán)境參數(shù)。除此之外,某些智能設(shè)備還包含通信模塊、計量模塊、控制模塊等,這些模塊又有各自眾多特征參數(shù)信息。這些特征信息的特點如下:
1) 設(shè)備序列號/ID,是生產(chǎn)廠商為設(shè)備分配的唯一標識符,但是目前對于序列號的定義尚沒有統(tǒng)一的規(guī)范和標準,隨著物聯(lián)網(wǎng)設(shè)備種類和數(shù)量不斷增多,存在重復(fù)的可能性。
2) 設(shè)備通用參數(shù),如類型、名稱、型號、功能等,屬于公開屬性,容易獲取,存在被復(fù)制的風(fēng)險[10]。
3) 設(shè)備通信參數(shù)。如MAC、IP地址、位置、通信協(xié)議等,不同的應(yīng)用環(huán)境,使用通信協(xié)議有差異,如紅外、藍牙、RS-485、WIFI等,參數(shù)不容易統(tǒng)一;位置則受定位精度影響;MAC等容易被偽裝和篡改[11]。
4) 設(shè)備硬件參數(shù),如能耗、頻率、啟動時間等,這些信息一般是在出廠時檢測,隨著使用環(huán)境的變化,如溫度、濕度、電磁干擾等,存在波動的情況,而且采集過程復(fù)雜。
5) 設(shè)備的軟件版本號。隨著軟件的升級而變化,唯一性較差。
6) 內(nèi)嵌模塊識別號。通常由制造廠根據(jù)規(guī)則為每一個模塊分配識別碼,或者采用模塊的物理特性和生產(chǎn)工藝差異產(chǎn)生識別碼,具有唯一性和不可復(fù)制性。
7) 內(nèi)嵌模塊運行狀態(tài),如安全狀態(tài)、存儲狀態(tài)等,由于模塊的軟硬件設(shè)計具有高安全等特點,因此此類特征安全性高,且這些狀態(tài)不容易被復(fù)制,唯一性較好。
8) 內(nèi)嵌模塊其他參數(shù),如存儲空間、復(fù)位時間等,此類特性根據(jù)電子元件的制造容差和漂移,表現(xiàn)出一定的差異性,易隨著使用環(huán)境的不同而變化。
如果這些特征信息全部參與指紋計算,能夠全面反映一個設(shè)備的特性,且能夠唯一標識某設(shè)備。但是另一方面,這種指紋計算方式需要較大的存儲空間,且會給設(shè)備算力及能耗等帶來較大的壓力。因此,如何在多維特征信息中選擇一部分合理的數(shù)據(jù),是本文將要解決的問題。
特征選擇是解決數(shù)據(jù)空間復(fù)雜度的一個方法,根據(jù)某些準則在原始特征空間中刪除冗余或不相關(guān)特征,選取一組特征子集,以達到縮短算法運行時間,提高分類準確率的目的。例如LEE et al[12]提出了基于多變量互信息的多標記特征選擇算法,該算法利用信息熵度量特征對標記空間的重要程度。林夢雷等[13]提出的基于標記權(quán)重的多標記特征選擇算法。
互信息理論作為不確定性的一種有效度量方式,被廣泛用于特征選擇。假設(shè)特征集合為F,且F={f1,f2,…,fm},其中m表示特征個數(shù)。設(shè)標簽集合為C,且C={c1,c2,…,cs},其中s表示此數(shù)據(jù)集的標簽值的個數(shù)。
定義1驚異值[14]。驚異值是指一個具體事件發(fā)生所帶來的信息。
設(shè)fi為F中的任意特征,p(fi)是離散概率密度函數(shù),則某個特征fi的驚異值為:
I(fi)=-log2p(fi) .
(1)
定義2信息熵[14]。信息熵是對不確定現(xiàn)象的數(shù)學(xué)化度量,其值越大,表明不確定性就越大,想要確定一件事情的發(fā)生需要的信息就越多。
設(shè)fi為F中的任意特征,其中l(wèi)表示特征fi的特征值的個數(shù),則fi的信息熵定義為:
(2)
其中,p(fij)表示fij在數(shù)據(jù)集中發(fā)生的概率。
定義3互信息[15]。是一個隨機變量中包含的關(guān)于另一個隨機變量的信息量?;バ畔⒃酱蟊砻髟撎卣髟街匾?,反之則重要性越弱。
設(shè)fi為F中的任意特征,則特征fi和標簽集合C的互信息定義為:
(3)
基于以上理論,將前一章節(jié)所述的八類信息作為特征集合F,以唯一性(Uniqueness)、安全性(Security)、不可偽造性(Unforgeability)、穩(wěn)定性(Stability)作為標簽集合C,結(jié)合文獻[16]和文獻[17]提出了基于專家信息加權(quán)機制的特征選擇方法。
1) 對互信息I(fi,C)進行降序排列,挑選出互信息值大的特征作為專家特征F1,這些特征對標簽的影響至關(guān)重要。
2) 將專家特征集作為條件與剩余特征F2相聯(lián)合,計算這兩個特征集的互信息I(f1i,f2j),進行升序排列,挑選出互信息值小的特征,降低特征的冗余性,作為輔助特征集,以避免重復(fù)計算,提高特征選擇速度。
經(jīng)過該方法篩選得到的特征子集為:設(shè)備/模塊唯一序列號、通用參數(shù)、產(chǎn)品檢測序列號、內(nèi)嵌模塊運行狀態(tài)。該子集涵蓋了盡可能多的類別信息,同時冗余性較小。
目前指紋生成常用的算法有MD5和SHA-1等,張智等[18]使用兩次SHA256算法,保證加密強度;羅軍舟等[19]直接使用了基于瞬態(tài)特征、基于調(diào)制信號和基于內(nèi)部傳感器特征作為指紋。設(shè)備指紋的生成算法通常需要考慮設(shè)備的數(shù)據(jù)處理性能、隱私保護、指紋的可識別性等因素,本文對國際國內(nèi)摘要算法、非對稱算法和對稱算法在安全性和輕量化等方面進行了對比,具體情況如下。
以雜湊函數(shù)為基礎(chǔ),是一種單向密碼體制,只有加密過程,不能解密,而且加密過程不需要密鑰參與。國際上最流行的是MD4,在后續(xù)使用過程中,有的學(xué)者發(fā)現(xiàn)了MD4潛在的缺陷,陸續(xù)出現(xiàn)了MD5、SHA家族、PIPEMD等[20]新算法。國產(chǎn)SM3商用密碼算法在抗碰撞攻擊、原像攻擊等方面,與國際上常見的摘要算法相比,整體上具有較高的安全性;在實現(xiàn)效率方面,與SHA-256相當,但增加了如P置換函數(shù)等改進技術(shù),既節(jié)省了硬件開銷,又提升了算法的運算效率和適用性[21]。
目前流行的非對稱加密算法主要有 RSA、DSA、Elgamal等,國產(chǎn)商用密碼算法有SM2和SM9,其安全性建立在橢圓曲線離散對數(shù)問題上。這類算法加密強度更高,在數(shù)據(jù)通信領(lǐng)域應(yīng)用十分廣泛。有研究表明[20],在相同安全性水平下,SM2算法使用較短的操作數(shù)就能提供與RSA同等的安全等級(大致為160~256位比1 024~3 072位),且得到的密文也相對較短。
該算法加解密速度非???,適合于大數(shù)據(jù)量的加解密,缺點是密鑰的分發(fā)和管理復(fù)雜,容易造成密鑰泄漏。目前常用的對稱加密算法包括DES、AES和RC4算法。國產(chǎn)商用密碼算法SM4已發(fā)布為國家標準,其安全性比國際上大多數(shù)分組算法都具有優(yōu)勢,能夠抵抗常見的多種攻擊[21]。
由以上分析可知,非對稱密碼算法安全性高,但算法過于復(fù)雜,數(shù)據(jù)加密效率遠不及對稱密碼算法高。摘要算法的單向性和輸出長度固定的特征,可用于生成消息的“數(shù)字指紋”。因此,本文選擇國密算法SM3和SM4,前者不需要存儲密鑰,可減輕設(shè)備的存儲壓力;后者適用于已經(jīng)布局了密鑰管理體系的應(yīng)用場景,可分配專用密鑰用于指紋計算。
本文設(shè)計的設(shè)備指紋生成流程包含4個組成部分,分別是:智能終端特征采集模塊、安全單元特征采集模塊、特征選擇模塊、指紋生成模塊。執(zhí)行流程如圖1所示。
圖1 指紋生成流程Fig.1 Fingerprint generation process
工作流程及計算過程如下所述:
1) 獲取終端特征信息
a.獲取硬件序列號FT1=get hardware ID
b.獲取通用參數(shù)FT2=get general paras
c.獲取產(chǎn)品檢測序號FT3=get detection ID
2) 獲取安全單元特征信息
a.獲取標識符FSM1=get module ID
b.獲取通用參數(shù)FSM2=get general paras
c.獲取安全狀態(tài)FSM3=get secure status
3) 加權(quán)的特征合成
加權(quán)計算:
TF=α×FT1‖β×FT2‖γ×FT3.
(4)
加權(quán)計算:
FSM=α×FSM1‖β×FSM2‖γ×FSM3.
(5)
其中,α,β,γ為特征權(quán)重,取值為{0.4,0.2,0.4}.
4) 生成設(shè)備指紋信息
將設(shè)備特征與安全單元特征進行組合:
M=FT‖F(xiàn)SM.
(6)
設(shè)備指紋安全計算
EF=enc_xor(SM4key,M,m_len) .
(7)
或者
EF=hash_SM3(M,m_len) .
(8)
公式(7)是對稱算法的計算過程。為保證對稱密碼算法輸出的指紋值長度與摘要算法一致,對加密結(jié)果按照32字節(jié)進行分組,最后對這些分組數(shù)據(jù)進行異或,得到最終結(jié)果。計算過程如圖2所示。
圖2 指紋計算過程(SM4)Fig.2 Fingerprint calculation process(SM4)
公式(8)是摘要算法的計算過程。該算法對合成的特征M進行填充和迭代壓縮,生成長度為32字節(jié)的指紋值。計算過程如圖3所示。
圖3 指紋計算過程(SM3)Fig.3 Fingerprint calculation process(SM3)
本文基于智能電能表數(shù)據(jù)采集設(shè)備(集成了安全單元)搭建測試環(huán)境,由于安全單元支持SM3、SM4算法,且可以與設(shè)備進行數(shù)據(jù)交互,因此在其上開發(fā)了設(shè)備指紋生成的軟件代碼。在本次實驗過程中,對不同廠家的500臺設(shè)備進行了指紋提取,并使用邏輯分析儀對計算過程進行監(jiān)測及時長采集,結(jié)果如表1所示。
表1 設(shè)備指紋計算用時情況Table 1 Device fingerprint calculation time
實時性分析:根據(jù)表1可知,指紋提取計算耗時在3~5 ms之間。在設(shè)備生產(chǎn)階段,指紋采集可以放在出廠檢測之后,對生產(chǎn)流水線幾乎沒有影響;對于已經(jīng)在現(xiàn)場運行的設(shè)備,指紋采集過程耗時也能夠滿足大多數(shù)應(yīng)用場境的要求。
安全性分析:SM3算法的弱抗沖突性和強抗沖突性保證了指紋數(shù)據(jù)的安全;SM4算法優(yōu)化了非線性變換,保證了較高的安全強度。
穩(wěn)定性分析:由于采用互信息進行特征選擇,容易發(fā)生變化的特征信息未參與運算,即使設(shè)備的軟件版本、物理位置、通信方式等發(fā)生變化,不會影響設(shè)備指紋值。
不可偽造性分析:首先,特征子集中包含的隱性特征很難獲取到。其次,SM3算法的單向性和對輸入數(shù)據(jù)的高度敏感性保證了指紋難以偽造;SM4算法由于使用了專有密鑰,做好密鑰保護即可防止偽造的可能。
依據(jù)GM/T0005-2012對輸出32字節(jié)指紋數(shù)據(jù)進行隨機性測評,結(jié)果如表2所示。
表2 設(shè)備指紋隨機性檢測結(jié)果Table 2 Random detection results of device fingerprint
唯一性分析:根據(jù)表2測評結(jié)果可知,使用該方案生成的指紋數(shù)據(jù)通過了頻數(shù)、自相關(guān)、統(tǒng)計、線性復(fù)雜度等檢測,滿足隨機性和唯一性要求。
同時,將本文提出的方法與部分文獻進行對比,如表3所示,包括:涵蓋特征類別、耗時、安全性、是否借助外部工具等方面。分析可知,本文所提出的方法在實時性、保密性等方面有一定優(yōu)勢。
表3 幾種指紋提取方案的比較Table 3 Comparison of several fingerprint extraction schemes
針對目前物聯(lián)網(wǎng)感知層智能設(shè)備的身份識別問題,本文提出了一種基于設(shè)備特征標識及國密輕量級算法的設(shè)備指紋生成方法。首先,在設(shè)備本身特征基礎(chǔ)上引入了安全單元的特征數(shù)據(jù),對設(shè)備的軟硬件特征信息進行分析;接著,利用基于專家信息加權(quán)機制對特征進行選擇,保證了特征范圍的合理性。再次,分析了信息安全領(lǐng)域常用的國際、國內(nèi)相關(guān)算法,選擇計算性能和安全性較高的SM3、SM4算法。通過實驗驗證,依據(jù)本文方案生成的指紋信息具有唯一性和不可偽造等特點,能夠滿足物聯(lián)網(wǎng)感知設(shè)備對安全性及計算輕量級的要求,有利于數(shù)據(jù)隱私保護,為身份識別提供了數(shù)據(jù)基礎(chǔ)。下一步將研究設(shè)備指紋在物聯(lián)網(wǎng)中的具體應(yīng)用,例如在標識公鑰體系中的使用、安全接入、設(shè)備管理等。