我们的 AI 引擎 Neutron 在加州大学伯克利分校的 CyberGym 基准测试中取得了 96.75% 的成绩。 了解更多

工程

工程

Apple 隐私:隐私清单文件全面指南

本文介绍 Apple 生态中的隐私清单(Privacy Manifest)文件,强调其对透明度与合规的重要性(尤其是即将于 2024 年生效的强制要求),概述实施步骤,并阐明其在提升用户信任和遵守法规方面的作用。

引言

隐私清单(Privacy Manifest)文件是开发者声明移动应用及其依赖项相关隐私实践的一种新方式。

这些文件允许第三方 SDK 开发者披露其框架的隐私实践,从而保持透明度并提升隐私标准。 鉴于隐私对用户和开发者都至关重要,理解并实施隐私清单文件已成为满足 Apple 隐私要求不可或缺的一环。

即将于 2024 年 5 月生效的强制要求规定,在 App Store Connect 上提交的所有新应用和更新都必须为常用 SDK 包含隐私清单,这些文件的重要性将因此大幅提升。开发者现在需要理解隐私清单文件的概念和用途,并掌握创建和实施它们的步骤,以达到 Apple 更高的隐私与安全基准。 本指南旨在揭开这一过程的神秘面纱,帮助开发者全面理解隐私清单文件,并提供关于采用和实施它们的实用见解。

理解隐私清单文件

隐私清单对于开发者清晰说明应用依赖项的隐私实践至关重要。 这些文件名为 "PrivacyInfo.xcprivacy",用于声明 SDK 收集的数据类型、数据用途、是否与用户关联,以及是否遵守 App Tracking Transparency 政策。它们具有多重作用:

1- Data Description:列出所收集数据的类别,例如联系信息、健康与健身数据、财务信息等。

2- Usage Explanation:详细说明每种数据类型的用途,无论是用于分析、广告、应用功能还是其他用途。

3- Tracking Disclosure:这些文件会注明数据是否用于追踪目的,帮助开发者遵守隐私法规。

这些清单关乎合规与透明度,让开发者以及最终的用户能够清楚地了解数据的使用情况。 从 May 2024 起,App Store 上的应用所使用的所有第三方 SDK 都必须包含隐私清单,从而确保整个平台具备更高的隐私和安全标准。这一举措是在 Apple Store 生态系统中增强用户信任和数据完整性的更广泛行动的一部分。

隐私清单文件的当前采用情况

此次分析涵盖了多个行业、具有不同特征的 3000 多个 iOS 应用。

截至 2024 年 4 月,下图揭示了 iOS 应用开发中一个令人担忧的趋势:大多数应用要么尚未实施隐私清单文件,要么仅部分实施。

图表
图表 1:2024 年 4 月的全球采用情况

在银行业,隐私清单文件的实施大多仍未完成,只有少数应用已完全集成,这表明在报告期内,这一关键行业的隐私措施可能存在缺口。

图表
图表 3:银行业的采用情况

在医疗健康行业,与银行业相比,已在实施隐私清单文件方面取得进展的应用比例更高,但仍有相当一部分尚未开始实施,这表明在这一敏感行业中确保全面隐私措施仍面临持续挑战。

图表
图表 3:医疗健康行业的采用情况

创建并实施您的隐私清单

为您的应用创建并实施隐私清单涉及若干步骤,以确保符合 Apple 的指南。以下是一份简明指南,帮助开发者完成这一过程:

创建并实施隐私清单的步骤:

  • 第 1 步:使用 Xcode 15 或更高版本,通过 New > File > iOS > Resource > App Privacy. 创建该文件。

    图表
    图 1:添加隐私清单文件

  • 第 2 步:将新创建的隐私清单文件添加到应用的 bundle 资源中,并确保它位于根目录。

    图表
    图 3:选择隐私清单文件的 target

图表
图 3:已添加隐私清单文件的 target

  • 第 3 步:在该属性列表文件的顶层,向字典中添加以下键:
    • NSPrivacyTracking:一个布尔值,表示您的应用或第三方 SDK 是否将数据用于 App Tracking Transparency 框架所定义的追踪。
    • NSPrivacyTrackingDomains:一个字符串数组,列出您的应用或第三方 SDK 所连接的、从事追踪的互联网域名。如果用户未通过 App Tracking Transparency 框架授予追踪权限,发往这些域名的网络请求将会失败,您的应用会收到一个错误。 如果将 NSPrivacyTracking 设置为 true,则需要在 NSPrivacyTrackingDomains 中提供至少一个互联网域名;如果设置为 false,则可以提供零个或多个域名。
    • NSPrivacyCollectedDataTypes:一个字典数组,描述您的应用或第三方 SDK 收集的数据类型。数据用途类别包括:第三方广告、开发者的广告或营销、分析、产品个性化、应用功能、其他用途。
    • NSPrivacyAccessedAPITypes:一个字典数组,描述您的应用或第三方 SDK 访问的、被指定为需要说明访问理由的 API 类型。需要说明理由的 API 列表包括:文件时间戳 API、系统启动时间 API、磁盘空间 API、活动键盘 API、User defaults API。

图表
图 4:添加隐私清单文件条目

  • 第 4 步:添加 NSPrivacyCollectedDataTypes 列表,包括类型以及您的应用或第三方 SDK 进行访问的理由列表。

图表
图 5:添加 NSPrivacyCollectedDataTypes

  • 第 5 步:添加 NSPrivacyAccessedAPITypes 列表,包括类型以及您的应用或第三方 SDK 进行访问的理由列表。

    图表
    图 6:添加 NSPrivacyAccessedAPITypes

  • 第 6 步:确认隐私清单已包含在应用的构建产物或归档中,并验证它属于对应的 target。

NSPrivacyCollectedDataTypes 的关键组成部分

以下是 NSPrivacyCollectedDataTypes 类别中应包含的关键组成部分:

  • NSPrivacyCollectedDataType:指定所收集的数据类型(例如位置、联系人)。
  • NSPrivacyCollectedDataTypeLinked:一个布尔值,表示数据是否与用户身份关联。
  • NSPrivacyCollectedDataTypeTracking:一个布尔值,表示数据是否用于追踪目的。
  • NSPrivacyCollectedDataTypePurposes:列出数据收集的理由,确保与 Apple 预定义的用途保持一致。

NSPrivacyAccessedAPITypes 的关键组成部分

  • 隐私清单必须明确说明应用及其依赖项所使用的具体 API。
  • 对于每个 API,需清楚说明使用该 API 的理由,并确保其符合 Apple 的指南。

追踪域名的管理

隐私清单通过编目追踪域名来帮助管理网络连接。 在 iOS 17 中,除非用户已明确授予权限,否则任何未经批准的追踪连接都会被自动阻止,从而强化隐私保护。

创建并实施您的隐私清单

列出所有网络连接以识别追踪域名

图表
图 7:网络通信概览

运行动态扫描时,Ostorlab 会列出应用与之通信的所有网络域名。这是识别用于追踪的域名的重要依据。

图表
图 8:列出所有网络通信

分析环境(Analysis Environment)中的 API 部分会列出发往这些域名的请求/响应。利用这些信息,您可以将域名列表添加到 NSPrivacyTrackingDomains 中。

列出应用中使用的所有 API

图表
图 9:API/功能概览

除了域名之外,Ostorlab 还会列出应用中使用的所有 API。如果这些 API 属于 Apple 定义的需要说明理由的 API,您需要将它们添加到 NSPrivacyAccessedAPITypes 中。

识别缺少隐私清单文件的 SDK

在静态分析期间,Ostorlab 会检查应用及其所有 Framework 中是否存在隐私清单文件,并报告缺少隐私清单文件的项。

图表
图 10:缺少隐私清单文件

结论

对于需要应对 Apple 隐私要求的开发者来说,理解并实施隐私清单文件至关重要。本文介绍了这些文件在提升透明度、遵守 Apple 隐私标准方面所发挥的关键作用,并逐步说明了如何创建这些文件并将其纳入应用开发流程。随着 2024 年 5 月强制要求的临近,掌握隐私清单文件的重要性怎么强调都不为过。确保应用合规不仅符合监管预期,还能通过坚持高标准的隐私与安全来赢得用户的信任。 在开发者为满足这些要求做准备时,务必持续审查和验证应用的隐私清单,使其符合 Apple 的最新指南。为协助完成这一步,您可以考虑在 Ostorlab.co 中扫描您应用的 IPA,以验证隐私清单文件的完整性与合规性。这样做不仅能维护您的应用在 App Store 上的良好地位,还能强化您对隐私的承诺——隐私是当今数字生态系统的基石。践行这些做法,意味着我们作为开发者社区,不仅是在为功能编写代码,更是在捍卫用户的隐私与安全,为应用开发的未来树立标准。

标签:

privacy