本發(fā)明涉及一種為無線設(shè)備進行指紋建模及識別的方法,屬于網(wǎng)絡(luò)安全
技術(shù)領(lǐng)域:
。
背景技術(shù):
:wifi由于它的廣泛性而吸引了各種各樣的攻擊。在這些攻擊中,假冒的網(wǎng)絡(luò)接入點(rougeaps)和蹭網(wǎng)(wififreeloading)最為常見并且也給安全和隱私帶來了極大的危害。rougeaps意味著在一個公共場所,攻擊者模仿合法的網(wǎng)絡(luò)接入點(accesspoints)設(shè)置了一個網(wǎng)絡(luò)設(shè)備。它通常使用了和原始的ap相同的bssid和ssid。一旦用戶被騙連接上了它,那么攻擊者就可以通過發(fā)起中間人攻擊盜取用戶所有的網(wǎng)絡(luò)通訊。據(jù)估計大概有20%的公司面臨著這樣的問題。wififreeloading是指一個沒有授權(quán)的用戶繞過了aps的認證機制然后免費的進入了私人wlan。當然一個不速之客一旦進入了網(wǎng)絡(luò)內(nèi)部,他有可能盜取的不只是網(wǎng)絡(luò)帶寬了。防御這些攻擊的一個重要方式是在clients和aps之間建立強大的相互認證機制。事實上,802.1lirsna(robustsecuritynetworkassociation)確實使用傳統(tǒng)的密碼學(xué)的方法提供了可供選擇的相互認證機制(比如數(shù)字證書),如果使用得當,會使得攻擊少發(fā)生。根據(jù)janaetal,使用802.1lirsna的無線網(wǎng)絡(luò)由于一些實際問題仍然受害于一些缺陷。比如,因為目前應(yīng)用場景中,信號強度作為唯一的clients選擇ap的依據(jù),用戶可能被糊弄去連上了一個虛假的沒有任何防御措施的ap,只因為它的信號強度強于其他的ap。由于數(shù)字證書管理和分布的累贅,很多網(wǎng)絡(luò)僅僅是選擇提供了用戶認證(userauthentication)而沒有接入點認證(apauthentication),結(jié)果就導(dǎo)致了,攻擊者很容易部署虛假的接入點。對于freeloading攻擊,對于絕大部分用戶來說,認證都是基于自己選擇的密碼,而這些密碼通常都是很脆弱的,尤其是用戶可能使用了同一個密碼,那密碼很容易被盜用和公開。(比如wpa2-psk)?;谏鲜鲈?,近些年研究者基于設(shè)備指紋(devicefingerprinting)提供了一些不是基于密碼學(xué)(non-cryptographic)的解決措施。這些措施不是想去替代密碼學(xué)的方法,而是旨在提供一個額外的安全層,以應(yīng)對采取傳統(tǒng)密碼學(xué)方法時所面臨的困難。一個案例場景是:當一個用戶與進入了一個他經(jīng)常去的咖啡館,沒有指紋技術(shù),他很容易就被糊弄去連接上了一個與真實的相同bssid和ssid的虛假的ap。但要是有了指紋技術(shù),用戶就可以得到警告,他有可能連上了一個假冒的ap。但現(xiàn)實生活中,還沒有此類應(yīng)用。這是出于一些重要的實際問題。第一,這個方法需要特殊的硬件,這就阻礙了應(yīng)用。比如,briketal提出利用無線電頻率特征來識別設(shè)備。但是他需要一些額外的設(shè)備來抓取,分析無線電信號。第二,硬件特征是可以被欺騙的,因此安全性沒法得到保證。kohnoetal提出了一個流氓ap的探測機制,他是使用通過tcp/icmp時間戳測量的clockscrew來作為設(shè)備的指紋的,jana和kasera曾表明tcp/icmp時間戳很容易被欺騙。作為替代,他們測量信標/探測相應(yīng)幀中的時間同步函數(shù)時間戳,這個被硬件標記了因此有些難以被欺騙。然而,有證據(jù)顯示依然是有可能通過修改虛假ap的設(shè)備驅(qū)動來欺騙這樣的時間戳信息的。相關(guān)知識:csi:通道狀態(tài)信息描述了諸多從發(fā)射方到接收方的信號傳播中比如散射,衰減,功率衰減造成的混合作用。ieee802.11標準定義了在一個發(fā)送-接收天線(tx-rxantennapair)對中測量csi的機制。csi持續(xù)地抓取每一個ofdm攜帶者的信號強度和相位信息。x-接收信號向量y-傳播信號向量h-信道矩陣n-噪聲矢量y=h*x+n其中,h是一個復(fù)雜向量,叫做信道頻率響應(yīng)(channelfrequencyresponse,cfr),影響了tx-rx對間的信號增益。這些信息可以用來實現(xiàn)搞數(shù)據(jù)速率的可靠通信。而csi就是指的是cfr在不同子載波采樣。在帶寬20mhz的2.4ghz的頻帶上,csi測量由30個復(fù)數(shù)組成,每一個都對應(yīng)于一個選定的子載波。讓ntx和nrx代表發(fā)送和接收天線的數(shù)目,那個對于一個接受的802.11幀就有30*nrx*ntx個csi流。對于在第i個發(fā)送天線和第j個接收天線之間的第k個子載波的csi流可以表示為其中|h|表示子載波k的振幅,而φk,i,j代表子載波k的相部分。cfo:cfo即載波頻率偏移。對于ofdm系統(tǒng),在理想中,載波頻率f應(yīng)該在tx-rx對中是相同的。但是由于硬件缺陷,通常在tx-rx振蕩器中存在一個偏移,這就造成了cfo。因為一個巨大的cfo可能會在接收端造成一個巨大的噪音,cfo會由硬件補償。但是由于硬件缺陷,在補償之后,仍然會存在一個cfo的殘余量δfc。這樣的cfo會在接收信號導(dǎo)致一個相位偏移其中δfc代表著補償之后的cfo。對于商業(yè)wifi設(shè)備,殘余cfo是不可避免的。根據(jù)ieee802.11n標準,殘余cfo可以達到100khz。為了方便,本文中的cfo通常指代殘余cfo。技術(shù)實現(xiàn)要素:發(fā)明目的:本發(fā)明提出了一個新型的無線設(shè)備指紋方法來避免上述的問題,并且可以用來防備rougeaps和wififreeloading。通過估計一個設(shè)備的載波頻率偏移(carrierfrequencyoffset,cfo)來給一個設(shè)備建立指紋。cfo的產(chǎn)生是因為振蕩器漂移,長時間來都保持一致,但是在不同的設(shè)備間卻會產(chǎn)生相當大的差異,更甚,這樣的振蕩器漂移是由于晶體缺陷造成的,不能被任何的軟件所模仿。因此,它可以用作設(shè)備指紋。最主要的挑戰(zhàn)是無論是在手機設(shè)備上還是在aps上,都沒有軟件能夠從底層硬件中評估cfo。最先進的方法是利用額外的信號分析設(shè)備(比如向量信號分析和usrp)來分析原信號,這大大的阻礙了它被應(yīng)用于現(xiàn)實生活中。不同的是,本發(fā)明提出間接的從通道狀態(tài)信息中(channelstateinformation,csi)挖掘出cfo,而csi是很容易通過現(xiàn)成的無線設(shè)備上的軟件獲取的。本方法是為了應(yīng)對日益猖狂的rougeap和wififreeloading攻擊而產(chǎn)生的,rougeap能夠?qū)崿F(xiàn)是一方面是因為虛假的ap可以偽造和真實的ap相同的bssid,另一方面則是因為我們的移動設(shè)備不能夠區(qū)分兩者之間的區(qū)別,只能通過信號強度來選擇ap。而wififreeloading攻擊能夠產(chǎn)生的原因則是因為,現(xiàn)有的認證方式不夠完善,很多情況下,只要輸入了正確的密碼或是修改為合法設(shè)備的mac地址,那么ap便能夠接受設(shè)備的連接,而密碼或是mac地址是很容易通過各種各樣的方式獲得的。因此,基于上述的問題,本發(fā)明給每一個ap,每一臺設(shè)備建立一個指紋,這樣,ap可以根據(jù)指紋來決定是否同意設(shè)備連接,設(shè)備也可以通過指紋來選擇正確的ap來連接。選擇一個與cfo相關(guān)的項作為指紋,是因為cfo的產(chǎn)生是因為在wifi網(wǎng)卡中載波振蕩器偏移產(chǎn)生的,而cfo不會因為時間和地點的改變發(fā)生改變,只會因為設(shè)備的不同而不同,并且,它是沒法被構(gòu)造的,因為它是一個純硬件相關(guān)的特性。并且,理論上,選擇cfo相關(guān)項比光是選擇cfo更加的有效。技術(shù)方案:一種為無線設(shè)備進行指紋建模及識別的方法,包括如下步驟:1.分解csi的相位值;2.從csi分解出的相位值中估算出cfo的估計值:a)移除fdd和sfo造成的csi測量中的影響;b)移除tof造成的影響;3.從上一步驟中得到的cfo噪聲圖像中得到cfo的值;a)選定圖像的高密度區(qū)域;b)將上一步得到的高密度區(qū)域轉(zhuǎn)為一個二進制圖像;c)獲取圖像的聯(lián)通部分;d)利用最小二乘法對上述得到的聯(lián)通部分的點的組成的集合進行處理,得到點的集合的斜率;4.利用cfo估計值作為設(shè)備的指紋特征,對互聯(lián)的wifi熱點和無線設(shè)備進行雙向識別。a)對合法wifi熱點進行指紋采集,建立白名單b)每當進行wifi熱點接入時,利用前訴方法采集當前接入的wifi熱點的cfo估計值,將此估計值同采集好的白名單中的wifi熱點指紋特征進行對比,如果相似度低于某一閾值,即判定為非法wifi熱點。c)在wifi熱點上預(yù)先對需要接入的無線設(shè)備建立白名單,通過比較接入設(shè)備的指紋特征,可以使得wifi熱點能對接入的無線設(shè)備進行反向識別。分解csi值的相位值假設(shè)指紋設(shè)備從目標設(shè)備收到了n幀,對于每個幀來說,它都從網(wǎng)卡驅(qū)動獲得了csi的測量。讓我們考慮時刻t時,一對tx-rx之間的幀的csi。對于第k個子載波,csi的測量包含了一個相位域φt,k,相位域φt,k計量了子載波上發(fā)送方和接收方之間的幀的相位偏移。φt,k=k(2παζd+2πβζs)+ψt,k+2πδfct(2)其中,2πδfct正是cfo所造成的相位偏移,δfc即為待估計的cfo項。從csi分解出的相位值中估算出cfo首先定義并計算了一個新的相位變量對于每一個在時間t的幀,其中φt,1和φt,-1分別代表著下標為1和-1的子載波的相位值,然后,對于每一對鄰近的幀,計算他們的相位差和tdoa到達時間δt微秒。之后,畫出來所有的點,這些點來自一系列周期性的條紋,估計這些條紋的坡度,并且最終將它作為cfo的值。移除fdd和sfo:fdd和sfo都會在csi測量中引起一個時間延遲,這些時間延遲會造成與子載波下標線性相關(guān)的相位偏移。根據(jù)(2)式,如果將滿足k1+k2=0的和相加起來,可以移除由于fdd和sfo引起的相位偏移。對于時間點t,可以如下表述:移除tof:先要求接收方和發(fā)送方在收集幀的過程中保持靜止,這樣就固定了他們的相對距離,相位差從條紋圖像中得到cfo的值包含兩個步驟:條紋提取和斜率估計。數(shù)據(jù)特征的抽取為了估計斜率,首先得獲得構(gòu)成每個條紋的點的集合。提取條紋的步驟分為三步。(1)選取高密度區(qū)域使用滑動窗口算法來識別高密度區(qū)。在每個固定窗口中,計算所有的點的數(shù)目,然后移動到另一個窗口長度的地方。最終,選擇最高數(shù)目的點的窗口作為高密度區(qū)。(2)將高密度區(qū)域轉(zhuǎn)為二進制圖像將上一步得到的高密度區(qū)處理為一個二進制圖像,這樣就利用了正常點和異常點之間的巨大差異來消除異常點。首先將此高密度區(qū)域柵格化,劃分為一系列相同的小的矩形,每個矩形都在新生成的二進制圖像中對應(yīng)一個像素。然后,對于每一個矩形,計算其中的點的個數(shù)。如果點的總數(shù)目超過了預(yù)定義閾值,那么轉(zhuǎn)化后的二進制圖像所對應(yīng)的像素就設(shè)置為1,否則置為0。這樣做之后,很多離群值就會被移除了。對于那些仍然存在很大噪聲點的圖像,使用很多現(xiàn)有的機制比如基于pca的alm來做進一步處理。(3)獲取聯(lián)通部分在二進制圖像中識別出k個最長的連通部分,然后從估計條紋的斜率轉(zhuǎn)化為估計k個最長的連通部分的斜率。當然,實際上,可能得到一些不對應(yīng)任何條紋的錯誤部分。這樣就需要使用下面的機制來進行處理。條紋的估計在經(jīng)過了條紋提取的步驟之后,得到了對于每一個長連通部分的點的集合。設(shè)連通點集為s。斜紋的斜率kc可以通過最小二乘法得到,其中,是斜率kc的估計值,x、y為每個點所對應(yīng)的坐標位置,ρ為最小二乘法所要優(yōu)化的系數(shù),β是一個常量。因此,對于每一個連通分量,都可利用最小二乘法方法計算出其斜率k。但是,計算出的斜率可能會變化,因為連通分量可能并非是一個完整的條紋;為了解決這個問題,我們對條紋的斜率進行了聚類,用聚類結(jié)果中數(shù)目最多的一類的均值作為cfo的最終估計值。這樣做的理由是基于一個簡單的事實,那就是正確的cfo估計值通常會很接近,而錯誤的cfo估計值往往是不同的。wifi熱點和無線設(shè)備的雙向識別我們將通過前述的方法所得到的cfo估計值作為無線設(shè)備的指紋特征,將之用于wifi熱點和無線設(shè)備的雙向識別:a)我們可以通過事先采集的方法,對合法wifi熱點進行指紋采集,或者讓合法wifi熱點的持有者公布合法熱點的指紋特征值來建立設(shè)備指紋的白名單。b)每當進行wifi熱點接入時,利用前訴方法采集當前接入的wifi熱點的cfo估計值,將此估計值同采集好的白名單中的wifi熱點指紋特征進行對比,如果相似度低于某一閾值,即判定為虛假wifi熱點。c)同樣的方法也可以用于令wifi熱點識別接入的無線設(shè)備的功能,從而具有限制特定無線設(shè)備才能接入的功能。有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明提出的為無線設(shè)備進行指紋建模及識別的方法具有如下優(yōu)點:1.提出了第一個無需額外硬件設(shè)備的基于cfo的無線設(shè)備指紋建模機制,并且是容易應(yīng)用在現(xiàn)有的設(shè)備上,比如筆記本電腦或是智能手機。實驗會證明這樣的指紋確實是不會因為時間和地點發(fā)生改變的。2.提出了一個新穎的方式來準確并且迅速地從csi預(yù)估出cfo,并且不需要額外的設(shè)備,并且很難被仿造。3.實現(xiàn)了一個原型來見證我們機制的表現(xiàn)。結(jié)果顯示,本發(fā)明可以取得一個很高的正確率,并且是可以用在現(xiàn)實生活中作為rougeap探測的方法的。附圖說明圖1是相同設(shè)備在不同的時間地點下的關(guān)系圖,其中條紋的斜率和cfo緊密相關(guān),(a)地點l1、時間t1,(b)地點l1、時間t2,(a)地點l2、時間t1;圖2是不同的設(shè)備在相同的環(huán)境下的關(guān)系圖,(a)設(shè)備1,(b)設(shè)備2,(c)設(shè)備3;圖3是使用本發(fā)明方法移除fdd和sfo之后的效果圖,(a)從子載波-28中提取的條紋圖像,(b)使用新定義的相位值的條紋圖像;圖4是基于相位處理之后選擇相鄰的相位對的效果圖,(a)使用所有相鄰的相位對的條紋圖,(b)使用基于處理之后的相位對的條紋圖;圖5是在一天中的不同時刻兩個ap(netgearr7000和tp-linkwdr4300)的cfo的值,其中每個插入的值對表示在15個測量值中最大值和最小值;圖6是一個月中從小米note手機上收集的cfo的值;圖7是實驗室布置示意圖,其中三角形代表著地點;圖8是在一個實驗室的不同地點不同的ap的測量值。具體實施方式下面結(jié)合具體實施例,進一步闡明本發(fā)明,應(yīng)理解這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對本發(fā)明的各種等價形式的修改均落于本申請所附權(quán)利要求所限定的范圍。本發(fā)明專注于目前以下兩個wlan中的主要威脅:rougeap(偽裝熱點):一個攻擊者在公共場合比如機場或是咖啡館建立一個沒有授權(quán)的ap來化妝成授權(quán)的ap。假設(shè)攻擊者足夠強大能夠修改每一幀的ssid和bssid域來使得與授權(quán)的ap一致。此外,攻擊者使用了同種認證策略(比如pre-sharedkey或者是802.1xauthentication)來作為認證的ap,但總是允許用戶通過認證。注意流氓ap和真實的ap是同時活躍著的。在這種情況下,信號強度就會作為唯一的選擇標準。根據(jù)我們的實驗,如果兩個重疊的wlan使用了同一ssid,那么手機設(shè)備僅僅只會在它的wlan列表中顯示信號強度強的一個。如果用戶登陸到了假冒的ap,那么攻擊者就可以實現(xiàn)中間人攻擊來獲取用戶信息或是分析用戶的流量數(shù)據(jù)而不被發(fā)現(xiàn)。wififreeloading(wifi蹭網(wǎng)):一個攻擊者盜取了登入私人網(wǎng)絡(luò)的憑證,然后就可以作為合法用戶登入私人網(wǎng)絡(luò)。這里的認證可能是一個簡單的密碼,如果wlan采取了wpa-enterprise模式,攻擊者可以通過很多方法獲得憑證,一旦攻擊者進入了網(wǎng)絡(luò),那他可以做到的就不只是偷取帶寬了。本發(fā)明的方法嘗試估計一個設(shè)備的頻率偏移(比如cfo)作為它的指紋信息來實現(xiàn)攻擊的檢測。cfo的產(chǎn)生是因為在wifi網(wǎng)卡中載波振蕩器偏移,而cfo不會因為時間或是地點發(fā)生改變,只會因為設(shè)備的不同而不同。更甚,它很難被模仿欺騙,因為它是純硬件特性并且很難被任何運行的軟件影響。csi相位信息提供了在信號傳輸過程中積累的相位偏移??紤]可否通過csi的測量來估計cfo的大小。如果可行,可以通過不適用額外的設(shè)備來估測cfo,因為csi可以修改現(xiàn)有的無線設(shè)備網(wǎng)卡驅(qū)動,然后利用上層應(yīng)用來獲取。在從csi估計cfo之前,先分析csi每個相位值的組成。分解csi值的相位值假設(shè)指紋設(shè)備從目標設(shè)備收到了n幀,對于每個幀來說,它都從網(wǎng)卡驅(qū)動獲得了csi的測量。讓我們考慮時刻t時,一對tx-rx之間的幀的csi。對于第k個子載波,csi的測量包含了一個相位域φt,k,相位域φt,k計量了子載波上發(fā)送方和接收方之間的幀的相位偏移。φt,k由4個組成部分構(gòu)成:其中,正是由cfo引起的相位偏移,其他三個是由如下原因造成的:ωt,k:由幀檢測延遲(fdd,framedetectiondelay)造成的相位偏移,當一個幀到達了接收方的時候,接收方會花費一些時間來檢測它,這會使得在csi測量的時候造成一個時間延遲τd。這樣的延遲會導(dǎo)致一個相位偏移ωt,k,ωt,k是和頻率成比例的,數(shù)學(xué)表達為ωt,k=2παkζd,其中α為一個常數(shù)系數(shù),k是一個子載波的指標,ζd是一個與τd高度相關(guān)的值,既然ζd隨著時間的變化而變化,那么ωt,k在幀與幀之間也是不相同的。θt,k:由采樣頻率偏移(sfo,samplefrequencyoffset)引起的相位偏移。sfo是由于發(fā)送方和接收方之間的采樣時鐘(sampleclock)不同步引起的。類似于幀檢測延遲,不同步同樣引入了一個時間延遲τs,進而引起了一個與子載波指標線性相關(guān)的相位偏移,因此θt,k=2πβkζs,其中β是一個常量,k是一個子載波指標,ζs是一個根據(jù)τs決定的變量。ψt,k:是由飛行時間(tof,timeofflight)引起的相位偏移,它代表著信號從發(fā)送方到接收方之間的飛行時間,這個就引起了相位的偏移。在不存在多徑條件下,有ψt,k=2πfktp,其中tp是指從發(fā)送方到接收方之間的微傳播時間,fk是指第k個子載波的頻率。一旦考慮到多路徑,那么就會有另一個項要考慮,這個項和環(huán)境緊密相關(guān)。因為這個偏移主要被飛行時間決定的,所以,它在室內(nèi)定位領(lǐng)域很有用。事實上,有很多現(xiàn)有技術(shù)研究如何利用csi的相域來實現(xiàn)室內(nèi)定位。然而,因為本發(fā)明的目的在于提取cfo的部分而不是tof部分,因此,無法直接使用現(xiàn)有算法?,F(xiàn)在,基于上述的分析,(1)式可以被重新寫為:φt,k=k(2παζd+2πβζs)+ψt,k+2πδfct(2)其中,2πδfct正是cfo所造成的相位偏移,δfc即為待估計的cfo項。從csi分解出的相位值中估算出cfo首先定義并計算了一個新的相位變量對于每一個在時間t的幀,其中φt,1和φt,-1分別代表著下標為1和-1的子載波的相位值,然后,對于每一對鄰近的幀,計算他們的相位差(映射到[-π,π])和tdoa(timedifferenceofarrival)到達時間δt微秒。之后,畫出來所有如圖1(a)所示。這些點來自一系列周期性的條紋,如圖1(a)中方框標識出來的。此外,條紋是斜的并且看上去有著同樣的斜率。估計這些條紋的坡度,并且最終將它作為cfo的值。作為一個例子,在圖1中展示了相同設(shè)備的隨著測試時間和地點改變的條紋圖像。同樣在圖2中比較了不同設(shè)備的條紋圖像,并且發(fā)現(xiàn)條紋的坡度是不同的??偨Y(jié)如下,從這些圖像中可以看出,條紋的斜率只會根據(jù)設(shè)備的不同而發(fā)生不同,不會因為環(huán)境的不同而發(fā)生改變,這正如cfo期望的特征一樣,將條紋的斜率視為cfo的估計。幀檢測延遲(fdd)和采樣頻率偏移(sfo)的去除:fdd和sfo都會在csi測量中引起一個時間延遲,這些時間延遲會造成與子載波下標線性相關(guān)的相位偏移。根據(jù)(2)式,如果將滿足k1+k2=0的和相加起來,可以移除由于fdd和sfo引起的相位偏移。在802.11n標準中,當帶寬為20mhz時,csi測量記錄了下標為[-28,-26,...,-2,-1,1,3,...,27,28]的30個子載波的數(shù)據(jù)。其中只有[-1,1]和[-28,28]這兩組滿足要求。這就是本發(fā)明方法中定義了的理由。對于時間點t,可以如下表述:圖3比較子載波-28的原始相位值的條紋圖像和子載波-1和1的平均相位值的條紋圖像,可以發(fā)現(xiàn)移除了fdd和sfo的相位偏移使得圖像更加的清晰。移除tof:先要求接收方和發(fā)送方在收集幀的過程中保持靜止,這樣就固定了他們的相對距離,相位差從(4)式中,很顯然看到δfc是和δt之間線性關(guān)系的斜率,理論上來講就是,條紋圖像中的點應(yīng)當形成了周期線而不是周期條紋。而之所以理論和現(xiàn)實存在了差別,是因為各種測量錯誤和一個已知的固件問題,因為我們使用的intel5300網(wǎng)卡。這些測量錯誤使得條紋不是一條光滑的曲線而是有著很多噪聲點。比如,如果設(shè)備的時鐘頻率是10mhz,那么在接收端接收到一個幀的準確時間最多為0.1微秒。因此,在這樣的情況下,條紋圖像中的任何點對之間的間隔應(yīng)當至少是0.1微秒。固件問題,在圖像中造成了額外的條紋,這樣使得δt和不能滿足函數(shù)關(guān)系。但這樣額外的條紋并不會影響斜率的估計。并且為了探測攻擊,使用一個cfo相關(guān)的量是好于只使用cfo本身作為指紋的。換句話說,我們的工作是從估算cfo轉(zhuǎn)換到基于csi的測量,從噪聲條紋圖像中計算出條紋斜率。當一個移動設(shè)備(筆記本電腦或是智能手機)想要從一個ap獲得指紋,首先讓它像平常那樣連上ap,然后。移動設(shè)備使用內(nèi)置的工具ping向ap發(fā)送測試數(shù)據(jù),然后收集所有回復(fù)幀的csi測量值。為了保證獲得的指紋的高精準度,需要大概5000幀。因為在802.11b的情景下,傳輸速率可以達到11mbps,這個過程是小于10秒鐘的?;赾si測量,我們派生出上文描述的條紋圖,然后這些條紋的斜率作為設(shè)備的指紋。除了在兩個設(shè)備之間配置一下wifip2p連接,為一個移動設(shè)備賦予指紋的過程是一樣的。從條紋圖像中得到cfo的值包含兩個步驟:是條紋提取和斜率估計。數(shù)據(jù)特征的抽取為了估計斜率,首先得獲得構(gòu)成每個條紋的點的集合。提取條紋的步驟如圖4所示分為三步。(1)選取高密度區(qū)域臨近幀的tdoas的分布主要是由網(wǎng)絡(luò)的傳輸速率決定的。作為結(jié)果,如圖4所示的第一個子圖中所展示的那樣,δt軸上的一些間隔可能比那些在條紋圖中形成高密度區(qū)擁有更多的點。很顯然,條紋擁有更多的點,那么線性擬合會更準確。所以在δt軸上使用滑動窗口算法來識別這些高密度區(qū)。在每個固定窗口中,計算所有的點的數(shù)目,然后移動到另一個窗口長度的地方。最終,選擇最高數(shù)目的點的窗口作為高密度區(qū),接下來所有的過程都是在這個窗口中進行。窗口的大小由人在檢查了30個設(shè)備之后,人為地按經(jīng)驗設(shè)置。假設(shè)δt軸上的條紋的平均跨度為s,那么,窗口的長度就在我們實驗中就應(yīng)該設(shè)置為6s,這樣可以保證提取的密度區(qū)至少是包含3個清楚的條紋的。(2)將高密度區(qū)域轉(zhuǎn)為二進制圖像觀察圖4的第二個子圖,可以發(fā)現(xiàn)大多數(shù)的點都是沿著條紋的中線集中的,然而仍然有一些離群值稀疏地在不同的條紋間分布著。顯然,這些離群值會給斜率的估計帶來一些負面影響,因此需要被移除掉。處于這個目的,將上一步得到的高密度區(qū)處理為一個二進制圖像,這樣就利用了正常點和異常點之間的巨大差異來消除異常點。首先將此高密度區(qū)域柵格化,劃分為一系列相同的小的矩形,每個矩形都在新生成的二進制圖像中對應(yīng)一個像素。然后,對于每一個矩形,計算其中的點的個數(shù)。如果總數(shù)目超過了預(yù)定義閾值,那么轉(zhuǎn)化后的二進制圖像所對應(yīng)的像素就設(shè)置為1,否則置為0。這樣做之后,正如圖4的第三個子圖所示,很多離群值就會被移除了。對于那些仍然存在很大噪聲點的圖像,使用很多現(xiàn)有的機制比如基于pca的alm來做進一步處理。(3)獲取聯(lián)通部分使用haralick和shapiro提出的圖像分割算法來在2d的二進制圖像中獲取k個最長的連通部分,于是問題從估計條紋的斜率轉(zhuǎn)化為估計k個最長的連通部分的斜率。當然,實際上,可能得到一些不對應(yīng)任何條紋的錯誤部分。這樣就需要使用下面的機制來進行處理。條紋的估計在經(jīng)過了條紋提取的步驟之后,得到了對于每一個長連通部分的點的集合。設(shè)連通點集為s。斜紋的斜率kc可以通過最小二乘法得到,其中,是斜率kc的估計值,x、y為每個點所對應(yīng)的坐標位置,ρ為最小二乘法所要優(yōu)化的系數(shù),β是一個常量。因此,對于每一個連通分量,都可利用最小二乘法方法計算出其斜率k。但是,計算出的斜率可能會變化,因為連通分量可能并非是一個完整的條紋;為了解決這個問題,我們對條紋的斜率進行了聚類,用聚類結(jié)果中數(shù)目最多的一類的均值作為cfo的最終估計值。這樣做的理由是基于一個簡單的事實,那就是正確的cfo估計值通常會很接近,而錯誤的cfo估計值往往是不同的。wifi熱點和無線設(shè)備的雙向識別我們將通過前述的方法所得到的cfo估計值作為無線設(shè)備的指紋特征,將之用于wifi熱點和無線設(shè)備的雙向識別:a)我們可以通過事先采集的方法,對合法wifi熱點進行指紋采集,或者讓合法wifi熱點的持有者公布合法熱點的指紋特征值來建立設(shè)備指紋的白名單。b)每當進行wifi熱點接入時,利用前訴方法采集當前接入的wifi熱點的cfo估計值,將此估計值同采集好的白名單中的wifi熱點指紋特征進行對比,如果相似度低于某一閾值,即判定為虛假wifi熱點。c)同樣的方法也可以用于令wifi熱點識別接入的無線設(shè)備的功能,從而具有限制特定無線設(shè)備才能接入的功能。實驗結(jié)果通過實驗來測試本發(fā)明方法的實現(xiàn)效果。用thinkpadx200筆記本電腦作為一個數(shù)據(jù)采集者來收集測試設(shè)備(aps和智能手機)的cfo指紋數(shù)據(jù)。這個電腦裝備了一個5300無線網(wǎng)卡,我們?yōu)槠浒惭b了一個修改后的第三方的驅(qū)動,這樣就能夠?qū)τ诿恳粋€收到的幀獲取對應(yīng)的csi測量值。為了對一個路由器進行指紋建模,讓一臺筆記本電腦連上這個路由器,然后使用linux系統(tǒng)下的ping工具向這臺路由器發(fā)送報文。對于每一個回復(fù)的幀報文,筆記本得到并且存儲對應(yīng)的csi的測量值。在兩個ping信息的發(fā)送間隔是默認的1秒,這對于采集設(shè)備指紋來說有點太長了,因此,使用-i參數(shù)將這個間隔降低到0.002秒,這樣就可以每一秒鐘發(fā)送出500幀的報文了。對于每一個設(shè)備,總共收集了5000個回復(fù)幀,這通常需要大概10秒鐘時間。筆記本電腦可以通過前面所提出的方法計算出cfo作為設(shè)備的指紋。為了對采集智能手機的指紋信息,我們把一臺筆記本電腦配置為wifi熱點。然后手機連接到電腦并且向它發(fā)送信息,正如在采集路由器(ap)指紋中所做的一樣。然后,我們可以基于接收到的幀的csi數(shù)值計算出手機的指紋信息。著重討論本發(fā)明兩方面的表現(xiàn):一是,指紋在時間和地點方面的穩(wěn)定性,二是方法的準確性和誤報率。實驗測試了超過23臺智能手機和30個ap,包括相同的和不相同的機型。穩(wěn)定性測試實驗中的指紋指的是從csi測量中估計出來的cfo的值,可以從方便地從現(xiàn)有的無線設(shè)備中獲取。時間上的穩(wěn)定性:實驗考慮了兩個時間跨度,一天和一個月。圖5顯示了兩個不同型號的ap(netgearr7000和tp-linkwdr4300)在一天中的不同時刻所采集到cfo的值,,。讓這兩個ap都整天運行,并且每6個小時記錄一下csi的值??梢园l(fā)現(xiàn),這兩個ap的cfo的估計值,都是在整天的任何時間段保持一致的。為了驗證cfo是長期穩(wěn)定的,我們從一臺小米note手機上收集了一個月中每天的cfo的值,如圖6所示,一個月中的cfo的估計值,基本上是相同的,并且最多相差0.1??臻g上的穩(wěn)定性:csi的相位域包含了一個tof偏移,這個是極度依賴于設(shè)備間的相對位置和周遭環(huán)境的。我們提出了幾個方法來消除這個干擾因素。為了帶進復(fù)雜的多路環(huán)境,選擇了一個室內(nèi)環(huán)境,如圖7所示的7.7m×6.5m的實驗室,來證明四個ap的cfo指紋的空間穩(wěn)定性。對于每一個ap,把它放在四個不同的位置,一個由墻壁與電腦分開。在每個測試中,要求兩個測試人員繞著室內(nèi)行走,來模仿真實的隨時在改變的環(huán)境。在每一個地點對于每一個ap都進行了15次的指紋測試。這些ap的在不同的地點的平均的cfo的值在圖8中展現(xiàn)了出來。它表明由于不同環(huán)境影響的cfo之間的改變相較于不同的ap之間的差異是可以被忽略的,這表明我們的測量的cfo是空間穩(wěn)定的。在4臺不同的智能手機上也進行了如此的實驗,然后得到了類似的結(jié)果由于空間的限制,我們只展示了ap的結(jié)果。準確率測試對每個ap/手機進行了k次指紋,并且將這些結(jié)果都存儲在一個數(shù)據(jù)庫中。假設(shè)總共有n臺設(shè)備,總共就收集了k·n個指紋。在每一個測試中,對每一臺設(shè)備d(表示設(shè)備下標),通過隨機地從k個指紋中選取m個來進行采樣,形成一個采樣集合hd。然后,通過計算hd的平均值來建立一個白名單w。在實驗中,m的大小被設(shè)置為三分之一的k,這樣如果k=7,那么m=2。讓s表示剩余的指紋的集合。然后,如果把s中的一個指紋和在w中的一個不同的設(shè)備的指紋進行對比,實際上我們就模擬了檢測rogueap或是freeloading攻擊。另一方面,如果通過把s中的一個指紋和在w中的一個相同的設(shè)備的指紋進行對比,我們實際上就是模擬了一個正常的通話。所以,可以定義了攻擊的探測率pd和誤報率pf,如下:其中id(i)表示的是指紋i對應(yīng)的設(shè)備編號,如果指紋i和指紋j符合,則match(i,j)值為1,否則為0。匹配的過程計算了hid(i)(設(shè)備編號為id(i)的設(shè)備所對應(yīng)的采樣集合)的最大角度差作為th,如果th小于1°,那么我們將th設(shè)為1°,并且在兩個條紋之間的絕對角度差作為da。然后通過比較da和我們實驗中的th來決定兩個指紋是否匹配:如果da小于th,認為是匹配,否則是不匹配。表iap實驗的詳細場景場景ap品牌全部指紋#ofapsk的值教學(xué)樓華為84127星巴克未知90615實驗室網(wǎng)件,普聯(lián)120815圖書館華為60415表ii不同場景下ap識別的正確率場景探測率pd錯誤警告率pf教學(xué)樓94.32%4.52%星巴克95.05%2.31%實驗室97.24%1.47%大學(xué)圖書館94.37%5.11%首先考慮對于ap的評估。在四個場景中進行了實驗,包括教學(xué)樓,實驗室,圖書館和一些星巴克,并且總共收集了354個指紋。在這些環(huán)境中的ap的詳情見表i中。在星巴克,沒有看到他們的設(shè)備所以無法得知商標。除了星巴克,在每個場景中,所有的ap都是同樣的廠商和型號。需要指出的是,這其實是模擬了我們能遇到的一個最壞的攻擊場景,在這個場景中攻擊者設(shè)置了一個和認證過的ap同樣型號的假冒ap。從直覺上來講,來自同一個供應(yīng)商的ap更可能具有相似的指紋。根據(jù)在表ii中顯示的結(jié)果,探測率在四個場景中接近94%,同時誤報率在5.11%之下。除了ap,同樣對于智能手機也進行了相似的實驗。實驗包括了23臺不同廠商的智能手機,如表iii中所示,其中對于每個手機,k=15。其中準確率和誤報率的定義同對ap的測試中一樣。準確率達到了94%,而誤報率則是在3%以下。表iii手機的詳細信息智能手機數(shù)量魅族3三星5小米7其他8同樣在如表iv中所描訴的相同模型的手機上進行了實驗。因為數(shù)據(jù)庫較小,把pd和pf表述為函數(shù)。我們會發(fā)現(xiàn)本發(fā)明方法仍然可以區(qū)分相同模型的不同設(shè)備。表iv同一個型號手機的正確率智能手機數(shù)量探測率錯誤警告率相同wifi網(wǎng)卡的小米手機6149/1601/70三星s4370/700/35當前第1頁12