跳转到主要内容

魔法链接

本文约需 2 分钟阅读

魔法链接是指发送到用户邮箱地址的一次性登录 URL。无需输入密码,只需点击邮件中的链接即可完成认证。Slack、Notion、Medium 等服务已采用它,作为无密码认证的便捷实现方式而备受关注。但由于其安全性完全依赖于邮箱账户的安全,因此必须与通行密钥这类更稳健的无密码技术明确区分开来。

魔法链接的工作原理

魔法链接的认证流程在技术上与一次性密码 (OTP) 类似。不同之处在于,它不是发送数字代码,而是通过邮件发送包含密码学安全随机令牌的 URL。

魔法链接认证流程
① 输入邮箱地址
② 服务器生成令牌
③ 发送带令牌的 URL 邮件
④ 用户点击链接
⑤ 验证令牌 → 签发会话

令牌设有以下约束。

  • 有效期:通常为 10〜30 分钟。过期的链接将失效
  • 一次性使用:点击后令牌立即失效。无法重复使用
  • 密码学随机性:使用无法猜测且足够长 (128 位以上) 的令牌
  • IP 绑定 (可选):也有服务会核对发起请求与点击来源的 IP

采用案例

Slack

作为输入密码的替代方案,提供「通过邮件发送登录链接」选项。在加入团队时的首次登录中被大量使用。

Notion

将魔法链接作为默认登录方式。实现了无需设置密码的使用体验。

Medium

作为与社交登录并列的认证方式提供。这是注重内容平台便捷性的选择。

优点与缺点

优点缺点
无需记忆和管理密码完全依赖邮箱账户的安全
没有密码泄露和重复使用的风险等待邮件到达的时间 (数秒至数分钟)
实现简单 (服务端无需保存密码)不具备抗钓鱼能力 (可能被假邮件欺骗)
用户注册门槛低离线环境下无法登录

尤其需要注意的是,魔法链接不具备抗钓鱼能力。如果攻击者准备一个假冒的登录页面并诱导用户输入邮箱地址,正规的魔法链接就会发送到用户的邮箱。当用户点击该链接时,便会形成攻击者的会话被认证的中间人攻击场景。请在邮箱账户保护一文中了解强化邮箱安全的方法。

与通行密钥的比较

魔法链接和通行密钥都是无密码认证,但二者的安全模型存在根本差异。

视角魔法链接通行密钥
认证的基础拥有邮箱账户拥有设备 + 生物识别
抗钓鱼能力有 (绑定来源)
登录速度慢 (等待邮件)即时 (指纹、面部识别)
导入的难易度非常简单稍复杂 (需实现 WebAuthn)

通行密钥迁移挑战一文中讲解了从魔法链接逐步迁移到通行密钥的策略。

常见误解

「魔法链接比密码更安全」这一认识对了一半也错了一半。它确实可以消除密码重复使用和弱密码的风险,但若邮箱账户已被入侵,所有魔法链接都会落入攻击者手中。如果邮箱账户没有设置多因素认证 (MFA),魔法链接的安全性与弱密码相差无几。请在双因素认证一文中了解保护邮箱账户的方法。无密码认证相关书籍 (Amazon)也很有参考价值。

现场使用案例

“将公司内部工具的登录切换为魔法链接后,密码重置请求降为零。但有时邮件到达需要超过 30 秒,也有用户反映‘登录很慢’。最终我们形成了这样的分工:常用工具使用通行密钥,偶尔使用的工具使用魔法链接。”

相关术语

这篇文章对您有帮助吗?

XHatena