魔法链接与验证码两种免密方式的安全强度并不等同
别名: 免密强度 · email link vs SMS OTP · passwordless AAL
概念解释
「免密」只描述人不记密码,不描述认证器有多强。魔法链接是高熵令牌经邮件(或消息)点击兑换;验证码是短位空间、常经短信或邮件抄写的共享秘密。两者都叫免密,但抗猜测、抗拦截、抗钓鱼的能力不是同一档。这条专门拆开强度不可互换:不能因为去掉了密码,就把短信六位和邮件长链当成同一控制。它不讨论链接用过一次要作废,也不讨论设备上再确认一次。
机制
强度来自三件事:秘密的熵、投递通道、以及人如何出示。短码熵低,主要靠有效期和次数限制硬撑,通道又常是可被换卡、被信令劫持的短信;NIST SP 800-63B 把短信 OTP 标成受限认证器,不是因为它「不好用」,而是通道不能当高保证。魔法链接熵高,枚举几乎不成立,但邮件账户被盗、链接被钓鱼页换掉、或人在不可信设备上点开,攻击面换成收件箱与点击时的上下文。把它们画成同一颗「免密」开关,产品会用便宜的短码去满足本该要高保证的动作(改邮箱、转账),或反过来用邮件链接去覆盖没有邮箱的用户却仍声称同等安全。名称上的同类,掩盖了认证保证等级(authenticator assurance)的差别。
怎么研究
按威胁模型分别测,而不是只测「免密完成率」。
自变量:认证器种类(短信 OTP、邮件 OTP、邮件魔法链接、应用内 TOTP)、所保护动作的保证需求(登录、改密、资金)。 因变量:在线猜测成功(短码相关)、钓鱼页换链成功(链接相关)、通道被占后的接管、用户是否把两者判断为「一样安全」。
可用安全可用性实验:给钓鱼页与真页,看短码被抄走与链接被点开的比率。不要编造「链接比短信安全百分之几」;NIST 与同类准则给的是分级(允许 / 受限 / 禁止用于某保证级),不是转换公式。完成率只能说明摩擦,不能当强度证据。
边界
在低保证、低后果的登录(看公开内容后的可选账号)里,两者都可以当「比没有认证强」。一旦动作进入改持有者、改联系方式、支付,短码与链接必须分开评级,短码往往不够。企业邮件有网关改写链接时,链接的保证下降,并不自动等于短码上升。通行密钥、硬件密钥是第三类,不要塞进「免密」这一组里一起评分。用户口头说「我用验证码登录」可能指短信、邮件或验证器 App,访谈要先固定通道再谈强度。
怎么落地
- 在内部把认证器标成不同保证级:短信 OTP、邮件 OTP、邮件链接、验证器分别列出允许的动作,禁止用「免密」一词在设置里暗示等价。
- 对改邮箱、改密码、资金类动作,不要把短信短码当作与邮件长链或验证器同等的单一因素;需要升级时明确说「这一步不能用短信验证码」。
- 向用户说明差异时用通道事实(「短信可能被新 SIM 接收」对「链接谁点开谁进入」),不用抽象分值。
- 验证:列出每类敏感动作当前接受的认证器,对照书面保证级,找出用短码独自覆盖高后果动作的路径;用一次钓鱼演练看短码抄录与链接误点是否被当成「都免密所以都安全」的同一决策。