《SET协议系统缺陷及其改进方案.doc》由会员分享,可在线阅读,更多相关《SET协议系统缺陷及其改进方案.doc(9页珍藏版)》请在三一文库上搜索。
1、SET协议系统缺陷及其改进方案Abstract:This article analyzes the SET standard of 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 agreem
2、ent to improve the protocol and the improved scheme adopts the way 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:El
3、ectronic trading;Atomic transaction;Certified delivery atomicity;SET protocol 计算机网络的诞生源于通信技术与计算机的结合,随着社会的发展,计算机网络近年来得到了快速发展和广泛使用,已渐渐成为当今信息社会的基石。与此同时,电子商务应运而生,它利用计算机网络和电子技术,促使交易的顺利和高效,网上购物已成为人们生活中不可或缺的一部分。网络的开放性给人们带来巨大利益的同时,也带来了隐患,其中最重要也是最基本的就是电子支付的安全问题。电子支付最重要的部分就是安全电子支付协议,其中应用较多的安全电子支付协议有两种,分别是安全套接
4、层协议SSL(Secure Socket Layer)和安全电子安全交易协议SET(Secure Transaction)。其中SSL协议是基于Web的安全协议,该协议向基于TCP/IP原理的应用程序进行客户端和服务器端的鉴别,维护数据的机密性与完整性。SSL协议使用DES、MDS等加密算法来实现数据机密性和完整性,并采用X.509数字证书来鉴别1。不足的是,SSL协议缺少了买家对卖家的认证,随着商家越来越多,各商家的诚信度也不一样,因此经常出现商家欺诈消费者的现象,为解决这一问题,出现了一种新的安全协议SET。与SSL不同,SET协议对所有参与交易过程的成员都制定了严格的身份认证标准,并对它
5、们之间的消息传送采取了一系列预防保护措施。利用SET协议可以方便地建立和维护一个可信的网络交易环境,使得人们在这个无法面对面交流的环境里,能够正确确认彼此的身份和所交换的信息,从而保证了数据的机密性、完整性和有效性,确保了网上交易活动的安全进行。虽然电子商务使用广泛,但是它依然存在着许多隐患2。要确保电子商务交易的安全性,可以从安全协议、加密技术以及安全机制三个方面来展开3。目前安全支付协议多是以提高安全性为前提,如:改进协议、提高选取的随机数质量、进行二次加密、加强CA管理、增加服务器端可信代理等4。因此人们在增加协议安全性和提高效率两方面,提出了一系列的协议,这些协议大致可以分为两类:基于
6、Hash函数的协议和基于公钥体制的协议,由于基于Hash函数的认证协议开销小、效率高,逐渐成为近年来研究的热点5。SET协议作为一种重要的电子商务协议,是一种用于开放网络环境中用来实现安全支付目标的协议。因此,保障SET协议的安全性很重要。 1 SET协议模型及其缺陷 为了保证人们在网络电子交易过程中的安全性,国际组织VISA和MasterCard在1996年2月联合制定了SET协议,34个国家的150多家金融机构共同参与制定了SET协议试行方案。各大信用卡公司都开始建造SET协议交易网关,软件厂商则着手开发支持SET协议的应用软件。SET协议适用于BtoC模式,围绕客户、商家、银行之间的相互
7、关系并确认各自身份。由于设计合理,SET协议得到了许多大型公司的支持并且获得了IETF标准的认可,成为BtoC事实上的工业标准6,并将成为以后电子商务发展的主要方向。 SET协议运用了对称、非对称密钥加密算法、Hash算法、数字签名、双重数字签名、数字信封和数字证书等先进技术,并与在线支付应用结合在一起,为网上交易提供了银行卡交易方式的安全保障,从而确保电子支付环境的高安全性。SET协议支付模型如图17。 尽管SET协议实现了高安全性和可靠性,然而,由于涉及协议安全性的问题设计得十分巧妙,许多安全漏洞在协议使用了很长时间才被发现,所以SET协议的安全性更为人们所关注8。根据协议模型检测(MOD
8、EL CHECKING)9-12方法表明,SET协议依然存在着不少缺陷,如效率低、身份认证方式复杂等13。实际上,SET协议无法保证商品原子性和确认发送原子性14,也就是协议不能保证客户付款后能收到与订单上相符的商品,并且缺乏一个合理的交易纠纷处理准则15。在电子商务领域,由于客户在退换货过程中的被动性和许多不确定的因素,商品原子性与确认发送原子性在电子支付协议中显得很重要。因此,确立一个保证商品原子性和确认发送原子性的电子支付协议是很有必要的16。 文章以安全电子支付协议标准SET作为研究对象,对SET协议中客户、商家和支付网关的消息传递过程进行改进,使它在原有的基础上同时满足商品原子性和确
9、认发送原子性,进而减少损失17。 2 改进措施 2.1 密码标记 为便于研究,对文中使用的密码标记做如下规定: SK 私有密钥 PK 公开密钥 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)商
10、家M对pkc解密,得到pkc=Eskm(pkc),然后对OI解密得到OI=Epkc(OI),确认订单为客户C所发。接着商家随机生成一个对称密钥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)客
11、户C收到消息后,先对r解密:得到(Cerm,Cerp,pay)=Epkm(r),从而确认为商家M所发,此时客户C通过认证中心CA验证商家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才能解密
12、得到客户相关的支付信息。客户C对Cerc,PI,P1,h进行数字签名得到r1=Eskc(Cerc,PI,P1,h),并发送给商家M。 (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得到
13、h=EK2(h),对产品m用K1加密并求Hash得到h1=H(EK1(m),比较h与h1是否相同,若不相同,则说明商家发送的商品m不是顾客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
14、所发,并向客户C发送解密密钥K1。进而整个交易过程结束。 3 改进后的协议分析 3.1 协议安全性和不可抵赖性分析 从改进后的协议可知:客户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的支付信息p
15、ay,商家M并不知道。这种采用双重数字签名的方法,有效杜绝了商家欺骗消费者现象的发生。 3.2 协议原子性分析 3.2.1 商品原子性分析 从协议的分析可知,商家M只有在收到支付网关P发送的支付已完成消息msg后才会向客户C发送解密密钥K1;只有当客户C成功支付商品m后,才会得到商品的解密密钥K1。于是协议就保证了客户付款后就一定会得到商品,即满足了商品的原子性。 3.2.2 确认发送原子性分析 从协议中看出,客户C最后解密出的商品m,是客户C和支付网关P验证正确所购买的商品,并且只有在确认是客户所购买的商品后,支付网关P才将客户的支付命令发送给发卡行I。因此,客户C最后收到的商品一定是他所购买的商品,而商家也正确发送了客户所购买的商品,即满足了确认发送原子性。 4 结语 文章对SET协议在网上支付的安全性进行了研究,并在认真分析交易过程的基础上针对原协议存在的两个缺陷:即在商品原子性和确认发送原子性方面,提出了一种改进方案。改进后的协议方案规定商家必须发送商品信息和随机密钥给支付网关保证协议的原子性。对改进后的协议分析表明,改进后的协议能够完成预计达到的目标。
链接地址:https://www.31doc.com/p-1580862.html