ss1271's Site

风餐露宿,不可一日无码.

下一次,把你的手机放远一些——大数据及手机(携带设备)的隐私安全

| Comments

作为新进 Ph.D 学生已经开学半个月多。因为研究方向所及,所以或多或少读了有关模式识别(Pattern Recognition)和数据分析方面的东西。周三(16日)开组会的时候,和同导师的几个做相关领域的师兄就一个问题展开了比较激烈的讨论。

问题的起因是这样的:某与会小哥拿了一篇关于利用加速度计(Accelerometer)对用户行为进行后期分析匹配的文章1,而这篇不怎么正式的文章恰好是我一周以前读过收进bib里的,且因为研究需要,我的bib里几乎塞满了类似的paper,更联想起组会前一天正好读到说有使用放置在电脑键盘旁边的加速度计来还原用户在键盘上输入的内容2这个研究,我就说简要跟大家说了一下这个加速度计也被人用来还原用户输入的信息。于是这个paper交流会的主题就短时间内变成了大家讨论加速度计之类的传感器的信息采集与分析是否构成侵犯用户隐私、是否构成信息安全威胁。

所以就有了昨天(10月17日)我在 twitter 上感叹的:

以及

当时碍于时辰不早(凌晨3时许),尽管已经有了想展开多说几句的构想,但终究未能抵挡困意,现在有空便就我的拙见展开一下吧。

自从手机开始配备各式各样的传感器以来,其初衷都是更好的配合用户使用以及提供给用户新的操作体验。像自动旋转屏幕、指南针这些背后也都是传感器的功劳。因为传感器太常见,而且一般也认为传感器(GPS 除外)并不引起隐私担忧。因此现今手机系统都不对获取传感器数据做限制(GPS 除外),因此程序可以做到静默收集,然后伪装在平常功能里(比如联网)把数据发送出去。

截至 2013 年 8 月的 Gartner 数据显示,Android 和 iOS 市场占有率合起来达到 93.2%,这两大平台因为覆盖面广且均装备了种类繁多的传感器。相对来说,Android 上的传感器 API 全都可以自由访问,iOS 上有些许限制(比如有些传感器的 API 是私有的),二者传感器对比参照下面简表(版本表示从何时引入此 API):

传感器名称 Android iOS
加速度计/Accelerometer Android 1.5 iPhone OS 2.0
陀螺仪/Gyroscope Android 1.5 iOS 4.0
环境光强/Ambient Light Sensor Android 1.5 (私有 API)
磁场/Magnetometer Android 1.5 iPhone OS 3.0
气压/Pressure Android 1.5 N/A
距离传感器/Proximity Sensor Android 1.5 iPhone OS 3.0
相对湿度/Relative Humidity Android 4.0 N/A
环境温度/Ambient Temperature Android 1.5 N/A
指纹 1 N/A N/A

我们每个人都习惯了屏幕显示方向可以随着我们握持手机的姿势自动变化;习惯了打开导航程序可以让地图随着我们的前进方向自动旋转;习惯了摇一摇来undo(「摇一摇」我觉得在国内更普及的用法,不说你们也懂);有几个人真正把这些在我们眼皮底下记录我们另一种行踪的传感器所记录的数据当作隐私来考虑呢?

如果你认为这些只是数据,不涉及隐私,那么请继续阅读:

图为 Android 传感器座标系的定义

图为 Android 传感器座标系的定义

  1. 早在 2011 年其实就已经有学者在进行此类研究了,论文[^2]讨论的正是利用加速度计来探测用户敲击键盘时因为键盘键位相对距离的不同所产生的不同“地震波”,反应到加速度,就是加速度传感器三个轴上 z 轴相对的加速度变化。通过预先实验中对大量用户敲击键盘的 z 轴加速度数据进行采集可以建立一个模式库。与此同时对于字母构成的语言也可以建立一个针对键盘区域的高频词库(很类似我们目前手机输入法上自动纠错的功能)据此二者就可以在实际操作中对用户可能输入的内容进行推测。根据该论文作者的结论,在使用 iPhone 4 的情况下根据手机距离键盘的远近不同,其准确率可以达到 80%。
  2. 对于论文[^1]中提到的利用加速度计来对用户日常行为活动进行分析在相关学术界已经是家常便饭。该论文仅仅是个非常浅略的研究,如果你用 “accelerometer activity mobile” 为关键字在 ACM Digital Library 进行搜寻,相关结果更是多达 2859 条。而且和 CCAV 做的电视节目中展示的那种搜索结果不同,这一次是每一条都与关键字相关:都是利用移动设备的加速度传感器进行用户行为分析。他们的研究分析方法因为我没有通读,所以不太好直接下定论。但是对于[^1]中的研究方法,研究人员利用了神经网络(Artificial Neural Network, ANN)做数据处理,进行模式识别。
  3. 剑桥大学一位博士生的学位论文就是做针对行人在室内环境下定位的研究3。简要来说,这个研究使用了两个传感器:加速度计和陀螺仪(原文发表于 2008 年,彼时还没有集成加速度计和陀螺仪的智能手机出现,故使用的是 UMPC),而后作者为提高定位速度加入了对 WiFi 的探测,相信对于各大积极收集 WiFi SSID的作恶和不作恶的公司而言,搞到个 WiFi 数据库绝对不是难事。该研究的结论是,可以利用以上提到的设备,可以在 95% 的实验时间内,在 8725m2 的范围内将被参与实验者进行精度为 0.75m 的定位。不过相对前两个而言,这个研究不是那么的有代表性,因为这个例子中用到的 WiFi 网络探测在一些系统(如 Android )中,权限管理系统会提示用户授予相应权限(比如可能需要 ACCESS_NETWORK_STATE 这个 Permission),因此可能无法做到在完全静默的情况下收集信息。
  4. Stanford 大学博士生 Bojinov 的研究认为手机加速度计的数据可以被抽象提取处理,作为手机的唯一识别值(这个很容易理解,每个设备的物理特性,比如误差,都不太一样)。类似于利用 Cookies,这种特征识别可以被广告商利用来识别用户。

我再继续说的话,那么可以设想一下这样的情况: 某公司发布了一个仅仅需要联网使用的小 app(比如天气app啦,只要这个 app 的联网活动可以被表面上的正当功能所掩盖,那么这就达到要求了),而实际上这个 app 的真正功能是在后台进行不间断的传感器数据收集。只要把信息采集的时间间隔把握好,不异常消耗电力(比如你开了屏幕旋转,那么加速度计基本上就是一直在工作的,并没有带来异常的电力消耗),那么用户不会也没有机会察觉其传感器数据被采集了。而如果是天气程序做掩盖,更可以获取 GPS 数据。我前面已经说过,这个程序有正当的联网功能,所以表面上用户每次联网更新数据(刷个天气)的时候就可以正大光明把数据发送到远程服务器完成数据采集。

在远程服务器,对方可以对每个客户端的数据分类处理,根据我上面说的每个传感器所蕴藏的丰富数据,数据采集方可以轻松知道:

  • 你每天多少时间在开车、走、跑、跳、宅(加速度计、陀螺仪)
  • 多长时间花在打字上以及可能打了什么(加速度计)
  • 拿起手机多少次(加速度计、陀螺仪)
  • 相对精确的室外(需正当应用来掩盖 GPS 权限)和室内定位( WiFi 陀螺仪和加速度计)
  • 局部环境如何(气压计)

这实际上就是「大数据」,而上面只是很初步很初步的挖掘就可以得到的信息,再往下就是分析一下得到你活动的热点地区(需配合定位),如果有相应的数据库匹配,甚至可以知道你的名字。这样你在不知不觉中,就被有心的第三方建立了一套完整的数据库,而且还是和你个人生活习惯息息相关的一套数据库。

我都不愿意设想这样的传感器数据被「某些善于利用数据的机构」拿到会有什么后果。

所以你还认为传感器数据不是隐私吗?

下一次,把你的手机放远一些。

注: [作者对本文保留所有权利,如需转载请在评论中联络本人]


  1. 参考论文:Detecting User Activities using the Accelerometer on Android Smartphones

  2. iPhone 5s 有 TouchID 作为指纹扫描设备,相应的 Android 早于 iPhone 5s 也有引入指纹设备,但两个系统均未能提供相关的 API,所以此处都是不可用

  3. 参考论文:(sp)iPhone: decoding vibrations from nearby keyboards using mobile phone accelerometers

  4. 参考论文:Pedestrian Localisation for Indoor Environments

Comments