Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

安全论文每日读 2015.03.23

今天介绍的论文PowerSpy: Location Tracking using Mobile Device Power Analysis是一篇通过功耗旁路分析获取移动智能设备GPS隐私信息的攻击论文

下载

简介

对于移动用户来说,位置信息是敏感信息,是需要保护的信息。例如,应用程序需要用户的允许才能读取GPS数据,或者基于蜂窝网或者Wi-Fi连接的模糊位置数据。

本文的工作发现应用程序可以绕过所有的限制,直接获得手机的位置。这是因为他们观察到手机的位置明显地受到手机的蜂窝无线电功耗影响。 该功耗主要受到手机与基站的距离,以及他们中间是否有障碍物的影响。如果手机距离基站越近,他们之间的障碍物越少,手机消耗的能量越少。

我们工作的主要障碍是,除了蜂窝无线电,手机里很多组件和应用同时会消耗能量。同时,手机当前的状态也会影响功耗(打电话,数据传输,或者空闲)。然而,通过机器学习的方法,在一段时间内测量手机的总能量消耗能够发现用户的位置。

贡献

基于手机之前的功耗数据,我们使用机器学习的方法可以区分手机用户的路径。我们仅仅使用的是总功耗, 实现:

  • 区分路径
  • 实时追踪
  • 推测新路径

模型与假设

  • 假设恶意的程序已经安全在手机上,用来跟踪用户。这个恶意程序不能获得GPS或者蜂窝网数据。
  • 假设程序可以获取网络连接信息和功率数据:功耗具有足够的变量来表现唯一的特性
  • 假设敌手预先知道用户将要走的区域或者路径的知识
  • 提出的问题:当开车的时候接收到到电话,功率图上会出现peak, 作者提出可以采用一些技术处理这个问题

原理

位置信息影响信号强度和功率消耗;功率消耗可以揭露位置

Fig 1

研究内容

  • 区分路径:根据已有的数据样本,将新的数据样本进行比对和打分

  • 实时追踪:目标是根据已有的训练集合和实际数据,定位设备并且实时追踪它。 1 首先,和区分路径一样,将测量的数据与已有的路径profile进行比较。不同之处在于,我们使用更小的路径profile。 2 其次,前面的方法可能会有错误,我们使用简单的运动模型算法来改进追踪。

  • 推测新路径:假设移动设备拥有者知道区域,然而区域的路径数目非常大,实际上不能记录某一条。 1 利用隐藏马尔可夫链(HMM)建模,再根据粒子滤波(Particle Filter)方法估计每一个状态,输出N条不同长度的路径(Alg. 2); 2 在这N条不同的路径中,再选一条最优路径, 包含出现次数最多的road segment(Alg. 3).

实验

实验设备:Nexus 4,使用PowerSpy Android应用来测量信号强度,电压,电流, GPS坐标,温度,放电状态,蜂窝网ID.

  • 区分路径: 对4条19km的不同路径和43条曲线的数据库,成功的概率是93%. 对7条不同路径和51条曲线的数据库,成功的概率是90.2%

Fig 2

  • 实时追踪:使用10条训练曲线和一条测试曲线,分析收敛时间和距离误差. 收敛时间大概在2分钟,80%误差少于1km。 Fig 3

  • 推测新路径:预先用手机记录了42个道路段的数据, 再使用两部手机进行实验,两部手机在后台运行不同数目的应用程序。第一部手机运行适中数目的应用程序,email,gmail等。第二部手机运行大量的应用程序,facebook, skype等等。测试距离误差和精确位置的百分比。 Fig 4

未来的研究方向

  1. 推测功耗的方法: 新的手机内部包括电流表,可直接读取功耗数据。其他的手机提供电压数据,目前有研究通过读取电压变化得到手机的功耗。
  2. 基于电量区分路径的方案:电量是显示功耗非常粗糙的方式。虽然在我们的研究中,它不太精确。但是,如果从它提取更好的特征,或者使用更好的方法,可以实现基于电量来区分路径/推测位置的方案。在给定HTML 5 Battery API(用JavaScript在网页上获取电池状态),测试这种方案将会更加有趣。研究发现,将来增加电量的采样速率可能会使这个API非常危险,甚至允许恶意的网络攻击。
  3. 从3G扩展到LTE
  4. 对数据样本进行优化
  5. 收集大量的数据样本

防御

不可防御: 也许通过增加噪声,限制采样频率可以保护位置隐私。然而,该方法不依赖于高采样频率。

功率数据和网络连接的危险组合

安全硬件设计:关于功耗的安全问题在于它泄漏了收发器电路和与信号强度相关的通信任务的功耗。因此,仅仅提供处理器的功耗(去除接收发送模块的功耗)是一个平衡功能和隐私的方法

root权限管理: 简单有效的方法是需要root用户权限才可以获取手机的功耗数据

功耗作为一项粗糙的位置标识: 类似于蜂窝网ID,需要合适的权限获取功耗