• 登录
  • 注册
  • 帮助中心

你是否遇到过这样的情况:前一天在某个社交媒体应用上搜索了一双洞洞鞋,结果第二天,你在一个看似毫不相关的购物应用上看到了同款鞋的推荐。

这会让你感到不安,开始回想是否在第二个应用中提及过这双鞋。

在确认没有的情况下,你可能会猜测,要么是“这两家公司之间秘密共享了我的数据”,要么是“天哪,手机的麦克风在偷听我说话”。

虽然这两种猜测,尤其是麦克风偷听,操作起来比较容易暴露,一旦被查到就一目了然,但考虑到当前互联网公司的行为底线,也不敢完全排除。

今天我想探讨的是,广告商其实有更隐蔽且安全的方式,能够跨应用将一双洞洞鞋推送给你:

只需要应用能够识别出“你的设备”即可。

例如,一台手机在应用 A 中搜索了洞洞鞋,那么这种偏好就会被记录在该设备名下。

当切换到应用 B,如果它识别出是同一台设备,就能继续推送你感兴趣的商品。它识别的是设备本身,而无需知道你的姓名或其他个人身份信息。

那么,广告商是如何记录这些信息的,这些信息又是如何被泄露的呢?

最近,我发现了一个安全团队开发的名为 Loupe 的应用。

它只有一个功能:告知用户手机应用究竟能获取多少数据,以及你每多授予一个权限,会暴露哪些信息。

总之,在使用 Loupe 之后,我真的不敢随意授予应用权限了,这真是一次深刻的学习。

当我刚打开 Loupe,不授予任何权限时,它就展示了它的能力。

它知道我将手机地区设置为新加坡,同时使用中英文输入法,我的设备是2023年9月激活的,从那天起我已复制了29034次内容,并且上次开机距今已有8天3小时44分钟。

甚至,它还能为我描绘出一个用户画像。它识别出我安装了 Steam 和 Discord,推测我可能是一位游戏玩家;又注意到我安装了 GitHub 和 Slack,从而推断我在科技行业工作。

以上信息仅仅是应用端显示的,如果你查看更详细的报告,会发现它知道得更多。

例如,它知道我的 iPhone 15 Pro 剩余105GB 存储空间,当前处于深色模式,屏幕亮度在50%以上,电量为60%,且未连接充电器;我使用的是双卡双待,两张卡都处于5G网络,甚至它还知道我此刻手机的倾斜角度和朝向。

你可能仍然觉得这些零散的信息,知道了又能怎样,能定位到我吗?

确实,仅凭这些信息无法定位。

**但是,当这些信息组合在一起,就形成了这台 iPhone 独一无二的特征,也就是设备指纹。**这足以让广告商在众多手机中辨认出你的 iPhone。

而且,这些信息是 Loupe 基于公开的 API 能够获取的:

如果像其他应用一样,我再授予 Loupe 相册、定位等权限,它又会知道哪些信息呢?

我尝试授予了相册权限。

很快 Loupe 就告知我,我的图库中有1119段视频和9371张图片,其中3033张带有地理位置信息,并列出了我到访次数最多的地点。

虽然 Loupe 的展示信息精确到“余杭区”,但这仅仅是为了方便展示。

要知道,照片中的 EXIF 信息包含精确到十米左右的经纬度。如果一个应用通过分析每个地点出现的频率和时间点,就能大致推测出我的居住小区、工作地点,以及在节假日突然出现的某个十八线小县城,很可能就是我的老家。

现在我有些明白了:有些应用明明没有获得我的定位权限,却总能推送周边的活动和信息,会不会就是因为我为了图方便,一次性授予了它们整个相册的权限?

我建议大家将所有应用的图片访问权限设置为通过系统图片选择器,即仅在需要时弹出选择界面,这样 iOS 默认不会将照片的定位信息发送给应用。

另外,平时遇到那些为了“方便”而请求开启全部权限的弹窗,也请记得选择“保持现状”。

接下来,我将授予 Loupe 本地网络权限,看看它能获取到什么。

说实话,平时谁会多想这个权限呢?不就是连接打印机或投屏吗?

但在我点击允许后,局域网内的所有同事电脑、HP 激光打印机、两台绿联 NAS 都被显示出来了。

当然,这个权限能够发现周围所有设备是合理的,否则也无法找到设备。

但我疑惑的是,这个权限不应该在我真正需要投屏时才弹出请求吗?

为什么很多应用仅仅是打开了它,就主动索要这个权限了呢?

后面的位置、蓝牙、日历权限,我不再详细介绍,大家可以参考截图上的信息。

总而言之,每多授予一个“允许”,应用对你的了解就越深入,你的设备指纹也就越清晰、越多元。

那么,我在应用 A 中被计算出的指纹和偏好,应用 B 是如何得知的呢?

答案是广告商。

许多应用本身不开发广告系统,而是集成现成的广告 SDK。你在应用中看到的开屏广告、信息流广告,都是这段代码从广告平台获取并展示给你的。

与此同时,SDK 会将你这台手机的特征信息回传给广告平台。

这样一来,你在应用 A 中留下的偏好信息,广告平台通过一次广播,应用 B、C、D 都能获知。

按理说,SDK 要识别你的手机,并不需要如此麻烦。

苹果原本提供了一个官方的识别码,称为 IDFV(Vendor Identifier),意为“同一家公司旗下的几个应用,共用一个标识符”。因此,如果你安装的几个应用都属于同一家公司,它们识别出你是同一用户,并不困难。

但是,一旦涉及跨公司,IDFV 就不再通用。此时,IDFA(Identifier for Advertisers)就派上用场了。IDFA 为每台手机生成一个独一无二的识别码,所有应用通用,专门用于广告行业进行跨应用的用户识别。

然而,问题又出现了。

2021年,苹果推出了“App 跟踪透明度”(ATT)框架,将 IDFA 的控制权交还给用户。应用要想使用 IDFA,必须先弹窗询问用户,如果用户选择“要求 App 不要跟踪”,那么该 IDFA 将被清零。

因此,到最后,广告商只能自己动手,采用这套设备指纹的技术策略。

那么,这套策略是否真的有应用在偷偷使用呢?

确实如此。

Loupe 的开发者团队 Mysk,此前就曾抓包过 Facebook、Instagram、Threads、Chrome、Spotify 等应用。他们发现,尽管这些应用在苹果的隐私清单中承诺“我们读取此信息,但绝不外传”,但实际上它们还是偷偷将用户手机的开机时间发送了出去。

这不禁让人疑惑,它们要开机时间有什么用呢?难道是为了比沃尔玛的塑料袋、武装直升机更独特的口味分析吗?

其实真相只有一个,那就是在拼凑设备指纹。

类似的情况在安卓阵营也出现过。

2025年,谷歌研究团队发表了一篇论文,他们分析了18万个安卓应用和22万个SDK。结果发现,在应用商店的热门应用中,有39.4%的应用集成了收集设备指纹的SDK。如果将范围缩小到交友和漫画类应用,这个比例更是飙升至82%和88%。

以上就是对这款应用的介绍。

目前 Loupe 完全免费且开源,我认为 iPhone 用户都可以下载体验一下(安卓用户可能需要稍等)。

当然,体验之后,也不必过度担忧。

毕竟,广告商想要推测你的喜好和购买意向,除了设备指纹,还有相似人群分析、账号打通、协同过滤等多种方法。

我认为 Loupe 最大的价值在于,它能让你清楚地了解哪些数据正在暴露,以及在什么情况下暴露,从而提高你的安全意识,在日常使用中更加谨慎。

图片、资料来源

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

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

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

返回顶部