I OS Security Guide Cn

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 62

iOS 安全保护
iOS 11
2018 1
2iOS 安全保护指南—白皮书 | 2018 1
目录
4 介绍
5 系统安全性
安全启动链
系统软件授权
安全隔区
触控 ID
面容 ID
10 加密和数据保护
硬件安全性功能
文件数据保护
密码
数据保护类
钥匙串数据保护
访问 Safari 浏览器已存储的密码
密钥包
安全性认证和计划
18 应用安全性
应用代码签名
运行时进程安全性
扩展项
应用组
应用中的数据保护
配件
HomeKit
SiriKit
HealthKit
ReplayKit
安全备忘录
共享备忘录
Apple Watch
27 网络安全性
TLS
VPN
无线局域网
蓝牙
单点登录
“隔空投送” 安全性
无线局域网密码共享
31 Apple Pay
Apple Pay 组件
Apple Pay 如何使用安全元件
Apple Pay 如何使用 NFC 控制器
3iOS 安全保护指南—白皮书 | 2018 1
信用卡、 借记卡和储值卡预置
支付授权
交易专用动态安全码
使用 Apple Pay 进行免接触式支付
使用 Apple Pay 进行应用内支付
在网上使用 Apple Pay 支付或者通过 “接力” 支付
回馈卡
Apple Pay Cash
Suica
暂停使用、 移除和抹掉付款卡
39 互联网服务
Apple ID
iMessage 信息
FaceTime 通话
iCloud
iCloud 钥匙串
Siri
连续互通
Safari 建议、 搜索中的 Siri 建议、 查询、 #图像、 “新闻” 应用以及不支持
“新闻” 应用的国家或地区的 “新闻” 小组件
50 设备控制
密码保护
iOS 配对模型
配置执行
移动设备管理 (MDM)
共用的 iPad
Apple 校园教务管理
设备注册
Apple Configurator 2
监督
访问限制
远程擦除
丢失模式
激活锁
55 隐私控制
定位服务
访问个人数据
隐私政策
56 Apple
安全性奖金
57 结束语
安全性承诺
58 术语表
60 文稿修订记录
4iOS 安全保护指南—白皮书 | 2018 1
Apple 设计的 iOS 平台以安全性为核心。 着手于开发一流的移动平台时, 我们充分利用
了数十年积累的丰富经验, 力求打造出全新的架构。 在深入思考桌面环境中的诸多安全性
隐患后, 我们在 iOS 的设计中建立了一个全新的安全保护机制。 我们开发并整合了一系
列有助于增强移动环境安全性的创新功能, 它们会在默认情况下为整个系统提供保护。
这一切使得 iOS 在移动设备安全领域迈出了更深远的一步。
软件、 硬件和服务在每台 iOS 设备上紧密联系、 共同工作, 旨在为用户提供最高的安全性
和透明的体验。 iOS 不仅保护设备和其中的静态数据, 还保护整个生态系统, 包括用户在
本地、 网络上以及使用互联网核心服务执行的所有操作。
iOS iOS 设备不但提供先进的安全性功能, 而且还易于使用。 很多安全性功能在默认
情况下均处于启用状态, 因此 IT 部门无需执行大量的配置操作。 而设备加密等关键的安
全性功能是不可配置的, 因此可以避免用户在无意中停用这些功能。 面容 ID 等其他功能
让设备安全性变得更简单直观, 从而增强了用户体验。
本文详细介绍了安全性技术和功能如何在 iOS 平台中得以实现。 在本文的帮助下, 各个
公司能够将 iOS 平台安全性技术和功能与自身的政策和规程结合在一起, 从而满足公司
的特定安全性需求。
本文主要分为以下几个主题 :
系统安全性 : iPhoneiPad iPod touch 上安全的一体化软硬件平台。
加密和数据保护 : 一种对用户数据进行保护的架构和设计。 在设备丢失或被盗, 或有未
授权人员尝试使用或修改设备时, 能够保护设备上的用户数据。
应用安全性 : 确保应用安全运行, 同时又不破坏平台完整性的系统。
网络安全性 : 针对传输中的数据提供安全认证和加密的行业标准联网协议。
Apple Pay Apple 推行的安全支付方式。
互联网服务 : Apple 用来提供信息通信、 同步和备份服务的网络基础架构。
设备控制 : 允许对 iOS 设备进行管理、 防止未经授权的使用以及在设备丢失或被盗时
启用远程擦除的方法。
隐私控制 : iOS 中可用于控制 “定位服务” 和用户数据访问权限的功能。
介绍
设备密钥
群组密钥
Apple 根证书
加密引擎
内核
操作系统分区
安全隔区 安全元件
用户分区
(加密)
数据保护类
应用沙盒
文件系统
软件
硬件和
固件
iOS 安全性架构图以直观的图表形式概述了
本文要探讨的各类技术。
5iOS 安全保护指南—白皮书 | 2018 1
系统安全性旨在确保每台 iOS 设备的所有核心组件都能为软件和硬件提供安全保护。
这包括启动过程、 软件更新和安全隔区。 此架构是 iOS 安全体系的核心, 并且不会影响
设备的正常使用。
iOS 设备的硬件、 软件和服务实现了紧密集成, 可确保系统的每个组件均获得信任, 并对
系统进行整体验证。 从初始启动到 iOS 软件更新, 再到第三方应用, 每个步骤都经过分析
和审查, 确保硬件和软件以最优化的方式协同工作, 并以恰当的方式使用资源。
安全启动链
启动过程每个步骤包含的组件都经 Apple 加密签名以确保其完整性, 只有在验证信任
链后, 每个步骤才能继续。 这些组件包括引导加载程序、 内核、 内核扩展项和基带固件。
这一安全启动链有助于确保软件的最底层不被篡改。
iOS 设备开机后, 其应用程序处理器会立即执行只读内存 (称为 Boot ROM) 中的代码。
这些不可更改的代码 (称为硬件的信任根) 是在制造芯片时设好的, 为隐式受信任代码。
Boot ROM 代码包含 Apple CA 公钥, 该公钥用于验证 iBoot 引导加载程序是否经
Apple 签名, 以决定是否允许其加载。 这是信任链中的第一步, 信任链中的每个步骤
都确保下一步骤获得 Apple 的签名。 iBoot 完成任务后, 会验证和运行 iOS 内核。 对于
搭载 S1A9 或更早 A 系列处理器的设备, Boot ROM 还会加载和验证底层引导加载程
(LLB), 之后会依次加载和验证 iBoot
如果 Boot ROM 载入 LLB (在较旧设备上) 或 iBoot (在较新设备上) 失败, 会导致设
备进入 DFU 模式。 如果 LLB iBoot 无法载入或验证下一步, 启动过程会暂停, 设备
显示屏会显示连接到 iTunes 屏幕。 这被称为恢复模式。 出现任一情况, 设备都必须通过
USB 连接到 iTunes, 并恢复为出厂默认设置。
对于可接入蜂窝移动网络的设备, 基带子系统也使用其类似的安全启动过程, 包括已签名
的软件以及由基带处理器验证的密钥。
对于搭载安全隔区的设备, 安全隔区协处理器还会使用安全启动过程, 用以确保其单独的
软件经过 Apple 验证和签名。 请参阅本白皮书的 “安全隔区” 部分。
有关手动进入恢复模式的更多信息, 请访问 : support.apple.com/zh-cn/HT201263
系统软件授权
Apple 会定期发布软件更新以解决新出现的安全性问题, 并提供全新功能 ; 此类更新会
同时提供给所有支持的设备。 用户会在设备上和 iTunes 中看到 iOS 更新通知, 更新通
过无线方式发送, 旨在鼓励用户尽快应用最新的安全性修正。
前述启动过程有助于确保设备上只能安装 Apple 签名的代码。 为避免设备降级为缺少最
新安全性更新的早期版本, iOS 采用了名为 “系统软件授权” 的过程。 如果可以将设备降
级, 攻击者一旦有了设备的控制权, 便会安装早期版本的 iOS, 并利用旧版本中未修复的
漏洞来进行破坏。
对于搭载安全隔区的设备, 安全隔区协处理器还会利用 “系统软件授权” 来确保软件的
完整性, 并防止降级安装。 请参阅本白皮书的 “安全隔区” 部分。
系统安全性
进入设备固件升级 (DFU) 模式
进入 DFU 模式后恢复设备, 可使设备恢复到
已知的正常状态, 该状态下只存在未修改的
Apple 签名的代码。 可通过以下方式手动进
DFU 模式。
首先, 使用 USB 连接线将设备连接到电脑。
然后 :
iPhone XiPhone 8 iPhone 8 Plus
上 : 按下并快速松开调高音量按钮。 按下并快
速松开调低音量按钮。 然后, 按住侧边按钮直
到看见恢复模式屏幕。
iPhone 7 iPhone 7 Plus 上 : 同时按
住侧边按钮和调低音量按钮。 一直按住直到看
见恢复模式屏幕。
iPhone 6s 及更早机型、 iPad
iPod touch 上 : 同时按住主屏幕按钮和顶部
(或侧边) 按钮。 一直按住直到看见恢复模式
屏幕。
注:设备进入 DFU 模式时, 屏幕上不会显示
任何内容。 如果出现 Apple 标志, 表示按住
侧边按钮或睡眠 /唤醒按钮的时间过长。
6iOS 安全保护指南—白皮书 | 2018 1
iOS 软件更新可通过 iTunes 安装, 也可采用无线 (OTA) 方式直接在设备上安装。 如果
通过 iTunes 安装更新, 系统会下载并安装完整的 iOS 副本。 如果采用 OTA 方式安装
软件更新, 系统将仅下载完成更新所需的组件, 而不是下载整个操作系统, 这样可有效提
升网络效率。 此外, 软件更新可以缓存到运行 macOS High Sierra 且启用了 “内容缓
存” 的 Mac 上, 这样 iOS 设备便无需通过互联网重新下载必要的更新。 iOS 设备仍需
联系 Apple 服务器来完成更新过程。
iOS 升级过程中, iTunes (若采用 OTA 软件更新方式, 则为设备本身) 会连接到
Apple 安装授权服务器, 并向其发送以下数据 : 要安装的安装包各部分 (例如, iBoot
内核及操作系统映像) 的加密测量值列表、 一个随机的反重放值 (随机数) 以及设备的
唯一 ID (ECID)
授权服务器将提供的测量值列表与允许安装的版本进行比较, 如果找到匹配项, 就会将
ECID 添加到测量值并对结果进行签名。 作为升级过程的一部分, 服务器会将完整的一组
已签名数据传递给设备。 添加 ECID 可为请求设备 “个性化” 授权。 通过仅对已知测量值
授权和签名, 服务器可确保更新的内容即为 Apple 所提供的内容。
启动时信任链评估用于验证签名是否来自 Apple, 并结合设备的 ECID 来确认从磁盘加
载的项目测量值是否与该签名认可的内容相匹配。
这些步骤可确保针对特定设备进行授权, 并且旧版 iOS 无法从一台设备拷贝到另一台设备。
随机数可防止攻击者存储服务器的响应和利用该响应来破坏设备或通过其他方式篡改系统
软件。
安全隔区
安全隔区是 Apple T1Apple S2Apple S3Apple A7 或更高版本 A 系列处理器
中集成的协处理器。 它使用加密内存, 并包含一个硬件随机数生成器。 安全隔区为数据保
护密钥管理提供所有加密操作, 即使在内核遭到入侵的情况下, 也可维护数据保护的完整
性。 安全隔区与应用程序处理器之间的通信被隔离到一个中断驱动的邮箱以及共享的内存
数据缓冲区。
安全隔区运行的是 L4 微内核的 Apple 定制版本。 此微内核由 Apple 签名, 作为 iOS
安全启动链的部分进行验证, 并通过定制化的软件更新过程得到更新。
设备启动时会创建一个临时密钥, 此密钥与设备的 UID 配合使用, 并用于对设备内存空
间的安全隔区部分进行加密。 除在 Apple A7 上之外, 安全隔区的内存也使用临时密钥进
行认证。 在 Apple A11 上, 使用了完整性树防止安全性要求极高的安全隔区内存出现重
放, 并使用储存在芯片上 SRAM 中的临时密钥和随机数进行认证。
此外, 由安全隔区存储到文件系统的数据还会通过与 UID 配合使用的密钥以及反重放计
数器进行加密。 安全隔区上的反重放服务用于随事件的发展撤销数据, 这些标记反重放边
界的事件包括但不限于 :
更改密码
启用 /停用触控 ID 或面容 ID
添加 /删除指纹
重设面容 ID
添加 /移除 Apple Pay 卡片
抹掉所有内容和设置
安全隔区还负责处理来自触控 ID 和面容 ID 传感器的指纹和面容数据, 确定是否匹配,
然后代表用户允许访问或购买。
7iOS 安全保护指南—白皮书 | 2018 1
触控 ID
触控 ID 是指纹感应系统, 有助于更快、 更轻松地对 iPhone iPad 进行安全的访问。
此技术可从任意角度读取指纹数据, 随着传感器每次使用时识别出更多重叠的节点而不断
扩大指纹图, 逐步提高对用户指纹识别的能力。
面容 ID
只需轻轻一瞥, 面容 ID 就会安全地解锁 iPhone X。 它借助于原深感摄像头系统所使用
的先进技术来准确绘制您脸部的几何特征, 从而提供直观、 安全的认证方法。 面容 ID
过检测您注视的方向来确认注意力, 然后使用神经网络来匹配和反欺诈, 让用户只需一瞥
即可解锁手机。 面容 ID 自动适应您外貌的变化, 并谨慎地保护您生物识别数据的隐私和
安全。
触控 ID、 面容 ID 和密码
要使用触控 ID 或面容 ID, 您必须对设备进行相应的设置, 令设备需要密码才能解锁。
当触控 ID 或面容 ID 检测到匹配成功后, 设备便会自动解锁, 且不会要求输入设备密码。
这让使用更长、 更复杂的密码变得更加实际, 因为您无需频繁地输入这样的密码。 触控 ID
和面容 ID 不会代替您的密码, 而是在精心设计的范围和时间限制内方便您轻松访问设备。
这一点十分重要, 因为强密码是形成您 iOS 设备加密保护的根基。
您随时都可以使用密码来代替触控 ID 或面容 ID 并且在以下情况下必须使用密码 :
设备刚刚开机或重新启动。
设备未解锁的时间超过 48 小时。
在过去 156 个小时 (六天半) 内未使用密码解锁设备, 且在过去 4 小时内未使用
面容 ID 解锁设备。
设备收到了远程锁定命令。
尝试五次后未能成功匹配。
在关机 /使用 SOS 紧急联络后。
触控 ID 或面容 ID 启用后, 按下侧边按钮时, 设备会立即锁定, 且每次设备进入睡眠状
态后都会锁定。 每次唤醒时, 需要成功匹配触控 ID 和面容 ID, 或者密码。
其他人注视您的 iPhone X 并通过面容 ID 解锁成功的概率大约为一百万分之一 (而触控
ID 的这一概率为五万分之一)。 为了提供额外的保护, 触控 ID 和面容 ID 都只允许五次
不成功的匹配尝试, 之后便会要求输入密码来获得设备的访问权限。 对于与您长相相似的
双胞胎和兄弟姐妹, 以及未满 13 岁的儿童, 面容 ID 错误匹配的概率有所不同。 后者的
原因是, 儿童的脸部特征可能尚未完全成型。 如果对此感到担忧, Apple 建议您使用密码
来认证。
触控 ID 安全性
只有当主屏幕按钮周围的电容金属环检测到手指触摸时, 指纹传感器才会启动, 从而触发
先进的成像阵列来扫描手指, 并将扫描结果发送至安全隔区。 处理器和触控 ID 传感器之
间的通信通过串行外设接口总线实现。 处理器将数据转发到安全隔区, 但处理器本身无法
读取这些数据。 数据通过会话密钥进行加密和认证, 该密钥通过为每个出厂触控 ID 传感
器及其对应的安全隔区预置的共享密钥进行协商。 共享密钥对于每个触控 ID 传感器而言
都是随机且不同的强密钥。 会话密钥交换针对双方使用 AES 密钥封装, 并提供一个用于
建立会话密钥并使用 AES-CCM 传输加密的随机密钥。
光栅扫描结果会临时储存在安全隔区的加密内存中, 同时系统会对其进行向量化处理以便
分析, 然后将丢弃相关数据。 此分析采用皮下纹路走向角度映射, 这是一种有损过程, 会在
分析完成后丢弃用于重建用户实际指纹的详细数据。 最终生成的节点图以一种只能由安全
隔区读取的加密格式进行储存, 不包含任何身份信息并且绝不会发送给 Apple 或备份至
iCloud iTunes
8iOS 安全保护指南—白皮书 | 2018 1
面容 ID 安全性
面容 ID 旨在确认用户的注意力, 提供一种匹配错误率低的可靠认证方法, 并减少数字和
实体诈骗。
当您拿起 iPhone X 或轻点屏幕来唤醒设备时, 以及当 iPhone X 尝试对您进行认证来
显示收到的通知或者支持的应用要求进行面容 ID 认证时, 原深感摄像头会自动查找您的
脸部。 检测到脸部后, 面容 ID 通过检测到您的双眼睁开且注视着设备来确认注意力和解锁
意图对于辅助功能, 当 “旁白” 激活时, 此功能会停用, 并且可在需要时单独停用。
一旦确认存在注意着设备的脸部, 原深感摄像头会投影并读取 30000 多个红外点以绘制
脸部的深度图和 2D 红外图像。 此数据被用来创建一个 2D 图像和深度图序列, 经过数字
签名后发送到安全隔区。 为抵制数字和实体诈骗, 原深感摄像头会随机化捕捉到的一个 2D
图像和深度图序列, 并投影出设备特定的随机图案。 A11 仿生芯片的神经引擎 (在安全隔
区中受到保护) 的一部分会将此数据转换为数学表达式, 并将该表达式与注册的脸部数据
进行对比。 此注册的脸部数据本身就是捕捉自您脸部各种姿态转换而成的数学表达式。
在安全隔区内部, 使用专为脸部识别而训练的神经网络来执行脸部匹配。 我们开发的脸部
匹配神经网络使用了超过十亿张图像, 其中包括在参与者知情同意的条件下所开展的研究
中收集的 IR 图像和深度图像。 Apple 与全世界的参与者开展合作, 力争包括不同性别、
年龄、 种族和其他因素的各类人群代表。 此项研究根据需要进行了扩增, 从而为各种不同
范围的用户提供高度的准确性。 即使戴有帽子、 围巾、 眼镜、 隐形眼镜和各式太阳眼镜,
面容 ID 也会确保正常使用。 此外, 在室内、 室外, 甚至完全漆黑的情况下都可以使用。
训练用来发现和抵制诈骗的额外神经网络可以抵御尝试使用照片或面具来解锁 iPhone X
行为。
面容 ID 数据, 其中包括脸部的数学表达式, 经过加密且仅可被安全隔区使用。 此数据绝
对不会离开设备, 不会发送给 Apple, 也不会包括在设备备份中。 在日常操作中, 以下
面容 ID 数据会存储和加密, 仅供安全隔区使用 :
注册时, 计算出的您脸部的数学表达式。
在某些解锁尝试过程中计算出的脸部数学表达式, 如果面容 ID 认为这些表达式有助于
扩增日后匹配。
在日常操作中所捕捉的脸部图像不会存储, 在注册时或与注册的面容 ID 数据进行对比时,
会在计算出数学表达式后会立即丢弃。
触控 ID 或面容 ID 如何解锁 iOS 设备
如果触控 ID 或面容 ID 已停用, 当设备锁定时, 保存在安全隔区中数据保护的最高类的
密钥将被丢弃。 除非您输入密码来解锁设备, 否则不允许访问该类中的文件和钥匙串项。
如果触控 ID 或面容 ID 已启用, 当设备锁定时, 这些密钥不会被丢弃, 而是通过提供给
安全隔区中的触控 ID 或面容 ID 子系统的密钥进行封装。 当您尝试解锁设备时, 如果设备
检测到匹配成功, 它将提供用于解封数据保护密钥的密钥, 从而使设备得到解锁。 此过程
要求数据保护和触控 ID 或面容 ID 子系统相互配合以解锁设备, 因此提供了额外的保护。
设备重启时, 触控 ID 或面容 ID 用来解锁设备所需的密钥会丢失 ; 如果出现需要输入密
码的任何情况 (例如, 超过 48 小时未解锁或尝试匹配失败超过五次), 安全隔区会丢弃
密钥。
为了改善解锁性能并紧跟您脸部和外观的自然变化, 面容 ID 会随着时间扩增其储存的数
学表达式。 成功解锁后, 面容 ID 会在有限的次数内使用新计算的数学表达式 (如果其质
量够好) 来解锁, 然后丢弃该数据。 相反, 如果面容 ID 未能识别您, 但匹配质量较某些
阈值要高且您在失败后立即输入了密码, 面容 ID 会再次捕捉并使用新计算的数学表达式
来扩增其注册的面容 ID 数据。 如果您停止与之匹配且在有限的解锁次数后, 此新的面容
ID 数据会丢弃。 这些扩增过程允许面容 ID 紧跟因您脸部毛发或化妆品使用而带来的大幅
改变, 从而尽量减少错误接受率。
9iOS 安全保护指南—白皮书 | 2018 1
触控 ID、 面容 ID Apple Pay
您也可以结合 Apple Pay 使用触控 ID 和面容 ID 在商店、 应用和网上轻松、 安全地进
行购买。 有关触控 ID Apple Pay 的更多信息, 请参阅本白皮书的 “Apple Pay” 部分。
要使用面容 ID 授权店内支付, 您必须先连按侧边按钮两下来确认支付意图。 然后使用面
ID 进行认证, 之后将 iPhone X 靠近免接触式支付读卡器。 在面容 ID 认证后, 如果
想要选择其他 Apple Pay 支付方式, 您需要重新认证, 但无需再次连按侧边按钮两下。
要在应用内和网上进行支付, 需要连按侧边按钮两下来确认您的支付意图, 然后使用面容
ID 鉴定来授权此次付款。 如果在连按两下侧边按钮后的 30 秒内没有完成 Apple Pay
交易, 您需要再次连按侧边按钮两下来重新确认支付意图。
面容 ID 诊断
面容 ID 数据不会离开您的设备, 也绝不会备份到 iCloud 或任何其他地方。 只有当您想
要将面容 ID 诊断数据提供给 AppleCare 以获得支持时, 此信息才会从您的设备传输。
启用 “面容 ID 诊断” 要求从 Apple 获得数字签名的授权, 这个授权与在软件更新定制化
过程中所使用的类似。 获得授权后, 您将能够在 iPhone X 上的 “设置” 应用内激活 “面容
ID 诊断” 并开始设置过程。
作为设置 “面容 ID 诊断” 的一部分, 现有的面容 ID 注册将被删除且会要求您在面容 ID
中重新注册。 在接下来的 10 天内, iPhone X 会开始记录在认证过程中所捕捉到的面容
ID 图像 ; 之后, iPhone X 将自动停止存储图像。 “面容 ID 诊断” 不会自动将数据发送给
Apple。 在发送给 Apple 前, 您可以检查和批准 “面容 ID 诊断” 数据, 其中包括在诊断
模式中所收集的注册和解锁图像 (包括失败和成功的情况)。 “面容 ID 诊断” 仅会上传您
批准的 “面容 ID 诊断” 图像, 在上传之前此数据会加密, 且在上传完成后立即从 iPhone
X 删除。 您拒绝的图像会立即删除。
如果未通过检查图像并上传任何经过批准的图像而结束 “面容 ID 诊断” 会话, “面容 ID
断” 会在 40 天后自动结束, 所有诊断图像会从您的 iPhone X 删除。 您也可以随时停用
“面容 ID 诊断”。 如果停用, 所有本地图像会立即删除, 且在这些情况下不会与 Apple
享任何面容 ID 数据。
触控 ID 和面容 ID 的其他用途
第三方应用可以使用系统提供的 API 要求用户使用触控 ID、 面容 ID 或密码进行认证,
支持触控 ID 的应用无需任何更改便可自动支持面容 ID。 使用触控 ID 或面容 ID 时, 应
用只会收到认证是否成功的通知, 而无法访问触控 ID、 面容 ID 或与已注册用户关联的数
据。 钥匙串项也可使用触控 ID 或面容 ID 进行保护, 使安全隔区仅当匹配成功或设备密
码正确时才将其释出。 在要求使用触控 ID、 面容 ID 或密码解锁钥匙串项前, 应用开发者
调用 API 确认用户已经设置了密码。 应用开发者可以执行以下操作 :
要求认证 API 操作不回退到应用密码或者设备密码。 他们可以查询用户是否进行了
注册, 从而允许在注重安全性的应用中将触控 ID 或面容 ID 用作第二重身份。
在安全隔区内生成和使用受触控 ID 或面容 ID 保护的 ECC 密钥。 涉及这些密钥的
操作始终在安全隔区授权使用后在安全隔区内执行。
您还可以对触控 ID 或面容 ID 进行配置, 以便批准 iTunes StoreApp Store
iBooks Store 中的购买行为, 省去每次都要输入 Apple ID 密码的麻烦。 在 iOS 11
更高版本中, 受触控 ID 和面容 ID 保护的安全隔区 ECC 密钥用于给商店请求签名来授权
购买。
10iOS 安全保护指南—白皮书 | 2018 1
加密和数据保护
安全启动链、 代码签名和运行时进程安全性都有助于确保只有受信任的代码及应用可以在
设备上运行。 iOS 还有更多加密和数据保护功能来保护用户数据的安全, 即使安全性基础
架构的其他部分遭到入侵 (例如, 在设备上进行未授权的修改)。 这对于用户和 IT 管理员
都大有助益, 它可始终保护个人和企业信息, 而且有办法在设备被盗或丢失时立即进行彻
底的远程擦除。
硬件安全性功能
在移动设备上, 速度和节能至关重要。 加密操作非常复杂, 如果在设计和实施时未考虑这
两个重要因素, 可能会带来一些性能或电池续航方面的问题。
每台 iOS 设备都配备了专用的 AES-256 加密引擎, 它内置于闪存与主系统内存之间的
DMA 路径中, 可以实现高效的文件加密。 在 A9 或更高版本的 A 系列处理器上, 闪存子
系统位于隔离的总线上, 该总线仅被授权通过 DMA 加密引擎访问包含用户数据的内存。
设备的唯一 ID (UID) 和设备组 ID (GID) AES 256 位密钥, 密钥已在制造过程中被
固化 (UID) 或编译 (GID) 在应用程序处理器和安全隔区中。 任何软件或固件都无法直接
读取这些 ID, 而只能查看加密或解密操作结果。 这些加密或解密操作则由植入于硅片中
的专用 AES 引擎将 UID GID 用作密钥来执行。 此外, 只有专用于安全隔区的 AES
引擎才能使用安全隔区的 UID GIDUID GID 也不可以通过 JTAG 或其他调试
接口使用。
T1S2S3A9 或更高版本的 A 系列处理器上, 每个安全隔区会生成自己的 UID
(唯一 ID)。 因为每台设备的 UID 都是唯一的, 且完全是在安全隔区内生成, 而不是在
设备外的制造系统中生成, 因此 Apple 或其任何供应商都无法访问或存储 UID。 在安全
隔区中运行的软件利用 UID 来保护设备特定的密钥。
有了 UID, 就可以通过加密方式将数据与特定设备捆绑起来。 例如, 用于保护文件系统的
密钥层次结构就包括 UID, 因此如果将存储芯片从一台设备整个移至另一台设备, 文件将
不可访问。 UID 与设备上的任何其他标识符都无关。
GID 对于同一类设备 (例如, 使用 Apple A8 处理器的所有设备) 的所有处理器是通用的。
除了 UID GID, 所有其他加密密钥都由系统的随机数生成器 (RNG) 使用基于
CTR_DRBG 的算法创建。 系统熵是在启动期间从时间变化以及设备启动后从中断计时中
生成的。 在安全隔区内部, 生成的密钥使用的是其真正的硬件随机数生成器, 它基于多个
环形振荡器并经过 CTR_DRBG 后处理。
安全抹掉存储的密钥与生成它们一样重要。 在闪存上执行这项操作尤其具有挑战性, 例如,
在闪存上损耗均衡 (wear-leveling) 可能意味着需要抹掉多份数据副本。 为了解决该问
题, iOS 设备加入了一种专用于安全擦除数据的功能, 称为可擦除存储器。 此功能通过
访问基础存储技术 (例如 NAND) 直接进行非常低级别的寻址并抹掉少量数据块。
抹掉所有内容和设置
“设置” 中的 “抹掉所有内容和设置” 选项会清
除可擦除储存空间上的所有密钥, 从而使设备
上的所有用户数据因为处于加密状态而不可访
问。 因此, 这是在将设备送给别人或送修时确
保从设备中移除所有个人信息的理想方式。
重要事项 : 除非设备已备份, 否则请勿使用
“抹掉所有内容和设置” 选项, 因为抹掉的数据
无法恢复。
11iOS 安全保护指南—白皮书 | 2018 1
文件数据保护
除了 iOS 设备内置的硬件加密功能, Apple 还使用称为数据保护的技术, 进一步保护储
存于设备闪存中的数据。 数据保护使设备不但可以响应来电等常见事件, 还可以针对用户
数据实现高级别加密。 诸如 “信息”、 “邮件”、 “日历”、 “通讯录”、 “照片” “健康” 数据值
等主要系统应用在默认情况下使用数据保护, 且 iOS 7 或更高版本上安装的第三方应用
会自动获得此保护。
数据保护是通过构建和管理密钥层次结构来实现的, 并建立在每台 iOS 设备的硬件加密
技术基础上。 它通过将某个类分配给每个文件来实现对文件的逐个控制 ; 可访问性取决于
该类密钥是否已解锁。 随着 Apple 文件系统 (APFS) 的出现, 文件系统现在能够进一步
将密钥细分为范围独有基准 (文件的各个部分可以拥有不同的密钥)。
架构概览
每次在数据分区中创建文件时, 数据保护都会创建一个新的 256 位密钥 (“文件独有”
密钥), 并将其提供给硬件 AES 引擎, 此引擎会使用该密钥并采用 AES CBC 模式对写
入闪存的文件进行加密。 (在配备 A8 或更高版本处理器的设备上, 使用了 AES-XTS。)
初始化向量 (IV) 使用文件块偏移量进行计算, 它使用文件独有密钥的 SHA-1 哈希值进
行加密。
根据每个文件的可访问性, 文件独有 (或范围独有) 密钥使用其中一个类密钥进行封装。
像所有其他封装一样, 这是使用 NIST AES 密钥封装根据 RFC 3394 来执行的。
封装的文件独有密钥储存在文件的元数据中。
使用 Apple 文件系统格式运行的设备可能支持文件克隆 (使用写入时拷贝技术的零成本
副本)。 如果文件被克隆, 克隆的每一半都会得到一个新的密钥以接受传入的数据写入,
这样新数据会使用新密钥写入介质。 久而久之, 文件可能会由不同的范围 (或片段) 组成,
每个映射到不同的密钥。 但是, 组成文件的所有范围将受到同一类密钥的保护。
当打开一个文件时, 系统会使用文件系统密钥解密文件的元数据, 以显露出封装的文件
独有密钥和表示它受哪个类保护的记号。 文件独有 (或范围独有) 密钥使用类密钥解封,
然后提供给硬件 AES 引擎, 该引擎会在从闪存中读取文件时对文件进行解密。 所有封装
文件密钥的处理发生在安全隔区中 ; 文件密钥绝不会直接透露给应用程序处理器。 启动时,
安全隔区与 AES 引擎协商得到一个临时密钥。 当安全隔区解开文件密钥时, 它们又通过
该临时密钥再次封装, 然后发送回应用程序处理器。
文件系统中所有文件的元数据都使用随机密钥进行加密, 该密钥在首次安装 iOS 或用户
擦除设备时创建。 在支持 Apple 文件系统的设备上, 文件系统元数据密钥由安全隔区 UID
密钥封装进行长期储存。 正如文件独有密钥或范围独有密钥一样, 元数据密钥绝不会直接
透露给应用程序处理器, 相反, 安全隔区会提供一个临时的启动独有的版本。 储存后,
加密的文件系统密钥还会使用储存在可擦除存储器中的 “可擦除密钥” 封装。 此密钥不会提
供数据的额外机密性。 相反, 它可以根据需要快速抹掉 (由用户使用 “抹掉所有内容和设置”
选项来抹掉, 或者由用户或管理员通过从 MDM 解决方案、 Exchange ActiveSync
iCloud 发出远程擦除命令来抹掉)。 以这种方式抹掉密钥将导致所有文件因存在加密而
不可访问。
文件内容
文件元数据
文件密钥
文件系统密钥
类密钥
密码密钥
硬件密钥
翻译有问题
Data Protection is
controlled on a per-file
basis by assigning each
file to a class;
12iOS 安全保护指南—白皮书 | 2018 1
文件的内容可能使用文件独有 (或范围独有) 的一个或多个密钥进行加密, 密钥使用类密
钥封装并储存在文件的元数据中, 文件元数据又使用文件系统密钥进行加密。 类密钥通过
硬件 UID 获得保护, 而某些类则通过用户密码获得保护。 此层次结构既可提供灵活性,
又可保证性能。 例如, 更改文件的类只需重新封装其文件独有密钥, 更改密码只需重新封
装类密钥。
密码
通过设置一个设备密码, 用户便自动启用了数据保护。 iOS 支持 6 位数、 4 位数和任意
长度的字母数字密码。 除了用于给设备解锁, 密码还为特定的加密密钥提供熵。 这意味着
攻击者即使拿到设备, 在没有密码的情况下也无法访问某些特定保护类的数据。
密码与设备的 UID 配合使用, 因此暴力尝试只能在受到攻击的设备上进行。 为此, iOS
系统使用较大的迭代次数来延缓每次尝试。 迭代次数已经校准过, 使得每次尝试约耗时
80 毫秒。 这意味着尝试 6 位字符的字母 (小写) 数字密码的全部组合将耗时超过五年半。
用户密码的强度越大, 加密密钥的强度就越高。 触控 ID 和面容 ID 可用于增强这样的因
果关系, 因为它可以让用户创建一个要比实用密码安全性高很多的密码。 这样, 对数据保
护所用加密密钥提供保护的有效熵的数量得以增加, 而且不会对一天中多次解锁 iOS
备的用户体验产生负面影响。
为了进一步阻止对密码的暴力破解攻击, 在锁定屏幕上输入无效密码后的延迟时间会逐
步增加。 如果 “设置” >“触控 ID 与密码” >“抹掉数据” 已打开, 则当连续 10 次尝试输
入错误的密码后, 设备会自动擦除。 此设置还可作为管理策略通过 MDM Exchange
ActiveSync 提供, 而且可设置为较低的阈值。
在搭载安全隔区的设备上, 延迟由安全隔区协处理器执行。 如果设备在定时延迟期间重新
启动, 延迟仍然执行, 且定时器从当期重新计时。
数据保护类
iOS 设备上创建新文件时, 创建它的应用会为其分配一个类。 每个类使用不同的策略
来确定数据何时可被访问。 基本的类和策略信息请见下文的描述。
全面保护
(NSFileProtectionComplete): 该类密钥通过从用户密码和设备 UID 派生的密钥
得到保护。 用户锁定设备后不久 (如果 “需要密码” 设置为 “立即”, 则为 10 秒钟), 解密的
类密钥会被丢弃, 此类的所有数据都无法访问, 除非用户再次输入密码或使用触控 ID
面容 ID 解锁设备。
未打开文件的保护
(NSFileProtectionCompleteUnlessOpen): 设备锁定时, 可能需要写入
部分文件。 如邮件附件在后台下载。 此行为通过使用非对称椭圆曲线加密技术 (基于
Curve25519 ECDH) 实现。 普通的文件独有密钥通过使用一次性迪菲 -赫尔曼密钥
交换协议 (One-Pass Diffie-Hellman Key Agreement,如
NIST SP 800-56A
所述) 派生的密钥进行保护。
该协议的临时公钥与封装的文件独有密钥一起储存。 KDF 是串联密钥导出函数
(Approved Alternative 1),如
NIST SP 800-56A 5.8.1 所述。 AlgorithmID
忽略。 PartyUInfo PartyVInfo 分别是临时公钥和静态公钥。 SHA-256 被用作哈希
函数。 一旦文件关闭, 文件独有密钥就会从内存中擦除。 要再次打开该文件, 系统会使用
“未打开文件的保护” 类的私钥和文件的临时公钥重新创建共享密钥, 用来解开文件独有
密钥的封装, 然后用文件独有密钥来解密文件。
密码注意事项
如果输入较长的纯数字密码, 锁定屏幕上
会显示数字小键盘, 而非全键盘。 与较短的
字母数字密码相比, 较长的数字密码可能
更容易输入, 而且可以提供类似的安全性。
密码尝试间的延迟
尝试次数 执行延迟
1-4
5 1
分钟
6 5
分钟
7-8 15
分钟
9 1
小时
13iOS 安全保护指南—白皮书 | 2018 1
首次用户认证前保护
(NSFileProtectionCompleteUntilFirstUserAuthentication): 此类
和 “全面保护” 类的行为方式相同, 只不过锁定设备时已解密的类密钥不会从内存中删除。
此类中的保护与桌面电脑全宗卷加密有类似的属性, 可防止数据受到涉及重新启动的攻
击。 这是未分配给数据保护类的所有第三方应用数据的默认类。
无保护
(NSFileProtectionNone): 此类密钥仅受 UID 的保护, 并且存储在可擦除存储器
中。 由于解密该类中的文件所需的所有密钥都储存在设备上, 因此采用该类加密的唯一好
处就是可以进行快速远程擦除。 即使未向文件分配数据保护类, 此文件仍会以加密形式储
存 (就像 iOS 设备上的所有数据那样)。
数据保护类密钥
A 全面保护 (NSFileProtectionComplete)
B 未打开文件的保护 (NSFileProtectionCompleteUnlessOpen)
C 首次用户认证前保护 (NSFileProtectionCompleteUntilFirstUserAuthentication)
D 无保护 (NSFileProtectionNone)
钥匙串数据保护
许多应用都需要处理密码和其他一些简短但比较敏感的数据, 如密钥和登录令牌。 iOS
匙串提供了储存这些项的安全方式。
钥匙串以储存在文件系统中的 SQLite 数据库的形式实现, 且数据库只有一个,
securityd 监控程序决定每个进程或应用可以访问哪些钥匙串项。 钥匙串访问 API 将生
成对监控程序的调用, 从而查询应用的 “keychain-access-groups”、 “application-
identifier”和“
application-group” 权限。 访问组允许在应用之间共享钥匙串项, 而非
将访问权限限制于单个进程。
钥匙串项只能在来自同一开发者的应用之间共享。 管理它的方法是, 要求第三方应用使用
包含前缀的访问组, 并且该前缀由应用程序组通过 Apple Developer Program Apple
开发者计划) 分配。 通过代码签名、 预置描述文件和 Apple Developer Program
Apple 开发者计划) 来强制实施对前缀的要求和应用程序组唯一性。
系统用于保护钥匙串数据的类结构与文件数据保护中使用的类结构相似。 这些类具有与
文件数据保护类相同的行为, 但使用的密钥不同, 所属 API 的名称也不同。
可用性 文件数据保护 钥匙串数据保护
未锁定状态下 NSFileProtectionComplete kSecAttrAccessibleWhenUnlocked
锁定状态下 NSFileProtectionCompleteUnlessOpen 暂无
首次解锁后 NSFileProtectionCompleteUntilFirstUserAuthentication kSecAttrAccessibleAfterFirstUnlock
始终 NSFileProtectionNone kSecAttrAccessibleAlways
密码启用状态下 暂无 kSecAttrAccessible
WhenPasscodeSetThisDeviceOnly
利用后台刷新服务的应用可将 kSecAttrAccessibleAfterFirstUnlock 用于后
台更新过程中需要访问的钥匙串项。
钥匙串项的组件
除了访问组, 每个钥匙串项还包含管理元数据
(如 “创建时间” 和 “上次更新时间” 时间戳)。
它还包含一些属性的 SHA-1 哈希值, 用来查
询某些项目 (例如帐户和服务器名称) 以允许
无需解密每个项目即可进行查找。 最后, 它还
包含加密数据, 其中包括 :
版本号
访问控制列表 (ACL) 数据
指明项目所属保护类的值
使用保护类密钥封装的项目独有密钥
描述项目的属性字典 (传递到
SecItemAdd), 编码为二进制 plist 并使用
项目独有密钥加密
加密为 GCM Galois/Counter Mode
伽罗瓦 /计数器模式) 模式下的 AES 128
访问组包含在属性中, 受加密过程中计算得出的
GMAC 标签保护。
14iOS 安全保护指南—白皮书 | 2018 1
kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
kSecAttrAccessibleWhenUnlocked 行为方式相同 ; 但前者仅当设备配置了密码
时可用。 此类只在系统密钥包中存在 ; 它们不会同步到 iCloud 钥匙串 ; 不会进行备份 ;
也不会包括在托管密钥包中。 如果密码被移除或重设, 类密钥便会丢弃, 这些项目也变得
无法使用。
其他钥匙串类都有对应的 “仅限本设备” 项目, 后者在备份期间从设备拷贝时始终通过
UID 加以保护, 因此如果恢复至其他设备将无法使用。
Apple 根据所保护信息的类型和 iOS 需要这些信息的时间来选择钥匙串类, 妥善平衡了
安全性和可用性。 例如, VPN 证书必须始终可用, 这样设备才能保持持续的连接, 但它
归类为 “不可迁移”, 因此不能将其移至另一台设备。
对于由 iOS 创建的钥匙串项, 将强制实施以下类保护 :
项目 可访问
无线局域网密码 首次解锁后
邮件帐户 首次解锁后
Exchange 帐户 首次解锁后
VPN 密码 首次解锁后
LDAPCalDAVCardDAV 首次解锁后
社交网络帐户令牌 首次解锁后
“接力” 广播加密密钥 首次解锁后
iCloud 令牌 首次解锁后
家庭共享密码 未锁定状态下
“查找我的 iPhone” 令牌 始终
语音信箱 始终
iTunes 备份 未锁定状态下, 不可迁移
Safari 浏览器密码 未锁定状态下
Safari 浏览器书签 未锁定状态下
VPN 证书 始终, 不可迁移
Bluetooth® 密钥 始终, 不可迁移
Apple 推送通知服务令牌 始终, 不可迁移
iCloud 证书和私钥 始终, 不可迁移
iMessage 信息密钥 始终, 不可迁移
由配置描述文件安装的证书和私钥 始终, 不可迁移
SIM PIN 始终, 不可迁移
钥匙串访问控制
钥匙串可以使用访问控制列表 (ACL) 以设定可访问性和认证要求的策略。 钥匙串项可以
设立条件, 要求用户指定使用触控 ID、 面容 ID 或输入设备密码进行认证, 否则不能访
问。 对钥匙串项的访问也可以限制为在该钥匙串项添加以后, 触控 ID 或面容 ID 注册未
发生更改。 此限制有助于防止攻击者通过添加自己的指纹来访问钥匙串项。 ACL 在安全
隔区内部进行评估, 只有符合其指定的限制条件时, 才会释放到内核。
15iOS 安全保护指南—白皮书 | 2018 1
访问 Safari 浏览器已存储的密码
iOS 应用可以与 Safari 浏览器存储的钥匙串项交互, 通过使用以下两个 API 进行密码
自动填充 :
SecRequestSharedWebCredential
SecAddSharedWebCredential
只有应用开发者和网站管理员同时批准且用户同意后, 才会授予钥匙串访问权限。 应用
开发者通过在其应用中加入授权, 让系统获知他们需要访问 Safari 浏览器已存储的密码。
授权书中列出了相关网站的完全限定域名。 网站必须将文件放在其服务器上, 并在其中
列出已批准应用的唯一应用标识符。 安装了带有 com.apple.developer.associated-
domains 授权的应用后, iOS 向列表中的每个网站发出 TLS 请求来请求 “文件 /apple-
app-site-association”。 如果文件列出被安装应用的应用标识符, 则 iOS 会将网站和
应用标记为具有信任关系。 只有具有信任关系才会调用这两个 API 并向用户发出提示,
用户同意之后, 密码才能发放给应用, 或者被更新或删除。
iOS 允许用户通过轻点 iOS 键盘的快速输入栏中的 “按键” 直观功能, 将存储的用户名和
密码输入到应用中凭证相关的栏位中。 它利用相同的 apple-app-site-association
制将应用和网站紧密联系起来。 这个界面不会将凭证信息透露给应用, 除非用户同意将凭
证发放给应用。 当 iOS 将网站和应用标记为具有信任关系后, 快速输入栏也会直接建议
将凭证填充到应用中。 这可允许用户选择将 Safari 浏览器所存储的凭证透露给具有相同
安全性背景的应用, 而应用无需采用 API
密钥包
文件和钥匙串数据保护类的密钥收集在密钥包中, 通过密钥包管理。 iOS 使用以下密钥包 :
用户、 设备、 备份、 托管和 iCloud 云备份。
用户密钥包是设备常规操作中使用的封装类密钥的储存位置。 例如, 输入密码后,
NSFileProtectionComplete 密钥会从用户密钥包中加载并解封。 它是储存在
“无保护” 类中的二进制 plist, 其内容使用可擦除存储器中储存的密钥进行加密。 为了
给密钥包提供前向安全性, 用户每次更改密码时, 系统都会擦除并重新生成此密钥。
AppleKeyStore 内核扩展管理用户密钥包, 并且可用于查询设备的锁定状态。
仅当用户密钥包中的所有类密钥均可访问且成功解封时, 它才会报告设备已解锁。
设备密钥包用来储存用于涉及设备特定数据操作的封装类密钥。 配置为共用的 iOS 设备
有时需要在用户登录前访问凭证 ; 因此, 需要一个不受用户密码保护的密钥包。 iOS 设备
不支持对用户独有的文件系统内容进行独立加密, 这就意味着系统将使用来自设备密钥包
的类密钥, 对文件独有密钥进行封装。 而钥匙串则使用来自用户密钥包中的类密钥来保护
用户钥匙串中的项目。 在配置为单用户使用 (默认配置) 的 iOS 设备上, 设备密钥包和用
户密钥包是同一个, 并受用户的密码保护。
备份密钥包 iTunes 进行加密备份时创建, 它储存在设备进行备份的电脑中。 新密钥包
是通过一组新密钥创建的, 备份的数据会使用这些新密钥重新加密。 如前所述, 不可迁移
钥匙串项仍使用 UID 派生密钥封装, 以使其可以恢复到最初备份它们的设备, 但在其他
设备上不可访问。
密钥包通过在 iTunes 中设置的密码加以保护, 且加密过程会运行 1 千万次 PBKDF2
迭代。 虽然迭代次数非常多, 但是密钥包并未捆绑特定设备, 因此在理论上, 尝试在多台
电脑上对备份密钥包并行展开暴力破解是可行的。 而安全性足够高的密码可以减小这一
威胁。
如果用户选择不加密 iTunes 备份, 那么不管备份文件属于哪一种数据保护类, 备份文件
都不加密, 但钥匙串仍使用 UID 派生密钥获得保护。 这就是只有设置备份密码才能将钥
匙串项迁移到新设备的原因。
16iOS 安全保护指南—白皮书 | 2018 1
托管密钥包用于 iTunes 同步和 MDM。 此密钥包允许 iTunes 执行备份和同步, 而无
需用户输入密码, 它还允许 MDM 解决方案远程清除用户密码。 它储存在用于与 iTunes
进行同步的电脑, 或者管理设备的 MDM 解决方案上。
托管密钥包改善设备同步过程中的用户体验, 期间可能需要访问所有类别的数据。 当使用
密码锁定的设备首次连接到 iTunes 时, 会提示用户输入密码。 然后设备创建托管密钥包,
其中包含的类密钥与设备上使用的完全相同, 该密钥包由新生成的密钥进行保护。 托管密
钥包及用于保护它的密钥划分到设备和主机或服务器上, 其数据以 “首次用户认证前保护”
类储存在设备上。 这就是重新启动后, 用户首次使用 iTunes 进行备份之前必须输入设备
密码的原因。
OTA 软件更新的情况下, 开始更新时系统会提示用户输入密码。 这被用来安全地创建
一个 “一次性解锁令牌”, 该令牌在更新后解锁用户密钥包。 此令牌只有在输入用户密码后
才能生成, 且如果更改了用户密码, 则任何此前生成的令牌都将失效。
“一次性解锁令牌” 用于有人值守式或无人值守式的软件更新安装。 安全隔区中单调计数器
的当前值、 密钥包的 UUID 和安全隔区的 UID 会生成一个密钥, 用来加密 “一次性解锁
令牌”。
安全隔区中 “一次性解锁令牌” 计数器的增值会使任何现有令牌无效。 计数器会在以下情
况下增值 : 令牌使用时、 重启设备首次解锁后、 (用户或系统) 取消软件更新时或令牌的策
略定时器过期时。
对于有人值守式的软件更新, “一次性解锁令牌” 会在 20 分钟后过期。 此令牌从安全隔区
导出, 并被写入可擦除存储器。 如果设备未在 20 分钟内重新启动, 策略定时器将会使计
数器增值。
对于无人值守式软件更新 (设定方法 用户在收到更新通知时, 选取 “稍后安装”), 应用
程序处理器可保持 “一次性解锁令牌” 在安全隔区中有效长达 8 小时。 之后, 策略定时器
会使计数器增值。
iCloud 云备份密钥包与备份密钥包类似。 该密钥包中的所有类密钥都是非对称的
(与 “未打开文件的保护” 数据保护类一样, 使用 Curve25519), 因此可以在后台执行
iCloud 云备份。 对于除 “无保护” 类之外的所有数据保护类, 加密的数据从设备中读取并
发送到 iCloud。 对应的类密钥通过 iCloud 密钥进行保护。 钥匙串类密钥使用 UID 派生
密钥进行封装, 方式与未加密的 iTunes 备份相同。 非对称密钥包还可用于 “iCloud 钥匙
串” 钥匙串恢复中的备份。
安全性认证和计划
注:有关 iOS 安全性认证、 验证和指南的最新信息, 请访问 :
support.apple.com/zh-cn/HT202739
ISO 27001 ISO 27018 认证
Apple 已经收到信息安全管理体系颁发, 涉及支持这些产品和服务的基础架构、 开发和
操作的 ISO 27001 ISO 27018 认证 :“Apple 校园教务管理”、 iCloudiMessage
信息、 FaceTime 通话、 “管理式 Apple ID”和
iTunes U, 符合 2017 7 11 日的
Statement of Applicability v2.1》。 Apple 符合 ISO 标准, 这已经过英国标准协会
认证。 BSI 网站显示了 ISO 27001 ISO 27018 符合认证。 若要查看这些认证,
请访问 :
www.bsigroup.com/zh-cn/our-services/certification/certificate-and-client-
directory/search-results/?searchkey=company=apple&licencenumber=
IS+649475
www.bsigroup.com/zh-cn/our-services/certification/certificate-and-client-
directory/search-results/?searchkey=company=Apple&licencenumber=
PII%20673269
17iOS 安全保护指南—白皮书 | 2018 1
加密验证 (FIPS 140-2)
对于自 iOS 6 起发布的每个版本, iOS 中的加密模块均已反复进行验证, 符合美国联邦
信息处理标准 (FIPS) 140-2 级别 1。 像每个主要版本一样, 当 iOS 操作系统发布后,
Apple 会将各模块提交给 CMVP 进行重新验证。 这一计划证明, 在 Apple 应用和正确
使用 iOS 加密服务和批准算法的第三方应用中, 加密操作具有完整性。
通用标准认证 (ISO 15408)
iOS 9 发布以来, Apple 已经根据 “通用标准认证” 计划针对 iOS 的每个主要版本都
实现了 iOS 认证, 其中包括对以下方面的认证 :
Mobile Device Fundamental Protection Profile
VPN IPSec Client Protection Profile
Extended Package for Mobile Device Management Agents
Extended Package for Wireless LAN Clients
iOS 11 包括对以下方面的额外认证 :
Application Software Protection Profile
Extended Package for Email Clients
Extended Package for Web Browsers
Apple 计划针对后续的每个 iOS 主要版本进行认证。 在国际技术社区 (ITC) 中, Apple
积极参与开发当前还未实施的协作性保护描述文件 (cPP), 主要集中在关键移动安全性
技术评估方面。 Apple 将继续针对当前已实施的 cPP 新版本和更新版本来评估和开展
认证。
涉密项目商业解决方案 (CSfC)
适用情况下, Apple 还提交了 iOS 平台和各种服务, 以便将它们纳入到涉密项目商业解
决方案 (CSfC) 计划组件列表中。 由于 Apple 平台和服务正在接受通用标准认证, 因此
CSfC 计划组件列表也会将它们纳入其中。
若要查看最近列出的组件, 请访问 :
www.nsa.gov/resources/everyone/csfc/components-list
安全性配置指南
Apple 一直与全世界各地政府协作开发相应指南, 为维护更加安全的环境 (也被称为
“高风险环境下的设备强化”) 提供指导和建议。 针对如何配置和利用 iOS 内建功能来加强
保护, 这些指南提供了经过核实的明确信息。
18iOS 安全保护指南—白皮书 | 2018 1
应用是现代移动安全架构中最关键的要素之一。 尽管应用可显著提高用户的工作效率,
但如果处理不当, 也可能对系统安全性、 稳定性和用户数据产生负面影响。
有鉴于此, iOS 提供了多重保护来确保应用经过签名和验证且经过沙盒化处理, 从而始终
保护用户数据。 这些要素为应用提供了安全稳定的平台, 使成千上万的开发者能够在 iOS
上提供数十万款应用, 而不会影响系统完整性。 用户可以在其 iOS 设备上访问这些应用,
而不必没有缘由地担心病毒、 恶意软件或未经授权的攻击。
应用代码签名
iOS 内核启动后, 它将控制哪些用户进程和应用可以运行。 为确保所有应用均来自批准的
已知来源并且未被篡改, iOS 要求所有可执行代码均使用 Apple 颁发的证书进行签名。
设备附带的应用 (如 “邮件” 和 Safari 浏览器) 由 Apple 签名。 第三方应用也必须使用
Apple 颁发的证书进行验证和签名。 强制性代码签名将信任链的概念从操作系统扩展至
应用, 防止了第三方应用加载未签名的代码资源, 或使用自修改代码。
要在 iOS 设备上开发并安装应用, 开发者必须向 Apple 注册并加入 Apple Developer
Program Apple 开发者计划)。 Apple 首先验证每个开发者 (无论是个人还是企业) 的
真实身份, 然后再颁发证书。 开发者可使用该证书对应用进行签名, 并将其提交至
App Store 进行分发。 因此, App Store 中的所有应用都是由身份可识别的个人或
组织提交的, 由此防止恶意应用的创建。 此外, 这些应用程序都经过 Apple 的严格审核,
确保它们可以按照所述的方式运行, 并且没有明显的错误或其他问题。 除了已经讨论过的
技术, 这一处理过程还会让顾客对所购应用的品质更加放心。
iOS 允许开发者将框架嵌入应用中, 使它可被应用本身使用, 也可被应用中嵌入的扩展
项使用。 为保护系统并防止其他应用在其地址空间中加载第三方代码, 系统将为启动时所
有链接到进程的动态资源库执行代码签名验证。 此验证过程通过团队标识符 (Team ID)
完成。 团队标识符提取自 Apple 颁发的证书, 是由 10 个字符组成的字母数字串, 例如
1A2B3C4D5F。 程序可通过链接到系统自带的任何资源库, 也可以链接到代码签名中具
有与主可执行文件相同团队标识符的资源库。 因为作为系统一部分发布的可执行文件不具
有团队标识符, 所以它们只能链接到随系统本身发布的资源库。
企业也可以编写供组织内部使用的企业内部应用, 并将其分发给员工。 企业和组织可以使
D-U-N-S 编号申请加入 Apple Developer Enterprise Program ADEPApple
开发者企业计划)。 Apple 会在验证申请者的身份和资格后批准其请求。 一旦组织成为
ADEP 的成员, 便可以注册以获得一个预置描述文件, 该描述文件允许企业内部应用在其
授权的设备上运行。 用户必须安装预置描述文件才能运行企业内部应用。 这可以确保只有
组织的目标用户能够将应用加载到其 iOS 设备上。 通过 MDM 安装的应用为隐式受信任
应用, 因为组织与设备之间的关系已经确立。 否则, 用户必须在 “设置” 中批准应用的预置
描述文件。 组织可以限制用户批准来自未知开发者的应用。 任何企业级应用首次启动时,
设备必须收到 Apple 的肯定询证, 表明允许该应用运行。
与其他移动平台不同, iOS 不允许用户安装来自网站的潜在恶意未签名应用或者运行不受
信任的代码。 运行时, 会在加载所有可执行内存页时对这些内存页进行代码签名检查,
以确保应用自安装或上次更新之后未被修改过。
应用安全性
19iOS 安全保护指南—白皮书 | 2018 1
运行时进程安全性
确认应用来自批准的来源后, iOS 会强制实施相应的安全措施, 以防止其危害其他应用或
系统的其余部分。
所有第三方应用均已经过 “沙盒化”, 因此它们在访问其他应用储存的文件或对设备进行更
改时会受到限制。 这样可以防止应用收集或修改其他应用储存的信息。 每个应用还拥有唯
一的主目录来存放其文件, 主目录是在安装应用时随机分配的。 如果第三方应用需要访问
除自身信息以外的其他信息, 只能通过 iOS 明确提供的服务来实现。
系统文件和资源也会与用户的应用保持隔离。 与所有第三方应用一样, iOS 的绝大部分应
用以非权限用户 “mobile” 的身份运行。 整个操作系统分区以只读方式装载。 不必要的工
具 (如远程登录服务) 未包含在系统软件中, 并且 API 不允许应用提升自己的权限来修改
其他应用或 iOS 本身。
iOS 使用声明的授权来控制第三方应用对用户信息及功能 (如 iCloud 和扩展功能) 的访
问。 授权是签名到应用的密钥值对, 允许对运行时因素之外的内容 (如 UNIX 用户 ID
进行认证。 授权已经过数字签名, 因此无法更改。 系统应用和监控程序广泛应用授权来进
行特定权限操作, 如果不使用授权, 则进程需要以 root 用户身份运行才能进行这些操作。
这极大降低了遭入侵的系统应用或监控程序提升权限的可能性。
此外, 应用只能通过系统提供的 API 来执行后台处理。 这就使应用能够继续运行, 而不会
降低性能或显著影响电池续航能力。
地址空间布局随机化 (ASLR) 可防止对内存损坏缺陷的利用。 内置应用使用 ASLR 确保
启动时随机安排所有内存区域。 通过随机安排可执行代码、 系统库和相关编程结构的内存
地址, 降低了遭到许多复杂攻击的可能性。 例如, return-to-libc” 攻击试图通过操纵堆
栈和系统库的内存地址来诱使设备执行恶意代码。 随机安排内存地址大大增加了执行攻
击的难度, 尤其是对多个设备的攻击。 作为 iOS 开发环境, Xcode 可自动编译启用了
ASLR 支持的第三方程序。
iOS 使用 ARM Execute Never (XN) 功能提供进一步的保护, 该功能会将内存页
标记为不可执行。 只有处于严格的控制条件下, 应用才能使用标记为可写入和可执行的
内存页 : 内核会检查 Apple 专有的动态代码签名授权是否存在。 即使如此, 也只有单个
mmap 调用能用于请求一个可执行且可写入的内存页, 系统为可执行且可写入的内存页
分配了随机地址。 Safari 浏览器对其 JavaScript JIT 编译器使用了此功能。
扩展项
iOS 允许应用提供扩展项来增加其他应用的功能。 扩展项是具有特定用途的已签名可执行
二进制代码, 封装在应用中。 系统会在安装时自动检测扩展项, 并使用匹配系统让其他应
用使用扩展项。
支持扩展项的系统区域称为扩展点。 每个扩展点都提供 API, 并为该区域强制执行策略。
系统基于扩展点特定的匹配规则来决定哪些扩展项可用。 系统自动按需启动扩展进程,
并管理它们的生命周期。 通过使用授权来限制特定系统应用的扩展可用性。 例如, “今天”
视图小组件只显示在 “通知中心” 中, 而共享扩展项只在 “共享” 面板中可用。 扩展点有
“今天” 小组件、 共享、 自定操作、 照片编辑、 文稿提供程序和自定键盘。
扩展项在其自己的地址空间运行。 应用与其激活的扩展项之间的通信采用由系统框架协
调的进程间通信。 它们无权访问彼此的文件或内存空间。 扩展项的设计旨在将它们彼此隔
离、 与其包含的应用隔离, 并且与使用它们的应用隔离。 与其他第三方应用类似, 它们也
经过沙盒化并且拥有的容器与含有应用的容器隔开。 但是扩展项与其容器应用对隐私控制
具有相同的访问权限。 因此, 如果用户给应用授予 “通讯录” 的访问权限, 该应用中嵌入的
扩展项也会获得此权限, 但由应用激活的扩展项不具有该权限。
20iOS 安全保护指南—白皮书 | 2018 1
自定键盘是一种特殊的扩展项类型, 因为它由用户启用并适用于整个系统。 一旦启用, 键盘
扩展项会用于所有的文本栏, 除了密码输入栏和任何安全文本视图。 为限制用户数据的传
输, 默认情况下自定键盘运行在一个非常受限的沙盒中, 该沙盒阻止网络访问、 阻止代表
进程执行网络操作的服务, 并阻止可允许扩展项泄露键入数据的 API。 自定键盘的开发者
可以要求其扩展项拥有 “开放存取” 权限, 使系统在得到用户的同意后在默认的沙盒中运
行扩展项。
对于在 MDM 解决方案中注册的设备, 文稿和键盘扩展项将遵循 “被管理的打开方式”
规则。 例如, MDM 解决方案可阻止用户将被管理的应用中的文稿导出到未被管理的文稿
提供程序, 或阻止他们在被管理的应用中使用未被管理的键盘。 另外, 应用开发者可阻止
在其应用中使用第三方键盘扩展项。
应用组
指定开发者帐户拥有的应用和扩展项在配置为应用组的一部分后可共享内容。 对于是否在
Apple Developer Portal Apple 开发者门户) 上创建合适的群组并包括所需的一套
应用和扩展项, 则由开发者自行决定。 应用配置为应用组的一部分后, 应用可以访问以下
内容 :
宗卷上共享的存储容器, 只要有应用组内至少有一个应用被安装, 它就会一直保留在
设备上
共享的偏好设置
共享的钥匙串项
Apple Developer Portal Apple 开发者门户) 保证了应用组 ID 在整个应用生态系统的
唯一性。
应用中的数据保护
iOS 软件开发套件 (SDK) 提供全套 API, 使第三方和企业内部开发者能够轻松地利用数
据保护类, 帮助确保在应用中实现最高级别的保护。 数据保护适用于文件和数据库 API
包括 NSFileManagerCoreDataNSData SQLite
“邮件” 应用数据库 (包括附件)、 被管理的图书、 Safari 浏览器书签、 应用启动图像和位
置数据也将加密储存, 加密密钥通过用户设备上的密码进行保护。 “日历” (不包括附件)、
“通讯录”、 “提醒事项”、 “备忘录”、 “信息” 和 “照片” 采用 “首次用户认证前保护”。
用户安装的应用若没有选择加入某个特定数据保护类, 则默认接受 “首次用户认证前保护”。
配件
Made for iPhone, iPad, and iPod touch (MFi)” 许可计划允许接受过审查的配件
制造商使用 iPod 配件协议 (iAP) 和必要的支持硬件组件。
MFi 配件使用闪电接口或通过蓝牙与 iOS 设备通信时, 设备要求配件使用 Apple
供的证书 (设备对此证书进行验证) 进行回应, 以证明配件经过 Apple 授权。 然后, 设备
发送一个质询, 配件必须使用已签名的证书来响应。 这个过程完全由定制集成电路 (IC)
来处理, 而且对于配件本身是透明的。 执行处理操作的定制集成电路由 Apple 提供给许
可配件制造商。
配件可以请求访问不同的传输方法和功能 ; 例如, 访问通过闪电线缆传输的数字音频流,
或访问通过蓝牙提供的位置信息。 认证集成电路确保只有经过批准的配件才能获得对设备
的完全访问权限。 如果配件不支持认证, 其访问仅限于模拟音频和一小部分串行 (UART)
音频播放控件。
21iOS 安全保护指南—白皮书 | 2018 1
“隔空播放” 还利用认证集成电路来验证接收器已由 Apple 批准。 “隔空播放” 音频流和
CarPlay 车载视频流使用 MFi-SAP (安全关联协议), 此协议使用 AES-128 CTR
模式下对配件和设备之间的通信进行加密。 作为端到端 (STS) 协议的一部分, 临时密钥
使用 ECDH 密钥交换 (Curve25519) 进行交换, 并使用认证电路的 1024 RSA 密钥
进行签名。
HomeKit
HomeKit 奠定了家庭自动化的基础, 通过利用 iCloud iOS 安全性来保护和同步专用
数据, 而无需将这些数据透露给 Apple
HomeKit 身份标识
HomeKit 身份标识和安全性基于 Ed25519 -私密钥对。 iOS 设备上会为每位用户
针对 HomeKit 生成 Ed25519 密钥对, 即用户的 HomeKit 身份标识。 该密钥对被用
来认证 iOS 设备之间以及 iOS 设备和配件之间的通信。
密钥储存于钥匙串内并只包括在加密的钥匙串备份中, 而且会在使用 iCloud 钥匙串的
设备间同步。
HomeKit 配件通信
HomeKit 配件会生成自己的 Ed25519 密钥对, 用来与 iOS 设备进行通信。 如果将配
件恢复为出厂设置, 则会生成新的密钥对。
为了在 iOS 设备和 HomeKit 配件之间建立联系, 会使用安全远程密码 (3072 位)
协议来交换密钥 : 用户在 iOS 设备上输入由配件生产商提供的八位数代码, 然后使用
HKDF-SHA-512 派生密钥按照 ChaCha20-Poly1305 AEAD 进行加密。 在设置
过程中, 还会对配件的 MFi 认证进行验证。
iOS 设备和 HomeKit 配件在使用过程中进行通信时, 它们采用上述过程中交换的密
钥相互进行认证。 每个会话均使用端到端协议建立, 并基于逐个会话 Curve25519 密钥
通过 HKDF-SHA-512 派生密钥进行加密。 这同时适用于基于 IP 的配件和低功耗蓝牙
配件。
本地数据储存
HomeKit 将有关家庭、 配件、 场景和用户的数据储存在用户的 iOS 设备上。 储存的数据
会使用派生自用户 HomeKit 身份标识密钥的密钥和随机数进行加密。 此外, HomeKit
数据还会使用 “首次用户认证前保护” 数据保护类进行储存。 HomeKit 数据仅备份在加密的
备份中, 因此诸如未加密的 iTunes 备份就不包含 HomeKit 数据。
设备和用户间的数据同步
HomeKit 数据可在使用 iCloud iCloud 钥匙串的用户 iOS 设备间同步。 同步期间,
HomeKit 数据会使用派生自用户 HomeKit 身份的密钥和随机数进行加密。 同步时,
此数据会作为不透明 blob 处理。 最近处理的 blob 会储存在 iCloud 中以实现同步,
并不会用作其他目的。 因为 HomeKit 数据加密所使用的密钥仅在用户的 iOS 设备上
可用, 因此在传输和 iCloud 储存过程中无法对其内容进行访问。
HomeKit 数据还可在同一个家庭的多个用户间进行同步。 这一过程所采用的认证和加密
方法与 iOS 设备和 HomeKit 配件之间所使用的相同。 当用户加入家庭时, 设备间会交
Ed25519 公钥进行认证。 新用户加入家庭后, 会使用端到端协议和逐个会话密钥来认
证和加密所有进一步的通信。
最初在 HomeKit 中创建家庭的用户或具有编辑权限的其他用户能添加新用户。 家庭所有
者的设备会使用新用户的公钥来配置配件, 这样配件就能认证并接受新用户的命令。 当具
有编辑权限的用户添加一名新用户时, 此过程委托给家居中枢来完成操作。
22iOS 安全保护指南—白皮书 | 2018 1
预置 Apple TV 以与 HomeKit 配合使用的过程在用户登录 iCloud 时自动执行。
iCloud 帐户需要启用双重认证。 Apple TV 与家庭所有者的设备通过 iCloud 交换临时
Ed25519 公钥。 当家庭所有者的设备与 Apple TV 处于同一个本地网络时, 临时密钥用
于通过端到端协议和逐个会话密钥来维护本地网络上连接的安全性。 这一过程所采用的认
证和加密方法与 iOS 设备和 HomeKit 配件之间所使用的相同。 通过这一安全的本地连
接, 家庭所有者的设备将用户的 Ed25519 -私密钥对传输到 Apple TV。 然后, 这些
密钥会被用来维护 Apple TV HomeKit 配件之间以及 Apple TV 与属于 HomeKit
家庭配置中的其他 iOS 设备之间通信的安全性。
如果用户没有多台设备, 且拒绝批准其他用户访问其家庭, 则 HomeKit 数据不会同步到
iCloud
家庭数据和应用
用户可通过 “隐私” 设置来控制应用对家庭数据的访问。 当应用请求访问家庭数据 (与请
求访问 “通讯录”、 “照片” 和其他 iOS 数据源类似) 时, 会要求用户授予访问权限。 如果用
户批准, 应用可以访问房间名称、 配件名称、 每个配件所处的房间以及在 HomeKit 开发
者文稿中详述的其他信息, 文稿网址为 : developer.apple.com/homekit
HomeKit Siri
Siri 可用来询问和控制配件以及激活各种场景。 Siri 只会匿名获得有关家庭配置的极少量
信息。 所提供有关房间名称、 配件和场景的信息为命令识别所需。 发送给 Siri 的音频可能
会指示具体的配件或命令, 但此类 Siri 数据并不会关联到 HomeKit Apple 其他功
能。 有关更多信息, 请参阅本白皮书中 “互联网服务” 部分的 “Siri”。
HomeKit 网络摄像机
HomeKit 中的网络摄像机将视频和音频流直接发送到本地网络中访问该流的 iOS 设备。
该流使用 iOS 设备和网络摄像机上随机生成的密钥进行加密, 密钥通过安全的 HomeKit
会话交换到摄像机。 当 iOS 设备未接入本地网络时, 加密的流通过家居中枢中继到 iOS
设备。 家居中枢不会解密该流, 而是仅仅充当 iOS 设备和网络摄像机间的中继站。 当应用
向用户显示 HomeKit 网络摄像机视频视图时, HomeKit 会通过单独的系统进程安全地
渲染视频帧, 这样应用便无法访问或储存视频流。 此外, 应用也不允许在此流中捕捉屏幕
快照。
针对 HomeKit 配件的 iCloud 远程访问
HomeKit 配件可以直接连接 iCloud,使
iOS 设备能够在蓝牙或无线局域网通信不可用
时控制配件。
iCloud 远程访问经过精心设计, 使配件可被控制并发送通知, 同时不向 Apple 透露是什
么配件, 或发送的是什么命令和通知。 HomeKit 不会通过 iCloud 远程访问发送关于家
庭的信息。
当用户使用 iCloud 远程访问发送命令时, 配件和 iOS 设备相互认证, 且数据使用针对
本地连接的同样步骤进行加密。 通信的内容经过加密, 对 Apple 不可见。 通过 iCloud
的寻址基于在设置过程中所注册的 iCloud 标识符。
支持 iCloud 远程访问的配件在设置配件的过程中预置。 预置过程从用户登录到 iCloud
开始。 接着, iOS 设备提示配件使用内建于所有 “Built for HomeKit” 配件的 Apple
证协处理器来给质询签名。 配件还会生成 prime256v1 椭圆曲线密钥, 且公钥与签名的
质询和认证协处理器的 X.509 证书一起被发送到 iOS 设备。 这些用于为配件从 iCloud
预置服务器请求一个证书。 该证书由配件储存, 但不包含关于配件的任何识别信息 (除了
它已被授予 HomeKit iCloud 远程访问的权限)。 正在进行预置的 iOS 设备还会向配件
发送一个包, 其中包含连接到 iCloud 远程访问服务器所需的 URL 及其他信息。 此信息
不指向任何用户或配件。
23iOS 安全保护指南—白皮书 | 2018 1
每个配件在 iCloud 远程访问服务器中会注册一个被许可用户列表。 给家庭添加配件的人
已授予这些用户控制配件的权限。 iCloud 服务器授予用户一个标识符, 且用户可以映射
iCloud 帐户, 以传送来自配件的通知信息和响应。 同样, 配件也有 iCloud 颁发的标
识符, 但是这些标识符经过了模糊化处理, 不会透露关于配件本身的任何信息。
配件连接到 HomeKit iCloud 远程访问服务器时, 会显示其证书和凭证。 凭证是从不同
iCloud 服务器获得, 且每个配件的凭证并非唯一。 当配件请求凭证时, 请求中将包括
其制造商、 型号和固件版本。 此请求中不会发送任何用户识别信息或家庭识别信息。 为了
帮助保护隐私, 与凭证服务器的连接没有进行认证。
配件通过 HTTP/2 连接到 iCloud 远程访问服务器, 使用 TLS v1.2 配合 AES-128-GCM
SHA-256 保障安全。 配件将其与 iCloud 远程访问服务器的连接保持开放, 这样配件
就可接收传入信息并向 iOS 设备发送回应和通知。
SiriKit
Siri 利用 iOS 扩展项机制与第三方应用通信。 尽管 Siri 可以访问 iOS 联系人和设备的
当前位置, 但 Siri 会先检查内含扩展项的应用是否有权限访问受 iOS 保护的用户数据,
如果应用具有访问权限, 才向它提供该信息。 Siri 仅将原始用户询问文本中的相关部分
传递给扩展项。 例如, 假设应用没有权限访问 iOS 联系人, 则 Siri 不会在诸如 “使用
<付款应用 >’ 给妈妈付一百块钱” 这样的用户请求中解析人物关系。 在这种情况下,
扩展项的应用通过传递过来的原始语句片段仅能看到 “妈妈” 这个称呼。 但如果应用能够
访问 iOS 联系人, 则会收到用户母亲的 iOS 联系信息。 如果信息正文中提到了某个联系
人, 例如 “用信息应用给妈妈发消息说我哥哥棒极了”, 则不论应用的 TCC 如何, Siri
不会解析 “我哥哥”。 应用呈现的内容可能会发送到服务器, 用于使 Siri 理解用户可能在
应用中使用的词汇。
诸如 “使用 <应用名称 >叫一辆去妈妈家的车” 这种用户请求, 需要从用户的通讯录中获
取位置信息。 Siri 会仅针对该请求将位置信息提供给应用的扩展项, 而不管应用的位置或
通讯录的访问权限。
Siri 允许在运行时让启用 SiriKit 的应用提供一组专门针对应用程序实例的自定词。 这些
自定词与本白皮书的 “Siri” 部分中所述的随机标识符绑定, 并且具有相同的生命周期。
HealthKit
HealthKit 在用户许可的情况下储存和聚合来自健康和健身的数据。 HealthKit 也直接与
健康和健身设备配合工作, 例如兼容的蓝牙 LE 心率监视器和内建于许多 iOS 设备中的
运动协处理器。
健康数据
HealthKit 储存并聚合用户的健康数据, 例如身高、 体重、 步行距离、 血压等信息。 此数
据使用 “全面保护” 数据保护类储存, 这意味着只有在用户输入密码或使用触控 ID 或面容
ID 解锁设备后才能进行访问。
HealthKit 还会聚合管理方面的数据, 例如应用的访问权限、 连接到 HealthKit 的设备
名称, 以及新数据可用时, 用来开启应用的计划信息。 此数据储存在 “首次用户认证前保护”
数据保护类中。
临时日志文件储存设备锁定时 (例如用户锻炼时) 所生成的健康记录。 这些文件使用
“未打开文件的保护” 数据保护类储存。 设备解锁后, 这些临时日志文件会导入进主要健康
数据库, 并会在合并完成后被删除。
健康数据可以储存在 iCloud 中。 当配置为储存在 iCloud 中时, 健康数据会在设备间
同步并加密以保护数据在传输和静态时的安全。 健康数据仅会包括在加密的 iTunes 备份
中, 而不会包括在未加密的 iTunes 备份或 iCloud 云备份中。
24iOS 安全保护指南—白皮书 | 2018 1
数据完整性
储存在数据库中的数据包括用于追踪每条数据记录起源的元数据。 该元数据包括应用标
识符, 用以识别储存了该记录的应用。 此外, 可选元数据项还可能包含记录的数字签名副
本, 从而保持受信任设备生成记录的数据完整性。 数字签名采用在 IETF RFC 5652
描述的 “密码讯息语法” (CMS) 格式。
第三方应用访问
应用只有通过授权才能访问 HealthKit API, 且必须遵守数据使用方式的访问限制。 例如,
不允许应用利用健康数据投放广告。 应用还需要向用户提供隐私政策, 详细说明其如何使
用健康数据。
用户可通过 “隐私” 设置来控制应用对健康数据的访问。 当应用请求访问健康数据 (与请
求访问 “通讯录”、 “照片” 和其他 iOS 数据源类似) 时, 会要求用户授予访问权限。 但对于
健康数据, 应用将获得读取和写入数据的单独访问权限, 以及对每种健康数据类型的单独
访问权限。 用户可以在 “健康” 应用的 “数据来源” 标签页中, 查看和撤销所授予的访问健
康数据的权限。
如果获得写入数据的权限, 应用还可以读取其写入的数据。 如果获得读取数据的权限, 则
可以读取所有来源写入的数据。 但应用不能决定其他应用所获得的访问权限。 此外, 应用
不能完全确定其是否获得了读取健康数据的权限。 如果应用没有读取权限, 所有查询都不
会返回数据, 如同查询空数据库。 这可以阻止应用通过学习用户所跟踪的数据类型来推断
用户的健康状况。
医疗急救卡
“健康” 应用可让用户在医疗急救卡表单中填写急救时可能至关重要的信息。 这些信息可由
用户输入或手动更新, 且不会与健康数据库中的信息同步。
在锁定屏幕上轻点 “紧急情况” 按钮可查看医疗急救卡信息。 该信息使用 “无保护” 数据
保护类储存于设备上, 因此无需输入设备密码就可进行访问。 “医疗急救卡” 作为一项可选
功能, 可让用户权衡安全性和隐私二者之间的关系。
ReplayKit
ReplayKit 是一个允许开发者给他们的应用添加录音和现场广播功能的框架。 另外, 它还
允许用户给使用设备前置摄像头和麦克风进行录制和广播的内容添加注解。
影片录制
影片录制中构建了多层安全性 :
许可对话框 : 开始录制前, ReplayKit 会显示一则征求用户同意的提醒, 请求用户确认
其录制屏幕、 麦克风和前置摄像头的意图。 这则提醒在每个应用进程中出现一次, 并且
当应用处于后台 8 分钟后会再次显示。
屏幕和音频捕捉 : 屏幕和音频捕捉发生在 ReplayKit 监控程序 replayd 中的应用进程
之外。 这确保录制的内容绝对不会被应用进程访问。
影片创建和储存 : 影片文件被写入的目录只能由 ReplayKit 的子系统访问, 绝对不会
被任何应用访问。 这可防止第三方未经用户同意而使用录制内容。
终端用户预览和共享 : 用户可以通过 ReplayKit 提供的 UI 预览和共享影片。 此 UI
iOS 扩展项基础架构在进程外呈现, 并且能够访问生成的影片文件。
25iOS 安全保护指南—白皮书 | 2018 1
广播
屏幕和音频捕捉 : 广播中的屏幕和音频捕捉机制发生在 replayd 中, 与影片录制完全
一样。
广播扩展项 : 第三方服务若要参与到 ReplayKit 广播中, 需要创建两个配置了
com.apple.broadcast-services endpoint 终端的新扩展项 :
允许用户设置其广播的 UI 扩展项
用于将视频和音频数据上传到服务的后端服务器的上传扩展项
这个架构确保主应用对于广播的视频和音频内容没有权限, 只有 ReplayKit 和第三方
广播扩展项能够访问。
广播挑选器 : 为选择要使用的广播服务, ReplayKit 提供了一种可供开发者在其应
用中呈现的视图控制器 (类似于 UIActivityViewController)。 该视图控制器使用
UIRemoteViewController SPI 进行实施, 是居于 ReplayKit 框架内部的一个
扩展项。 它处于主应用的进程外。
上传扩展项 : 第三方广播服务用来处理广播期间视频和音频内容的上传扩展项, 它可以
选择采用以下两种方式来接收内容 :
小型编码 MP4 剪辑
原始未编码样本缓冲
MP4 剪辑处理 : 在此处理模式下, 小型编码 MP4 剪辑由 replayd 生成, 并储存
在只能由 ReplayKit 子系统访问的专用位置。 影片剪辑生成后, replayd 会通过
NSExtension 请求 SPI (基于 XPC) 将影片剪辑的位置传递到第三方上传扩展
项。 replayd 还会生成一个一次性沙盒令牌并传递到上传扩展项, 授权扩展项在
扩展项请求期间访问特定的影片剪辑。
样本缓冲处理 : 在此处理模式下, 视频和音频数据将序列化并通过直接的 XPC
接实时传递到第三方上传扩展项。 视频数据编码方式如下 : 从视频样本缓冲中提取
IOSurface 对象, 将其作为 XPC 对象安全地进行编码, 通过 XPC 发送到第三
方扩展项, 再安全地解码回 IOSurface 对象中。
安全备忘录
“备忘录” 应用包括 “安全备忘录” 功能, 允许用户保护特定备忘录的内容。 安全备忘录使
用用户提供的口令加密, 需要该口令才能在 iOSmacOS iCloud 网站上查看这类
备忘录。
当用户对备忘录实施保护时, 会基于用户的口令使用 PBKDF2 SHA256 生成一个
16 字节的密钥。 备忘录的内容使用 AES-GCM 加密。 新记录会在 Core Data CloudKit
中创建, 用于储存加密的备忘录、 标记和初始化向量, 而原始的备忘录记录将被删除 ; 加
密的数据不会原地写入。 附件也采用同样的方式加密。 支持的附件包括图像、 速绘、 表格、
地图和网站。 包含其他类型附件的备忘录无法加密, 不支持的附件不能添加到安全备忘录。
用户成功输入口令后, 不论是要查看或创建安全备忘录, “备忘录” 都会打开一项安全会话。
安全会话打开时, 用户无需输入口令或使用触控 ID 或面容 ID 来查看或保护其他备忘录。
但是, 如果某些备忘录拥有不同的口令, 则安全会话仅适用于使用当前口令进行保护的
备忘录。 安全会话在以下情况下会关闭 :
用户轻点 “备忘录” 中的 “现在锁定” 按钮。
“备忘录” 切换到后台超过 3 分钟。
设备锁定。
如果用户已在设备上启用触控 ID 或面容 ID, 则当其忘记口令时, 仍然可以查看安全备忘
录或保护其他备忘录。 另外, “备忘录” 将在输入口令失败三次后, 显示用户提供的提示。
用户必须知道当前口令才能更改它。
26iOS 安全保护指南—白皮书 | 2018 1
如果用户忘记当前口令, 可以重设口令。 此功能允许用户使用新的口令创建新的安全备忘
录, 但将不允许他们查看之前保护的备忘录。 如果想起旧的口令, 仍能查看之前保护的备
忘录。 重设口令需要用户的 iCloud 帐户口令。
共享备忘录
备忘录可与其他人共享。 “共享备忘录” 没有使用端到端加密。 对于用户放入备忘录中的任
何文本或附件, Apple 使用 CloudKit 加密的数据类型。 资源始终使用在 CKRecord
加密的密钥进行加密。 诸如创建日期和修改日期之类的元数据不会加密。 CloudKit 管理
进程, 通过此进程参与者可以加密 /解密彼此的数据。
Apple Watch
Apple Watch 使用 iOS 内置的安全性功能和技术来帮助保护设备上的数据, 以及与所
配对 iPhone 和互联网的通信。 这包括使用诸如数据保护和钥匙串访问控制等技术。 用户
的密码还会与设备 UID 配合使用, 从而创建加密密钥。
Apple Watch iPhone 配对时, 通过带外 (OOB) 处理交换公钥和 BTLE 链接共享
密钥进行保护。 Apple Watch 显示一幅动画图案供 iPhone 摄像头捕捉。 该图案包含加
密的密钥, 用于 BTLE 4.1 带外配对。 如果需要, Apple Watch 会使用标准 BTLE 万能
钥匙进入模式作为备用配对方法。
一旦建立了 BTLE 会话, Apple Watch iPhone 就会通过改进自 IDS 的流程 (请参
阅本白皮书的 “iMessage 信息” 部分) 交换密钥。 密钥交换完成后, 蓝牙会话密钥被丢
弃, Apple Watch iPhone 间的所有通信使用 IDS 加密, 同时, 加密的蓝牙、 无线局
域网和蜂窝移动网络链接提供第二层加密。 为避免流量被截获, 每隔 15 分钟将使用滚动
式密钥来限制曝光窗口。
为支持需要流化数据的应用, 加密采用了本白皮书中 “互联网服务” 部分的 “FaceTime
通话” 所描述的方法, 即利用配对 iPhone 或直接的互联网连接所提供的 IDS 服务。
Apple Watch 对文件和钥匙串项采用硬件加密储存以及基于类的保护 (请参阅本白皮
书中的 “加密和数据保护” 部分)。 同时对钥匙串项还使用了访问控制密钥包。 对于手表和
iPhone 间通信使用的密钥, 也采用了基于类的保护进行加密。
Apple Watch 不在蓝牙通信范围内时, 可以转而使用无线局域网或蜂窝移动网络。
Apple Watch 不会加入无线局域网络, 除非凭证已经呈现在配对的 iPhone 上, 且该凭
证之前必须已经同步到 Apple Watch。 如果 Apple Watch iPhone 通信范围之外,
iPhone 上任何新的网络凭证都不会出现在 Apple Watch 上。
长按侧边按钮可手动锁定 Apple Watch。 此外, 如果将手表从手腕摘除, 会立即使用运
动启发技术来尝试自动锁定该设备。 Apple Watch 锁定后, 只能通过输入手表的密码才
能使用 Apple Pay。 用户可以在 iPhone 上的 Apple Watch 应用中关闭手腕检测,
也可以使用 MDM 解决方案来强制实施此设置。
佩戴着手表时, 也可以使用配对 iPhone 来解锁手表。 先通过配对期间生成的密钥来认
证二者间建立的连接, 然后手表再使用 iPhone 发送的密钥来解锁其数据保护密钥, 从
而实现解锁。 手表密码不为 iPhone 所知, 也不会被传输。 此功能可以在 iPhone 上的
Apple Watch 应用中关闭。
Apple Watch 一次只能与一台 iPhone 配对。 取消配对时, iPhone 会传达抹掉
Apple Watch 所有内容和数据的指令。
在配对的 iPhone 上启用 “查找我的 iPhone” 也会允许使用 Apple Watch 上的激活
锁。 激活锁使任何人都难以使用或出售丢失或被盗的 Apple Watch。 激活锁需要用户的
Apple ID 和密码来取消配对、 抹掉或重新激活 Apple Watch
27iOS 安全保护指南—白皮书 | 2018 1
除了 Apple 用于保护 iOS 设备上所储存数据的内置安全保护, 也有许多网络安全措施可
供企业组织采用, 并借此确保信息在来往于 iOS 设备时安全无虞。
移动用户需要能够在全球任何地方访问公司网络, 因此很重要的一点是确保他们得到授权
并且其数据在传输期间受到保护。 iOS 使用标准联网协议并使开发者能够访问这些协议,
以实现经过认证的已授权加密通信。 为了实现这些安全目标, iOS 集成了经证实的技术和
最新标准来进行无线局域网和蜂窝移动数据网络连接。
在其他平台上, 需要用防火墙软件保护开放通信端口以防止入侵。 由于 iOS 通过限制监
听端口以及移除不必要的网络工具 (如 telnetshell 或网站服务器), 使受攻击的范围
减小, 因此在 iOS 设备上不需要额外的防火墙软件。
TLS
iOS 支持传输层安全协议 (TLS v1.0TLS v1.1TLS v1.2)和
DTLS。 它同时支持
AES-128 AES-256 并首选提供正向保密的密码套件。 Safari 浏览器、 “日历”、 “邮件”
和其他互联网应用自动使用此协议在设备与网络服务之间建立一条加密的通信通道。
上层 API (如 CFNetwork) 使开发者可以轻松在其应用中采用 TLS, 而底层 API
(SecureTransport) 则提供精细控制。 CFNetwork 不接受 SSLv3, 且使用 WebKit
应用 (例如 Safari 浏览器) 禁止建立 SSLv3 连接。
iOS 11 macOS High Sierra 起, 除非用户信任, 否则不允许再将 SHA-1 证书
用于 TLS 连接, 也不允许使用 RSA 密钥短于 2048 位的证书。 RC4 对称密码套件在
iOS 10 macOS Sierra 中未予使用。 默认情况下, 通过 SecureTransport API
现的 TLS 客户端或服务器未启用 RC4 密码套件, 并且当 RC4 是唯一可用的密码套件
时无法连接。 为了更加安全, 需要 RC4 的服务或应用在升级后才能使用更现代、 更安全的
密码套件。
应用传输安全性
应用传输安全性提供默认的连接要求, 这样应用在使用 NSURLConnectionCFURL
NSURLSession API 时会遵守安全连接的最佳实践。 默认情况下, 应用传输层安全
将密码选择范围限制为仅包括提供正向保密的密码套件, 具体而言, 即 GCM CBC
模式下的 ECDHE_ECDSA_AES ECDHE_RSA_AES。 应用可以按域停用正向保密
要求, 这种情况下, RSA_AES 将会添加到可用密码集中。
服务器必须支持 TLS v1.2 和前向保密, 且证书必须有效并使用 SHA-256 或更佳加密
算法签名, 且包含至少 2048 RSA 密钥或 256 位椭圆曲线密钥。
不满足这些要求的网络连接将会失败, 除非应用重写了应用传输安全协议。 无效的证书始
终导致硬故障和无连接。 应用传输安全性会自动应用到针对 iOS 9 或更高版本编译的应用。
VPN
像虚拟专用网这样的安全网络服务通常只需简单的设置和配置, 便可配合 iOS 设备使用。
VPN 服务器若支持以下协议和认证方式, 便可在 iOS 设备上使用 :
IKEv2/IPSec 此协议通过共享密钥、 RSA 证书、 ECDSA 证书、 EAP-MSCHAPv2
EAP-TLS 认证
SSL-VPN, 此协议使用来自 App Store 的合适的客户端应用
网络安全性
28iOS 安全保护指南—白皮书 | 2018 1
Cisco IPSec 此协议通过密码、 RSA SecurID CRYPTOCard 进行用户认证,
并通过共享密钥和证书进行机器认证
L2TP/IPSec, 此协议通过 MS-CHAPV2 密码、 RSA SecurID CRYPTOCard
进行用户认证, 并通过共享密钥进行机器认证
iOS 支持以下 VPN 功能 :
请求 VPN , 针对使用基于证书认证的网络。 IT 策略通过使用 VPN 配置描述文件来
指定哪些域需要 VPN 连接。
为应用单独设置 VPN, 用于帮助更精确地建立 VPN 连接。 MDM 可为每个被管理的
应用和 Safari 浏览器中特定的域指定连接。 这有助于确保进出企业网络的数据始终是
安全的, 而用户的个人数据不会进出企业网络。
始终打开 VPN, 通过 MDM 管理的设备、 使用 Apple Configurator 2Device
Enrollment Program (设备注册计划) 或 Apple 校园教务管理监督的设备可进行该
配置。 这使得用户在连接到蜂窝移动网络和无线局域网络时不需要手动打开 VPN 以启
用保护。 “始终打开 VPN” 通过将所有 IP 流量回传至组织, 使得组织拥有设备流量的完
整控制权。 默认隧道协议 IKEv2 通过数据加密保护流量传输的安全。 组织可以监控并
过滤设备上传入或传出的流量、 保护组织网络内的数据安全并限制设备访问互联网。
无线局域网
iOS 支持行业标准的无线局域网协议, 包括 “WPA2 企业级”, 可针对公司无线网络提供
访问认证服务。 “WPA2 企业级” 使用 128 AES 加密, 为用户提供最高级别的安全
保障 : 在通过无线局域网络连接发送和接收通信时, 确保用户的数据始终受到保护。
由于支持 802.1XiOS 设备可集成到各种 RADIUS 认证环境中。 iPhone iPad
支持的 802.1X 无线认证方式包括 EAP-TLSEAP-TTLSEAP-FASTEAP-SIM
PEAPv0PEAPv1 LEAP
除数据保护外, iOS 通过 802.11w 中提及的 Protected Management Frame 服务,
WPA2 级别的保护扩展到单播和多播管理框架。 iPhone 6 iPad Air 2 或后续机
型支持 PMF
在未与无线局域网络关联的情况下进行无线局域网扫描时, iOS 会使用随机介质访问控制
(MAC) 地址。 执行这些扫描可以用来发现和连接首选的无线局域网络, 或为使用地理围
栏的应用提供 “定位服务” 协助, 例如基于位置的提醒事项或在 Apple 的 “地图” 中固定
一个位置。 请注意, 尝试连接到首选无线局域网络时发生的无线局域网扫描不是随机的。
在设备没有关联到无线局域网络或设备处理器处于睡眠状态的情况下, iOS 还会在进行
ePNO (enhanced Preferred Network Offload) 扫描时使用随机 MAC 地址。 如果
设备中要使用地理围栏的应用 (例如基于位置的提醒事项, 它会确定设备是否接近某个特
定位置) 在使用 “定位服务”, 则会运行 ePNO 扫描。
现在由于设备从无线局域网络断开连接时其 MAC 地址会更改, 因此即使设备连接到了蜂
窝移动网络, 无线局域网流量的被动观察程序也不能使用该地址一直跟踪设备。 Apple
经告知无线局域网制造商 iOS 无线局域网扫描时使用随机 MAC 地址, 且 Apple 和制造
商都无法预测这些随机的 MAC 地址。 iPhone 4s 或更早机型不支持无线局域网 MAC
地址随机化。
iPhone 6s 或后续机型上, 可以自动获知和更新已知的无线局域网络的隐藏属性。
如果无线局域网络的服务集标识符 (SSID) 被广播, 则 iOS 设备不会在请求中发送包含
SSID 在内的探查。 这可以防止设备广播非隐藏网络的网络名称。
为了保护设备免受网络处理器固件漏洞的威胁, 包括无线局域网和基带在内的网络接口只
能有限地访问应用程序处理器内存。 使用 USB SDIO 与网络处理器建立接口时, 网络
处理器无法发起与应用程序处理器间的 “直接内存访问” (DMA) 事务。 使用 PCIe 时, 每个
网络处理器位于自己独立的 PCIe 总线上。 每个 PCIe 总线上的 IOMMU 会限制网络处
理器的 DMA 对包含其网络数据包或控制结构的内存页的访问。
29iOS 安全保护指南—白皮书 | 2018 1
蓝牙
iOS 的蓝牙支持旨在提供实用的功能, 而不会增加对专用数据不必要的访问。 iOS 设备支
Encryption Mode 3Security Mode 4 Service Level 1 连接。 iOS 支持以
下蓝牙描述文件 :
免提描述文件 (HFP 1.5)
电话簿访问描述文件 (PBAP)
信息访问描述文件 (MAP)
高级音频分发描述文件 (A2DP)
音频 /视频远程控制描述文件 (AVRCP)
个人区域网络描述文件 (PAN)
人机接口设备描述文件 (HID)
对这些描述文件的支持因设备而异。
有关更多信息, 请访问 : support.apple.com/zh-cn/HT204387
单点登录
iOS 支持通过单点登录 (SSO) 对企业网络进行认证。 SSO 与基于 Kerberos 的网络配
合使用, 针对用户有权访问的服务对用户进行认证。 SSO 可用于各种网络活动, 从安全
Safari 浏览器会话到第三方应用。 同时还支持基于证书的认证 (PKINIT)
iOS SSO 利用 SPNEGO 令牌和 HTTP Negotiate 协议, 与基于 Kerberos 的认证网
关和支持 Kerberos 票据的 “集成 Windows 身份验证” 系统 (Windows Integrated
Authentication system) 系统配合使用, SSO 支持基于开源 Heimdal 项目。
支持以下加密类型 :
AES128-CTS-HMAC-SHA1-96
AES256-CTS-HMAC-SHA1-96
DES3-CBC-SHA1
ARCFOUR-HMAC-MD5
Safari 浏览器支持 SSO, 而且使用标准 iOS 联网 API 的第三方应用可也可进行配置
来使用它。 为了配置 SSOiOS 支持配置描述文件有效负载, 允许 MDM 解决方案向
下推送必要的设置。 其中包括 : 设置用户主体名称 (即 Active Directory 用户帐户) 和
Kerberos 领域设置, 以及配置应允许哪些应用和 Safari 浏览器网站 URL 使用 SSO
“隔空投送” 安全性
支持 “隔空投送” 的 iOS 设备使用低功耗蓝牙 (BLE) Apple 创建的点对点无线局域网
技术向附近的设备发送文件和信息, 包括具有 “隔空投送” 功能并运行 OS X 10.11 或更
高版本的 Mac 电脑。 无线局域网信号用来在设备之间进行直接通信, 无需使用任何互联
网连接或无线局域网接入点。
用户启用 “隔空投送” 后, 设备上就会储存一个 2048 RSA 身份标识。 此外, 设备还
会根据与用户 Apple ID 相关联的电子邮件地址和电话号码, 创建一个 “隔空投送” 身份
标识哈希值。
当用户选择使用 “隔空投送” 共享项目时, 设备会通过低功耗蓝牙发出 “隔空投送” 信号。
附近处于唤醒状态且启用了 “隔空投送” 的其他设备检测到这一信号后, 会使用其所有者
的身份标识哈希值的精简版本进行响应。
30iOS 安全保护指南—白皮书 | 2018 1
默认情况下, “隔空投送” 的共享对象设置为 “仅限联系人”。 用户还可以选择使用 “隔空投
送” 与所有人进行共享, 或者完全关闭这一功能。 在 “仅限联系人” 模式下, 接收到的身份
标识哈希值会与发起人 “通讯录” 应用中联系人的哈希值进行对比。 如果发现匹配, 发送
设备会创建一个点对点无线局域网络并使用 Bonjour 告知已建立 “隔空投送” 连接。 接收
设备会使用这一连接将其完整身份标识哈希值发送给发起人。 如果完整哈希值仍与 “通讯
录” 匹配, 接收者的名字和照片 (如果 “通讯录” 中有) 会显示在 “隔空投送” 共享表单中。
使用 “隔空投送” 时, 由发送方用户选择要与其共享内容的对象。 发送设备会与接收设备
建立一个加密的 (TLS) 连接, 此连接会交换其 iCloud 身份证书。 身份证书中的身份标
识会针对每位用户的 “通讯录” 应用进行验证。 然后会请求接收方用户接收从经过验证的
人或设备传输的内容。 如果选择了多个接收者, 将针对每个目标重复此过程。
在 “所有人” 模式中会采用同样的过程, 但如果未能在 “通讯录” 中找到匹配项, 接收设备
会显示在 “隔空投送” 发送表单中, 并带有一个剪影图像及设备名称, 该名称可在 “设置” >
“通用” >“关于本机” >“名称” 中找到。
针对通过 MDM 解决方案管理的设备或应用, 组织可以限制 “隔空投送” 的使用。
无线局域网密码共享
支持无线局域网密码共享的 iOS 设备使用与 “隔空投送” 类似的机制将无线局域网密码从
一台设备发送到另一台设备。
当用户选择一个无线局域网络 (请求方) 且系统提示输入无线局域网密码时, Apple 设备
发起低功耗蓝牙通告, 表示其想要使用无线局域网密码。 近距离范围内未进入睡眠状态的
其他 Apple 设备, 如果拥有所选无线局域网络的密码, 会使用低功耗蓝牙连接到正在请
求的设备。
拥有无线局域网密码的设备 (授予方) 要求请求方的联系信息, 而请求方必须使用与
“隔空投送” 类似的机制来证明自己的身份。 一旦身份获得证明, 授予方将也可用于加入
网络的 64 个字符的 PSK 发送给请求方。
针对通过 MDM 解决方案管理的设备或应用, 组织可以限制使用无线局域网密码共享。
31iOS 安全保护指南—白皮书 | 2018 1
通过 Apple Pay, 用户可以使用支持的 iOS 设备和 Apple Watch 以方便、 安全和保密
的方式在商店里、 应用中和使用 Safari 浏览器在网上付款。 Apple Pay 操作简单, 且在
硬件和软件中都采用了集成安全技术。
Apple Pay 的设计还可以保护用户的个人信息。 它不会收集可绑定到用户的任何交易信息。
付款交易只在用户、 商户和发卡机构之间发生。
Apple Pay 组件
安全元件 (Secure Element)安全元件是业内公认、 运行 Java Card 平台的认证芯片,
它符合金融行业对电子支付的要求。
NFC 控制器 : NFC 控制器处理 “近距离无线通信” 协议, 并发送应用程序处理器和安全
元件之间以及安全元件和销售点终端之间的通信。
钱包 :“钱包” 应用被用来添加和管理信用卡、 借记卡、 回馈卡和商店卡, 并通过 Apple Pay
进行支付。 用户可以在 “钱包” 应用中查看其付款卡以及关于发卡机构的其他信息、 发卡
机构的隐私政策、 最近的交易等内容。 还可以在 “设置助理” 和 “设置” 中将付款卡添加到
Apple Pay
安全隔区 : iPhoneiPad 以及 Apple Watch 上, 安全隔区负责管理认证过程并让
支付交易得以继续。
Apple Watch 上, 设备必须解锁且用户必须连按侧边按钮。 检测到的连按操作会直接
发送到安全元件或安全隔区 (可用时), 而不经过应用程序处理器。
Apple Pay 服务器 : Apple Pay 服务器负责管理 “钱包” 中信用卡和借记卡的设置和
预置, 以及储存在安全元件中的 “设备卡号”。 它们同时与设备和支付网络服务器通信。
Apple Pay 服务器还负责再次加密在应用内进行支付时的支付凭证。
Apple Pay 如何使用安全元件
安全元件包含专门设计用来管理 Apple Pay 的小程序, 还包括由支付网络认证的支付小
程序。 加密的信用卡、 借记卡或储值卡数据从支付网络或发卡机构发送到这些支付小程序,
期间使用仅为支付网络和支付小程序的安全域所知的密钥。 此数据储存在这些支付小程
序内, 并使用安全元件的安全性功能进行保护。 交易期间, 终端使用专门的硬件总线通过
“近距离无线通信” (NFC) 控制器直接与安全元件进行通信。
Apple Pay 如何使用 NFC 控制器
作为安全元件的入口, NFC 控制器确保所有免接触式支付交易都通过处于设备近距离范围
内的销售点终端进行。 NFC 控制器只会将来自场内终端的支付请求标记为免接触式交易。
一旦持卡人使用触控 ID 或密码授权支付, 或者在解锁的 Apple Watch 上通过连按侧
边按钮来授权支付, 控制器会将安全元件内支付小程序准备的免接触式响应专门发送给
NFC 场。 因此, 免接触式交易的支付授权详细信息会包含在本地 NFC 场中, 绝不会透露
给应用程序处理器。 相比之下, 在应用内和网上进行支付时, 支付授权详细信息会被发送
到应用程序处理器, 但只有在安全元件加密后才会发送给 Apple Pay 服务器。
Apple Pay
32iOS 安全保护指南—白皮书 | 2018 1
信用卡、 借记卡和储值卡预置
当用户将信用卡、 借记卡或储值卡 (包括商店卡) 添加到 Apple Pay 时, Apple 会安全
地将付款卡信息以及关于用户帐户和设备的其他信息, 发送给发卡机构或发卡机构的授权
服务商。 发卡机构将使用此信息, 决定是否批准将付款卡添加到 Apple Pay
Apple Pay 使用三个服务器端调用命令来发送和接收与发卡机构或网络间的通信, 以作
为付款卡预置过程的一部分 : 必填栏位核对付款卡以及链接和预置。 发卡机构或网络使
用这些调用命令来验证、 批准付款卡并将其添加到 Apple Pay。 这些客户端服务器会话
使用 TLS v1.2 加密。
完整的付款卡号码不会储存在设备或 Apple 服务器上。 而是会创建唯一的 “设备帐号”、
进行加密, 然后储存在安全元件中。 此唯一的 “设备帐号” 采用 Apple 无法访问的方式加
密。 “设备帐号” 是唯一的, 与通常的信用卡或借记卡号码不同。 发卡机构可以阻止在磁条
卡、 电话或网站上使用 “设备帐号”。 安全元件中的 “设备帐号” 与 iOS watchOS 是分
开的, 绝对不会储存在 Apple 服务器上或备份到 iCloud
iPhone 上的 Apple Watch 应用中, 用户可以为 Apple Pay 预置配合 Apple Watch
使用的付款卡。 为 Apple Watch 预置付款卡时, 要求手表位于蓝牙通信范围内。 配合
Apple Watch 使用的付款卡会进行特别注册, 拥有自己的设备帐号, 且这个帐号储存在
Apple Watch 上的安全元件内。 可以通过以下三种方法将信用卡、 借记卡或储值卡预置
Apple Pay 中:
手动将卡添加到 Apple Pay
iTunes Store 帐户中存档的信用卡或借记卡添加到 Apple Pay
从发卡机构的应用添加卡
手动将信用卡或借记卡添加到 Apple Pay
要手动添加付款卡 (包括商店卡), 需要使用姓名、 信用卡号码、 过期日期和 CVV 码来辅
助预置过程。 用户可以在 “设置”、 “钱包” 应用或 Apple Watch 应用中键入或使用设备
上的摄像头来输入该信息。 摄像头捕获到付款卡信息后, Apple 会尝试填充姓名、 卡号和
过期日期。 所拍摄的照片绝对不会存储到设备或储存在照片图库中。 在填写好所有栏位后,
“核对付款卡” 流程会验证 CVV 码以外的栏位。 这些信息会通过加密方式发送到 Apple Pay
服务器。
如果 “核对付款卡” 流程返回条款与条件 IDApple 会下载发卡机构的条款与条件并向用
户显示。 如果用户接受该条款与条件, Apple 会将所接受条款的 ID 以及 CVV 码发送到
“链接和预置” 流程。 此外, 作为 “链接和预置” 流程的一部分, Apple 会与发卡机构或网
络共享设备中的信息, 比如有关您 iTunes Store App Store 帐户活动的信息 (例如,
iTunes 中是否有长期的交易历史记录), 有关您设备的信息 (例如, 电话号码、 姓名、
设备型号以及设置 Apple Pay 所需的任何配套 iOS 设备), 以及添加付款卡时您大致的
位置 (如果启用了 “定位服务”)。 发卡机构将使用此信息, 决定是否批准将付款卡添加到
Apple Pay
“链接和预置” 流程完成后, 会发生以下操作
设备开始下载代表信用卡或借记卡的 “钱包” 凭证文件。
设备开始将付款卡与安全元件绑定。
凭证文件包含用来下载付款卡图像的 URL, 有关付款卡的元数据, 例如联系信息、 相关
的发卡机构应用以及支持的功能。 它还包括凭证状态 : 例如安全元件是否完成了个性化设
置、 付款卡当前是否被发卡机构暂停使用或者在付款卡能够使用 Apple Pay 进行支付前
是否需要进行额外验证。
33iOS 安全保护指南—白皮书 | 2018 1
将信用卡或借记卡从 iTunes Store 帐户添加到 Apple Pay
对于 iTunes 存档的信用卡或借记卡, 可能需要用户重新输入 Apple ID 密码。 然后从
iTunes 取回卡号, 并启动 “核对付款卡” 流程。 如果付款卡符合 Apple Pay 的条件,
设备将会下载并显示条款与条件, 然后将其与条款 ID 和付款卡安全码一起发送到 “链接
和预置” 流程。 对于存档的 iTunes 帐户付款卡, 可能会需要进行额外验证。
从发卡机构的应用添加信用卡或借记卡
当应用注册以使用 Apple Pay 时, 将为应用和商户的服务器建立密钥。 这些密钥用于加
密发送到商户的付款卡信息, 从而阻止信息被 iOS 设备读取。 预置流程与前述手动添加
付款卡时类似, 只有一点不同, 即用一次性密码代替 CVV 码。
额外验证
发卡机构可以决定是否需要对信用卡或借记卡进行额外验证。 根据发卡机构提供的功能,
用户也许可以选择通过以下方式进行额外验证 : 短信、 电子邮件、 客服电话或者通过认证
的第三方应用来完成验证。 用户可以选择发卡机构存档的联系信息来获取短信或电子邮件
通知, 并在 “钱包”、 “设置” 或 Apple Watch 应用中输入收到的代码。 对于客服通知或使
用应用验证的方式, 发卡机构有其自己的通信流程。
支付授权
在配备安全隔区的设备上, 安全元件仅在收到来自安全隔区的授权后才会允许进行支付。
iPhone iPad 上, 这涉及到确认用户已经使用触控 ID、 面容 ID 或设备密码进行
认证。 如果可用, 触控 ID 或面容 ID 即为默认的支付方式 ; 但是用户可随时使用密码
来代替。 如果尝试匹配指纹三次不成功或匹配面容两次不成功, 会自动提供密码输入选
项 ; 五次尝试不成功, 则会要求输入密码。 如果触控 ID 或面容 ID 尚未配置或没有为
Apple Pay 启用, 用户也需要输入密码。 在 Apple Watch 上, 必须使用密码解锁设备
且必须连按侧边按钮才能进行支付。
安全隔区和安全元件之间通过串行接口通信 : 安全元件连接到 NFC 控制器, NFC 控制
器连接到应用程序处理器。 虽然并非直接相连, 但安全隔区和安全元件可以使用共享的配
对密钥进行安全通信, 该密钥已在设备制造过程中预置。 对通信的加密和认证基于 AES
且都会使用加密随机数来防止重放攻击。 配对密钥会使用安全隔区的 UID 密钥和安全元
件的唯一标识符在安全隔区内部生成。 之后配对密钥会在工厂中从安全隔区安全地传输到
硬件安全模块 (HSM) 中, 该模块含有随后将配对密钥注入安全元件所需的密钥材料。
用户授权交易后, 安全隔区会向安全元件发送认证类型签名数据以及交易类型的详细信息
(免接触式或应用中), 而安全元件中绑定了授权随机 (AR) 值。 用户在首次预置信用卡
时, 会在安全隔区中生成 AR 值, 只要 Apple Pay 启用, 该值便会一直存在, 且会受到
安全隔区的加密和防回滚机制的保护。 AR 值会通过配对密钥安全地传送到安全元件中。
在收到新的 AR 值后, 安全元件会将之前添加的付款卡标记为删除。
只有安全元件经过了授权 (使用与添加付款卡时相同的配对密钥和 AR 值), 才能使用添
加到安全元件的信用卡、 借记卡和储值卡。 在以下情形中, 这可让 iOS 告知安全隔区通过
AR 副本标记为无效来停用付款卡 :
密码已停用时。
用户退出登录了 iCloud
用户选择了 “抹掉所有内容和设置”。
设备从恢复模式进行恢复。
对于 Apple Watch 发生以下情况时付款卡会被标记为无效 :
停用了手表的密码。
解除了手表与 iPhone 的配对。
关闭了手腕检测功能。
34iOS 安全保护指南—白皮书 | 2018 1
安全元件会使用配对密钥和当前 AR 值的副本来验证接收自安全隔区的授权, 然后启用支
付小程序进行免接触式支付。 在应用内发生交易时, 也会在从支付小程序取回加密的支付
数据时应用此过程。
交易专用动态安全码
源自支付小程序的所有支付交易均包括交易专用动态安全码和 “设备帐号”。 这个一次性代
码使用计数器和密钥计算, 计数器值随每次新交易的产生而递增, 密钥则在个性化过程中
预置在支付小程序中, 为支付网络和 /或发卡机构所知。 根据支付方案的不同, 计算这些
代码的过程中还可能使用其他数据, 包括 :
支付小程序生成的随机码。
终端生成的另一个随机码 (NFC 交易)。
服务器生成的另一个随机码 (应用内交易 )
这些安全码会提供给支付网络和发卡机构, 允许其验证每笔交易。 完成交易的类型不同,
这些安全码的长度也可能有所不同。
使用 Apple Pay 进行免接触式支付
如果 iPhone 已开机且检测到了 NFC 场, 它会向用户显示相关的信用卡、 借记卡、 储值
或默认的付款卡 (可以在 “设置” 中进行管理)。 用户还可以前往 “钱包” 应用并选取一张
信用卡或借记卡, 或在设备锁定时连按主屏幕按钮。
接着, 用户必须使用触控 ID、 面容 ID 或密码来认证, 之后才会传输支付信息。
Apple Watch 解锁后, 连按侧边按钮激活默认付款卡进行支付。 未经用户认证, 不会发
送任何支付信息。 用户认证后, 在处理支付时会使用 “设备帐号” 和交易专用动态安全码。
Apple 和用户的设备都不会将实际信用卡或借记卡的完整号码发送给商户。 Apple 可能
会接收诸如交易的大概时间和位置等匿名交易信息, 来帮助改进 Apple Pay Apple
其他产品和服务。
使用 Apple Pay 进行应用内支付
Apple Pay 还可用来在 iOS 应用内和自 watchOS 3 后的 Apple Watch 应用内进行
支付。 用户使用 Apple Pay 在应用内支付时, Apple 会收到加密的交易信息, 并且会使
用开发者特定的密钥对其进行重新加密, 然后才发送给开发者或商户。 Apple Pay 会保
留诸如大概的购买金额等匿名交易信息。 该信息不会绑定到用户, 也绝对不会包括用户购
物的内容。
应用发起 Apple Pay 支付交易后, Apple Pay 服务器会先于商户收到来自设备的加密
交易。 Apple Pay 服务器再使用商户特定的密钥对其进行重新加密, 然后将该交易转给
商户。
应用请求支付时, 会调用 API 来确定设备是否支持 Apple Pay 以及用户所拥有的信用卡
或借记卡能否在商户接受的支付网络中进行支付。 应用会请求用来处理和实现交易所需的
任意信息, 例如账单和收货地址以及联系信息。 然后, 应用会要求 iOS 显示 Apple Pay
表单, 表单会请求应用的信息以及其他必要信息, 例如要使用的付款卡。
此时应用会收到省市以及邮编信息来计算最终的运费。 除非用户使用触控 ID、 面容 ID
或设备密码进行授权支付, 否则所请求的整套信息绝不会提供给应用。 授权支付后,
Apple Pay 表单中显示的信息会传输给商户。
35iOS 安全保护指南—白皮书 | 2018 1
用户授权支付后, 会向 Apple Pay 服务器发起调用来获取加密随机数, 该随机数与实体
店交易中 NFC 终端返回的值类似。 接着会将该随机数和其他交易数据一起发送到安全
元件以生成使用 Apple 密钥加密的支付凭证。 由安全元件生成的加密支付凭证会发送到
Apple Pay 服务器, 服务器会解密该凭证, 将凭证中的随机数与安全元件发送的随机数
进行核对, 然后使用与商户 ID 相关联的商户密钥对支付凭证重新加密。 紧接着会将该凭
证返回给设备, 由设备通过 API 交还给应用。 应用会将凭证传递给商户系统进行处理。
商户在随后处理时, 会使用自己的私钥对支付凭证进行解密。 该凭证和来自 Apple 服务
器的签名可让商户验证该交易是否针对此特定商户。
API 会请求授权来指定受支持商户 ID。 应用还可以包括用以发送到安全元件进行签名的
其他数据, 例如订单号或客户身份, 以确保交易不会转到其他客户手中。 应用开发者可以
通过在 PKPaymentRequest 上指定 applicationData 来实现。 此数据的哈希值会包括
在加密的支付数据中。 商户负责验证其 applicationData 哈希值与包含在支付数据中的
哈希值是否匹配。
在网上使用 Apple Pay 支付或者通过 “接力” 支付
Apple Pay 可用于在网站上进行支付。 在 iOS 10 或更高版本中, 可以在 iPhone
iPad 上的网页中进行 Apple Pay 交易。 此外, Apple Pay 交易还可以在运行
macOS Sierra 或更高版本的 Mac 上开始, 然后在使用同一个 iCloud 帐户且启用了
Apple Pay iPhone Apple Watch 上完成。
在网上使用 Apple Pay 要求所有参与网站在 Apple 注册。 Apple 服务器执行域名验证
并签发 TLS 客户端证书。 支持 Apple Pay 的网站必须通过 HTTPS 提供内容。 针对每
笔付款交易, 网站需要使用 Apple 签发的 TLS 客户端证书来获得与 Apple 服务器之间
安全、 唯一的商户会话。 商户会话数据由 Apple 签名。 一旦商户会话签名经过验证, 网站
即可查询用户是否拥有支持 Apple Pay 的设备, 以及设备上是否激活了信用卡、 借记卡或
储值卡。 但不会共享其他详细信息。 用户如果不想共享此信息, 可在 iOS macOS
Safari 浏览器隐私设置中停用 Apple Pay 查询。
一旦商户会话通过验证, 所有安全性和隐私措施与用户在应用内支付时一样。
使用 “接力” 功能在 Mac iPhone Apple Watch 间传输时, Apple Pay 使用端
到端加密 IDS 协议在用户的 Mac 与进行授权的设备之间传输支付相关的信息。 IDS 使
用用户的设备密钥执行加密, 因而其他设备都不能解密此信息, 且 Apple 无法获得密钥。
发现使用 “接力” 功能进行 Apple Pay 的设备时会包括用户信用卡的类型和唯一标识符以
及一些元数据。 用户卡片的设备特定帐号不会共享, 且一直安全地储存在用户的 iPhone
Apple Watch 上。 Apple 还会通过 iCloud 钥匙串安全地传输用户最近使用的联系
人、 送货和账单地址。
一旦用户在 iPhone 上使用触控 ID、 面容 ID 或密码授权支付或在 Apple Watch 上连
按侧边按钮, 就会有一个支付令牌针对每个网站的商户证书进行唯一加密, 并安全地从用
户的 iPhone Apple Watch 传输到 Mac, 然后传送到商户的网站。
只有彼此邻近的设备才能请求和完成支付。 邻近度由低功耗蓝牙广播决定。
回馈卡
iOS 9 或更高版本中, Apple Pay 支持增值服务 (VAS) 协议, 用于向兼容的 NFC
终端传输商户回馈卡。 VAS 协议可在商户终端上实施, 并使用 NFC 来与支持的 Apple
设备通信。 VAS 协议在较短的距离内使用, 用于提供补充服务, 例如传输回馈卡信息,
作为 Apple Pay 交易的一部分。
36iOS 安全保护指南—白皮书 | 2018 1
NFC 终端通过发送付款卡请求开始接收付款卡信息。 如果用户的卡片具有商店标识符,
将提示用户授权使用该卡。 如果商户支持加密, 则付款卡信息、 时间戳和一次性使用的随
ECDH P-256 密钥将连同商户的公钥一起用来生成一个加密密钥, 以对发送到终端
的付款卡数据进行加密。 如果商户不支持加密, 在发送回馈卡信息前, 将提示用户再次向
终端出示设备。
Apple Pay Cash
iOS 11.2 watchOS 4.2 起, Apple Pay 可用于在 iPhoneiPad Apple Watch
上与其他用户进行付款、 收款和请款。 收款后, 款项会添加到 Apple Pay Cash 帐户。
只要用户在任何符合条件的设备上使用其 Apple ID 登录, 便可在 “钱包” 或 “设置” >
“钱包与 Apple Pay” 中使用款项。
要进行个人对个人支付和使用 Apple Pay Cash, 用户必须在兼容 Apple Pay Cash
设备上登录其 iCloud 帐户, 并在 iCloud 帐户中设置双重认证。
设置 Apple Pay Cash 时, 您添加信用卡或借记卡时使用的信息可能会共享给我们的合
作方 Green Dot 银行和 Apple Payments Inc.Apple Payments Inc. 是由 Apple
创立的全资子公司, 它以 Apple 的其他部门无法获知的方式单独储存和处理您的信息,
从而保护您的隐私。 此类信息仅用于故障诊断、 避免欺诈行为与监管目的。
用户之间可以使用 “信息” 应用或让 Siri 来发起请款和转账。 用户尝试付款时,
iMessage 信息会显示 Apple Pay 表单。 Apple Pay Cash 余额始终会优先使用。
如有需要, 会从用户添加到 “钱包” 的第二张信用卡或借记卡中提取款项。
“钱包” 中的 Apple Pay Cash 卡片可配合 Apple Pay 使用, 在商店、 应用和网上进行
支付。 Apple Pay Cash 帐户中的款项也可以转到银行账户。 除了从其他用户收款, 也可
以将 “钱包” 中借记卡或储值卡的款项添加到 Apple Pay Cash 帐户。
交易完成后, Apple Payments Inc. 将会储存您的交易数据并可能将其用于故障诊断、
避免欺诈行为与监管目的。 Apple 的其他部门无法获知您收付款的对象或使用
Apple Pay Cash 卡购物时的位置。
当用户使用 Apple Pay 付款、 将款项添加到 Apple Pay Cash 帐户或将款项转到银
行账户时, 会向 Apple Pay 服务器发起调用来获取加密随机数, 该随机数与应用内为
Apple Pay 返回的值类似。 接着会将该随机数和其他交易数据一起发送到安全元件以生
成支付签名。 由安全元件生成的支付签名会发送到 Apple Pay 服务器。 Apple Pay 服务
器会通过支付签名和随机数来验证交易的真实性、 完整性和正确性。 之后便会发起转账并
通知用户交易完成。
如果交易涉及以下信用卡或借记卡活动 :
将款项添加到 Apple Pay Cash
向另一位用户付款或
Apple Pay Cash 余额不足时, 提供额外款项
之后, 除了上述的转账签名外, 还会生成加密的支付凭证并发送给 Apple Pay 服务器,
该凭证与应用内和网站上用于 Apple Pay 的凭证类似。
一旦 Apple Pay Cash 帐户的余额超过一定金额, 或检测到异常活动, 便会提示用户验
证身份。 提供用于验证用户身份的信息, 如社保号或问题答案 (例如, 确认您之前住过的
街道名称) 会安全地传输给 Apple 的合作伙伴并使用其密钥加密。 Apple 无法解密此
数据。
37iOS 安全保护指南—白皮书 | 2018 1
Suica
在日本, 用户在支持的 iPhone Apple Watch 机型上, 可以将 Suica 卡添加到
Apple Pay 钱包。 如要进行添加, 可以将实体卡中的余额和通勤车票转至其数字 “钱包”
或者从 Suica 应用将新的 Suica 卡预置到 “钱包” 中。 Suica 卡添加到 “钱包” 后, 用户
可以在商店中支付或使用其不记名的 Suica 卡、 MySuica 卡或包含通勤车票的卡片搭乘
公共交通。
添加的 Suica 卡与用户的 iCloud 帐户相关联。 如果用户在 “钱包” 中添加了多张卡片,
Apple 或公交发卡机构或许可以链接卡片间用户的个人信息和关联的帐户信息。 例如,
MySuica 卡可以链接到不记名 Suica 卡。 Suica 卡和交易受到一组分层加密密钥的保护。
在将实体卡的余额转至 “钱包” 的过程中, 如果卡片是不记名 Suica 卡, 会要求用户输入
卡片序列号的最后四位数字。 如果卡片是 MySuica 卡或者包含通勤车票, 用户还必须输
入其生日作为拥有卡片的证明。 将车票从 iPhone 传输至 Apple Watch 的过程中, 两
台设备都必须保持在线。
通过 “钱包” 或在 Suica 应用中, 可以使用信用卡和储值卡的款项来充值。 使用 Apple Pay
时重新载入余额的安全性, 请参阅本白皮书的 “使用 Apple Pay 进行应用内支付” 部分。
Suica 应用内预置 Suica 卡的过程, 请参阅本白皮书的 “从发卡机构的应用添加信用
卡或借记卡” 部分。
公交发卡机构拥有用来认证实体卡和验证用户输入数据所需的加密密钥。 验证后, 系统可
以为安全元件创建设备卡号并在 “钱包” 中激活包含转账余额的新增车票。 从塑料卡片预
置完成后, 实体卡会停用。
不论进行何种类型的预置, 最后 Suica 的余额会加密并储存到安全元件中指定的小程序内。
公交运营商拥有密钥, 可以对卡片数据执行加密操作以实现余额交易。
默认情况下, 用户可以从这种无缝的快捷交通体验中获益, 无需使用触控 ID、 面容 ID
密码便可进行支付和搭乘公交。 对于附近支持 “快捷模式” 的任何免接触式读卡器, 可能
会访问诸如近期访问的站点、 交易历史及附加票据等信息。 用户可以通过停用 “快捷交通”,
在 “钱包与 Apple Pay” 设置中启用触控 ID、 面容 ID 或密码授权要求。
和其他 Apple Pay 卡片一样, 用户可以通过以下方式来暂停使用或移除 Suica 卡:
通过 “查找我的 iPhone” 远程抹掉设备
通过 “查找我的 iPhone” 启用 “丢失模式”
通过 MDM 执行远程擦除操作
Apple ID 帐户页面移除所有卡片
iCloud.com 移除所有卡片
从 “钱包” 移除所有卡片
Apple Pay 服务器会通知公交运营商停用这些 Suica 卡。 如果尝试抹掉的设备处于离线
状态, 则用户的 Suica 卡在日本标准时间第二天凌晨的 1201 之前在某些终端机上可能
仍可使用。
如果用户移除其 Suica 卡, 卡片的余额可以恢复。 用户可以在日本标准时间第二天凌晨
500 之后, 将卡片添加回使用了相同 Apple ID 登录的设备。
设备离线时, 无法暂停使用 Suica 卡。
38iOS 安全保护指南—白皮书 | 2018 1
暂停使用、 移除和抹掉付款卡
通过使用 “查找我的 iPhone” 将设备置于 “丢失模式”, 用户可以暂停使用 iPhone
iPad 和运行 watchOS 3 Apple Watch 上的 Apple Pay。 还可以使用 “查找我的
iPhone”、 iCloud.com 或直接在设备上使用 “钱包”, 从 Apple Pay 移除和抹掉其付款
卡。 在 Apple Watch 上的付款卡可使用 iCloud 设置以及 iPhone 上的 Apple Watch
应用移除, 或直接在手表上移除。 即使设备离线且未接入蜂窝移动网络或无线局域网络,
发卡机构或者各自的支付网络也可停用或移除设备上 Apple Pay 付款卡的支付功能。
用户也可以致电发卡机构停用或移除 Apple Pay 中的付款卡。
此外, 当用户使用 “抹掉所有内容和设置” 与 “查找我的 iPhone” 来抹掉整个设备, 或者
在恢复模式中恢复设备时, iOS 会告知安全元件将所有付款卡标记为删除。 这等同于立即
停用付款卡, 直到能够联系 Apple Pay 服务器, 从安全元件中完全抹掉付款卡。 安全隔
区还会单独将 AR 标记为无效, 因此将无法使用之前注册的付款卡进行进一步的支付授权。
设备在线后, 它会尝试联系 Apple Pay 服务器, 确保安全元件中的所有付款卡都已被
抹掉。
39iOS 安全保护指南—白皮书 | 2018 1
Apple 构建了一系列强大的服务来帮助用户更充分地使用设备并提高工作效率, 其中包
iMessage 信息、 FaceTime 通话、 Siri 建议、 iCloud、“
iCloud 云备份” 和 “iCloud
钥匙串”。
这些互联网服务在设计上继承了 iOS 在整个平台中推行的安全目标。 这些目标包括 :
安全处理数据, 无论数据存储在设备上还是在通过无线网络进行传输 ; 保护用户的个人
信息 ; 防范威胁, 阻止对信息和服务进行恶意或未经授权的访问。 每一种服务都采用自己
强大的安全架构, 丝毫不会影响 iOS 的整体易用性。
Apple ID
Apple ID 是用来登录 Apple 服务的帐户, 例如 iCloudiMessage 信息、 FaceTime
通话、 iTunes StoreiBooks Store App Store 等服务。 对于用户而言很重要的一
点就是, 确保 Apple ID 的安全, 防止自己的帐户被未经授权地使用。 为了达成这一目
标, Apple 要求使用长度至少为 8 个字符的强密码, 同时包含字母和数字, 连续的相同
字符不得超过三个, 且不能为常用的密码。 在此规则的基础上, 用户可以通过添加更多的
字符和标点符号, 让密码变得更加安全。 Apple 还要求用户设置三个安全提示问题, 在用
户更改帐户信息或重设忘记的密码时, 这些信息可以用来帮助验证帐户所有者的身份。
在帐户发生重大更改时, Apple 还会向用户发送电子邮件和推送通知。 例如, 密码或账单
信息发生更改, 或者在新设备上使用 Apple ID 登录。 如有异常发生, Apple 会提示用户
立即更改其 Apple ID 密码。
另外, Apple 采用了多种策略和规程来保护用户帐户。 这包括限制重新尝试登录和尝试重
设密码的次数, 采取主动式欺诈监控以帮助在发生攻击时进行识别, 以及定期对策略进行
检查, 让 Apple 可以针对可能影响客户安全性的任何新信息作出调整。
双重认证
为帮助用户进一步保护帐户的安全性, Apple 推出了双重认证,为
Apple ID 提供的一层
额外安全保护。 它旨在确保仅帐户所有者能访问帐户, 其他人即使知道密码也无法访问。
有了双重认证, 只能在受信任设备上 (例如, 用户的 iPhoneiPad Mac) 上访问用
户的帐户。 在任何新设备上首次登录需要两项信息 : Apple ID 密码和 6 位数的验证码,
验证码自动显示在用户的受信任设备上或发送到受信任的手机号码。 输入验证码即表明用
户确认他们信任新设备, 且在该设备上登录是安全的。 双重认证意味着已经不能仅靠密码
来访问用户帐户, 因而提高了用户的 Apple ID 以及所有通过 Apple 储存的个人信息的
安全性。 它直接集成到 iOSmacOStvOSwatchOS 以及 Apple 网站使用的认证
系统中。
有关双重认证的更多信息, 请访问 : support.apple.com/zh-cn/HT204915
两步验证
2013 年以来, Apple 还推出了类似的安全性方法, 称为两步验证。 两步验证启用后,
用户必须通过发送至其中一台受信任设备的临时代码来验证其身份, 然后才允许更改
Apple ID 帐户信息, 登录 iCloudiMessage 信息、 FaceTime 通话或 Game Center
以及在新设备的 iTunes StoreiBooks Store App Store 中进行购物。 如果用户
忘记了密码或者无法访问其受信任设备, 还可以使用储存在安全地方、 由 14 位字符组成的
“恢复密钥”。 我们鼓励大多数新用户使用双重认证, 但在某些情况下, 我们仍建议使用
两步验证。
互联网服务
创建 Apple ID 强密码
Apple ID 可用来连接到一系列服务, 包括
iCloudFaceTime 通话和 iMessage 信息。
为帮助用户创建强密码, 所有新帐户都必须包
含以下密码属性 :
至少有八个字符
至少有一个字母
至少有一个大写字母
至少有一个数字
连续的相同字符不得超过三个
不能与帐户名称相同
40iOS 安全保护指南—白皮书 | 2018 1
有关 Apple ID 两步验证的更多信息, 请访问 :
support.apple.com/zh-cn/HT204152
管理式 Apple ID
“管理式 Apple ID” 提供类似 Apple ID 的功能, 但它由教育机构拥有和控制。 机构可以
重设密码, 限制购买和通信 (例如 FaceTime 通话和 “信息”), 以及基于职务为职员、
教师和学生设置权限。
部分 Apple 服务针对 “管理式 Apple ID” 停用, 例如, Apple Pay、“
iCloud 钥匙串”、
HomeKit 以及 “查找我的 iPhone”。
有关 “管理式 Apple ID” 的更多信息, 请访问 help.apple.com/schoolmanager
审核管理式 Apple ID
“管理式 Apple ID” 也支持审核, 使机构符合法律和隐私规定。 管理员、 管理人员或教师
帐户可针对特定的 “管理式 Apple ID” 获得审核权限。 审核员仅可监控低于其校内职务级
别的帐户。 即, 教师可以监控学生 ; 管理人员可以审核教师和学生 ; 而管理员可以审核管
理人员、 教师和学生。
当使用 “Apple 校园教务管理” 请求审核凭证时, 会分发一个特殊帐户, 该帐户仅可访问
要求审核的 “管理式 Apple ID”。 审核权限将在七天后过期。 在此期间, 审核员可以读取
和修改用户储存在 iCloud 或支持 CloudKit 应用中的内容。 “Apple 校园教务管理” 会记
录每个审核访问请求。 日志中显示审核员的身份、 审核员请求访问的 “管理式 Apple ID”、
请求的时间以及审核是否执行。
管理式 Apple ID 和个人设备
“管理式 Apple ID” 也可配合个人拥有的 iOS 设备和 Mac 电脑使用。 学生使用机构分
发的 “管理式 Apple ID” 和附加的个人用密码 (作为 Apple ID 双重认证过程的第二重)
登录 iCloud。 在个人设备上使用 “管理式 Apple ID 时, “iCloud 钥匙串” 不可用, 同时
机构可能还会限制其他功能, 例如 FaceTime 通话或 “信息”。 学生在登录状态下创建的
任何 iCloud 文稿均会按照本节上文所述接受审核。
iMessage 信息
Apple 推出的 iMessage 信息是一项适用于 iOS 设备、 Apple Watch Mac 电脑的
信息收发服务。 iMessage 信息支持文本和附件, 例如照片、 联系人信息和位置信息。
信息会显示在用户所有注册的设备上, 这样用户就可以在其他设备上继续对话。 iMessage
信息充分利用了 Apple 推送通知服务 (APNs)Apple 不会记录信息或附件的内容, 这些
内容受端到端的加密服务保护, 因此只有发送者和接收者可以访问它们。 Apple 不能解密
这些数据。
当用户在设备上打开 iMessage 信息后, 设备会生成以下两对密钥供这一服务使用 :
用于加密的 RSA 1280 位密钥和 NIST P-256 曲线上用于签名的 ECDSA 256 位密
钥。 两组密钥对的私钥存储在设备的钥匙串中, 公钥则与设备的 APNs 地址一起发送至
Apple 的目录服务 (IDS), 在目录服务中, 公钥会与用户的电话号码或电子邮件地址关联
在一起。
在用户启用其他设备来使用 iMessage 信息时, 它们的加密和签名公钥、 APNs 地址以
及所关联的电话号码都会添加至目录服务中。 用户还可以添加更多电子邮件地址, 这些电
子邮件地址会通过发送确认链接进行验证。 电话号码通过运营商网络和 SIM 卡进行验证。
对于部分网络, 需要使用短信验证 (如果短信需要收费, 还会向用户显示确认对话框)。
除了 iMessage 信息外, 一些系统服务 (例如 FaceTime 通话和 iCloud) 可能需要进
行电话号码验证。 当有新设备、 电话号码或电子邮件地址添加进来时, 用户所有已注册的
设备都会显示一条警告信息。
41iOS 安全保护指南—白皮书 | 2018 1
iMessage 信息如何发送和接收信息
用户通过输入一个地址或姓名来开始一次新的 iMessage 对话。 如果他们输入一个电
话号码或电子邮件地址, 设备就会与 IDS 进行联系, 来提取与该联系人相关联的所有设
备的公钥和 APNs 地址。 如果用户输入的是一个名字, 设备首先会使用用户的 “通讯录”
应用来收集与该名字相关联的电话号码和电子邮件地址, 然后再从 IDS 中获取公钥和
APNs 地址。
对于每个接收者的设备, 用户发出的信息都会单独进行加密。 接收设备的公共 RSA 加密
密钥取自 IDS。 发送设备针对每个接收设备生成一个 88 位随机值, 并将其用作 HMAC-
SHA256 密钥, 以构成一个派生于发送者和接收者公钥以及明文的 40 位值。 88 位值
40 位值串联构成 128 位密钥, 并在 CTR 模式下使用 AES 加密连带的信息。 接收
方使用 40 位值验证解密后明文的完整性。 此信息独有的 AES 密钥采用接收设备上用于
加密公钥的 RSA-OAEP (算法) 进行加密。 之后使用 SHA-1 对加密的信息文本和加密
的信息密钥进行混编, 该哈希值会使用发送设备的专用签名密钥通过 ECDSA 签名。 针
对每部接收设备所生成的每条信息包含加密的信息文本、 加密的信息密钥和发送者的数字
签名。 信息然后会分派至 APNs 以进行发送。 时间戳和 APNs 路由信息等元数据则不加
密。 与 APNs 的通信使用前向保密 TLS 频道加密。
APNs 最多只能转发大小为 4KB 16KB 的信息, 具体取决于 iOS 的版本。 如果信息
文本过长, 或者附件中有照片等文件, 那么附件会使用 AES CTR 模式下通过随机生
成的 256 位密钥进行加密并上传至 iCloud。 附件的 AES 密钥、 其 URI (统一资源标识
符) 以及加密形式的 SHA-1 哈希值会作为 iMessage 信息的内容发送给收件人。 常规
iMessage 信息加密会保护以上内容的机密性和完整性, 具体如下图所示。
iCloud
APNs
使用随机密钥
加密的附件
给用户 2 的已签名加密信息,
包含附件的 URI 和密钥
用户 1 的公钥和
APNs 令牌
IDS
用户 2用户 1
用户 2 的公钥和
APNs 令牌
对于小组对话, 每一位接收者及其设备之间都会重复此过程。
对于接收方, 每台设备接收到的是 APNs 发来的信息的副本, 而且如有需要, 设备会从
iCloud 提取附件。 如果发送人的电话号码或电子邮件地址与接收者的通讯录相匹配,
则会显示一个名字。
与所有推送通知一样, 信息在发出之后就会从 APNs 中删除。 然而与其他 APNs 通知不
同的是, 如果设备不在线, iMessage 信息会列入队列等待发送。 信息当前会储存长达
30 天。
42iOS 安全保护指南—白皮书 | 2018 1
FaceTime 通话
FaceTime 通话是 Apple 的视频和音频通话服务。 与 iMessage 信息类似, FaceTime
通话也使用 Apple 推送通知服务与用户已注册过的设备建立初始连接。 FaceTime
话的音频 /视频内容由端到端的加密进行保护, 因此只有发送者和接收者可以访问它们。
Apple 不能解密这些数据。
初始 FaceTime 通话是通过 Apple 服务器基础架构建立连接, 服务器在用户所注册的
设备间中继数据包。 设备在中继连接期间, 通过 APNs 通知和 NAT 会话穿越实用程序
(STUN) 信息, 验证其身份证书并为每个会话建立共享密钥。 共享密钥用于为通过 “安全
实时协议” (SRTP) 进行流化的媒体通道派生会话密钥。 SRTP 数据包使用 “计数器模式”
中的 AES-256 HMAC–SHA1 加密。 在完成初始连接和安全性设置之后, FaceTime
通话会在可能的情况下, 使用 STUN 和互联网连接建立 (ICE) 在设备间建立点对点连接。
iCloud
iCloud 可以储存用户的通讯录、 日历、 照片、 文稿和其他内容, 并让这些信息在其设备
间自动保持最新。 它也可以供第三方应用使用, 来储存和同步文稿以及由开发者所定义的
应用数据关键值。 用户通过登录 Apple ID 并选取想要使用的服务来设置 iCloud,而
IT
管理员可以通过 MDM 配置描述文件来停用 iCloud 的部分功能, 包括 “我的照片流”、
iCloud 云盘” 和 “iCloud 云备份”。 该服务无法获悉正在储存的内容, 并以字节集合的
方式对所有文件进行处理。
每个文件被分为区块, 并由 iCloud 使用 AES-128 以及从利用 SHA-256 的每个区块
内容派生的密钥进行加密。 密钥和文件的元数据由 Apple 储存在用户的 iCloud 帐户中。
文件的加密区块通过第三方的存储服务 (例如 S3 Google 云平台) 进行储存, 不带任
何用户识别信息。
iCloud 云盘
iCloud 云盘会添加基于帐户的密钥来保护储存在 iCloud 中的文稿。 和现有的 iCloud
服务一样, 它会将文件内容分块并进行加密, 然后使用第三方服务来储存加密块。 但文件
内容密钥由记录密钥所封装, 与 iCloud 云盘元数据储存在一起。 而这些记录密钥则由用
户的 iCloud 云盘服务密钥所保护, 储存在用户的 iCloud 帐户中。 用户通过 iCloud
证来访问 iCloud 文稿元数据, 但还必须拥有 iCloud 云盘服务密钥才能显示 iCloud
盘储存中受保护的部分。
CloudKit
CloudKit 允许应用开发者将键 -值数据、 结构性数据和资源储存在 iCloud 中。 对
CloudKit 的访问通过应用授权进行控制。 CloudKit 支持公共数据库和专用数据库。
公共数据库被应用的所有副本使用 (通常用作一般性资源), 且不加密。 专用数据库储存
用户的数据。
iCloud 云盘一样, CloudKit 使用基于帐户的密钥来保护储存在用户专用数据库
中的信息, 且与其他 iCloud 服务类似, 会使用第三方服务对文件进行分块、 加密和储
存。 CloudKit 使用密钥层级, 与数据保护类似。 文件独有密钥由 CloudKit 记录密钥
封装。 而记录密钥则会受到区域范围内密钥的保护, 而区域范围内的密钥则受到用户的
CloudKit 服务密钥的保护。 CloudKit 服务密钥储存在用户的 iCloud 帐户中, 只有在
用户使用 iCloud 认证后才可使用。
CloudKit
区域密钥
CloudKit
记录密钥 文件元数据 文件块列表
CloudKit
服务密钥
收敛加密
文件块
43iOS 安全保护指南—白皮书 | 2018 1
CloudKit 端对端加密
Apple Pay Cash、 用户关键词、 Siri 智能和 “嘿 Siri” 使用 CloudKit 服务密钥进行
CloudKit 端对端加密, 该密钥受 iCloud 钥匙串同步的保护。 对于这些 CloudKit 容器,
密钥层次结构植根于 iCloud 钥匙串, 因此享有 iCloud 钥匙串的安全性特性 : 密钥仅可
在用户受信任的设备上使用, Apple 或任何第三方都无法使用。 如果失去了对 iCloud
匙串数据的访问权限 (请参阅本白皮书后面的 “托管安全性” 部分), CloudKit 中的数据
会还原, 且如果数据在受信任的本地设备上可用, 该数据会重新上传到 CloudKit
iCloud 云备份
iCloud 每天通过无线局域网将信息 (包括设备设置、 应用数据、 “相机胶卷” 中的照片和视
频以及 “信息” 应用中的对话) 备份。 iCloud 会在您通过互联网发送内容时对其进行加密、
以加密格式储存内容并使用安全令牌进行认证, 从而保障内容的安全。 仅当设备处于锁定
状态、 连接到电源且可通过无线局域网访问互联网时, “iCloud 云备份” 才会工作。 由于
iOS 采用独特的加密技术, 因此系统经过专门设计, 既可保护数据安全, 又能进行无人值
守式增量备份和还原。
以下是 iCloud 云备份的内容 :
已购买的音乐、 影片、 电视节目、 应用和图书的记录。 用户的 iCloud 云备份包括用户
iOS 设备上显示的已购内容的相关信息, 但不包括已购内容本身。 当用户从 iCloud
备份恢复时, 将自动从 iTunes StoreiBooks Store、或
App Store 下载已购内容。
部分类型的内容并非在所有国家或地区都会自动下载, 且之前的购买可能会变为不可用
(如果已经退款或在商店中不再可用)。 完整的购买历史记录与用户的 Apple ID 相关联。
用户 iOS 设备上的照片和视频。 请注意, 如果用户在其 iOS 设备 (iOS 8.1 或更高版
本) 或 Mac OS X 10.10.3 或更高版本) 上打开了 “iCloud 照片图库”, 其照片和视
频已经储存在 iCloud 中, 因此不包括在用户的 iCloud 云备份中。
联系人、 日历事件、 提醒事项和备忘录
设备设置信息
应用数据
通话历史记录和电话铃声
主屏幕与应用排列方式
HomeKit 配置
HealthKit 数据
iMessage 信息、 短信和彩信 (需要备份期间使用的 SIM 卡)
Visual Voicemail 密码 (需要备份期间使用的 SIM 卡)
当文件从设备锁定时无法访问的数据保护类中创建时, 其文件独有密钥通过 “iCloud 云备
份” 密钥包中的类密钥进行加密。 文件以其原始的加密状态备份至 iCloud。 处于 “无保护”
数据保护类中的文件在传输期间进行加密。
iCloud 云备份” 密钥包包含每个数据保护类的非对称 (Curve25519) 密钥, 这些密钥
用于加密文件独有密钥。 有关备份密钥包和 “iCloud 云备份” 密钥包内容的更多信息,
请参阅本白皮书 “加密和数据保护” 部分中的 “钥匙串数据保护”。
备份集储存于用户的 iCloud 帐户中, 包括用户的文件副本和 “iCloud 云备份” 密钥包。
而随备份集一同储存的随机密钥会保护 “iCloud 云备份” 密钥包。 (用户的 iCloud 密码
不用于加密, 因此更改 iCloud 密码不会使现有备份失效。)
当用户的钥匙串数据库备份至 iCloud 时, 它仍然受到与 UID 绑定的密钥保护。 这样使得
钥匙串仅能恢复至生成它的同一台设备, 意味着任何人 (包括 Apple) 均无法读取用户的
钥匙串项。
恢复后, 备份的文件、 “iCloud 云备份” 密钥包和密钥包的密钥将从用户的 iCloud 帐户取回。
iCloud 云备份” 密钥包通过其密钥进行解密, 然后密钥包中的文件独有密钥用于解密备份
集中的文件, 这些文件作为新文件写入文件系统中, 从而根据其数据保护类对其重新加密。
44iOS 安全保护指南—白皮书 | 2018 1
iCloud 钥匙串
iCloud 钥匙串可帮助用户在 iOS 设备和 Mac 电脑之间安全地同步密码, 而不会将此信
息泄露给 Apple。 除了强大的隐私保护和安全性, 易用性和恢复钥匙串的功能对 iCloud
钥匙串的设计和架构也具有重要影响。 iCloud 钥匙串包含两项服务 : 钥匙串同步和钥匙
串恢复。
Apple 设计的 iCloud 钥匙串和钥匙串恢复可确保用户的密码在下列情况下仍然受到保护 :
用户的 iCloud 帐户被盗。
iCloud 遭到外部攻击者或员工的入侵。
第三方访问用户帐户。
钥匙串同步
当用户首次启用 iCloud 钥匙串时, 设备将建立信任圈并为自己创建同步身份。 同步身份
包括私钥和公钥。 同步身份的公钥放置在信任圈中, 该信任圈已签名两次 : 第一次由同步
身份的私钥签署, 第二次由来自用户 iCloud 帐户密码的非对称椭圆密钥 (使用 P-256
签署。 随信任圈一起储存的还有参数 (随机盐密钥和迭代次数), 用于创建基于用户
iCloud 密码的密钥。
已签名的同步信任圈放置在用户的 iCloud 密钥值存储区域。 如果不知道用户的 iCloud
密码, 就无法对其进行读取 ; 如果没有信任圈成员同步身份的私钥, 就无法对其进行有效
地修改。
当用户在其他设备上启用 iCloud 钥匙串时, 新设备会注意到该用户之前在 iCloud 中建
立过同步信任圈, 但本设备不是该信任圈的成员。 该设备将创建其同步身份密钥对, 然后
创建应用程序申请单以请求加入该信任圈。 该申请单包括设备的同步身份公钥, 系统将要
求用户使用其 iCloud 密码进行认证。 椭圆密钥生成参数通过 iCloud 取回, 并生成用于
签署应用程序申请单的密钥。 最终, 应用程序申请单将放置在 iCloud 中。
当第一台设备接收到应用程序申请单时, 它会显示一则通知, 让用户确认新设备正在请求
加入同步信任圈。 该用户输入其 iCloud 密码, 应用程序申请单通过匹配的私钥签名进行
验证。 这样即确认发出请求加入信任圈的人在发出请求时输入了用户的 iCloud 密码。
用户批准将新设备添加至信任圈后, 第一台设备将新成员的公钥添加至同步信任圈, 使用
其同步身份和来自用户 iCloud 密码的密钥再次签名。 新的同步信任圈放置在 iCloud 中,
该信任圈的新成员同样进行了签名。
现在, 签名信任圈有两个成员, 并且每个成员拥有另一个成员的公钥。 它们现在开始通过
iCloud 键值储存交换各个钥匙串项或视情况将其储存在 CloudKit 中。 如果两个信任圈
成员拥有相同的项目, 修改日期最近的项目将被同步。 如果另一个成员拥有该项目并且修
改日期相同, 这些项目将被跳过。 每个同步的项目都会加密, 因此只有用户信任圈内的设
备才能解密。 任何其他设备或 Apple 均无法解密。
当新设备加入同步信任圈时, 将会重复该过程。 例如当第三台设备加入时, 用户的另外两
台设备上均会出现确认信息。 用户可以从其中任意一台设备上批准新成员。 随着新的同级
设备加入, 每台同级设备均与新设备进行同步, 以确保所有成员拥有相同的钥匙串项。
但是, 整个钥匙串不会进行同步。 某些项目仅限于特定的设备 (例如 VPN 身份), 它们
不应该离开设备。 仅具有 kSecAttrSynchronizable 属性的项目会被同步。 Apple
已经为 Safari 浏览器用户数据 (包括用户名、 密码和信用卡号)、 无线局域网密码以及
HomeKit 加密密钥设置了该属性。
另外, 在默认情况下, 第三方应用添加的钥匙串项不会进行同步。 将项目添加至钥匙串时,
开发者必须设置 kSecAttrSynchronizable
Safari 浏览器与 iCloud 钥匙串整合
Safari 浏览器可以自动为网站密码生成强加密
随机字符串, 然后将其储存在钥匙串中并与其
他设备同步。 钥匙串项通过 Apple 服务器在
不同的设备之间传输, 但会严格进行加密,
Apple 和其他设备无法读取其内容。
45iOS 安全保护指南—白皮书 | 2018 1
钥匙串恢复
钥匙串恢复功能使用户可以将其钥匙串交予 Apple 托管, 但不允许 Apple 读取密码和
钥匙串包含的其他数据。 即使用户只有一台设备, 钥匙串恢复也可提供一个防止数据丢失
的安全网。 当 Safari 浏览器用于为网络帐户生成随机强密码时, 这尤其重要, 因为这些
密码的唯一记录在钥匙串中。
钥匙串恢复包含两大基本要素 : 二次身份认证和安全托管服务, 后者是 Apple 专为支持
此功能而创建的服务。 用户的钥匙串通过强密码进行加密, 只有满足一系列严格的条件,
托管服务才会提供钥匙串副本。
iCloud 钥匙串启用后, 如果用户帐户启用了双重认证, 则将使用设备密码来恢复托管的
钥匙串。 如果未设置双重认证, 会要求用户通过提供六位数密码来创建 iCloud 安全码。
除此之外, 如果未设置双重认证, 用户可以自行指定较长的代码或允许其设备创建随机
密码, 他们可以自行记录和保存。
然后, iOS 设备会导出用户的钥匙串副本, 将其与密钥加密封装于非对称钥匙包中, 并放
置在用户的 iCloud 键值存储区域。 密钥包被用户的 iCloud 安全码和储存托管记录的硬
件安全模块 (HSM) 集群公钥所封装。 它会变成用户的 iCloud 托管记录。
如果用户决定接受随机加密的安全码而不自行指定或使用 4 位数值, 则不再需要托管记录。
此时, 会使用 iCloud 安全码直接封装随机密钥。
除了建立安全码, 用户必须注册电话号码。 这会在钥匙串恢复期间提供二级身份认证。
用户将收到一条短信, 必须回复这条短信才能继续恢复过程。
托管安全性
iCloud 为钥匙串托管提供了安全的基础架构, 可确保只有经过授权的用户和设备才能执
行恢复。 iCloud 背后部署的是 HSM 集群, 这些集群为托管记录提供保护。 集群的每位
成员都有一个密钥, 用于对其监管下的托管记录进行加密, 具体过程如本白皮书的上文
所述。
要恢复钥匙串, 用户必须使用其 iCloud 帐户和密码进行身份验证, 并对发送至其注册
电话号码的短信进行回复。 回复完成后, 用户必须输入其 iCloud 安全码。 HSM 集群利
用安全远程密码 (SRP) 协议验证用户是否知道其 iCloud 安全码 ; 密码本身不会发送给
Apple。 集群的每位成员单独验证用户是否未超过检索记录时所允许的最大尝试次数,
如下所述。 如果多数成员同意, 集群会解封托管记录并将其发送至用户的设备。
下一步, 设备使用 iCloud 安全码解封用于加密用户的钥匙串的随机密钥。 利用该密钥,
可以解密从 iCloud 键值存储取回的钥匙串并将其恢复到设备中。 最多允许对托管记录认
证和检索 10 次。 多次尝试失败后, 记录将被锁定, 用户必须联系 Apple 技术支持部门
才能进行更多尝试。 第 10 次尝试失败后, HSM 集群将销毁托管记录, 钥匙串将永久丢
失。 这种方式以牺牲钥匙串数据为代价, 防止通过暴力破解方式来检索记录。
这些策略已编入 HSM 固件中。 允许更改固件的管理访问卡已经被销毁。 任何尝试更改固
件或访问私钥的操作, 都会导致 HSM 集群删除私钥。 如果发生这种情况, 受集群保护的
每个钥匙串的所有者将会收到信息, 告知其托管记录已经丢失。 然后他们可以选择重新
注册。
Siri
用户只需自然地开口讲话, 即可借助 Siri 来发送信息、 安排会议、 拨打电话以及执行其他
操作。 Siri 采用语音识别、 文本语音转换以及 “客户端 -服务器” 模式, 可响应多种请求。
Siri 所支持的任务设计为确保只使用尽可能少的个人信息, 并对这些信息提供全面保护。
Siri 开启后, 设备将创建随机标识符, 用于语音识别和 Siri 服务器。 这些标识符仅用于
Siri 内部, 用于改善服务。 如果 Siri 随后被关闭, 设备将生成新的随机标识符以便在 Siri
重新打开时使用。
46iOS 安全保护指南—白皮书 | 2018 1
为了实现 Siri 功能, 设备中的某些用户信息会被发送至服务器。 这些信息包括 : 音乐资料
库 (歌曲名称、 表演者和播放列表)、 “提醒事项” 列表名称以及 “通讯录” 中定义的姓名和
关系。 设备与服务器进行的所有通信均通过 HTTPS 来完成。
启动 Siri 会话后, 系统会将用户的名字和姓氏 (来自 “通讯录”) 以及大致的地理位置发送
至服务器。 这会允许 Siri 使用姓名回应或回答那些只需要大致位置的问题, 比如天气信息。
如果需要更精确的位置, 例如确定附近电影院的位置, 服务器将要求设备提供更精确的位
置。 以上示例说明了默认情况下信息如何发送至服务器 (仅在为了处理用户请求而非常有
必要发送的情况下)。 任何情况下, 只要 10 分钟不活动, 会话信息就会被丢弃。
如果在 Apple Watch 上使用 Siri, 手表会创建自己的唯一随机标识符 (如上文所述)。
但其请求还会发送配对 iPhone Siri 标识符来为该信息提供参考, 而非再次发送用户
信息。
用户的讲话录音会被发送至 Apple 的语音识别服务器。 如果任务仅涉及听写, 识别出的
文本将被发回到设备中。 否则, Siri 会对文本进行分析, 必要时将其与设备相关描述文件的
信息相结合。 例如, 如果请求是 “给妈妈发信息”, 系统将会利用从 “通讯录” 上传的关系
和姓名。 然后已确认操作的命令将被发回至设备并执行。
许多 Siri 功能是由设备按照服务器的指令来完成的。 例如, 当用户要求 Siri 读出收到的
信息时, 服务器就会告诉设备读出其未读信息的内容。 信息的内容和发送者不会发送至服
务器。
用户讲话录音将被存储 6 个月, 以便识别系统能够利用它们更好地理解用户的讲话。
6 个月后将存储另一份不带标识符的副本, 以供 Apple 持续改进和开发 Siri, 存储时间
不超过两年。 两年之后, Apple 可能会继续使用不带标识符的小段录音、 听写文本及相关
数据, 用于持续改进 Siri 和确保 Siri 的质量。 另外, 部分引用音乐、 体育团队和队员以
及商业或兴趣点的录音会以类似的方式进行存储, 用于改善 Siri
无需动手, 用户通过语音也可以激活 Siri。 语音触发检测会在本地设备上进行。 在这种模
式下, 只有当传入的音频模式与指定触发短语的原声高度匹配时, Siri 才会激活。 检测到
语音触发后, 对应的音频 (包括后续的 Siri 命令) 会发送到 Apple 的语音识别服务器作
进一步处理, 这一过程遵循的规则与通过 Siri 执行其他用户录音相同。
连续互通
连续互通充分利用了诸如 iCloud、 蓝牙和无线局域网等技术, 让用户在另一台设备上继
续从事在前一台设备上进行的活动、 拨打和接听电话、 发送和接收文本信息以及共享蜂窝
移动互联网连接。
接力
当用户的 Mac iOS 设备彼此接近时, 用户可以使用 “接力” 功能, 自动将正在处理的
内容从一台设备传送到另一台设备。 用户可以使用 “接力” 功能来切换设备并立即继续工作。
当用户在第二台支持 “接力” 功能的设备上登录 iCloud 时, 两台设备使用 APNs 建立
频段外的低功耗蓝牙 4.0 配对。 单个信息采用与 iMessage 信息相似的加密方式。 设备
配对后, 每台设备都会生成对称的 256 AES 密钥, 并储存在设备的钥匙串中。 此密
钥可加密和认证低功耗蓝牙广播。 低功耗蓝牙广播会在 GCM 模式下使用 AES-256
采用重放保护措施, 将设备的当前活动传递给其他已配对的 iCloud 设备。 设备首次接
收到来自新密钥的广播时, 它会建立与发起设备之间的低功耗蓝牙连接并交换广播加密
密钥。 该连接使用标准的低功耗蓝牙 4.0 加密进行保护, 而且单个信息也会被加密 (与
iMessage 信息的加密方式类似)。 在某些情况下, 这些信息会使用 APNs, 而非低功耗
蓝牙。 活动负载采用与 iMessage 信息相同的方式进行保护和传输。
47iOS 安全保护指南—白皮书 | 2018 1
在原生应用和网站之间使用 “接力” 功能
“接力” 功能可允许原生 iOS 应用继续访问由应用开发者合法控制域中的网页。 它还允许
原生应用的用户活动在网页浏览器中继续进行。
为阻止原生应用要求继续访问不是由开发者控制的网站, 应用必须证明对其要继续访问的
网站域具有合法控制权。 对网站域的控制是通过共享的网站凭证所使用的机制来建立。
有关详细信息, 请参阅本白皮书 “加密和数据保护” 部分中的 “访问 Safari 浏览器已存储的
密码”。 在允许应用接受使用 “接力” 功能的用户操作前, 系统必须验证应用的域名控制。
使用 “接力” 功能传送的网页来源可以是任何采用了 “接力” API 的浏览器。 当用户浏览网
页时, 系统会使用加密的 “接力” 广播字节来广播网页的域名。 只有用户的其他设备能够
解密该广播字节 (如本部分的上文所述)。
在接收设备上, 系统会检测到安装的原生应用接受了来自已经广播域名的 “接力”, 并将该
原生应用图标显示为 “接力” 选项。 开启后, 原生应用会接收完整的 URL 以及网页标题。
浏览器中的其他信息不会被传送到原生应用。
相反, 如果 “接力” 接收设备未安装相同的原生应用, 原生应用可能会指定回退 URL
如果出现这种情况, 系统会将用户的默认浏览器显示为 “接力” 应用选项 (如果该浏览器
采用了 “接力” API)。 请求使用 “接力” 时, 系统会启动浏览器并使用来源应用提供的回退
URL。 回退 URL 并不一定要限制为由原生应用开发者控制的域名。
使用 “接力” 传送较大的数据
除了 “接力” 的基本功能外, 一些应用可能会选择使用支持发送大量数据 (通过 Apple
创的点对点无线局域网技术, 与 “隔空投送” 类似) 的 API。 例如, “邮件” 应用使用这些
API 来支持通过 “接力” 功能传送可能包含较大附件的邮件草稿。
应用使用此功能时, 两台设备间开始交换, 如同使用 “接力” 传送一样 (请参阅上述部分)。
但在使用低功耗蓝牙收到初始负载后, 接收设备会通过无线局域网发起新的连接。 此连接
会使用 TLS 加密 (交换其 iCloud 身份证书)。 身份证书中的身份标识会针对每位用户的
身份进行验证。 其他负载数据会通过此加密的连接进行发送, 直到传输完成。
通用剪贴板
“通用剪贴板” 利用 “接力” 在设备间安全传输剪贴板的内容, 使用户可以在一台设备上拷
贝, 然后粘贴到另一台设备上。 内容与其他 “接力” 数据采用同样的方式进行保护, 并默认
使用 “通用剪贴板” 共享, 除非应用开发者选择不允许共享。
不论用户是否已将剪贴板粘贴到应用中, 应用都可以访问剪贴板数据。 而有了 “通用剪贴
板”, 此类数据访问会扩展到在用户其他设备上运行的应用 (由其 iCloud 登录确定)。
自动解锁
支持 “自动解锁” 的 Mac 电脑使用低功耗蓝牙和点对点无线局域网安全地允许用户的
Apple Watch 解锁 Mac。 每一台支持的 Mac 和通过 iCloud 帐户关联的 Apple Watch
必须使用双重认证 (TFA)
启用 Apple Watch 解锁 Mac 时, 将建立使用自动解锁身份的安全链接。 Mac 创建一个
随机的一次性解锁密钥并通过该链接传输到 Apple Watch。 密钥储存在 Apple Watch 上,
且只有当 Apple Watch 解锁时才能被访问 (请参阅 “数据保护类” 部分)。 主熵或新密钥
均不是用户的密码。
在解锁操作中, Mac 使用低功耗蓝牙来创建与 Apple Watch 的连接。 然后, 两个设备
之间便会使用首次启用时所用的共享密钥建立安全链接。 接着, Mac Apple Watch
使用点对点无线局域网和派生于安全链接的安全密钥来确定两个设备之间的距离。 如果
设备在范围内, 则会使用安全链接来传输预共享的密钥, 从而解锁 Mac。 成功解锁后,
Mac 使用新的一次性解锁密钥代替当前的解锁密钥, 并通过上述链接将新的解锁密钥传
输到 Apple Watch
48iOS 安全保护指南—白皮书 | 2018 1
iPhone 蜂窝移动网络通话中继
当用户的 MaciPad iPod touch 与其 iPhone 接入相同的无线局域网络时, 便可以
使用 iPhone 的蜂窝移动网络连接来拨打和接听电话。 这样的配置要求使用相同的
Apple ID 帐户, 同时登录 iCloud FaceTime 通话。
来电时, 会通过 Apple 推送通知服务来通知所有已配置的设备, 每个通知都会使用与
iMessage 信息相同的端到端加密技术。 连接到相同网络的设备上会显示来电通知用户
界面。 接通电话时, 会使用安全的点对点连接技术在两台设备间无缝传输用户 iPhone
音频。
当在一台设备上接通电话时, 该设备通过低功耗蓝牙 4.0 进行短暂广播, 使附近的
iCloud 配对设备停止响铃。 广播的字节使用与 “接力” 广播相同的方法来加密。
呼出的通话也会通过 Apple 推送通知服务中继到 iPhone, 并通过安全的点对点链接在
设备间采用类似的方式传输音频。
用户可以在 FaceTime 通话设置中关闭 “iPhone 蜂窝移动网络通话” 来停用设备的电话
中继功能。
iPhone 短信转发
“短信转发” 会自动将 iPhone 上接收的短信发送到用户注册的 iPadiPod touch
Mac 上。 每台设备均须使用相同的 Apple ID 帐户登录 iMessage 信息服务。 “短信转
发” 启用后, 如果启用了双重认证, 用户信任圈内的设备会自动注册。 否则, 会要求在每
台设备上输入由 iPhone 随机生成的 6 位数字代码来验证注册。
设备链接后, iPhone 会使用本白皮书 “iMessage 信息” 部分中所描述的方法, 将发来的
短信进行加密并转发给每台设备。 使用相同的方法将回复发送回 iPhoneiPhone 随后
使用运营商的短信传输机制将回复以短信形式发送。 用户可以在 “信息” 设置中打开或关
闭 “短信转发”。
智能热点
支持智能热点的 iOS 设备使用低功耗蓝牙来发现设备并与之通信, 前提是设备需要使
用相同的 iCloud 帐户进行登录。 兼容智能热点且运行 OS X Yosemite 或更高版本的
Mac 电脑, 使用相同的技术来发现支持智能热点的 iOS 设备, 并与之通信。
用户在进入 iOS 设备上的无线局域网设置时, 设备会发出低功耗蓝牙信号, 该信号包含
可被所有登录到相同 iCloud 帐户设备接受的标识符。 该标识符由绑定到 iCloud 帐户的
DSID (目的地发讯识别器) 生成, 并会定期更新。 当其他登录到相同 iCloud 帐户的设备
彼此接近且支持个人热点时, 它们会检测到信号并作出响应, 以表示它们处于可通信状态。
用户选择支持个人热点的设备时, 会向该设备发送打开 “个人热点” 的请求。 而该请
求会通过加密的链接 (使用标准低功耗蓝牙加密方法) 进行发送 ; 请求的加密方式与
iMessage 信息的加密方式类似。 之后, 设备会使用包含个人热点连接信息的相同信息独
有加密方式, 通过同一低功耗蓝牙链接作出响应。
Safari 建议、 搜索中的 Siri 建议、 查询、 #图像、 “新闻” 应用
以及不支持 “新闻” 应用的国家或地区的 “新闻” 小组件
Safari 建议、 搜索中的 Siri 建议、 查询、 #图像、 “新闻” 应用以及不支持 “新闻” 应用
的国家或地区的 “新闻” 小组件显示用户设备之外的用户建议, 建议来源于维基百科、
iTunes Store、 本地新闻、 “地图” 结果以及 App Store, 甚至还会在用户开始键入前提
供建议。
当用户开始在 Safari 浏览器地址栏中键入, 在搜索中打开或使用 Siri 建议, 使用 “查询”,
打开 # 图像, 在 “新闻” 应用中使用搜索, 或在不支持 “新闻” 应用的国家或地区使用
“新闻” 小组件时, 以下关联信息将会使用 HTTPS 以加密的方式发送给 Apple, 为用户
提供相关结果 :
49iOS 安全保护指南—白皮书 | 2018 1
15 分钟轮换一次以保护隐私的标识符
用户的搜索查询
基于上下文和本地缓存历史搜索记录而补齐的最具可能性的查询
设备的大概位置 (如果针对 “基于位置的建议” 打开了 “定位服务”)。 位置的 “模糊” 程
度基于设备所处位置的预计人口密度 ; 例如相对于用户通常比较集中的市中心而言,
用户在地理上更为分散的乡村地区的模糊程度就要高一些。 用户可以在 “设置” 中停用
将所有位置信息发送给 Apple, 方法是为 “基于位置的建议” 关闭 “定位服务”。 如果
“定位服务” 已经关闭, Apple 可能会使用设备的 IP 地址来推断大概的位置。
设备类型以及是否在搜索中的 Siri 建议、 Safari 浏览器、 “查询”、 “新闻” 应用或 “信息”
中进行搜索
连接类型
设备上最近使用的三款应用的信息 (用来提供附加的搜索关联信息)。 只会包括以下应
用:位
Apple 所维护的热门应用的允许列表中, 且在过去 3 小时内被用户使用过。
设备上的热门应用程序列表
区域语言、 区域设置和输入偏好设置
如果用户的设备可以访问音乐或视频订阅服务, 则诸如订阅服务的名称和订阅类型等
信息可能会发送给 Apple 用户的帐户名称、 号码和密码不会发送给 Apple
兴趣话题的摘要、 聚合表示
当用户选择了一条结果或没有选择任何结果就退出应用时, 某些信息会发送给 Apple
帮助改善将来结果的质量。 此信息仅绑定到同一个 15 分钟会话标识符, 而不会绑定到特
定的用户。 反馈会包括前述的部分上下文信息以及如下的交互信息 :
交互与搜索网络请求之间的时间
建议的排列和显示顺序
选择的结果和操作的 ID (如果是非本地结果), 或选择的结果的类别 (如果是本地结果)
表示用户是否选择了结果的旗标
Apple 会将包含查询、 关联信息和反馈的 “建议” 日志保留 18 个月。 日志的子集, 例如
查询、 区域设置、 域、 大致位置、 聚合指标, 最多会保留五年。
在某些情况下, “建议” 可能会将常用字词和短语的查询请求转发给合格的合作方, 用于
接收和显示合作方提供的搜索结果。 Apple 会对查询采取代理操作, 使合作方也不会收到
用户的 IP 地址或搜索反馈。 与合作方的通信均通过 HTTPS 进行加密。 对于频繁发生的
查询, Apple 会将城市级别的位置、 设备类型和客户端语言作为搜索关联信息提供给合作
方, 以提高搜索性能。 在 iOS 11 中, 搜索中的 Siri 建议查询不会发送给合作方。
为在地理位置上和跨不同类型网络间了解和提高 “建议” 性能, 将不带会话标识符记录以
下信息的日志 :
部分 IP 地址 (不带 IPv4 地址的最后八位字节, 不带 IPv6 地址的最后 80 位)
大概位置
大概查询时间
延迟 /传输率
响应大小
连接类型
区域设置
设备类型和提出请求的应用
50iOS 安全保护指南—白皮书 | 2018 1
iOS 支持一系列灵活的安全性策略和配置, 易于强制执行和管理。 这使得组织能保护企业
信息并确保员工符合企业要求, 即便员工使用的是自带设备也无妨, 例如, 在参与 “自带
设备办公” (BYOD) 计划的过程中。
公司可以使用密码保护、 配置描述文件、 远程擦除和第三方 MDM 解决方案等资源来管理
设备群, 并确保公司数据的安全, 甚至员工在自己的个人 iOS 设备上访问这些数据时也
能确保安全。
密码保护
默认情况下, 用户的密码可以定义为一个数字 PIN 码。 在配备触控 ID 或面容 ID 的设备
上, 密码的最短长度为 6 位数。 在其他设备上, 长度最短为 4 位数。 用户可以指定更长
的字母数字密码, 方法是在 “设置” >“密码” 的 “密码选项” 中选择 “自定字母数字密码”。
建议使用较长、 较复杂的密码, 因为这样的密码很难被猜中或遭到攻击。
管理员可利用 MDM Exchange ActiveSync 或要求用户手动安装配置描述文件,
强制实施复杂密码的要求和其他策略。 以下密码策略可供使用 :
允许简单值
要求字母数字值
最短的密码长度
最少的复杂字符数
密码的最长有效期
密码历史记录
自动锁定超时
设备锁定宽限期
最多可允许的尝试失败次数
允许触控 ID 或面容 ID
有关每种策略的管理员详细信息, 请访问 :
help.apple.com/deployment/ios/#/apd4D6A472A-A494-4DFD-B559-
D59E63167E43
有关每种策略的开发者详细信息, 请访问 :
developer.apple.com/library/ios/featuredarticles/
iPhoneConfigurationProfileRef
iOS 配对模型
iOS 使用配对模型从主机电脑来控制对设备的访问。 配对会在设备及其连接的主机之间
通过公钥交换来建立信任关系。 iOS 使用这种信任关系来启用与连接的主机之间的附加
功能, 例如数据同步。
iOS 9 中, 要求配对的服务只有在用户解锁设备后才能启动。
iOS 10 中, 部分服务 (包括照片同步) 还要求解锁设备才能开始。
iOS 11 开始, 如果设备最近未解锁, 则服务不会开始,
设备控制
51iOS 安全保护指南—白皮书 | 2018 1
配对过程要求用户解锁设备并接受来自主机的配对请求, 还会要求用户输入密码。 用户
输入密码后, 主机和设备会交换和存储 2048 RSA 公钥。 然后主机获得 256 位密钥,
可解锁储存在设备上的托管密钥包 (请参阅本白皮书 “密钥包” 部分中的 “托管密钥包”)。
设备在将受保护的数据发送给主机或启动服务 (例如 iTunes 同步、 文件传输或 Xcode
开发等) 前, 会要求使用交换的密钥来启动加密的 SSL 会话。 设备要求主机通过无线局
域网进行连接, 以将此加密的会话用于所有通信, 因此之前必须通过 USB 进行配对。
配对还会启用多项诊断功能。 在 iOS 9 中, 如果某个配对记录超过六个月未被使用,
该记录将过期。 而在 iOS 11 中, 此时间段缩短为 30 天。
有关更多信息, 请访问 : support.apple.com/zh-cn/HT203034
某些服务限制为通过 USB 工作, 例如 com.apple.pcapd。 此外, com.apple.file_relay
服务要求安装 Apple 签名的配置描述文件。
iOS 11 中, Apple TV 可以使用 “安全远程密码” 协议以无线方式建立配对关系。
用户可以使用 “还原网络设置” 或者 “还原位置与隐私” 选项清除受信任的主机列表。
有关更多信息, 请访问 : support.apple.com/zh-cn/HT202778
配置执行
配置描述文件是一个 XML 文件, 管理员可通过它向 iOS 设备分发配置信息。 用户无法
更改由已安装的配置描述文件定义的设置。 如果用户删除配置描述文件, 由该描述文件定
义的所有设置也将随之删除。 这样, 管理员可以通过将策略与无线局域网和数据访问权限
结合在一起来实施设置。 例如, 提供电子邮件配置的配置描述文件还可以指定设备密码策
略。 除非密码符合管理员的要求, 否则用户将无法访问邮件。
iOS 配置描述文件包含多项可以指定的设置 :
密码策略
针对设备功能的访问限制 (例如停用相机)
无线局域网设置
VPN 设置
邮件服务器设置
Exchange 设置
LDAP 目录服务设置
CalDAV 日历服务设置
Web Clip
凭证和密钥
高级蜂窝移动网络设置
若要查看管理员的当前列表, 请访问 :
help.apple.com/deployment/ios/#/cad5370d089
若要查看开发者的当前列表, 请访问 :
developer.apple.com/library/ios/featuredarticles/
iPhoneConfigurationProfileRef
可以对配置描述文件进行签名和加密来验证其来源、 确保其完整性并保护其内容。 配置描
述文件采用支持 3DES AES-128 CMS (RFC 3852) 进行加密。
配置描述文件还可以锁定到设备, 以便彻底禁止删除它们, 或只允许使用密码将其删除。
由于许多企业用户使用的是自己的 iOS 设备, 因此将设备绑定到 MDM 解决方案的配置
描述文件可以被删除, 但这样做也会移除所有被管理的配置信息、 数据和应用。
52iOS 安全保护指南—白皮书 | 2018 1
用户可以使用 Apple Configurator 2 直接在其设备上安装配置描述文件, 或者通过
Safari 浏览器下载配置描述文件、 通过邮件信息发送或者使用 MDM 解决方案以无线方
式发送。 用户在 Device Enrollment Program (设备注册计划) 或 Apple 校园教务管
理中设置设备时, 设备会下载并安装 MDM 注册的描述文件。
移动设备管理 (MDM)
iOS 支持 MDM, 可让企业在其组织内部安全地配置和管理规模化的 iPhoneiPad
Apple TV Mac 部署方案。 MDM 功能以现有的 iOS 技术, 如配置描述文件、 无线注
册和 Apple 推送通知服务为基础。 例如, APNs 用于唤醒设备, 使设备可以通过安全的
连接与其 MDM 解决方案直接通信。 任何机密或专有信息都不会通过 APNs 来传输。
利用 MDMIT 部门可在企业环境中注册 iOS 设备、 无线配置和更新设置、 监控公司政
策的遵循情况, 甚至可以远程擦除或锁定被管理的设备。
有关 MDM 的更多信息, 请访问 :
www.apple.com/cn/business/resources/#management
共用的 iPad
“共用的 iPad” 是用在 iPad 教育部署中的一种多用户模式。 它使学生能够在不共享文稿
和数据的情况下共用一台 iPad。 每位学生都会获得自己的个人目录, 该目录以 APFS
卷的格式创建并受到用户凭证的保护。 “共用的 iPad” 要求使用由学校分发和拥有的 “管理
Apple ID”。 “共用的 iPad” 让学生可以登录任何由组织拥有, 且配置为多名学生使用的
设备。
学生数据被划分到独立的个人目录中, 每个目录都位于自己的数据保护域中且都受到
UNIX 权限和沙盒保护。 学生登录时, Apple 的身份识别服务器使用 SRP 协议, 对 “管
理式 Apple ID” 进行认证。 如果认证成功, 则会授予一个特定于该设备的短时访问令牌。
如果学生此前已经使用过该设备, 则他们已有一个使用相同凭证解锁的本地用户帐户。
如果学生此前没有使用过该设备, 则会预置新的 UNIX 用户 ID、 包含用户个人目录的
APFS 宗卷和逻辑钥匙串。 如果设备未接入互联网 (例如, 因为学生在进行野外实习),
在有限的天数内, 可以认证本地帐户。 在那种情况下, 只有之前拥有现有本地帐户的用户
才能登录。 一旦时限过期, 即使本地帐户已经存在, 学生仍需要在线进行认证。
解锁或创建学生的本地帐户后, 若以远程方式认证, 那么由 Apple 服务器分发的短时
令牌便会转换为允许登录 iCloud iCloud 令牌。 接着就会恢复学生的设置, 并从
iCloud 同步他们的文稿和数据。
当学生会话处于活跃状态且设备保持在线时, 文稿和数据将在创建或修改时储存到 iCloud
另外, 后台同步机制确保在学生退出登录后将更改推送到 iCloud。 一旦该用户的后台同步
完成, 就会卸载用户的 APFS 宗卷且如果不提供用户的凭证, 便无法再次装载。
“共用的 iPad”从
iOS 10.3 之前的版本升级到 iOS 10.3 或更高版本后, 会进行一次性
的文件系统转换, 将 HFS+ 数据分区转换为 APFS 宗卷。 如果此时系统中存在任何用户
个人目录, 这些目录仍会保留在主数据宗卷上, 而不会被转换为单个 APFS 宗卷。 其他学
生登录时, 他们的个人目录也会置于主数据宗卷上。 如前所述, 除非删除主数据宗卷上的
所有用户帐户, 否则不会创建含各自 APFS 宗卷的新用户帐户。 因此, 为了确保用户享有
APFS 提供的额外保护和配额, 应该通过抹掉并重新安装的方法将 iPad 升级到 10.3
更高版本, 或者通过 “删除用户” 的 MDM 命令来删除设备上的所有用户帐户。
53iOS 安全保护指南—白皮书 | 2018 1
Apple 校园教务管理
Apple 校园教务管理” 是一项面向教育机构的服务, 使其可以购买内容、 MDM 解决
方案中配置自动设备注册、 为学生和职员创建帐户以及设置 iTunes U 课程。 “Apple
园教务管理” 可从网页访问, 专为技术管理人员、 IT 管理员、 职员和教师而设。
有关 “Apple 校园教务管理” 的更多信息, 请访问 help.apple.com/schoolmanager
设备注册
Device Enrollment Program DEP, 设备注册计划), 作为 Apple 校园教务管理和
Apple 部署计划的一部分, 可让组织快速便捷地部署直接从 Apple 或参与的 Apple
权经销商和运营商购买的 iOS 设备。 运行 iOS 11 或更高版本的 iOS 设备在购买之后,
也可以使用 Apple Configurator 2 添加到 DEP
在用户获得设备前, 组织无需实际操作或者准备设备, 即可在 MDM 中自动注册设备。
注册计划后, 管理员登录到该计划网站, 并将该计划链接到 MDM 解决方案。 然后他们购
买的设备就可以通过 MDM 分配给用户了。 分配用户后, 所有 MDM 指定的配置、 访问
限制或控制都会自动安装。 设备与 Apple 服务器之间的所有通信在通过 HTTPS (SSL)
传输时均经过加密。
通过在 “设置助理” 中移除特定的步骤, 可进一步简化用户的设置过程, 方便用户快速使
用。 管理员还可以控制用户能否将 MDM 描述文件从设备移除, 并确保设备访问限制从
一开始就准备到位。 设备开箱并激活后, 会在组织的 MDM 解决方案中注册, 且所有管理
设置、 应用和图书均会安装。
有关与企业相关的更多信息, 请访问 : help.apple.com/deployment/business
有关与教育机构相关的更多信息, 请访问 : help.apple.com/schoolmanager
注:设备注册并非在所有国家或地区都可用。
Apple Configurator 2
除了 MDMmacOS Apple Configurator 2 也可轻松设置和预配置 iOS 设备和
Apple TV, 再将设备分发给用户。 通过 Apple Configurator 2, 可以快速将应用、
数据、 访问限制和设置预置到设备中。
Apple Configurator 2 可让您使用 “Apple 校园教务管理” (面向教育) 或 Device
Enrollment Program (设备注册计划, 面向企业) 在 MDM 解决方案中注册设备,
用户无需使用 “设置助理”。 Apple Configurator 2 还可用于将所购买的 iOS 设备和
Apple TV 添加到 “Apple 校园教务管理” 或 Device Enrollment Program (设备注册
计划)。
有关 Apple Configurator 2 的更多信息, 请访问 :
help.apple.com/configurator/mac
监督
在设备设置阶段, 组织可以将设备配置为被监督。 监督意味着设备由机构拥有, 从而对
设备的配置和访问限制提供额外控制。 设备可以在设置阶段通过 “Apple 校园教务管理”、
Device Enrollment Program (设备注册计划) 或 Apple Configurator 2 配置为被
监督。 监督设备要求抹掉设备并重新安装操作系统。
有关使用 MDM Apple Configurator 2 来配置和管理设备的更多信息, 请访问 :
help.apple.com/deployment/ios
54iOS 安全保护指南—白皮书 | 2018 1
访问限制
访问限制可由管理员启用, 在部分情况下也可停用。 它的作用是阻止用户访问设备的特定
应用、 服务或功能。 访问限制被发送到访问限制有效负载中的设备, 其中访问限制有效负
载附加在配置描述文件上。 访问限制可应用到 iOStvOS macOS 设备。 被管理的
iPhone 上的某些访问限制可以镜像到配对的 Apple Watch 上。
若要查看 IT 管理人员的当前列表, 请访问 :
help.apple.com/deployment/ios/#/apdbd6309354
远程擦除
管理员或用户可以远程擦除 iOS 设备。 通过安全地丢弃可擦除存储器中的块存储加密
密钥, 使所有数据均不可读, 实现即时远程擦除。 用户可以通过 MDMExchange
iCloud 发起远程擦除命令。
通过 MDM iCloud 触发远程擦除命令后, 设备会发送确认并执行擦除操作。 如果通过
Exchange 进行远程擦除, 在执行擦除前, 设备会签入 Exchange 服务器。
用户还可以使用 “设置” 应用来擦除自己设备上的数据。 如上所述, 可以将设备设置为在
连续多次输入密码失败后自动擦除。
丢失模式
如果设备丢失或被盗, MDM 管理员可在运行 iOS 9.3 或更高版本的被监督设备上远程
启用 “丢失模式”。 启用 “丢失模式” 后, 当前用户将退出登录, 且设备不能被解锁。 屏幕上
显示一则可由管理员自定的信息, 例如显示一个电话号码 (以便在他人发现设备时拨打)。
当设备置于 “丢失模式” 时, 管理员可以请求设备发送其当前位置, 也可以选择播放声音。
当管理员关闭 “丢失模式” (退出该模式的唯一方式) 时, 用户将会收到此操作通知, 通知
方式是在锁定屏幕上显示信息或在主屏幕上显示提醒。
激活锁
如果启用了 “查找我的 iPhone”, 必须输入所有者的 Apple ID 凭证或设备之前的密码,
才能重新激活设备。
对于组织拥有的设备, 最好对设备实施监督, 以便组织可以管理激活锁, 而不是依赖个人
用户输入其 Apple ID 凭证来重新激活设备。
在被监督的设备上, 兼容的 MDM 解决方案可在激活锁启用后储存忽略码, 或者稍后在
需要抹掉设备并分配给新用户时, 使用该代码来自动清除激活锁。
默认情况下, 即使用户打开了 “查找我的 iPhone”, 被监督的设备也绝不会启用激活锁。
MDM 解决方案仍有可能取回忽略码并允许启用设备上的激活锁。 如果 MDM 解决方
案在启用激活锁时, “查找我的 iPhone” 已打开, 激活锁会在此时启用。 如果 MDM 服务
器启用激活锁时, “查找我的 iPhone” 已经关闭, 那么激活锁会在下次用户激活 “查找我的
iPhone” 时启用。
对于在教育中使用的设备, 如果通过 “Apple 校园教务管理” 创建了 “管理式 Apple ID”,
则激活锁可以绑定到管理员的 Apple ID, 而非用户的 Apple ID, 或者可以使用设备的
忽略码来停用。
55iOS 安全保护指南—白皮书 | 2018 1
Apple 十分重视客户隐私, 在 iOS 中内建了一系列控制和选项, 允许 iOS 用户决定应用
如何使用其信息, 何时使用其信息以及使用何种信息。
定位服务
定位服务使用 GPS、 蓝牙、 众包的无线局域网热点以及信号发射塔位置来确定用户的大
概位置。 使用 “设置” 中的一个开关就可以关闭 “定位服务”, 用户也可以为每个使用该服
务的应用批准该项服务。 应用可能只会在使用时才请求接收位置数据, 也可能会随时请求
接收位置数据。 用户可以选择不允许使用定位服务, 而且可以在 “设置” 中随时更改选择。
用户可以在 “设置” 中, 将访问权限设定为永不允许、 使用时允许或者始终允许, 具体取决
于应用所请求的定位用途。 而且, 如果被允许随时使用位置信息的应用在后台模式中运行
时使用此权限, 系统会提醒用户地址服务已获批准, 并且用户可以更改应用的访问权限。
此外, 用户可以对位置信息的系统服务用途进行细微控制。 这可让他们关闭以下信息中包
含的位置信息 : Apple 用于改进 iOS 的分析服务所收集的信息、 基于位置的 Siri 信息、
用于 “Siri 建议” 搜索的基于位置的上下文、 当地交通状况和过去常去重要地点信息。
访问个人数据
iOS 可帮助阻止应用在未获得许可的情况下访问用户的个人信息。 此外, 用户可以在
“设置” 中查看已经批准了哪些应用访问特定信息, 也可以授予或撤销未来的访问权限。
这包括对以下内容的访问权限 :
通讯录 麦克风
日历 相机
提醒事项 • HomeKit
照片 健康
运动与健身 语音识别
定位服务 蓝牙共享
Apple Music 您的媒体资料库
您的音乐和视频活动
社交媒体帐户
如果用户登录 iCloud, 则会默认授予应用访问 iCloud 云盘的权限。 用户可以在 “设置” 的
iCloud 选项中控制每个应用的访问权限。 此外, iOS 提供的访问限制可阻止数据在 MDM
解决方案所安装和用户所安装的应用和帐户之间移动。
隐私政策
若要阅读 Apple 的隐私政策, 请访问 : www.apple.com/cn/legal/privacy
隐私控制
56iOS 安全保护指南—白皮书 | 2018 1
Apple 安全性奖金
Apple 会奖励向 Apple 分享重大问题的研究人员。 为有资格获得 “Apple 安全性奖金”,
研究人员需要提供一份清晰的报告和有效的概念验证。 漏洞必须对最新发布的 iOS 版本
产生影响, 在涉及到硬件时, 还需要对最新的硬件产生影响。 确切的奖金金额将在 Apple
审查后确定。 审查标准包括新颖性、 暴露的可能性以及需要的用户交互程度。
问题妥当分享后, Apple 会将已确认的问题列为优先事项, 尽快解决。 Apple 会在适当
时候进行公示, 除非对方另有要求。
类别 最高支付金额 (USD)
安全启动固件组件 $200,000
受安全隔区保护的保密材料的提取 $100,000
具有内核权限的任意代码的执行 $50,000
Apple 服务器上的 iCloud 帐户数据未经授权的访问 $50,000
沙盒化进程对该沙盒外用户数据的访问 $25,000
57iOS 安全保护指南—白皮书 | 2018 1
结束语
安全性承诺
Apple 致力于使用领先的隐私和安全性技术来帮助客户保护其个人信息, 以及采用全面
的方法来保护商业环境中企业的数据。
安全性植根于 iOS 中。 从平台到网络再到应用, 公司需要的一切在 iOS 平台上应有尽有。
这些元素一起构成了 iOS 业界领先的安全性, 且对用户体验无任何不良影响。
Apple 在整个 iOS iOS 应用生态系统中使用统一的集成安全基础架构。 基于硬件的
存储加密可在设备丢失时提供远程擦除功能, 并让用户在将设备出售或转让给其他用户时
能够彻底清除设备中的所有公司和个人信息。 此外, 诊断信息也以匿名方式收集。
Apple 设计的 iOS 应用将增强安全性放在重要位置。 例如, iMessage 信息和
FaceTime 通话提供客户端到客户端的加密。 对于
第三方应用, 必需的代码签名、 沙盒化以及授权相结合, 为用户提供了业界领先的保护,
以防受到病毒、 恶意软件以及其他安全漏洞的侵害。 App Store 提交流程要求每个 iOS
应用在经过严格审核后才允许出现在 App Store 中, 这一流程进一步保护用户免遭上述
风险的侵害。
为充分利用 iOS 内置的大量安全性功能, 我们鼓励企业审视自身的 IT 和安全策略, 以确
保充分利用该平台提供的多重安全技术。
Apple 拥有一支专门的安全团队, 负责为所有 Apple 产品提供支持。 该团队为开发中和
已发布的产品提供安全审核和测试。 Apple 团队还提供安全工具和培训, 并积极监控对
新增安全问题和威胁的报告。 Apple 是事件响应与安全组织论坛 (FIRST) 的成员。
要进一步了解如何向 Apple 报告问题以及如何订阅安全通知, 请访问 :
www.apple.com/cn/support/security
58iOS 安全保护指南—白皮书 | 2018 1
地址空间布局
随机化 (ASLR)
iOS 所采用的一项技术, 旨在让恶意利用软件错误的成功机率极大地降低。 通过确保内存地址
和偏移量不可预测, 使攻击代码无法对这些值进行硬编码。 在 iOS 5 或更高版本中, 所有系统
应用和资源库的位置都是随机安排的, 所有第三方应用均编译为与位置无关的可执行文件。
Apple 推送通知服务 (APNs) 一项由 Apple 提供的全球服务, 用于向 iOS 设备推送通知。
Boot ROM 设备的处理器在首次启动时所执行的第一个代码。 作为处理器不可分割的一部分, Apple
攻击者均无法对其进行更改。
数据保护 iOS 的文件和钥匙串保护机制。 它也可以指应用用来保护文件和钥匙串项的 API
设备固件升级 (DFU) 设备的 Boot ROM 代码在等待通过 USB 进行恢复时所处的模式。 在 DFU 模式下, 设备为
黑屏, 但在连接到运行 iTunes 的电脑时, 会出现以下提示 :“iTunes 检测到一个处于恢复模
式的 iPad。 您必须先用备份来恢复该 iPad 然后才能将它与 iTunes 配合使用。”
ECID 每台 iOS 设备上的处理器所独有的一个 64 位标识符。 当在一台设备上接通电话时, 该设备
通过低功耗蓝牙 4.0 进行短暂广播, 使附近的 iCloud 配对设备停止响铃。 广播的字节使用与
“接力” 广播相同的方法来加密。 作为个性化流程的一部分, 此标识符不被视为机密。
可擦除存储器 NAND 存储器中一个用于储存加密密钥的专用区域, 可被直接寻址和安全擦除。 尽管当攻击者
实际占有设备时, 可擦除存储器无法提供保护, 但其中存储的密钥可用作密钥层次结构的一部分,
用于实现快速擦除和前向安全性。
文件系统密钥 用于加密每个文件的元数据的密钥, 包括其类密钥。 存储在可擦除存储器中, 用于实现快速擦
除, 并非用于保密目的。
设备组 ID (GID) 类似于 UID, 但同一类中的每个处理器的 GID 都相同。
硬件安全模块 (HSM) 专门的防篡改电脑, 保障数字密钥的安全并对其进行管理。
iBoot LLB 加载的代码, 并随后加载 XNU, 作为安全启动链的一部分。
身份识别服务 (IDS) Apple iMessage 信息公钥、 APNs 地址和电话号码及电子邮件地址目录, 用于查找密钥
和设备地址。
集成电路 (IC) 也被称为微芯片。
联合测试行动小组 (JTAG) 程序员和电路开发者所采用的标准硬件调试工具。
密钥包 一种用于储存一组类密钥的数据结构。 每种类型 (用户、 设备、 系统、 备份、 托管或 iCloud
云备份) 的格式都相同 :
包含以下内容的标头 :
版本 (在 iOS 5 中设置为 3
类型 (系统、 备份、 托管或 iCloud 云备份)
密钥包 UUID
HMAC (若密钥包已签名)
用于封装类密钥的方法 : 与 UID PBKDF2 以及盐密钥和迭代次数配合使用
类密钥列表 :
密钥 UUID
类 (所属的文件或钥匙串数据保护类)
封装类型 (仅 UID 派生密钥 ; UID 派生密钥
和密码派生密钥)
封装的类密钥
非对称类的公钥
术语表
59iOS 安全保护指南—白皮书 | 2018 1
钥匙串 一种基础架构和一组 APIiOS 和第三方应用用来储存和检索密码、 密钥及其他敏感凭证。
密钥封装 使用一个密钥来加密另一个密钥。 iOS 按照 RFC 3394 使用 NIST AES 密钥封装。
底层引导加载程序 (LLB) Boot ROM 调用的代码, 之后会加载 iBoot, 成为安全启动链的一环。
文件独有密钥 用于加密文件系统中文件的 AES 256 位密钥。 文件独有密钥使用类密钥封装, 储存在文件的
元数据中。
预置描述文件 Apple 签名的 plist, 其中列明允许在 iOS 设备上安装和测试应用的实体和授权。 开发预置描
述文件列出开发人员选择用于随时分配的设备, 分配预置描述文件中包含企业开发的应用的应
ID
纹路走向角度映射 一种提取自指纹的一部分、 描述纹路走向和宽度的数学呈现方式。
智能卡 内置的集成电路, 用于提供安全识别、 认证和数据储存。
芯片系统 (SoC) 一种将多种组件整合到单个芯片上的集成电路 (IC)。 安全隔区是 Apple A7 中央处理器或
更新款中央处理器中的 SoC
Tangling 用户密码转换为密钥并使用设备的 UID 加强的过程。 此举可确保暴力攻击只能在特定设备上执
行, 因此攻击的频度受限且可避免多部设备同时遭到攻击。 Tangling 算法是 PBKDF2。 这种
算法为每次迭代使用加入设备 UID AES 密钥作为伪随机函数 (PRF)
统一资源标识符 (URI) 可识别基于网络的资源的字符串。
唯一 ID (UID) 一个 256 位的 AES 密钥, 在设备制造过程中刻录在每个处理器上。 这种密钥无法由固件或软
件读取, 只能由处理器的硬件 AES 引擎使用。 若要获取实际密钥, 攻击者必须对处理器的芯片
发起极为复杂且代价高昂的物理攻击。 UID 与设备上的任何其他标识符均无关, 包括但不限于
UDID
XNU iOS macOS 操作系统中央的内核。 默认为受信任状态, 并强制执行代码签名、 沙盒化、
授权核对和 ASLR 等安全措施。
60iOS 安全保护指南—白皮书 | 2018 1
文稿修订记录
日期 摘要
2018 1 月 针对 iOS 11.2 的更新
Apple Pay Cash
针对 iOS 11.1 的更新
安全性认证和计划
触控 ID/ 面容 ID
共享备忘录
CloudKit 端到端加密
TLS
Apple Pay、 使用 Apple Pay 在网上支付
Siri 建议
共用的 iPad
有关 iOS 11 安全性内容的更多信息, 请访问 :
support.apple.com/zh-cn/HT208112
2017 7 月 针对 iOS 10.3 的更新
系统隔区
文件数据保护
密钥包
安全性认证和计划
SiriKit
HealthKit
网络安全性
蓝牙
共用的 iPad
丢失模式
激活锁
隐私控制
有关 iOS 10.3 安全性内容的更多信息, 请访问 :
support.apple.com/zh-cn/HT207617
2017 3 月 针对 iOS 10 的更新
系统安全性
数据保护类
安全性认证和计划
HomeKitReplayKitSiriKit
Apple Watch
无线局域网、 VPN
单点登录
Apple Pay、 使用 Apple Pay 在网上支付
信用卡、 借记卡和储值卡预置
Safari 建议
有关 iOS 10 安全性内容的更多信息, 请访问 :
support.apple.com/zh-cn/HT207143
61iOS 安全保护指南—白皮书 | 2018 1
日期 摘要
2016 5 月 针对 iOS 9.3 的更新
管理式 Apple ID
Apple ID 双重认证
密钥包
安全性认证
丢失模式、 激活锁
安全备忘录
Apple 校园教务管理、 共用的 iPad
有关 iOS 9.3 安全性内容的更多信息, 请访问 :
support.apple.com/zh-cn/HT206166
2015 9 月 针对 iOS 9 的更新
Apple Watch 激活锁
密码策略
触控 ID API 支持
A8 上数据保护使用 AES-XTS
适用于无人值守式软件更新的密钥包
认证更新
企业级应用信任模型
对于 Safari 浏览器书签的数据保护
应用传输安全性
VPN 规格
针对 HomeKit iCloud 远程访问
Apple Pay 回馈卡、 Apple Pay 发卡机构的应用
“聚焦” 设备上索引
iOS 配对模型
Apple Configurator 2
访问限制
有关 iOS 9 安全性内容的更多信息, 请访问 :
support.apple.com/zh-cn/HT205212
62
© 2018 Apple Inc. 保留一切权利。
Apple、 苹果、 Apple 标志、 AirDropAirPlayApple MusicApple PayApple TVApple WatchBonjourCarPlay
Face IDFaceTimeHandoffiMessageiPadiPad AiriPhoneiPod touchiTunesiTunes UKeychain
LightningMacmacOSOS XSafariSiriSpotlightTouch IDwatchOS Xcode Apple Inc. 在美国及
其他国家和地区注册的商标。
HealthKitHomeKitSiriKit tvOS Apple Inc. 的商标。
AppleCareApp StoreCloudKitiBooks StoreiCloudiCloud DriveiCloud Keychain iTunes Store
Apple Inc. 在美国及其他国家和地区注册的服务标记。
IOS Cisco 在美国及其他国家和地区的商标或注册商标, 经许可后使用。
Bluetooth® 文字标记和标志是 Bluetooth SIG, Inc. 拥有的注册商标。 Apple 经许可后使用此类标记。
Java Oracle /或其附属机构的注册商标。
这里提及的其他公司和产品名称可能是其相应公司的商标。 产品规格如有更改, 恕不另行通知。
2018 1

Navigation menu