「别人可以修改你的支付宝密码」漏洞,是哪里出了问题?

知乎日报 刘一鸣 157℃ 评论

「别人可以修改你的支付宝密码」漏洞,是哪里出了问题?

图片:Yestone.com 版权图片库

刘一鸣,啊,这家伙很懒的

安全从业者,非阿里

支付宝的验证,其实是个认证问题,它自创了一类认证因子。

认证问题是什么?

是你如何向我证明你是你。

想象一个外貌口音上你完全没见过的人,告诉你他代你一个朋友取走存放在你这的钱。

OK,你如何相信他?

最简单的确认办法就是让他告诉你一个你和你朋友才知道的「秘密」。

这个确认秘密的过程就是认证。

无论是密码,或者指纹,或者手机,或者钥匙,都是用来完成认证的「秘密」。不同的秘密也叫做不同的「认证因子」。

确定何时使用何种认证因子,是安全设计中要解决的。

想象一下,你显然不能因为陌生人提了你朋友的名字,就把朋友的钱给他。因为名字这种认证因子 ,并不足够秘密,在涉及资金时,我们说「认证强度不够」。

当然,如果只是取一块钱,或者向你问路,提名字这种认证方式还是够的。这是「根据不同场景确定不同强度认证」。

 

我们回过头来看阿里在修改密码这个场景的认证。这个问题火了,是大家在质疑找回密码场景下,这种认证因子的认证强度不够。

后来又出现澄清,说检测了网络环境,这是「补充认证」 ,或者叫「多因子认证」。

OK,这涉及到如何评估不同场景下需要的认证因子及其强度。

我们做安全,知道危害性取决于:威胁、价值、脆弱性 (或者按其他模型,也是一个意思)。

那么我们怎么评估不同场景下认证因子的安全性呢。

一方面,是考虑场景需要的认证强度,做这个操作,我需要多确定对方的身份? 对应于「价值」。

另一方面,考虑认证因子的秘密程度,这个秘密其他人可能知道或猜到吗?对应于「脆弱性」。

再有一个方面,是根据场景考虑认证因子的特点,精液指纹头发这样的东西不是随便人都能获得的,只有近距离接触的人才能获得的吧? 对应于「威胁」。

 

那我们回来看支付宝找回密码的这个认证。

找回密码这个场景下,涉及资金,价值大,认证强度的要求应当是高的。

那么两次九选一,1/81 显然是脆弱的。

但是它另一个认证因子,网络环境,有效地降低了威胁。也就是说面对的不再是网络上无数的潜在攻击者,而是共处一室可追查的几个人。

那么几个人中的 1/81,认证强度确实不见得比无数人 1/1000000 猜短信验证码低。

所以阿里用这种认证因子替代了短信验证码,是有一定的合理性的。

而不合理的地方在哪呢,是没有充分考虑这种认证因子的特点,导致可被有心人针对性攻击,造成「认证击穿」。

所以阿里的产品经理也确实需要提高一下自己的安全设计水平。

转载请注明:微图摘 » 「别人可以修改你的支付宝密码」漏洞,是哪里出了问题?

喜欢 (0)or分享 (0)
发表我的评论