基于位置隐私保护的手机应急报警系统研究与设计
2021-02-25潘洪志芮坤坤殷西祥
潘洪志,芮坤坤,殷西祥
(安徽商贸职业技术学院 信息与人工智能学院,安徽 芜湖 241002)
0 引言
随着我国经济、科技以及文化的飞速发展,现代化城市的建设规模越来越庞大,城市管理日益复杂化,紧急突发性事件的种类和数量增多,人们对于安全的需求越来越重视。同时伴随着移动手机的广泛传播,人们对移动智能设备的依赖程度越来越高。移动智能设备可以通过传感器将人和物体的地理位置数据化[1-3],例如,手机、PDA(Personal Digital Assistant,PDA)和车载系统之类的智能移动设备配备了GPS(Global Positioning System,GPS)、WiFi、陀 螺仪以及其他与设备位置有关的模块,这些模块可以随时随地获取移动用户的位置信息[4]。但是,位置数据不仅直接包含用户的私人信息,而且还隐含其他敏感信息。例如,通过数据挖掘技术了解用户的运动轨迹,然后可以推断出用户经常访问的地理位置,从而泄露敏感信息[5],例如用户的工作地点或家庭住址。因此,不当使用位置数据会严重威胁用户的隐私。
隐私保护指的是当用户在使用位置服务时,通过某种技术手段,来确保用户的位置信息不被泄露出去,从而保护用户的位置隐私信息。姜海洋[6]等人通过分析已有的隐私保护技术,融合定位隐私保护方法,提出了一种适合5G 环境的隐私保护方法。李婕[7]等通过计算用户移动位置的概率向量,引入k-匿名和粒子群优化算法进行优化,提高了算法的效率和服务质量。张青云[8]等对LBS系统的位置轨迹隐私保护技术进行了综述,分类介绍了扭曲技术,匿名技术,加密技术等的隐私保护算法。杨少杰[9]等融合博弈论和区块链,改进了常见的采用位置k-匿名技术保护用户隐私安全方法。郭蕊[10]等通过改进蚁群算法将传统的WSN 源位置隐私保护中普遍存在的高延迟和高能耗问题进行了有效改善。
综上所述,为保护使用本报警系用户的隐私安全,我们在获取用户的地理位置信息的同时,采用一种高效的k-匿名隐私保护策略来确保用户的隐私信息。我们通过动态调整匿名组的规模来改变系统隐私保护的能力,确保系统在高效运行的同时,保证用户的安全。
1 基于k-匿名的位置隐私保护算法
利用k-匿名算法的特点,结合该算法,本节提出基于k-匿名的移动位置隐私保护算法。k-匿名机制要求每一条记录至少和其他k-1 条记录在标准符QI 上一致。若将表T(d)做投影,则投影中任意一条数据至少出现k 次。相同的QI 可以构成同一个匿名组。其中,描述一张数据表,简称为T(d),d为准标识符的个数,m 为敏感属性的个数。
假设移动用户真实的地理位置信息为t,那么我们对每个匿名组包含k-1 条虚假的地理位置信息。对于匿名组的划分上,匿名化数据集中包含的匿名组越多,匿名组的规模越小,数据集的可用性就越高。从而获取隐私保护的能力就越强。为了提高数据集的数据质量,降低名组规模的上界,利用取整划分函数,方法是将匿名组中的包含虚假位置信息准标识符排序,使得标识符的域构成有序域,并将有序域中的元素映射到实数域中,将所有记录看成是d 维空间中的点,找到一个中间值将点集分开。表T(d)中的每一条记录可以看成多维空间中的一个点,每个匿名组的规模就相当于其所对应的区域中包含记录的总量。单维概化(SG)和多维概化(MG)所产生的匿名化数据最大匿名组的规模在最坏情况下是,匿名组的数量在最坏情况下是1。平均规模下的最坏情况也是。而对于局部编码(LG),最大最坏匿名组规模上界不超过2k-1。匿名组的容量越大,收集的信息就越丰富,可用性就会降低,二数据集的平均匿名组规模越小,可用性就越高。如算法1 所示。
算法1
输入:匿名组T(d),用户所在区域X,隐私参数Amin,k
输出:匿名区域ASR
b)H←Xn,Xm//将排序划分后的结果入栈H内
c)ASR←Xn,Xm//初始化
d)While(AREA(ASR) e)E←pop(H) f)ASR←ASR∪E//将符合条件的区域合并 g)End While h)Return ASR上述算法中,对于给定系数k,临时匿名组X 被划分成1X和2X,其中,可以假设临时匿名组X 在第i 维上的投影线段是共有y-x-1个Qi 对应的实域序列元素。设置y-x-1个计数器,将Px 遍历一遍,在根据每个上的投影值计数,遍历完成后可以找到j的分界线,将Px 分割成两个新的临时分组,其中两个临时匿名组满足,两个点集中所有的点一个全部大于中间值,一个全部小于中间值,并在规模上。整个算法中,遍历所需要的时间为O(n),表格T(d) 至多能够被分成个多维区域,所以至多被划分次,所以对于固定k,整个算法的时间开销是。通过整数划分函数的k-匿名算法所产生的匿名组平均规模趋近于k(在T(d)足够大的时候),其中当T(d)≥2且k>3,其规模最坏情况是2k-1,当T(d)≥2k2时,最坏情况为k+1。使用均衡二划分,存在局部贪心策略,即局部公平不是全局公平(6 个点却不能划分成3 个2 匿名组,只能分成2 个3 匿名组)。 基于安卓智能手机的应急报警系统模块主要有两部分:客户端系统功能模块、服务端系统功能模块。 服务端系统主要有四个部分组成:(a)监听模块。用来等待客户端连接,监听客户端发送的信息,记录客户端手机开启次数、最后一次开启时间和接入时间。(b)监测模块。根据最后一次接入时间,监测手机解锁时间模块,判断是否第一次运行该程序,然后判断多久未收到消息,从而判断是否发送提醒邮件。(c)系统定位模块。根据每次客户端发送的系统定位重新转换成经纬度,来确定用户位置信息。(d)邮件发送模块。当监测模块发现异常后会调用邮件发送模块发送邮件,邮件发送模块会根据用户设置的紧急联系人的邮件发送已经制定的紧急邮件,而且会连续发送多封邮件,提醒紧急联系人。每个模块的工作关系如图1 所示。 图1 服务端实现过程 客户端系统主要包括五个模块:(a)DisplayMessageActivity 模块。是用来显示当前软件活动模块,给用户直观的显示出当前自己动作的进度,是否发送成功邮件,是否连接服务端信息等。(b)MainActivity 模块是App 里的核心模块,它连接着其他四个模块,用于处理各个信息直接的发送与接收,各个模块通过连接这个模块来实现数据处理。(c)MyBroadcastReceiver 模块是接收模块,其主要作用是接受来自服务端发送的数据,接收来自MainActivity 模块的数据来给服务端发送数据。(d)ScreenListener 模块是屏幕监听模块,主要功能就是监听客户端的手机信息反馈给MainActivity模块,然后MainActivity 模块判读用户是否需要进行一些动作来选择是否发送紧急邮件。(e)SendMessage 模块是发送数据给服务端模块,主要功能是把手机的数据发送给服务端和连接服务端的功能。SendMessage 模块等待MainActivity 模块信息,如MainActivity模块通知SendMessage模块发送邮件,那么SendMessage模块会把这个指令发送给服务端。每个模块的工作关系如图2 所示。 图2 客户端实现过程 当服务端和客户端都部署完毕时,每当手机解锁,服务端都会收到提示,包含经纬度和客户端解锁的ip 地址,当服务端超过24 小时未收到手机解锁的消息时,服务端会进入紧急救援模式,设定的紧急联系人邮箱会收到预警邮件。用户下载并打开安卓客户端,在首页文本框内输入服务器的ip,点击发送按钮即代表启动成功,启动成功后,需给予所需权限,以确保该App 在后台的留存率。上述配置完成后,可以尝试将手机锁屏再解锁,观察服务端输出,若出现类似如下输出,则表示一切正常。 图3 App 使用效果 本文通过分析现在手机用户群体的特点,结合K-匿名算法,在保护用户位置隐私的同时,能够保障用户的人身安全。最后,设计了一个应急报警系统,该系统能够在紧急情况下,能够给自己设置的紧急联系人发送预警信息,包括用户最后出现的地理位置,途经路径等信息,经过测试,该系统能够有效运行在市面上大部分安卓手机。2 安卓手机应急报警系统实现
2.1 服务端实现过程
2.2 客户端实现过程
2.3 运行过程
3 总结