PRMitM:重置密码的中间人攻击

通常,保护账号安全的方法是为账号设置一个密码。然而,用户有时会忘记自己的密码,这时需要服务提供商有密码重置机制。一般的密码重置过程中需要用户输入验证码、回答安全问题等,而这个过程的一些不安全设计会被第三方平台恶意利用,导致用户的密码被第三方重置。日前,来自以色列的研究人员针对此类攻击进行了实验,发现会在大部分用户不知情的情况下篡改他们的账户密码,而受影响的不乏Google、Facebook等互联网巨头。

注意,这里的中间人不在修改密码的页面与账号服务器之间,而是在用户和账号服务器之间。图1是攻击示例。攻击者有一个能提供服务的网站,例如软件免费下载等,当用户下载软件时需要使用邮箱、手机等验证身份(证明不是机器人)。受害者输入邮箱后,攻击者根据邮箱地址,向邮件服务器请求密码重置。邮件服务器会采用验证码等方式验证用户身份,而攻击者只需要把邮件服务器发来的验证码、问题等转发给受害者,就能获得答案,进而设置新密码。可以看出,图片验证码和安全问题的方式十分不安全。

图1
图1 密码重置中间人攻击示例

一些服务提供商会采用短信验证码或语音验证码等,但是却没有告诉用户验证码的来源、用途以及泄露的风险等信息。短信验证码中(图2),由于用户可以来自各个国家,一些网站对多语种的支持也不完善,使一些用户只能看得懂验证码,却看不懂其他文字信息;而且一些用户的手机会直接提取验证码,用户不用打开短信也能正确输入验证码。语音验证码相对来说少一项安全问题,即在语言支持上,用户能听懂验证码的话,应该能听懂一些验证码的来源、用途、泄露的风险等信息。然而一些服务提供商在多语言支持上仍然存在问题,如Google在一些国家的语音中会提及上述信息,而在另一语种的国家中却没有上述任何信息。由于邮件服务提供商很少有采用邮件验证,故邮件验证没有进行实验。此外,一些手机软件也存在此类问题。

图2
图2 短信验证码分析

对此,该研究团队提出了几点改进措施。例如,在安全问题中询问用户最近的联系人、使用的服务等(存在被熟人攻击的风险)、在短信验证中,把验证码替换成超链接、在语音验证中,需要用户按键进行交互(如“这里是Google账号密码重置服务,确认重置请按1″)等。一些服务商也已根据此项研究改进了他们的密码重置方案。

(论文原文:Nethanel Gelernter, Senia Kalma, Bar Magnezi, Hen Porcilan. The Password Reset MitM Attack. 2017 IEEE Symposium on Security and Privacy (S&P 2017). http://ieeexplore.ieee.org/document/7958581/)

(本文完成于2018年1月16日,2018年1月19日首发于ArkTeam

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据