Highlight
Passkeys 通过 Managed Apple ID 支持 iCloud Keychain、设备访问管理控制和声明式设备管理的企业认证配置,让企业可以在受管设备上安全部署无密码登录,同时防止钓鱼攻击、凭证盗窃和 2FA 绕过。
核心内容
企业面临的三大安全威胁
企业每天面临三种主要攻击(01:35):
钓鱼攻击
根据 Verizon 2022 年数据泄露调查报告,超过 10 亿次钓鱼尝试中,2.9% 的员工会点击钓鱼链接。公司规模越大,风险越高:100 人公司约 3 人点击,500 人公司约 15 人,1000 人公司约 29 人。一次成功的钓鱼往往是全面入侵的起点。
Passkeys 消除了这个问题:没有东西可输入,每个 passkey 内在绑定到特定的网站或 App,用户永远不会在错误的网站上使用 passkey(02:47)。
凭证盗窃
2022 年 40% 的数据泄露涉及被盗凭证。密码服务器上存储的是哈希值,哈希可以被窃取并破解,然后攻击者用 A 网站的密码尝试登录 B、C 网站。
Passkeys 打破了这种循环:服务器只存储公钥,没有值得窃取的东西(03:39)。
双因素认证绕过
SMS 验证码和 TOTP(基于时间的一次性密码)都可以像密码一样被钓鱼。推送通知虽然不能被钓鱼,但容易受到”推送疲劳攻击”——攻击者不断发送推送通知,直到用户误点接受。
Passkeys 不是又一个补丁,它用设计安全的新主因素替代了根本破损的旧主因素(04:35)。
安全与体验的兼得
创建 passkey 比创建密码更快更简单。登录时不需要记忆和输入密码,只需 Face ID 或 Touch ID(05:17)。
企业环境的特殊需求
IT 管理员在部署 passkeys 时有四个独特需求(06:41):
- 管理使用 iCloud Keychain 和 passkeys 的 Apple ID 账户
- 只允许 passkeys 同步到受管设备,而非员工的个人设备
- 确保工作 passkeys 存储在 IT 管理的 Managed Apple ID 的 iCloud Keychain 中
- 向依赖方证明 passkey 是在受管设备上创建的
- 关闭 passkeys 共享功能
Managed Apple ID 支持 iCloud Keychain
Managed Apple ID 由组织在 Apple Business Manager 或 Apple School Manager 中创建和管理。macOS Sonoma、iOS 17 和 iPadOS 17 起,Managed Apple ID 支持 iCloud Keychain(07:50)。
好处:
- 用户在所有设备上获得 passkeys 的同步体验
- IT 可以管理这些账户
- Managed Apple ID 的 iCloud Keychain 中的 passkeys 不能被共享
设备访问管理控制
Apple Business Manager 和 Apple School Manager 新增了访问管理功能,有两种控制方式(08:34):
控制员工可以用 Managed Apple ID 登录哪些设备:
- 任何设备(默认)
- 仅受管设备(适合 BYOD 场景)
- 仅受管监督设备(最高安全级别,适合组织配发设备)
控制 iCloud 内容(包括 iCloud Keychain 中的 passkeys)可以同步到哪些设备:
同样有上述三个选项。
设备管理服务器需要实现对这些功能的支持,Apple Business Essentials 开箱即用。
企业 Passkey 认证配置
声明式设备管理新增了企业 passkey 认证配置(10:07)。这个配置可以:
- 安全地在设备上为用户生成 passkey
- 当用户访问配置中指定的网站时触发
- 引用一个身份资产,用于执行标准的 Web Authentication 认证
- 依赖方验证认证后允许访问相关网站
配置示例:
{
"Type": "com.apple.configuration.security.passkey.attestation",
"Identifier": "B1DC0125-D380-433C-913A-89D98D68BA9C",
"ServerToken": "8EAB1785-6FC4-4B4D-BD63-1D1D2A085106",
"Payload": {
"AttestationIdentityAssetReference": "88999A94-B8D6-481A-8323-BF2F029F4EF9",
"RelyingParties": [
"www.example.com"
]
}
}
关键点:
AttestationIdentityAssetReference引用身份资产RelyingParties指定哪些网站会使用这个身份进行认证- 配置激活后,身份证书从企业证书颁发机构服务器预配
认证流程
- MDM 服务器发送 passkey 认证配置和身份资产到设备
- 配置激活后,从企业 CA 服务器预配身份证书
- 用户访问网站,网站请求 passkey
- 依赖方可以指示只接受带有企业认证的新 passkey
- 设备生成新 passkey,用预配的身份证书进行认证
- 网站验证认证,检查设备证书是否链回组织的 CA
依赖方需要知道信任哪个 CA 证书。组织管理员可以把 CA 证书副本上传到依赖方(12:38)。
WebAuthn Packed Attestation 格式
依赖方需要检查 Web Authentication passkey 创建响应中的认证声明(13:12):
attestationObject: {
"fmt": "packed",
"attStmt": {
"alg": -7, // for ES256
"sig": bytes,
"x5c": [ attestnCert: bytes, * (caCert: bytes) ]
},
"authData": {
"attestedCredentialData": {
"aaguid": "dd4ec289-e01d-41c9-bb89-70fa845d4bf2", // for Apple devices
<…>
},
<…>
},
<…>
}
关键点:
- 先检查
aaguid是否匹配 Apple 设备的值 alg: -7表示使用 ES256 算法sig是认证签名x5c数组包含认证证书和证书链,每个都是 X.509 格式
详细内容
配置部署流程
第一步:MDM 服务器配置
MDM 服务器发送以下声明到设备:
- Passkey Attestation Configuration:指定依赖方和引用的身份资产
- Identity Asset:包含从企业 CA 获取证书所需的信息
第二步:设备激活
设备收到声明后:
- 解析配置中的
AttestationIdentityAssetReference - 向企业 CA 服务器请求身份证书
- 将证书存储在钥匙串中
第三步:用户访问网站
当用户访问 RelyingParties 中列出的网站时:
- 网站调用 WebAuthn API 请求创建 passkey
- 设备检测到需要企业认证
- 使用预配的证书对新生成的 passkey 进行认证
- 返回认证对象给网站
第四步:依赖方验证
网站验证认证:
- 检查
aaguid确认来自 Apple 设备 - 验证证书链是否链回组织的 CA
- 确认 passkey 是在受管设备上创建的
- 接受或拒绝 passkey 注册
用户体验
以 Tailscale 为例(14:37):
- 用户选择 passkey 名称
- 点击 “Create a passkey and join”
- Passkey 保存在 Managed Apple ID 的 iCloud Keychain 中
- 点击 “Continue”,用 Face ID 完成登录
如果用户尝试在个人设备上创建 passkey,会看到错误提示:设备不受组织管理。这是通过 passkey 认证实现的。
再次登录更简单:点击 “Sign in with passkey”,选择之前使用的 passkey,用 Face ID 确认即可。
核心启发
为内部工具网站启用 Passkey 登录
- 做什么:把公司内部的 Wiki、Dashboard、CI 系统等工具的登录方式从密码改为 passkey
- 为什么值得做:内部工具往往密码策略松懈,是钓鱼攻击的高价值目标。passkey 消除了密码被窃取的风险
- 怎么开始:在支持 WebAuthn 的服务器上实现 passkey 注册和认证流程,前端调用
navigator.credentials.create()和navigator.credentials.get()
用 Managed Apple ID 统一管理员工凭证
- 做什么:为员工创建 Managed Apple ID,开启 iCloud Keychain,设置仅受管设备同步
- 为什么值得做:确保工作 passkeys 不会同步到员工的个人设备,降低凭证泄露风险
- 怎么开始:在 Apple Business Manager 中创建 Managed Apple ID,配置访问管理控制为 “managed devices only”
为 SaaS 集成企业 Passkey 认证
- 做什么:让公司的 SaaS 供应商(如 Slack、Notion)支持企业 passkey 认证,限制只有受管设备能注册
- 为什么值得做:结合 MDM 的认证配置和 SaaS 的 WebAuthn 支持,可以确保员工只能用公司设备访问关键服务
- 怎么开始:向 SaaS 供应商提供企业 CA 证书,配置依赖方只接受带有企业认证的 passkey
逐步淘汰 SMS 2FA
- 做什么:在部署 passkey 后,逐步关闭账户的 SMS 和 TOTP 双因素认证
- 为什么值得做:SMS 和 TOTP 都可以被钓鱼,passkey 本身就是多因素认证(设备 + 生物识别),额外添加脆弱的第二因素反而增加攻击面
- 怎么开始:先在高风险账户(管理员、财务)上试点 passkey,验证依赖方支持后,关闭这些账户的 SMS 2FA
关联 Session
- Meet passkeys — Passkeys 基础介绍
- What’s new in managing Apple devices — Apple 设备管理新特性
- Do more with Managed Apple IDs — Managed Apple IDs 的更多用法
评论
GitHub Issues · utterances