0x00 背景
2013年互联网金融对的发展令人震惊。不论是网上银行、移动支付、三方支付、个人贷款都在迅速崛起。工作需要,上年12月初步探测(不能说研究)了下微信支付,其他小伙伴做的支付宝,现在就将探测到的一些成果比较后分享下。
概念性东西,例如微信支付不做过多说明,不了解的去看下百科。支付宝是小伙伴在研究我也不算很清楚,不过拿他测试的结果来和微信支付做下比对以更好的说明问题。
0x01 微信支付与支付宝钱包简单介绍
微信版本号:5.1
支付宝钱包版本号:7.6
微信支付的整体消费流程是这样子的:
微信账号--->绑定--->验证--->设置支付密码--->消费
为了更好的测试,我就绑定了自己的银行卡并消费。具体过程百科已经很详细贴个图说明下,绑定结果。大企鹅的绑定验证过程是怎样的呢?经过自己的测试我们不难发现验证过程是这样子:
1.初次绑定卡:
再次绑定其他卡相对简单只需要,预留手机、手机验证码。(这时候你会发现该微信只能绑定以第一张开户的户主的其他卡片,想绑定其他人卡与该微信对不起客官,不可以)。当以上信息同时满足时,银行卡便被微信绑定,支付时只需要
--->支付密码(6位数字)
不同的行银行卡最高限额不同。
支付宝钱包消费:
支付宝账号--->消费支付宝、消费信用卡、消费储蓄卡、消费余额宝
消费方式有三种:
1.复杂支付密码
2.数字支付密码(6位)
3.小额面密。
仍用一张图说明3种支付方式的依赖关系:
0x02 探测结果及比对
经过以上的消费过程,我们不难发现这些的全部过程我们的银行卡密码是完全没有用到的。ok,个人认为这些可称作快捷支付吧?那么我们的银行卡会不会被别人恶意绑定并消费呢?看微信给出的答案:可以。支付宝钱包给出的答案是:不可以。为什么呢?我们来分析下:
微信的绑定过程在上面已经了解过了:重新去注册个新的微信按以上步骤去绑定、消费。我们发现是完全行的同的。而且不同的微信账号,设置不同的支付密码去同时消费同一张银行卡。绑定过程:卡号+身份证+卡片预留手机号+手机验证码。做一个不要脸的假设,社工搜集(可以对自己的同事下手,哈哈)一旦搞定手机(借收机打个电话、也有小伙伴说补卡)你钱就没了。小心同事借你手机打个电话你的银行卡上的钱就莫名其妙的少了………… 恭喜你,他可以随意消费你的银行卡了。
卡号+身份证+预留手机+验证码---|---|-->钱少了
一个图说明下银行卡和微信直接多对多(一个微信可以绑定多个第一个卡片户主下的其他卡片)的关系:
那么支付宝钱包为什么不可以呢?我们都知道,注册支付宝的时候会有实名验证,而且你一但注册是不能二次注册的。而后期的消费过程中密码设置更是逐层要求相加。例如你想小额免密支付,必须有以上两个密码设置。支付宝安全首先从,根本抑制了以上微信中的问题。当然Tencent注册的底层基数已经不可能抑制,那么是不是从安全角度去思考是不是该比阿里做的好点呢?为了表明本次探测的真实性,贴几张探测过程中的图片证明:
同一张卡被不同微信绑定:
两个手机最后消费成功的证明:
根据上面的图标我们可以清晰的分辨事实的可行性。
0x03 其他
本diaosi,在Java空白加上本身编程能力不强,所以没对相关apk做反编译。另外,对于微信银行做了简单探测,发现绝大数都是跳到自身银行WAP页面进行的相关操作,要想做神一步的研究需要伪造生成证书,过程较麻烦且数据量大,所以没有诸个测试。数据传输和数据存储部分没技术不过关没发现什么东西,有兴趣的小伙伴可以研究一下。本文仅仅起到抛砖引玉的作用,移动安全、互联网金融是热门,大家冲啊!
Yuen-Pui...
对移动支付的一些简单安全探测 | WooYun知识库...
argos jewellery boxes...
对移动支付的一些简单安全探测 | WooYun知识库...
kids Toys...
对移动支付的一些简单安全探测 | WooYun知识库...
貌似最重点的只有手机了。
一个身份证号可以注册多个支付宝,记得是5个上限
支付宝只能注册一次的小伙伴。而微信是随意的,文章中有分析的。
卡号+身份证+预留手机+验证码。有了这些信息,哪家电商不能恶意消费?
支付宝有实名,那我用这个身份证的实名重新注册一个帐号,重新绑卡即可。手机在坏人手里,这个场景目前是无解的。所有电商都一样。
移动互联网发展迅速,但是移动互联网的相关安全发展的没有那么快,总是 黑客攻击->厂家防御。