共计 2287 个字符,预计需要花费 6 分钟才能阅读完成。
传统身份认证形式的有余:
随着互联网的遍及,咱们越来越依赖网络服务来实现日常工作和娱乐。然而,在线身份认证始终是一个辣手的问题,传统的身份认证形式如明码、短信 / 邮件验证码、OTP(一次性明码)或双重认证,都存在一些毛病:
- 明码:应用明码进行身份验证是最常见的形式,然而明码可能会被暴力破解、泄露或遗记,因而不够平安和不便。
- 短信 / 邮件验证码:应用短信 / 邮件验证码进行身份验证时,会向用户的手机发送一个验证码,用户须要在网站或利用中输出这个验证码能力登录。然而,短信验证码可能会被拦挡或坑骗,导致身份认证失败。
- OTP(一次性明码):OTP 是一种应用单次无效的明码进行身份验证的形式。OTP 通常会生成一个动静的明码,每隔一段时间就会更换,用户须要在网站或利用中输出这个明码能力登录。OTP 能够在设施不在身边的状况下进行身份验证,然而如果 OTP 被拦挡或坑骗,也会导致身份认证失败。
- 双重认证:又称为双因素认证,是一种身份验证形式,它须要用户同时提供两种不同类型的凭据能力通过身份验证。通常,双重认证会应用两种不同的认证因素:晓得的信息(如明码)和领有的物品(如手机或平安令牌)。所以须要输出额定的信息,所以可能会减少登录的工夫,从而影响用户体验。
WebAuthn 是什么?
有没有一种身份认证形式能够既保证安全性又不影响用户体验呢?
那就是 WebAuthn。
WebAuthn 由 W3C(万维网联盟)提出,是一种基于浏览器的、新型的在线身份认证技术,容许用户应用基于硬件的身份验证设施(如 Apple TouchID 和 Windows Hello 或挪动设施的生物辨认传感器)来进行身份验证。WebAuthn 旨在为用户提供更平安不便的在线身份验证形式,并且被大多数古代 Web 浏览器反对。
WebAuthn 的工作原理如下:
- 用户在第一次登录时注册身份
- 用户的设施生成一个私钥
- 用户的设施应用私钥对登录信息进行签名
- 服务器验证签名,确认用户身份
这个过程中,明码并没有应用。相同,WebAuthn 应用数字签名技术来验证用户身份,数字签名应用公钥加密算法,能够提供更高的安全性。
WebAuthn 做身份验证,解决了哪些问题?
相比于传统的明码认证形式,WebAuthn 具备许多长处。
首先,它提供了 更高的安全性。因为不应用明码,因而不会因为明码泄露而造成账户平安威逼。
此外,WebAuthn 还 能够应用多种验证形式,包含指纹识别、人脸识别等 。这些验证形式都十分难以被假冒,因而能够大大提高账户安全性。其次,WebAuthn 提供了更便捷的登录体验,用户只须要在第一次登录时注册身份,之后就能够应用 WebAuthn 进行疾速登录。 用户无需记住明码,也无需放心明码忘记带来的麻烦。
当然,WebAuthn 也有一些毛病。例如,它只能在反对 WebAuthn 的设施上应用,因而对于一些老旧的设施可能并不实用。此外,若要为网站或利用创立公私钥对,用户必须先在该网站或利用中注册,而且对于不相熟 WebAuthn 的用户来说,可能须要一些工夫来学习和了解这种身份验证形式。
总体而言,在明码蒙受频繁攻打的明天,WebAuthn 的呈现为咱们提供了更高的安全性和更便捷的登录体验。
web-authn-completed-app 做了什么?
为了让对 WebAuthn 感兴趣的开发者更快的了解和开发,我实现了一个基于 WebAuthn 的身份认证流程的 demo,不便开发者进行二次开发,我的项目叫 web-authn-completed-app,技术栈:客户端应用 Vue3 + Typescript + Vite3 开发;服务端应用 Express;数据库应用 MySQL8。同时为了不便开发者部署与二次开发,我详细描述了不同的场景下,该如何操作和启动利用。
- 在线体验: 能够间接拜访 https://web-authn.x-dev.club 体验这种新型的身份验证形式带来的便当
- 源码地址:源码能够在 github 看到
如果感觉对你有帮忙,还请多多 star,欢送一起交流学习~
下图为 demo 在 WIN10 和 Android 设施上的演示
如果图片刷不进去,麻烦到 https://github.com/guMcrey/we… 查看,或者间接拜访 demo 地址:https://web-authn.x-dev.club
如果图片刷不进去,麻烦到 https://github.com/guMcrey/we… 查看,或者间接拜访 demo 地址:https://web-authn.x-dev.club
设施和浏览器兼容性也是咱们要思考的问题,设施和浏览器要求:
以下任一设施
- 一部 Android 设施(最好带有生物辨认传感器)
- 一部搭载 iOS 14 或更高版本且具备触控 ID 或面容 ID 性能的 iPhone 或 iPad
- 一部搭载 macOS Big Sur 或更高版本且具备触控 ID 性能的 MacBook Pro 或 Air
- 设置了 Windows Hello 的 Windows 10 19H1 或更高版本
以下任一浏览器
- Google Chrome 67 或更高版本
- Microsoft Edge 85 或更高版本
- Safari 14 或更高版本
更多浏览器兼容性请查看 Can I use
申明:所有通过 https://web-authn.x-dev.club 注册的用户数据不会被应用,仅用于 demo 用户统计,如仍介意能够发邮件到 itgumx@163.com 要求删除数据
外链:
- demo 地址:https://web-authn.x-dev.club
- 源码:https://github.com/guMcrey/we…
- WebAuthn MDN:https://developer.mozilla.org…