本发明属于基于位置服务用户位置隐私保护领域,涉及一种基于经纬网格的路网环境下用户位置隐私保护方法。
背景技术:
随着4g技术迅速发展,移动终端已经完全渗入到人们生活的方方面。定位技术的成熟,让基于位置的服务快速崛起。目前基于位置服务可谓是移动用户的必需品。例如移动用户用自己的手机查看离自己最近的餐馆、离自己最近的旅馆等。然而,虽然位置服务给移动用户提供了较大的便利,但是其可能威胁到用户的隐私。攻击者很可能窜通位置服务器提供商窃取查询用户的隐私信息和查询日志。攻击者联合位置服务提供商得到查询用户的位置信息和查询信息等隐私,就可推断去用户的隐私信息。例如移动用户想位置服务器提供查询离自己当前位置最近眼科医院时,攻击联合位置服务提供商就可以获取到该查询用户的具体位置和推断出该查询者可能患有眼科疾病。
最近几年,关于基于位置服务的用户位置信息保护的研究已经取得了一定的成果。大多数算法都是基于k-匿名算法和spacetwist算法。gruteserm等提出k-匿名算法采用第三方匿名服务器体系架构。其主要思想是:向lbs发起请求时,向其请求信息中添加k-1个其它冗余信息,以至于让lbs无法判别出用户的真实请求,从而达到隐私保护效果。第三方匿名服务架构中,原有的保护算法是基于第三方匿名服务器是完全可信的情况下,把移动用户的真实数据交个匿名服务器进行匿名处理,但在实际情况中,匿名服务器其实是不完全可信的。贾金营等提出空间网格和经纬网格方法,它们假设匿名服务器是不完全可信的,移动用户需要先简单的匿名处理一下自己的真实位置,然后在发给匿名服务器进行二次匿名,最后让匿名服务器向lbs发起请求。但是该两种算法并没有在匿名服务器端对用户兴趣点进行保护,从而可能间接泄露用户的位置信息。在兴趣点匿名过程中,k-匿名算法采用随机添加k-1个冗余信息,然而该方法不适用于移动用户的连续查询。
spacetwist算法与k-匿名相比,spcetwist算法只适用于位置隐私保护。spacetwist方案通过选取特殊虚假位置代替用户的真实位置向位置服务商发起查询请求,其通常不需要加入可信第三方服务器。其主要思想是:用户在真实位置附近随机获取一个锚点,用该锚点向位置服务提供商发起增量查询,直到返回的数据覆盖到用户需求范围即可。该放在用户较少的情况下可能出现位置保护失败的情况,针对该问题胡德敏等提出spacetwist和k-匿名算法相结合的方法,在用户查询前,先向lbs请求所在区域的用户数量,从而来形成k-匿名,然后在向lbs发起请求。该方法在lbs返回给用户的信息为虚假信息时,会出现位置保护失败的现象。
薛姣等设计基于路网的保护方法,采用匿名树和最小环来处理基于路网用户隐私保护问题。但该方法需要计算最小环和匿名树,有加大的计算开销,不适用于实际情况。周长利等采用客服端-服务器架构,提供了移动环境下位置意思保护方法。该算法通过计算自己即将到达的路端,然后用路端发起位置服务请求,该方法虽然保护用户的当前位置,但泄露了用户即将到达的位置,在位置保护中存在一定的隐患。
技术实现要素:
有鉴于此,本发明的目的在于提供一种基于经纬网格的路网环境下用户位置隐私保护方法,通过移动端兴趣点缓冲池来解决用户连续查询时暴露兴趣点的问题,结合经纬网格与路网信息设计出一种增量查询算法。
为达到上述目的,本发明提供如下技术方案:
一种基于经纬网格的路网环境下用户位置隐私保护方法,该方法包括以下步骤,
s1:设置用户匿名参数集;
s2:求解用户匿名请求集;
s3:根据隐私参数生成匿名区;
s4:向lbs发起增量查询;
s5:查询结束,数据返回移动端过滤展示。
进一步,在步骤s1中,所述设置用户匿名参数集为:
qs={id,amin,ku,kp,lr,poi,kr}
其中id为用户的唯一请求标识,amin表示用户设置的最小匿名区即位置服务提供商能获知的用户所在的最小范围,ku为匿名区中最少用户数量,kp为用户兴趣点匿名集poig{p1,p2,...,pm}中包含不同兴趣点的最少数量,lr为匿名区包含最少道路条数,kr表示用户期望返回的兴趣点的数量,poi为用户的兴趣点。
进一步,所述步骤s2具体为:
s201:确定用户所在的经纬网格,通过定位系统获取用户所在的经纬信息,作为用户的经纬网格id(x,y),其中,x为精确到分的经度,y为精确到分的维度;
s202:根据用户设置的兴趣点匿名参数,从兴趣点缓冲池中选择重复的兴趣点组成兴趣点匿名集,求得兴趣点匿名集poig;
s203:求解得到用户匿名请求集
qu={id,id(x,y),amin,ku,lr,poig{p1,p2,...,pm},kr}
其中,id为用户的唯一请求标识,amin表示用户设置的最小匿名区即位置服务提供商能获知的用户所在的最小范围,ku为匿名区中最少用户数量,lr为匿名区包含最少道路条数,lr表示用户期望返回的兴趣点的数量,id(x,y)为用户所在的经纬网格,poig{p1,p2,...,pm}为兴趣点匿名集。
进一步,所述步骤s3具体为:
使用匿名生成算法(anonymousregiongenerationalgorithm,arga)
arga(id(x,y),amin,ku,lr)
生成满足用户匿名需求的匿名区kl-ars。
其中id(x,y)为用户的经纬网格,x为精确到分的经度,y为精确到分的维度,amin表示用户设置的最小匿名区即位置服务提供商能获知的用户所在的最小范围,ku为匿名区中最少用户数量,lr为匿名区包含最少道路条数;
所述arga算法具体为:
首先,判断用户所在的网格中的用户的数量和道路条数是否满足用户隐私需求,若用户所在的网格中用户的数量和道路条数满足用户隐私需求,则以用户所在的网络作为初始的匿名区ars;
否则先初始一个匿名区ars,把用户所在网格添加到匿名区ars中,然后随机确定一个初始添加方向,顺时针方向顺序添加匿名区ars相邻网格,在添加相邻网格时,依次添加匿名区ars在该方向上的所有相邻经纬网格,直到满足用户需求或添加次数达到匿名区ars在这个方向上的厚度即匿名区ars在这个方向上经纬网格的数量,若一次顺时针添加结束时还没有满足用户的匿名需求,则循环此步,一直到匿名区ars满足用户匿名配置要求;
然后,以ars作外接圆kl-ars(o,r)作为扩大的kl-ars使其不小于用户设置的最小匿名区。
进一步,所述步骤s4具体为:
当获得满足用户匿名要求的匿名区kl-ars后,首先使用knn增量查询算法向位置服务器提供商发起增量查询;
所述增量查询算法具体为:以kl-ars作为用户的真实位置向lbs发起qa请求,请求公式为:
qa={kl-asr,poig{p1,p2,...,pm},kr}
其中ll-asr为最小匿名区,poig{p1,p2,...,pm}为用户兴趣点匿名集,kr表示用户期望返回的兴趣点的数量;
然后接收lbs返回的详细数据,计算兴趣点匿名集组中各个兴趣点的数量;当兴趣点匿名集组中最少兴趣点数量的个数小于kr时,通知位置服务器提供商继续增量查询;当兴趣点匿名集组中所有的兴趣点的数量均不小于kr时,通知位置服务提供商停止增量查询并结束这次查询。
进一步,所述步骤s5具体为:
匿名服务器把服务商返回的兴趣点的信息集返回给移动端,移动端从返回信息集中提取出用户兴趣点相关的信息,丢弃冗余信息,从而进行展示。
本发明的有益效果在于:本发明解决了采用中心服务器架构中匿名服务非可信的问题,解决了路网环境下经纬网格方法不适用的问题,弥补了原有经纬网格方法在匿名区生成时间接泄露用户位置隐私的问题,弥补了移动端间接性连续查询时兴趣隐私会泄露的问题。本发明结合经纬网格方法解决匿名服务器非可行问题,采用兴趣点缓冲池解决处理用户连续查询时兴趣点泄露问题,通过随机圆环算法解决匿名区生成时位置隐私安全性问题。本发明提高了移动用户在连续查询以及特殊路网环境下发起位置服务器请求的隐私安全性。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为本发明的示意图;
图2为本发明算法实施系统结构图。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
如图2所示,本发明的实施包括三个部分:移动终端、匿名服务器和位置服务器提供商。
移动终端通过定位系统获取经纬度后确定用户的所属的经纬网格id,配置好移动用户匿名参数,在移动端生成匿名用户兴趣点集,向匿名服务器发起查询请求。匿名服务器收到移动终端的查询请求后为移动用户生成匿名请求集,代替用户向lbs发起增量查询,然后把查询到的信息返回给移动终端。最后移动终端过滤掉无用的新区兴趣信息。下面通过假设一个移动用户发起查询距离自身最近的kr个眼科医院的位置服务为例来针对本发明进行具体实施说明:
移动终端由三个模块组成,第一模块为定位模块,该模块通过gps或者移动基站定位系统获取到该请求用户所在的经纬度,通过取经纬度的精度到分作为用户所在的经纬网格id(x,y)在发起请求时使用。用户在发起查询前需要根据自己对隐私保护程度设置对应的匿名参数集。每个参数越大意味着对隐私保护需求越高。第二模块是缓冲池模块,该模块主要用户存储用户查询过的兴趣点信息,用于兴趣点k-匿名的形成,该模块中存放了用户近期所查询过的兴趣点。请求时先查看眼科医院这个兴趣点是否存在于缓存数组前kp的元素中,如果存在则直接用缓存的前kp个兴趣点形成兴趣点匿名集,否则在缓存兴趣点集中随机选取kp-1个兴趣点,与当前查询兴趣点形成匿名集piog,把所选的兴趣点移动到缓存池的最前面备下次查询使用。然后组装用户设置的匿名参数以及兴趣点匿名形成请求集qu。通信模块可以采用thrift框架实现,用于和匿名服务器的通信。移动端有两种通信情况:一是当移动端经纬id发生变化时需要向匿名服务器发送通知信息info(idpre,idcur),idpre表示上次所属的经网格,idcur表示用户当前所属的经网格;二是用户发起的查询请求,请求集形成后,通信模块向匿名服务器发起请求并等待其返回结果。当匿名服务器返回查询的详细结果后,移动端过滤掉非用户真实兴趣点的信息,然后展示。
匿名服务器部分由三个模块组成:存储模块、匿名模块和通信模块。
匿名服务器有自己的管辖范围,如基站一样,管辖特定区域的用户请求。匿名服务器用经纬度精确到分的精确度划分所管辖区域,并用一个位图来表示对应的网格id,存放到存储模块中。位图中的键值对应的是该经纬网格中用户的数量和道路条数。道路条数油匿名服务器拖过lbs获取到其所管辖区域路网信息,并以已经划分好的网格区中来统计所拥有的道路数量。
匿名模块用于生成满足用户匿名度匿名请求集qa。
ⅰ.采用arga生成匿名区:首先把id(x,y)添加到初始匿名区ars中,ars为一个动态数组,其次判断id(x,y)经纬网格中移动用户的数量不小于ku,同时道路条数是否不小于lr,不满足则执行一下步骤:
步骤一:随机确定一个初始添加方向,顺时针方向顺序添加ars相邻经纬网格。在添加相邻网格时,依次添加ars在该方向上的所有相邻经纬网格,直到ars中移动用户的数量不小于ku同时道路条数不小于lr。
步骤二:判断ars中是否移动用户数量不小于ku,同时道路条数不小于lr,否,则跳到步骤一往下执行。是,则以ars的外接圆作为kl-ars(o,r),扩大kl-ars半径使其面积不小于用户给定的amin。
ⅱ.用kl-ars形成请求匿名集qa。
匿名服务器通信模块为thrift服务端,用于接受移动终经纬网格的更新、兴趣查询请求和向位置服务商发起增量查询。当接收到用户位置更新请求info(idpre,idcur)时,对网格id为idpre网格做移动用户人数减一操作,对idcur网格则做加一操作。当匿名请求集生成后,则向位置服务器发起增量查询。用一个位图count来统计每个兴趣的数量。如图1所示,具体步骤如下:
1.向位置服务提供商发起增量查询;
2.从位置服务提供商提出部分数据;
3.统计已经获取到各个兴趣点的数量;
4.选取count中最小的值,判断count是否大于,大于,则停止增量查询;否则,跳到步骤2继续执行;
5.把获取到的详细信息返回给请求端。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。