本文发表于《信息网络安全》2006.10,欢迎转载,请注明作者和期刊名。 基于SET协议的电子商务安全机制分析 张鉴 国家信息中心网络安全部 摘要:安全是电子商务发展的核心问题。本文分析了电子商务面临的安全威胁和相应的安全需求,对当前最通用的安全交易标准SET协议的工作原理和流程、安全技术、及存在的缺陷进行了比较详细的分析和阐述,对于促进电子商务安全机制的研究和开发具有一定的现实意义。 关键字:电子商务 安全 SET协议 一、引言 随着互联网的普及和发展,传统的商务活动也由传统的面对面的交易模式向电子交易模式转变。电子商务(electronic commerce,EC)是指交易各方通过电子方式进行的商业交易,包括了商务应用的各个方面。它以计算机网络为构架,以交易双方为主体,以银行支付和结算为手段,以客户数据库为依托,是一种全新的商业模式。电子商务的出现极大地方便了商业企业之间、商业企业与消费者之间、消费者与消费者之间的交易,为消费者提供便捷、快速服务的同时,也增强了企业竞争力,大大促进了经济发展和社会进步。 但是由于电子商务是基于开放网络环境下的商务形式,这也带来了一系列的问题。开放程度越高,网络安全及支付安全问题就越凸现出来。与网络环境下的电子商务相对应的,就要有安全的支付方式去实现交易双方的终极目的作为电子商务安全的核心问题之一,电子支付系统的安全更需要采取一些特殊的安全措施来加以保障,以求做到机密性、完整性、真实性和不可抵赖性等各个方面。 二、电子商务安全需求 2.1 电子商务面临的安全威胁 电子商务安全中普遍存在着以下几种安全威胁: 1) 窃取信息:由于未采用加密措施,数据信息在网络上以明文形式传送,入侵者在数据包经过的网关或路由器上可以截获传送的信息。通过多次窃取和分析,可以找到信息的规律和格式,进而得到传输信息的内容,造成网上传输信息泄密。 2) 篡改信息:当入侵者掌握了信息的格式和规律后,通过各种技术手段和方法,将网络上传送的信息数据在中途修改,然后再发向目的地。 3) 假冒:由于掌握了数据的格式,并可以篡改通过的信息,攻击者可以冒充合法用户发送假冒的信息或者主动获取信息,而远程用户通常很难分辨。 4) 恶意破坏:由于攻击者可以接入网络,则可能对网络中的信息进行修改,掌握网上的机要信息,甚至可以潜入网络内部,其后果是非常严重的。 2.2 电子商务的安全需求 针对安全交易中所面临的威胁,在电子商务中的安全需求包括以下方面: 1) 信息的保密性。电子商务的信息传输必须保证其不被非授权方直接获取,加密的信息不会被破译。 2) 信息的完整性。网上支付必须保证传输过程中信息不被篡改、假冒、重发和丢失,保证目的信息和源信息的一致性。 3) 交易双方身份认证。通过认证中心CA,双方或多方可以各自鉴别对方身份,保证信息是由确定对象发出。 4) 交易的不可抵赖性。交易双方的合约能够保证在事后不可抵赖、不可否认,充分证明交易的发生。 5) 原子性要求。它包括钱原子性、物原子性和交易原子性(客户得到的商品是他所订购的,商家发出的商品是客户所订购的)。 6) 隐私保护性。确保交易者个人生活隐私、个人购买习惯和真实身份受到保护。 7) 交易的及时性。交易活动是在网上完成,这就要求交易者必须在恰当的时间完成交易,同时及时性是电子商务本身的要求。 8) 交易的可控性。交易发生的整个过程都是可控的,有明确的责权关系和相互制约关系,能够切实保障各方利益不受损害。 三、安全电子交易协议——SET协议 目前,网上银行的在线安全支付协议主要有两种:SSL协议(安全套接层协议)和SET协议(安全电子交易协议)。SSL采用公钥加密方法提供“会话级”的安全控制,它存在一些缺点:当数据由用户到达商家,数据是否按安全方式存储由商家一方决定;同时用户无法确定买方是否是真正的持卡者,卡号可能在传输中被盗取;因没有数据签名,交易双方可能抵赖。 SET(Secure Electronic Transaction,安全电子交易)协议是基于信用卡在线支付的电子商务系统的安全协议。SET是由Visa和MasterCard两大信用卡公司联合IBM,Microsoft,GTE,Verisign,SAIC等公司与1996年6月共同推出的以信用卡支付为基础的电子商务安全协议。其中涵盖了电子商务中的交易协定、信息保密、数据完整、数字认证和数字签名等,是目前公认的信用卡网上交易的国际标准。 3.1 SET协议工作原理和工作流程 SET协议的工作原理如图1所示。

它包括了5个主要的实体,即交易参与方:用户,商家(电子商城/电子收银台)、支付网关(收单行)、认证中心(CA)、发卡行。基于SET协议的交易购物流程如下:
1) 用户在银行开立信用卡账户,获得信用卡 2) 用户上网浏览商家网站,选定所购货物。 3) 商家系统唤醒用户电子账户,进入安全电子购物过程。 4) 用户电子账户请求并验证商家证书、网关证书,如果验证通过则向商家系统发送附有订单指令(OI)和支付指令(PI)的购物请求。其中订单和支付指令要有用户的数字签名并加密,使商家无法看到用户的私人账户信息 5) 商家系统接收用户购物请求,验证用户证书,如果验证通过则将用户付款指令(PI)转送网关系统。 6) 支付网关系统根据支付指令,通过金融网络向发卡行验证用户账户余额,完成支付授权。 7) 商家系统得到支付网关发回的响应,从中获取支付令牌后返回用户购物请求,并发货。 8) 用户通过查询请求,从商家得知“支付己授权”,等待货物到达。 9) 商家系统在恰当的时机(因为业务是批处理的),使用支付令牌,向支付网关请求完成从用户发卡行到商家收单行的划款。 10) 支付网关得到商家的请款请求,验证通过支付令牌, 11) 实现银行划款。 3.2 SET 协议安全技术分析 SET协议采用的核心技术包括X.509电子证书标准、数字签名技术(Digital Signature)、报文摘要、数字信封、双重签名等技术,结合了对称加密算法的快速、低成本和公钥密码算法的可靠性,有效的保证了在开放网络上传输的个人信息、交易信息的安全。数字证书的使用使得交易各方之间身份的合法性验证成为可能;使用数字签名技术确保数据完整性和不可否认:使用双重签名技术对SET交易过程中客户的账户信息和定单信息分别签名,保证了客户账户信息和定单信息的安全性。 3.2.1 采用公钥加密和私钥加密相结合的办法保证数据的保密性 SET协议中,支付环境的信息保密性是通过公钥加密法和私钥加密法相结合的算法来加密支付信息而获得的。它采用的公钥加密算法是RSA的公钥密码体制,私钥加密算法是采用DES数据加密标准。这两种不同加密技术的结合应用在SET中被形象的称为数字信封,RSA加密相当于用信封密封,消息首先以56位的DES密钥加密,然后装入使用1024位RSA公钥加密的数字信封在交易双方传输。这两种密钥相结合的办法保证了交易中数据信息的保密性。 3.2.2 采用信息摘要技术保证信息的完整性 SET协议是通过数字签名方案来保证消息的完整性和进行消息源的认证的,数字签名方案采用了与消息加密相同的加密原则。即数字签名通过RSA加密算法结合生成信息摘要,信息摘要是消息通过HASH函数处理后得到的唯一对应于该消息的数值,消息中每改变一个数据位都会引起信息摘要中大约一半的数据位的改变。而两个不同的消息具有相同的信息摘要的可能性及其微小,因此HASH函数的单向性使得从信息摘要得出信息的摘要的计算是不可行的。信息摘要的这些特征保证了信息的完整性。 3.2.3 采用基于PKI 的数字证书技术保证交易双方的身份认证 1 、数字证书 在SET中,最主要的证书是用户证书和商家证书。 1) 用户证书:它实际上是支付卡的一种电子化的表示。由于它是由金融机构以数字化形式签发的,因此不能随意改变。持卡人证书并不包括账号和终止日期信息,取而代之的是用单向哈希算法根据账号、截止日期生成的一个码,如果知道账号、截止日期、密码值,即可导出这个码值,反之不行。 2) 商家证书:用来表示商店可以用什么卡来结算。它是由金融机构签发的,不能被第三方改变。在SET环境中,一个商家至少应有一对证书,与一个银行打交道,一个商家也可以有多对证书,表示它与多个银行有合作关系,可以接受多种付款方法。 3) 除了持卡人证书和商家证书以外,还有支付网关证书、银行证书、发卡机构证书等。 数字证书的内部格式是由CCITT X..509国际标准所规定的,它包含了以下几点: l 凭证拥有者的姓名; l 凭证拥有者的公共密钥; l 公共密钥的有效期; l 颁发数字凭证的单位; l 数字凭证的序列号。 2 、CA CA的主要功能包括:接收注册请求,处理、批准/拒绝请求,颁发证书。在实际运作中,CA也可由大家都信任的一方担当,例如在客户、商家、银行三角关系中,客户使用的是由某个银行发的卡,而商家又与此银行有业务关系(有账号)。在此情况下,客户和商家都信任该银行,可由该银行担当CA角色,接收、处理客户证书和商家证书的验证请求。又例如,对商家自己发行的购物卡,则可由商家自己担当CA角色。 3 、证书的树形验证结构 在双方通信时,通过出示由某个CA签发的证书来证明自己的身份,如果对签发证书的CA本身不信任,则可验证CA的身份,依次类推,一直到公认的权威CA处,就可确信证书的有效性。每一个证书与签发证书的实体的签名证书关联。SET证书正是通过信任层次来逐级验证的。例如,C的证书是由B的CA签发的,而B的证书又是由A的CA签发的,A是权威的机构,通常称为根CA。验证到了根CA处,就可确信C的证书是合法的。 在电子商务交易的实现中,持卡人的证书与发卡机构的证书关联,而发卡机构证书通过不同品牌卡的证书连接到根CA,而根的公开密钥对所有的SET软件都是已知的,可以校验每一个证书。 3.2.4 采用双重签名技术保证用户隐私不被侵犯 SET协议中引入了一个重要革新:双重签名(Dual Signatures)技术。在一项安全电子商务交易中,持卡人的定购信息和支付指令是相互对应的。商家只有确认了对应于持卡人的支付指令对应的定购信息才能够按照定购信息发货;而银行只有确认了与该持卡人支付指令对应的定购信息是真实可靠的才能够按照商家的要求进行支付。为了达到商家在合法验证持卡人支付指令和银行在合法验证持卡人订购信息的同时不会侵犯顾客的私人隐私这一目的,SET协议采用了双重签名技术来保证顾客的隐私不被侵犯。
双重签名具体的实现方法是:首先生成两条消息的摘要,将两个摘要连接起来,生成一个新的摘要(称为双重签名),然后用签发者的私有密钥加密,为了让接收者验证双重签名,还必须将另外一条消息的摘要一块传过去。这样,任何一个消息的接收者都可以通过以下方法验证消息的真实性:生成消息摘要,将它和另外一个消息摘要连接起来,生成新的摘要,如果它与解密后的双重签名相等,就可以确定消息是真实的。双重签名的构造如图2所示:
3.2.5交易可控性保证
交易过程中任何一个环节都是可控的,即使在交易的后续过程,仲裁机构、信用制度的建立也将各方的利益联系起来,约束各方行为。 3.3 SET 协议的不足 安全可靠是SET协议最大的优点,但在实际应用中,SET协议依然存在以下不足: 1) SET不支持商品的原子性。 2) SET对抗抵赖性支持不够。SET协议没有解决交易过程中的证据保留问题,对交易后的数据的保存和处理没有说明。 3) 整个交易的流程太复杂,参加认证的实体太多,给程序设计带来不便。 4) SET协议中对交易过程没有作状态描述,使用户或商家对交易的状态难以把握。 5) 加密算法通常采用的是RSA算法,加密和解密时间复杂度比较大,从而使交易时间过长。 四、结束语 随着电子商务的发展,安全问题更加重要和突出,要想解决好这个问题,必须由相应安全机制和技术作为保障。作为目前公认的信用卡网上交易的国际标准,SET协议涵盖了电子商务中的交易协定、信息保密、数据完整、数字认证和数字签名等各方面。本文分析了电子商务面临的安全威胁和相应的安全需求,对SET协议的工作原理和流程、安全技术、及存在的缺陷进行了比较详细的分析和阐述,对于促进电子商务安全机制的研究和开发具有一定的现实意义。 参考文献 [1] 何长领.《电子商务交易》.北京:人民邮电出版社,2001. [2] 陈兵,王立松.《网络安全与电子商务》.北京:清华大学出版社,2002. [3] Fourati A,Ben Ayed H K.A SET Based Approach to Secure the Payment in Mobile Commerce[C].Proceedings of the 27th Annual IEEE Conference on Local Computer Networks.2002. [4] 蒋忠仁.金融网络中的SET技术[J].微计算机信息,2005,9-3:24-26. [5] 王茂忠,张为群.一种基于SSL的电子商务安全交易模型.西南师范大学学报(自然科学版),2006,Vol31-3.