浅析数据加密技术与安全电子交易( 三 )


数字签名在SET协议中一个重要的应用就是双重签名 。在交易中持卡人发往银行的支付指令是通过商家转发的,为了避免在交易的过程中商家窃取持卡人的信用卡信息,以及避免银行跟踪持卡人的行为,侵犯消费者隐私,但同时又不能影响商家和银行对持卡人所发信息的合理的验证,只有当商家同意持卡人的购买请求后,才会让银行给商家负费,SET协议采用双重签名来解决这一问题 。
假设持卡人C(customer)从商家M(mechant)购买商品,他不希望商家看到他的信用卡信息,也不希望银行B(bank)看到他有关商品的信息,于是他采用双重签名,流程如图并说明如下:
首先C产生发往M的订购信息OI和发往B的支付指令PI,并分别产生OI,PI的摘要H(OI),H(PI) 。其中摘要由一个单向HASH函数作用于消息产生,它是一个唯一对应此消息的值,其它任何消息用HASH函数作用都不能产生此值,因此用消息摘要可以检查消息在中途是否被篡改 。连接H(OI)和H(PI)得到OP,再生成OP的摘要H(OP),用C的RSA私钥签名H(OP),得sign[H(OP)],称为双重签名 。C将消息{OI,H(PI),sign[H(OP)]}发给M,将{PI,H(OI),sign[H(OP)]}发给B 。在验证双重签名时,接受者分别创建消息摘要,M生成H(OI),B生成H(PI),再分别将H(OI)/H(PI)与另一接受到的摘要H(PI)/H(OI)连接,生成OP及其摘要H(OP)’,接受者M/B用C的RSA公钥解开sign[H(OP)],得到H(OP),比较H(OP)’与H(OP)是否相同,如果相同,则表示数据完整且未被篡改,如果不同,则丢弃数据 。
3.SET交易流程
持卡人向商家发初始请求,商家产生初始应答 。
持卡人浏览商家的商品,这可以通过使用网上商店或者商家提供的CD-ROM来实现 。选好商品后要求在线支付,激发支付软件,向商家发送初始请求 。初始请求指定了交易环境,包括持卡人所使用的语言,交易ID,使用的是何种交易卡等 。商家接受初始请求,产生初始应答,对初始应答生成消息摘要,对此消息摘要进行数字签名,将商家证书,网关证书,初始应答, 消息摘要的数字签名等,发送给持卡人 。由于初始应答未被加密,所以它不应包含机密信息 。
持卡人接受并检查商家的初始应答,如无误,发出购物请求 。
持卡人接受初始应答,检查商家证书和网关证书 。接着用商家公钥解开消息摘要的数字签名,用HASH算法产生初始应答的摘要,将两者比较,如果相同则表示数据在途中未被篡改,否则丢弃 。
持卡人发出购物请求,它包含了真正的交易行为 。购物请求是协议中最复杂的信息,它包括两个部分:发网商家的定单指令OI和通过商家转发往网关的支付指令PI,通过双重签名将PI和OI结合起来(双重签名见上文说明),生成 sign[H(OP)] 。持卡人生成对称密钥,对支付指令PI加密,再用网关的公钥对此对称密钥和持卡人帐号加密,形成数字信封 。最后将持卡人证书,OI,PI密文,数字信封,sign[H(OP)],PI和OI各自的消息摘要等发给商家,其中有消息是通过商家转发给支付网关的 。
商家接受并检查持卡人的购物请求,如无误,发出支付请求 。
商家接受持卡人的购物请求,认证持卡人的证书 。接着验证双重签名,看数据在传输过程中是否被篡改 。如数据完整,则处理定单信息,产生支付请求 。
将支付请求用HASH算法生成摘要,并签名,网关收到后用商家公钥解密,并确认支付请求是此商家所发在且在途中未被篡改 。生成对称密钥对支付请求加密,并用网关公钥加密形成数字信封 。最后将商家证书,支付请求密文,商家数字签名,数字信封和持卡人通过商家转发的:sign[H(OP)],OI摘要,PI密文,持卡人数字信封,持卡人证书等发往支付网关 。

推荐阅读