移动社交网络中的轨迹隐私PTPM保护方法
2021-02-28郑振青毋小省申自浩
郑振青,毋小省,王 辉,刘 琨,申自浩
(河南理工大学 计算机科学与技术学院,河南 焦作 454003)
1 概 述
近年来,随着智能移动设备和移动应用的快速普及,为基于位置的服务(Location Based Service,LBS)[1,2]奠定了基础.如今LBS服务已不仅仅应用于军事,同时也广泛应用于商业用户.用户使用移动设备(智能手机,平板等)通过位置服务查询并获取兴趣点(points of interests,POIs),在用户使用位置服务带来便利的同时,大量的位置信息在个人不知情的情况下被第三方收集、分析并加以利用.由于用户移动轨迹中包含用户众多隐私信息,恶意攻击者通过非法途径获取用户的位置信息,进而推测出各类感兴趣的事件和位置,造成用户位置隐私泄露[3,4].因此在位置隐私保护中用户轨迹隐私安全对用户来说尤为重要.
为了保护轨迹隐私数据安全,在轨迹数据发布前,需使用适当的隐私保护技术对轨迹数据进行预处理[5].目前的轨迹隐私保护技术主要分为泛化法、抑制法和假数据法.1)泛化法,基于k匿名(k-anonymity)的方法是比较主流的泛化法.即对任意一条轨迹,至少需要k-1条其他轨迹被转换成完全相同的匿名轨迹来构成一个匿名轨迹集合[6],从而使恶意攻击者无法对一个区域内的k个匿名用户进行区分.该种方法在轨迹隐私保护中使用广泛,并延伸出了不同的改进方法.2)抑制法,该方法在轨迹数据信息发布过程中,对敏感数据限制发布或经过转换处理后发布,降低用户数据的敏感性.3)假数据法,该方法生成用户位置信息假数据并和真实数据进行混合,以此来降低用户数据泄露的概率.但这些方法也有局限性,k匿名在连续位置查询中安全性降低.抑制法抑制的点一旦过多,会影响发布数据的可用性,导致服务质量降低.假数据法易造成服务质量下降,查询的准确度会受到一定的影响.另外恶意攻击者利用已获得的多个匿名数据,并根据掌握的相关背景知识有很大概率推测出移动用户的隐私信息,攻击者根据用户发起的连续查询位置信息,收集这些位置信息再重构出用户轨迹,从而推测出用户的工作地居住地甚至用户的行为模式等敏感信息[7].
针对上述问题,本文提出一种个性化轨迹隐私保护方法(Personalized trajectory privacy protection method,PTPM),主要贡献如下:
1)在用户移动端增加缓存区,缓存每次查询得到的候选结果集,供用户后续查询使用.
2)在用户和LBS服务器之间部署安全中心(Security Center,SC)和多匿名器,安全中心对用户进行签名注册,并调配公私钥对位置信息进行安全验证.另外SC对同一用户查询信息进行拆分并发送给多匿名器,多匿名器对用户信息进行随机并发式k匿名,在安全性上有很大提升.
3)在LBS服务器端加入前缀树,使用基于分簇数据融合隐私保护算法(Cluster-based Private Data Aggregation,CPDA)对数据库位置信息进行加密保护,将位置信息经过加密处理生成密文,密文具有不可阅读性,防止攻击者非法入侵数据库.并使用最优二叉树算法查询用户POIs,提升用户位置查询效率.
2 相关工作
轨迹隐私保护方法中k匿名方法广泛使用[8,9],但是k匿名也存在如下缺点:1)在人群稀疏地区很难寻找k-1个匿名用户来构建k匿名;2)k匿名方法一般只适用于查询小范围匿名域,若进行连续查询,攻击者通过分析多个连续的匿名区域中重复出现的用户,从而可以锁定并重构用户的真实轨迹.
针对轨迹隐私中使用的匿名算法,国内外许多学者在传统k匿名基础上进行改进或创新,针对k匿名在连续查询中的缺陷,文献[10]提出了一种面向连续查询的隐私保护方法.用户与用户之间通过移动设备附带的无线功能进行短距离传输,从邻近用户的缓存信息中收集需要的信息,然后通过发布假的查询信息与用户的真实位置信息进行混淆.但是该方法在人群稀少地方增加了系统查询时间.文献[11]通过打乱路径轨迹的顺序性,然后在匿名区域进行匿名并随机发送不同的轨迹给用户,使恶意攻击者无法重构用户的真实轨迹,该方法可有效抵御恶意攻击者的连续查询攻击.文献[12]在基于位置服务查询过程中,提出一种关于k匿名防止位置注入攻击的隐私保护方法,它结合用户的行为习惯建立可信的k匿名机制,使恶意攻击者获取真实用户的概率仅为1/k.为了提升用户的轨迹隐私安全性,文献[13]针对用户轨迹隐私保护方法Silent Cascade,提出一种新的轨迹隐私度量方法,文中引入了带权无向图,用来描述用户的运动轨迹,并从信息熵的角度计算用户的轨迹隐私水平.
基于点对点(peer to peer,P2P)的结构和基于可信第三方(fully-trusted third party,TTP)的中心服务器结构.他们大都有类似的模型对用户的轨迹隐私进行保护,模型组成主要有3部分:用户、第三方可信匿名器和LBS服务器.P2P结构中用户与用户之间相互可信,且用户之间相互配合形成匿名域后再向LBS服务器发送位置请求[14],该种方法中的点对点用户并不能随时保证每个地点有足够的用户来进行信息交互,而且匿名器负责处理所有用户的位置信息和查询内容,如果匿名器出现故障或被攻击者攻破,对用户轨迹隐私将会带来严重的安全威胁.并且单个匿名器容易造成性能瓶颈.针对该种问题,文献[15]提出了一种多匿名器保护方法,通过在用户和LBS服务器之间部署多个匿名器,在连续查询过程中,用户分别随机选择不同的匿名器进行匿名.
轨迹隐私保护问题可以分为连续查询中的轨迹隐私保护和数据发布中的轨迹隐私保护[16,17].多数文献对轨迹隐私的保护采取的措施大都是针对数据传输过程中的保护,LBS是保存所有位置信息发布的终端设备,一旦被攻击者攻破将泄露大量的位置隐私信息.为了防止攻击者通过某些途径锁定LBS服务器中用户的位置信息,在PTPM的LBS服务器端对位置信息使用CPDA进行加密保护,当需要查询位置信息时通过SC调配公私钥进行解密.
3 系统模型和相关定义
3.1 系统模型
PTPM轨迹隐私保护模型如图1所示.
图1 PTPM轨迹隐私保护模型
PTPM中包括用户,安全中心SC,多匿名器和LBS服务器4类主要的实体模型.其具体的工作流程为:
1)用户:用户携带具有无线定位、无线通信功能的智能移动设备.将用户所在的地理区域划分成一个边长为m的正方形二维平面,并将该区域划分出g×g个网格单元.地理区域从左到右为x轴正方向,从下到上为y轴正方向.用户缓存范围为一个半径为R的圆形区域.用户发送位置查询信息经过SC和多匿名器给LBS服务器,LBS服务器将查询到的位置信息原路反馈给SC,SC规划缓存区并发送给用户,用户接收位置信息使用移动设备缓存该区域,在该区域范围内用户不需要和LBS服务器交互.用户移动设备定时向SC发送缓存区查询,当用户移动到缓存边缘时继续向LBS服务器发送查询.
2)安全中心SC:安全中心为一个可信实体,主要负责存储用户移动端设定的隐私参数,并对位置信息进行加密.安全中心提前接收用户发送的安全验证并保存验证信息.在用户查询位置信息时验证用户提前设定的隐私参数,并为用户颁发数字证书PRu,PRu作为用户的私钥,另外安全中心给LBS服务器发送对应的公钥PKu,公钥与私钥用于对位置信息加密解密.
3)多匿名器:多匿名器主要的作用是形成k匿名区域,以此来保证用户位置信息数据在传输过程中的安全性.匿名器需要获取用户当前的位置信息,以便进行并发k匿名处理,SC将用户查询信息分为M份并随机转发给M个匿名器,每个匿名器对收到的位置信息片段单独进行k匿名.
4)LBS服务器:LBS服务器能及时存储和更新位置服务信息,使用前缀树保存加密的位置信息,并为用户提供各种位置数据服务.LBS服务器根据匿名器发送的匿名域范围,查询该区域内包含的POIs信息.另外LBS服务器根据用户查询兴趣点,在数据库查询对应位置,将查询到的位置信息使用公钥加密经多匿名转发给SC,SC规划缓存区并发送给用户,用户移动端利用私钥PRu对位置信息进行解密并求精.
3.2 相关定义
定义2.匿名缓存区.多匿名器形成的匿名区域由k个查询点构成,用户移动端缓存区需满足以下条件,k-1个用户的查询点必须以查询用户为中心,设定最小半径minr和最大半径maxr.大于minr是为了保证匿名区的面积不能过小,若匿名区面积过小则匿名度不够.小于maxr是为了保证匿名区的k个匿名成员不能过于分散,防止k匿名丧失对真实用户查询点的保护.
定义3.数据缓存隐私度量[18].根据信息熵对数据集的影响,基于缓存的隐私度量可表示为:
(1)
其中|Ecache|为缓存区域,|Eserver|表示向LBS服务器查询的区域,g2表示划分的网格数量,H(e)表示在查询过程中查询结果的不确定性.在用户缓存区获取过程中缓存区单元命中率可以表示为:
|Ecache|=ξ×(|Ecache|+|Eserver|)
(2)
将式(2)代入式(1)为:
(3)
从式(3)中可以看出,隐私度量值λ的大小和缓存区单元命中率ξ成正比,通过提高缓存命中率可以提高隐私度量值,准确获取缓存区位置,可以减少用户连续向LBS服务器查询的次数,保障用户轨迹隐私安全.
定义4.时间截点NT[19].匿名器搜索k-1个用户进行k匿名时,如果在人群稀少的地方,在一定时间截点NT内搜索不到k-1个匿名用户,则产生虚假位置来代替剩下难以搜索到的匿名用户,用来限制匿名器在搜索k-1个匿名用户上花费过多的时间.
定义5.虚假位置速度差spe.虚假位置与真实用户在相同时间段内速度的差异性,在时刻ti-1和ti用户对应的位置为posi-1和posi,相同时刻虚假位置对应的位置分别为fpi-1和fpi,则速度偏差为:
(4)
(5)
用Q表示用户轨迹信息熵,用户到达目的地总共查询的次数为η.log2k为k匿名中最大信息熵,则Q定义为:
(6)
定义7.匿名前缀树.定义tree=(ID,record,children,POI),ID表示用户标识,record为节点轨迹的位置记录,children表示子节点,POI表示用户查询位置兴趣点,前缀树的构造、剪枝、重构等技术为可信第三方隐私保护模块提供了可行性.
定义8.位置轨迹数据集.移动对象Ui的轨迹数据集URi由移动对象连续移动构成的时空序列L1→L2→…→Llengthi(1≤i≤n),其中lengthi为数据集URi的长度,n为轨迹节点,用path来表示用户的有序轨迹集.path={L1,L2,…,Ln}.
4 PTPM轨迹隐私保护方法
PTPM轨迹隐私保护过程,主要分为5个步骤,下面将分别进行介绍.
4.1 SC安全布局
1)用户服务注册:用户首先使用移动设备向SC进行安全注册,根据定义1,用户身份标识ID和私钥一起加密得到用户验证注册信息DSC(IDk).SC接收用户注册信息保存在数据库并向用户发送私钥PRu,同时SC生成公钥PKu发送给LBS服务器.
2)用户查询认证:当用户需要查询POI时需要向SC验证用户注册信息,用户使用私钥PRu对ID进行签名得到SigPRu(ID),SC通过SigPRu(ID)验证用户注册信息DSC(IDk).验证通过后,SC将SigPRu(ID)、用户身份标识ID、以及用户私钥PRu一起进行加密,初步生成用户位置请求消息DSC(IDk‖SigPRu(ID)‖PRu).
3)LBS服务器安全验证:LBS服务器接收到DSC(IDk‖SigPRu(ID)‖PRu)后,使用PKu对请求信息进行验证,验证通过后对位置信息解密,查询求精形成用户POI信息.LBS结合PKu对查询到的位置信息重新加密生成DSC(IDk‖SigPRu(ID)‖PRu‖PKu),将该位置信息经过M个匿名器发送给SC,SC根据用户查询路径,规划缓存区并发送给用户.
4.2 用户移动端缓存查询
用户所在地理区域进行网格划分.用户缓存区定义为:
buffer←((locx1,locy1),(locx2,locy2),Gs,S)
(7)
(colummx,rowy)=([locxi-locx1],[locyi-locy1])
(8)
其中:
(1≤i≤m,locx2-locx1≤
locxi-locx1,locy2-locy1≤locyi-locy1)
(9)
根据定义2,用户查询半径R应满足minr≤R≤maxr,并确定用户端缓存查询应局限在S区域范围内,查询的网格标识区限制在Gs地理区域内,如果能够找到对应的(colummx,rowy)包含缓存区S,且满足:
S≤columnx×rowy≤Gs,
(10)
则直接对候选结果集进行求精,并得到准确的用户缓存区.如果未找到对应的缓存区,对该区域的网格标识区形成查询集LOCh.
LOCh←{(columnx,rowy)}
1≤x≤m,1≤y≤m,1≤h≤σ
(11)
其中σ为移动轨迹缓存区需要缓存的次数.然后执行3.1节的2)生成用户位置请求消息DSC(IDk‖SigPRu(ID)‖PRu).位置查询缓存区最后需经SC重新规划.一旦缓存区不满足式(9),需要重新查询缓存区,根据定义3,分别将缓存区S、DSC(IDk‖SigPRu(ID)‖PRu)分别代入|Ecache|和|Eserver|,并根据式(3)可以判断用户缓存区查询精度.
4.3 多匿名器位置匿名
(12)
通过随机转发机制将DLoc分为M份,每份都附带有用户唯一标识ID、当前位置信息等.随机形成的M份子信息为:{(IDk1,DLoc1),(IDk2,DLoc2),…,(IDkM,DLocM)}.
根据定义6可知当Q越小,匿名度越高隐私保密程度越高.
4.4 LBS服务器位置信息加密与查询
4.4.1 数据库位置信息加密
用户所查询的POI信息以明文的形式保存在LBS数据库中,为了保护LBS数据库的数据安全,使用CPDA算法对数据库中位置信息进行保护.根据定义7,前缀树的节点record用来保存位置信息,叶子节点children用来表示路径拐点位置信息.位置信息经过加密处理生成密文,具有不可阅读性,防止攻击者非法入侵数据库获取位置信息.当用户需要查询位置信息时又可以将密文经过解密处理,还原成明文.
数据在转发前各节点需要对信息进行交换,节点A可表示为:
(13)
(14)
(15)
节点B和C将交换后的数据发给A,节点A构造一个满秩的方程组ψ=G-1F,且:
F=[FA,FB,FC]
(16)
节点A包含所有的x,y,z和FA,FB,FC的值,经过上述公式的计算,得到加密位置数据信息,加密密文为(a+b+c).最后该加密轨迹汇总到数据库等待LBS服务器后续位置信息解密和查询.该算法在保证一定精确度的情况下,阻止外部节点窃取隐私信息.
4.4.2 位置信息查询
为了提高用户POI查询精度和效率,本文引入最优二叉搜索树算法进行搜索位置信息,根据定义8,path={L1,L2,…,Ln},表示有序集path的二叉搜索树利用二叉树的节点来存储有序集中的轨迹节点.在表示Path的二叉搜索树中搜索一个兴趣点POI时返回的结果有两种形式:
1)在二叉搜索树的内节点中找到L=Li;
2)在二叉搜索树的叶节点中确定L∈(Li,Li+1).
设在第1种情形中找到元素L=Li的概率为bi;在第2种情形中确定L∈(Li,Li+1)的概率为ai.其中约定L0=-∞,Ln+1=+∞所以:
ai≥0,0≤i≤n;bj≥0,1≤j≤n;
(17)
(a0,b1,a1,…,bn,an)为轨迹path的存取概率分布.
在表示Path路径的二叉搜索树Tree中,设存储位置兴趣点Li的终点深度为ci;叶节点(Lj,Lj+1)的节点深度为dj则:
(18)
式(18)表示在二叉搜索树Tree中进行一次搜索所需的平均比较次数.P为Tree中的平均路长,一般情况下,不同的二叉搜索树的P是不相同的.
最优二叉搜索树对于有序集Path及其存取概率分布(a0,b1,a1,…,bn,an),在所有轨迹中根据用户提供的兴趣点POI,在所有有序集Path中能找到具有最小平均路长的轨迹.该方法能有效提升LBS服务器查询效率.
LBS服务器查询到对应的用户POI,服务器通过公钥PKu对查询到的位置信息进行区域规划并加密,形成用户移动轨迹预测点UPath:
UPath=DSC(IDk‖QmPRu(ID)‖PRu‖PKu‖Path)
(19)
另外LBS服务器根据UPath查询附近的兴趣点网格集ρGrids并用匿名器公钥PKu进行加密形成候选结果集LOCbuffer:
LOCbuffer←{ρGrids‖PKu}
(20)
4.5 用户获得查询结果
用户查询POIs搜索算法如算法1所示:
算法1.用户查询POIs搜索算法:
输入:{(IDk1,DLoc1),(IDk2,DLoc2),…(IDkM,DLocM)}
输出:用户兴趣点POIs
1.for eachni≤M,{(IDk1,DLoc1),(IDk2,DLoc2),…(IDkM,DLocM)}∈DLoc;
2.for(S1,S2,…,SM)to(A1,A2,…,AM);
3.definitionPath=(L1,L2,…,Ln);
4.if(a0,b2,a1…,bn,an)为轨迹Path的存取概率分布;
5.search nodeUPathand searchLOCbuffer;
6.for update buffer to SC;
7.end forLOCh←{(colummx,rowy)};
8.forUPathandLOCbufferto user;
9.user for thePRutoUPath;
10.Orientationpathfor user;
11.user getbuffer;
12.ifbufferbeyond equation(9)return to 1.
5 安全性分析
本节主要分析PTPM针对强攻击者和弱攻击者的抵御能力,并将多匿名器和LBS服务器视为强攻击者,窃听者视为弱攻击者[20,21].
5.1 强攻击模型与弱攻击模型
1)强攻击者攻击模型
在PTPM中,强攻击者可以从获取的部分特定信息中推测出用户的其他信息,在PTPM中多匿名器、LBS服务器可视为强攻击者,如LBS数据库因为某种原因将用户敏感信息泄露给攻击者;匿名器在用户位置信息转发过程中对用户敏感信息进行分析,造成用户位置信息泄露等情况.
2)弱攻击者攻击模型
在弱攻击者攻击模型中,恶意攻击者对用户个人信息掌握有限.在PTPM模型中弱攻击通过窃听用户查询信息,并利用相关背景知识对用户位置信息进行分析,进而推断获取用户的敏感信息.
5.2 抵御强攻击者的连续查询攻击
用户在第一次查询位置信息时因为用户端没有缓存区,所以用户需要发送查询,查询信息通过SC安全验证后,利用多匿名器匿名再转发给LBS服务器进行查询,LBS服务器收到的查询匿名域中至少包含k个用户,强攻击者能准确定位指定用户的概率只有1/k.
在用户轨迹的后续查询过程中,用户可以通过查询缓存区直接得到查询结果,此时用户不需要与LBS服务器和多匿名器进行交互,因此在此期间强攻击者将不能获得用户任何信息.所以PTPM能抵御强攻击者的连续查询攻击.
5.3 抵御匿名器的攻击
多匿名器主要负责对用户位置信息进行匿名和转发,在PTPM方法中用户位置信息被随机分割为多份,并随机通过多匿名器进行转发.单个匿名器试图推断用户位置信息时,由于仅仅获取的是部分位置信息片段,所以无法获取用户准确位置信息.即使多个匿名器共谋,由于用户位置信息片段中含有标识ID和位置加密措施,没有用户的私钥是无法获取用户当前位置信息的.
5.4 抵御LBS服务器的攻击
LBS服务器管理用户的查询数据,在PTPM方法中用户可以直接从缓存区获取位置信息,在该过程中LBS服务器将无法获取用户的位置信息.另外在LBS数据库中通过CPDA算法对位置信息进行加密处理,LBS服务器需要公私钥配对才能查询用户的兴趣点,在用户多次查询过程中由于匿名区的存在,LBS服务器很难将用户多次的查询结果进行匹配获取用户的轨迹信息.
5.5 抵御窃听者的攻击
用户发送位置查询信息通过SC加密后发送给匿名器,包括用户签名SigPRu(ID)、加密位置信息DSC(IDk‖SigPRu(ID)‖PRu)以及SC发布的安全证书等,这些信息中,由于私钥掌握在用户手中,且弱攻击者掌握用户信息有限,所以弱攻击者无法得到用户的精确位置.在多匿名器中位置信息被分为多份,弱攻击者通过某些途径得到部分片段也不能恢复用户的精确位置信息.在LBS服务器端使用前缀树将位置信息加密为密文,并利用最优二叉树算法进行查询,整个过程都需要公私钥配对才能解密位置信息.弱攻击者没有对应公钥也将无法获得用户的查询信息.
6 实验与结果分析
6.1 实验数据及环境
本部分通过实验验证PTPM的实用性.本次实验中的数据集来自Thomas Brinkhoff移动用户轨迹生成器,使用德国奥尔登堡市交通网络图.实验随机生成10000个移动对象.实验选取JERRY的移动轨迹作为实验对象.多匿名器数量M=10~50个,表1为实验参数.实验通过Java编程实现,搭载Eclipse平台.实验环境为:Intel(R)Core(TM)i7-9750H CPU @2.6GHz,8.00GB内存,Microsoft Windows 10操作系统.
表1 实验参数设置
实验中移动交通网络图上生成的移动用户分布情况如图2所示.
图2 实验对象JERRY移动轨迹
实验中选取移动用户JERRY来测试安全模型的系统性能,包括缓存区的测试和安全性测试.图2(a)、图2(b)、图2(c)分别为JERRY 3个时刻的位置查询情况.
6.2 实验参数变化对PTPM的影响
本节在实验测试过程中改变缓存区半径R、匿名度K、匿名器数量M和兴趣点POIs等参数,分析对PTPM性能的影响.
如图3所示,在R=1,POIs=10000时,通过改变匿名度K和匿名器数量M测试对PTPM性能的影响.由图3可知系统时间开销和通信开销都随着M和K值的增大而增大.M越大表示匿名器转发的子信息越多,需要更多的匿名器转发更多的数据,LBS服务器接收和查询位置所需的时间和通信量就越大.另外K值越大匿名域就越大,匿名域内包含的匿名用户就越多,相应的用户通信量变大,系统需要更多的时间来处理用户发送的位置信息.因此M或K越大,系统所需的时间开销和通信开销就越大.
图3 匿名度及匿名器数量对PTPM性能的影响
如图4所示,在M=20,POIs=10000时,通过改变缓存区半径R和匿名度K测试对PTPM性能的影响.由图4可知系统时间开销和通信开销都随着R值和K值的增大而增大.因为R越大,用户缓存区的用户数量就越多,相应的发送位置查询信息就越多,所以LBS服务器需要查询的POIs就越多,系统需要更多的时间来处理和求精位置数据,相应的时间和通信开销就越大.另外K值越大匿名域就越大,匿名域内包含的匿名用户就越多,相应的用户通信量变大,系统需要更多的时间来处理用户发送的位置信息.因此,R值或K值越大,系统所需的时间开销和通信开销就越大.
图4 缓存区半径及匿名度对PTPM性能的影响
如图5所示,在R=1,M=20时,通过改变兴趣点POIs值和匿名度K值来测试对PTPM性能的影响.由图5可知系统时间开销和通信开销都随着POIs值和K值的增大而增大.在用户查询范围内发送给LBS服务器的POIs越多,LBS服务器需要花费更多的时间来求精用户的查询兴趣点,因此系统时间开销越大.另外POIs越多在系统传输数据过程中,从LBS服务器到匿名器再到用户相应的通信开销也越大.另外K值越大匿名域就越大,匿名域内包含的匿名用户就越多,相应的用户通信量变大,系统需要更多的时间来处理用户发送的位置信息.因此,POIs或K越大,系统所需的时间开销和通信开销就越大.
图5 POIs及匿名度对PTPM性能的影响
6.3 LBS服务器安全性和查询效率对比
由于LBS服务器中引入了前缀树的概念,所以这里测试PTPM中的服务器与传统LBS服务器进行对比,通过更改测试数据中的查询点数量n,在仅使用一个匿名器的情况下,对比测试服务器查询用户查询点所花费的系统时间.根据图6(a)可知该PTPM中的服务器查询效率是要优于传统服务器的,主要原因是因为PTPM中LBS服务器利用最优二叉树算法能最快且精确的找到最短的路径轨迹.
通过对PTPM中LBS服务器和传统LBS服务器进行位置查询来测试保护程度,测试过程中人为模拟强攻击者攻击模型.在仅使用一个匿名器的情况下更改用户查询点数量n,测试使用同一条轨迹路径.由图6(b)分析,由于PTPM中LBS服务器包含公钥PKu,并且LBS数据库对位置信息进行CPDA加密保护,所以PTPM中LBS服务器安全性要优于传统LBS服务器.
图6 LBS服务器查询效率与安全性对比
6.4 多匿名器与单匿名器性能对比
如图7所示,实验使用同一组数据测试多匿名器和单匿名器在转发数据时的系统时间开销对比,使用同一个用户请求发送同样的兴趣点,测试数据经过多次测试取平均值.测试过程改变匿名度K来对比系统响应速度.
图7 多匿名器和单匿名器性能对比
测试数据在测试之初不使用SC进行安全加密,在多匿名器的性能测试中,M个匿名器同时处理用户发送的位置信息,并且多匿名器转发的是用户分割的子信息,在每个匿名器中单独对子信息片段进行K匿名和转发.相较于多匿名器,单个匿名器接收的是用户发送的整个数据信息,在数据转发过程中需要进行K匿名,信息转发灵活性不足易造成性能瓶颈,特别是当转发信息较多时容易产生延迟和拥堵.所以该PTPM中的多匿名器相较于传统的单匿名器在数据转发效率上有较大提升.
7 结束语
在轨迹隐私保护中,本文提出了一种轨迹隐私保护方法PTPM,通过在用户移动端增加缓存区来减少和LBS服务器的信息交互,降低用户位置隐私暴露的风险,同时提升了用户位置查询效率.在用户和LBS服务器之间布置安全中心SC来获取用户的验证信息,并产生公钥和私钥,通过配对来解密用户的位置请求信息.安全性分析可知PTPM可有效阻止弱攻击者监听用户隐私信息.另外多匿名器通过k匿名对用户位置信息进行保护的同时,解决了单匿名器存在的安全隐患和性能不足问题.由于多匿名器对用户进行并发式k匿名,能有效抵制匿名器、服务器监听和窃听者的攻击.LBS服务器中引入前缀树的概念,使用CPDA算法对数据库位置信息进行明文加密,并通过最优二叉树算法查询位置信息.通过实验验证,该PTPM能有效提升用户位置查询效率并增强了用户位置隐私的保护程度.由于该PTPM中增加了SC和多个匿名器,增加了系统维护难度,因此下一步的做法是优化安全算法,将安全中心算法移植到匿名器中.