如何看待支付宝 1 月 10 日被曝光的非密码登录模式下可能出现的账户安全风险?

原问题在这里:

如何看待支付宝 1 月 10 日被曝光的非密码登录模式下可能出现的账户安全风险?


前面有做前端的和做安全的大V都表态过了(态度都很激烈但没什么技术含量)。我原来在阿里是做算法的,也来说几句,尽量从算法工程师的角度提供一点思路,说说这事有道理在哪里,又没道理在哪里,不要两边都一棒子打死。

为了便于大家理解,我们做个简化的假设,支付宝觉得让你被冒名顶替的概率降到100w分之一及以下,就算安全。(先不说合不合理)。根据这个假设,支付宝统计了一些安全策略(具体数值是我假设的):

  1. 全新设备上登录,冒充的概率是50%
  2. 原登录过的设备上登录,冒充的概率是2%
  3. 能输入密码,冒充概率是0.1%
  4. 不能输入密码,冒充概率是80%
  5. 能收短信,冒充概率2%
  6. 不能接收短信,冒充概率30%(这个很正常,手机没带或者换了)
  7. 认得最近购买过的商品,冒充概率40%
  8. 不认得最近购买过的商品,冒充概率90%(就是随机选不中的概率)
  9. 用过的网络登录,冒充概率5%(这个假设还是比较合理的,毕竟兔子不吃窝边草)
  10. 从没用过的网络登录,冒充概率80%
  11. 认得用过地址,冒充概率30%(这个有心的话知道的应该还比较多,随机攻击的话就少了)
  12. 不认得用过地址,冒充概率80%
  13. 认得联系人,冒充概率30%(同上)
  14. 不认得联系人,冒充概率80%

那么现在你来登录了,有这么几种情况:

  1. 直接拿原来手机密码在原始网络登录,密码对了:这个概率是2*3*9,大约是1/100w,所以安全性达到了,直接登录成功。
  2. 新换了手机登录,密码和网络对了,3*9大概50/100w,对不起安全性还不够,还得加上个短信验证,3*9*5,正好1/100w,登录上了。
  3. 出去旅游换了新手机,3对了才1/1000,远远不够,还需要短信验证,在加上各种联系人,买过的商品认证,凑了几个到1/100w以下,才可以登录。

看明白了吗,这其实是一个将可计算的风险降低到足够小的过程。


当然,我这里的假设有些硬伤,实际上:

  1. 规则和概率都是机器学习出来的(可能有经验决定的,不过应该少,以他们过度相信机器学习的作风来说)
  2. 概率总和不是乘积,而是通过某个风控模型拟合出来的
  3. 不同规则不是独立的(比如联系人认识但不认识亲密付是谁,这个会大大提升被冒充概率)
  4. 规则也不是时间上独立的(比如连续验证正确,可以降低被冒充的概率;而以前验证正确的这次错误了,会提高被冒充的概率。)

所以那种说“本人亲测”,然后自己拿自己手机然后注销登录给你看的,简直萌蠢。要黑得有深度,也至少要像我这样,有个基本的了解才行啊。


就像前面某大V说的,机器学习能降低整体风险,但是忽视个例。就是说,我有99w9999个人登录都没有问题了,你这个个例其实是不影响它的云作弊——哦云反作弊,的成绩的。而且对于不明真相的用户感情并没有照顾到,因为用户并不了解你这些技术细节,他看到的只是没输入密码,只是选了几个选项就登录上的事实,虽然这个事实后面隐藏了一个足够低的概率。

记得我看过一个体贴用户的例子,有人问微信转账的时候那3秒钟转圈时间系统在干什么?有内部人士说,其实啥都没干,你点确认的那一瞬间钱就已经出去了,多转3秒只是为了让用户感觉放心,觉得钱没那么容易被挪出去。——这虽然有人看来觉得好笑,但是我觉得就是阿里欠缺的地方——做产品的根本就没有从用户的角度去想问题。

编辑于 2017-01-11 14:16