引言
隐私持续地成为两大移动操作系统的“内卷”重点[1]。谷歌一侧:安卓不仅改进了相对“传统”的权限和存储隐私保护,还在通过隐私沙盒重塑移动互联网广告的市场生态。苹果一侧:隐私继续嵌入iOS 16的各项功能设计中,隐私计算技术也开始向应用商店的2B特性推广。二者的内卷也引来了世界各地监管的密切关注。隐私沙盒早在年初便已引起调查,更新需要定时报备;WWDC大会后不久,iOS中防止追踪用户(ATT)的功能也旋即遭调查。出于隐私合规的考虑,我们不仅需要知道什么是“隐私的”,还要知道什么是“太隐私的”。
以下按从具体到抽象、从回顾到前瞻的次序,基于对2022年谷歌I/O大会和苹果WWDC大会的观察,分五节逐步介绍、简析两大系统隐私更新。今天是其中的第一节。首先是安卓和iOS在隐私相关权限和其他相关功能上的18个主要更新。既有剪贴板这样相对新的权限,又有针对ATT等过往功能规则的澄清。


权限和功能的隐私更新
两大系统值得介绍的更新合共至少有18个。安卓10个:权限方面有通知、邻近设备、位置、媒体库、身体传感器、权限降级、向用户告知权限调用准则,还有相片选择器、私密/公共存储、剪贴板通知等功能。苹果8个:权限方面有剪贴板权限和ATT,还有安全检查、家庭共享、健康数据、钥匙串、私密令牌、本地模型等功能。以下逐个介绍。
通知
通知是安卓13引入的新的运行时权限,用于从应用发送非豁免通知。如果应用以13或者更高的版本作为目标平台,权限默认关闭,开发者可以自己选择展示权限请求的时间。安卓进一步鼓励应用在用户已经了解应用以后、再在合适的场景中请求权限。如果应用以12L(API级别32)或者更低的版本作为目标平台,系统通常会在应用启动时展示权限请求。此外,对于升级到13之前已经安装的应用,如果应用具备通知渠道且用户并未在较低版本上停用通知,系统也会授予临时的通知权限,直到用户决定是否授权为止。用户可以选择授予、不授予或划开对通知权限的请求。如果划开,应用后续能否发送通知取决于之前是否有临时权限。如有则可以继续发送,反之不可以继续发送。用户可以随时查看应用每日发送的通知数量,也可以随时撤回授予权限。无论是选择不授予权限,还是后续撤销权限,都会屏蔽几乎所有通知渠道,效果与用户手动在设置中关闭所有应用通知类似。因此,把握请求场景、控制通知数量都会很有意义。
位置和邻近设备权限
位置和邻近设备权限可以合并介绍。如所周知,管理邻近设备和无线接入长期以来需要调用精细位置权限ACCESS_FINE_LOCATION,然而,这一目的实际与位置信息无关。这一点会引起困扰:比如,隐私看板可能因此显示不准确的、对位置权限的调用。安卓13修复了这一问题:通过增加新的NEARBY_WIFI_DEVICES权限,对于查找连接附件设备、发起SSID连接、开启本地热点和连接附近Wi-Fi感知设备等场景,可以仅请求这一权限、而无需再请求前述位置权限。这一权限是包括蓝牙等在内的NEARBY_DEVICE权限组的一部分,只能和组内其他权限一同开启或关闭。之后,WifiManager、WifiAwareManager、WifiAwareSession、WifiP2pManager、WifiRttManager及相关API需要先声明这一权限才能调用,getScanResults等少数API则仍然需要ACCESS_FINE_LOCATION权限。另外还有两条需要注意:一是如果不会利用Wifi API推导物理位置,则需相应声明。方式和声明不会将蓝牙用于推断物理位置一致。二是为了保障对13以下版本的后向兼容性,依然需要保留对ACCESS_FINE_LOCATION权限的所有声明。
访问本地存储的媒体文件
先前,访问本地存储的媒体文件需要统一请求READ_EXTERNAL_STORAGE权限。13将这一权限一拆为三,分别是访问图片的READ_MEDIA_IMAGES、访问视频的READ_MEDIA_VIDEO和访问音频的READ_MEDIA_AUDIO。后续访问需要迁移权限。如果同时请求图片和视频两个权限,系统会合并显示请求。综之,需要读取什么类型的媒体,就只请求什么形式的权限。

身体传感器
身体传感器包括两个危险级别的权限:在使用应用期间访问心率、体温和血氧饱和度等信息需要调用BODY_SENSORS权限,后台访问相应信息进而需要调用BODY_SENSORS_BACKGROUND权限。这一模式和位置信息上的对应权限非常类似。显然,当以保护敏感个人信息的审慎态度对待这些权限。
权限降级
权限降级。通过将一个或一组权限传入revokeOwnPermissionOnKill(),可以撤销系统或者用户已经授予的运行时权限。撤销异步发生,会终止应用UID关联的所有进程。不过,如果应用组件仍在前台运行,或者仍有其他应用正在访问组件,也不会发生撤销。如果确保安全,也可以用Exit()来立即撤销。在13的合规准备工作中,基于对过往请求调用权限的回顾评估,可以相应撤销已经不需要的权限,以满足必要和最小化的原则。
告知访问权限的准则
告知访问权限的准则,这也可以视为一项新功能。简言之,在应用活动内将android: permission的值设为START_VIEW_PERMISSION_USAGE,即可在隐私看板和权限请求页面添加访问权限的准则。和其他涉及隐私告知的场景一样,相应准则亦需保证简洁、准确、确保不与应用实际行为和其他告知内容相冲突。
相机选择器
相片选择器是和iOS先前更新相当类似的新功能,允许弹出按照日期顺序的、展示用户媒体库中图片和/或视频的选择器窗口。默认只能选择1张图片或视频,但可以调整上限。如果按默认只选择1张图片或视频,选择器半屏弹出,否则全屏弹出。
私密/公共存储
私密/公共存储方面的改进。这里更多是对过往功能改进和推荐实践的整理。需要清晰区分用户期待私密和期待共享的文件。前者应当存储在应用的内部文件夹中,以实现与其他应用的隔离。如果内部文件下容量不够,并非高度私密的文件可以考虑存储在应用的主要外部文件夹中,11或以上版本中的应用无法访问这里的文件。然而,由于更低版本下其他应用可能访问这些文件,高度私密的文件不应存储在主要外部文件夹中。期待共享的文件应当存储在共享文件夹中,其他应用可以访问。应用存储后共享文件夹里的文件也依然存在。
剪贴板(Android 13)
安卓13更新的最后一项,是对作为私密空间的剪贴板内容的进一步保护。一旦将内容复制到剪贴板,系统便会弹出包含预览、共享和跨设备发送三个按键在内的小挂件,预览中可以看到刚刚复制的内容。安卓因而强烈建议开发者去掉其他有关剪贴板内容提醒的交互。此外,通过在调用ClipboardManager#setPrimaryClip()之前标识ClipDescription,可以防止预览显示密码、卡号等敏感的复制内容。此时,预览上只会显示省略号。
剪贴板(iOS 16)
作为安卓部分介绍最后一项的剪贴板,恰好也是iOS 16权限上最令人瞩目的更新。很简洁:除开三种例外情况,获取剪贴板内容都会弹窗请求用户授权。三种例外分别是编辑菜单、快捷键盘和新的UIKit粘贴控制。苹果还相当贴心地提醒:不要把粘贴控制按钮的对比降低,或者藏在其他元素后面,“这不会奏效”。作为司法实践所认定的、充满了多样的私密信息的私密空间,再加上时不时就出现相应的十百千次访问剪贴板的负面新闻,加强剪贴板保护确实是大势所趋。隐私合规当然要注意相应的用户期待。
ATT
ATT早已是业界公认的隐私“震撼弹”。iOS应用下载量和收益平均因为这一更新下跌约12-15%,相关股价也受到负面影响[2]。新一届大会更多是明确了审核规则中的关键概念。如所知:ATT下的“追踪(T)”既包括出于个性化广告或广告测量目的、将所收集数据与其他公司收集数据相关联,又包括将数据共享给数据经纪商。两方面都有值得注意的细节。一方面,是否哈希不影响“关联”的界定。有理由推测,其他更复杂、先进、可以关联用户特征或标签的隐私计算技术有可能依然不影响苹果判断是否“关联”。另一方面,数据经纪商的界定参照当地法律。因此,需要相应注意国内的数据立法。
安全检查
安全检查足以称为iOS 16最引人瞩目的隐私新功能。主旨是协助家暴受害者“夺回对数据的控制”。尽管与开发者的关系没有那么紧密,仍然值得介绍。用户可以在两种模式下使用这一功能:平时可以在细颗粒度下使用,仔细确保位置共享、图片共享、备忘录和日程表等只开放给放心的亲友;危机时刻,通过安全检查可以迅速关闭所有共享,并且确保所有通话和信息只会发送到手头的设备,而不会发送到共享同一个苹果ID的其他设备上。安全检查还有类似“老板键”的功能,防止潜在施害者发现用户的自我保护措施。
家庭共享
家庭共享部分的更新更多关注家长设置的应用性,同时添加了云上的家庭共享文件夹、方便家庭成员间共享文件。与开发者角度的隐私合规关联相对有限。
健康数据
对于健康数据,特别是其中存储的处方,iOS从两个层面引入了细颗粒的隐私控制。一是用户不是对整个处方类别授权,而是可以一张一张地授权访问,可以只授权其中几张、而不授权其他。二是开发者同样可以只请求特定类型处方的授权,比如只请求眼科(视觉)处方的权限,而不是请求整个处方类别的权限。因此,对医疗健康类的应用来说,权限请求的最小化原则有了按照场景进一步推进的空间。
钥匙串
钥匙串。这是将之前已经推出的、只有开发者预览版的功能正式开放使用。后续也会有更多企业加入支持这一功能的联盟。简言之,用户登录不再需要密码,而是通过有坚实密码学基础的公私钥生成签名比对。可以说“连根拔起”了用户遭遇钓鱼攻击、因而泄露个人信息的可能性。站在开发者的角度,这意味着更强的安全措施和更低的风险。
私有访问令牌
私有访问令牌可以用于替代CAPTCHA验证码。这一功能大致分两部分,一是基于用户在iOS系统中的行为,来为用户哪怕是第一次访问的网站验证其是否可信。二是以安全、隐私的方式交换通信相应事实的令牌。系统已经保证了令牌及其他数据无法与特定个体或访问网站相关联。从开发者的角度,在验证身份环节、相应请求令牌时,无论是自行请求还是通过技术支持方请求,都要从第一方域名发出请求,而不能从嵌入第三方域名发出请求。
本地模型
本地模型。严格来说这不是专门针对隐私的更新,但对隐私合规有实质意义。苹果在端侧为开发者提供了算力越发增加的计算单元和功能愈发丰富的训练框架。对隐私合规、特别是高水平的隐私合规来说,至少有三点要注意:首先,如果使用个人信息的算法能够支持放在端侧,当然是放在端侧风险更低;其次,训练框架里有许多可视化评估性能的工具,有助于(至少是很简单地)评估算法的性能和公平;最后,类似权重压缩这样一些纯粹技术的功能,和隐私合规的交叉也日益紧密,这些新功能会为实现、阐明合规提供更多可能性。
结语
这些当然不是两大操作系统的全部更新,比如苹果的Screen API及其与家长控制功能的交互也会或多或少涉及隐私,但我们相信以上已覆盖了隐私合规感兴趣的大部分内容。
注释:
[1] 一般地,以下内容均整理自2022年谷歌I/O大会和苹果WWDC大会。
[2] 见Bian, Bo, Xinchen Ma, and Huan Tang. "The supply and demand for data privacy: Evidence from mobile apps." (2022).
隐私持续地成为两大移动操作系统的“内卷”重点[1]。谷歌一侧:安卓不仅改进了相对“传统”的权限和存储隐私保护,还在通过隐私沙盒重塑移动互联网广告的市场生态。苹果一侧:隐私继续嵌入iOS 16的各项功能设计中,隐私计算技术也开始向应用商店的2B特性推广。二者的内卷也引来了世界各地监管的密切关注。隐私沙盒早在年初便已引起调查,更新需要定时报备;WWDC大会后不久,iOS中防止追踪用户(ATT)的功能也旋即遭调查。出于隐私合规的考虑,我们不仅需要知道什么是“隐私的”,还要知道什么是“太隐私的”。
以下按从具体到抽象、从回顾到前瞻的次序,基于对2022年谷歌I/O大会和苹果WWDC大会的观察,分五节逐步介绍、简析两大系统隐私更新。今天是其中的第一节。首先是安卓和iOS在隐私相关权限和其他相关功能上的18个主要更新。既有剪贴板这样相对新的权限,又有针对ATT等过往功能规则的澄清。


权限和功能的隐私更新
两大系统值得介绍的更新合共至少有18个。安卓10个:权限方面有通知、邻近设备、位置、媒体库、身体传感器、权限降级、向用户告知权限调用准则,还有相片选择器、私密/公共存储、剪贴板通知等功能。苹果8个:权限方面有剪贴板权限和ATT,还有安全检查、家庭共享、健康数据、钥匙串、私密令牌、本地模型等功能。以下逐个介绍。
通知
通知是安卓13引入的新的运行时权限,用于从应用发送非豁免通知。如果应用以13或者更高的版本作为目标平台,权限默认关闭,开发者可以自己选择展示权限请求的时间。安卓进一步鼓励应用在用户已经了解应用以后、再在合适的场景中请求权限。如果应用以12L(API级别32)或者更低的版本作为目标平台,系统通常会在应用启动时展示权限请求。此外,对于升级到13之前已经安装的应用,如果应用具备通知渠道且用户并未在较低版本上停用通知,系统也会授予临时的通知权限,直到用户决定是否授权为止。用户可以选择授予、不授予或划开对通知权限的请求。如果划开,应用后续能否发送通知取决于之前是否有临时权限。如有则可以继续发送,反之不可以继续发送。用户可以随时查看应用每日发送的通知数量,也可以随时撤回授予权限。无论是选择不授予权限,还是后续撤销权限,都会屏蔽几乎所有通知渠道,效果与用户手动在设置中关闭所有应用通知类似。因此,把握请求场景、控制通知数量都会很有意义。
位置和邻近设备权限
位置和邻近设备权限可以合并介绍。如所周知,管理邻近设备和无线接入长期以来需要调用精细位置权限ACCESS_FINE_LOCATION,然而,这一目的实际与位置信息无关。这一点会引起困扰:比如,隐私看板可能因此显示不准确的、对位置权限的调用。安卓13修复了这一问题:通过增加新的NEARBY_WIFI_DEVICES权限,对于查找连接附件设备、发起SSID连接、开启本地热点和连接附近Wi-Fi感知设备等场景,可以仅请求这一权限、而无需再请求前述位置权限。这一权限是包括蓝牙等在内的NEARBY_DEVICE权限组的一部分,只能和组内其他权限一同开启或关闭。之后,WifiManager、WifiAwareManager、WifiAwareSession、WifiP2pManager、WifiRttManager及相关API需要先声明这一权限才能调用,getScanResults等少数API则仍然需要ACCESS_FINE_LOCATION权限。另外还有两条需要注意:一是如果不会利用Wifi API推导物理位置,则需相应声明。方式和声明不会将蓝牙用于推断物理位置一致。二是为了保障对13以下版本的后向兼容性,依然需要保留对ACCESS_FINE_LOCATION权限的所有声明。
访问本地存储的媒体文件
先前,访问本地存储的媒体文件需要统一请求READ_EXTERNAL_STORAGE权限。13将这一权限一拆为三,分别是访问图片的READ_MEDIA_IMAGES、访问视频的READ_MEDIA_VIDEO和访问音频的READ_MEDIA_AUDIO。后续访问需要迁移权限。如果同时请求图片和视频两个权限,系统会合并显示请求。综之,需要读取什么类型的媒体,就只请求什么形式的权限。

身体传感器
身体传感器包括两个危险级别的权限:在使用应用期间访问心率、体温和血氧饱和度等信息需要调用BODY_SENSORS权限,后台访问相应信息进而需要调用BODY_SENSORS_BACKGROUND权限。这一模式和位置信息上的对应权限非常类似。显然,当以保护敏感个人信息的审慎态度对待这些权限。
权限降级
权限降级。通过将一个或一组权限传入revokeOwnPermissionOnKill(),可以撤销系统或者用户已经授予的运行时权限。撤销异步发生,会终止应用UID关联的所有进程。不过,如果应用组件仍在前台运行,或者仍有其他应用正在访问组件,也不会发生撤销。如果确保安全,也可以用Exit()来立即撤销。在13的合规准备工作中,基于对过往请求调用权限的回顾评估,可以相应撤销已经不需要的权限,以满足必要和最小化的原则。
告知访问权限的准则
告知访问权限的准则,这也可以视为一项新功能。简言之,在应用活动内将android: permission的值设为START_VIEW_PERMISSION_USAGE,即可在隐私看板和权限请求页面添加访问权限的准则。和其他涉及隐私告知的场景一样,相应准则亦需保证简洁、准确、确保不与应用实际行为和其他告知内容相冲突。
相机选择器
相片选择器是和iOS先前更新相当类似的新功能,允许弹出按照日期顺序的、展示用户媒体库中图片和/或视频的选择器窗口。默认只能选择1张图片或视频,但可以调整上限。如果按默认只选择1张图片或视频,选择器半屏弹出,否则全屏弹出。
私密/公共存储
私密/公共存储方面的改进。这里更多是对过往功能改进和推荐实践的整理。需要清晰区分用户期待私密和期待共享的文件。前者应当存储在应用的内部文件夹中,以实现与其他应用的隔离。如果内部文件下容量不够,并非高度私密的文件可以考虑存储在应用的主要外部文件夹中,11或以上版本中的应用无法访问这里的文件。然而,由于更低版本下其他应用可能访问这些文件,高度私密的文件不应存储在主要外部文件夹中。期待共享的文件应当存储在共享文件夹中,其他应用可以访问。应用存储后共享文件夹里的文件也依然存在。
剪贴板(Android 13)
安卓13更新的最后一项,是对作为私密空间的剪贴板内容的进一步保护。一旦将内容复制到剪贴板,系统便会弹出包含预览、共享和跨设备发送三个按键在内的小挂件,预览中可以看到刚刚复制的内容。安卓因而强烈建议开发者去掉其他有关剪贴板内容提醒的交互。此外,通过在调用ClipboardManager#setPrimaryClip()之前标识ClipDescription,可以防止预览显示密码、卡号等敏感的复制内容。此时,预览上只会显示省略号。
剪贴板(iOS 16)
作为安卓部分介绍最后一项的剪贴板,恰好也是iOS 16权限上最令人瞩目的更新。很简洁:除开三种例外情况,获取剪贴板内容都会弹窗请求用户授权。三种例外分别是编辑菜单、快捷键盘和新的UIKit粘贴控制。苹果还相当贴心地提醒:不要把粘贴控制按钮的对比降低,或者藏在其他元素后面,“这不会奏效”。作为司法实践所认定的、充满了多样的私密信息的私密空间,再加上时不时就出现相应的十百千次访问剪贴板的负面新闻,加强剪贴板保护确实是大势所趋。隐私合规当然要注意相应的用户期待。
ATT
ATT早已是业界公认的隐私“震撼弹”。iOS应用下载量和收益平均因为这一更新下跌约12-15%,相关股价也受到负面影响[2]。新一届大会更多是明确了审核规则中的关键概念。如所知:ATT下的“追踪(T)”既包括出于个性化广告或广告测量目的、将所收集数据与其他公司收集数据相关联,又包括将数据共享给数据经纪商。两方面都有值得注意的细节。一方面,是否哈希不影响“关联”的界定。有理由推测,其他更复杂、先进、可以关联用户特征或标签的隐私计算技术有可能依然不影响苹果判断是否“关联”。另一方面,数据经纪商的界定参照当地法律。因此,需要相应注意国内的数据立法。
安全检查
安全检查足以称为iOS 16最引人瞩目的隐私新功能。主旨是协助家暴受害者“夺回对数据的控制”。尽管与开发者的关系没有那么紧密,仍然值得介绍。用户可以在两种模式下使用这一功能:平时可以在细颗粒度下使用,仔细确保位置共享、图片共享、备忘录和日程表等只开放给放心的亲友;危机时刻,通过安全检查可以迅速关闭所有共享,并且确保所有通话和信息只会发送到手头的设备,而不会发送到共享同一个苹果ID的其他设备上。安全检查还有类似“老板键”的功能,防止潜在施害者发现用户的自我保护措施。
家庭共享
家庭共享部分的更新更多关注家长设置的应用性,同时添加了云上的家庭共享文件夹、方便家庭成员间共享文件。与开发者角度的隐私合规关联相对有限。
健康数据
对于健康数据,特别是其中存储的处方,iOS从两个层面引入了细颗粒的隐私控制。一是用户不是对整个处方类别授权,而是可以一张一张地授权访问,可以只授权其中几张、而不授权其他。二是开发者同样可以只请求特定类型处方的授权,比如只请求眼科(视觉)处方的权限,而不是请求整个处方类别的权限。因此,对医疗健康类的应用来说,权限请求的最小化原则有了按照场景进一步推进的空间。
钥匙串
钥匙串。这是将之前已经推出的、只有开发者预览版的功能正式开放使用。后续也会有更多企业加入支持这一功能的联盟。简言之,用户登录不再需要密码,而是通过有坚实密码学基础的公私钥生成签名比对。可以说“连根拔起”了用户遭遇钓鱼攻击、因而泄露个人信息的可能性。站在开发者的角度,这意味着更强的安全措施和更低的风险。
私有访问令牌
私有访问令牌可以用于替代CAPTCHA验证码。这一功能大致分两部分,一是基于用户在iOS系统中的行为,来为用户哪怕是第一次访问的网站验证其是否可信。二是以安全、隐私的方式交换通信相应事实的令牌。系统已经保证了令牌及其他数据无法与特定个体或访问网站相关联。从开发者的角度,在验证身份环节、相应请求令牌时,无论是自行请求还是通过技术支持方请求,都要从第一方域名发出请求,而不能从嵌入第三方域名发出请求。
本地模型
本地模型。严格来说这不是专门针对隐私的更新,但对隐私合规有实质意义。苹果在端侧为开发者提供了算力越发增加的计算单元和功能愈发丰富的训练框架。对隐私合规、特别是高水平的隐私合规来说,至少有三点要注意:首先,如果使用个人信息的算法能够支持放在端侧,当然是放在端侧风险更低;其次,训练框架里有许多可视化评估性能的工具,有助于(至少是很简单地)评估算法的性能和公平;最后,类似权重压缩这样一些纯粹技术的功能,和隐私合规的交叉也日益紧密,这些新功能会为实现、阐明合规提供更多可能性。
结语
这些当然不是两大操作系统的全部更新,比如苹果的Screen API及其与家长控制功能的交互也会或多或少涉及隐私,但我们相信以上已覆盖了隐私合规感兴趣的大部分内容。
注释:
[1] 一般地,以下内容均整理自2022年谷歌I/O大会和苹果WWDC大会。
[2] 见Bian, Bo, Xinchen Ma, and Huan Tang. "The supply and demand for data privacy: Evidence from mobile apps." (2022).
