何遠(yuǎn)德 黃奎峰
1(西南民族大學(xué)語(yǔ)言實(shí)驗(yàn)教學(xué)中心 四川 成都 610041)2(重慶三峽醫(yī)藥高等??茖W(xué)校 重慶 404120)
軌跡匿名隱私保護(hù)技術(shù)是近年來網(wǎng)絡(luò)空間安全領(lǐng)域研究的熱點(diǎn)問題之一[1-3],常用的軌跡匿名技術(shù)主要是基于泛化方法的k-匿名查詢技術(shù)[4],該技術(shù)要求在發(fā)布數(shù)據(jù)中任一當(dāng)前軌跡在以半徑為δ的圓柱范圍內(nèi),至少包含其他k-1條軌跡,生成一個(gè)泛化后的數(shù)據(jù)包,向客戶端提交虛假軌跡組,從而降低當(dāng)前查詢軌跡的辨識(shí)率。然而當(dāng)用戶在多個(gè)不同時(shí)刻k-匿名區(qū)域時(shí),例如3個(gè)連續(xù)查詢事件,軌跡T1={P1、P2、P3、P4},軌跡T2={P3、P4、P6、P7},軌跡T3={P3、P8、P9、P10},攻擊者比較容易推斷發(fā)出查詢事件請(qǐng)求的為P3用戶。
針對(duì)傳統(tǒng)的k-匿名軌跡隱私保護(hù)方法不能直接應(yīng)用于連續(xù)查詢,學(xué)者們提出了不同的研究思路和觀點(diǎn)。文獻(xiàn)[5]將真實(shí)軌跡位置進(jìn)行模糊處理,根據(jù)歷史數(shù)據(jù)生成虛假用戶,并提出了虛假軌跡的距離約束和相似性約束。文獻(xiàn)[6]通過匿名框的泛化方法將最初在框中的軌跡繼續(xù)保留在接下來多個(gè)連續(xù)查詢匿名框中,以避免攻擊者對(duì)數(shù)據(jù)信息的推斷和識(shí)別。文獻(xiàn)[7]針對(duì)關(guān)聯(lián)查詢攻擊和運(yùn)動(dòng)模式推斷攻擊問題,利用路網(wǎng)頂點(diǎn)作為錨點(diǎn)提出一種路網(wǎng)興趣點(diǎn)連續(xù)KNN查詢隱私保護(hù)方法。以上三種方法都采用了匿名框或路網(wǎng)的方式進(jìn)行隱私保護(hù),但僅考慮軌跡位置與攻擊點(diǎn)的匹配程度,忽略了背景知識(shí)的語(yǔ)義信息。通過空間關(guān)聯(lián)因素推斷并結(jié)合特定的領(lǐng)域背景知識(shí),可以將查詢條件作為關(guān)聯(lián)最初匿名框的接口,從而對(duì)軌跡數(shù)據(jù)進(jìn)行攻擊,在語(yǔ)義背景下降低了k-匿名的效果。文獻(xiàn)[8]針對(duì)語(yǔ)義位置攻擊和最大運(yùn)行速度攻擊,將語(yǔ)義軌跡隱私問題定義為k-CS匿名問題,實(shí)現(xiàn)基于圖上頂點(diǎn)聚類的近似算法,進(jìn)而對(duì)圖上頂點(diǎn)進(jìn)行匿名。但這種方法缺少對(duì)位置節(jié)點(diǎn)語(yǔ)義解釋,缺少一個(gè)知識(shí)庫(kù)模型,攻擊者可以將查詢興趣點(diǎn)所在特定軌跡片段結(jié)構(gòu)作為背景知識(shí)進(jìn)行隱私攻擊,構(gòu)造出至少相同結(jié)構(gòu)和屬性的軌跡作為攻擊候選集,使目標(biāo)軌跡導(dǎo)致隱私泄露的概率大于1/k,從而泄露與目標(biāo)相關(guān)的信息[9]。
針對(duì)現(xiàn)有軌跡匿名模型難以防范以連續(xù)查詢?yōu)楸尘爸R(shí)的攻擊問題,利用事件本體對(duì)軌跡連續(xù)查詢進(jìn)行形式化表示的優(yōu)點(diǎn),提出一種連續(xù)查詢事件攻擊中基于語(yǔ)義的軌跡匿名方法。該方法引入OWL[10](Ontology Web Language)對(duì)軌跡的身份隱私、地理信息和敏感查詢事件進(jìn)行形式化表示,構(gòu)建基于事件本體的軌跡匿名模型,利用軌跡綜合相似性和Jena推理引擎,給出基于k-匿名的軌跡聚類方法,實(shí)現(xiàn)關(guān)于當(dāng)前軌跡的虛假匿名組,最后用實(shí)驗(yàn)驗(yàn)證本文方法的有效性和可擴(kuò)展性。
定義2結(jié)構(gòu)相似查詢:存在一條軌跡T映射F,對(duì)于軌跡結(jié)構(gòu)的每一個(gè)屬性,諸如采樣點(diǎn)序列、速度、形狀、轉(zhuǎn)角、加速等,攻擊者通過對(duì)軌跡T的相似結(jié)構(gòu)發(fā)現(xiàn)隱私數(shù)據(jù)。從結(jié)構(gòu)相似性帶來的軌跡攻擊表示為:
其中:εSi強(qiáng)度由結(jié)構(gòu)向量集合Si一致性等因素決定,Contex包含攻擊者通過結(jié)構(gòu)屬性獲取軌跡知識(shí),結(jié)構(gòu)屬性的一致性越高,攻擊者構(gòu)造出F的可能性越高。
事件本體技術(shù)能夠描述某個(gè)事件行為的概念及概念之間的關(guān)系,形式化表示事件行為的語(yǔ)義邏輯,共享、集成、推理的性能,形成相互連接的無環(huán)超圖。事件本體在特定的領(lǐng)域本體內(nèi),對(duì)某個(gè)特定時(shí)間或環(huán)境下發(fā)生的表現(xiàn)出的動(dòng)作特征的形式化描述。通常用
事件本體能夠?qū)壽E連續(xù)查詢進(jìn)行可共享的明確的形式化規(guī)范化說明,本文根據(jù)事件本體定義,結(jié)合實(shí)際研究需求,擴(kuò)展
(1) Contexts是查詢事件本體中的背景知識(shí)與概念分類集合,每個(gè)Context表示一個(gè)背景概念分類,包括軌跡位置信息、地理環(huán)境信息、用戶身份和社交關(guān)系信息等,所有Context構(gòu)成一個(gè)查詢事件背景知識(shí)的樹形分類結(jié)構(gòu)。
(2) Events是查詢攻擊事件行為本體分類集合,存儲(chǔ)各類攻擊事件行為的實(shí)例及其屬性。本文所述查詢攻擊事件行為包含內(nèi)容集、對(duì)象集、時(shí)間段集、內(nèi)部狀態(tài)集和語(yǔ)言描述集等5個(gè)要素,其中,內(nèi)部狀態(tài)集包括觸發(fā)條件集和結(jié)果集。
(3) Relations表示概念與概念之間的關(guān)系集合,不同的事件之間通過關(guān)系,形成具有圖結(jié)構(gòu)的事件類網(wǎng)絡(luò)。關(guān)系集合包括包含關(guān)系(is_a)、組成關(guān)系(isComposed of)、因果關(guān)系(causal)、并發(fā)關(guān)系(concurrence)、跟隨關(guān)系(follow)。
(4) Rules是由邏輯描述語(yǔ)言表示的規(guī)則集合,可以通過Contexts、Events、Relations的分類形成推理規(guī)則。
如圖1所示,采用OWL對(duì)查詢事件本體進(jìn)行構(gòu)建,OWL具有較強(qiáng)的語(yǔ)義性和知識(shí)表達(dá)能力,可較好地支持Jena推理引擎。具體構(gòu)建步驟如下:
(1) 定義基礎(chǔ)信息類:基礎(chǔ)信息類包括背景知識(shí)類和環(huán)境信息類,背景知識(shí)類(Contexts Class)為一定區(qū)域內(nèi)的地理信息,包含路網(wǎng)頂點(diǎn)、區(qū)域、路段、標(biāo)識(shí)、結(jié)構(gòu)等要素,環(huán)境信息類包含氣象環(huán)境(降水?dāng)?shù)據(jù)、能見度)和物理環(huán)境(壓強(qiáng)、磁場(chǎng))等要素,這些要素作為基礎(chǔ)數(shù)據(jù)導(dǎo)入本體結(jié)構(gòu)中形成離線的本體結(jié)構(gòu)。從事件本體中自上而下抽象基本類及其層次關(guān)系,class表示類中的本體概念,SubClass表示子類,instance表示查詢事件的實(shí)例,例如Channel是Line的子類,Position1是Channel的實(shí)例。
(2) 定義事件類:不同的本體存在不同的抽象類,從多個(gè)事件類中抽取事件要素和事件關(guān)系,表示事件當(dāng)前的狀態(tài)信息和行為特征。例如“Move”是當(dāng)前查詢事件中軌跡的一個(gè)狀態(tài),它包括從當(dāng)前路網(wǎng)頂點(diǎn)移出和移入的行為特征,用“InMove”和“OutMove”表示。當(dāng)多次查詢一條軌跡上的路網(wǎng)頂點(diǎn)(P1,P2,P3,…)時(shí),觸發(fā)事件本體類中各項(xiàng)子類,遍歷P1,P2,P3,…在事件類中位置,若存在當(dāng)前查詢軌跡在k個(gè)匿名范圍實(shí)例內(nèi)的軌跡結(jié)構(gòu)關(guān)系或關(guān)聯(lián)因果關(guān)系,則進(jìn)行報(bào)警請(qǐng)求。
(3) 設(shè)置事件實(shí)例:事件實(shí)例作為事件類和事件要素的擴(kuò)充,包含事件發(fā)生的具體內(nèi)容和屬性,包含類型、關(guān)聯(lián)強(qiáng)度、因素及約束條件閾值,用Datatype Property表示,細(xì)化查詢事件內(nèi)容。當(dāng)連續(xù)查詢某個(gè)軌跡上的路網(wǎng)頂點(diǎn)時(shí),將這些查詢事件存入匿名集,并不斷擴(kuò)展事件實(shí)例庫(kù)。
(4) 定義事件關(guān)系:① 包含關(guān)系,存在事件類EC1={E1,C1A,C1O,C1T,C1P,C1S,C1E}和EC2={E2,C2A,C2O,C2T,C2P,C2S,C2E},存在EC1∈EC2,當(dāng)且僅當(dāng)C1F∧C2F∧C1I∈C2I∧C1A∧C2A。包含關(guān)系存在于事件類之間,如查詢路網(wǎng)線段事件與查詢路網(wǎng)頂點(diǎn)事件屬于包含關(guān)系,通常用Ris_a表示;② 組成關(guān)系,軌跡事件行為類EC1中的一個(gè)實(shí)例由事件行為類EC2中的某個(gè)實(shí)例組成時(shí),則該事件行為類EC1由事件類EC2組成,如“敏感位置查詢”由“身份信息查詢事件”、“停留查詢事件”、“離開查詢事件”等組成。組成關(guān)系形式化為Rcomp。③ 因果關(guān)系,事件類EC1的實(shí)例事件發(fā)生以一定的概率導(dǎo)致了事件類EC2的實(shí)例事件發(fā)生,如果發(fā)生的概率大于某一閾值,則該兩類事件類存在因果關(guān)系,形式化為Rcause。例如惡意者攻擊發(fā)現(xiàn)一條軌跡T上的某個(gè)位置P在連續(xù)查詢事件出現(xiàn),用戶位置P的泄露導(dǎo)致身份隱私被獲取,則該事件發(fā)生的實(shí)例為因果關(guān)系。④ 跟隨關(guān)系,隨著數(shù)據(jù)流的時(shí)間推移,事件類EQ1實(shí)例和EQ2實(shí)例先后發(fā)生,則為該兩類事件存在跟隨關(guān)系,形式化表示為Rfollow。例如查詢軌跡中位置P1的事件實(shí)例EQ1后,進(jìn)而查詢位置P1的事件實(shí)例用戶出入信息動(dòng)態(tài)EQ2。⑤ 并發(fā)關(guān)系,在一定時(shí)間段內(nèi),存在兩個(gè)攻擊事件同時(shí)發(fā)生或攻擊事件發(fā)生重合,形式化為Rconcurrence。
圖1 基于事件本體的軌跡匿名模型
由于構(gòu)建的事件本體模型E-Ontology,在知識(shí)推理與服務(wù)方面建立在描述邏輯基礎(chǔ)上,對(duì)動(dòng)態(tài)事件特征的知識(shí)無法應(yīng)用推理,而基于原子動(dòng)作的動(dòng)態(tài)描述邏輯推理對(duì)本體事件要素的概念、關(guān)系、實(shí)例和公理的可滿足性推理沒有相關(guān)的系統(tǒng)框架可參照。因此,本文提出了一種基于k-匿名查詢的軌跡聚類算法,在計(jì)算軌跡片段相似度基礎(chǔ)上,利用KNN在獲取鄰近軌跡的優(yōu)點(diǎn)以及Jena引擎的推理能力,將與當(dāng)前軌跡相似的k條軌跡進(jìn)行聚類,從而形成關(guān)于當(dāng)前軌跡的虛假軌跡匿名組。
(1) 內(nèi)容關(guān)聯(lián)強(qiáng)度計(jì)算:當(dāng)前查詢軌跡內(nèi)容與E-Ontology中屬性及實(shí)例之間的近似度。取當(dāng)前查詢軌跡T={(Tv1,Tv2),(Tv2,Tv3),…,(Tvi,Tvj)},針對(duì)集合中的每個(gè)路網(wǎng)位置節(jié)點(diǎn)Tvi名稱對(duì)應(yīng)的本體與E-Ontology中實(shí)體名稱的文本相似性(Jaccard相似性[14]),并選擇文本相似性最大的實(shí)體作為該位置節(jié)點(diǎn)匹配的實(shí)體,記內(nèi)容關(guān)聯(lián)強(qiáng)度為ε,擴(kuò)充到當(dāng)前軌跡片段記為:
(1)
(2) 結(jié)構(gòu)相似度計(jì)算:當(dāng)前攻擊查詢軌跡結(jié)構(gòu)屬性及其實(shí)例與E-Ontology中屬性及實(shí)例的相似程度。取當(dāng)前查詢軌跡T={(Tv1,Tv2),(Tv2,Tv3),…,(Tvi,Tvj)},遍歷E-Ontology,當(dāng)內(nèi)容關(guān)聯(lián)命中E-Ontology實(shí)體名稱時(shí),進(jìn)一步向子節(jié)點(diǎn)屬性擴(kuò)展同時(shí)獲取葉節(jié)點(diǎn)的實(shí)例描述,在E-Ontology中選擇與當(dāng)軌跡片段實(shí)例最相似的文本作為學(xué)習(xí)節(jié)點(diǎn),并記為η:
擴(kuò)展到當(dāng)前軌跡片段則計(jì)算為:
(3)
定義3(綜合相似度) 為結(jié)構(gòu)相似度和內(nèi)容關(guān)聯(lián)度的權(quán)重求和,記為:
Sim(vi,Tvj)=θ×A+(1-θ)×S
(4)
按上述方法,對(duì)于任意軌跡的綜合相似度,構(gòu)成一個(gè)k階相似度矩陣RSim=(ri,j)k×k。
為實(shí)現(xiàn)當(dāng)前查詢的軌跡與E-Ontology實(shí)例相似度最高的k-1條軌跡,形成一個(gè)關(guān)于當(dāng)前軌跡的匿名組,本節(jié)在語(yǔ)義本體模型和軌跡相似度的基礎(chǔ)上,實(shí)現(xiàn)軌跡的k-匿名。算法的基本思路是:在以半徑為δ的區(qū)域內(nèi),截取當(dāng)前查詢軌跡片段,采用綜合相似度計(jì)算當(dāng)前軌跡片段與E-Ontology實(shí)體、屬性和實(shí)例,選取最大的k-1條軌跡,并遍歷整條軌跡,生成關(guān)于當(dāng)前軌跡的虛假軌跡組。最后將學(xué)習(xí)到的知識(shí)更新到語(yǔ)義本體庫(kù)中,作為新的相似匿名實(shí)例,從而增強(qiáng)軌跡匿名的語(yǔ)義性。如算法1所示。
算法1基于k-匿名聚類的軌跡查詢事件服務(wù)
輸入:當(dāng)前查詢軌跡Tq,軌跡位置節(jié)點(diǎn)V(Tq),參數(shù)k表示k條軌跡,參數(shù)θ表示相似權(quán)重,Tont表示E-Ontology
輸出: 匿名軌跡組Tp
步驟:
1. Initθ=0.5,V(Tq),Vi,Tont,i=0;
2. OntModelTont=ReasonerFactory.CreateReasoner()
//通過Jena推理引擎獲取E-Ontology實(shí)體
3. For EachV(Tq)
Vi++={V(Tq)}
//通過參數(shù)Vi進(jìn)行增量存儲(chǔ)
//當(dāng)前軌跡位置節(jié)點(diǎn)V(Tq)
Rsim=calculating(Vi,Tont,θ)
//計(jì)算當(dāng)前查詢軌跡片段
//與E-Ontology形成的k階矩陣
min=MinDistance(Rsim)
//取輸入軌跡點(diǎn)距離最小間隔的軌跡
Vij=?,j=0
//初始化k階矩陣的列j
For |Rsim|<=kandj Vij+=max(Tont.Reasoner(Vi),min) //通過Jena的Reasoner API獲取相似度最大的軌跡 Tp[]=Vij //最終結(jié)果存入Tp[] End For End For ReturnTp 算法1中,步驟1有關(guān)參數(shù)選取:給定當(dāng)前查詢軌跡Tq,選取相似權(quán)重θ=0.5,主要是平衡結(jié)構(gòu)相似度和內(nèi)容關(guān)聯(lián)度的權(quán)重,參數(shù)k表示從當(dāng)前區(qū)域內(nèi)獲取的k條軌跡,V(Tq)表示軌跡的位置節(jié)點(diǎn)編碼,初始化為0,通過參數(shù)Vi進(jìn)行增量存儲(chǔ),并可以調(diào)用Rsim求出k階相似度矩陣,時(shí)間復(fù)雜度為O(n2);步驟2通過Jena推理引擎生成E-Ontology模型庫(kù);步驟3先計(jì)算當(dāng)前查詢軌跡片段與E-Ontology形成的k階矩陣,然后實(shí)時(shí)泛化當(dāng)前軌跡結(jié)點(diǎn)的k匿名數(shù)據(jù),將相似度最大的k條軌跡存入當(dāng)前匿名組,形成關(guān)于當(dāng)前軌跡的虛假軌跡。算法根據(jù)軌跡片段相似度將當(dāng)前查詢軌跡片段將和E-Ontology的實(shí)體、屬性和實(shí)例相似的軌跡片段進(jìn)行聚類,進(jìn)而擴(kuò)充到整條軌跡。 為了驗(yàn)證本文方法的有效性,考慮經(jīng)典匿名聚類算法NWA[15]和(k,δ)-anonymity[15]在信息損失、近鄰查詢準(zhǔn)確度、執(zhí)行效率三個(gè)方面與本文方法的可比性,由此進(jìn)行實(shí)驗(yàn)對(duì)比分析。實(shí)驗(yàn)數(shù)據(jù)采用Thomas Brinkhoff基于路網(wǎng)的移動(dòng)對(duì)象生成器和和AIS信息服務(wù)平臺(tái)共同合成的上海近岸地區(qū)移動(dòng)對(duì)象的數(shù)據(jù)集生成的網(wǎng)絡(luò),包括查詢范圍δ、對(duì)象數(shù)、軌跡點(diǎn)和數(shù)據(jù)量,如圖2所示。 圖2 系統(tǒng)中生成的數(shù)據(jù)集網(wǎng)絡(luò) 實(shí)驗(yàn)環(huán)境在Intel Core 2 Quad 2.4 GHz Windows 10 系統(tǒng)上運(yùn)行,服務(wù)器架構(gòu)在IBM 3650xm 上,采用Linux Asia 3x 版本,系統(tǒng)數(shù)據(jù)庫(kù)為IBM DB2,算法采用Java語(yǔ)言和Jena推理包實(shí)現(xiàn)。考慮算法在隨機(jī)選取軌跡初始節(jié)點(diǎn)會(huì)導(dǎo)致匿名結(jié)果的差別,實(shí)驗(yàn)重復(fù)不少于5次,結(jié)果取平均值。 本次實(shí)驗(yàn)從信息損失、查詢準(zhǔn)確率和執(zhí)行效率三個(gè)方面與不同的k-匿名方法進(jìn)行性能比較,通過實(shí)驗(yàn)討論算法的性能。 (1) 信息損失比較。本文方法構(gòu)成的信息損失來自查詢事件軌跡位置節(jié)點(diǎn)的匿名聚類造成的內(nèi)容泛化和結(jié)構(gòu)隱匿的信息損失。因此,采用用戶錯(cuò)誤訪問子空間軌跡片段數(shù)與當(dāng)前軌跡片段數(shù)之比作為度量軌跡信息損失的標(biāo)準(zhǔn)。 圖3給出了不同方法隨著k值的增加信息損失量的變化,實(shí)驗(yàn)表明:與NWA和(k,δ)-anonymity相比,在k值為8~10時(shí)本文方法降低了15%~20%,因?yàn)楸疚姆椒?gòu)建了基于事件本體的匿名模型,針對(duì)軌跡信息的語(yǔ)義知識(shí)不足進(jìn)行擴(kuò)展改進(jìn),對(duì)輸入軌跡動(dòng)態(tài)判斷,采用Jena推理引擎將當(dāng)前軌跡與歷史軌跡存儲(chǔ)與一個(gè)匿名組保證匿名信息的相對(duì)完整性。 圖3 隨著k值增大,三種方法的信息損失率 (2) 查詢精準(zhǔn)率。在使軌跡數(shù)據(jù)匿名隱私保護(hù)的同時(shí),又保證用戶查詢的精準(zhǔn)性。以基于k-匿名查詢的軌跡聚類方法生成的匿名組Tp與當(dāng)前真實(shí)查詢軌跡Tq為中心進(jìn)行近鄰查詢,查詢內(nèi)容為用戶提交的LBS軌跡位置節(jié)點(diǎn)請(qǐng)求;Tp和Tq為結(jié)果集數(shù)量,使用查詢準(zhǔn)確率POI來衡量服務(wù)質(zhì)量,其計(jì)算方式如下所示: 如圖4所示,隨著k值的增加,在半徑δ為100~600 m的范圍內(nèi)查詢精準(zhǔn)率保持在65%以上,實(shí)驗(yàn)表明:本文方法通過Jena引擎將當(dāng)前軌跡與E-Ontology匹配,使得在軌跡距離上的劃分粒度更為精細(xì),因此在當(dāng)前匿名軌跡與實(shí)際軌跡的距離較小,誤差在半徑范圍較大時(shí)保持平衡。 圖4 不同距離下近鄰查詢精準(zhǔn)率 (3) 執(zhí)行效率。為考察本文算法的執(zhí)行效率,采用運(yùn)行時(shí)間作為執(zhí)行效率的度量標(biāo)準(zhǔn)。圖5給出了隨著k的增大,相對(duì)于NWA和(k,δ)-anonymity,本文方法的運(yùn)行時(shí)間相對(duì)減少并且平均低于20秒。實(shí)驗(yàn)表明:本文對(duì)內(nèi)容和結(jié)構(gòu)獨(dú)立計(jì)算且只進(jìn)行一次就生成了k階矩陣,而基于事件本體的匿名模型的計(jì)算深度通過Jena API直接調(diào)用,效率較高,因此開銷時(shí)間較小。 圖5 隨著k值增大,執(zhí)行時(shí)間的變化 本文采用OWL形式化表示軌跡數(shù)據(jù)及查詢事件,提出一種連續(xù)查詢事件中基于語(yǔ)義的軌跡k-匿名方法,構(gòu)建事件本體模型,并結(jié)合軌跡片段相似度計(jì)算和Jena推理引擎,提出基于k-匿名查詢的軌跡聚類方法。該方法可以防止攻擊者竊取用戶軌跡數(shù)據(jù),維護(hù)公共安全。然而數(shù)據(jù)規(guī)模擴(kuò)大伴隨著k值的增大,軌跡數(shù)據(jù)的不確定性可能影響推理的準(zhǔn)確性,后續(xù)工作將在原始數(shù)據(jù)采集和提高匿名質(zhì)量及匿名算法方面做深入研究。4 實(shí)驗(yàn)結(jié)果分析
4.1 實(shí)驗(yàn)數(shù)據(jù)
4.2 性能分析
5 結(jié) 語(yǔ)