本發(fā)明涉及無線網(wǎng)絡(luò)安全定位領(lǐng)域,特別涉及一種基于可信位置指紋的室內(nèi)定位方法。
背景技術(shù):
在無線網(wǎng)絡(luò)中,位置信息對檢測活動至關(guān)重要。一段時間以來,無線定位領(lǐng)域的研究主要集中于如何提高定位精確度和能量有效性,各種各樣的室內(nèi)定位技術(shù)層出不窮。然而,由于無線網(wǎng)絡(luò)的開放性和無人看護(hù)性使定位過程所依據(jù)的各種信號很容易被外界篡改,定位過程容易遭受來自內(nèi)部和外部的攻擊。攻擊產(chǎn)生的錯誤定位結(jié)果可能導(dǎo)致網(wǎng)絡(luò)定位功能失效和監(jiān)測結(jié)果出錯,進(jìn)而破壞基于位置信息的應(yīng)用程序的有效性。因此,如何為存在敵對可能的無線網(wǎng)絡(luò)提供安全的定位系統(tǒng),是一個必須解決的關(guān)鍵問題。
現(xiàn)有的定位技術(shù),特別是基于rss的定位技術(shù),信號易受環(huán)境影響,同時對于人為破壞信號強(qiáng)度的抵抗能力不強(qiáng)。一些安全定位協(xié)議往往基于距離界定技術(shù),但是對于室內(nèi)定位目前采用的位置指紋定位算法,往往沒有考慮安全因素。因此當(dāng)環(huán)境中存在攻擊時,例如重放攻擊,它會使得在同一個位置接收到的信號強(qiáng)度發(fā)生變化。信號受到重放攻擊時,基于位置指紋的定位算法往往缺乏有效的應(yīng)對手段,定位系統(tǒng)的準(zhǔn)確性便會受到嚴(yán)重的影響。因此,有必要設(shè)計一種基于位置指紋的安全定位方法用于室內(nèi)定位。
技術(shù)實現(xiàn)要素:
為了解決在基于指紋庫的定位方法中,可能會由于ap受到基于信號強(qiáng)度的攻擊,而導(dǎo)致指紋庫中或待定位位置指紋序列中存在不可信的位置指紋的問題,本發(fā)明提出了一種基于可信位置指紋的室內(nèi)定位方法。
當(dāng)前國內(nèi)外針對無線網(wǎng)絡(luò)定位的不同技術(shù)提出了各種各樣的安全算法。本發(fā)明從基于指紋庫的定位系統(tǒng)實際遇到的問題出發(fā),借鑒了安全算法中投票機(jī)制的思想,以提高系統(tǒng)識別惡意ap的能力為目標(biāo),針對ap容易受到篡改ap發(fā)射功率、重放信號強(qiáng)度等改變接收信號強(qiáng)度的攻擊,探究了環(huán)境因素和惡意攻擊對信號影響的區(qū)別,設(shè)計了在受到信號強(qiáng)度攻擊時仍能保證定位系統(tǒng)安全性的定位算法。
一種基于可信位置指紋的室內(nèi)定位方法,包括離線階段和在線階段;
1)離線階段:采集離線的指紋信息,建立離線指紋庫;
所述離線指紋庫包括離線rss觀測矩陣、rss波動矩陣以及采樣點(diǎn)距離矩陣,其中,rss波動矩陣中每個元素的取值為采樣點(diǎn)進(jìn)行多次rss采樣時的rss標(biāo)準(zhǔn)差;
2)在線階段:
2.1)在待定位節(jié)點(diǎn)位置獲取錨節(jié)點(diǎn)的rss信息,同時重新計算采樣點(diǎn)的rss波動矩陣;
重新計算采樣點(diǎn)的rss波動矩陣是為了解決在線和離線階段的時間差異及在此期間可能出現(xiàn)惡意攻擊的問題;
2.2)基于更新的rss波動矩陣,對錨節(jié)點(diǎn)的可信度進(jìn)行投票:當(dāng)波動矩陣中的元素變化量超過設(shè)定的波動閾值時,該元素對應(yīng)的采樣點(diǎn)為對應(yīng)的錨節(jié)點(diǎn)進(jìn)行波動投票;
2.3)利用錨節(jié)點(diǎn)可信度構(gòu)建錨節(jié)點(diǎn)可信權(quán)值,進(jìn)行指紋匹配,選取指紋匹配度較高的采樣點(diǎn)的指紋,對待定位節(jié)點(diǎn)進(jìn)行定位,比較當(dāng)前定位結(jié)果與前一次定位結(jié)果之間定位誤差,當(dāng)更新次數(shù)達(dá)到設(shè)定的更新次數(shù),或定位誤差δ<t時,返回定位誤差最小的估計位置,得到精確定位的結(jié)果,保存定位誤差最小的rss觀測矩陣和波動矩陣,否則,進(jìn)入2.4);
2.4)對位于待定位節(jié)點(diǎn)上一次定位位置所需錨節(jié)點(diǎn)的通信范圍中的采樣點(diǎn)進(jìn)行rss值更新,同時更新待定位區(qū)域中樣本點(diǎn)的rss值和rss波動矩陣,返回2.2)。
進(jìn)一步地,所述指紋匹配度是指待定位節(jié)點(diǎn)接收到的錨節(jié)點(diǎn)的rss值與離線階段中網(wǎng)格j處的采樣點(diǎn)接收的錨節(jié)點(diǎn)的rss值之間的加權(quán)歐幾里得距離lj:
其中,wi表示第i個錨節(jié)點(diǎn)的可信權(quán)值,wi=1-vi/numi,numi表示第i個錨節(jié)點(diǎn)通信范圍內(nèi)的采樣點(diǎn)數(shù)量,vi表示采樣點(diǎn)對第i個錨節(jié)點(diǎn)波動投票總數(shù),l表示錨節(jié)點(diǎn)數(shù)量,si表示待定位節(jié)點(diǎn)收到的第i個錨節(jié)點(diǎn)的rss值,
進(jìn)一步地,所述選取指紋匹配度較高的采樣點(diǎn)的指紋,對待定位節(jié)點(diǎn)進(jìn)行定位是指,從小到大選取k個對應(yīng)歐幾里得距離li較小的網(wǎng)格坐標(biāo)(xi,yi),采用k近鄰法計算待定位節(jié)點(diǎn)的估計位置
其中,k取值為5;以
進(jìn)一步地,所述更新rss觀測矩陣是指,重新測量定位區(qū)域中部分采樣點(diǎn)的rss值,再根據(jù)采樣點(diǎn)距離矩陣中采樣點(diǎn)之間的距離,采用線性插值法對以r為半徑確定待定位節(jié)點(diǎn)的初步定位區(qū)域中的采樣點(diǎn)及上一次定位所需錨節(jié)點(diǎn)的通信范圍中的采樣點(diǎn)的rss值進(jìn)行更新。
在更新指紋庫時要更新該區(qū)域的樣本點(diǎn)指紋,消除離線和在線階段的時間差異及惡意攻擊篡改指紋對定位造成影響降低更新全部指紋信息的開銷,并且在指紋匹配時只需要匹配該區(qū)域的樣本點(diǎn)指紋即可,減小了指紋匹配的計算量,提高了匹配效率。
進(jìn)一步地,所述離線階段的具體過程如下:
1)建立觀測矩陣;
對室內(nèi)區(qū)域進(jìn)行均勻化網(wǎng)格劃分,設(shè)定區(qū)域內(nèi)網(wǎng)格點(diǎn)的總數(shù)為n,錨節(jié)點(diǎn)的個數(shù)為l,獲取錨節(jié)點(diǎn)坐標(biāo)(x,y);在每個網(wǎng)格上進(jìn)行q次采樣,網(wǎng)格接收錨節(jié)點(diǎn)的rss值,在每個網(wǎng)格點(diǎn)上計算q次采樣的rss的均值,該平均值即為該網(wǎng)格處采樣點(diǎn)的rss值;每個網(wǎng)格處能感知到的各個錨節(jié)點(diǎn)的rss均值,即為網(wǎng)格處采樣點(diǎn)的值,獲取一個初始l×n維的觀測矩陣:
其中,
2)建立波動矩陣;在每個網(wǎng)格上,進(jìn)行q次采樣,搜集網(wǎng)格處的采樣點(diǎn)感知到的錨節(jié)點(diǎn)的rss值,在每個網(wǎng)格處計算q次采樣的rss的標(biāo)準(zhǔn)差,構(gòu)建rss的波動矩陣b:
其中,
3)構(gòu)建網(wǎng)格中采樣點(diǎn)之間的距離矩陣d:
其中,位于網(wǎng)格m中的采樣點(diǎn)到位于網(wǎng)格n中的采樣點(diǎn)之間的距離為dmn;如果m=n,dmn=0。
有益效果
本發(fā)明提出了一種基于可信位置指紋的室內(nèi)定位方法,該定位方法在更新指紋庫時讓采樣點(diǎn)對錨節(jié)點(diǎn)ap進(jìn)行投票處理,根據(jù)錨節(jié)點(diǎn)ap的得票數(shù)計算錨節(jié)點(diǎn)ap的權(quán)重,進(jìn)而得到錨節(jié)點(diǎn)ap受環(huán)境影響的程度以及是惡意錨節(jié)點(diǎn)ap的可能性,以此來決定該錨節(jié)點(diǎn)ap在此次定位過程中的貢獻(xiàn)值,達(dá)到降低惡意錨節(jié)點(diǎn)ap對定位的影響,提高定位的安全性和精度的作用。
相比于傳統(tǒng)的指紋庫定位方法,本發(fā)明不僅對指紋庫進(jìn)行了更新處理,提高了指紋庫的準(zhǔn)確性,而且在更新過程中加入了投票機(jī)制,識別環(huán)境中的惡意節(jié)點(diǎn),實現(xiàn)系統(tǒng)的安全定位。
對指紋庫進(jìn)行更新,解決了離線階段和在線階段的差異性問題,提高了定位精度。針對環(huán)境中存在惡意錨節(jié)點(diǎn)ap的問題,由于復(fù)雜多變的環(huán)境,在指紋庫定位技術(shù)中很難區(qū)別環(huán)境和惡意錨節(jié)點(diǎn)ap的影響,本發(fā)明采用了迭代投票機(jī)制,該機(jī)制可以區(qū)分環(huán)境影響因素和惡意ap影響因素的差別,從而識別出惡意錨節(jié)點(diǎn)ap,并且可以相應(yīng)降低受環(huán)境影響較大的ap的貢獻(xiàn)值。因此本發(fā)明可以實現(xiàn)較好的定位效果。
附圖說明
圖1為本發(fā)明的流程圖。
圖2為應(yīng)用本發(fā)明得到的實驗結(jié)果示意圖一;
圖3為應(yīng)用本發(fā)明得到的實驗結(jié)果示意圖二。
具體實施方式
下面將結(jié)合附圖和實例對本發(fā)明做進(jìn)一步的說明。
首先定義錨節(jié)點(diǎn)ap數(shù)量l,錨節(jié)點(diǎn)ap通信半徑r,最大指紋庫更新次數(shù)g,當(dāng)前指紋庫更新次數(shù)g,定位誤差閾值t,信任閾值δ,傳統(tǒng)的指紋庫定位的平均誤差為0.5m,本實例中設(shè)定t=0.5m。
如圖1為本發(fā)明的定位方法框架圖。定位分為離線階段和在線階段。離線階段生成rss指紋庫、波動矩陣、網(wǎng)格之間距離矩陣,得到錨節(jié)點(diǎn)ap坐標(biāo)和網(wǎng)格坐標(biāo);在線階段待定位位置生成測量矩陣,利用knn算法定位,根據(jù)定位誤差決定是否更新指紋庫,在更新指紋庫的同時更新波動矩陣,若存在惡意錨節(jié)點(diǎn)ap,根據(jù)票數(shù)矩陣可降低惡意錨節(jié)點(diǎn)ap對定位結(jié)果的影響,最終輸出最優(yōu)的定位結(jié)果。
(1)在離線階段建立采樣矩陣ψ、波動矩陣b和網(wǎng)格到網(wǎng)格之間的距離矩陣d,獲得錨節(jié)點(diǎn)ap的坐標(biāo)以及各網(wǎng)格坐標(biāo),保存到離線數(shù)據(jù)庫。
(2)在線階段,獲得測量矩陣φ,計算錨節(jié)點(diǎn)ap的權(quán)值信息:wi=1-vi/num;計算待定位位置的指紋與指紋庫中指紋的歐幾里得距離:
獲得待定位位置的估計位置(px,py),以該估計位置為圓心,以r為半徑確定待定位區(qū)域。
(3)在定位區(qū)域中重新測量一部分采樣點(diǎn)處的rss值,根據(jù)采樣點(diǎn)之間的距離矩陣?yán)镁€性差值法更新待定位區(qū)域中樣本點(diǎn)和上一次定位所需錨節(jié)點(diǎn)的通信范圍內(nèi)采樣點(diǎn)的rss值,得到更新后的rss值,并令g+1。初始化投票矩陣,票數(shù)全為0;執(zhí)行第(4)步。
(4)獲得更新的rss矩陣后,計算采樣點(diǎn)接收到api的rss值更新前后波動范圍的變化,如果變化值大于給定的信任閾值δ,則對api進(jìn)行投票vi+1。
(5)得到投票矩陣,計算api的權(quán)值:wi=1-vi/num;
計算待定位位置的rss值與更新后的指紋庫ψ'中采樣點(diǎn)j處的rss值之間加權(quán)的歐幾里得距離lj:
其中,si表示待定位節(jié)點(diǎn)所在位置接收到錨節(jié)點(diǎn)api的rss值;
(6)采用knn算法計算待驗證節(jié)點(diǎn)的估計位置:
比較定位估計位置與前一次定位估計位置的定位誤差δ,并記錄本次定位所需的錨節(jié)點(diǎn),如果δ<t,則直接執(zhí)行第(7)步,如果δ>t,判斷更新次數(shù),如果g>g,執(zhí)行(7),否則執(zhí)行(3)。如果本次定位誤差小于上一次定位誤差,則把更新后的rss數(shù)據(jù)庫作為在線定位rss數(shù)據(jù)庫,保存得到的波動矩陣。
(7)比較所有的定位結(jié)果,返回具有最小誤差的定位坐標(biāo)(px,py)。
如圖2為本發(fā)明中針對不同強(qiáng)度的信號攻擊的實驗圖,圖2表示在10個不同位置處計算定位結(jié)果與實際位置的定位誤差,橫坐標(biāo)表示不同的位置,縱坐標(biāo)表示每個位置進(jìn)行10次定位的平均定位誤差。當(dāng)信號強(qiáng)度受到0-20dbm的攻擊時,黑色圓形標(biāo)識線表示傳統(tǒng)指紋定位算法的定位結(jié)果,紅色正方形標(biāo)識線表示本文提出算法的定位結(jié)果。當(dāng)信號強(qiáng)度受到0-15dbm的攻擊時,綠色三角標(biāo)識線表示傳統(tǒng)指紋定位算法的定位結(jié)果,藍(lán)色五角星標(biāo)識線表示本文算法的定位結(jié)果。該實驗在每個位置處進(jìn)行10次定位,并選擇了10個不同的位置,因此,可以反應(yīng)了本文定位算法的整體定位性能,由圖中可以看出,當(dāng)環(huán)境中存在惡意攻擊時,傳統(tǒng)的指紋定位算法的平均誤差較高,而本文定位算法可以很好的容忍基于信號強(qiáng)度的攻擊。
如圖3為本發(fā)明中在相同攻擊強(qiáng)度下,針對存在不同惡意錨節(jié)點(diǎn)個數(shù)的實驗圖,在該圖中,圓形標(biāo)識線和正方形線表示環(huán)境中存在兩個惡意ap,三角標(biāo)標(biāo)識線和五角星標(biāo)識線表示環(huán)境中存在一個惡意ap,圓形標(biāo)識線和三角標(biāo)識線代表傳統(tǒng)的指紋定位算法,由圖可以看出,存在兩個惡意ap的定位誤差高于存在一個惡意ap的定位誤差,傳統(tǒng)的指紋定位算法對惡意ap的容忍能力較差。正方形標(biāo)識線和五角星標(biāo)識線表示本算法的定位精度,圖中顯示,本算法可以很好的過濾惡意ap對定位精度的影響,對惡意ap由較好的容忍能力,當(dāng)存在多個惡意ap時仍可以保持較好的定位精度。
以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制,盡管參照上述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:依然可以對本發(fā)明的具體實施方式進(jìn)行修改或者等同替換,而未脫離本發(fā)明精神和范圍的任何修改或者等同替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。