iPhone 应用程序会通过加速度计泄漏关于您的哪些信息?

  • 它并不需要您给予的权限。您甚至都不会知道它已经被拿走了。

几乎每一个现代智能手机都配备了加速度计,顾名思义,这是一个测量加速度的传感器。它最常用于检测设备的方向。但它还有许多其他用途,无论是作为赛车游戏中的游戏控制器,还是作为计算日常步数的计步器,或者像 Apple Watch 中看到的那样,用于检测跌倒。也有一些研究是为了开发新的加速度计应用:估计心率、呼吸率,甚至作为仅使用加速度计的基本音频监听器。目前,iOS允许任何已安装的应用程序在没有用户明确许可的情况下访问加速度计数据。好奇的应用程序可能会在用户不知情或未允许的情况下,通过加速度计了解用户的许多私密信息。

看一个视频:

iOS中的加速器

iPhone 配备了精确的加速度计和陀螺仪,它可以高精度地测量您的 iPhone 的高度、旋转率和加速度。

史蒂夫·乔布斯在介绍 iPhone 4 时展示了这两个传感器的功能。

加速度计和陀螺仪在iOS中被捆绑在一起,是核心运动框架的一部分。为了简洁起见,下面将只说加速度计来指代这两个传感器。

加速度计有大量的应用,许多应用都依赖它。大多数用户不会意识到自己最喜欢的应用程序在使用加速度计,这只是因为应用程序不需要权限就可以读取加速度计数据。与访问位置服务和蓝牙不同,对加速度计的访问被自动授予 iPhone 上的所有应用程序。因此,应用程序可以不受任何限制地从加速度计上读取测量数据。应用程序只能在前台活动时读取加速度计,iOS防止在后台运行的应用程序读取测量值。

访问受系统权限保护的资源的应用程序必须说明他们为什么需要这样的访问。开发者必须用简单的描述来表述原因,以便让用户了解。当应用程序向用户请求权限时,iOS会在权限对话中显示描述。没有为他们需要的每个权限提供这种信息的应用程序将不会被苹果的应用程序审查团队批准。但是,由于对加速度计的访问不受系统权限的保护,开发者不需要告知用户他们需要访问的原因。

Telegram 描述了为什么它需要访问相机

乍一看,加速度计数据似乎是无害的。它只是关于移动和旋转手机,对吗?这能侵犯您的隐私吗?…… 其实不然。您真的不应该小看它。

可能出现的情况

当您拿着手机时,加速度计的测量值一直在被收集。iOS让在前台活动的应用程序可以访问这些测量值。应用程序可以选择忽略这些测量值或读取它们。应用程序对测量结果的处理是没有界限的,但这里有一些诡异的情况。

1、运动和活动

加速度计数据反映了您如何持有您的手机和您如何移动。一个应用程序可以知道您是否在躺着、坐着、走路或骑自行车时使用手机。该应用程序还可以计算您的步数。尽管对 iPhone 上的计步器的访问受到系统权限的保护,但是有许多复杂的算法处理加速度计数据,正是为了达到这个目的。

值得一提的是,iPhone 还配备了一个气压计,一个测量气压和海拔的传感器。气压计也是核心运动框架的一部分,访问它不需要任何许可。因此,任何应用程序都可以计算出您的海拔高度,并测量您所处环境中的空气压力。因此,任何应用程序都可以在使用时知道您是否在乘坐公共汽车、火车或飞机。

2、心率

加速度计可以检测到您的手和身体在持有手机时的轻微运动。研究人员可以使用这些数据来估计您的心率。因此,一个应用程序有可能在您使用它时知道您的心率。

3、呼吸率

与心率类似,研究人员可以使用加速度计数据来估计您的呼吸频率,甚至诊断某些疾病。

4、精确的位置

加速度计数据本身不包含任何位置信息,但是,它可以用来根据环境中的振动模式来推断您的确切位置。

为了说明这一概念,请考虑以下例子。

您乘坐公交车上下班。当坐在公交车上时,您打开了您最喜欢的社交应用程序。尽管这是您最喜欢的应用程序,但您并不信任它,不愿意与它分享您的位置。在下一站,一位乘客上了公交车。该乘客坐在公交车上,打开了同一个社交应用程序。但该乘客与该应用分享了自己的精确位置。现在,如果这个社交应用程序正在读取您的手机以及那位乘客的手机上的加速度计数据,该应用程序就可以很容易地找出两部手机都经历了相同的振动模式。事实上,两部手机都会记录相同的振动,例如,当公交车启动、停止和向左或向右转时。该应用程序现在知道您和那位乘客一起在同一个环境中,因此是同一个位置。如果您收到该应用程序的推荐,建议把那位乘客加为 “好友”,请不要感到惊讶。

5、记录音频

手机扬声器产生的声波会导致手机振动。由于每个声音都会产生独特的振动,研究人员就能够分析这些振动,并通过倒推的方式来重建原始声音。

因此,如果您正在打电话并使用了手机扬声器,一个应用程序就可以拾取由扬声器产生并由加速度计记录的振动。这样,该应用程序就可以在不接触麦克风的情况下记录通话内容,尽管只有电话中对方的声音会被记录下来。

有什么例子吗?

我测试了几个应用程序,检查它们是否在没有明确原因的情况下读取加速度计数据。下面是一些例子。

1、Facebook

Facebook 一直在读取加速度计。如果您在浏览该应用程序时检测到设备的震动,Facebook 实际上会显示一个支持提示。这可能是 Facebook 读取加速度计数据的一个原因。该提示有一个选项可以关闭它,然而,关闭它并不能阻止该应用程序继续读取加速度计数据。

2、Instagram

Instagram 只在DM中读取加速度计,并且只要用户在DM视图中就会一直读取。

3、WhatsApp

WhatsApp 使用加速度计来为聊天壁纸添加运动效果。默认情况下它是启用的,但您可以在设置中关闭这个效果。当效果关闭时,应用程序会停止读取加速度计。这里提到 WhatsApp 是因为它属于 Facebook。

4、其他应用程序

以下应用程序没有显示任何读取加速度计的迹象,没有明确的原因:Facebook Messenger, Signal, Slack, Telegram, TikTok, Threema, Twitter 和 WeChat。

下一节将解释如何找出读取加速度计的应用程序。

一点点技术

如前所述,对于用户来说,要知道一个应用程序是否正在读取加速度计是有点困难的,但对于开发者来说却不是。我使用了之前在剪贴板研究中使用的同样的方法。Xcode 提供了一个选项来查看 iPhone 的系统日志。

要做到这一点,您需要将 iPhone 连接到 Xcode 并打开 iPhone 的控制台。控制台显示大量的日志信息。为了减少噪音,在搜索栏中输入 “加速度计”。现在您将只看到读取加速度计的进程,或应用程序。下面的截图显示了 Instagram 读取加速度计时的日志信息。

Instagram 在读取加速度计时的日志消息

该视频说明了实际过程:

那么浏览器呢?

浏览器也可以在没有许可的情况下访问加速度计数据,就像其他iOS应用程序一样。您可能会问:浏览器会将加速度计数据转发给您访问的网站吗?

在iOS 13中,苹果在 Safari 中引入了一个权限。当网站要求提供加速度计数据时,会向用户展示一个对话框。这一变化是由一项研究引发的,该研究显示许多流行的网站包括读取加速度计数据的脚本。由于所有iOS浏览器都被强制使用 WebKit,因此无论您使用的是哪种浏览器,无论是 Safari、Firefox 还是 Google Chrome,该权限都能保护对加速度计的访问。

而这里要向安卓用户说明的是:这也适用于安卓上的谷歌浏览器。安卓上的谷歌浏览器默认与您访问的每个网站共享运动传感器的数据。运动传感器实际上指的是加速计、陀螺仪和气压计传感器。好消息是您可以改变这一默认行为。虽然有很多理由应该建议您放弃谷歌浏览器并切换到其他隐私型浏览器,但这个加速度计问题不是其中之一。

因此,如果谷歌浏览器是您在安卓手机上的首选浏览器,而且您对与您访问的网站共享运动传感器感到不舒服,这里是您禁用它的方法

以下网站允许您测试浏览器如何处理加速度计的访问。

对于安卓系统,打开这个链接,检查手机访问的网站是否跟踪您的动作:https://intel.github.io/generic-sensor-demos/orientation-phone/

对于iOS,打开这个链接,点击左上角的按钮:

https://accelerometerdemo.netlify.app

进一步阅读:

iPhone Apps Can Tell Many Things About You Through the Accelerometer 

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据