简单聊聊很早之前的传感器(SensorID)漏洞。

0x01
其实也不算什么干货,拾人牙慧罢了。
最近大佬们也不来论坛里发重磅研究成果了。
我发点之前看过小内容吸引点大佬过来。
帖子主要讲一下如何利用传感器标定漏洞来实现设备唯一ID,进而跨进程追踪用户。

0x02
作者是剑桥大佬,文章已经被IEEE收录,链接

FAQ
https://sensorid.cl.cam.ac.uk/

POC
https://sensorid.cl.cam.ac.uk/gyroID/

之前媒体也报道过。不过国内这帮科技媒体的水平,没讲原理。我稍微白话几句。不一定准确,力争能够描述论文大意。

世界上没有两片一样的树叶(传感器)。传感器被制造出来的时候,都会有误差。所以传感器在出厂的时候,都会进行一下标定,然后把这个误差消除,消除的办法就是进行一下补偿。
就好比我制造一个电子游标卡尺,有个可以用来读数的显示屏那种。但是由于制造仪器的误差,每把尺子被造出来的时候,都会有个误差。假如这把尺子的误差是0.01mm,那么我在进行显示的时候,就把这个0.01m加到实际测量值(显示值)里,作为补偿。每把尺子的误差都不一样,如果我们能够得到这个误差,就可以把这个误差作为设备的唯一ID用来追踪设备。这就是传感器漏洞的基本原理。

论文里主要讲了一下怎么利用这个漏洞。先拿一段传感器数据,然后反推出来这个误差并生产一个唯一ID。

这个漏洞可以在Safari里运行,也可以在App里运行。而且不只是苹果,Google的Pixel也有这个问题,不过后来都给修复了,具体的还是看大佬的论文吧。GG思密达。

6 个赞

一脸懵逼的进去 一脸懵逼的出来

1 个赞

可惜现在不好使了。。最近一直在搞设备指纹的问题,头疼啊

设备指纹我已经搞定了。 我感觉都可以绕路去搞个CVE了、

1 个赞

还是利用传感器吗?

没有用到传感器。

大佬能提供一下思路嘛 :smiling_face_with_three_hearts:

哈哈哈哈,真的不能。不过你可以先去看看别人家的。现在市面上的方案有好多了。数盟,中广协,中国电信泰尔终端实验室卓信,百度,阿里,热云。看得多了自然就知道怎么做了。

最后还是以从端上采集的信息作为判断依据嘛?

当然了,源头肯定是在移动端了。比如微信步数,源头肯定是在移动端。 但是后端也会做一些辅助判断,比如你从0直接跃迁到99999,那肯定是作弊了。

那这个信息收集的SDK要做的很坚固呐。。 :face_with_monocle:

在iOS的大框架下,在OC的runtime范围内,总能有方法找到破绽。混淆框架的FAQ里也说了,框架本身并不提供安全功能,只能延缓攻击者入侵。 有志者事竟成。加油老铁

刷机,重置系统,可以保持唯一?

刷机这个事,就别再讨论范围内了。 刷完什么都变了。
重置有可能会保持唯一。

那什么场景,唯一了?

什么意思,猜到了什么?

特定情况下,保持稳定?

为啥我听出了一些阿里味。。。

这个和阿里没什么关系吧。唯一,不能保证刷机,恢复,似乎意义就没那么大了吧。

那我反问你一句,什么ID能够保持刷机恢复依旧唯一?
IDFA能吗?