你是否经历过这样的情况:前一天在某个社交应用上搜索了一款洞洞鞋,第二天却在毫不相关的购物应用中看到了同款鞋的推荐。
你可能会开始困惑,回想自己是否在其他应用中也提及过这双鞋。在确认没有后,你可能会猜测:要么是这些公司之间共享了你的数据,要么是手机的麦克风在秘密录音。
虽然这两种猜测都有些离谱,尤其是麦克风监听很容易被发现,但考虑到互联网公司的行为,也不能完全排除。
然而,广告商其实有更隐蔽且安全的方法,能够实现跨应用推送你搜索过的商品:他们只需要能够识别出“你的设备”即可。
例如,当一台手机在一个应用中搜索了洞洞鞋,这个偏好就会被记录下来。当这台手机切换到另一个应用时,如果该应用能够识别出是同一台设备,便可以继续推送相关的商品。这种识别是基于设备本身,而无需知道你的个人身份信息。
那么,广告商是如何收集这些信息的,这些信息又是如何被共享的呢?
最近,一个名为 Loupe 的安全应用引起了关注。它旨在向用户展示,手机应用能够获取多少数据,以及授予不同权限会暴露哪些信息。
通过使用 Loupe,用户可以更清楚地认识到随意授予应用权限的风险。
例如,在不授予任何权限的情况下,Loupe 就能识别出手机的地区设置为新加坡,键盘支持中英文混合输入,设备于2023年9月激活,自激活以来已执行29034次复制操作,并且上次开机是8天3小时44分钟前。
此外,它还能根据用户安装的 Steam、Discord、GitHub 和 Slack 等应用,推断出用户可能是游戏爱好者或从事科技行业。
以上信息仅是应用界面显示的,更详细的报告还会揭示更多信息。例如,Loupe 可以知道 iPhone 15 Pro 剩余 105GB 存储空间,当前使用深色模式,屏幕亮度超过一半,电量为60%且未连接充电器;支持双卡双待,两张卡均处于5G网络;甚至还能识别手机的倾斜角度和朝向。
你可能会觉得这些零散的信息不足以构成威胁,也无法定位到个人。
确实如此。但是,当这些信息组合在一起时,就形成了一台 iPhone 独一无二的“设备指纹”,足以让广告商在众多设备中辨认出你的手机。
而且,这仅仅是 Loupe 基于公开API获取的信息。如果授予 Loupe 相册、定位等其他权限,它还能获取更多信息。
例如,授予相册权限后,Loupe 可以显示图库中包含1119段视频和9371张照片,其中3033张带有地理位置信息,并列出经常访问的地点。
虽然 Loupe 显示的地点可能只精确到“余杭区”,但这只是为了便于展示。照片中的 EXIF 信息包含精确到十米左右的经纬度。通过分析每个地点出现的频率和时间,应用可以大致推断出用户的居住地、工作地点,以及节假日可能返回的老家。
这或许解释了为什么有些应用即使未获得定位权限,却能推送周边活动信息,原因可能是用户授予了相册的完全访问权限。
建议用户将所有应用的图片访问权限设置为通过系统图片选择器进行授权,这样 iOS 默认不会将照片的定位信息发送给应用。
同时,对于那些以“方便”为由请求开启全部权限的弹窗,建议选择“保持现状”。
当 Loupe 获得本地网络权限时,它能够发现局域网内的所有设备,包括同事的电脑、打印机和 NAS。虽然发现局域网设备是该权限的合理功能,但一些应用在用户并未明确需要投屏等功能时就主动请求此权限,这一点值得关注。
后续的位置、蓝牙、日历等权限,同样会进一步加深应用对用户的了解,并使设备指纹更加清晰和多元化。
那么,在一个应用中收集到的设备指纹和用户偏好,是如何被其他应用获知的呢?
这通常是通过广告商实现的。许多应用并不自行构建广告系统,而是集成现成的广告 SDK。这些 SDK 负责从广告平台获取广告内容并展示给用户。
与此同时,SDK 会将用户设备的特征信息回传给广告平台。这样一来,用户在一个应用中形成的偏好信息,就可以被广告平台广泛传播,其他应用也能够获知。
通常情况下,SDK 识别设备并不需要如此复杂。苹果曾提供 IDFV(同一公司旗下 App 的共享识别码)和 IDFA(跨 App 识别码)。然而,自2021年苹果推出“App 跟踪透明度”(ATT)功能后,用户获得了控制 IDFA 使用的权限,应用需要用户同意才能进行跟踪。
因此,广告商转而依赖设备指纹技术。
Mysk 团队曾发现 Facebook、Instagram、Threads、Chrome 和 Spotify 等应用,虽然在苹果隐私清单中承诺不外传某些信息,但实际上仍会偷偷发送用户的开机时间等信息,这被认为是用于拼凑设备指纹。
类似的情况也存在于安卓平台。谷歌的一项研究发现,大量安卓应用和 SDK 包含收集设备指纹的功能,尤其是在交友和漫画类应用中,这一比例更高。
Loupe 应用目前是免费且开源的,iPhone 用户可以尝试使用。该应用的主要作用是帮助用户了解哪些数据被暴露,以及在何种情况下暴露,从而提高安全意识。

