0 引言
基于Internet的电子商务以其具有传统商务模式不可比拟的优点而在当今世界蓬勃发展。电子商务发展的关键问题就是交易的安全性,也就是网络上的信息安全,即网上电子支付的安全实现。SET安全电子交易协议是由Visa和MasterCard公司于1997年5月联合开发的,可在互联网上在线交易时保证信用卡支付安全的一个开放协议。该协议一般服务于持卡消费、网上购物的电子商务类型。在国内,目前中国银行、招商银行、中国建设银行和中国工商银行等均已开通了网上银行服务,电子支付系统在B to C,B to B和G to C方面已能实现在线电子支付。中国银行的“长城电子借记卡”和“长城国际信用卡”就是采用的SET协议。
本文根据SET协议的电子商务支付流程,对网上电子支付系统的三大模块(即购物平台模块、网关支付模块和CA模块)进行分析。同时解释了如何用数字证书、双重签名和数字签名技术相结合的方式来实现该系统在电子商务中的运用。
1 SET协议的电子支付流程
目前,电子商务运作过程一般涉及五个直接关系主体:客户S、商户A、CA认证中心、支付网关P和银行B。其体系结构如图1所示。
一般情况下,基于SET协议的电子商务支付流程如下:
(1)客户S进入网上银行开始注册,并开户;
(2)S进入CA申请数字证书,并保存到存储介质;
(3)S进入网站,浏览并选中需购买的商品,输入用户名和密码,上传客户数字证书并下载商户数字证书,再交给CA验证,验证成功后,商品放入购物篮,系统自动计价;
(4)S填写收货信息,到收银台支付,系统生成订单信息OI;
(5)S在支付前,上传自己的数字证书给商户A,支付网关P验证,并下载A和P的数字证书进行验证;
(6)在双方都验证通过时,A发送支付指令到P,要求P进行转帐处理;
(7)P接受支付指令后,连接S和A的开户银行,进行转帐处理。然后由A发货给S,支付完成;
(8)保存订单,以供查询,购物支付结束。
由此可见,基于SET协议的电子商务支付流程为:客户S的支付经支付网关P,再到银行B,最后到商家A,故有一套严密的安全措施来保证交易的安全。
2 电子支付系统的功能分析
从现实考虑,一个安全的电子支付系统应当具备以下功能:
(1)使用数字签名和数字证书实现对各方的认证。交易前双方都要进行身份认证,通过CA发放数字证书,以证实身份的合法性,只有通过认证的双方才能进行正常的网上交易。
(2)使用加密技术对业务进行加密。采用基于椭圆曲线的密码体制来实现SET协议中公开密钥的加密解密。并用双重签名来加强数据传输的保密性。
(3)使用消息摘要算法和Hash函数来确认数据业务的完整性。若发现接收的消息不完整,则要求发送端重发以保证其完整性。
(4)当交易双方出现纠纷时,要保证对业务的不可否认性。
(5)用双重签名来处理贸易业务的多边支付问题。订单信息OI须和支付指令连接在一起,因为商户S只有确认支付指令后才会继续交易,银行B也要确认而不能读取商户S的订单信息OI。这种相互隔离性可通过双重签名来实现。
3模块分析
为了实现上述功能,根据SET协议的电子商务支付流程,可以把网上电子支付系统分为三大模块,分别为购物平台模块、支付网关模块和CA模块。图2所示是整个系统的模块图。
3.1 购物平台模块
该模块主要负责客户S在平台上浏览商户S的商品目录、购物、订单生成以及与支付网关模块和CA模块结合一起完成支付过程。
利用该模块并使用双重签名,可以保证在交易过程中,在商家不知道顾客的账户信息,银行不知道顾客的购买信息的情况下,完成订单和支付信息的生成。其实现过程如下:
(1)客户S拥有含其信用卡帐号等支付信息的PI。在选择商品后,系统将生成订单信息OI;
(2)客户S用Hash函数分别生成PI和OI的消息摘要H(PI)和H(OI)。再连接生成支付订单摘要,并用其私有密钥KSc签名,以实现双重签名DS=Eksc[H(H(PI)‖H(OI))];
(3)客户S用商户A的公钥AEPU加密(OI,H(PI),DS),并得到密文C1。然后用银行B的公钥BEPU加密(PI,H(OI),DS),得出密文C2。这样,(C1,C2)就是被双重签名的消息。此后客户S将(C1,C2)发送给商户A;
(4)商户A收到(C1,C2)即用私钥解密,以得到OI,H(PI),DS。并用从客户证书中获得的客户S的公钥KUc进行计算,若H(H(PI)‖H(OI)和DKUC(DS)两者相等,则商户A确认是客户S的签名;
(5)商户A将C2发送给银行B。银行B用自己的私钥BEPV解密C2得到PI,H(OI),DS。然后用客户S的公钥KUC计算,H(H(PI)‖H(OI)),DKUc(DS)。若两者相等,则银行B确定是客户S的签名。
3.2支付网关模块
支付网关模块主要负责客户∣商户注册、客户∣商户的账户业务变更管理(转帐,挂失)和客户∣商户的账户业务查询(余额、账单查询)等。支付网关模块的主要工作流程如图3所示。
图3中,支付网关在验证了客户S和商户A的数字证书后,即可接受支付指令,从而连接银行B进行转帐处理。
3.3 CA模块
CA模块是本系统中最基本也是最重要的模块,主要负责客户S和商户A的数字证书申请、管理和验证等。该模块用数字签名技术来实现CA认证系统的设计。设计时可用基于椭圆曲线的密码体制来实现这一过程。
实现时,可先由CA选择椭圆曲线E(Fq),并以G为公开基点,n为G的阶那么,其现方法如下:
(1)客户S申请数字证书
客户S将ID和公钥KUc发往CA。
CA选随机数k∈[1,n-1]。
kG=(x,y)
r=xmodn,e=H(ID+KUc),私钥KSc。
S=k-1(e+rKSc)modn。
则CA生成签名(r,s),向S颁发的数字证书为CAs=(ID,KUc,(r,s))。
(2)客户S与商家A交易时,S把自己的证书CAs发送给A。然后由A通过CA对证书CAs进行验证。
若v=r,则签名有效。
当客户S和商户A进行交易时,必须对信息作数字签名并进行传递,才能保证信息的完整性和不可否认性。
上述三个模块之间,它们既相互独立又相互关联,每个模块都有自己的工作流程,但又调用其它模块的部分功能,从而很好地实现软件的高内聚底耦合。
4结束语
本文把以SET协议为基础的电子支付系统分为三大模块,即购物平台模块,网关支付模块和CA模块。然后根据模块间的相互独立性和关联性。在现实中很好的实现了软件的高内聚底耦合。同时,通过模块分析,更加了解了SET协议的优缺点,从而为进一步设计出安全性更高、效率更快的方案提供了参考,因此具有一定的实用价值。