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