@1qaz
2017-05-30T22:22:59.000000Z
字数 2182
阅读 1389
password
Nethanel Gelernter,College of Management Academic Studies, Israel, SP'17
password reset MitM(PRMitM)攻击利用了注册和密码重置两个过程的相似性,在应用层进行中间人攻击。用户在访问攻击者页面时,攻击者向一个网站发起密码重置请求,并把每个challange都转发给用户。攻击考虑了使用SMS或者语音电话给用户发送密码重置信息等情况。作者发现了Google等存在密码重置的问题,并提出了改进措施。
威胁模型:
类似于XSS、CSRF,需要用户访问攻击者控制的网站。为了能够重置用户在其他网站的密码,攻击者需要得到用户名、邮箱地址、手机号等信息,这些可以通过诱使用户在攻击者的网站上注册,提供相关的账户信息。攻击者同时发起一个密码重置请求,用户会收到CAPTCHA、安全问题、短信验证码或者语音电话,这些其实是密码重置的网站发送的,如果用户将其泄漏给攻击者的网站,就导致密码被攻击者重置。
攻击者可以提供免费的服务,如文件下载,让用户注册,或者使用一次性的手机验证码来登陆,用户愿意在这个网站上提供自己的账户信息,这是攻击前提。这个攻击和钓鱼很像,都是让用户自己输入账户信息,但这个攻击的是密码重置过程,而不是用户本身。
实验一共有536位参与者,是作者学校的学生。
为了验证这个攻击前提,138位参与者中只有6位表示不会在不认识的网站上注册或者提供手机号来获得免费服务。
在密码重置的过程中,有4中常见的challenge,从易到难:
1. CAPTCHA: 这个只是为了防止接口被自动化利用,不过为了进行大规模的PRMitM,攻击者需要将CAPTCHA转发给用户去识别
2. 安全问题:一些私人的问题来认证用户身份,攻击者也可以将安全问题转发给用户去解决
3. 发给手机的验证码:通过短信或者语音,存在一些认证的细节可以被利用
4. 发给邮箱的重置链接:PRMitM不能获取用户邮箱的内容,因此不能攻击这种找回方式。邮箱服务本身如何重置密码
Yandex,mail.com,gmx.com,reddif.com允许只回答一个安全问题和一个CAPTCHA就找回密码
对用户填写安全问题的正确性进行了实验:
52个志愿者,在网站上注册,填写邮箱,回答“母亲的maiden name是什么”,有76.9%的人提供了正确的安全问题答案。
短信验证码的几个问题:
1. 消息清晰度:短信最多160个字符,安全的验证码需要表达3个信息:发送的网站,验证码的用途(重置密码),警告用户不要泄漏验证码。
2. 短信发送方的身份:SMS spoofing可以伪造来源号码,但是用户通常不能从号码来区分短信来自哪个网站,从实验结果来看短信的内容比号码重要
3. token有效期:如果攻击者获得了短信的验证码,他可能更希望在用户睡觉的时候重置密码
4. 语言兼容性:网站发送的短信可能不支持多种语言,用户不能理解短信中的文字,只识别出了认证码
Survey:
没有一个网站警告用户不要泄漏短信验证码
Google和Yahoo针对俄语用户的短信里没有提到短信的发送方网站
语言兼容度:
Full:支持所有测试的语言
Good: 支持所有主流语言
Partial:部分主流语言
English only
Evaluation:
使用了Facebook的短信和作者增加了警告信息的短信(detailed SMS)分别对两组用户(42+46)进行测试,可以攻击的90%Fackbook短信和79%的detailed SMS
问卷调查表明很多用户并没有阅读短信内容,只找了验证码,有些人从手机的通知栏读;另外还有用户认为这个是login with Facebook
Phone call相比于短信的不同:语音可以携带更多的信息,需要用户更多的注意力,需要兼容更多的语言,可以和用户交互
语音存在的问题:
Linkedin的语音中没有提到Linkedin。Google的某些语言中也存在这个问题,也没有提到这个是用作密码重置的
Hello! Thank you for using our phone verification.
Your code is XXXXXX. Again, your code is
XXXXXX. Good bye.
实验方法和之前针对SMS的攻击相同,39位志愿者使用英语,29位使用有问题的其他语系,只有英语的7位阻止了攻击
重置密码的code可以通过app发送 (?),只发现了Telegram支持通过app重置密码
不指明发送方身份,不解释code用途,不警告泄漏
Guideline:
1. 重置的消息要包括发送方,code的用途,警告
2. 兼容语言
3. 密码重置后通过短信和邮件同时通知用户
4. 重置链接的有效期在15分钟内
5. 禁止不安全的的重置方式
6. 在发送重置消息前需要更多的细节,不是只需要手机号