基于差分隐私的安卓终端传感器信息保护方法与流程

文档序号:15559004发布日期:2018-09-29 01:48阅读:167来源:国知局

本发明属于移动平台隐私保护技术领域,尤其涉及一种基于差分隐私的安卓终端传感器信息保护方法。



背景技术:

目前,业内常用的现有技术是这样的:随着移动互联网的发展,移动智能终端使用越来越广泛。传感器技术的进步和传感器在智能手机中的应用,使得移动终端拥有丰富的感知能力。然而方便丰富人们生活方式的同时也带来了巨大的安全挑战。基于当今大数据和机器学习可以利用传感器数据分析用户行为、窃取用户信息的现状,通过智能终端传感器来窃取用户隐私正成为一种新兴的恶意应用攻击方式。android操作系统对传感器的管理控制,除部分敏感型传感器在调用时需要申请权限外,部分传感器在手机中广泛使用且调用不受限制。结合android系统自身对传感器调用的保护策略和漏洞,存在恶意应用利用android终端传感器获取用户隐私信息的风险。恶意应用利用智能手机传感器资源可以窃取多种用户隐私信息。我国第四届全国网络与信息安全防护峰会提出的应对android传感器信息泄露隐患及其安全对策ssg(sensorsecurityguard),是android平台上第一个提出的针对sensor的保护系统。不同的传感器有不同的攻击特点,采取的防御策略也不同。如应对位置轨迹及用户身份保护策略:限制传感器数据的收集时间;当设备运动时,周期性的提供伪造数据;限制后台收集数据等,对请求传感器信息的应用程序提供伪数据或失真数据,达到保护用户隐私的目的。国外对传感器的保护,基于多传感器系统为智能终端实现连续和隐式的身份认证,不断地系统性学习用户的行为模式和环境特征识别,自适应地更新用户模型,达到保护用户隐私安全目的。还有研究者对android系统的安全机制进行改进,重新定义传感器调用机制,从底层保护传感器数据的隐私安全。然而,目前存在的防御策略都会有一定的弊端。提供伪数据或失真数据给应用程序,必然会降低精度和准确度,带来较大的误差。有时会引起应用程序功能性降低甚至崩溃的情况。保护数据隐私,提供模糊数据,就会损坏数据精度,影响用户正常需求。对多传感器身份认证也只能在移动终端对用户身份进行识别,无法对服务器端的数据加以有效保护。攻击者依然可以通过不安全的服务器窃取大量的传感器数据,分析用户身份和行为。而且在攻击者获得部分背景信息情况下,以上防御策略的安全程度都会降低。

综上所述,现有技术存在的问题是:

(1)目前防御策略都存在提供伪数据或失真数据给应用程序,必然会降低精度和准确度,带来较大的误差;引起应用程序功能性降低甚至崩溃的情况。保护数据隐私,提供模糊数据,就会损坏数据精度,影响用户正常需求。

(2)对多传感器身份认证也只能在移动终端对用户身份进行识别,无法对服务器端的数据加以有效保护;攻击者依然可以通过不安全的服务器窃取大量的传感器数据,分析用户身份和行为;而且在攻击者获得部分背景信息情况下,以上防御策略的安全程度都会降低。

(3)现有技术都有对背景知识的敏感性,当攻击者获得一定背景知识时必然会影响隐私的保护。

解决上述技术问题的难度和意义:基于android终端的传感器访问拦截需要从底层修改android系统服务进程的源码,难度较大;在原始的位置数据上添加拉普拉斯噪声并设置合理的拉普拉斯算子,既要干扰原始数据保护隐私,又不能影响应用程序的正常功能和数据精度,也是技术难点。通过引入基于差分隐私机制的传感器数据保护方法,适用于传感器数据发布和数据分析带来的隐私威胁问题。差分隐私模型不关心攻击者拥有多少背景知识,通过向查询或者分析结果中添加适当噪音来达到隐私保护效果。大大提高了android终端传感器信息的安全性,对未来移动终端的隐私保护有重要的理论价值和现实意义。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种基于差分隐私的安卓终端传感器信息保护方法。

本发明是这样实现的,一种基于差分隐私的安卓终端传感器信息保护方法,所述基于差分隐私的安卓终端传感器信息保护方法的android平台传感器访问拦截与基于差分隐私机制的传感器信息保护策略相结合,从用户端在数据发布环节开始保护传感器数据的隐私安全,同时在服务器端有效防止不可信任服务器对用户隐私的恶意窃取,识别用户真实信息。

进一步,所述基于差分隐私的安卓终端传感器信息保护方法包括如下步骤:

步骤一,传感器访问拦截

android系统服务进程运行时获取ioctl函数偏移地址;首先获取ioctl函数的函数索引,然后和节头表中数据结构进行一一对比;不相等,指针指向节头表的下一个内存结构;相等,则找到系统服务进程中的ioctl函数偏移地址;

查看进程列表,找到系统服务进程的运行基地址;

计算出系统服务进程运行时ioctl函数的入口地址,入口地址即为基地址加上函数偏移地址;

通过hook实现gps位置监控模块,对请求位置服务的gps数据报进行底层拦截;

在系统服务进程中的ioctl函数入口地址处加载监控模块,首先暂停系统服务进程,并在系统服务进程中加载和运行预先编译好的函数模块;

步骤二,添加拉普拉斯噪声

采用添加拉普拉斯噪声干扰真实数据来实现差分隐私保护;拉普拉斯分布的概率密度函数与有关,式中∈为与算法隐私敏感度有关的归一化参数,μ是与分布有关的位置参数;

在真实位置x0上添加拉普拉斯噪声,得到提供给应用程序的报告位置x。真实位置和报告位置之间的距离为d(x0,x);拉普拉斯分布的概率密度函数为为以x0为中心的平面拉普拉斯算子;

步骤三,刻画报告位置

分析拉普拉斯分布,由直角坐标系转换为以x0为原点的极坐标系。极坐标系下,拉普拉斯算子的概率密度函数表示为:

式中r是x0与x的距离,θ是x0,x所在直线与直角坐标系的水平坐标轴的夹角。r和θ相互独立的随机变量,分别用以r和θ为参数表示成:

在极坐标系下可以分别从d∈,r(r)和d∈,θ(θ)刻画报告位置(r,θ);

刻画θ:d∈,θ(θ)是连续的,即θ在[0,2π)区间以均匀分布随机产生;

刻画r:在[0,1)区间以均匀分布随机生成随机变量p;

根据则r可以由求得,可在matlab等快速计算得到;

步骤四,重映射离散化兴趣点

根据先在[0,2π)区间以均匀分布随机生成变量θ;

在[0,1)以均匀分布随机产变量p,由生成随机位置距坐标原点x0的距离;

在极坐标系中刻画出差分隐私机制添加噪声后产生的随机点(r,θ),重映射到笛卡尔坐标系中的随机点,产生的位置x;

将x与在实际地图中最接近的兴趣点匹配,该兴趣点也就是提供给应用程序的报告位置;

步骤五,检索区域的重计算。

进一步,所述步骤一中获得系统服务进程中ioctl函数的入口地址具体包括:

(1)需要分析系统服务进程的elf文件结构,找到ioctl函数在系统服务进程中的偏移地址;系统服务进程的ioctl函数的偏移地址存储在节头表数据结构中,存储着系统服务进程中的函数索引信息和函数偏移地址;

(2)根据ioctl函数的函数名,获取ioctl函数的函数索引,然后和节头表中的指针所指地址内储存的函数索引进行一一对比,不相等,指针指向下一个内存结构;相等,则找到系统服务进程中的ioctl函数偏移地址;

(3)查看系统的进程列表,找到系统服务进程的运行基地址,根据基地址和ioctl函数的入口地址,计算出系统服务进程运行时ioctl函数的入口地址,入口地址为入口地址为基地址加上偏移地址。

进一步,所述步骤一中通过hook函数实现监控模块步骤如下:首先对gps数据报获取其服务名称;通过设置判断语句和位置服务名称的映射,实现对请求位置服务的gps数据报的拦截;在系统服务进程中的ioctl函数入口地址处加载hook函数实现的监控模块,实现在底层对gps数据报的拦截和对gps数据的修改。

进一步,所述步骤一中实现对系统服务进程处的模块加载,需要拥有该进程的操作权限具体包括:

(1)暂停系统服务进程;

(2)系统服务进程进程中加载和运行预先编译好的函数模块,执行目的是获得系统服务进程的操作权限;

(3)使指向ioctl函数的指针指向提供的监控模块hook函数,完成位置服务监控模块的加载。

进一步,所述步骤二通过拉普拉斯分布产生的噪声扰动真实输出值来实现差分隐私保护;用户的真实位置x0,报告位置为x,d(x0,x)为真实位置和报告位置之间的距离;对于平面任意位置x0,拉普拉斯噪声机制在笛卡尔直角坐标系里的概率密度函数为

为归一化参数,被称为以x0为中心的平面拉普拉斯算子。转换为以x0为原点的极坐标系中,随机位置x被刻画在点(r,θ),r是x0与x的距离,θ是x0,x所在直线与笛卡尔直角坐标系的水平坐标轴的夹角。

进一步,所述步骤三在角坐标系下刻画报告位置(r,θ)中的r独立随机变量:c∈(r)是d∈,r(r)在0到r上的累计分布函数,即x0与x的距离随机落在0到r之间的概率为c∈(r);p为在[0,1)之间均匀分布的随机变量,则r可以设为w-1是朗伯w函数的-1分支,在matlab快速计算得到。

进一步,所述步骤四在地图中重映射离散化兴趣点,在极坐标系中刻画出差分隐私机制添加噪声后产生的随机点(r,θ);重映射到笛卡尔坐标系中的随机点,报告位置x与x0水平方向相距rcosθ,竖直方向相距rsinθ,即即为差分隐私机制加噪声干扰下产生的位置x。

进一步,所述步骤五重新计算检索区域具体包括:

(1)制定合适的检索半径radiusr,使得aoi以最大概率包含在aor区域里,其中aoi是以x0为圆心,以radiusi为半径的兴趣区域;aor是以x为圆心,以radiusr半径为的检索区域;

(2)令radiusr=radiusi+d(x0,x),使得aor以最小的检索半径完全覆盖aoi区域,提高检索准确性;当radiusr超过检索区域最大半径时,执行(3)

(3)当radiusr超过限定最大区域半径时,aoi不能完全包含在aor。

本发明的另一目的在于提供一种应用所述基于差分隐私的安卓终端传感器信息保护方法的智能终端。

综上所述,本发明的优点及积极效果为:本发明将android平台传感器访问拦截与基于差分隐私机制的传感器信息保护策略相结合,不仅从用户端在数据发布环节开始保护传感器数据的隐私安全,同时在服务器端有效防止不可信任服务器对用户隐私的恶意窃取,防止识别用户真实信息。本发明将差分隐私保护机制应用在android移动终端传感器数据隐私保护上,可以消除攻击者对用户的背景信息的敏感性。即使攻击者获得用户的部分背景信息,也不会对隐私保护的安全性造成影响。本发明提出检索区域半径的重新计算,使得真实位置检索区域能尽最大可能的包含在报告位置检索区域范围内。既提高了用户检索结果的准确性,又保护了用户的真实位置数据不受窃取。本发明采用添加拉普拉斯噪声实现差分隐私保护,拉普拉斯分布从直角坐标系转换为极坐标系,更方便的产生随机变量θ和r,快速定位报告位置。

本发明可以在数据发布端和服务端保证用户隐私安全,同时动态调整参数,尽可能保证数据精度,对攻击者拥有的背景信息不敏感;减采样技术由于攻击者仍可拿到原始数据不能保证数据发布端安全,但是服务端是减采样后的数据可以认为是安全的,基于减采样必然会带来数据精度的下降,且对背景信息攻击有敏感性;基于多传感器的身份认证可以保证用户身份,保护数据发布端的隐私安全,但是对于真实用户上传服务端的均是原始数据,不能保证服务端安全,一定程度上保证了数据精度,且对背景信息攻击有敏感性。

附图说明

图1是本发明实施例提供的基于差分隐私的安卓终端传感器信息保护方法流程图。

图2是本发明实施例提供的android平台传感器访问拦截流程图。

图3是本发明实施例提供的基于差分隐私的传感器数据保护方法的流程图。

图4是本发明实施例提供的检索区域与兴趣区域示意图。

图5是本发明实施例提供的重新计算检索半径示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明大大提高了android终端传感器信息的安全性,对未来移动终端的隐私保护有重要的理论价值和现实意义。

如图1所示,本发明实施例提供的基于差分隐私的安卓终端传感器信息保护方法包括以下步骤:

s101:android平台传感器访问拦截与基于差分隐私机制的传感器信息保护策略相结合,从用户端在数据发布环节开始保护传感器数据的隐私安全;

s102:在服务器端有效防止不可信任服务器对用户隐私的恶意窃取,识别用户真实信息。

下面结合附图对本发明的应用原理作进一步的描述。

如图2所示,本发明在系统服务进程中插入一个监控模块。

首先执行步骤1:请求接入服务、步骤2:返回位置提供者入口、步骤3:接入服务。android系统中,位置服务lbs在系统服务进程中,应用根据lbs服务接入入口向系统服务进程发送请求获取用户位置信息的gps请求数据报,gps请求数据报经过监控模块发送给位置服务,即图中步骤4:请求位置信息;位置服务获得用户位置信息后返回一个含有用户位置信息的gps响应数据报,即图中步骤5:返回;该gps响应数据报经过我们的监控模块将位置信息返回给应用,即图中步骤6:获得位置信息。通过本发明实现应用和系统服务进程通信的gps数据报都经过监控模块,达到对gps数据报拦截和控制的目的。

android系统中规定,进程间必须通过binder通信机制进行通信。binder驱动程序和servicemanager在android平台中已经是一个守护进程,用来管理service,并向client提供查询接口的能力。系统服务进程进程通信过程中数据流需要经过ioctl函数来实现输入输出。

如图3所示,具体介绍android系统拦截传感器访问操作方法。本发明实现对gps数据的拦截控制,是通过寻找系统服务进程运行时的ioctl函数的入口地址,在ioctl函数入口地址处加载提供的监控模块来实现的。

为了获得系统服务进程进程中ioctl函数的入口地址,首先需要分析系统服务进程的elf文件结构,找到ioctl函数在系统服务进程中的偏移地址。

step1:根据ioctl函数的函数名,首先获取ioctl函数的函数索引,然后和节头表中结构进行一一对比,如果不相等,指针指向节头表的下一个内存结构;

如果相等,则找到系统服务进程中的ioctl函数偏移地址。

step2:查看系统的进程列表,找到系统服务进程的运行基地址,根据基地址和ioctl函数的入口地址,计算出系统服务进程运行时ioctl函数的入口地址,入口地址即为基地址加上ioctl函数偏移地址。

step3:一般情况下,在android系统中实现对系统服务进程处的模块加载,需要拥有该进程的操作权限。本发明首先暂停系统服务进程,并在系统服务进程中加载和运行预先编译好的函数模块,目的是获得系统服务进程的操作权限,使指向ioctl函数的指针指向提供的监控模块函数,完成位置服务监控模块的加载。

step4:本发明使用hook实现的监控模块,实现对请求位置服务的gps数据报的拦截。在系统服务进程中的ioctl函数入口地址处加载hook函数实现的监控模块,即可实现在底层对gps数据报的拦截和根据上层事件要求对gps数据的修改。

噪声机制是实现差分隐私保护的主要技术,常用的噪声添加机制分别为拉普拉斯机制和指数机制,本发明通过拉普拉斯分布产生的噪声扰动真实输出值来实现差分隐私保护。拉普拉斯分布的概率密度函数与有关,∈为与差分隐私算法的隐私敏感度有关的归一化参数,μ是与分布有关的位置参数。

如图4所示,设用户的真实位置x0,在真实位置x0上添加拉普拉斯噪声,得到提供给应用程序的报告位置为x,则拉普拉斯分布的概率密度函数与有关,其中d(x0,x)为真实位置和报告位置之间的距离。对于平面任意位置x0,拉普拉斯噪声机制在笛卡尔直角坐标系里的概率密度函数为:

为归一化参数,被称为以x0为中心的平面拉普拉斯算子。

根据拉普拉斯分布概率密度函数产生随机点作为报告位置。由上式知拉普拉斯算子与报告位置和真实位置的距离d(x0,x)有关。转换为以x0为原点的极坐标系中,随机位置x被刻画在点(r,θ),r是x0与x的距离,θ是x0,x所在直线与笛卡尔直角坐标系的水平坐标轴的夹角。

step1:在极坐标系下,以x0为中心的拉普拉斯算子的概率密度函数表示为r和θ相互独立的随机变量。那么上式可以分别用以r和θ为参数表示成:

因为r和θ是来两个相互独立的随机变量,所以根据d∈(r,θ)在极坐标系下刻画报告位置(r,θ)可以分别从c∈,r(r)和d∈,θ(θ)。

step2:刻画θ:d∈,θ(θ)是连续的,即θ在[0,2π)区间以均匀分布随机产生。

step3:刻画r:c∈(r)是d∈,r(r)在0到r上的累计分布函数,即x0与x的距离随机落在0到r之间的概率为c∈(r)。设p为在[0,1)之间均匀分布的随机变量,则r可以设为w-1是朗伯w函数(又称为乘积对数函数)的-1分支,可在matlab等快速计算得到。

如图4所示,用户的真实位置x0,在真实位置x0上添加拉普拉斯噪声后提供给应用程序的报告位置为x,用于实现隐藏用户真实位置。aoi是用户搜索的兴趣区域,aor是以x0为圆心,以radiusi为半径的圆形区域。aor是以x为圆心,以半径为radiusr的检索区域。当radiusr大于一定值时可以将aor完全覆盖aoi,提高检索准确性;当radiusr不足以使aor完全覆盖aoi时,检索结果准确度会降低。但通常会将radiusr限制在某一个范围,防止检索区域范围过大而带来的检索效率降低问题。

如图5所示,介绍检索区域半径的重计算。为了可以使检索半径在最小值的情况下,实现aoi完全包含在aor区域里,不降低检索结果准确性。但是带来的问题是检索区域扩大,效率降低。

5a)制定合适的检索半径radiusr,使得aoi以最大概率包含在aor区域里,其中aoi是以x0为圆心,以radiusi为半径的兴趣区域。aor是以x为圆心,以radiusr半径为的检索区域。

5b)令radiusr=radiusi+d(x0c),使得aor以最小的检索半径完全覆盖aoi区域,提高检索准确性。当radiusr超过检索区域最大半径时,执行5c)。

5c)当radiusr超过限定最大区域半径时,aoi不能完全包含在aor。计算aoi能完全包含在aor的概率,衡量结果准确度。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1