Joomla 4.0 就悄悄引入了一项可能改变我们登录方式的基础能力——基于 W3C WebAuthn 标准的无密码登录。但多年来,这项功能被包裹在一个"W3C Web Authentication (WebAuthn) Login"的晦涩名称里,绝大多数站长看都不敢看一眼,更别提启用了。

直到 Nicholas K. Dionysopoulos(这项功能的原始开发者)提交了一个 Issue(#41077),只做了一件事:把名字改成大家都能听懂的 Passkeys(通行密钥)——与苹果、谷歌、微软和 FIDO 联盟的主流品牌命名对齐。

没改一行核心逻辑,仅凭一个命名调整,这项被埋没多年的功能在新版 Joomla 6.1 中终于露出了真面目:个人资料页的标签变成了"Passkey Login",系统插件命名为"System - Passkey (Passwordless) Login"。一个让中文站长真正能看的懂、用得上的无密码登录方案,就这么登场了。

到底什么是通行密钥?

传统密码是一个"共享的秘密"——你知道,网站(的数据库)也知道。黑客一旦窃取数据库,或者你在钓鱼网站上输入了密码,攻击者就能冒充你登录。

通行密钥的思路完全不同:

  • 当你创建通行密钥时,你的设备(手机、笔记本、安全密钥)会生成一对加密密钥——公钥和私钥。
  • 公钥交给网站保存(就像你的门牌号,公开也无妨)。
  • 私钥永远锁在你的设备里,从不离开。
  • 登录时,网站发送一个随机"挑战",你的设备在用指纹、人脸或 PIN 解锁后,用私钥签署这个挑战。网站用公钥验证签名——密码本身根本没有在网络中传输

有个很妙的比喻:通证密钥就像一个只认得你签名的门房,他不知道你的姓名,也不知道你的住址。就算门房被攻破了(网站数据库泄露),攻击者也拿不到任何可以用来冒充你的信息。

还有一个杀手级特性:防钓鱼。通行密钥在创建时与网站域名绑定。骗子搭的假网站(比如 joomlаchina.cn 里面混了个西里尔字母 a)根本没法使用你为 joomlachina.cn 创建的通行密钥。传统密码最大的弱点——你分不清真假网站——被从协议层面解决了。

数据也能说明问题:微软报告通行密钥登录成功率约 98%,而传统密码只有 32%,且通行密钥的登录速度明显更快。FIDO 联盟 2026 年 5 月的数据显示,全球已经有超过 50 亿个通行密钥在投入使用,四分之三的互联网用户至少为一个账户开启了它。

它和 MFA 有什么区别?

不少 Joomla 老用户会说:Joomla 4.2 不是早就引入 MFA(多因素认证)了吗?那个不就是通行密钥?

区别很大:

  • MFA 把 WebAuthn 技术用作第二层锁。你还是得先输入密码,然后再出示安全密钥。密码这个"最薄弱环节"仍然存在。
  • 通行密钥直接取代密码,成为唯一的认证方式。没有密码,就无从丢失、泄露、重复使用或被钓鱼。从根本上消灭了一整类攻击手段。

同一套底层技术,但通行密钥的野心更大——它要的不是"加一把锁",而是"换一扇门"。

在 Joomla 站点开启通行密钥

前置条件很简单:

  1. 站点必须运行 HTTPS。用 Let's Encrypt 免费证书就行,通行密钥不能在纯 HTTP 下工作。
  2. 服务器需要 PHP OpenSSL 扩展,以及 GMPBCmath 扩展。绝大部分主机环境(包括国内的虚拟主机和云服务器)都已经具备。

设置步骤:

  1. 确认 "System - Passkey (Passwordless) Login" 插件已启用。大多数 Joomla 站点默认启用,无需额外配置。
  2. 先用传统用户名和密码登录一次。
  3. 进入用户菜单 → 编辑账户,找到 "Passkey Login"(通行密钥登录)区域。
  4. 点击 "Add New Passkey"(添加新通行密钥),按浏览器或设备提示操作(指纹、人脸识别等)。建议给密钥取个友好名称,如"办公笔记本"或"手机"。
  5. 之后在 Joomla 登录界面,点击登录按钮即可直接登录,无需输入密码。

支持哪些认证设备?

  • 设备生物识别:Mac 的触控 ID / 面容 ID、iPhone/iPad 的面容/触控 ID、Windows Hello、安卓手机的指纹/人脸解锁。
  • 硬件安全密钥:YubiKey(USB、NFC 或蓝牙),安全性最高。
  • 手机充当电脑的密钥:用手机的指纹/人脸解锁来登录电脑上的网站。
  • 跨设备同步:iCloud 钥匙串、Google 密码管理器、1Password、Bitwarden 等都可同步通行密钥,一次设置、多设备可用。

多个通行密钥:更安全还是更危险?

有人担心:设置了 3 把通行密钥,是不是给了攻击者 3 扇门?

答案是:不会。只要每一把都是真正的通行密钥(基于加密的防钓鱼技术),就不存在"弱锁"。但要注意——手机 App 生成的六位数验证码(如 Google Authenticator)不是通行密钥,那仍然是可被钓鱼的共享秘密。

真正的弱点是备用登录方式。如果你同时保留密码登录,攻击者会直接攻击密码这个最薄弱环节。因此建议:在团队逐渐熟悉通行密钥后,逐步关闭弱回退方式

保留多把通行密钥的主要意义是防止设备丢失导致锁死,避免被迫走安全性较低的账户恢复流程。建议至少设置 2-3 把。

对中文 Joomla 用户的建议

在中国,大量 Joomla 站点部署在共享主机或低配云服务器上,安全防护往往靠"少装扩展 + 勤备份"这种粗放策略。通行密钥恰好是个低门槛、高收益的安全升级路径:

  • 零成本:不需要购买额外的安全插件,Joomla 核心自带。
  • 零学习曲线:用户体验与手机解锁一致,用户不需要理解公私钥原理。
  • 兼容国内设备:Windows Hello、安卓指纹、iPhone 面容 ID 都支持。
  • 符合等保要求:使用密码学强度认证替代传统密码,满足等保 2.0 对身份认证的增强要求。

未来浏览器支持进一步完善后,Joomla 有望实现完全无密码登录——连用户名都不需要输入,仅凭通行密钥一键登录。更关键的是,站长将拥有彻底关闭密码登录的选项,届时那整个基于密码攻击的威胁类别将彻底消失。

下次登录你的 Joomla 后台,花五分钟注册一个通行密钥。第一次用指纹登录的体验会让你想起十年前第一次用 iPhone 解锁的惊艳感——而这次,惊艳的是你自己的网站。

作者: 樱木花道

Joomla程序员,从J1.5到J6.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前