李琪陽(yáng),董雷,2
(1.武漢郵電科學(xué)研究院,湖北武漢430000;2.武漢理工光科股份有限公司,湖北武漢430000)
物聯(lián)網(wǎng)(Internet of Things,IoT)技術(shù)及其應(yīng)用的發(fā)展態(tài)勢(shì)迅猛,其數(shù)量也呈現(xiàn)出激增的趨勢(shì)。有研究報(bào)告指出,物聯(lián)網(wǎng)設(shè)備的數(shù)量在未來(lái)也將因?yàn)槭袌?chǎng)需求的增加而呈指數(shù)級(jí)增長(zhǎng),預(yù)計(jì)2030年物聯(lián)網(wǎng)設(shè)備的數(shù)目將達(dá)到1 250 億[1]。海量異構(gòu)式分布的物聯(lián)網(wǎng)應(yīng)用場(chǎng)景在方便人們生活的同時(shí),其自身的安全問(wèn)題也日趨嚴(yán)峻。物聯(lián)網(wǎng)設(shè)備的安全問(wèn)題引發(fā)了多方面的研究探索——設(shè)備指紋正成為一個(gè)新的研究熱點(diǎn)。物聯(lián)網(wǎng)設(shè)備和人體指紋一樣,擁有可被采集性、唯一性和不可復(fù)制性。在傳統(tǒng)設(shè)備識(shí)別方式受限的情況下,設(shè)備指紋顯露出蓬勃的識(shí)別潛力。
文獻(xiàn)[2]基于隱性信息,分析了瀏覽器指紋的生成算法和更新問(wèn)題,但是未對(duì)物聯(lián)網(wǎng)這一課題進(jìn)行探討;文獻(xiàn)[3]設(shè)計(jì)了基于關(guān)聯(lián)匹配的物聯(lián)網(wǎng)設(shè)備指紋識(shí)別算法,但該算法限制只允許一條隱性信息發(fā)生改變,對(duì)設(shè)備指紋的更新研究具有一定的局限性?;诖耍闹锌紤]到設(shè)備指紋的動(dòng)態(tài)性變化,設(shè)計(jì)了基于樸素貝葉斯的物聯(lián)網(wǎng)設(shè)備指紋算法,解決設(shè)備指紋的更新問(wèn)題,并根據(jù)實(shí)驗(yàn)結(jié)果驗(yàn)證了在實(shí)際情況下算法的性能。
設(shè)備指紋是可以唯一標(biāo)識(shí)出某一設(shè)備的特征信息集,其研究通常圍繞顯性信息和隱性信息(有些文獻(xiàn)中也稱為顯性標(biāo)識(shí)符和隱性標(biāo)識(shí)符)開(kāi)展,設(shè)備指紋的顯性信息可以唯一識(shí)別該設(shè)備,一般是設(shè)備的ID、出廠序列號(hào)等,是其獨(dú)有的特征標(biāo)識(shí)。設(shè)備指紋的隱性信息所涵蓋的范圍更為廣泛,如設(shè)備的基本屬性、判斷屬性和集合屬性等,物聯(lián)網(wǎng)設(shè)備指紋的隱性信息一般可以通過(guò)調(diào)用設(shè)備的接口來(lái)獲取。顯性信息識(shí)別設(shè)備由于其易被篡改和偽造,很容易造成安全問(wèn)題。單個(gè)的隱性信息無(wú)法進(jìn)行設(shè)備識(shí)別,因此,將按照一定的規(guī)則組合多個(gè)隱性信息來(lái)生成設(shè)備指紋,以此有效地增強(qiáng)對(duì)設(shè)備的識(shí)別能力。
文中采用網(wǎng)絡(luò)攝像頭作為實(shí)驗(yàn)所需的物聯(lián)網(wǎng)設(shè)備,采取主動(dòng)式設(shè)備指紋特征獲取技術(shù),通過(guò)軟件開(kāi)發(fā)工具包(Software Development Kit,SDK)獲取網(wǎng)絡(luò)攝像頭的特征屬性,再通過(guò)服務(wù)器端寫(xiě)入的Hash 算法生成設(shè)備指紋,從而構(gòu)建指紋信息庫(kù),主動(dòng)式設(shè)備指紋技術(shù)原理如圖1所示。主動(dòng)式設(shè)備指紋技術(shù)雖然可以獲取全面且精確的設(shè)備信息,但是需要依賴設(shè)備用戶開(kāi)放權(quán)限[4]。
圖1 主動(dòng)式設(shè)備指紋技術(shù)原理圖
考慮到設(shè)備信息選取應(yīng)具備的普遍性、標(biāo)識(shí)性和可采集性以及網(wǎng)絡(luò)攝像頭的相關(guān)特征,在參考了文獻(xiàn)[4]的指紋元素后,文中選取設(shè)備的IP 地址、設(shè)備參數(shù)信息(主要包含設(shè)備的序列號(hào)、類型)、壓縮參數(shù)、音頻編碼信息、屏幕信息(主要包含屏幕分辨率等)以及時(shí)間信息作為設(shè)備的隱性信息。根據(jù)設(shè)備生產(chǎn)廠商(??低暎┨峁┑腟DK 開(kāi)發(fā)文檔,調(diào)用SDK 接口提取設(shè)備信息并上傳到后臺(tái)服務(wù)器。SDK接口調(diào)取參數(shù)信息的主要流程如圖2所示。
圖2 SDK接口調(diào)用流程
設(shè)備指紋識(shí)別性能指標(biāo)通常由準(zhǔn)確率(Accuracy)、誤報(bào)率(FPR)、和漏報(bào)率(FNR)來(lái)反映。一般采用混淆矩陣中的正負(fù)類指標(biāo)TP(真正)、TN(真負(fù))、FP(假正)、FN(假負(fù))來(lái)表征3 項(xiàng)評(píng)價(jià)指標(biāo),其計(jì)算公式如下:
其中,Accuracy包含識(shí)別成功且經(jīng)驗(yàn)證為正確與識(shí)別失敗但經(jīng)驗(yàn)證為正確的兩種結(jié)果;FPR表示識(shí)別正確但驗(yàn)證為錯(cuò)誤的結(jié)果,即不同的兩條設(shè)備指紋被識(shí)別為同一設(shè)備;FNR表示識(shí)別失敗但驗(yàn)證為錯(cuò)誤的結(jié)果,即未能識(shí)別出已有的設(shè)備指紋,而誤認(rèn)為其代表的是新設(shè)備??梢?jiàn),3 項(xiàng)性能指標(biāo)全面地覆蓋了設(shè)備指紋識(shí)別可能出現(xiàn)的識(shí)別結(jié)果,使實(shí)驗(yàn)結(jié)果具有可信度。
樸素貝葉斯算法要求每個(gè)特征相互獨(dú)立不互相影響,其核心思想就是計(jì)算每個(gè)類別的概率從而找出概率最大或最為匹配的類別。
給定一個(gè)訓(xùn)練數(shù)據(jù)集,為了計(jì)算已知特征y而分類為xi的后驗(yàn)概率,由貝葉斯定理可得:
式中,P(xi)和P(y)分別代表類別xi和特征y的先驗(yàn)概率。P(y|xi)是指種類xi具有特征y的可能性。
由上述分析可知,最大化P(xi|y)的值即可實(shí)現(xiàn)分類的目標(biāo)。
對(duì)于未知類別的設(shè)備指紋樣本y,P(xi|y) 表征的是指紋y屬于某一個(gè)類別x的概率。已知設(shè)備指紋y由多條隱性信息組成,可表示為y=(y1,y2,…,yn)。
當(dāng)各屬性相互獨(dú)立的條件下,由式(4)可知:
將P(xi)和P(y1,y2,…,yn)看作常量,簡(jiǎn)化上式,可以近似得出未知類別的設(shè)備指紋樣本y的分類結(jié)果xf滿足式(6):
假設(shè)指紋數(shù)據(jù)集樣本總數(shù)為D,由于樣本數(shù)據(jù)集有限,某個(gè)屬于類別xi的離散值yk在數(shù)據(jù)集中出現(xiàn)的次數(shù)|Dyk,xi|可能為零,乘積為零導(dǎo)致分類結(jié)果不準(zhǔn)確,因此引入狄利克雷校準(zhǔn):
式中,μ為任意取值的參數(shù)。
可以將設(shè)備指紋庫(kù)DF中的每條指紋df看成是一個(gè)類別,根據(jù)式(7)計(jì)算p(df|y)的值,如果所有的值均小于threshold,說(shuō)明DF不包含待測(cè)的指紋y,即關(guān)聯(lián)失敗[5]。
為了確定合適的閾值,引入了新的概念:精確率(Precision)、召回率(Recall)和F分?jǐn)?shù)Fα。精確率和召回率是對(duì)1.3 節(jié)中3 項(xiàng)性能指標(biāo)的一種新的反映形式,而F分?jǐn)?shù)則是兼顧二者的綜合評(píng)價(jià)指標(biāo)。當(dāng)α<1 時(shí),精確率的權(quán)重大于召回率,符合實(shí)驗(yàn)預(yù)期,所以令α=0.5。三者的計(jì)算公式如下:
閾值threshold 初始設(shè)置為0,在訓(xùn)練數(shù)據(jù)集上運(yùn)行樸素貝葉斯分類器。每完成一次分類后,都會(huì)得到設(shè)備指紋所屬的類別xf和其對(duì)應(yīng)的概率值p,根據(jù)比對(duì)庫(kù)驗(yàn)證識(shí)別結(jié)果,更新TP、TN、FP、FN,并計(jì)算此時(shí)的F0.5。定義一個(gè)<key,value>鍵值對(duì)數(shù)組記錄xf對(duì)應(yīng)的概率值為p時(shí),匹配成功且正確、匹配成功但錯(cuò)誤、匹配失敗但正確和匹配失敗且錯(cuò)誤的數(shù)量。將非零的key值從小到大排序,調(diào)整threshold的關(guān)系使之滿足Keyi<threshold<Keyi+1,i∈[1,n]。從數(shù)組中讀取Keyi對(duì)應(yīng)的元組,從而更新TP、TN、FP、FN的值,就能不斷獲取新的閾值和其對(duì)應(yīng)的F0.5。當(dāng)F0.5取最大值時(shí)所對(duì)應(yīng)的閾值即為目標(biāo)閾值[6-10]。
根據(jù)以上公式推導(dǎo),可以得到基于樸素貝葉斯分類器的設(shè)備指紋算法如圖3所示。
圖3 基于樸素貝葉斯的物聯(lián)網(wǎng)設(shè)備指紋算法流程圖
如圖3所示,分類結(jié)束后,遍歷列表q,篩選出符合條件的概率值。若q能滿足限制條件,則認(rèn)為分類成功,設(shè)備指紋y在已有類別中可以找到對(duì)應(yīng)類別,為回訪設(shè)備;若q無(wú)法滿足限制條件,則表明設(shè)備指紋y不在已有的類別中,是新的物聯(lián)網(wǎng)設(shè)備接入,將此指紋存入設(shè)備指紋庫(kù)中,并對(duì)設(shè)備指紋總數(shù)和所屬類別總數(shù)進(jìn)行更新[11-13]。
文中的實(shí)驗(yàn)流程如圖4所示,具體過(guò)程如下:
圖4 實(shí)驗(yàn)流程
1)設(shè)備管理平臺(tái)接入設(shè)備;
2)采集第1 節(jié)中選取的設(shè)備信息,生成設(shè)備指紋一同存入設(shè)備指紋庫(kù)中;
3)當(dāng)后臺(tái)服務(wù)器接收到新上傳的設(shè)備指紋時(shí),遍歷已有的設(shè)備指紋庫(kù),完成指紋的分類;
4)如果識(shí)別成功,則直接在指紋庫(kù)中讀取關(guān)聯(lián)的序列號(hào);
5)若結(jié)果顯示設(shè)備信息發(fā)生變化,服務(wù)器會(huì)執(zhí)行指紋更新模塊來(lái)完成指紋的相關(guān)更新操作,并將得到的新的設(shè)備指紋寫(xiě)入庫(kù)中。
文中選取了452 個(gè)海康網(wǎng)絡(luò)攝像頭作為物聯(lián)網(wǎng)接入設(shè)備,在2020年5月8日至2020年10月15日期間共收集到了5 940 條指紋數(shù)據(jù)。對(duì)于基于樸素貝葉斯分類器的指紋更新算法,采用指紋數(shù)據(jù)集中的70%作為訓(xùn)練集,余下的30%作為測(cè)試集。在訓(xùn)練集進(jìn)行分類器的訓(xùn)練,再用訓(xùn)練好的分類器對(duì)測(cè)試集上的指紋進(jìn)行分類。在對(duì)其進(jìn)行平滑處理時(shí),將參數(shù)μ的取值定為0.01、0.10、1.00 來(lái)進(jìn)行對(duì)比實(shí)驗(yàn)。TP、TN、FP、FN的測(cè)試結(jié)果如表1所示[14-16]。
表1 混淆矩陣指標(biāo)測(cè)試結(jié)果
根據(jù)表1中TP、TN、FP和FN的數(shù)值以及式(1)~(3)進(jìn)一步計(jì)算可以得到算法的3 項(xiàng)性能指標(biāo),統(tǒng)計(jì)結(jié)果如圖5所示。
圖5 3種性能指標(biāo)的統(tǒng)計(jì)結(jié)果
針對(duì)物聯(lián)網(wǎng)技術(shù)迅速發(fā)展所帶來(lái)的一系列設(shè)備識(shí)別安全問(wèn)題,結(jié)合對(duì)現(xiàn)有指紋技術(shù)的分析,文中研究了基于樸素貝葉斯的物聯(lián)網(wǎng)指紋算法,并且將設(shè)備指紋的更新問(wèn)題轉(zhuǎn)化為分類問(wèn)題,通過(guò)實(shí)驗(yàn)驗(yàn)證了其在實(shí)際應(yīng)用場(chǎng)景下的性能,實(shí)驗(yàn)結(jié)果表明,算法識(shí)別準(zhǔn)確率高、誤報(bào)率和漏報(bào)率極低,算法高效且易于實(shí)現(xiàn),具有一定的現(xiàn)實(shí)參考意義。