电商交互系统中,常用的加密手段

系统对接第三方支付,系统安全,应该是重中之重的一步。下面,我们就一起探讨常用的加密场景与加密用法。

首先,我们要明确一下概念。我们经常听说:“公钥加密,私钥解密”;还有就是“私钥加密,公钥解密”之说,然而,实际应用中,以及在密码学中,没有这么叫的。

 

公钥加密私钥解密

“公钥加密私钥解密”,通常称之为“公共密钥加密系统”。利用公钥进行加密,而用私钥解密,这种场景属于数据保护,数据传输过程中都是密文传输的,该中方式通常称为信封,如我们邮件时的信封,保证内部不被人看到。而如果利用私钥加密,利用公钥解密,虽然行得通,但任何拥有公钥的接收方都可以解开数据,而公钥本身就是公开的,这样实现不了数据保护的目的。

 

私钥加密公钥解密

“私钥加密公钥解密”,则通常称之为“私钥签名,公钥验证”,或“公钥密钥签名系统”。顾名思义,私钥加密,公钥解密,这种方式,是对数据做一个数字签名。在传输的数据中,加上一个数字签名,保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。该种方式通常称为手印,保证收到该信的人,能够确认发信人的身份。然而数据传输过程中,都是采用明文进行传输的。

 

而电商交互系统中,对接第三方支付时,一般都是选用“私钥签名,公钥验证”的方式。因为黑客窃取了用户的支付信息之后,它一旦篡改了支付信息,这笔交易就会交易失败。所以它拿到用户的支付信息时没有用的。

 

下面,一起来看一下,使用“私钥签名,公钥验签”的过程:

假设一个场景。某电商商家A,要与某第三方支付公司B对接。

 

首先,A电商与支付公司B,要保留自己的私钥,告知对方,自己的公钥。

即:A把A公钥告知支付公司B,A自己保护好A私钥;B把B公钥告知A电商,B自己保存好B私钥。

       

当电商A有用户购物时,即A欲传递支付信息给B,而支付公司B对接了很多家电商,为了告知B,这是A电商上面发送的支付请求,A会对该信息做一个数字签名。

1、通常,我们会对支付信息做一个MD5,得到支付信息的HASH值,即信息摘要。摘要格式:【MD5(信息)】


2、然后,A使用自己的私钥,对该摘要信息进行加密,得到【A私钥(MD5(信息))】


3、最后将明文请求信息与密文一起传递给B。B得到的支付信息:【(明文信息)+A私钥(MD5(信息))】

 

                              (明文+加密的摘要)

 

B接收到请求后,开始验签。得到如上格式的请求信息:【(明文信息)+A私钥(MD5(信息))】

1、使用跟A相同的HASH算法,如同一个MD5算法,对明文信息进行加工得到:【MD5(信息)!!!】


2、使用A提供的公钥文件,对传递过来的私钥信息进行解密,即对【A私钥(MD5(信息))】文件进行解密,过程如下:【A公钥(A私钥(MD5(信息)))】=【MD5(信息)】


3、比较【MD5(信息)】与【MD5(信息)!!!】,如果相同,表示(信息)在传递过程中没有被他人修改过,验签通过。


 

这样就完成A向B的一次请求,下面普及一下支付的知识。

这是,B已经确认了A的身份,且信息没有被篡改,那么开始跳到支付公司B的支付页面,用户开始在B的支付页面,完成支付工作。

具体的支付工作,是商户A的用户,在支付平台B完成的。那么商户A如何知道A有没有支付成功呢?这时候B就要回调A。并且分为手动回调和自动回调。支付成功后跳到一个支付成功页面,该页面有一个返回商户。手动回调是用户点击了返回商户,就会回调到A的方法,返回A的页面。如果用户直接关闭了返回商户页面,或者停留在该页面好久,都没有进行操作,则会定时触发异步回调,调用A的方法。

回调的过程中,也需要对数据进行签名。不过签名方式与上面完全类似。

 

B回调A时操作如下

1、同样,我们会对返回信息做一个MD5,得到返回信息的HASH值,即信息摘要。摘要格式:【MD5(返回信息)】


2、然后,B使用自己的私钥,对该摘要信息进行加密,得到【B私钥(MD5(返回信息))】


3、最后将明文请求信息与密文一起传递给B。B得到的支付信息:【(明文信息)+B私钥(MD5(返回信息))】

 

                                      (明文+加密的摘要)


A接收到从B发送的回调信息,开始验签。得到如上格式的请求信息:【(明文信息)+B私钥(MD5(返回信息))】

1、使用跟B相同的HASH算法,如同一个MD5算法,对明文信息进行加工得到:【MD5(返回信息)!!!】


2、使用B提供的公钥文件,对传递过来的私钥信息进行解密,即对【B私钥(MD5(返回信息))】文件进行解密,过程如下:【B公钥(B私钥(MD5(返回信息)))】=【MD5(返回信息)】


3、比较【MD5(返回信息)】与【MD5(返回信息)!!!】,如果相同,表示(信息)在传递过程中没有被他人修改过,验签通过。


 

通过上面的讲解,我们大体上介绍了,电商交互系统中,如何做数字签名。保证了信息在传递过程中,不被篡改。

 

文章推荐:

http://bbs.csdn.net/topics/90224776

http://justjavac.iteye.com/blog/1144151#comments

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
MD5的全称是Message-digest Algorithm 5(信息-摘要算法),用于确保信息传输完整一致。在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc,的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是MD2、MD4还是MD5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但MD2的设计与MD4和MD5完全不同,那是因为MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的电脑。这三个算法的描述和c语言源代码在Internet RFC 1321有详细的描述(http://www.ietf.org/rfc/rfc1321.txt),这是一份最权威的文档,由Ronald L. Rivest在1992年8月向IETF提交。   MD5最广泛被用于各种软件的密码认证和钥匙识别上。通俗的讲就是人们讲的序列号,   Rivest在1989年开发出MD2算法。在这个算法,首先对信息进行数据补位,使信息的字节长度是16的倍数。然后,以一个16位的检验和追加到信息末尾。并且根据这个新产生的信息计算出散列值。后来,Rogier和Chauvaud发现如果忽略了检验和将产生MD2冲突。MD2算法加密后结果是唯一的--即没有重复。   为了加强算法的安全性,Rivest在1990年又开发出MD4算法。MD4算法同样需要填补信息以确保信息的字节长度加上448后能被512整除(信息字节长度mod 512 = 448)。然后,一个以64位二进制表示的信息的最初长度被添加进来。信息被处理成512位damg?rd/merkle迭代结构的区块,而且每个区块要通过三个不同步骤的处理。Den boer和Bosselaers以及其他人很快的发现了攻击MD4版本第一步和第三步的漏洞。Dobbertin向大家演示了如何利用一部普通的个人电脑在几分钟内找到MD4完整版本的冲突(这个冲突实际上是一种漏洞,它将导致对不同的内容进行加密却可能得到相同的加密后结果)。毫无疑问,MD4就此被淘汰掉了。   尽管MD4算法在安全上有个这么大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用。除了MD5以外,其比较有名的还有sha-1、RIPEMD以及Haval等。   一年以后,即1991年,Rivest开发出技术上更为趋近成熟的md5算法。它在MD4的基础上增加了"安全-带子"(safety-belts)的概念。虽然MD5比MD4稍微慢一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法,信息-摘要的大小和填充的必要条件与MD5完全相同。Den boer和Bosselaers曾发现MD5算法的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了。   Van oorschot和Wiener曾经考虑过一个在散列暴力搜寻冲突的函数(brute-force hash function),而且他们猜测一个被设计专门用来搜索MD5冲突的机器(这台机器在1994年的制造成本大约是一百万美元)可以平均每24天就找到一个冲突。但单从1991年到2001年这10年间,竟没有出现替代MD5算法的MD6或被叫做其他什么名字的新算法这一点,我们就可以看出这个瑕疵并没有太多的影响MD5的安全性。上面所有这些都不足以成为MD5的在实际应用的问题。并且,由于MD5算法的使用不需要支付任何版权费用的,所以在一般的情况下(非绝密应用领域。但即便是应用在绝密领域内,MD5也不失为一种非常优秀的间技术),MD5怎么都应该算得上是非常安全的了。   2004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto’2004)上,来自国山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告,公布了MD系列算法的破解结果。宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然大波。   令世界顶尖密码学家想象不到的是,破解MD5之后,2005年2月,王小云教授又破解了另一国际密码SHA-1。因为SHA-1在美国等国际社会有更加广泛的应用,密码被破的消息一出,在国际社会的反响可谓石破天惊。换句话说,王小云的研究成果表明了从理论上讲电子签名可以伪造,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值