昨天我在打开闲鱼App的时候,遇到了这样的“安全校验”:
当时我就乐了,这九张图里面,八张都是女性服装,衣服啊丝袜什么的,这些我这个单身狗完全是不可能买的嘛。我把这张截图发到朋友圈,果然引来很多吐槽。
刚好朋友圈评论中有朋友提到这个验证的逻辑,笑过了,就来认真讨论一下这个安全校验背后的逻辑。为了让思路更清晰,我用提问的方式层层展开。
1.这个界面的性质是什么?
我们先来确认一下,这是不是某种打开App的密码?
显然不是,因为闲鱼App是不需要打开密码的。闲鱼的私密等级是不如支付宝的,支付宝都不需要打开密码,闲鱼自然也是不需要的。
所以,这其实就是验证码。
2.为什么需要验证码?
我上周刚刚给手机刷机,刷完当时就装上了闲鱼,今天是第一次打开。对于闲鱼App来说,这和在一台新设备上登录没什么区别,所以要开启安全验证。
说到这,背后有个隐含的逻辑:在新设备上登录某个App,需要开启安全验证。
很多人到这一步,会把这些事情当作理所当然,而忽视了背后真正的原因。这个问题也可以换个说法:
3.这个验证码在防范什么?
验证码从诞生之初起,就是为了防范区别人和机器人,这里的机器人代指能模拟人进行注册或者登录等行为的程序。
说到这,就要涉及到账户安全了。
早期的验证码最主要的作用是防范恶意注册,一般是一些变形的数字,人可以读懂但是机器人识别不了。例如这样:
后来出现了能进行图像识别的机器人,这种验证码就渐渐没落了,有的越来越难认,有的演化成这样:
近年来随着移动互联网的发展,验证码的场景发生了变化,很多时候我们不仅需要登录者持有正确的账号和密码,还希望他是在绑定的手机上登录,这时候,短信验证码就被推上了历史的舞台。
从某种意义上来说,验证码可能比账号密码还重要。
现在很流行“撞库”攻击,很多用户在不同网站和App用一套账号和密码,只要其中一处被黑客攻破,账号和密码就会被收集到社工库,然后用工具对其他网站或者App进行撞库攻击。我曾经搜索过自己被盗过的账号和密码,在社工库中找到了12处,令人触目惊心。
社工库中的账号和密码太多,互联网上的网站和App也太多,黑客不可能一个个手动输入,必须依赖工具批量登录,这时候,即使登录的账号和密码都正确,也很难过验证码的关。从这个角度上来说,验证码可能比账号密码还管用。
前面我们已经提到,短信验证码同样具备验证登录者的作用。既然都是验证码,那为什么不用短信呢?
现在绝大部分App都在用短信验证,包括银行的客户端,可见短信验证的安全性也是经得住考验的。
因为“选择购买过的商品”的目标是这个账号背后的人,而短信验证码的目标是这个账号曾经绑定的手机,人显然比手机更靠谱。
5.这9张图的内容是怎么决定的?
说完了安全,就需要说一下产品了。每个产品都有自身的风格,这个验证码既然是App登录的一个环节,自然也是要契合这个风格的。
坦率地说,从9张图中选1张自己买过的东西这种方式还是很有趣的,而且也不需要像短信验证码那样让用户等待,徒增枯燥之感。
此时还得考虑一个新问题:如果用户忘记自己买过什么东西怎么办?
这也是选这种验证方式不选短信验证码的不足之处——没有人读不出短信验证码,但是未必所有人能记住之前买过的商品。
为了解决这个问题,闲鱼在算法上做了一些设计(以下都是我的推测):
一共九张图,除了一张用户买过的商品之外,其余八张全部推送和用户从来不会购买的商品。这样一来,用户即使忘记了自己购买过的商品,也能推断出哪个是自己买过的。比如说给我推送8张母婴用品,我自然也不会去点,即使我忘了自己买过的是哪个。
至于如何给用户推送8张完全不会购买的商品,这个就依赖淘宝的大数据支持了。根据用户以往的购买记录,勾勒出一个用户画像,然后就可以判断出他不会买什么了。
以上可以解释,为何9张验证的图片,八张风格如此高度统一,因为那是系统选择了某一类你最不可能买的商品。