李琪陽,董雷,2
(1.武漢郵電科學研究院,湖北武漢430000;2.武漢理工光科股份有限公司,湖北武漢430000)
物聯網(Internet of Things,IoT)技術及其應用的發展態勢迅猛,其數量也呈現出激增的趨勢。有研究報告指出,物聯網設備的數量在未來也將因為市場需求的增加而呈指數級增長,預計2030年物聯網設備的數目將達到1 250 億[1]。海量異構式分布的物聯網應用場景在方便人們生活的同時,其自身的安全問題也日趨嚴峻。物聯網設備的安全問題引發了多方面的研究探索——設備指紋正成為一個新的研究熱點。物聯網設備和人體指紋一樣,擁有可被采集性、唯一性和不可復制性。在傳統設備識別方式受限的情況下,設備指紋顯露出蓬勃的識別潛力。
文獻[2]基于隱性信息,分析了瀏覽器指紋的生成算法和更新問題,但是未對物聯網這一課題進行探討;文獻[3]設計了基于關聯匹配的物聯網設備指紋識別算法,但該算法限制只允許一條隱性信息發生改變,對設備指紋的更新研究具有一定的局限性。基于此,文中考慮到設備指紋的動態性變化,設計了基于樸素貝葉斯的物聯網設備指紋算法,解決設備指紋的更新問題,并根據實驗結果驗證了在實際情況下算法的性能。
設備指紋是可以唯一標識出某一設備的特征信息集,其研究通常圍繞顯性信息和隱性信息(有些文獻中也稱為顯性標識符和隱性標識符)開展,設備指紋的顯性信息可以唯一識別該設備,一般是設備的ID、出廠序列號等,是其獨有的特征標識。設備指紋的隱性信息所涵蓋的范圍更為廣泛,如設備的基本屬性、判斷屬性和集合屬性等,物聯網設備指紋的隱性信息一般可以通過調用設備的接口來獲取。顯性信息識別設備由于其易被篡改和偽造,很容易造成安全問題。單個的隱性信息無法進行設備識別,因此,將按照一定的規則組合多個隱性信息來生成設備指紋,以此有效地增強對設備的識別能力。
文中采用網絡攝像頭作為實驗所需的物聯網設備,采取主動式設備指紋特征獲取技術,通過軟件開發工具包(Software Development Kit,SDK)獲取網絡攝像頭的特征屬性,再通過服務器端寫入的Hash 算法生成設備指紋,從而構建指紋信息庫,主動式設備指紋技術原理如圖1所示。主動式設備指紋技術雖然可以獲取全面且精確的設備信息,但是需要依賴設備用戶開放權限[4]。

圖1 主動式設備指紋技術原理圖
考慮到設備信息選取應具備的普遍性、標識性和可采集性以及網絡攝像頭的相關特征,在參考了文獻[4]的指紋元素后,文中選取設備的IP 地址、設備參數信息(主要包含設備的序列號、類型)、壓縮參數、音頻編碼信息、屏幕信息(主要包含屏幕分辨率等)以及時間信息作為設備的隱性信息。根據設備生產廠商(海康威視)提供的SDK 開發文檔,調用SDK 接口提取設備信息并上傳到后臺服務器。SDK接口調取參數信息的主要流程如圖2所示。

圖2 SDK接口調用流程
設備指紋識別性能指標通常由準確率(Accuracy)、誤報率(FPR)、和漏報率(FNR)來反映。一般采用混淆矩陣中的正負類指標TP(真正)、TN(真負)、FP(假正)、FN(假負)來表征3 項評價指標,其計算公式如下:

其中,Accuracy包含識別成功且經驗證為正確與識別失敗但經驗證為正確的兩種結果;FPR表示識別正確但驗證為錯誤的結果,即不同的兩條設備指紋被識別為同一設備;FNR表示識別失敗但驗證為錯誤的結果,即未能識別出已有的設備指紋,而誤認為其代表的是新設備。可見,3 項性能指標全面地覆蓋了設備指紋識別可能出現的識別結果,使實驗結果具有可信度。
樸素貝葉斯算法要求每個特征相互獨立不互相影響,其核心思想就是計算每個類別的概率從而找出概率最大或最為匹配的類別。
給定一個訓練數據集,為了計算已知特征y而分類為xi的后驗概率,由貝葉斯定理可得:

式中,P(xi)和P(y)分別代表類別xi和特征y的先驗概率。P(y|xi)是指種類xi具有特征y的可能性。
由上述分析可知,最大化P(xi|y)的值即可實現分類的目標。
對于未知類別的設備指紋樣本y,P(xi|y) 表征的是指紋y屬于某一個類別x的概率。已知設備指紋y由多條隱性信息組成,可表示為y=(y1,y2,…,yn)。
當各屬性相互獨立的條件下,由式(4)可知:

將P(xi)和P(y1,y2,…,yn)看作常量,簡化上式,可以近似得出未知類別的設備指紋樣本y的分類結果xf滿足式(6):

假設指紋數據集樣本總數為D,由于樣本數據集有限,某個屬于類別xi的離散值yk在數據集中出現的次數|Dyk,xi|可能為零,乘積為零導致分類結果不準確,因此引入狄利克雷校準:

式中,μ為任意取值的參數。
可以將設備指紋庫DF中的每條指紋df看成是一個類別,根據式(7)計算p(df|y)的值,如果所有的值均小于threshold,說明DF不包含待測的指紋y,即關聯失敗[5]。
為了確定合適的閾值,引入了新的概念:精確率(Precision)、召回率(Recall)和F分數Fα。精確率和召回率是對1.3 節中3 項性能指標的一種新的反映形式,而F分數則是兼顧二者的綜合評價指標。當α<1 時,精確率的權重大于召回率,符合實驗預期,所以令α=0.5。三者的計算公式如下:

閾值threshold 初始設置為0,在訓練數據集上運行樸素貝葉斯分類器。每完成一次分類后,都會得到設備指紋所屬的類別xf和其對應的概率值p,根據比對庫驗證識別結果,更新TP、TN、FP、FN,并計算此時的F0.5。定義一個<key,value>鍵值對數組記錄xf對應的概率值為p時,匹配成功且正確、匹配成功但錯誤、匹配失敗但正確和匹配失敗且錯誤的數量。將非零的key值從小到大排序,調整threshold的關系使之滿足Keyi<threshold<Keyi+1,i∈[1,n]。從數組中讀取Keyi對應的元組,從而更新TP、TN、FP、FN的值,就能不斷獲取新的閾值和其對應的F0.5。當F0.5取最大值時所對應的閾值即為目標閾值[6-10]。
根據以上公式推導,可以得到基于樸素貝葉斯分類器的設備指紋算法如圖3所示。

圖3 基于樸素貝葉斯的物聯網設備指紋算法流程圖
如圖3所示,分類結束后,遍歷列表q,篩選出符合條件的概率值。若q能滿足限制條件,則認為分類成功,設備指紋y在已有類別中可以找到對應類別,為回訪設備;若q無法滿足限制條件,則表明設備指紋y不在已有的類別中,是新的物聯網設備接入,將此指紋存入設備指紋庫中,并對設備指紋總數和所屬類別總數進行更新[11-13]。
文中的實驗流程如圖4所示,具體過程如下:

圖4 實驗流程
1)設備管理平臺接入設備;
2)采集第1 節中選取的設備信息,生成設備指紋一同存入設備指紋庫中;
3)當后臺服務器接收到新上傳的設備指紋時,遍歷已有的設備指紋庫,完成指紋的分類;
4)如果識別成功,則直接在指紋庫中讀取關聯的序列號;
5)若結果顯示設備信息發生變化,服務器會執行指紋更新模塊來完成指紋的相關更新操作,并將得到的新的設備指紋寫入庫中。
文中選取了452 個海康網絡攝像頭作為物聯網接入設備,在2020年5月8日至2020年10月15日期間共收集到了5 940 條指紋數據。對于基于樸素貝葉斯分類器的指紋更新算法,采用指紋數據集中的70%作為訓練集,余下的30%作為測試集。在訓練集進行分類器的訓練,再用訓練好的分類器對測試集上的指紋進行分類。在對其進行平滑處理時,將參數μ的取值定為0.01、0.10、1.00 來進行對比實驗。TP、TN、FP、FN的測試結果如表1所示[14-16]。

表1 混淆矩陣指標測試結果
根據表1中TP、TN、FP和FN的數值以及式(1)~(3)進一步計算可以得到算法的3 項性能指標,統計結果如圖5所示。

圖5 3種性能指標的統計結果
針對物聯網技術迅速發展所帶來的一系列設備識別安全問題,結合對現有指紋技術的分析,文中研究了基于樸素貝葉斯的物聯網指紋算法,并且將設備指紋的更新問題轉化為分類問題,通過實驗驗證了其在實際應用場景下的性能,實驗結果表明,算法識別準確率高、誤報率和漏報率極低,算法高效且易于實現,具有一定的現實參考意義。