NutBit坚果 / 连接资料室

NutBit 资料简报手

隐私标签写了什么,和应用实际发出什么不是同一份证据

隐私标签、SDK清单、系统权限和网络连接分别回答不同问题。核对新旧版本时,应把数据类型、用途、身份关联、处理主体与目的地对齐,并记录观察范围。一次抓包既不能证明长期行为,也不能把陌生域名直接判成追踪。

换到新手机后,某个应用的隐私页面仍只列出崩溃日志和设备信息,运行时却出现几个旧版没有的网络目的地。有人看到陌生域名便认定发生追踪,也有人因为应用没有申请位置权限,判断它不可能处理位置线索。

两种判断都越过了证据范围。隐私标签、SDK清单、系统权限和网络观测分别回答不同问题。要找出新版是否出现声明缺口,必须把版本、数据类型、用途、身份关联、处理主体与目的地放在同一张表中。

隐私标签是声明,不是自动扫描报告

Google Play的数据安全表要求开发者说明应用收集和共享哪些用户数据。Android文件同时强调,开发者负责声明的完整与准确,平台提供的代码和权限示例并不是穷尽清单。

这意味着标签能回答“开发者对这个上架版本作出了什么说明”。它不能单独证明所有代码路径都已被发现,也不能保证用户设备上的版本与商店当前页面完全相同。

核对时先保存应用版本、标签页面日期和数据类别。版本号缺失时,新旧截图无法形成可靠差异。标签后来更新,也不应覆盖当时用户实际看到的记录。

第三方SDK不能从总声明中消失

Android数据安全表要求把应用所含第三方SDK的数据收集与共享反映在声明中。组件由另一家公司提供,不表示应用可以忽略它的行为。

Apple隐私清单进一步把组件层证据拆开。应用或SDK可按数据类型记录是否关联身份、是否用于追踪,以及收集目的。第三方SDK提供自己的清单,Xcode隐私报告再汇总应用和所链接组件的信息。

第三方SDK在应用进程中执行并可使用自己的数据入口与网络目的地,因此应用权限和应用名称不能完整表示组件行为。新版加入崩溃分析组件时,域名变化可能来自该组件,也可能来自内容服务。组件版本和用途明确后,才有条件解释目的地。

清单仍是声明。组件漏写、版本落后或集成方式改变,都可能造成汇总与运行结果不同。证据表要分别保留应用版本、SDK名称、SDK版本和声明来源。

权限列表只覆盖一部分入口

敏感权限很重要,却不是所有数据入口。Android文件列出的通用信号还包括WebView、表单、自动填充和数据访问审计接口。位置线索也可能由IP地址或接入点名称推断,而不只来自精确定位权限。

因此,“没有位置权限”只能说明应用没有通过所查权限取得相应系统位置能力。它不能推出零位置线索,更不能说明SDK没有处理网络地址。

反方向也要克制。应用声明某项权限,不表示每次运行都读取、保存或发送相应数据。权限、API调用、实际触发条件和网络结果是不同证据。

固定任务有助于缩小范围。可以记录冷启动、登录失败、打开帮助页和提交崩溃报告四个动作,观察每项动作前后出现的目的地。任务不一致时,两次观测没有可比性。

网络目的地不等于数据内容

网络记录可以显示某个版本在特定时间联系了哪些主机。若连接使用加密,域名和时序通常不能直接揭示载荷内容。一个分析服务也可能同时接收性能指标、崩溃堆栈或用户标识。

陌生域名不等于追踪,一次抓包也不能证明加密载荷、保留时限或长期行为。没有观察到某域名,也可能只是这次任务没有触发相关功能。

隐私标签描述开发者声明的类别和用途,网络观测只显示特定版本与任务实际联系的目的地。前者可能遗漏实现,后者可能遗漏未触发路径。两者冲突是调查起点,不是自动定罪。

不要为了验证而上传完整流量、账号密钥或私人内容。面向一般支持记录,保存时间、版本、动作、目的地主机与成功失败状态通常更合适。需要查看载荷时,应取得授权,并划定范围和脱敏方式。

数据类型、用途和身份关联要分栏

Apple隐私清单分别记录数据类型、身份关联、追踪用途和收集目的。把这些字段压成一句“收集诊断数据”,会丢掉关键差异。

同样是崩溃资料,一份只含错误代码和应用版本,另一份可能关联账号、设备标识与精确时间。两者对个人可识别性的影响不同。用途也可能从修复故障扩展为分析产品使用。

表格应至少列出数据类型、具体字段、用途、是否关联身份、接收主体、目的地和保留说明。无法从公开资料确认的格子写“未确认”,不要用猜测填满。

域名背后的主体也要查证。自有域名可能委托云服务商处理,第三方域名也可能只提供基础设施。NIST把应用、组件和服务商视为数据处理生态中的不同角色,要求说明隐私要求如何被验证。

版本更新后重做证据表

NIST把数据处理视为从收集到处置的完整生命周期并要求持续复评。版本更新、SDK替换、业务用途改变或数据删除方式变化,都可能让旧结论失效。

旧版证据表不要删除。复制成新版,再逐栏比较。新增数据类型、用途、身份关联、组件或目的地都应标出;消失的项目也要确认是功能移除、声明修改,还是本次任务没有触发。

观察窗口必须写清。一次十分钟测试支持的是“在这些动作与这段时间内观察到”,不能改写为“应用永远只联系这些主机”。需要更强结论,就增加任务、时段和设备,但仍保留范围。

数据删除也属于生命周期。卸载应用只证明本机软件被移除,不能自动证明远端日志、账号资料或SDK侧记录已经处置。若服务提供删除入口,应分别记录申请、响应与完成状态。

用五步差异表定位问题

第一列锁定版本。记录操作系统、应用版本、安装来源、SDK版本和观察日期。没有共同版本基线,其他差异难以解释。

第二列抄录声明。保存数据类型、共享状态、用途、身份关联和追踪说明,不只截取页面标题。

第三列列出组件与权限。组件来源不明时保持待确认。权限按实际安装版本读取,并注明是否在任务中授予。

第四列执行固定任务。每个动作分别记录目的地、开始时间和结果。不要把后台同步与用户点击混成一条时间线。

第五列比较冲突。声明没有组件提到的数据类型、SDK清单与应用汇总不一致、未说明的新目的地,都是需要开发者或服务商解释的项目。

按版本记录声明、SDK、权限、固定任务目的地和观察日期,并把冲突项留作待解释证据。证据不足时写明限制,比用陌生域名或一张权限截图作出结论更可靠。

隐私核对的目标不是收集最多细节,而是让每项结论都能回到对应版本、主体和任务。四种证据互相校正,却没有任何一种能够替其他三种完成证明。

资料来源

  • Android Developers:《Declare your app's data use》,发布或更新于 2026-03-01
  • Apple Developer:《Describing data use in privacy manifests》,发布或更新于 2024-05-01
  • Apple Developer:《Privacy manifest files》,发布或更新于 2024-05-01
  • National Institute of Standards and Technology:《Using Privacy Framework 1.1》,发布或更新于 2025-04-14