今天早上登录手机淘宝,发现需要重新输入密码,经数次尝试,确认登录密码被更改。通过找回密码改正密码后,进入淘宝。发现购物车中多了一件商品,价格99元。(如图1)
自己之前购买的还没发货的某样商品被退款,当然,货款是留入自己的余额宝账号。没有造成资金损失。
通过淘宝的安全设置,发现自己的账号绑定了别的设备。(如图3)
账号被盗,只是登录密码被更改,支付密码还没有被改。由于本人谨慎,没有打开“小额支付免密”功能,平时买个包子都要输一遍密码。所以,没有造成任何资金损失。但所有的发货地址信息已经泄露,会导致接下来的以我的名义借钱诈骗、以其他人的电话号码破解更多账号的问题。(破解手法我会在下面进行分析)
本人是iOS软件开发工程师,平时很注意安全方面的问题。从没有在Android系统上登录过淘宝账号,使用的iPhone手机没有越狱(iPhone 手机的沙盒机制在木马方面不会有问题),工作、生活都是使用Mac电脑且没有下载过不正规的软件、视频。基本可以排除是木马盗号的可能。
而在近三个月内,经常收到阿里巴巴的更改密码的验证码的短信(如图4)。初步怀疑是通过点击找回密码,尝试输入验证码的手段更改密码。
(图4只截取了今天的短信信息,事实上这三个月经常会收到这种短信,大约共有30条。)
短信验证码共有6位,所以,如果是遍历尝试,每次输入正确的概率只有百万分之一,而正常来说,验证码输错次数过多,应该会有对应的安全处理机制。此时,我怀疑两种可能:
1. 短信返回的验证码并不是完全随机,而是只在数据库里存了几千至几万个6位数字。
如果是这样,盗号贼可以编写软件,将自己掌握的数百至数千个手机号用户循环点击找回密码,然后每次输入固定的几组验证码。
2. 阿里的验证码机制有问题,可以输错无数次还能继续尝试。
第一种情况我是没有办法证明了,我模拟盗号者角色,在已知用户手机号的行为下进行盗号,去验证第二种情况。
首先,在余额宝手机客户端,点击找回密码,输入手机号,选择手机短信验证,点击发送短信,然后可以随意输入6个数字进行尝试,3次输错后,就无法再验证,需等1分钟重新发送验证短信才可以继续验证。所以,支付宝的入口是没有问题的。
然后,使用同样的手法操作淘宝手机客户端,同样没有问题。
前两种入口收到的短信样式与这几个月收到的短信不一样。
最后,通过电脑端进行尝试。考虑到短信的前缀都是“阿里巴巴”,进入阿里巴巴的网站进行尝试。www.1688.com。进入后点击忘记密码,输入用户的电话号码,会出现让你选择之前购买过的商品,随便选错商品,可以再选择通过手机校验。点击发送短息,收到的短信格式和之前的完全一样,然后开始随便输错多次,发现即使输入正确的,也无法校验通过。此时,再点击发送短信,这次收到的短信校验码和之前的一样。输入少量几次错误的校验码,再输入正确的,可以成功进入更改密码页面!无需输入原有密码就可以更改密码的页面!
综上所诉,我可以编写软件:
1. 存储获得的一万个电话号码(获得电话号的途径就太多了)。
2. 存储20个不同的六位校验码。
3. 循环执行以下操作:进入阿里网站找回密码的网页。登录一个用户。随机选择商品进入手机校验页,输入五次校验码,如果错误,点击重新发送短信,再输五次。如果全部错误,换一个用户再试。以此类推。如果正常,进入更改密码页面改成自己的验证码。
4. 所有的用户循环执行完。明天再执行。
这样,每个用户每天最多能收到4条短信息。每天有25分之一的概率破解一个用户的密码。通过这个用户存储的好友信息、地址信息,会获得更多用户的电话号码。增大用户基数,更大概率地破解密码。
几个月前收到了校验码的短信,我就知道有人在盗号,但是,阿里巴巴没有任何解决的途径。十年前的QQ,发现有人在破解密码时,可以将自己的密码更改的更复杂,避免盗号。而现在,几乎用十年前同样的破解手段,我却什么也做不了。校验码号是简单的6位数字,一共只有100万种组合,做为用户我没有任何权限去更改校验码的长度。我也没有权限去禁止他人点击“找回密码”。每天收到校验码短信,我却无能为力。号被盗了,数次播打电话反馈阿里却无人接听、或是说我提供的用户名不存在,不能投诉。
各位如果也遇到这种情况。能做的,只能是将余额宝里的钱转回银行卡,并解除与银行卡的绑定。关闭小额支付功能。
希望阿里的相关人员可以看到这篇文章,优化用户的安全机制。
2017.01.12补充:最近支付宝出了验证漏洞事件,回想了一下之前被盗号的经历,发现上文所述的盗号方法还有优化空间。“进入后点击忘记密码,输入用户的电话号码,会出现让你选择之前购买过的商品,随便选错商品,可以再选择通过手机校验。”中“在输入用户电话号码后,随机选择商品。”这一步骤可加大重复次数,也有很大概率猜中已购商品,达到修改密码的目的。加此方法,盗号成功率会增加很多。