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