苹果iOS16绕过验证码的私密证明令牌技术

admin 6446

最近,苹果又来“整顿”手机厂商了。

有传言称,新版 iOS 16 将加入一个名为「自动验证」的新功能,可跳过网页和 App 中的人机验证流程,升级了 iOS 16 测试版的用户,可以进入「设置」—「Apple ID」—「密码与安全性」,在页面最下方找到这个功能。

什么意思呢?

以前,当你打开苹果的某个 App 时,系统首先要证明你是“人”而不是“机器”,需要识别验证码来证明你是你,通过了就证明你是可以被信任的。现在,苹果为用户直接略过了验证码这一环节,也就是说,苹果抢先一步通过算法证明了你是你。

对于这一更新,不少果粉直呼:“真的太人性了”。

无感验证将是未来新趋势那么,苹果是如何实现绕过“验证码”的呢?

答案就是苹果运用了一种全新、开放的验证机制 —— 私密证明令牌(Private Access Tokens,缩写为 PAT)。

PAT 并不指代某一种技术或某一种服务,而是一个验证用户的协议。它需要 Client、Mediator、Issuer 和 Origin 参与,才能完成整个验证,如下图:

这次自动验证是苹果与云服务商Cloudflare合作完成的,实现过程如下(以用户使用浏览器访问某个网站的场景为例):

整个流程包含四个部分,即浏览器(Client)、苹果手机系统(Mediator)、云服务商Cloudflare(Issuer),网站(Origin),其中网站后台需部署在Cloudflare上。

首先,用户使用浏览器访问网站,因网站后台部署在Cloudflare上,Cloudflare会要求浏览器必须携带token。

紧接着,浏览器会调用苹果系统服务进行检测,系统服务会检测当前设备的合法性,是否是可信设备,检查通过后会调用Cloudflare(作为Issuer角色)API,Cloudflare生成token给到浏览器。

最后,浏览器携带token访问网站(Origin),在这里,云服务商Cloudflare做网关代理,作为Origin角色来验证token的有效性,放行访问网站。

看起来好像很复杂,但整个流程的重点有两个:

一是整个验证流程没有任何需要人工介入的验证过程 (输入字符或点击图片等),整个校验过程基本无需客户端和服务端做改造,由苹果设备和云服务供应商完成,设备是否可信的判断由苹果系统完成,相比三方 SDK,苹果系统有能力获取到更多的信息,做更全面的判断。另外,该技术可以明显提升脱离浏览器使用脚本直接爬取数据的爬虫成本;

二是证明「我是人」的方式也从答题、隐私让渡,变成更合理的检查设备是否被破解等信息,使用支持 PAT 协议的设备和网站,会减少验证码的弹出,用户体验会更好。

苹果作为手机厂商一哥率先提出了「自动验证」的功能,有理由相信,未来,无感验证将是大势所趋。

是不是可以和人机验证说再见了?那么,人机验证是不是即将退出舞台了呢?

“还有很长的路要走”,顶象业务安全专家如是说。

首先,PAT 主要靠苹果系统来检测设备合法性,目前不清楚具体做了哪些检测,从公开的信息看会检测设备是否可信,是否改了设备参数等。这种完全静默的检测在一定程度上能阻断一些人机风险,比如脚本爬虫,因为无法获取 token 而会被 block 掉。但在互联网领域,机器人的风险表现是多样的,除了脚本还有其他方式,比如页面自动化驱动工具,通过群控控制等,该技术对这些风险的覆盖情况目前还不得而知。

此外,目前支持该方案的云服务厂商较少,网站 / App 自己支持的话有一定成本,在该方案大规模推广应用之前人机验证依然会是主流。

同时,站在手机厂商的角度,该方案的侧重点是如何提升用户体验,但考虑到安全性,覆盖度等问题,仍有较多的细节需要完善改进。

一方面,要实现这项功能需要企业网站改造来支持 PAT 协议,或者企业网站托管到云服务供应商上,目前已知支持 PAT 协议的云服务厂商仅有国外两家 Cloudflare 和 Fastly。

此外,该方案只能在使用国外网站和 App 时,体验会好一些。如果是国内,除了企业的网站、iOS 应用要去改造,还要考虑如何兼容 Android、鸿蒙、微信小程、支付宝小程序等。

另一方面,在安全性方面,国内很多黑产会使用设备牧场或者云手机,该项技术对于使用设备牧场或者云手机的攻击者来说可能无效,设备牧场和云手机的设备基本都是正常设备,如果开启 Automatic Verification 设置,该技术可能会让攻击者更加便利的获取利益。

并且,国内黑产的专业程度非常高,对抗也非常激烈,相信用不了多长时间,针对 PAT 的绕过或者破解方案就会出来。而对国内广大需要人机防护的厂商来说,在营销推广,线上活动等场景不仅需要足够安全的防护,还需要快速的应急和更新能力。如果 PAT 这个方案被破解,恐怕只能等 iOS 下个版本的更新了。

但不得不说,苹果为其他手机厂商也提供了“范本”。

从用户体验角度来看,PAT 是一个不错的创新点。但对于广大互联网企业来说,安全和体验是需要同时考虑的。提高用户体验的同时,需要准备充足的安全应急能力。比如后台要具备动态的风险决策判断能力,能够实时调整线上的安全策略; 要有多种验证码作为储备,并且能够实时切换。因此,企业在接入 PAT 的同时,不能完全依托 PAT,PAT 是一个优化用户体验的方案,但替换不了整个业务安全。