BUG描述: 1.mtop接口请求协议是http,未加密,能够轻易地被中间人获取,泄漏用户隐私 2.mtop登录接口流程设计有误:用户在手机端登陆后利用者可用同样的请求再登陆一次(即利用者获取了用户登陆后的所有权限) 3.mtop登录接口中用于RSA加密的公钥N长度为1024位,易被破解(虽然token的有效期是10秒,但是利用者只需要拿到公钥和加密后的结果,在一定时间内可破解出用户明文密码。不过鉴于能破这公钥的人很少,这个问题影响级别很低,下文不做描述)..(更新:公钥强度极低,可快速(毫秒级)破解出用户明文密码) BUG影响: 使用淘宝主客时用户数据泄露、登陆劫持、用户登陆密码泄露。 BUG发现过程: 用电脑搭建一个AP,手机连接到该AP 问题1:抓包即可发现 问题2:重复POST用户的登陆请求url可以发现不会返回失败(已修复,无法重现) 问题3:(RSA算法相关,暂时不写) BUG原因: 第一点:HTTP为明文协议,容易被中间人抓包分析 第二点:token虽然有效期为10秒,但是在10秒内用户可用同样的token登陆多次,没有对登陆次数做验证 第三点:中间人可以破解出用户的密码明文 BUG终处理: 1、对协议进行加密,比如使用HTTPS 2、对于一个token,用户使用它登陆一次后应该失效 GBA传承: 1、在协议设计之初应该有安全相关的人员介入评估方案 2、加密解密相关的东西尽量使用成熟的库,能力不足自己去实现可能会埋下巨大的bug 3、测试的时候关注基本的安全点:隐私泄露、密码破解