劉玉潔,李娜,姚曉,張玉健,2,許昱瑋,2,3
〔1.東南大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,江蘇南京 211189;2.網(wǎng)絡(luò)空間國(guó)際治理研究基地(東南大學(xué)),江蘇南京211189;3.網(wǎng)絡(luò)通信與安全紫金山實(shí)驗(yàn)室,江蘇南京,211111〕
隨著移動(dòng)設(shè)備的普及,無(wú)線技術(shù)由于提供低成本和隨時(shí)隨地的網(wǎng)絡(luò)連接,已成為現(xiàn)代計(jì)算平臺(tái)的重要通信方式。然而,無(wú)線網(wǎng)絡(luò)由于其普及性、開放性和商業(yè)價(jià)值,也正吸引著各種形式的網(wǎng)絡(luò)攻擊,其中無(wú)線節(jié)點(diǎn)的仿冒最為常見(jiàn),帶來(lái)了嚴(yán)重的安全和隱私威脅。因此,如何對(duì)無(wú)線設(shè)備的真實(shí)身份進(jìn)行有效識(shí)別,是應(yīng)對(duì)上述威脅而亟待研究的重要問(wèn)題。
對(duì)于早期的無(wú)線設(shè)備,MAC(Media Access Control)地址因其確定性和唯一性,常被用作設(shè)備的身份標(biāo)識(shí),但也帶來(lái)隱私泄露問(wèn)題。作為一種防止追蹤的對(duì)策,MAC地址隨機(jī)化被用于隱私保護(hù),但也使得MAC地址不再適合作為無(wú)線設(shè)備的身份標(biāo)識(shí)[1]。此外,研究者還嘗試從其他特征中提取無(wú)線設(shè)備的身份指紋,按照指紋生成的前提可分為有連接方式和無(wú)連接方式:前者需要指紋提取者與無(wú)線設(shè)備建立連接,可獲得豐富的特征值,但降低了指紋提取者的安全性;后者無(wú)需與目標(biāo)無(wú)線設(shè)備建立連接,增強(qiáng)了安全性和靈活性,但特征獲取受到限制[2]。
為應(yīng)對(duì)無(wú)連接方式的技術(shù)挑戰(zhàn),本文提出了一種基于802.11幀的無(wú)線設(shè)備指紋生成方法。通過(guò)提取802.11協(xié)議管理幀的特征值,利用信息熵(Entropy)和相似哈希(Similarity Hash,SimHash)生成無(wú)線設(shè)備指紋,實(shí)現(xiàn)了無(wú)連接方式下的細(xì)粒度識(shí)別和相似度發(fā)現(xiàn)。
802.11 協(xié)議的站(Station,STA)與接入點(diǎn)(Access Point,AP)建立連接分為被動(dòng)掃描和主動(dòng)掃描兩種方式:被動(dòng)掃描是由STA偵聽(tīng)AP定期發(fā)送的信標(biāo)幀(Beacon),通過(guò)信標(biāo)幀獲取AP信息;主動(dòng)掃描則是由STA廣播探測(cè)幀(Probe Request),而從探索響應(yīng)幀(Probe Response)中獲取AP信息,如圖1所示。由此可見(jiàn),信標(biāo)幀和探測(cè)幀是在無(wú)連接方式下獲取無(wú)線設(shè)備特征值的主要來(lái)源,其中STA和AP均為本文所述的無(wú)線設(shè)備。
圖1 802.11協(xié)議的被動(dòng)掃描和主動(dòng)掃描過(guò)程
指紋技術(shù)常用于無(wú)線設(shè)備的身份識(shí)別和數(shù)字取證等,現(xiàn)有的無(wú)線設(shè)備指紋生成方案可分為有連接方式和無(wú)連接方式。在有連接方式下,指紋提取者需與設(shè)備建立實(shí)際連接。Shetty等人在有連接模式下通過(guò)分析流量特征將授權(quán)主機(jī)與惡意接入主機(jī)進(jìn)行區(qū)分[3]。Gao等人利用TCP/UDP數(shù)據(jù)包到達(dá)時(shí)間IAT(Inter-Arrival Time)作為簽名生成AP類型指紋[4]。Monica等人設(shè)計(jì)了一種名為WiFiHop的客戶端工具,通過(guò)中繼帶水印的數(shù)據(jù)檢測(cè)偽AP[5]。這些基于有連接的方法可以獲得更多特征信息,但增加了指紋提取的前提條件且暴露了提取者的身份。在無(wú)連接方式下,指紋提取者無(wú)需與設(shè)備建立連接,而是通過(guò)偵聽(tīng)設(shè)備主動(dòng)發(fā)送的信標(biāo)幀或探測(cè)幀提取設(shè)備的指紋信息。楊從安提出為每臺(tái)使用數(shù)字聯(lián)盟服務(wù)的移動(dòng)設(shè)備下發(fā)唯一識(shí)別ID作為設(shè)備指紋[6]。Robyns等人提出對(duì)單個(gè)幀進(jìn)行逐位熵分析從而構(gòu)建發(fā)射機(jī)的指紋的方法[7]。Li等人利用802.11信標(biāo)幀中的時(shí)間戳和信號(hào)字段作為高斯分布算法和樸素貝葉斯分類中的數(shù)據(jù)來(lái)生成接入點(diǎn)指紋[8]。無(wú)連接方式下的指紋提取者是隱身的,但獲取有效信息受限。
本文提出的指紋生成方法是在無(wú)連接條件下通過(guò)偵聽(tīng)802.11管理幀提取無(wú)線設(shè)備的指紋信息。本節(jié)以探測(cè)幀為例,詳細(xì)介紹指紋生成的設(shè)計(jì)思路、特征選擇以及指紋生成算法。該方法可同理推廣到利用信標(biāo)幀生成指紋的場(chǎng)景。
無(wú)連接情況下的指紋生成以設(shè)備發(fā)出的802.11管理幀為分析對(duì)象,進(jìn)行特征選擇和指紋生成。在特征選擇階段,需考慮特征的穩(wěn)定性及區(qū)分度??刹捎眯畔㈧貙?duì)其進(jìn)行衡量,信息熵越小,特征越穩(wěn)定。在指紋生成階段,需對(duì)特征進(jìn)行量化評(píng)估,兼顧特征內(nèi)容、特征貢獻(xiàn)度、指紋結(jié)果相似度分析三個(gè)方面:對(duì)特征內(nèi)容使用一種壓縮映射的轉(zhuǎn)換,即哈希(Hash)算法;特征貢獻(xiàn)度通過(guò)特征信息熵值體現(xiàn),信息熵越高,貢獻(xiàn)度也越大;利用局部敏感的SimHash算法[9]對(duì)特征內(nèi)容和特征貢獻(xiàn)度進(jìn)行整合,生成的SimHash值可用作相似度評(píng)估。
可以看到,無(wú)論是在特征選擇還是指紋生成,都需要計(jì)算各特征的信息熵。對(duì)于任意特征X,在探測(cè)幀中所有取值為{x1, x2,..., xn, xn+1},其中,x1, x2..., xn表示n個(gè)不同的取值,xn+1=U表示取值為空,即該特征在當(dāng)前幀中不存在。特征X所有取值的概率密度函數(shù)p(xi)的計(jì)算公式為:
由此,該特征的信息熵可表示為:
特征選擇的目標(biāo)是提取在同一設(shè)備中保持不變、而在不同設(shè)備中差別較大的特征。
將來(lái)自同一設(shè)備的探測(cè)幀作為數(shù)據(jù)集,利用公式(2)計(jì)算各特征的信息熵,選出對(duì)于同一設(shè)備保持穩(wěn)定,即信息熵為0的特征。隨后,在不同設(shè)備的探測(cè)幀中執(zhí)行同樣的操作,選出對(duì)于不同設(shè)備具有區(qū)分度,即信息熵不為0的特征。將兩次字段選擇結(jié)果取交集,最終得到的穩(wěn)定且具有區(qū)分度的特征包括Request、HT Capabilities、Extended Capabilities、VHT Capabilities、Vendor Specific。其中,前四個(gè)特征為802.11協(xié)議定義的標(biāo)準(zhǔn)字段,而Vendor Specific則是廠商自定義字段,可定義多個(gè)子字段。除了上述特征外,信息元素序列也對(duì)無(wú)線設(shè)備具有良好的標(biāo)識(shí)性。信息元素序列是指探測(cè)幀的Element ID序列組合,以及Vendor Specific的子字段序列。由于不同設(shè)備發(fā)出的探測(cè)幀攜帶的報(bào)文信息不盡相同,所包含的信息元素字段及順序也不同,因此,信息元素序列可以作為標(biāo)識(shí)無(wú)線設(shè)備的特征參數(shù)。將信息元素序列和特征字段內(nèi)容兩部分的信息進(jìn)行整合,最終得到13個(gè)可用于指紋生成的特征,如表1所示。
指紋生成階段的目標(biāo)是形成對(duì)所提取特征的抽象描述以及挖掘不同指紋值的內(nèi)在聯(lián)系。已選取的特征可用于內(nèi)容表達(dá)和貢獻(xiàn)度量化兩個(gè)方面:內(nèi)容表達(dá)是直接利用Hash算法進(jìn)行壓縮映射,而貢獻(xiàn)度量化則通過(guò)特征信息熵體現(xiàn)。特征信息熵通過(guò)公式(2)在特征值去重過(guò)的指紋集中計(jì)算得到。局部敏感的SimHash算法可以整合特征內(nèi)容Hash值與特征參數(shù)貢獻(xiàn)度,且在一定程度上還可以表征原內(nèi)容的相似度。因此,將特征信息熵作為權(quán)重,計(jì)算SimHash得到設(shè)備指紋,通過(guò)比較不同SimHash值的漢明距離,從而判斷兩個(gè)指紋的相似度。
SimHash算法分為五個(gè)步驟:分詞、Hash、加權(quán)、合并和降維,具體過(guò)程如圖2所示。
圖2 SimHash指紋生成算法示例
記目標(biāo)幀P,初始數(shù)據(jù)集Spackets,特征值去重后的指紋集Sfeature,特征參數(shù)集SX={X1,X2,...,Xn},其中X1即信息元素序列TagSeq,
X2,...,Xn為P中的特征字段。無(wú)線設(shè)備指紋生成的過(guò)程如算法1描述所示。
算法1 基于802.11幀的設(shè)備指紋生成算法
輸入:初始數(shù)據(jù)集Spackets,目標(biāo)幀P
輸出:目標(biāo)幀指紋F
produce GenerateFingerprint(Spackets,P)begin
1 以Spackets為基礎(chǔ)構(gòu)建指紋集Sfeature
2 for X in P do
3 將X的Element ID添加進(jìn)TagSeq
4 if X in SXthen
5 特征參數(shù)賦值Xi=X
6 if X is Vendor Specific then
7 將X的OUI添加進(jìn)TagSeq
8 end if
9 end if
10 end for
11 特征參數(shù)賦值X1=TagSeq
12 if SXnot in Sfeaturethen
13 更新Sfeature
14 end if
15 在Sfeature中計(jì)算各特征參數(shù)信息熵
16 將各特征信息熵作為權(quán)值
17 計(jì)算各特征哈希值
18 利用SimHash算法生成指紋F
19 return F
end
在算法1中,首先對(duì)初始數(shù)據(jù)集進(jìn)行特征值去重得到指紋集(Line 1);接著提取目標(biāo)幀的特征參數(shù)(Lines 2~11);然后判斷目標(biāo)幀的特征是否與指紋集中的特征相匹配,若不匹配則需要更新指紋集(Lines 12~14);最后利用指紋集計(jì)算各特征參數(shù)的信息熵作為權(quán)重,然后利用SimHash算法生成指紋(Lines 15~19)。
實(shí)驗(yàn)采用Sapienza2013數(shù)據(jù)集[10],包含8個(gè)子數(shù)據(jù)集,共108,359個(gè)無(wú)線設(shè)備,4,825,476個(gè)探測(cè)幀。指紋算法用Python編程實(shí)現(xiàn),Hash函數(shù)采用SHA256。此外,通過(guò)計(jì)算以下三個(gè)指標(biāo)對(duì)算法進(jìn)行評(píng)估:各特征的熵值、指紋識(shí)別粒度以及同一品牌不同設(shè)備的指紋相似度。
(1)各特征的熵值
經(jīng)過(guò)去重后,共生成4,650個(gè)不同的特征值組合,從而構(gòu)成指紋庫(kù)。利用公式(2)計(jì)算所有特征的熵值,結(jié)果如表1所示??梢钥闯觯琕SWPS字段的熵值最高,為9.85,且有3,559個(gè)不同的值,表明該字段復(fù)雜度最高,作為指紋字段的區(qū)分性也最好。VSNC字段,不同值有54個(gè),但是熵值只有0.16,說(shuō)明該字段內(nèi)容較為接近,區(qū)分度不高。
表1 特征參數(shù)在指紋庫(kù)中的熵值和不同值的個(gè)數(shù)
(2)指紋識(shí)別粒度
在MAC地址隨機(jī)化的趨勢(shì)下,MAC地址雖已不適合作為設(shè)備標(biāo)識(shí),但可用其前三個(gè)字節(jié)識(shí)別出OUI(Organizationally Unique Identifier)信息,即設(shè)備的制造商。利用OUI與設(shè)備品牌的對(duì)照表[11]進(jìn)行映射,得到設(shè)備品牌信息。為比較本文算法和品牌的識(shí)別效果,定義識(shí)別粒度的計(jì)算方式:
其中,ε為識(shí)別粒度,n為可識(shí)別出的不同類型設(shè)備數(shù),N為數(shù)據(jù)集中的設(shè)備總數(shù)量。
8個(gè)子數(shù)據(jù)集的品牌和指紋識(shí)別粒度結(jié)果如圖3所示。可以看出,在所有子數(shù)據(jù)集中,SimHash指紋的識(shí)別粒度明顯比品牌高。品牌的識(shí)別粒度區(qū)間為[0.48%,1.25%],而指紋的識(shí)別粒度區(qū)間為[3.16%,5.68%]。通過(guò)比較,每個(gè)子數(shù)據(jù)集中指紋的識(shí)別粒度平均比品牌高5.68倍。由此可見(jiàn),本文提出的指紋算法可實(shí)現(xiàn)比品牌更細(xì)粒度的設(shè)備識(shí)別。
(3)不同指紋之間的相似度
圖3 子數(shù)據(jù)集中品牌和指紋的識(shí)別結(jié)果
來(lái)自同一品牌的報(bào)文在一些字段上,尤其是Vendor Specific字段,可能會(huì)表現(xiàn)出一定的相似性,即它們之間的距離較為接近。理論上,SimHash指紋越相似,設(shè)備關(guān)聯(lián)性越高。基于這個(gè)假設(shè),本節(jié)統(tǒng)計(jì)了數(shù)據(jù)集中180個(gè)品牌的平均漢明距離以及相似度。相似度的計(jì)算公式為:
其中,η表示相似度,d表示平均漢明距離,len表示指紋長(zhǎng)度,由于本文采用的是SHA256算法,故len=256。
除去只有一種指紋的132個(gè)品牌(此時(shí)無(wú)法計(jì)算平均漢明距離),得到平均漢明距離最小的前5個(gè)品牌,如表2所示。Apple品牌下指紋的平均漢明距離只有14.99,相似度高達(dá)94.15%,說(shuō)明其指紋間的關(guān)聯(lián)性較高,原因是其探測(cè)幀的標(biāo)準(zhǔn)化程度高。
同理,相似度最低的五個(gè)品牌如表3所示。雖然HTC品牌的指紋相似度最低,但仍達(dá)到51.75%,表明不同型號(hào)間仍具有一定的關(guān)聯(lián)性。
表2 相似度最高的前五個(gè)品牌
表3 相似度最低的前五個(gè)品牌
上述實(shí)驗(yàn)結(jié)果也表明本文所生成的設(shè)備指紋除了能夠作為設(shè)備標(biāo)識(shí)符,在量化評(píng)估設(shè)備間的關(guān)聯(lián)性方面具有一定優(yōu)勢(shì)。
針對(duì)目前無(wú)線網(wǎng)絡(luò)中設(shè)備指紋生成及識(shí)別的問(wèn)題,本文提出了一種基于802.11幀的無(wú)線設(shè)備指紋生成方法。在未建立連接條件下,偵聽(tīng)無(wú)線設(shè)備的802.11管理幀,利用信息熵選取和量化幀中的特征參數(shù),最終通過(guò)SimHash算法生成獨(dú)特的設(shè)備指紋。在Sapienza2013數(shù)據(jù)集的實(shí)驗(yàn)表明:信息熵算法選取的特征參數(shù)具有明顯的設(shè)備區(qū)分度,熵值最高為9.85;指紋識(shí)別粒度相較于品牌平均提升了5.68倍,識(shí)別效果優(yōu)于品牌;同一品牌的不同指紋具有明顯的關(guān)聯(lián)性,最高達(dá)94.15%。由此,該算法可用于判斷不同設(shè)備之間的親緣關(guān)系。
下一步,將基于現(xiàn)實(shí)環(huán)境對(duì)該指紋生成方法的準(zhǔn)確率、誤報(bào)率、漏報(bào)率等做進(jìn)一步分析。此外,還可以結(jié)合其他特征字段生成動(dòng)態(tài)指紋,用于反MAC隨機(jī)化的設(shè)備追蹤。