当前位置:文档之家› 微信电子商务安全问题分析.陈凯

微信电子商务安全问题分析.陈凯

微信电子商务安全问题分析
截止今年第一季度末,微信每月活跃用户已达到5.49亿,用户覆盖200多个国家、超过20种语言。

此外,各品牌的微信公众账号总数已经超过800万个,微信支付用户达到4亿。

在这么庞大地直接或者间接微商群体面前,不论是使用微信从事微商行为的个人或者企业,还是官方微信,他们其中任何一方产生了诚信懈怠,都会造成上亿消费者的利益损失,微信已经真正影响到百姓的日常生活、社会的和谐发展。

首先是虽然“微商”具有便捷特点,但由于买卖双方不见面、信息沟通不对称、付款资金缺少第三方托管,直接造成推销商品质量不确定性、退换货等售后服务难以保证,容易对消费者的合法权益造成损害。

而出现这个问题的的原因无非两点:其一,无信用体系保障。

作为只是提供购物平台的第三方很难保证商家个人的信用体系,缺乏高效有用的维权渠道;其二,对商家的监管考核难度大。

第三方平台无法做到对微商的资质、规模、产品质量等进行严密考核,间接地讲就是无法确保消费者的终极利益。

其次就是微信的支付安全问题。

微信支付的发展势头非常良好,很多商家都在踊跃接入,比如大众点评、易迅、唯品会、南航、广东联通等企业都相继开通微信公众账号和接入微信支付。

腾讯在支付主要产品是财付通,微信支付其实也是建立在财付通之上。

新版微信5.0.3重新优化了绑定银行卡的流程,是由中国人保财险(PICC)全额承保。

其微信支付主要有三个使用场景:微信公众平台的支付、APP支付、二维码扫描支付。

事实上,微信支付是目前市场上最安全的移动支付工具,有财付通的技术支持,多级风险控制和保险赔付的完整体系。

并且每个商家都进行了非常严格的评估,仔细考量他们的商誉,因此微信支付的安全性要胜于市面上其它移动支付产品。

最后微信系统所使用的加密算法是现下绝大部分通信软件中较为常用的RSA密钥和AES随机密钥加密算法,其加密方式在现有通信社交软件中属于最高加密等级,破解其加密算法具有极大的难度。

其一:RSA公钥加密算法
RSA加密算法:目前最有影响力的公钥加密算法,从提出到现在已近二十年,能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。

RSA属于公开密钥密码体制。

所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。

RSA属于非对称算法,公钥加密私钥解密,或者私钥加密公钥解密,公钥和私钥的关系是唯一的,公钥不等于私钥。

RSA安全性在于密钥的长度,密钥长度越长,安全系数越高,微信用的1024位的密钥,据说目前计算机速度破解需要2年。

RSA加密算法加密流程:
1)加密端产生明文字符串,获取CER认证公钥。

2)加密机制通过Encoding指定不同的代码页,把字符串转化成不同页码对应的编码,表现为byte[]形式,再将Byte[]字节流明文发送。

3)使用CER证书的公钥对byte[]字节流明文进行加密操作,以byte[]密文形式发送。

相对应解密流程:
1)将公钥转化为PFX证书的私钥,使用PFX证书的私钥对byte[]密文进行解密,还原为byte[]明文字节流。

2)使用加密时Encoding使用的代码页,把byte[]形式的明文转化成是字符串明文并发送。

目前解密技术能力下可行的破解RSA的方法是:替换公钥。

其二: AES随机密钥加密算法:
AES 是一个新的可以用于保护电子数据的加密算法。

明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。

与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。

通过分组密码返回的加密数的位数与输入数据相同。

迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。

这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。

微信通信中使用的128位的AES随机密钥,128位AES的加密强度是56位DES加密强度的1021倍还多,假设可以制造一部可以在1秒内破解DES密码的机器,那么使用这台机器破解一个128位AES密码需要大约149亿万年的时间。

目前的解密技术下,AES只有知道密钥才能解,不知道密钥至今尚没有可行的破解方式。

微信通信系统选用Protocol Buffer作为通信协议。

Protocol Buffer:是Google 的一种数据交换的格式, Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。

他们用于 RPC 系统和持续数据存储系统。

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。

它很适合做数据存储或 RPC 数据交换格式。

可用于通讯协议、数据存储等领域的与语言无关、与平台无关、可扩展的序列化结构数据格式。

目前提供了 C++、Java、Python 三种语言的 API。

Protocol Buffer还有一个非常重要的优点就是可以保证同一消息报文新旧版本之间的兼容性。

它独立于语言,独立于平台。

由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。

可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换,作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域,属于开源项目。

相关主题