预装系统应用的隐私盲区:天气应用将位置收藏转化为可追踪唯一标识

admin 2026-03-03 07:03:28 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 三星设备预装的天气应用通过向api.weather.com发送周期性请求,其中包含用户保存位置对应的placeid哈希值。这些placeid组合形成几乎唯一的设备指纹,能在IP变更后保持稳定,并被服务方解析为具体位置。研究发现96.4%的用户指纹唯一,且应用硬编码的API密钥允许任意客户端访问位置解析服务,揭示了预装系统应用在用户不知情下生成持久追踪标识的风险。 综合评分: 78 文章分类: 移动安全,数据安全,隐私保护,应用安全,供应链安全


cover_image

预装系统应用的隐私盲区:天气应用将位置收藏转化为可追踪唯一标识

原创

黑鸟 黑鸟

黑鸟

2026年2月23日 23:04 新加坡

三星设备出厂预装的天气应用,会以固定周期向天气频道公司(The Weather Company)的 API 接口api.weather.com发送周期性 HTTP 请求。每一条请求中都包含一个placeid参数, 这是一串 64 位的十六进制字符串,格式符合 SHA-256 摘要特征,与用户在天气应用中保存的位置一一对应。

用户保存的多个位置对应的placeid值组合在一起,会形成一套设备级的指纹标识。这套指纹几乎能实现单设备唯一,可在 IP 地址变更后依然保持稳定,且能被 API 服务提供方轻易获取与追踪。

这并非理论层面的安全风险。

一项针对 5 天内、42 位三星设备用户提交的 9211 条天气 API 请求的分析结果显示,placeid组合在 96.4% 的案例中生成了唯一的用户标识符,且在整个观察周期内,标识符的稳定性均得到验证。

placeid的运行机制

#

三星天气应用会按照固定周期向天气 API 发起轮询,为用户保存的每一个位置请求预报数据、空气质量指数与位置元数据。每一次请求的 URL 参数中,都必然携带placeid字段,典型的请求格式如下:

GET /v2/aggcommon/v3-location-point;v3alertsHeadlines;v3-wx-observations-current    ?par=samsung_widget    &placeid=49cf42bf46ce84e09f51aee5fd8530b0e2e692de76a8995d2c252e859e75a5bd    &language=en-us    &units=e    &format=json    &apiKey=793db2b6128c4bc2bdb2b6128c0bc230Host: api.weather.com

API 会返回一个 JSON 有效负载,其中包含已解析的位置元数据:

{  "id": "49cf42bf46ce84e09f51aee5fd8530b0e2e692de76a8995d2c252e859e75a5bd",  "v3-location-point": {    "location": {      "latitude": 22.774,      "longitude": -102.573,      "city": "Zacatecas",      "adminDistrict": "Zacatecas",      "country": "Mexico",      "countryCode": "MX",      "postalCode": "98000"    }  }}

placeid位置级哈希值,而非设备级哈希值

多名用户如果保存了同一座城市,传输的placeid值完全一致。

在本次研究的数据集里,共出现 143 个不同的placeid值,其中 6 个出现在 2 名及以上不同用户的流量中;只要有对应的位置元数据,同一个placeid无论来自哪台设备,解析出的城市与坐标都完全相同, 例如0e5ac78ebe96...始终对应美国华盛顿特区。剩余 137 个placeid值(占比 95.8%),均为单个用户独有。

该哈希值由天气频道公司的地理编码系统在服务端分配,研究人员仅通过坐标无法复现任何一个placeid值,即使用 API 密钥作为盐值进行 SHA-256 哈希计算,也无法得到匹配的结果。

跨用户的placeid共享情况

#

数据集里 143 个独立placeid中,有多个在多名用户的流量中重复出现,这些共享值直接验证了哈希的位置级属性 —— 同一座保存的城市,无论在哪台设备上发起请求,都会生成相同的哈希值。

具体共享情况如下表:

华盛顿特区和怀俄明州卡斯珀的位置placeid值在共享它们的两位用户中也解析出了一致的坐标。三个已解析的共享位置值(05930a27...,,)由同一对用户发送,表明有两个设备保存的位置列表存在重叠。56e8d585...``5c09f84c...

华盛顿特区、卡斯珀市对应的placeid,也在不同用户的请求中解析出了完全一致的坐标。其中 3 个共享值均来自同一对用户,说明这两台设备的保存位置列表存在重叠。

剩余 95.8% 的placeid均为单个用户独有,即便在极小的样本量中,这种极低的重叠率也能说明:用户的placeid组合具备极强的辨识度 —— 绝大多数单个位置本身就极少重复,而任意两个及以上位置的组合,几乎能实现全局唯一。

通过分析全量数据集的v3-location-point响应体,研究人员共将 44 个placeid值解析为实体位置,覆盖美国、加拿大、墨西哥、中国、越南、德国、印度等多个国家。

其中两个不同的placeid值,均对应美国华盛顿州塔科马市,但坐标存在细微差异(47.250/-122.440 与 47.156/-122.437),验证了该哈希包含了城市级以下的高精度位置信息。

指纹核心:组合后的唯一性

#

单个placeid只能识别一个位置,无法识别用户;而设备保存的所有placeid值组成的完整集合,才会形成可用于追踪的指纹。

研究人员将 29 名至少提交过 1 个placeid的用户(排除 12 台请求中无placeid参数的设备,以及 1 个未定义会话)的独立placeid值,聚合成排序后的数组进行比对,结果如下:

  • 29 名用户共生成 28 组不同的指纹;
  • 28 组指纹中,27 组(占比 96.4%)为单个用户独有;
  • 唯一的一次碰撞,来自两名仅保存了同一个完全相同位置的用户;
  • 所有保存 2 个及以上位置的用户,其指纹在数据集中均无重复。

参与研究的用户,保存的位置数量从 1 个到 17 个不等。数据分布显示,即使用户仅轻度使用天气应用的位置收藏功能,也会生成辨识度极高的唯一标识符。例如一名用户同时收藏了塔科马、西塔科、北本德、斯诺夸尔米山口、克利埃勒姆、伊顿维尔和艾尔德里,这套位置特征不仅在本次数据集中唯一,在全球范围内也几乎不可能出现重复。

跨时间与网络变化的持久稳定性

#

在 2026 年 2 月 14 日至 18 日的 5 天观察窗口内,研究人员按天追踪了每位用户的placeid集合,总结出三种行为模式:

  1. 静态指纹

    多名用户在所有观察日内,placeid集合完全无变化。其中一名用户连续 5 天,每天都传输同一个单位置的placeid,无任何变动;另一名用户连续 4 天,保持完全相同的双位置集合。

  2. 核心稳定 + 外围轮换

    保存位置数量较多(8-17 个)的用户,存在一组每天都会出现的固定核心位置,同时有 1-3 个外围位置会轮换出现或消失。例如一名保存了 17 个位置的用户,每天稳定传输 10-13 个placeid,其中约 8 个作为核心位置每天都会出现。轮换的位置大概率对应用户的出行或临时关注地点,而仅靠持久存在的核心位置,就足以实现唯一身份识别。

  3. 高变动 + 锚点留存

    即便是位置集合变动最频繁的用户,在整个观察期内,也至少保留了 1-2 个锚点placeid(大概率是家庭或工作地址)。其中一名用户的每日placeid集合每天都有大幅变动,但有一个锚点placeid在 5 天内全程留存。这个锚点,结合整体的位置变动规律,依然具备极高的辨识度。

#

跨 IP 变更的留存能力

#

数据集中的 42 名用户里,27 人(占比 64.3%)在观察期内使用过多个 IP 地址,22 人在不同日期更换了 IP 地址。其中一名用户在 5 天内,先后使用了 8 个不同的 IP 地址,覆盖住宅宽带、大学校园、移动运营商网络,而其placeid数组在每一次网络切换中都完整保留,无任何变化。

这套指纹与设备的位置保存配置绑定,而非网络会话。这意味着它可以穿透 VPN 使用、WiFi 与蜂窝网络切换、运营商 IP 重分配、跨境网络漫游等所有网络环境变化,持续保持有效。

硬编码 API 密钥的暴露风险

#

三星天气应用通过嵌入请求 URL 的 API 密钥,向天气 API 完成身份认证。研究人员在数据集中共发现 4 个不同的密钥,具体分布如下:

| API 密钥 | 对应的独立用户数 | 总请求数量 | | — | — | — | | 793db2b6128c4bc2bdb2b6128c0bc230 | 26 | 6922 | | 658accb01ada4c278accb01adabc2761 | 14 | 2282 | | 2f21f82... | 1 | 1 | | 089ed4e... | 1 | 1 |

这些密钥是三星天气 APK 中内置的、全局共享的静态密钥。其中两个占主导地位的密钥,对应应用的不同功能组件:par=samsung_widget对应主屏小组件(3750 条请求)、par=samsung_pn对应花粉数据(542 条请求)、par=samsung_notifications对应推送通知(111 条请求)、par=samsung_radar对应雷达图像(246 条请求)。

由于这些密钥不与设备、会话、用户账号绑定,任何 HTTP 客户端都可以使用。全球任意一台设备,都能通过从三星天气 APK 中提取的密钥,访问天气频道公司的 API,示例如下:

curl "https://api.weather.com/v3/wx/observations/current?geocode=40.71,-74.01&language=en-US&units=e&format=json&apiKey=793db2b6128c4bc2bdb2b6128c0bc230"

该请求可返回指定坐标的实时天气观测数据,除硬编码的密钥外,无需任何额外身份认证。同一个密钥,还可以将任意已知的placeid解析为完整的位置元数据,示例如下:

curl "https://api.weather.com/v2/aggcommon/v3-location-point?placeid=49cf42bf46ce84e09f51aee5fd8530b0e2e692de76a8995d2c252e859e75a5bd&language=en-us&format=json&apiKey=793db2b6128c4bc2bdb2b6128c0bc230"

这意味着,任何持有该密钥的人,都可以将原本不透明的placeid哈希值,转换为可地理编码的身份标识 —— 包括城市、行政区、国家、精确坐标。这些密钥在所有三星设备上通用,不会进行轮换,也无需绑定会话或设备,实际上相当于一套全球位置解析服务的公开访问凭证。

冗余的坐标传输设计

研究人员发现了一个值得关注的架构设计:三星天气应用的大量 API 请求,在传输已经包含完整位置信息的placeid哈希的同时,还会通过独立端点的geocode参数,传输用户的精确坐标。

placeid本身已经足以让 API 返回位置相关数据,API 可以通过placeid解析出包含坐标在内的完整位置元数据,这一点已经得到验证。因此,额外传输原始坐标,在天气预报的使用场景中,没有明确的技术必要性。

但这种设计,却能为 API 提供方带来比placeid中保存的位置数据更精确、更实时的地理位置信息。

可访问该数据的主体

#

天气 API 请求使用 HTTPS 协议传输,因此placeid值在传输过程中,不会被被动的网络观察者获取。但以下几方主体拥有直接访问权限:

  1. IBM 旗下的天气频道公司

    服务端会接收每一条请求,placeid数组可以作为天然的关联键,串联起用户的全量请求历史。结合冗余传输的geocode数据,可构建出用户详细的位置行为画像。

  2. 三星公司

    完全控制着生成并传输这些标识符的应用程序。

#

位置数据变现的行业历史

#

本次发现的placeid指纹机制,并非孤立存在。

天气频道公司,乃至整个天气应用行业,都有将位置数据作为可变现资产的公开记录,相关的法律纠纷已持续近十年。

1. 洛杉矶市诉 IBM / 天气频道产品技术公司案(2019 年)

2019 年 1 月,洛杉矶市检察官迈克・福伊尔对 IBM 及天气频道产品技术有限责任公司提起诉讼,指控天气频道应用在位置数据收集用途上欺骗用户。应用的权限申请提示中称,数据仅用于 “个性化本地天气数据、提醒和预报”,但起诉书指控,该应用秘密收集用户的持续地理位置数据,并将其出售给第三方,用于与天气完全无关的用途 —— 包括定向广告(例如向餐厅里的千禧一代推送快餐广告)和对冲基金分析。天气频道公司甚至基于收集的数据,搭建了专属的位置定向平台。

IBM 在 2020 年 8 月达成和解,和解条款要求应用修改授权同意提示,明确披露位置数据处理规则,同时必须清晰声明:位置追踪并非使用该服务的必要条件。

2. 地理位置数据收集集体诉讼案(2020-2023 年)

2020 年 6 月,另有一项集体诉讼提起,指控天气频道应用 “逐分钟” 实时追踪用户的物理位置,将数据出售给第三方,甚至在应用未处于前台运行状态时,依然持续追踪。该案于 2023 年 4 月达成和解,被告同意向用户推送持续位置追踪的相关通知,并删除隐藏在未读隐私政策中的不当披露内容。

3. 视频隐私保护法案(VPPA)诉讼案(2024 年)

2024 年 11 月,针对 IBM 的一项新诉讼依据《视频隐私保护法案》提起,指控天气频道网站在未经用户同意的情况下,将可识别个人身份的信息 —— 包括全名、邮箱地址、精确位置、视频观看数据,共享给了广告合作伙伴 mParticle 与 AppNexus/Xandr(2022 年被微软收购)。《视频隐私保护法案》规定,每一次针对单个用户的违规行为,可判处 2500 美元的法定赔偿。该案目前仍在诉讼过程中。

天气应用行业的整体现状

天气频道并非个例。2017 年,安全研究员威尔・斯特拉法赫发现,AccuWeather 的 iOS 应用即使用户明确拒绝了位置权限,依然会追踪用户位置,向第三方分析公司 Reveal Mobile 传输 GPS 坐标与 WiFi BSSID 数据。2018 年《纽约时报》的一项调查发现,WeatherBug 将用户的精确位置数据共享给了超过 40 家公司。一项针对 20 款热门天气应用的 broader 分析显示,其中 17 款(占比 85%)会为广告目的收集用户数据,14 款(占比 70%)专门获取位置信息用于广告定向。

区别于传统方式的独特追踪向量

本次研究发现的placeid指纹机制,是一种与上述案件中原始位置数据完全不同的追踪途径。即使用户拒绝了应用的位置权限、使用 VPN 隐藏真实 IP,天气 API 请求中嵌入的placeid值,依然能作为基于用户历史保存位置的稳定设备指纹。这种持久化的身份标识形式,是现有的用户授权同意机制完全没有覆盖到的。

#

指纹可揭示的用户信息

placeid数组绝不仅仅是一个标识符,更是一份压缩的用户地理履历。

  • 一名用户同时保存了墨西哥中部的萨卡特卡斯、特佩奇特兰,以及美国西雅图 – 塔科马走廊的多个位置,可被识别为美国太平洋西北地区的居民,且与墨西哥特定区域存在密切关联;
  • 一名用户同时保存了美国缅因州奥罗诺(缅因大学所在地)与加拿大蒙特利尔,大概率是一名家人在境外的大学生;
  • 一名用户同时保存了亚特兰大、休斯顿、西安、柏林、孟买、基洛纳,且应用界面语言为中文,既暴露了全球化的个人社交网络,也暴露了语言偏好,进一步缩小了身份范围。

用户保存的位置数量、地理分布、每个位置的轮询频率,能提供人口统计、社会经济、行为特征等多维度的信号,其信息价值远超简单的地理位置数据。

研究局限性与后续工作

#

本次分析是基于 5 天内 42 名用户数据的概念验证,仍有以下问题待进一步研究确认:

  1. 规模化场景下的唯一性

    96.4% 的唯一性率,是在 29 名提交了placeid的用户中测得的。在全量用户规模下,单位置的指纹(例如 “纽约市”)会出现频繁碰撞,但 3 个及以上位置的指纹,大概率依然能保持极高的唯一性。更大规模的数据集,可支持准确的熵值计算,以及与浏览器指纹(约 18 比特熵)等成熟指纹追踪向量的对比。

  2. 哈希输入的确定

    目前无法通过坐标、城市名或其组合复现placeid哈希。对三星天气 APK 或天气频道公司的地理编码服务进行逆向工程,可明确哈希的输入源究竟是规范位置标识符、坐标量化方案,还是其他内容。

  3. 长期稳定性

    5 天的数据仅验证了短期的持久性。更长周期的观察,可量化用户在数周、数月内添加或删除保存位置时,指纹的半衰期。

  4. 恢复出厂设置与账号同步的影响

    保存的位置集合(及对应的指纹)能否在设备恢复出厂设置后留存,取决于位置是否同步到三星账号。如果支持云端同步,这套指纹将追踪用户个人,而非单台设备。

#

研究方法

#

所有placeid值,均通过正则表达式placeid=([a-f0-9]+)从匹配api.weather.com端点的 URL 中提取。指纹的构建方式为:将每个用户的独立placeid值聚合成排序后的数组,在全量数据集中比对碰撞情况。位置解析通过检查v3-location-point API 响应体中包含的城市、行政区、国家、坐标元数据完成。

本次分析覆盖 2026 年 2 月 14 日至 18 日,来自 42 台不同三星设备的 9211 条发往api.weather.com的请求,其中 5569 条包含placeid参数;30 台设备至少提交了 1 个placeid,剩余 12 台设备的请求端点不包含该参数。研究过程中未收集或使用任何可识别个人身份的信息,所有设备引用均使用匿名标识符。

用户暴露规模

#

三星每年在美国市场的手机出货量约为 5000 万至 6000 万部,约占美国智能手机市场的四分之一。这款天气应用是系统预装、默认启用的状态,无需用户交互就会自动定期轮询 API—— 本次研究中最活跃的用户,5 天内生成了超过 2000 条请求,平均每天 400 条以上,且未观察到任何手动操作行为。

每一台预装该应用的三星设备,每小时都会多次向天气频道公司的服务器,发送这套唯一、持久、基于位置的标识符集合。这套标识符可在网络切换中完整留存,跨会话持续生效,且能通过公开可提取的 API 凭证,解析为具体的物理位置。

预装的系统应用,在移动软件栈中占据着特殊的特权位置:用户没有选择安装它们,可能完全不知道它们在后台运行,也极少会审计它们的网络行为。三星天气应用的placeid机制,清晰展示了日常运行的系统软件,如何从看似普通的基础功能中,生成足以实现持续追踪的强识别信号。

天气数据是免费的,而这套追踪指纹,就是用户为此付出的代价。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:黑鸟 黑鸟 黑鸟《预装系统应用的隐私盲区:天气应用将位置收藏转化为可追踪唯一标识》

评论:0   参与:  0