挪威BankID undermining反网络钓鱼最佳实践
想象一个私有化的全国性认证系统,用于访问政府服务、确认合同和在线支付等一切事务。现在,想象这个系统被设计得特别容易被模仿和凭据盗窃(“网络钓鱼”)。以下是挪威BankID认证系统的所有问题。
挪威银行共同拥有和运营BankID。公民使用BankID处理各种事务,从登录税收和医疗保健等政府服务,到数字签署私人合同、申请贷款和信用卡,以及私人市场的更多服务。
该认证方案具有多层结构,并使用次要认证因素,要么使用密钥卡生成的一次性代码,要么在受信任设备上的BankID应用中点击确认。要使用BankID登录,您需要输入您的国民身份证号码(类似于美国社会安全号码)或您的电话号码,以及您的BankID密码。后者通常与您的银行密码相同,尽管您的银行可能无论如何都需要BankID。
此解决方案的问题在于您需要在何时何地输入具有法律约束力的凭据详细信息。商家或服务提供商通过内联框架(“iframe”)将BankID直接嵌入其网页。您的网络浏览器仅显示顶级网页(例如商家的域名)的域名和加密证书详细信息。
无法判断您是通过合法的iframe向BankID提供认证凭据,还是将其交给伪装成合法方的犯罪分子。顶级网页还可以拦截任何嵌入iframe的击键和点击。iframe根本就不是为安全关键环境设计的!
网络浏览器在很大程度上将其反网络钓鱼工作的重点放在确保其地址字段不能被伪造上。您可以相信您在地址字段中看到的名称就是您正在访问的网站。因此,您可以相信您正在与正确的公司或服务进行通信。
整个行业都致力于教育客户在输入凭据之前检查他们是否在预期的网站上。为了努力实现无缝交易,BankID不慎忽视了所有既定的最佳实践。BankID的客户被认为会信任任何看起来和行为像BankID的东西,无论他们在网络上何处遇到它。
欧盟支付服务指令(PSD2)要求所有在线支付交易均需使用强客户认证(SCA)进行。在欧盟监管文本之外的更广泛世界中,SCA更常被称为“多因素认证”。挪威借记卡和信用卡发行商已将此项任务外包给BankID。因此,当您在网络上任何地方进行购买时,您都会在商家或服务提供商的网站上看到BankID认证iframe。
消费者在收到BankID后必须签署一份合同,承诺不向第三方透露其BankID凭据。然而,该服务的设计和实现细节使得人们无法验证他们将这些详细信息交给了谁。
我联系了BankID BankAxept(BankID背后的公司)就本文讨论的问题发表评论。我最初没有收到任何回复,但在Erlend Oftedal在Twitter上提出同样的问题后,我收到了回复。
[如果]所有与用户的通信都在用户地址字段中显示bankid.no,那将是有利的。[我们正在过渡到这个解决方案],目前大多数使用BankID的网站都采用它。[…]我们仍然需要努力将所有网站过渡到这个解决方案,但这项工作正在进行中。
Hege Steinsland, 新闻联系人, BankID BankAxept, (从挪威语翻译)
我很高兴听到BankID正在努力改进其系统。我只在少数网站上看到过这种替代性的新解决方案,而在网络上我到处都遇到安全性较低的基于iframe的解决方案。
无论BankID的未来计划如何,我不明白一个认证即服务提供商怎么可能曾经设计并将原始的基于iframe的解决方案投入生产。BankID本不应该要求其客户在除了“bankid.no”之外的任何地方信任并提供其登录详细信息。
在BankID,在这个东西发布到世界之前,应该有人按下了那个红色的大按钮。您不需要付出太多努力就能制作一个足够好的BankID iframe副本来欺骗人们。我非常清楚这些问题,但即使是我,也只能盲目地相信任何网站上任何看起来像BankID的东西都是合法的BankID。
在我给BankID BankAxept的电子邮件进行拼写检查时,我收到了一封包含网络钓鱼活动链接的电子邮件,该链接指向一个完美的BankID iframe模仿页面。它甚至不是一个iframe,只是一个带边框的网页表单。反正也没人能分辨出区别。能及时确认其他人已经认识到并正在积极利用该系统的弱点,这“很好”。请举报网络钓鱼短信/电子邮件!不要只是忽略它们!
BankID今天就可以使其认证系统更难被模仿,而无需每个第三方支付处理商和中介网站都推出更新。例如,可以将iframe更改为仅包含一个“使用BankID登录”的按钮。该按钮应在受信任的bankid.no网站下打开一个单独的窗口,用户将在该窗口中输入其认证凭据。
完成后,新窗口可以将认证结果传达给商家网站上的iframe,关闭新窗口,并将用户返回到原始网站。在整个过程中,客户可以依赖其浏览器内置的域名验证系统,以确保他们没有与第三方共享其凭据。
上述建议在现有生态系统中应该(相对)容易实现和部署。我确信他们有充分的理由尚未这样做。然而,BankID需要在这个问题失控之前解决它,以免其客户成为BankID模仿和网络钓鱼的受害者。BankID已经破坏并损害了整个行业推动人们在输入密码前验证域名的努力!
如果BankID的客户对其系统失去信任,其在挪威认证服务领域近乎垄断的地位将会丧失。振作起来,伙计们!
请记住,举报而不是忽略进入您收件箱的网络钓鱼活动!您可能识别出一个网络钓鱼活动,但其他人可能会错过您发现的迹象。
披露:我为网络浏览器供应商Vivaldi Technologies工作。我部分工作涉及确保浏览器安全指示器的可靠性。