你是否曾有过这样的体验:前一天在某个社交应用上搜索了某款洞洞鞋,第二天却在另一个毫不相关的购物应用上看到了同款鞋的推荐?

这会让你开始怀疑,自己是否在第二个应用中也搜索过这款鞋。在确认没有后,你可能会推测,要么是“两家公司在暗中共享数据”,要么就是“手机的麦克风在监听我的对话”。

尽管这两种猜测都有些极端,尤其是麦克风监听很容易被发现,但考虑到当今互联网公司的行为,也不能完全排除。

然而,广告商们其实还有一种更为隐蔽且安全的方式,让你在不同应用间都能看到同一款洞洞鞋的广告:

这种方式只需要应用能够识别出“你的手机”即可。

例如,当一台手机在应用 A 中搜索了洞洞鞋,这种偏好就会与该设备关联。当用户切换到应用 B,只要应用 B 能够识别出是同一台设备,就可以继续推送这款鞋的广告。它识别的是设备本身,而无需知道用户的身份信息。

那么,广告商是如何收集这些信息的,这些信息又是如何被共享的呢?

最近,一个名为 Loupe 的安全应用引起了关注。

Loupe 的主要功能是向用户展示,手机应用究竟能够获取多少数据,以及用户每授予一个权限,会暴露哪些信息。

在体验 Loupe 后,用户可能会对随意授予应用权限感到更加谨慎。

例如,当用户初次打开 Loupe,即使不授予任何权限,它也能展示出不少信息。它能够识别出手机的地区设置为新加坡,键盘支持中英文混合输入,设备是在2023年9月激活的,自激活以来已复制了29034次,并且距离上次开机已经过去了8天3小时44分钟。

此外,它还能根据用户安装的应用,如 Steam 和 Discord,推测用户可能是游戏爱好者;而 GitHub 和 Slack 的存在,则可能表明用户在科技行业工作。

以上信息仅是应用界面展示的一部分。如果查看更详细的报告,会发现它能获取更多信息。

例如,它能得知用户的 iPhone 15 Pro 剩余 105GB 存储空间,当前处于深色模式,屏幕亮度约一半,电量为60%,未连接充电器;设备支持双卡双待,两张卡均处于5G网络,甚至还能感知到手机当前的倾斜角度和方向。

你可能会觉得,这些零散的信息似乎不足以定位到你。

确实如此。

但是,当这些信息组合在一起,就形成了一台 iPhone 独一无二的特征,即“设备指纹”。 广告商可以利用这个指纹,在众多设备中识别出你的 iPhone。

更重要的是,以上信息是 Loupe 基于公开的 API 就能获取到的。

如果像其他应用一样,授予 Loupe 访问相册、定位等权限,它又能获取到哪些信息呢?

用户尝试授予 Loupe 相册权限后,Loupe 很快显示,用户的图库中有1119段视频和9371张图片,其中3033张带有地理位置信息,并列出了用户最常出现的地点。

尽管 Loupe 显示的地点信息仅精确到“余杭区”,但这只是为了方便展示。要知道,照片的 EXIF 信息包含精确到十米左右的经纬度。通过分析不同地点出现的时间和频率,应用可以大致推测出用户的居住地、工作地点,以及节假日可能回乡的地点。

这让用户开始思考,为什么有些应用即使没有获得定位权限,却能推送周边活动和信息,是否是因为用户授予了相册的全部访问权限。

建议用户将所有应用设置为使用系统图片选择器,在 iOS 中,这样做默认不会将照片的定位信息发送给应用。

另外,对于那些为了“方便”而请求开启全部权限的弹窗,建议选择“保持现状”。

接着,用户授予 Loupe 本地网络权限后,Loupe 展示了局域网内的所有同事电脑、HP 激光打印机以及两台绿联 NAS 设备。

虽然看到周围设备是本地网络权限的合理功能,但令人疑惑的是,为何很多应用在仅被打开的情况下,就开始请求这些权限。

后续的位置、蓝牙、日历等权限,同样会加深应用对用户的了解,并使设备指纹更加清晰和多样化。

那么,在应用 A 中被识别出的设备指纹和用户偏好,是如何被应用 B 得知的呢?

答案在于广告商。许多应用并未自行开发广告系统,而是集成了现成的广告 SDK。用户在应用中看到的开屏广告或信息流广告,就是由这些 SDK 从广告平台获取并展示的。

与此同时,这些 SDK 会将用户的设备特征信息回传给广告平台。

这样一来,用户在应用 A 中留下的偏好信息,就会被广告平台传播给应用 B、C、D 等。

理论上,SDK 识别用户设备无需如此复杂。苹果曾提供过 IDFV(Identifier For Vendor),允许同一公司旗下的应用共享一个标识符,方便识别同一开发者发布的应用中的用户。

但当涉及跨公司识别时,IDFA(Identifier For Advertisers)便被启用。IDFA 为每台设备生成一个唯一的、通用的标识符,专门用于广告行业在不同应用间追踪用户。

然而,情况有所改变。

2021年,苹果推出了“App 跟踪透明度”(ATT)框架,将 IDFA 的控制权交还给用户。应用若要使用 IDFA,必须先弹窗询问用户是否同意跟踪。一旦用户选择“要求 App 不要跟踪”,该标识符即被清零。

因此,广告商不得不转向使用设备指纹这一策略。

那么,是否真的有应用在暗中使用这种策略?

Loupe 的开发者团队 Mysk 曾对 Facebook、Instagram、Threads、Chrome 和 Spotify 等应用进行过检测。他们发现,尽管这些应用在苹果的隐私清单中声明不会外传某些信息,但实际上仍在偷偷发送用户的手机开机时间。

开发者对应用收集开机时间的目的表示不解,认为这似乎与用户偏好无关。

但真相很可能是在拼凑设备指纹。

类似的情况在安卓平台也存在。2025年,谷歌的研究团队发表论文指出,在对18万个安卓应用和22万个SDK的分析中,发现应用商店中的热门应用有39.4%集成了收集设备指纹的SDK。而在交友和漫画类应用中,这一比例分别高达82%和88%。

以上是关于 Loupe 应用的介绍。

目前,Loupe 完全免费且开源,iPhone 用户可以尝试下载使用(安卓用户可能需要等待)。

当然,体验过后也无需过度担忧。广告商在猜测用户喜好和购买意向方面,除了设备指纹,还有相似人群画像、账号打通、协同过滤等多种手段。

Loupe 的主要价值在于,它能够帮助用户了解自身哪些数据正在暴露,以及暴露的场景,从而提高用户的安全意识,并促使他们在日常使用中更加谨慎。

图片和资料来源:

https://mysk.blog/2024/05/03/apple-required-reason-api/

https://github.com/mysk-research/loupe

本文来源于微信公众号“差评X.PIN”,作者:刺猬,编辑:面线 莽山烙铁头,已获36氪授权发布。