1、SET协议系统缺陷及其改进方案 摘 要:文章对近年来流行的安全电子交易协议SET标准进行研究,指出该协议不能满足商品交易原子性和确认发送原子性。该文在原有协议的基础上对其进行了改进,改进后的方案采用商家额外向收单行发送顾客所购商品信息和自己随机生成密钥的方式来保证交易的公平性,使其不仅满足交易的原子性,而且还具有不可否认性的特点。 关键词:电子交易 交易原子性 确认发送原子性 SET协议 中图分类号:TP309 文献标识码:A 文章编号:1674-098X(2015)12(a)-0140-04 Abstract:This article analyzes the SET standard of
2、 the Secure Electronic Transaction in recent years and pointed out that the SET protocol has the flaws of the goods atomic transactions and certified delivery atomicity in transactions goods. In this paper, based on the original agreement to improve the protocol and the improved scheme adopts the wa
3、y of the merchant to send its randomly generated key to guarantee the fairness of the transaction,so it is improved to make it not only satisfies the atomic transaction, but also has the characteristics of non repudiation. Key Words:Electronic trading;Atomic transaction;Certified delivery atomicity;
4、SET protocol 计算机网络的诞生源于通信技术与计算机的结合,随着社会的发展,计算机网络近年来得到了快速发展和广泛使用,已渐渐成为当今信息社会的基石。与此同时,电子商务应运而生,它利用计算机网络和电子技术,促使交易的顺利和高效,网上购物已成为人们生活中不可或缺的一部分。网络的开放性给人们带来巨大利益的同时,也带来了隐患,其中最重要也是最基本的就是电子支付的安全问题。电子支付最重要的部分就是安全电子支付协议,其中应用较多的安全电子支付协议有两种,分别是安全套接层协议SSL(Secure Socket Layer)和安全电子安全交易协议SET(Secure Transaction)。其中S
5、SL协议是基于Web的安全协议,该协议向基于TCP/IP原理的应用程序进行客户端和服务器端的鉴别,维护数据的机密性与完整性。SSL协议使用DES、MDS等加密算法来实现数据机密性和完整性,并采用X.509数字证书来鉴别1。不足的是,SSL协议缺少了买家对卖家的认证,随着商家越来越多,各商家的诚信度也不一样,因此经常出现商家欺诈消费者的现象,为解决这一问题,出现了一种新的安全协议SET。与SSL不同,SET协议对所有参与交易过程的成员都制定了严格的身份认证标准,并对它们之间的消息传送采取了一系列预防保护措施。利用SET协议可以方便地建立和维护一个可信的网络交易环境,使得人们在这个无法面对面交流的
6、环境里,能够正确确认彼此的身份和所交换的信息,从而保证了数据的机密性、完整性和有效性,确保了网上交易活动的安全进行。虽然电子商务使用广泛,但是它依然存在着许多隐患2。要确保电子商务交易的安全性,可以从安全协议、加密技术以及安全机制三个方面来展开3。目前安全支付协议多是以提高安全性为前提,如:改进协议、提高选取的随机数质量、进行二次加密、加强CA管理、增加服务器端可信代理等4。因此人们在增加协议安全性和提高效率两方面,提出了一系列的协议,这些协议大致可以分为两类:基于Hash函数的协议和基于公钥体制的协议,由于基于Hash函数的认证协议开销小、效率高,逐渐成为近年来研究的热点5。SET协议作为一
7、种重要的电子商务协议,是一种用于开放网络环境中用来实现安全支付目标的协议。因此,保障SET协议的安全性很重要。 1 SET协议模型及其缺陷 为了保证人们在网络电子交易过程中的安全性,国际组织VISA和MasterCard在1996年2月联合制定了SET协议,34个国家的150多家金融机构共同参与制定了SET协议试行方案。各大信用卡公司都开始建造SET协议交易网关,软件厂商则着手开发支持SET协议的应用软件。SET协议适用于BtoC模式,围绕客户、商家、银行之间的相互关系并确认各自身份。由于设计合理,SET协议得到了许多大型公司的支持并且获得了IETF标准的认可,成为BtoC事实上的工业标准6,
8、并将成为以后电子商务发展的主要方向。 SET协议运用了对称、非对称密钥加密算法、Hash算法、数字签名、双重数字签名、数字信封和数字证书等先进技术,并与在线支付应用结合在一起,为网上交易提供了银行卡交易方式的安全保障,从而确保电子支付环境的高安全性。SET协议支付模型如图17。 尽管SET协议实现了高安全性和可靠性,然而,由于涉及协议安全性的问题设计得十分巧妙,许多安全漏洞在协议使用了很长时间才被发现,所以SET协议的安全性更为人们所关注8。根据协议模型检测(MODEL CHECKING)9-12方法表明,SET协议依然存在着不少缺陷,如效率低、身份认证方式复杂等13。实际上,SET协议无法保
9、证商品原子性和确认发送原子性14,也就是协议不能保证客户付款后能收到与订单上相符的商品,并且缺乏一个合理的交易纠纷处理准则15。在电子商务领域,由于客户在退换货过程中的被动性和许多不确定的因素,商品原子性与确认发送原子性在电子支付协议中显得很重要。因此,确立一个保证商品原子性和确认发送原子性的电子支付协议是很有必要的16。 文章以安全电子支付协议标准SET作为研究对象,对SET协议中客户、商家和支付网关的消息传递过程进行改进,使它在原有的基础上同时满足商品原子性和确认发送原子性,进而减少损失17。 2 改进措施 2.1 密码标记 为便于研究,对文中使用的密码标记做如下规定: SK 私有密钥 P
10、K 公开密钥 K 对称加密算法密钥 E 加密变换 2.2 协议流程图 图2是改进后的协议流程图,注意到编号4是新增加的一个步骤。图中的详细过程见2.3节的协议流程描述。 2.3 协议流程描述 (1)客户C向商家M发出购买请求。 (2)商家M向客户C展示客户想要购买商品的详细信息。 (3)客户C同意商品价格方面的要求,对订单OI进行数字签名得到OI =Eskc(OI),并用商家提供的公钥加密自己的公钥pkc=Epkm(pkc),并将pkc ,OI发送给商家。 (4)商家M对pkc解密,得到pkc=Eskm(pkc),然后对OI解密得到OI=Epkc(OI),确认订单为客户C所发。接着商家随机生成
11、一个对称密钥K1,并对商品m加密得到m =EK1(m)再对m求Hash运算进行签名后得到h=Eskm(H(m)。商家对自己的数字证书Cerm和支付网关的数字证书Cerp以及付款要求pay进行数字签名后得到r=Eskm(Cerm,Cerp,pay),然后将(m,h,r)发送给客户C,接着将产品m和K1用支付网关公钥加密后,发送给支付网关。这一目的是为了防止商家最后在收到客户款项后不发送密钥K1给客户,即不一定保证商家所发送的商品一定是客户原先想要购买的商品。 (5)客户C收到消息后,先对r解密:得到(Cerm,Cerp,pay)=Epkm(r),从而确认为商家M所发,此时客户C通过认证中心CA验
12、证商家M和支付网关P的身份并按pay要求生成支付命令PI然后进行数字签名得到PI=Eskc(PI)。然后客户C随机生成一个对称密钥K2,对PI进行加密得到PI”=EK2(PI)。客户C对商家发送的m求Hash运算得到h=H(m),用K2对h加密得到h=EK2(h)。对客户的账户信息PAN(如客户的姓名,银行卡账号等信息)和K2用支付网关的公钥加密后得到P1=Epkp(PAN,K2)。上述加密过程是为了防止商家M知晓客户C相关的支付信息,进而保证只有支付网关P才能解密得到客户相关的支付信息。客户C对Cerc,PI,P1,h进行数字签名得到r1=Eskc(Cerc,PI,P1,h),并发送给商家M
13、。 (6)商家M收到r1后,进行解密得到(Cerc,PI,P1,h)=Epkc(r1),确认为客户C所发,并对Cerm,Cerc,PI”,P1,h”数字签名后得到r2=Eskm(Cerm,Cerc,PI”,P1,h”),并将r2发送给支付网关P。 (7)支付网关P对接收到的r2进行解密得到(Cerm, Cerc,PI”,P1,h”)=Epkm(r2),确认为商家M所发。接着对P1解密得到(PAN,K2)=Eskp(P1),确认为客户C所发的账户信息,用K2解密h得到h=EK2(h),对产品m用K1加密并求Hash得到h1=H(EK1(m),比较h与h1是否相同,若不相同,则说明商家发送的商品m
14、不是顾客C所订购的商品;若二者相同,说明商家发送的商品m是顾客C所订购的商品,然后用K2对PI进行解密PI=Ek2(PI),对PI进行解密PI=Epkc(PI),进而获得客户C的支付命令PI。最后将支付命令PI发送给持卡人所在的银行I。 (8)发卡行I进行验证,确认客户C的账号真实有效。然后将支付命令PI发给支付网关P,客户银行账户资金转移到商家银行账号上。 (9)支付网关P向商家M发送支付已完成消息msg。 (10)商家M对接收到的msg进行解密,确认为支付网关P所发,并向客户C发送解密密钥K1。进而整个交易过程结束。 3 改进后的协议分析 3.1 协议安全性和不可抵赖性分析 从改进后的协议
15、可知:客户C要验证商家M的证书Cerm,支付网关P的证书Cerp和商家M发送的付款请求pay。商家M要验证客户C的订单OI,客户C的证书Cerc,客户C发送的消息r1以及支付网关发送的消息msg。支付网关P要验证商家M发送的消息r2,商家M的证书Cerm,客户C的证书Cerc和客户C发送的支付命令PI。发卡行I要验证客户C的账号是否是真实有效的。因此该协议中,客户、商家、银行之间的身份要互相认证。客户C的订单信息OI只有商家M知道,银行并不知道;而客户C的支付信息pay,商家M并不知道。这种采用双重数字签名的方法,有效杜绝了商家欺骗消费者现象的发生。 3.2 协议原子性分析 3.2.1 商品原
16、子性分析 从协议的分析可知,商家M只有在收到支付网关P发送的支付已完成消息msg后才会向客户C发送解密密钥K1;只有当客户C成功支付商品m后,才会得到商品的解密密钥K1。于是协议就保证了客户付款后就一定会得到商品,即满足了商品的原子性。 3.2.2 确认发送原子性分析 从协议中看出,客户C最后解密出的商品m,是客户C和支付网关P验证正确所购买的商品,并且只有在确认是客户所购买的商品后,支付网关P才将客户的支付命令发送给发卡行I。因此,客户C最后收到的商品一定是他所购买的商品,而商家也正确发送了客户所购买的商品,即满足了确认发送原子性。 4 结语 文章对SET协议在网上支付的安全性进行了研究,并
17、在认真分析交易过程的基础上针对原协议存在的两个缺陷:即在商品原子性和确认发送原子性方面,提出了一种改进方案。改进后的协议方案规定商家必须发送商品信息和随机密钥给支付网关保证协议的原子性。对改进后的协议分析表明,改进后的协议能够完成预计达到的目标。 参考文献 1 钟军,吴雪阳,江一民,等.一种安全协议的安全性分析及攻击研究J.计算机工程与科学,2014,36(6):1077-1082. 2 曾孜.企业电子商务系统的安全性分析J.广东工业大学学报,2001,18(3):22-25. 3 肖茵茵,苏开乐.电子商务支付协议认证性的SVO逻辑验证J.计算机工程与应用,2014,50(8):6-10. 4
18、 张雪,马光思,毛宏燕.基于SSL提高网上安全交易性能的研究J.微电子学与计算机,2011,28(2):181-183. 5 何丽,王立斌.对一种身份认证协议的改进及其形式化分析J.计算机系统应用,2010,19(7):47-49. 6 张恺悌.基于SET协议的网络电子支付系统的研究D.西安工业大学,2013. 7 薛睿.基于SET协议的电子商务安全问题研究D.郑州大学,2013. 8 鲁四美,张建林.SET协议模型的改进与SMV分析J.计算机工程与应用,2010,45(8):113-116. 9 万子龙.基于模型检测的SET协议形式化验证与该进D.南昌大学,2014. 10 Xiao M H
19、,Wan Z L, Liu H L.The Formal Verification and Improvement of Simplified SET ProtocolJ.Journal of Software,2014,9 (9):2302-2308. 11 黄佳.SET协议形式化分析与模型检测J.软件学报,2012,33(6):111-115. 12 缪力,谭志华,张大方.基于SPIN的网络认证协议高效模型检测J.计算机工程与应用,2012,48(21):62-67. 13 Shen Z H,Wang H.An improved SET protocol payment systemC/P
20、roc.of International Conf.on Computer and Communication Technologies in Agriculture Engineering.Chengdu,China,June 2010:400-403. 14 闰婷婷.基于第四方电子商务的统一支付平台及其协议的研究D.华南理工大学,2012. 15 任莉莉,王成军,方元康.SET协议在网上支付中的应用研究J.计算机应用与软件,2010,27(10):105-107. 16 肖早斌,肖仕成,李开,等.基于四方的安全电子商务支付协议研究J.计算机科学,2011,38(10):39-44. 17 廖辉,凌捷.网络终端安全评估量化指标体系的设计与实现J.广东工业大学学报,2010,27(02):84-88. 18 刘超凡,张永良,肖刚.基于滚动指纹数字签名的电子商务安全认证J.计算机应用,2012,32(2):475-479.