你是否曾有过这样的体验:前一天在某个社交平台搜了某款鞋,结果第二天,在你一个毫不相关的购物应用里,就出现了这款鞋的推荐?你开始纳闷,自己是否在其他应用里提到过这双鞋,或者怀疑手机麦克风是否在“偷听”。虽然这些猜测有些夸张,尤其是麦克风的监听很容易被发现,但鉴于当前互联网应用的某些操作,我们也不能完全排除。
实际上,广告商有一种更隐蔽、更安全的方式,可以将同一款商品跨应用推送给你。这种方式仅需应用能够识别出“你的设备”即可。例如,一台手机在应用A中搜索了某款鞋,应用A便会记录下该设备的偏好。当你在应用B中打开时,如果应用B也能识别出是同一台设备,它便能继续推送你感兴趣的商品。这种识别是基于设备本身,而非你的个人身份信息。
那么,广告商是如何收集这些信息的,又是如何实现信息共享的呢?最近,一个安全团队开发了一款名为 Loupe 的应用,它的核心功能是向用户展示应用能够获取多少数据,以及授予的权限会暴露哪些信息。在试用 Loupe 后,你会更加谨慎地授予应用权限。
即使不授予任何权限,Loupe 也能展示一些设备的基本信息。例如,它能识别出手机的地区设置(如新加坡),键盘的语言组合(中英文),设备的激活时间(2023年9月),自激活以来复制操作的次数(29034次),以及上次开机的时间(8天3小时44分钟前)。它甚至能根据你安装的应用(如Steam、Discord、GitHub、Slack)来推断你的兴趣和职业领域,例如游戏玩家或科技行业从业者。
在更详细的报告中,Loupe还能揭示更多信息。以iPhone 15 Pro为例,它会显示剩余存储空间(105GB)、深色模式开启状态、屏幕亮度(约一半)、电量(60%)、是否连接充电器、双卡状态(均支持5G),甚至手机当前的倾斜角度和朝向。
虽然这些零散的信息本身不足以定位到你,但当它们组合起来,就形成了一台iPhone独一无二的“设备指纹”,足以让广告商从众多设备中识别出你的手机。而这仅仅是基于公开API获取的信息。
如果像其他应用那样,我们再授予 Loupe 相册、定位等权限,它又能获取多少信息呢?以相册权限为例,Loupe 会显示你图库中的视频(1119段)和图片(9371张)数量,其中带有地理位置信息的图片(3033张)以及常去的地点。即使Loupe展示的区域是“余杭区”,实际上照片中的EXIF信息可以包含精确到十米级别的经纬度。通过分析照片出现的位置和时间,应用可以推断出你的居住地、工作地点,甚至老家。
因此,即使没有明确授予定位权限,一些应用却能推送周边活动信息,这很可能与授予了相册权限有关。建议用户在iOS上,通过系统图片选择器授权,这样可以避免照片的定位信息被直接发送给应用。同时,对于那些为了“方便”而请求全部权限的弹窗,应选择“保持现状”。
再进一步,如果授予Loupe本地网络权限,它就能扫描到局域网内的所有设备,包括同事的电脑、打印机、NAS等。虽然显示周围设备是该权限的正常功能,但许多应用在用户并未主动进行投屏或打印操作时,就主动索要此权限,这令人费解。
此外,位置、蓝牙、日历等权限的授予,都会进一步加深应用对你的了解,使设备指纹更加清晰。
那么,你在应用A中形成的设备指纹和偏好,是如何被应用B知晓的呢?这通常是通过广告SDK实现的。许多应用并不自行搭建广告系统,而是集成第三方广告SDK。当你浏览应用内的广告时,这些SDK会将你手机的特征信息上传至广告平台。这样一来,你在应用A中产生的兴趣和偏好,就能被广告平台广泛传播,并被应用B、C、D等其他应用所获知。
为了识别设备,SDK原本可以利用苹果提供的IDFV(同一公司旗下应用共享ID)或IDFA(跨应用识别ID)。然而,自2021年苹果推出“App跟踪透明度”(ATT)政策后,IDFA的使用受到限制,用户可以选择“要求App不要跟踪”,导致IDFA失效。
因此,广告商不得不依赖设备指纹这一策略。Mysk团队曾抓包发现,Facebook、Instagram、Chrome等应用,尽管在隐私清单中承诺不会外传某些信息,却仍然会偷偷发送用户手机的开机时间等数据,这很可能就是为了拼凑设备指纹。
在安卓系统上,情况也类似。有研究表明,大量安卓应用和SDK中嵌入了收集设备指纹的代码,尤其是在交友和漫画类应用中,这一比例更高。
Loupe目前是免费开源的,iPhone用户可以尝试下载使用(安卓用户可能需要等待)。了解这些数据暴露的途径和原因,可以帮助我们提高安全意识,在日常使用中更加谨慎。毕竟,广告商除了设备指纹,还有其他多种方式来推测用户的偏好,例如相似人群分析、账号打通和协同过滤等。Loupe最大的价值在于,它让我们清晰地认识到哪些数据正在被收集,以及在何种情况下被收集,从而更好地保护个人隐私。


