WWDC22 – Apple 隐私技能探究

作者:iHTCboy

前言

“We’re trying to do two diametrically opposed things at once: provide an advanced and open platform to developers while at the same time protect iPhone users from viruses, malware, privacy attacks, etc. This is no easy task.” “咱们试图一起做两件截然相反的工作:为开发人员供给一个先进和敞开的途径,一起维护 iPhone 用户免受病毒、歹意软件、隐私进犯等。这不是一件容易的事。”

Steve Jobs, October 17, 2007

一向以来,苹果对隐私维护都非常严厉,尽管每年新 iPhone 发布都提前被暴光的差不多了,但从 2018 年 Facebook 隐私门事情开始,不论国内仍是海外,行业巨头仍是个人用户,咱们关于隐私的关注都达到了新的高度。正如乔布斯说,敞开和安全是截然相反的工作,但这件不容易的事,总需求有人做。从 WWDC20 开始,对用户隐私的维护,又达到了史前的疯狂程度,如推出 ATT(App Tracking Transparency),成为广告行业的敌人,更不要说平时对权限的严控,所以,本文带咱们一同回忆苹果关于隐私的升级改变。

相册 vs 权限操控

以往,开发者仅仅想从用户相册挑选一张图片,可是只能答应 App 拜访整个相册的权限或许不答应拜访,这一刀切的做法一向被吐槽。苹果在 WWDC20 针对相册权限新增了 Limited Photo Library Access 形式,用户能够挑选 App 拜访全部或部分的相片:

WWDC22 - Apple 隐私技术探索

一起,也推出了 PHPickerController 图片挑选器:

WWDC22 - Apple 隐私技术探索

比较现已筛选的 UIImagePickerController 只能挑选一张相片,PHPickerController 除了只支撑 iOS 14+ 的缺点,它能够设置无上限张图片,别的也能够过滤挑选的相册类型,图片、视频、livephoto 等。PHPickerController 是运用的系统独立进程,所以不需求请求相册权限,能够直接调用 API 拜访,这也许是开发者应该考虑的一个更高雅的运用方式。

本年 What’s new in the Photos picker – WWDC22 苹果带来了更强大的相册过滤和现已支撑 iOS/iPadOS/macOS/watchOS 全途径,也支撑 SwiftUI 等。具体也能够查阅苹果文档 Selecting Photos and Videos in iOS。

广告归因 vs 盯梢

也许你也有过这样的经历:在某团购 app 购买过产品,可是你阅读其他 app 时,广告一向在向你推荐相同的产品。

由于你或许运用同一个邮箱账号登陆了不同的 app,他们之间经过同享这些信息,从而定位到你:

WWDC22 - Apple 隐私技术探索

在阅读器中,广告商 cookie、依据阅读器装备以及装置的字体和插件、网络 IP 等特征,生成设备的 指纹信息来承认用户。

而在移动端 app 中,苹果供给 IDFA(Identifier For Advertisers,广告标识符) 来的确用户。为了维护用户隐私,早在 2012 年苹果公司就不再答应其生态的 App 获取用户的仅有标识符,可是商家在移动端打广告的时分又期望能监控到每一次广告投进的作用,因而,苹果想出了折中的方法,便是供给别的一套和硬件无关的标识符,用于给商家监测广告作用,一起用户能够在设置里改变这串字符,导致商家没有方法长时间盯梢用户行为。

设置 IDFA 途径在 iOS 14 以下 设置->隐私->广告->还原广告标识符,而在 iOS 14 苹果在 WWDC20 推出 ATTApp Tracking Transparency, 运用追寻透明度)结构,旨在终究全面封闭 IDFA. 假如简略来说,苹果把 IDFA 是否答应 app 获取的权限交给了用户来挑选:

WWDC22 - Apple 隐私技术探索

当然,盯梢用户设备的意图是什么?最原始的意图是 广告归因。他们期望将购买归因于广告点击,以便商家知道将广告预算集中在哪里,此类归因用于衡量哪些广告有效。但随着移动端成为全球用户必备的随身设备,单单的广告归因现已不能满足他们的意图,搜集购买习惯以及其他隐私信息,它们变得比你自己更了解本身的购买需求!

苹果推出的 SKAdNetwork 便是期望在广告端袜掉用户的标识,各 app 之间的用户标识,要不要同享给第三方运用,应该由用户自己决议:

WWDC22 - Apple 隐私技术探索

SKAdNetwork 归因数据本身不具有任何用户标识符,所以无法盯梢用户。SKAdNetwork 是让广告途径在不获取 IDFA 的前提下,对用户的点击和装置行为供给的一套追寻解决方案。由于 Apple 的介入,将直接横跨设备与 App Store,而且不会把任何设备信息泄漏给广告主,而且更有利于防做弊。

当用户点击广告时,一个带有签名信息的 App Store 产品界面呈现出来,签名信息标记了此次广告活动。假如用户装置而且翻开了 app,设备发送一个装置验证告知给广告网络。这个由 Apple 签名的告知包含广告活动 ID,可是不含用户或设备相关的数据。告知还能够包含一个转化数值和来历运用 ID,这个取决于苹果设定的一个隐私阈值。

WWDC22 - Apple 隐私技术探索

SKAdNetwork 最大的问题便是供给了聚合的数据,但关于广告来说,这个过程现已不是简略的盯梢用户,而盯梢广告也是非常的重要,由于一个广告或许有多个不同的资料和不同的途径测验等。首先 SKAdNetwork 回调告知能够获取的 数据:

SKAdNetwork 2.0

{
  "version" : "2.0",
  "ad-network-id" : "com.example",
  "campaign-id" : 42,
  "transaction-id" : "6aafb7a5-0170-41b5-bbe4-fe71dedf1e28",
  "app-id" : 525463029,
  "attribution-signature" : "MDYCGQCsQ4y8d4BlYU9b8Qb9BPWPi+ixk\/OiRysCGQDZZ8fpJnuqs9my8iSQVbJO\/oU1AXUROYU="
  "redownload": true,
  "source-app-id": 1234567891
  "conversion-value": 20
}

SKAdNetwork 3.0

{
  "version": "3.0", 
  "ad-network-id": "example123.skadnetwork", 
  "campaign-id": 42, 
  "transaction-id": "6aafb7a5-0170-41b5-bbe4-fe71dedf1e28", 
  "app-id": 525463029, 
  "attribution-signature": "MEYCIQD5eq3AUlamORiGovqFiHWI4RZT/PrM3VEiXUrsC+M51wIhAPMANZA9c07raZJ64gVaXhB9+9yZj/X6DcNxONdccQij", 
  "redownload": true, 
  "source-app-id": 1234567891, 
  "fidelity-type": 1, 
  "conversion-value": 20,
  "did-win": true
}

字段阐明:

  • version:版别号
  • ad-network-id: 广告途径ID
  • transaction-id: 用于转化去重的承认
  • campaign-id: 记载广告 campaign 信息
  • app-id: 投进广告的 ID 信息
  • attribution-signature: Apple 关于归因的承认
  • redownload: 是否重复下载
  • source-app-id: 从哪个app 上看到广告且装置的
  • conversion-value: 转化价值
  • fidelity-type: 2.2 及更高版别供给。值为 0 表明页面展现类型的广告;值为 1 表明 StoreKit 烘托的广告。
  • did-win: 3.0 及更高版别供给。假如广告网络赢得归因,则为 true,假如回发代表没有赢得归因的合格广告作用,则为 false。

注:

  • 回调的 conversion-value: 无符号的 6 bit 整数(也便是只能为 0-63 的数字)。由广告主运用和广告网络决议此值的含义。默认为0。所以,由于数字太小,无法绑定到用户信息。
  • 在实践中,开发者能够细心掌握调用的机遇,而且对conversion-value数值做杰出的定义,就能达到衡量广告用户质量的意图。

本年 WWDC22,苹果带来了 SKAdNetwork 4.0,为广告商供给有关其广告系列的更多信息,一起持续维护用户隐私。

分层源标识符

这个字段以前称为 campaign-id(活动ID字段),答应广告商识别装置归因于哪个广告系列,以及额外的归因信息。广告商能够依据自己的方针装备这个四位数值,例如广告系列价值、广告投进或广告创意类型。

WWDC22 - Apple 隐私技术探索

尽管苹果供给了 4 位数字装备,可是并不一定回来 4 位。苹果一向至少包含两位数字,依据广告系列所满足的装置次数和用户隐私等级,最多能够包含四位数字。例如,假如广告系列没有生成满足数量的装置,则回发的源标识符字段中只会显现两位数字。这为广告商供给了更大的广告系列灵活性,并在达到隐私阈值时供给了额外的归因洞察力,一起维护了跨运用程序的用户隐私。

**为什么苹果说满足数量的装置才会回来更多的位数?**这儿有一个概念 differential privacy techniques(差分隐私技能),利用这种技能,防止能够盯梢定位到用户层级的数据。下文会提到,这儿暂时先略过,有爱好能够翻到下文查看。

多次转化告知

SKAdNetwork 最大的一个问题是,归因推迟至少 24 小时,严重影响了转化率的计算,投进的广告不能马上看到作用,这是广告投进最可怕的事,投了钱不能马上看到作用,是亏仍是赚还要等。尽管本年苹果并没有进步实时回调(估量未来也不会),但供给了最多三次告知,每次都根据特定的转化窗口(分别为0-2天、3-7天和8-35天)。这使他们能够更好地了解从广告系列中装置运用程序的人随着时间的推移与广告运用程序的互动程度。

WWDC22 - Apple 隐私技术探索

注:每个转化窗口能够包含多个活动广告。SourceID、SourceAppID和粗粒度转化值是有条件的,只要在达到隐私阈值时才包含在第二次和第三次回调中。

需求阐明的是,运用 SKAdNetwork 不需求用户答应 App Tracking Transparency 广告盯梢,由于 SKAdNetwork 是聚合数据,从回调的数据中,广告商是不能反向定位用户信息,所以并不需求 ATT 的授权。

同理,由于没有用户层级的数据,LTV(Life-Time Value)的数据将会失效。这对广告主来说,是巨大对的影响。以往盯梢 LTV 数据然后进行媒体侧投进买量的行为,将会失效。所以广告主一向想盯梢用户,除了 ATT 外,设备指纹是现在剩余的方式,但依据 Apple Developer Program 许可协议,开发者不得为了仅有识别设备而从设备中获取数据。用户或设备数据的示例包含但不限于:用户的网页阅读器及其装备、用户的设备及其装备、用户的方位或用户的网络衔接。引用SDK的运用程序,包含但不限于广告网络、归因服务和剖析,假如发现参加这种做法,或许会被App Store拒绝。

Safari vs PCM(私家点击衡量)

Safari 阅读器具有多项先进功用,协助维护你的隐私安全,防止你遭到跨网站盯梢,并能最大限度削减传送给第三方的数据。关于苹果来说,没有阅读器广告事务,隐私维护天然做的愈加好。

PCM(Private Click Measurement,私家点击衡量)隐私维护广告点击归因,是苹果提出的一个 Web 网络规范技能,阅读器充当了查找网站和商家网站的中间人。 中间人会限制网站之前发送的信息,过滤掉用户灵敏信息,只发送归因的参数,比方 Campaign(广告组) 和 Convert (转化事情)。

具体技能能够阅览苹果官方文档:

  • Introducing Private Click Measurement, PCM
  • Privacy Preserving Ad Click Attribution For the Web | WebKit
  • Private Click Measurement

SKAdNetwork 4.0 支撑网页版 SKAdNetwork,让广告商能归因那些会转至推行 App 的 App Store 产品页面的网页广告,除了移动网站外,苹果还支撑 iOS 和 iPadOS app 的 SFSafariViewController。

App Store vs 转化率

App Store 让开发者能在 175 个地区供给面向 iPhone、iPad、Mac、Apple TV 及 Apple Watch 的 App 和服务。怎么触及更多用户,并不断发展您的事务,App Store 供给了巨大的商机,自定产品页、产品页优化、App 内活动、优惠订阅等等。

WWDC22 - Apple 隐私技术探索

衡量 App 体现

有多少用户在 App Store 上查找或阅读时发现了您的 App?哪些 App 和网站吸引了用户查看您的产品页?怎么衡量自己 App 的下载次数(包含初次下载次数、从头下载次数和总下载次数)以及您的 App Store 转化率?

苹果本年 WWDC22 供给 App 剖析中的基准 功用,基准经过将与获客率、运用和盈余情况相关的绩效方针置于具体情境中,在整个客户旅程期间供给有价值的见解,这样您就能够很容易地看到您与同行比较的体现,并做出相应决议计划以实现事务方针。

举例来说,查看 app 转化率,开发者能够了解自己 app 与同类 app 的体现情况:

WWDC22 - Apple 隐私技术探索

App Store 经过独家供给的宝贵数据,来深入了解和发现您的 App 的体现作用。苹果供给转化率、1/7/28天留存率、崩溃率和均匀付款率等。

WWDC22 - Apple 隐私技术探索

开发者或许会有疑问,苹果这是揭露开发者的数据吗?苹果表明对照组 app 运用 differential privacy techniques(差分隐私技能),以保证机密信息的安全性和私密性。那么什么是差分隐私技能

WWDC22 - Apple 隐私技术探索

举例来说,假设有一个问题用户能够回答 Yes 或 No,那么假如用户挑选 Yes,那么这个挑选上传到服务器时,会先随机生成 Yes 或许 No,那么有 50% 概率是 Yes 也便是用户的挑选。假如是 No,在随机生成一次 Yes 或许 No,然后有 25% 概率是 假数据。由于数据有或许是假信息,所以能够防止经过用户的数据推导(定位)到指定的用户。所以差分隐私技能能够增强数据匿名和数据汇总的隐私维护程度。

这儿读者能够有疑问,这样数据样本就不具有准确性了吗?所以,差分隐私技能的一个前提条件,是数据量必然很大,才干削减这些随机数据的影响。从上面的比如来说,至少 75% 是正确的挑选,最高挨近 100% 是正确挑选。

关于差分隐私技能,能够参阅苹果文档了解更多:

  • Differential Privacy Overview – Apple
  • Apple Privacy-Preserving Machine Learning Workshop 2022 – Apple Machine Learning Research
  • Learning with Privacy at Scale – Apple Machine Learning Research
  • Differential Privacy – Simply Explained – YouTube

App vs 开发者形式

WWDC22 - Apple 隐私技术探索

iOS 16 和 watchOS 9 中引入的开发者形式,用于维护用户在设备上无意中装置有害软件的问题,并削减仅由开发者功用露出的进犯载体。

关于开发者来说,此举或许比较费事,从体会来说翻开开发者形式还算快。关于用户来说,影响是比较深远,像咱们之前的文章提到 iOS15 安全漏洞剖析:价值10万美元的漏洞曝光,0 day 漏洞仍是 1 day 漏洞,关于不升级系统的用户,破坏性仍然存在,但假如有了开发者形式,普通用户受影响的规模会下降许多。

WWDC22 - Apple 隐私技术探索

关于运用签名分发包体的方式,未来估量不复存在,一方面教育用户发动开发者形式本钱很高,另一方面苹果关于敞开做了多重警告提示用户。另一种企业证书,现在苹果现已不在审批新的企业证书,所以未来只会越来越少,直到消失。至此,安全性的价值远大于开发者发动开发者形式带来的不便。

具体能够参阅苹果文档:Enabling Developer Mode on a device。

隐私 vs 可见性

除了隐私权限由用户来决议,苹果也将越来越多的隐私权限运用的可见性。例如 WWDC20 推出的 隐私标签App 隐私陈述

WWDC22 - Apple 隐私技术探索

App Store 里的产品介绍页面包含一个隐私处理阐明版块,以简练易读的标签摘要形式,呈现由开发者供给的隐私信息处理方式陈述,保证用户能在充分知情的情况下进行挑选。

敞开“记载 App 活动”功用后,你一切 app 的行为都一目了然。“设置”中的这个版块让你能够查看过去 7 天内各 app 拜访你的方位、相片、摄像头、麦克风以及通讯录的频率。它还会显现这些 app 拜访其他域的频率。结合隐私标签所供给的信息,你能够愈加全面地了解所用 app 怎么处理你的隐私。

在 iOS 16,能够经过菜单栏点击查看当时有那些 app 在运用定位权限。摄像头、麦克风等也能点击查看是那个 app 在运用对应的权限了。

WWDC22 - Apple 隐私技术探索

张贴板运用透明度

WWDC22 - Apple 隐私技术探索

在 iOS 15 中,当有 app 从张贴板复制内容时,系统会发出告知,提醒用户留意此行为。而 iOS 16 开发者张贴来自其他 app 的内容时,需求弹窗请求用户答应,且在未经答应前,无法拜访张贴板的内容。

有三种方法能够防止此提示出现在 app 中:

  • 运用修改选项菜单
  • 运用键盘快捷键
  • 运用 UIPasteControl

UIDevice.name

WWDC22 - Apple 隐私技术探索

Entitlements 文件中包含 com.apple.developer.device-information.user-assigned-device-name,才干获取到真实的设备名。但现在从苹果文档 UIDevice 还没有看到相关的装备阐明。

macOS app 权限

macOS Ventura 系统装备 UI 更新,而且对 App 权限进行愈加精细的管理,包含 app 要调用或删去其它 app(与当时 app 包名不一样的 app),或许电脑发动时,主动发动的 app 或许服务等,都有严厉的操控:

WWDC22 - Apple 隐私技术探索

别的,苹果供给 SMAppService API 来操控这些服务才能。

Gatekeeper(门禁)

Gatekeeper(门禁)技能,旨在保证只要受信赖的软件才干在 Mac 上运行。

WWDC22 - Apple 隐私技术探索

Gatekeeper 查看新下载的运用程序的完整性,在 macOS Ventura 中,Gatekeeper 将查看一切经过公证的运用程序的完整性,而不仅仅是阻隔的运用程序。有一些 app 往往不止是一个 app,而有多个不同的 app,假如需求更新这些 app,需求在 Info.plist 添加 NSUpdateSecurityPolicy 来指定那些 app 包更新权限。

"NSUpdateSecurityPolicy" => {
      "AllowProcesses" => {
        "123ABC" => [
          0 => "com.example.pal.about"
        ]
    }
}

注:截止本文宣布,苹果还没有更新 NSUpdateSecurityPolicy 相关具体的文档。

设备衔接

咱们会经常看到这样的授权,本地局域网或许蓝牙授权:

WWDC22 - Apple 隐私技术探索

需求这些权限,是由于衔接的管理设备挑选需求了解一切设备,但这供给了对不用要信息的拜访,并带来设备指纹危险。

WWDC22 - Apple 隐私技术探索

iOS 16 能够经过 DeviceDiscoveryExtension Framework 来引导用户衔接对应的设备。但截止现在还没有找到相关的文档阐明。

没有暗码 and 没有验证码

Apple、谷歌与微软许诺拓宽对 FIDO 规范的支撑,以加快普及免暗码登录 来历

隐私与安全,最安全的身份验证能够是依据用户的生物特征来验证,而利益于指纹识别、面部识别等技能成熟,Passkeys 便是根据这些根底而免于输入暗码。而验证码是用于验证用户和机器人的区别,在咱们日子中,验证码现已无处不在,而苹果根据自家的 iCloud、Apple ID 账号系统供给了 Private Access Tokens(PAT,私有拜访凭据)来信赖设备。

WWDC22 - Apple 隐私技术探索

具体技能细节,能够观看 Meet passkeys、Replace CAPTCHAs with Private Access Tokens,或阅览 遇见 Passkey、私有拜访凭证 文章。

Lockdown Mode(确定形式)

  • Apple 扩展安全许诺,维护用户免遭特务软件损害 – Apple (中国大陆)

2022 年 7 月 6 日,苹果更新了 iOS 16 beta2 版别开始,增加了 Lockdown Mode(确定形式)

WWDC22 - Apple 隐私技术探索

Lockdown 旨在为极少数用户供给可选的极端维护。这些用户因其身份或工作性质,或许被极为先进的数字要挟确定为进犯方针,如来自 NSO Group 等在国家授意下开发特务软件的私家企业建议的进犯。在 iOS 16、iPadOS 16 和 macOS Ventura 中敞开 Lockdown 形式将进一步加强设备防护,严厉限制部分功用,大幅削减受进犯面,避免给具高度针对性的特务软件待机而动。

Lockdown 形式发布时将包含下列维护功用:

  • 信息:除图片之外的绝大多数信息附件类型将被拦截。链接预览等部分功用将被禁用。
  • 网络阅读:just-in-time (JIT) JavaScript 编译器等部分杂乱网络技能将被禁用,除非用户在 Lockdown 形式中设置受信站点白名单。
  • Apple 服务:向用户建议的 FaceTime 通话等邀请与服务请求将被拦截,除非用户此前向对方建议过通话或请求。
  • iPhone 确守时,与电脑或配件的有线衔接也将被拦截。
  • Lockdown 形式敞开后将无法装置装备文件,且设备无法加入移动设备管理(MDM)。

总结

“我信任人都是聪明的,有些人也乐意共享更多数据。 这就要咨询他们的赞同,每一次都咨询。就算他们厌倦了,也得让他们来告知你不用再问了。而且你要切当地告知他们,你会怎样运用他们的数据。”

Steve Jobs 2010 年,万物数字化大会 (All Things Digital Conference)

正如乔布斯所说,隐私维护,终究让用户决议。但需求注意,在安全的环境下让用户全权决议,但不是代表一味地寻求彻底自主。苹果经过技能在 先进和敞开隐私和安全 之间,找到了相关。

区块链 Web 3.0 概念尽管炽热,但其不可篡改也不可吊销也未必合适一切场景。2022 年 6 月 30 号,苹果强制要求具有账号系统的 App 有必要供给 帐户删去 的功用,关于用户来说,删去数据重要吗。

ATT 关于广告行业,运用 SKAdNetwork,就像投进广告,没有最好的广告,也没有最好的仅有方式,在独占与隐私方面,仍然需求探究更多的或许性和平衡性。

参阅

  • Meet the new Photos picker – WWDC20 – Videos – Apple Developer
  • Handle the Limited Photos Library in your app – WWDC20 – Videos – Apple Developer
  • What’s new in the Photos picker – WWDC22 – Videos – Apple Developer
  • Selecting Photos and Videos in iOS | Apple Developer Documentation
  • What’s new with SKAdNetwork – WWDC22 – Videos – Apple Developer
  • SKAdNetwork | Apple Developer Documentation
  • Ad Attribution – App Store – Apple Developer
  • Discover Benchmarks in App Analytics – WWDC22 – Videos – Apple Developer
  • Differential Privacy Overview – Apple
  • Apple Privacy-Preserving Machine Learning Workshop 2022 – Apple Machine Learning Research
  • Learning with Privacy at Scale – Apple Machine Learning Research
  • Differential Privacy – Simply Explained – YouTube
  • iOS15 安全漏洞剖析:价值10万美元的漏洞曝光 –
  • 隐私 – 管控 – Apple (中国大陆)
  • Building_a_Trusted_Ecosystem_for_Millions_of_Apps_A_Threat_Analysis_of_Sideloading.pdf
  • A_Day_in_the_Life_of_Your_Data.pdf
  • 在 Mac 上安全地翻开 App – Apple 支撑 (中国)
  • Meet passkeys – WWDC22 – Videos – Apple Developer
  • 【WWDC22 10092】遇见 Passkey - 小专栏
  • Replace CAPTCHAs with Private Access Tokens – WWDC22 – Videos – Apple Developer
  • 【WWDC22 10077】验证码的替代者—私有拜访凭证 - 小专栏
  • 帐户删去要求将从 6 月 30 日起生效 – Apple Developer
  • 隐私 – 功用 – Apple (中国大陆)