近期,一位iOS开发者Tommy Mysk发现并测试了加速度计的数据被读取的情况,在社交媒体上引发热议。
除了加速度计,核心运动框架中还有陀螺仪,气压计等高精度的测量设备。它们的数据可以用于很多应用程序。
而这次,以隐私保护著称的iOS在这个点上似乎疏漏了。
Tommy发现,目前iOS允许任何已安装的应用程序在未经用户明确许可的情况下访问加速度计数据。
核心运动模块大有文章
不过就凭加速度计,能有什么用?
你很难想象,凭借你的加速度数据,配合核心运动模块中的陀螺仪等设备,可以收集到非常精准的信息。
首先,不同的运动状态都会有不同的加速度变化分布。
因此,加速度可以反映出你持握手机的方式,是站是卧,是走路还是骑车,以及计步。
虽然iPhone上的计步器受系统权限保护,但是很多计步算法可以直接访问加速度数据,用来估测你的步数。
其次,当你拿着手机时,加速度计可以检测到身体的轻微振动,这部分数据可以用来检测心率,甚至还能预测心率。
飞利浦和布里斯托大学的研究人员就曾在Arxiv上发表过一篇相关论文,只使用传感器数据,通过算法预测心率。
还有,在公交车或者地铁上无聊怎么办?刷刷社交软件?
也会有泄露风险。
假如同一辆车上的乘客也打开了和你一样的应用,如果这个软件读取加速度数据的话,就能确定你们两个有同样的振动模式,例如起步,左转,刹车。
即使你关闭了定位权限,如果另一个人没有关闭,就可以通过他的位置确定你的位置,在哪一趟公交车或者地铁上。
更可怕的是,加速度计还可以根据扬声器的声波振动逆向还原出你的声音。
而如果应用需要更高的采样频率,则必须声明权限:
文章发表在信息安全四大会议之一NDSS上,证实了此类攻击的可行性及其严重性。
总结起来,加速度计能反映的信息几乎涉及方方面面……
App实测
Tommy还实际检测了Facebook等App读取加速度计数据的情况。
把iPhone连接到Xcode上打开控制台后:就一直在读取加速度计数据。
不过,虽然加速度数据的读取无孔不入,但是也有解决办法。
目前App只能在前台访问加速度计数据,iOS会阻止后台应用读取数据。
从前台退出后,读取行为就停止了:
所以用完App后及时清理前台是一个不错的办法。
对于安卓用户来说,安卓系统在Android 12中对加速度计,陀螺仪和地磁场传感器的采样率做出了限制:
虽然没有彻底解决,但是已经能对采集加速度数据还原语音等行为作出限制。
因为人声一般在85Hz以上,而传感器采样率限制为200Hz以下的话,能完整恢复的语音信号会限制在100Hz以下。
这样能采集到的有用信息就比较少了。
而如果应用需要更高的采样频率,则必须声明权限:
不过,针对Tommy小哥提出的这个问题,也有人发表不同的意见。
比如有网友就提出,关键还是准确率如何:
现在“电脑能预测……”这类的文章可太多了,实际上任何信息都能预测点什么东西,通常只比瞎猜好一点点……
另一个高赞评论则表示:
定位和活动监测还是很可信的,但是像泄露心率,还原声音这样的场景不太能说服我,不过能知道有这种事还是挺好的。
你怎么看呢?
[1]https://www.mysk.blog/2021/10/24/accelerometer-ios/
[2]https://dl.acm.org/doi/abs/10.1145/3309074.3309076
[3]https://icsr.zju.edu.cn/news/images/319.html
本文授权自公众号量子位
责编:Demi