Firefox 引入对 Web Authentication API 的支持

  • Kevin Ball
  • 张卫滨

2018 年 5 月 27 日

话题:JavaScript语言 & 开发

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Firefox 60 在 5 月 9 日发布,Firefox 成为了第一个支持 Web Authentication API 的主流浏览器。该 API 能够让用户避免为 Web 站点使用基于文本的密码,而是使用带有生物特征检查或私有 PIN 的本地设备来生成安全的加密标识符。Chrome 和 Edge 对该 API 的支持正在开发之中,而 Safari 正在考虑对它的支持。

这个规范来源于FIDO Alliance和 W3C 之间的合作。按照FIDO Alliance 站点所述

来自 FIDO Alliance 的规范和证书能够构建一个基于硬件、移动和生物特征认证器(authenticator)的互操作生态系统,它可以与许多的应用程序和 Web 站点一起使用。这个生态系统能够让企业和服务提供商部署强认证解决方案,减少对密码的依赖,从而防止通过窃取密码所引发的钓鱼、中间人和重放攻击。

Web Authentication API能够让用户规避为每个 Web 站点记忆密码的不安全性和挫败感,而是通过像手机或 USB 这样的物理设备来进行简单的生物特征检查。在一篇博客文章中,Duo Security 的 Nick Steele 阐述了它看上去会是什么样子的

在实践中,WebAuthn 的运行方式有很多种,但是最常见的样例如下所示:用户通过笔记本电脑访问一个 Web 站点,比如说 cat-facts.com,并且注册一个账号。在网站上点击完开始注册的按钮之后,他们将会在手机上收到一个提示,内容为“Register with cat-facts.com”。

他们在接受该请求之后,系统会要求用户执行一个“授权手势”,比如输入 PIN 或者生物特征的动作,使其与正在创建的账号进行关联。在提供完这些信息之后,笔记本电脑上的 Web 站点将会展现一些内容,表示“Registration complete!”。

现在,用户可以使用相同的手机或者授权手势登录 cat-facts.com。

按照Chrome tracking bug,Web Authentication API 会在 Google Chrome 67 桌面版中提供,按照日程它会在 2018 年 5 月 27 日发布。Microsoft Edge 支持该 API 的一个较早版本,其差异在他们的开发者文档中进行了阐述。目前有一个polyfill,通过它能够在 Edge 中支持当前版本的 API。至于 Safari,目前的状态尚不明确。 Chrome tracker显示 Safari 正在开发该 API,webkit 特性状态却显示它们正处于“考虑中”。

在 9 to 5 Mac 站点上,有一篇文章阐述了为何应该鼓励苹果实现该特性:

Safari 目前还没有表态,但是最近上市的 iPhone 和 iPad 都提供了 Face ID 或 Touch ID,而后者在 MacBook Pro 上也得到了支持,这是为苹果量身定做的。如果没有苹果的支持,它无法用到其他的浏览器中。

想尝鲜体验 Web Authentication API 的开发人员可以通过谷歌开发者 Web 站点上的一个简短教程进行学习,或者通过 MDN 上的文档深入学习。

查看英文原文Firefox Introduces Web Authentication API

JavaScript语言 & 开发