《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > SET协议的分析与改进

SET协议的分析与改进

2009-10-13
作者:陈 豫1, 陈喜阳2

  摘  要: 分析了SET协议的不足,并提出了相应的改进策略,采用更安全的数据传输方式保留交易证据,增强了抗抵赖性。

  关键词: 电子支付  SET协议  安全

 

  电子支付是电子商务的关键环节,也是电子商务得以顺利发展的基础条件。没有适宜的电子支付手段的配合,电子商务只能是虚拟商务,而无法进行网上交易。如何通过电子支付方式安全公平地完成整个交易,已成为网上交易必须面对的首要问题。SET(Security Electronic Transaction)是当前比较通用的电子交易协议,因此研究SET协议对于现在物流行业与电子商务的发展具有一定的现实意义。

1  通用SET协议的分析

  当前国内外最典型的支付模型为SET协议。SET提供对交易参与者的认证,确保交易数据的安全性,特别是保证不会将持卡人的账户信息泄露给商家。SET模型的工作流程如图1所示。

 

 

  (1)用户在银行开立信用卡账户,获得信用卡。(2)用户在商家的Web主页上查看商品目录选择所需商品,填写定单并通过网络传递给商家,同时附上付款指令,其中定单和付款指令要有用户的数字签名并加密,使商家无法看到用户的私人账户信息。(3)商家收到定单后,向发卡行请示支付认可;发卡行确认后,批准交易,并向商家返回确认信息。(4)商家发送定单确认信息给用户,并发货给用户。(5)商家请示银行支付货款,银行将货款由用户的账户转移到商家的账户。

  SET协议已成为电子商务中在线支付的一种主要模式,但由于在通用的SET协议模型中,SET交易复杂,且存在一定的局限性,因此其推广受到一定的限制。目前SET协议存在的主要问题如下。

  (1)SET不支持商品的原子性。(2)SET不支持抗抵赖性。SET协议没有解决交易过程中的证据保留问题,对交易后的数据的保存和处理没有说明。SET协议仅能做到对支付信息的认证,没有解决交易中证据的生成和保留问题,因此不能为交易保留法律性的依据。当顾客和商家发生争议时,缺乏有效说明来划分责任,无法满足电子商务协议的公平性原则。(3)整个交易的流程太复杂,参加认证的实体太多,给程序的设计带来很大不便。(4)SET协议中对交易过程没有作状态描述,使顾客或商家对交易的状态难以把握。(5)加密算法通常采用的是RSA算法,加密和解密时间复杂度比较大,从而使交易时间过长。(6)关键数据的传输不是很安全。

2 SET协议改进策略

  针对SET协议存在的问题,本文提出了相应的改进策略。改进后的SET协议模型如图2所示。在客户和商户之间采用了客户交易代理和商户交易安全平台,以保证数据的安全传输。支付网关是SET交易实体和金融网络的接口,可以看成是金融网络的代理,并可以作为诚信的第三方,通过它可以减少交易认证流程的复杂度。

 

 

2.1 客户交易代理和商户交易安全平台

  电子交易过程中涉及到用户与商家之间的机密数据,如用户信用卡信息、交易码等,因此需要解决电子交易过程中的安全问题。在电子交易过程中可采用客户交易代理和商户交易安全平台协商产生安全通信,保护客户端与Web服务器间传输的数据。客户交易代理负责客户端端密钥的管理及与服务器端连接的安全性。商户交易安全平台负责服务器端密钥的管理及保证服务器端的安全性。客户通过安全通道与商户建立连接,双方交换证书,彼此验证身份,确认身份的真实性、合法性。服务器与客户端可相互查询CA证书中心以获取对方的公开密钥。假设K11和K12分别代表服务器端公钥和私钥,K21和K22分别代表客户端的公钥和私钥。安全通信的建立过程如下。

  (1)客户端建立起与服务器端IP与特定Port端口的连接相关联的网络套接字,向服务器申请网络连接。(2)服务器端侦听特定端口,检测发送方的客户端是否有建立连接的请求,如有则在服务器端,针对客户端的发送套接字构建相应的接收套接字。(3)等待服务器接受连接申请后,客户端向服务器端发送一随机数R1。(4)服务器端也产生一个随机数R2,并用自己的私有密钥K22对R1、R2加密,得(R1、R2),传输给客户端。(5)客户端接收到(R1、R2)后,采用服务器的公开密钥对其进行解密,将得到的解密结果与原始R1对照,确认服务器端合法性,完成对服务器的认证。同时对R2解密结果使用自己私有密钥加密得到(R2),传输到服务器端。(6)服务器采用客户公开密钥对(R2)解密并和原始R2对照,完成对客户端认证。

  这样服务器端和客户端就建立了信任连接,在电子交易过程中采用客户交易代理和商户交易安全平台,实现数据安全传输。

2.2 改进后SET的流程

  改进后的SET的工作流程如下。

  (1)客户通过安全通道与商户建立连接,双方交换证书,彼此验证身份,确认身份的真实性和合法性。

  (2)客户向商户发送购买初始请求。传输的信息用商户的公钥加密,用客户的私钥做数字签名。

  (3)商户收到初始请求后,向客户发回初始回答信息,其中包括支付网关的公钥(这是为了客户发送支付信息时,不让商户看到信用卡的资料)及本次交易的ID、收到初始请求的时间t1。所有的信息用客户的公钥加密,并用商户的私钥做数字签名。

  (4)客户看到商户的回答,分别验证商户和支付网关的合法性。核实之后,向商户发送购买信息,包括2部分:①给商户的购买信息,即商品和这次交易的ID(用商户的公钥加密,用客户的私钥做数字签名)。②商户将转发给支付网关的支付信息(用支付网关的公钥加密,客户的私钥做数字签名)。

  (5)商户收到购买请求后,核实信息的合法性,将客户的购买信息存到本地数据库,然后同时处理2件事情:①从本地得到接收订单的时间t2,结合货物的配送、与支付网关的通信条件,设置到货的停滞时间t3,向客户传送购买回答信息(用客户的公钥加密,商户的私钥数字签名)。②请求授权和转发客户发送的支付信息给支付网关(用支付网关的公钥加密,商户的私钥数字签名)。

  (6)客户验证收到的购买回答信息的合法性,接着客户交易代理将购买回答信息存到本地数据库。

  (7)在进行第(6)步的同时,支付网关根据商户发来的信息验证商户和客户的合法身份,然后支付网关向银行发出授权请求,证明客户的信用卡有效。当收到回答后,就向商户发出授权回答,其中包括支付的令牌、客户的支付信息、商户确认的t2与t3(用商户公钥加密,支付网关的私钥做数字签名),同时将这些信息存到本地数据库,以备核实。

  (8)商户收到网关的授权回答后,核实合法性,计算停滞时间是否比原来的t3大。如果是就向客户发送消息,说明原因并表示立即送货(用客户的公钥加密,商户的私钥数字签名),客户收到核实后,可以按照上面的时间查收货物或咨询商户。

  (9)随后商户通过支付网关向银行要求定货金额转账。商户向网关发送支付的捕获请求,包括网关发来的支付令牌(用支付网关的公钥加密,商户的私钥做数字签名)。

  (10)验证商户及支付令牌的合法性,并按照支付的金额向银行发出转账请求,银行将金额转账到商户,同时回答支付网关。

  (11)支付网关给商户发送支付捕获回答(用商户公钥加密,支付网关的私钥做数字签名)。

  (12)商户收到支付捕获回答,验证合法性,存到本地数据库,以备和银行发生账物纠纷时清查。

3 结  论

  改进后的SET协议简化了交易的复杂度,减少了认证的实体,降低了程序设计人员的工作强度,使SET协议的实现更加容易。通过安全的客户交易代理和商业交易平台之间特有的安全通信,保障了核心数据的安全传输;保证了客户的信用卡信息不被商家看到;保证交易的各方都是合法的实体;保证了各方收到的信息都是完整的;保留了交易的凭证,使公平性得到保障。

参考文献

1 方美琪.电子商务概论.北京:清华大学出版社,2002

2 王永峰,唐毅.SET协议的安全性分析及改进.微型电脑应用,2001;17(7)

3 张大陆,李恩民.SET的支付流程分析和改进措施.微型电脑应用,2001;17(8)

4 尹存燕,谢俊元.一个公平、有效的安全电子交易协议.计算机应用研究,2002;(1)

5 刘文远,唐杰,邓玉成等.原子和公平匿名的电子交易协议的研究.计算机工程与应用,2003;(3)

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。