安全研究人员Elie Bursztein和Ilan Caron对Google用户使用的数以百万计的密保问题及答案进行了数据分析,研究结果表明,密保这种“忘记密码”后最基本的验证方式存在诸多安全隐患。
你的密保问题安全吗?
你第一个宠物的名字叫什么? 你最喜欢的食物是什么? 你母亲的婚前姓是什么?
这些看似随机的问题有什么共同点?他们都是典型的“密保问题/安全问题”。你很可能回答过这种密保问题——很多在线服务用这些问题帮助用户在忘记密码的情况下进入账号,或者用作防止异地登录的额外安全保护。
尽管密保问题非常普及,他们的安全性和效率很少被深入研究过。我们对Google用户们使用的数以百万计的安全问题和答案进行了分析,然后计算黑客猜解这些问题答案的可能性。
最终我们得出的结论是——密保问题既不安全也不可靠,它不能够被单独当做“忘记密码”的恢复机制。因为所有的密保问题都有一个基本缺陷:问题的答案要么安全但很难记忆,要么容易记忆但并不安全。
易被猜解的密保问题
密码保护答案通常都会包含大家都知道的某些信息,或者由于文化的原因,答案被局限在某个小范围里面——比如某些国家中,有些姓比较常见。
我们的一些具体发现:
如果攻击者猜一次,他就有19.7%的概率猜到英语国家用户的“你最喜欢的食物”问题(顺便提一下,答案是“批萨”); 如果攻击者猜十次,他就有近24%的概率猜到阿拉伯语国家用户的“你第一位老师的名字”问题; 如果攻击者猜十次,他就有21%的概率猜中西班牙语国家用户的“你父亲的中间名”问题; 如果攻击者猜十次,他就有39%的概率猜中韩语国家用户的“你出生的城市”问题,有43%的概率能猜到他们最喜欢的食物。
而如果将密保设为“你的手机号码是什么?”这类相对私密的问题呢?
我们研究表明,37%的用户会故意为该问题设置为一个假的答案,并自作聪明地以为这会使得问题更难猜。事实上这种做法适得其反,因为很多人会想到一块去并使用相同的“假答案”,这反而增加了攻击者猜解正确的可能性。
问题安全了,但答案记不住了
“你母亲在哪读小学?”“你的图书馆卡号是多少?”这类密保问题的答案总归安全了吧?是的,但是这种问题的答案也更加难以记忆。
调查显示,40%美国用户回想不起他们的安全问题答案,上述两个问题,用户想起正确答案的概率仅为22%和9%。
用户对于相对简单的问题“你父亲的中间名?”记起答案的概率为76%,而“你的第一个手机号码?”则只有55%。
为什么不增加安全问题呢?
相比一个密保问题,两个或更多的密保问题猜解难度当然更大。但是代价就是用户成功恢复账号的概率大幅下降。
根据我们的数据,最简单的问题是“你出生的城市?”,用户有超过79%的概率回忆起答案;第二简单的是“你父亲的中间名?”,概率为74%。如果攻击者有十次猜测机会,他们6.9%和14.6%的可能性能够猜到问题的正确答案。
然而当用户需要同时回答这两个问题的时候,攻击者十次猜测,同时猜中两个答案的概率仅为1%,而用户同时回答对两个问题的概率也降至59%。
密保问题该淘汰了
密保问题是目前“忘记密码”的基本方式。但是根据本文的分析,你会发现这种方式的用户体验真的令人失望。
研究人员还是建议产品尽可能使用其他验证方式而不是密保问题,例如发送验证码到用户的手机或者备用email地址。这些是更安全,用户体验更好的方法。