CN110866271A - 一种基于Android平台的位置隐私保护方法及系统 - Google Patents
一种基于Android平台的位置隐私保护方法及系统 Download PDFInfo
- Publication number
- CN110866271A CN110866271A CN201911007067.7A CN201911007067A CN110866271A CN 110866271 A CN110866271 A CN 110866271A CN 201911007067 A CN201911007067 A CN 201911007067A CN 110866271 A CN110866271 A CN 110866271A
- Authority
- CN
- China
- Prior art keywords
- false
- longitude
- latitude
- location
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000002441 reversible effect Effects 0.000 claims abstract description 36
- 238000004088 simulation Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 14
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 8
- 241000282414 Homo sapiens Species 0.000 claims description 7
- 230000006855 networking Effects 0.000 claims description 7
- 239000000779 smoke Substances 0.000 claims description 6
- 238000011161 development Methods 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
本发明属于位置隐私保护和Android应用开发技术领域,更具体地,涉及一种基于Android平台的位置隐私保护方法及系统。该方法包括:S1.生成虚假位置:首先,通过现有的地图软件获取当前位置下的真实位置信息;然后,计算经纬线之间的距离值;最后,利用Java的随机数生成函数随机生成两个随机数,即生成的虚假位置;S2.判断位置的合理性:首先,对生成的虚假位置进行逆地理编码,获取虚假位置的具体位置信息;然后,判断虚假位置的地址是否合理,如果不合理,则重复步骤S1至步骤S2;S3.位置替换,将生成的虚假位置替换为当前位置。本发明以一种操作简单,对用户友好,而且不影响用户对提供位置服务的应用的使用的方法实现在Android平台上的位置隐私保护。
Description
技术领域
本发明属于位置隐私保护和Android应用开发技术领域,更具体地,涉及一种基于Android平台的位置隐私保护方法及系统。
背景技术
位置隐私保护算法通常是令位置服务提供者以及攻击者无法简单获得用户真实位置相关信息的隐私保护方法。位置服务通常需要六个角色的参与:用户、位置服务提供者、通信网络、代理服务器、用户社区和第三方。当前对于位置隐私保护的研究主要集中于用户向位置服务提供商提交位置和服务查询的阶段。
目前所知的隐私模型有:k-匿名、置信边界及个人化隐私等。而用于位置隐私保护的技术大致可以分为三类:位置模糊、身份隐藏以及身份加密。位置模糊类方法通过使用模糊的位置来替代精确的位置即降低用户位置信息准确度以达到隐私保护的目的,此类方法使用的关键技术有虚假位置和模糊空间等;身份隐藏类方法通过一定的技术方法将用户的身份信息隐藏起来,既保留了用户的准确位置信息,又保证了位置服务的质量,此类方法使用的关键技术有匿名、假名和混合区等;信息加密类方法通过在位置使用过程中隐藏用户隐私,使得攻击者在得到用户的敏感数据后,也无法破解出原有的真实信息,此类方法的关键技术有加密解密和属性基加密等。
在将位置隐私保护方法应用于Android平台方面的研究较少,在先前的研究中,较为常见的是利用Xposed框架。在已经获取根权限的Android系统设备中安装Xposed框架,通过Xposed框架中的hook模块拦截位置信息,拦截之后用算法生成一些假地址或者模糊区域,让申请地址权限的智能设备应用显示出的地址是经过伪装的地址。还有与Xposed框架有着相近功能的Virtual Xposed框架。
当前技术中,有的在已经获取根权限的Android系统设备中安装Xposed框架,通过Xposed框架中的hook模块拦截位置信息,接着使用k-匿名方法,将真实位置替换为一个模糊区域,从而将位置隐私保护实现于Android平台上。该方案虽然可以达到位置隐私保护的效果,但在实际的实现中较为繁琐,对用户并不友好。在实际应用中,在Android平台上更改用户的真实位置时,无法将位置设置成一个范围,只能设置成一个坐标点,所以无法使用k-匿名技术,只能生成单一的虚假位置进行位置隐私保护。同样的道理,其他技术在Android平台上也并不适用,甚至在耗费更长时间的同时还得不到较好的位置隐私保护效果。与此同时,这些位置保护方法并没有考虑到虚假位置的合理性,当生成的虚假位置不合理时,很容易被攻击者识破,达不到位置保护的目的。Xposed框架要求用户必须获得根权限,因为目前较为通用的Android系统智能设备中,并不是所有的设备都允许用户获取根权限,所以这一方法的实用性并不高。虽然与Xposed框架有着相近功能的Virtual Xposed框架允许用户不获取根权限,但是这一框架出现的时间较短,并且由于没有获取根权限,部分功能受限,所以目前并无成功修改真实位置的模块出现。
发明内容
本发明为克服上述现有技术中的缺陷,提供一种基于Android平台的位置隐私保护方法,实现位置隐私保护的目的。
为解决上述技术问题,本发明采用的技术方案是:一种基于Android平台的位置隐私保护方法,包括以下步骤,
S1.生成虚假位置:首先,通过现有的地图软件获取当前位置下的真实位置信息;然后,计算经纬线之间的距离值;最后,利用Java的随机数生成函数随机生成两个随机数,即生成的虚假位置;
S2.判断位置的合理性:首先,对生成的虚假位置进行逆地理编码,获取虚假位置的具体位置信息;然后,判断虚假位置的地址是否合理,如果不合理,则重复步骤S1至步骤S2;
S3.位置替换,将生成的虚假位置替换为当前位置。
本发明以一种操作简单,对用户友好,而且不影响用户对提供位置服务的应用的使用的方法实现在Android平台上的位置隐私保护。
进一步的,所述的步骤S1具体包括以下步骤:
S11.在联网的情况下通过高德地图API发出定位服务请求从而得到当前位置的GPS坐标以及具体的位置信息,完成真实位置的获取;
S12.所生成的虚假地址范围为以真实位置为中心点的边长为n千米的正方形区域,计算出在当前的位置下,两地距离n/2千米时经纬度的差值,假设经度的差值为a,纬度的差值为b,在相距1千米时经纬度的差值是很小的,将a和b分别扩大100000倍,得到A和B;
S13.利用Java的随机数生成函数分别得到0到A之间的正整数随机数X和0到B之间的正整数随机数Y;然后将X和Y缩小到原来的1/100000,得到x和y;最后,利用Java的随机数生成函数分别生成逻辑型变量来决定x和y的正负号。
进一步的,所述的S2步骤具体包括:
S21.在步骤S1中,生成虚假位置时,得到了一个GPS坐标值,利用高德地图的API功能对坐标值进行逆地理编码,通过虚假位置的GPS坐标值得到虚假位置的具体位置信息;在进行逆地理编码时,选用的坐标系为GPS原生坐标系;
S22.在得到虚假地址的详细位置信息后,需要对这个地址做合理性的判断;排除所在位置为智能设备、人类难以到达的水域、荒无人烟的沼泽沙漠和城市绿化带;
S23.如果生成的虚假地址不合理,重复步骤S1再次生成一个虚假地址,同样按照步骤S2的条件进行判别,直到生成的虚假地址为合理的虚假地址为止。
进一步的,所述的S3步骤具体包括:
S31.开启Android平台的位置模拟功能,在得到位置模拟的许可之后,使用LocationManager类来修改位置信息;LocationManager本身是一种系统服务,所以要获取一个实例来调用系统服务,这个系统服务的名称为LOCATION_SERVICE;
S32.在更改GPS提供者提供的位置信息时,要先创建一个Location的实例,并在初始化这个实例时,将经纬度设为虚假位置的经纬度;
S33.通过修改GPS位置提供者提供的位置信息来将当前的经纬度修改为虚假位置的经纬度;修改位置提供者的位置信息时使用LocationManager类的setTestProviderLocation方法。
在本发明中,针对的位置隐私泄露的阶段是在Android智能设备获取位置信息后,所以在Android智能设备的应用得到位置信息之前,就要先截获位置信息,并对其进行加密处理。为了实现基于Android平台的位置隐私保护,可以设计一个应用,该应用可以生成一个合理的虚假位置,并在开启了位置模拟权限的情况下,可以通过系统API修改GPS模块提供的坐标值。
在生成虚假位置之前,为了在最大程度上保证位置服务的质量不受影响,应该使得虚假位置的坐标尽可能在真实位置的坐标附近,达到这一目的的前提是得到当前位置的真实的经纬度。在此使用的是高德地图API的方法。高德地图API给用户提供了一个接口,在使用高德地图API时,不受Android智能设备上的GPS模块的影响,只需要联网便可得到智能设备当前所在的经纬度以及其他的位置信息。高德地图API提供了地图服务,用户可以通过高德地图API发出定位服务请求从而得到当前位置的GPS坐标以及具体的位置信息。
在得到真实位置的GPS坐标值后,可以根据这一坐标值生成虚假位置的坐标。本发明通过研究经纬度之间的距离,使得所生成的虚假地址范围为以真实位置为中心点的边长为2千米的正方形区域。在经度相同的前提下,纬度变化1度的距离约为111.11千米;在纬度相同时,经度相差1度的两点之间的距离为111.11千米乘以当前所在纬度的余弦值。
在生成虚假地址之后,并不能将真实地址直接替换为这个虚假地址,而是要对这个虚假地址的合理性进行判断。在先前生成虚假位置时,我们得到的只是一个GPS坐标值。为了达到判断位置合理性的目的,就要由这个GPS坐标值得到虚假位置的具体位置信息。高德地图API提供了逆地理编码的功能,可以通过GPS坐标值得到具体位置信息。在得到虚假地址的详细位置信息后,需要对这个地址做合理性的判断。当位置信息显示为人类难以到达的地区时,将会被判为不合理位置,并重新生成一个新的虚假位置。
如果生成的虚假位置是合理的,那么就开启Android平台的位置模拟功能,在得到位置模拟的许可之后,使用LocationManager类的setTestProviderLocation方法来对真实的位置进行修改。
进一步的,在所述的S33步骤中,进行经纬度修改时需要不停的对经纬度进行修改,使用一个不断运行的子线程,在这个子线程中执行修改位置信息的任务。
进一步的,在进行逆地理编码时,使用一个子线程来发出逆地理编码的请求。
进一步的,每发出一次逆地理编码的请求之前,都会生成一个新的虚假位置;为了避免虚假地址的经纬度在逆地理编码请求应答之前不被修改,增加一个判断条件,在一次请求应答之后,如果虚假位置不符合要求,才可以发出下一个请求。
本发明还提供一种基于Android平台的位置隐私保护系统,包括虚假位置生成模块、位置合理性判断模块以及位置替换模块;
所述的虚假位置生成模块用于在联网的情况下通过高德地图API发出定位服务请求从而得到当前位置的GPS坐标以及具体的位置信息,完成真实位置的获取,所生成的虚假地址范围为以真实位置为中心点的边长为n千米的正方形区域;然后,计算出在当前的位置下,两地距离n/2千米时经纬度的差值,假设经度的差值为a,纬度的差值为b,在相距1千米时经纬度的差值是很小的,将a和b分别扩大100000倍,得到A和B;利用Java的随机数生成函数分别得到0到A之间的正整数随机数X和0到B之间的正整数随机数Y;然后将X和Y缩小到原来的1/100000,得到x和y;最后,利用Java的随机数生成函数分别生成逻辑型变量来决定x和y的正负号;即生成的虚假位置;
所述的位置合理性判断模块用于利用高德地图的API功能对坐标值进行逆地理编码,通过虚假位置的GPS坐标值得到虚假位置的具体位置信息;在进行逆地理编码时,选用的坐标系为GPS原生坐标系;在得到虚假地址的详细位置信息后,需要对这个地址做合理性的判断;排除所在位置为智能设备、人类难以到达的水域、荒无人烟的沼泽沙漠和城市绿化带;如果生成的虚假地址不合理,重复步骤S1再次生成一个虚假地址,同样按照步骤S2的条件进行判别,直到生成的虚假地址为合理的虚假地址为止;
所述的位置替换模块用于将生成的虚假位置替换为当前位置,首先开启Android平台的位置模拟功能,在得到位置模拟的许可之后,使用LocationManager类来修改位置信息;LocationManager本身是一种系统服务,所以要获取一个实例来调用系统服务,这个系统服务的名称为LOCATION_SERVICE;在更改GPS提供者提供的位置信息时,要先创建一个Location的实例,并在初始化这个实例时,将经纬度设为虚假位置的经纬度,通过修改GPS位置提供者提供的位置信息来将当前的经纬度修改为虚假位置的经纬度;修改位置提供者的位置信息时使用LocationManager类的setTestProviderLocation方法。
进一步的,所述位置替换模块在进行逆地理编码时,使用一个子线程来发出逆地理编码的请求;每发出一次逆地理编码的请求之前,都会生成一个新的虚假位置;为了避免虚假地址的经纬度在逆地理编码请求应答之前不被修改,增加一个判断条件,在一次请求应答之后,如果虚假位置不符合要求,才可以发出下一个请求。
进一步的,所述位置替换模块进行经纬度修改时需要不停的对经纬度进行修改,使用一个不断运行的子线程,在这个子线程中执行修改位置信息的任务。
与现有技术相比,有益效果是:
1.本发明在对现有的位置隐私保护方法进行研究和分析之后,选择了位置模糊类方法中的虚假位置技术。同时针对虚假位置技术进行了改进,增加了对虚假位置的合理性的判别,在位置判别的过程中,解决了线程同步问题。生成虚假位置的过程中,有一定的概率会生成一些不合理的虚假位置,比如湖泊中心和荒无人烟的沙漠等,而本发明针对这个问题进行了虚假位置的筛选,避免了以上情况的产生;
2.将位置隐私保护方法具体实现于Android平台时,采用了位置模拟方法。使用开启开发者选项中的位置模拟权限是一种对用户非常友好的操作方式,与必须获取用户根权限的Xposed框架相比,省去许多步骤,也解决了很多机型无法获得完全的根权限的问题;而与Virtual Xposed框架相比,则提高了成功修改位置的概率。在更改位置信息时,通过子线程不断运行来对位置信息进行持续的修改,避免修改过的位置信息复原成真实的位置信息;
3.本发明通过一种对用户而言较为方便的方式实现了位置隐私保护,兼顾了提供位置服务的应用的服务质量,同时考虑了语义信息,降低了攻击者识别出位置为假的可能性。从各个方面都较好地完成了基于Android平台的位置隐私保护系统的任务。
附图说明
图1是本发明基于Android平台的位置隐私保护系统框架示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本发明的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。附图中描述位置关系仅用于示例性说明,不能理解为对本发明的限制。
实施例1:
如图1所示,一种基于Android平台的位置隐私保护方法,包括以下步骤,
步骤1.生成虚假位置:
在联网的情况下通过高德地图API发出定位服务请求从而得到当前位置的GPS坐标以及具体的位置信息,完成真实位置的获取。本发明所生成的虚假地址范围为以真实位置为中心点的边长为2千米的正方形区域。为了使生成的虚假地址具有随机性,要先计算出在当前的位置下,两地距离1千米时经纬度的差值。假设经度的差值为a,纬度的差值为b,在相距1千米时经纬度的差值是很小的,所以可以将a和b分别扩大100000倍,得到A和B。在此之后,利用Java的随机数生成函数分别得到0到A之间的正整数随机数X和0到B之间的正整数随机数Y。然后将X和Y缩小到原来的1/100000,得到x和y。最后利用Java的随机数生成函数分别生成逻辑型变量来决定x和y的正负号。
步骤2.判断位置的合理性:
在生成虚假地址之后,并不能将真实地址直接替换为这个虚假地址,而是要对这个虚假地址的合理性进行判断。在先前生成虚假位置时,得到的只是一个GPS坐标值。为了达到判断位置合理性的目的,就要由这个GPS坐标值得到虚假位置的具体位置信息。
高德地图API提供了逆地理编码的功能,可以通过GPS坐标值得到具体位置信息。在进行逆地理编码时,需要选择坐标系,可选择的有火星坐标系和GPS原生坐标系。火星坐标系对真实的坐标进行了人为的加偏处理,而GPS原生坐标系对真实的坐标没有进行任何处理。本发明所使用的Android设备适用的是GPS原生坐标系,因此选用的坐标系为GPS原生坐标系。
在得到虚假地址的详细位置信息后,需要对这个地址做合理性的判断。因为地址的前半部分一般为省份名、市名、区/县名,如果是在镇或村,还会有镇名和村名;地址的中间部分一般为街道的名称和道路的门牌号;道路的后半部分为详细的位置信息。行政区名和街道名称可能会对之后的虚假位置合理性判断产生影响,所以只对这些部分以外的具体位置信息部分进行判断即可,在此将需要判断的部分称为待判别地址。
在进行虚假位置的筛选时,需要被排除的虚假位置一般为智能设备和人类难以到达的水域、荒无人烟的沼泽沙漠和城市绿化等地。根据中国科学院资源环境科学数据中心的数据,中国境内的水域名多数以“江”、“河”、“湖”、“海”、“溪”、“泉”、“沟”、“渠”、“川”、“水”、“曲”、“井”和“水库”结尾,所以要将末尾为上述词语的待判别地址排除。同样地,还要将包含有“沼泽”和“沙漠”的待判别地址排除。因为国内部分湿地和森林被建设为湿地公园和森林公园,在排除含有“湿地”和“森林”的待判别地址时,应保留含有“湿地公园”和“森林公园”的待判别地址。最后,还要将包含“花坛”和“绿化带”的城市绿化区域排除。如果生成的虚假地址不合理,那么就再次生成一个虚假地址,同样按照以上的条件进行判别,直到生成的虚假地址为合理的虚假地址为止。
步骤3.位置替换:
开启Android平台的位置模拟功能,在得到位置模拟的许可之后,使用LocationManager类来修改位置信息。LocationManager本身是一种系统服务,所以要获取一个实例来调用系统服务,这个系统服务的名称为LOCATION_SERVICE。
因为GPS位置提供者提供的位置信息是一个Location类的实例,所以在更改GPS提供者提供的位置信息时,要先创建一个Location的实例,并在初始化这个实例时,将经纬度设为虚假位置的经纬度。
在上述工作完成之后,就可以通过修改GPS位置提供者提供的位置信息来将当前的经纬度修改为虚假位置的经纬度。修改位置提供者的位置信息时使用的是LocationManager类的setTestProviderLocation方法,这个方法可以将指定位置提供者提供的位置信息修改为自己设定的位置信息。
因为在本发明中,LocationManager类修改的是GPS提供者提供的位置信息,所以有一类应用的定位信息将会被修改为虚假位置的信息,这类应用就是使用GPS提供者提供的定位信息的应用。
修改经纬度必须是一直进行的,因为中途停下来的话,当前的位置信息又会更改为真实的位置信息。因此,我们在完成这个应用时,应该使用一个不断运行的子线程,在这个子线程中执行修改位置信息的任务。
在本发明中,生成虚假位置之后会有一个判别虚假位置合理性的过程,所以逆地理编码的请求可能不止一次。如果请求在主线程中发出,而多次请求意味着必须有一个循环,那么将会出现主线程不断在运行并发出请求,而应答这一请求的监听器无法运行的情况,因此将会陷入一个不断请求却无应答的死循环。所以为了达到可满足多次请求的条件,必须另外使用一个子线程来发出逆地理编码的请求。
在应用中,本发明将虚假地址设置为一个静态的全局变量,每发出一次逆地理编码的请求之前,都会生成一个新的虚假位置。因为发出请求后可能无法马上应答,所以多数情况下会出现多次请求后才开始应答的情况。在这样的情况下,我们进行逆地理编码得到的虚假位置的详细地址信息可能与当前的虚假位置经纬度不匹配,这就是线程同步的问题。为了解决这个问题,应该保护虚假地址的经纬度在逆地理编码请求应答之前不被修改,所以可以增加一个判断条件,在一次请求应答之后,如果虚假位置不符合要求,才可以发出下一个请求。
实施例2
本实施例提供一种基于Android平台的位置隐私保护系统,包括虚假位置生成模块、位置合理性判断模块以及位置替换模块;
所述的虚假位置生成模块用于在联网的情况下通过高德地图API发出定位服务请求从而得到当前位置的GPS坐标以及具体的位置信息,完成真实位置的获取,所生成的虚假地址范围为以真实位置为中心点的边长为n千米的正方形区域;然后,计算出在当前的位置下,两地距离n/2千米时经纬度的差值,假设经度的差值为a,纬度的差值为b,在相距1千米时经纬度的差值是很小的,将a和b分别扩大100000倍,得到A和B;利用Java的随机数生成函数分别得到0到A之间的正整数随机数X和0到B之间的正整数随机数Y;然后将X和Y缩小到原来的1/100000,得到x和y;最后,利用Java的随机数生成函数分别生成逻辑型变量来决定x和y的正负号;即生成的虚假位置;
所述的位置合理性判断模块用于利用高德地图的API功能对坐标值进行逆地理编码,通过虚假位置的GPS坐标值得到虚假位置的具体位置信息;在进行逆地理编码时,选用的坐标系为GPS原生坐标系;在得到虚假地址的详细位置信息后,需要对这个地址做合理性的判断;排除所在位置为智能设备、人类难以到达的水域、荒无人烟的沼泽沙漠和城市绿化带;如果生成的虚假地址不合理,重复步骤S1再次生成一个虚假地址,同样按照步骤S2的条件进行判别,直到生成的虚假地址为合理的虚假地址为止;
所述的位置替换模块用于将生成的虚假位置替换为当前位置,首先开启Android平台的位置模拟功能,在得到位置模拟的许可之后,使用LocationManager类来修改位置信息;LocationManager本身是一种系统服务,所以要获取一个实例来调用系统服务,这个系统服务的名称为LOCATION_SERVICE;在更改GPS提供者提供的位置信息时,要先创建一个Location的实例,并在初始化这个实例时,将经纬度设为虚假位置的经纬度,通过修改GPS位置提供者提供的位置信息来将当前的经纬度修改为虚假位置的经纬度;修改位置提供者的位置信息时使用LocationManager类的setTestProviderLocation方法。
其中,所述位置替换模块在进行逆地理编码时,使用一个子线程来发出逆地理编码的请求;每发出一次逆地理编码的请求之前,都会生成一个新的虚假位置;为了避免虚假地址的经纬度在逆地理编码请求应答之前不被修改,增加一个判断条件,在一次请求应答之后,如果虚假位置不符合要求,才可以发出下一个请求。
在本实施例中,所述位置替换模块进行经纬度修改时需要不停的对经纬度进行修改,使用一个不断运行的子线程,在这个子线程中执行修改位置信息的任务。
实现以上三个模块之后,将该应用安装于Android平台之上,开启定位权限和位置模拟权限,启动该应用。该应用启动之后,Android平台上所有使用GPS提供者提供的定位信息的应用的位置信息都会被修改为一个虚假位置信息,且该虚假位置是一个合理的位置。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种基于Android平台的位置隐私保护方法,其特征在于,包括以下步骤:
S1.生成虚假位置:首先,通过现有的地图软件获取当前位置下的真实位置信息;然后,计算经纬线之间的距离值;最后,利用Java的随机数生成函数随机生成两个随机数,即生成的虚假位置;
S2.判断位置的合理性:首先,对生成的虚假位置进行逆地理编码,获取虚假位置的具体位置信息;然后,判断虚假位置的地址是否合理,如果不合理,则重复步骤S1至步骤S2;
S3.位置替换,将生成的虚假位置替换为当前位置。
2.根据权利要求1所述的基于Android平台的位置隐私保护方法,其特征在于,所述的步骤S1具体包括以下步骤:
S11.在联网的情况下通过高德地图API发出定位服务请求从而得到当前位置的GPS坐标以及具体的位置信息,完成真实位置的获取;
S12.所生成的虚假地址范围为以真实位置为中心点的边长为n千米的正方形区域,计算出在当前的位置下,两地距离n/2千米时经纬度的差值,假设经度的差值为a,纬度的差值为b,在相距1千米时经纬度的差值是很小的,将a和b分别扩大100000倍,得到A和B;
S13.利用Java的随机数生成函数分别得到0到A之间的正整数随机数X和0到B之间的正整数随机数Y;然后将X和Y缩小到原来的1/100000,得到x和y;最后,利用Java的随机数生成函数分别生成逻辑型变量来决定x和y的正负号。
3.根据权利要求2所述的基于Android平台的位置隐私保护方法,其特征在于,所述的S2步骤具体包括:
S21.在步骤S1中,生成虚假位置时,得到了一个GPS坐标值,利用高德地图的API功能对坐标值进行逆地理编码,通过虚假位置的GPS坐标值得到虚假位置的具体位置信息;在进行逆地理编码时,选用的坐标系为GPS原生坐标系;
S22.在得到虚假地址的详细位置信息后,需要对这个地址做合理性的判断;排除所在位置为智能设备、人类难以到达的水域、荒无人烟的沼泽沙漠和城市绿化带;
S23.如果生成的虚假地址不合理,重复步骤S1再次生成一个虚假地址,同样按照步骤S2的条件进行判别,直到生成的虚假地址为合理的虚假地址为止。
4.根据权利要求3所述的基于Android平台的位置隐私保护方法,其特征在于,所述的S3步骤具体包括:
S31.开启Android平台的位置模拟功能,在得到位置模拟的许可之后,使用LocationManager类来修改位置信息;LocationManager本身是一种系统服务,所以要获取一个实例来调用系统服务,这个系统服务的名称为LOCATION_SERVICE;
S32.在更改GPS提供者提供的位置信息时,要先创建一个Location的实例,并在初始化这个实例时,将经纬度设为虚假位置的经纬度;
S33.通过修改GPS位置提供者提供的位置信息来将当前的经纬度修改为虚假位置的经纬度;修改位置提供者的位置信息时使用LocationManager类的setTestProviderLocation方法。
5.根据权利要求4所述的基于Android平台的位置隐私保护方法,其特征在于,在所述的S33步骤中,进行经纬度修改时需要不停的对经纬度进行修改,使用一个不断运行的子线程,在这个子线程中执行修改位置信息的任务。
6.根据权利要求1至6任一项所述的基于Android平台的位置隐私保护方法,其特征在于,在进行逆地理编码时,使用一个子线程来发出逆地理编码的请求。
7.根据权利要求6所述的基于Android平台的位置隐私保护方法,其特征在于,每发出一次逆地理编码的请求之前,都会生成一个新的虚假位置;为了避免虚假地址的经纬度在逆地理编码请求应答之前不被修改,增加一个判断条件,在一次请求应答之后,如果虚假位置不符合要求,才可以发出下一个请求。
8.一种基于Android平台的位置隐私保护系统,其特征在于,包括虚假位置生成模块、位置合理性判断模块以及位置替换模块;
所述的虚假位置生成模块用于在联网的情况下通过高德地图API发出定位服务请求从而得到当前位置的GPS坐标以及具体的位置信息,完成真实位置的获取,所生成的虚假地址范围为以真实位置为中心点的边长为n千米的正方形区域;然后,计算出在当前的位置下,两地距离n/2千米时经纬度的差值,假设经度的差值为a,纬度的差值为b,在相距1千米时经纬度的差值是很小的,将a和b分别扩大100000倍,得到A和B;利用Java的随机数生成函数分别得到0到A之间的正整数随机数X和0到B之间的正整数随机数Y;然后将X和Y缩小到原来的1/100000,得到x和y;最后,利用Java的随机数生成函数分别生成逻辑型变量来决定x和y的正负号;即生成的虚假位置;
所述的位置合理性判断模块用于利用高德地图的API功能对坐标值进行逆地理编码,通过虚假位置的GPS坐标值得到虚假位置的具体位置信息;在进行逆地理编码时,选用的坐标系为GPS原生坐标系;在得到虚假地址的详细位置信息后,需要对这个地址做合理性的判断;排除所在位置为智能设备、人类难以到达的水域、荒无人烟的沼泽沙漠和城市绿化带;如果生成的虚假地址不合理,重复步骤S1再次生成一个虚假地址,同样按照步骤S2的条件进行判别,直到生成的虚假地址为合理的虚假地址为止;
所述的位置替换模块用于将生成的虚假位置替换为当前位置,首先开启Android平台的位置模拟功能,在得到位置模拟的许可之后,使用LocationManager类来修改位置信息;LocationManager本身是一种系统服务,所以要获取一个实例来调用系统服务,这个系统服务的名称为LOCATION_SERVICE;在更改GPS提供者提供的位置信息时,要先创建一个Location的实例,并在初始化这个实例时,将经纬度设为虚假位置的经纬度,通过修改GPS位置提供者提供的位置信息来将当前的经纬度修改为虚假位置的经纬度;修改位置提供者的位置信息时使用LocationManager类的setTestProviderLocation方法。
9.根据权利要求8所述的基于Android平台的位置隐私保护系统,其特征在于,所述位置替换模块在进行逆地理编码时,使用一个子线程来发出逆地理编码的请求;每发出一次逆地理编码的请求之前,都会生成一个新的虚假位置;为了避免虚假地址的经纬度在逆地理编码请求应答之前不被修改,增加一个判断条件,在一次请求应答之后,如果虚假位置不符合要求,才可以发出下一个请求。
10.根据权利要求8所述的基于Android平台的位置隐私保护系统,其特征在于,所述位置替换模块进行经纬度修改时需要不停的对经纬度进行修改,使用一个不断运行的子线程,在这个子线程中执行修改位置信息的任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911007067.7A CN110866271A (zh) | 2019-10-22 | 2019-10-22 | 一种基于Android平台的位置隐私保护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911007067.7A CN110866271A (zh) | 2019-10-22 | 2019-10-22 | 一种基于Android平台的位置隐私保护方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110866271A true CN110866271A (zh) | 2020-03-06 |
Family
ID=69652883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911007067.7A Pending CN110866271A (zh) | 2019-10-22 | 2019-10-22 | 一种基于Android平台的位置隐私保护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866271A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143720A (zh) * | 2021-11-29 | 2022-03-04 | 深圳万兴软件有限公司 | 一种更改ios设备定位信息的方法、装置及其相关组件 |
CN114756894A (zh) * | 2022-06-15 | 2022-07-15 | 北京中科开迪软件有限公司 | 一种基于光盘库的电子图像档案保护方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105430033A (zh) * | 2014-09-17 | 2016-03-23 | 宇龙计算机通信科技(深圳)有限公司 | 一种保护终端位置的方法和装置 |
CN105572704A (zh) * | 2014-10-13 | 2016-05-11 | 航天信息股份有限公司 | Android平台下支持北斗模块的方法 |
CN109444815A (zh) * | 2018-10-12 | 2019-03-08 | 桂林电子科技大学 | 基于室内声音定位的轨迹隐私保护方法及系统 |
-
2019
- 2019-10-22 CN CN201911007067.7A patent/CN110866271A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105430033A (zh) * | 2014-09-17 | 2016-03-23 | 宇龙计算机通信科技(深圳)有限公司 | 一种保护终端位置的方法和装置 |
CN105572704A (zh) * | 2014-10-13 | 2016-05-11 | 航天信息股份有限公司 | Android平台下支持北斗模块的方法 |
CN109444815A (zh) * | 2018-10-12 | 2019-03-08 | 桂林电子科技大学 | 基于室内声音定位的轨迹隐私保护方法及系统 |
Non-Patent Citations (2)
Title |
---|
彭瑞卿等: "面向Android的位置模糊及隐私保护技术研究", 《武汉大学学报(工学版)》 * |
薄锦_UP: "android模拟位置(修改)", 《HTTPS://DOWNLOAD.CSDN.NET/DOWNLOAD/YUEQINGLKONG/8250045》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143720A (zh) * | 2021-11-29 | 2022-03-04 | 深圳万兴软件有限公司 | 一种更改ios设备定位信息的方法、装置及其相关组件 |
CN114143720B (zh) * | 2021-11-29 | 2023-09-29 | 深圳万兴软件有限公司 | 一种更改ios设备定位信息的方法、装置及其相关组件 |
CN114756894A (zh) * | 2022-06-15 | 2022-07-15 | 北京中科开迪软件有限公司 | 一种基于光盘库的电子图像档案保护方法及系统 |
CN114756894B (zh) * | 2022-06-15 | 2022-08-23 | 北京中科开迪软件有限公司 | 一种基于光盘库的电子图像档案保护方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gai et al. | Privacy-preserving content-oriented wireless communication in internet-of-things | |
Li et al. | Location-sharing systems with enhanced privacy in mobile online social networks | |
CN105262843B (zh) | 一种针对云存储环境的数据防泄漏保护方法 | |
CN104506487B (zh) | 云环境下隐私策略的可信执行方法 | |
CN110866271A (zh) | 一种基于Android平台的位置隐私保护方法及系统 | |
EP3078216B1 (en) | A method for preserving privacy within a communication system and an according communication system | |
CN109934001A (zh) | 一种基于正态云模型的数据加密方法 | |
CN109886046A (zh) | 一种位置隐私保护方法及系统 | |
CN115052286A (zh) | 基于位置服务的用户隐私保护、目标查询方法及系统 | |
Yan et al. | Privacy protection in 5G positioning and location-based services based on SGX | |
CN111586045B (zh) | 一种属性加密和动态安全层的防护方法及对应的防火墙 | |
CN106487505A (zh) | 密钥管理、获取方法及相关装置和系统 | |
Kalaiarasy et al. | An effective variant ring signature-based pseudonym changing mechanism for privacy preservation in mixed zones of vehicular networks | |
Chauhan | Iot network identity management using smart contract and blockchain technology | |
CN112287048A (zh) | 一种地图服务处理方法和装置 | |
Naik et al. | Location privacy using data obfuscation in fog computing | |
Ahmadian et al. | A security scheme for geographic information databases in location based systems | |
Morris et al. | Deriving privacy and security considerations for core: An indoor iot adaptive context environment | |
CN110880157A (zh) | 一种地图数据处理方法、装置、电子设备及存储介质 | |
Albelaihy et al. | A survey of the current trends of privacy techniques employed in protecting the Location privacy of users in LBSs | |
Wang et al. | An efficient location privacy protection scheme based on the Chinese remainder theorem | |
CN105144181A (zh) | 位置签名 | |
Yang et al. | Cloud edge-client collaborative trajectory privacy protection system and technology | |
Hua et al. | A location authentication scheme based on adjacent users | |
CN111405547A (zh) | 一种基于云加密服务的商用移动操作系统信息保护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200306 |
|
RJ01 | Rejection of invention patent application after publication |