苹果 iCloud Keychain 自带的双重认证器好用吗?
首先,双重认证(Two-Factor Authentication or 2FA)是什么?
双重认证(2FA)是一个安全过程,用户必须提供两种不同的身份验证因素来验证其身份并访问其帐户。此过程确保更好地保护用户的个人信息、凭据和其他资产,同时提高用户可以访问的资源的安全性。(Source: What is 2FA?)
简单来说,双重认证,即「你是谁、你有什么、你知道什么」三者中的两个。
我是一个小白/我的账号不那么重要/谁会来攻击我啊,有必要使用双重认证吗?
我的观点:任何人都有必要使用双重认证。
安全是永恒的话题,特别是你当今的生活消费娱乐消遣都在互联网上进行,而你用了生日/女友生日/门牌号/名字拼音当作密码时,2FA 就显得尤为重要。而 2FA 实际上是无所不在的:当你登录微信时,会判读是否是常用设备;当你登录淘宝时,会要短信验证码;当你登录银行 App 时,会要扫脸;当你登录 AppleID 时,要用另一台苹果设备确认。那么你的常用设备、你的手机号、你的脸、你的另一台手机,就是第二重身份认证元素:一个攻击者不易获得的「东西」。
既然 App 已经有了 2FA,那我为什么还要使用双重认证器?
双重认证器为一些不容易采用生物信息、设备绑定,或者没有记录手机号的良心应用(不常出现在简体中文互联网环境中),提供了一个比较通用的解决方案,因此在一些面向消费者的 Web 应用中广泛采用。
说回苹果
iOS 15 最令我期待的功能之一,便是苹果自家的双重认证器,它没有单独的应用,是集成在 Keychain 中的;似乎也没有官方命名,我姑且称其为 iCloud Keychain 2FA。2FA 应用有很多,Google、Microsoft、Twilio 等大厂都推出了自己的应用,其实一向注重安全的苹果动作这么慢还蛮罕见的,而且应用目前仍然比较初级。
iCloud Keychain 2FA 也是基于时间的一次性密码 (TOTP) 应用程序,与其他的 2FA 应用差不多:使用移动设备的应用程序扫描 QR 码或手动输入 Setup Key,之后应用程序会显示六位数代码,将其填入网站即可完成绑定。同时网站会提供一系列恢复码(recovery codes),以便在 2FA 应用无法使用时,消耗一枚恢复码,一次性的访问账户,当然,这是网站提供的功能,就与认证器本身无关了。
iCloud Keychain 2FA 与系统的深度集成是我期待它的主要原因,另外其他的认证器在换手机时总有各种各样的问题,让我不得不考虑使用操作系统原生、基于 iCloud 同步的解决方案。
那么,原生的使用体验如何?
先看设定(过程不再赘述,GitHub 这篇文章写的足够详细了。)
与其他 TOTP 2FA 应用一样,在网站开启 2FA,选择 Authentication App 时,iCloud Keychain 2FA 也需要扫码。这个过程通过自带相机 App 完成,扫码后选择相应的已经记住的账号即可。
与其他 App 略有差别,iCloud Keychain 2FA 在绑定时步骤稍少,得益于 iOS 的跨平台先天优势,无论是设定还是登录过程中,填入验证码时,均可以自动完成,体验非常棒。
至此设定完成,别忘了保存好自己的 Recover Code。
登录时,体验依然极好
无论是电脑还是手机上的 Safari,输完账号密码后,均可自动填入验证码,以至于,在此章节中我实在没什么可以说的。
iOS 原生 App
我仅仅在有限的几个 App 中测试了 iCloud Keychain 2FA,毕竟这里不是双重认证器的主要战场。但如果你的 App 想要接入,应用中可以直接调起 iCloud Keychain 2FA,省略扫码或者手动输入 Setup Key 的过程,体验比浏览器中还要好很多。
非 Apple 平台上,又会怎样一番光景呢
事实上,就算是 Apple 平台上,非 Safari 浏览器的支持也是非常有限,基本没有办法自动填充。而 Apple 把这个功能隐藏得非常深,以至于手动填充验证码的时候,要大费一番周折。只能说无论是 iOS、iPadOS 还是 macOS,此功能都可以工作,仅此而已。
首先是 iOS 和 iPadOS
需要依次进入 Settings → Passwords (FaceID 认证)→ 搜索用户名 → 点击对应网站(如果不同网站使用的相同用户名)→ 点击 VERIFICATION CODE → Copy Verification Code → 粘贴到对应输入框
当然,你也可以抄过去,省略后三步。
macOS 上也好不了哪去
而更过分的是,入口在 Safari 设置中,并不在 Keychain 应用里。
打开 Safari → Preferences → Passwords (输入密码!) → 搜索用户名 → 点击对应网站(如果不同网站使用的相同用户名)→ 点击 VERIFICATION CODE → Copy Verification Code → 粘贴到对应输入框
同样的,也可以省略后三步。
对比其他的双重认证器,iCloud Keychain 2FA 在第三方浏览器上复制验证码的操作之繁琐可谓匪夷所思,也许苹果的工程师根本没有指望你在非苹果生态下使用这个功能,说实在的,像我这种偶尔玩玩游戏的用户,基本没有在 Windows 上登录账号的想法了。
结论就显而易见了
优点:在原生 App 和支持的浏览器中,iCloud Keychain 2FA 工作的异常流畅,体验极其丝滑,胜过目前市面上存在的所有 2FA 应用。
缺点:不直观是 iCloud Keychain 2FA 的最大问题。也许苹果不认为 2FA 值得一个单独的 App,或者有个单独的设定入口,就像乔布斯当年说 Dropbox 不应该是应用,而只应该是功能而已。
如果你是苹果全家桶用户,完全可以将所有的 2FA 迁移至 iCloud Keychain,享受苹果生态带来的极致体验;但如果你有任何非苹果设备,在其上你要忍受苹果产品设计中无处不在的傲慢。
References
所有操作均在 iOS 15.0,iPadOS 15.0,macOS 12.0 完成
我已经完全迁移至 iCloud Keychain 2FA
苹果 iCloud Keychain 自带的双重认证器好用吗?
https://archeanz.com/2021/12/06/Is-the-2FA-comes-with-Apple-iCloud-Keychain-easy-to-use/