一直以来FIDO多因素认证被视为抵御钓鱼攻击的“终极解决方案”。但近日,安全公司Expel报告称,他们在野外发现了一种“能够绕过FIDO多因素认证”的钓鱼攻击。消息一出,不少人吓出一身冷汗:难道FIDO也不安全了?
别慌,真相没那么惊悚。经过分析,这并不是传统意义上的“绕过FIDO”,而是一次“FIDO降级攻击”,背后逻辑其实并不复杂。以下逐步拆解。
这次攻击是怎么发生的?
攻击行动由一个名为PoisonSeed的黑客组织发起。他们用一封邮件引诱用户点击一个仿冒的Okta登录页面(Okta是一家常见的身份验证服务商)。用户输入用户名和密码后,黑客就拿到了一半的门票。
通常情况下,如果系统配置正确,接下来应该启用FIDO的强认证,比如用安全密钥、手机中的passkey或者Yubikey等设备来完成二次验证。
但这个过程中有一个“可被利用”的环节:跨设备登录。比如用户在电脑上登录,但FIDO密钥保存在手机里,网站会生成一个二维码,用户用手机扫描后完成身份验证。
PoisonSeed就是利用了这一点——他们实时把受害者输入的用户名和密码填入真正的Okta登录页面,获取二维码,再把它通过钓鱼网站展示给用户。受害者一扫描二维码,等于亲手把门打开,攻击者轻松溜了进去。
听起来像“绕过”?其实是“降级”!
FIDO本身是设计来防止这种“中间人攻击”的:
设备距离限制:如果是通过跨设备认证,两个设备(比如电脑和手机)必须物理接近,以便通过蓝牙完成密钥传输。
域名绑定机制:FIDO密钥会校验当前登录页面的域名。如果你在假的okta.login-request[.]com页面操作,它和真正的okta.com对不上,验证就会失败。
换句话说,只要是标准的FIDO流程,这种攻击根本不可能成功。但Expel发现的是:一些企业允许用户在FIDO认证失败或不方便使用时,降级使用更弱的认证方式,比如二维码扫码、短信验证码等。
这就像原本让你用身份证核验身份,结果后台说:“不方便?那报个手机号码也行吧!”
于是,FIDO形同虚设。
举个更接地气的例子
安全开发者Isaiah Inuwa用一个日常场景解释得很清楚:
假设ACME公司支持两种验证方式:FIDO密钥和短信验证码。用户Alice同时注册了这两种方式。
黑客Eve建了一个钓鱼网站,骗到Alice的用户名和密码后,去真实的ACME登录页面尝试登录。系统提示要用FIDO密钥验证,Eve点了“切换验证方式”,选择短信验证码。
Eve再把钓鱼网站链接发给Alice,让她扫码或输入验证码。验证一过,Eve就成功入侵账户。
是不是似曾相识?很多人登录智能电视上的YouTube、Netflix时也用过类似方式。
真正的问题出在哪?
问题不是FIDO不安全,而是:
管理员没有强制只允许FIDO,留了“后门”给弱认证方式。
Expel最后也承认,这并不是所谓的“绕过FIDO”,而是降级到了非FIDO验证方式,这才让攻击成功。他们已经在修改原始博客内容,澄清术语误导。
那我们该怎么办?
1.企业管理员要警惕“降级漏洞”:配置身份验证策略时,务必禁用不安全的备选认证方式,尤其是在关键系统中。
2. 终端用户要认清FIDO与伪FIDO流程的区别:避免被扫码、短信等看似方便的手段蒙蔽。
3. 不要在陌生页面输入用户名密码:哪怕它看起来“像极了”Okta、微软或你公司常用的页面。
FIDO本身依旧是目前最安全的身份验证机制之一。只要使用得当,它依旧是你抵挡钓鱼攻击最坚固的盾牌。
参考链接:
https://expel.com/blog/poisonseed-bypassing-fido-keys-to-fetch-user-accounts/
声明:本文来自GoUpSec,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。