近年来,Internet的普及也带动了电子商务的迅速发展。在开放的Internet上从事商业、贸易等电子商务活动,安全性问题被摆在了首位。在Internet上或其它开放的网络上进行安全支付处理应满足下列四个基本要求:⑴保密性。在实际的交易环境中必须保护持卡人(顾客)的订购信息及支付信息的安全,使得只有特定的接收方可访问这些信息。⑵完整性。在实际交易过程中,接收到的消息确实是实际发送的信息,不可能在传输过程中被非法篡改,也不可能是一条伪造消息。⑶身份认证。对于网上交易的参与者,系统必须确定其身份,检验其合法性。若交易者非真实,系统将不准进入,以防止假冒事件发生。另外,这里“确定”的含义并不完全意味着确实知道客户的身份,因为有时由于交易匿名性的需要,不能确知客户的准确身份,但应能做到保证是在与一个可靠的对象通信。⑷抗否认性。一旦交易结束,有关各方都不能否认自己参与过这次事务。为了保证上述电子商务活动的安全性,必须有一套有效的安全机制作为保证,这就要建立电子商务信息安全体系。该体系如图1所示。概括起来,信息安全体系可以分为以下几个层次:基本加密算法、安全认证手段和安全应用协议。其中所用的安全技术通常有:加密技术算法(秘密密钥、公开密钥)、公开密钥系统基础设施(PI)、各种认证技术(一次性口令、数字信封、erberos、数字时间戳、CA) 、网络系统各层安协全协议(SSL、SET、IPSEC、PPTP、VPN、TLS) 、防火墙及保密网关技术等。尽管上述保证系统安全的技术手段已经存在,但安全问题是系统性的问题,并非把这些手段简单地结合在一起就可得到安全。电子支付系统目前尚处于不成熟阶段且种类较多。鉴于此,本文对各支付协议做了分析比较,并在此基础上详细分析了SET的支付模型,并做了一些探讨。1 电子支付协议在现实生活中,人们一般有三种支付方式:现金、支票及信用卡。与之相适应,电子支付协议也可分为这三种模式。一个有效的可能成功的电子支付系统必须被广泛认可,该系统必须保证有关各方不易受到欺,另外很重要的一点是必须方便易行。 基于卡的支付协议基于卡的电子支付协议实现了Web的易用性和信用卡的便利性结合。因此该类协议目前构成了电子商务中居统治地位的支付模型。基于卡的支付模式有如下一些方案: 部分告知(partial order)在网上交易中将最关键的数据如信用卡号码及成交金额等略去,然后再用电话、电子邮件、或传真来传送这些信息。这种模式并非真正意义上的网上支付,操作麻烦,不能实现真正的安全可靠性。 First VirtualFirst Virtual的“绿色商务”(GREEN COERCE)支付模型是通过第三方进行交易,它也是Internet上最早的支付模型之一。顾客和商家都在First Virtual上有一个PIN。交易时,双方都采用PIN进行,由First virtual代替他们进行转账。这种方案对顾客的身份认证和联络用E-ail进行,顾客情况不能实时认证。 SSL(Secure Sockets Layer)安全套接层协议SSL提供加密认证服务和报文完整性。它是由Netscape提出的安全交易协议。SSL使用加密的办法建立一个安全的通信通道。以便将客户的信用卡号传送给商家。它等价于用一个安全电话连接将用户信用卡通过电话读给商家。SSL提供三种基本安全服务:①信息保密。SSL客户机和SSL服务器之间的所有业务使用在SSL握手过程中建立的密钥和算法进行加密,这样就防止了某些用户通过使用IP packet sniffer工具非法窃听、破译。②信息完整性。确保SSL业务全部达到目的。SSL利用机密共享和Hash函数数组提供信息完整性服务。③相互认证。即客户机和服务器相互识别的过程。它们的识别号用公开密钥码,并在SSL握手中交换各自的识别号。这样就可防止其它用户冒名顶替。该协议最大的弱点是不能做数字签名,因此不支持不可否认性。另外,它不能对商家进行认证,不能防止网上欺诈行为。 SET(Secure Electronic Transaction)它是Visa和astercard联合开发的一个协议,该协议得到了GTE、I、icrosoft、Netscape、SAIC、Terisa和Verisign的支持。SET是在一些早期协议如astercard的SEPP、Visa/icrosoft的STT以及I的iP协议簇的基础上合并而成的,它定义了交易数据在用户、商家、发卡行、收单行之间的流通过程,也定义了各种支持这些交易的安全功能(数字签名、Hash算法、加密等)。SET 是基于卡的安全支付协议最典型的代表,也是目前世界上公认的最安全的电子支付协议之一。文章将在第5节详细分析SET的支付模型。 基于支票的支付协议支票模型模拟了现实生活中支票的使用。同信用卡模式一样,它也需要支票发行机构如银行等确认支票的有效性。在基于支票的支付协议中,比较有前景的是FSTC组织的echeck建立在现有银行纸支票模型之上,直接使用用户的银行帐号,完全能同现有的支票系统并用。美国政府的第一笔网上支付使用的就是echeck,该电子支票通过电子邮件发送。此类模式的其它支付协议还有:CMU的Netbill系统:Netbill协议涉及客户、商家和Netbill服务器三方。交易包括价格协商、商品传送和支付三个阶段,使用基于erberos的保密密钥加密机制;对能通过网络发送的信息商品,它将商品传送和支付链接到一个单一的原子事务中。 基于现金的支付协议基于现金的支付模式模拟了日常现金的使用,它使交易能匿名进行,即无法对交易过程追踪,交易者可以不暴露身份。这是卡和支票模式无法实现的。大部分电子现金的实现都来自chaum盲签名的原理:盲签名机制可以允许用户自己生成硬币,让银行对这枚硬币标定面值。当用户从银行提款时,他先为硬币随机生成一个很大的编码,然后利用盲签名机制,银行可用代表不同面值的密钥对这枚硬币签名,从而标定硬币的币值。由于编码很大(大于200位数字),重复的概率可以忽略不计,再加上盲签名让银行无法知道硬币编号,从而不能将其记录下来。同时为了防止电子现金的复制,chaum引入一种盲记录机制,第一次使用电子硬币时无法进行跟踪,而如果重复使用,就有足够多的信息能查出使用者的帐户信息,从而采取相应的处罚措施。对电子硬币的检验同普通的签名检验一样,商家收到用户支付的电子硬币时,可以检验该硬币的真实性,之后再将其发给银行去核实其唯一性。目前的电子现金系统有以下几种:⑴DIGICASH的E-Cash:电子货币的先驱之一,用软件方式实现电子硬币。⑵ONDEX:一种基于硬件“钱包”的电子现金模式。以上这些安全支付标准中,目前应用较多的是SSL和SET协议,一般认为SET协议安全性最好,可以推广利用信用卡支付网上交易,必将成为网上交易安全通信协定的产业标准。2 SET的支付模型 SET的特点SET协议可满足文章第2节所述的安全要求。其主要特点如下:⑴信息的保密性。SET的一个重要特点是持卡人的信用卡号码只提供给银行,而商家无法知道信用卡号码。SET利用DES密码算法提供信息的保密性。⑵数据完整性。从持卡人发往商家的支付信息包括订购信息、个人数据及支付指令。SET引入RSA数字签名及Sha-1杂凑函数确保这些消息的内容在传输过程中不被非法更改。⑶持卡人身份的鉴别。SET可以让商家鉴别持卡人是有效信用卡帐号的合法用户。SET采用数字证书和RSA数字签名达到这一目的。⑷商家的鉴别。SET是持卡人可以鉴别商家真实性,而且可以验证商家能否接受信用卡支付。SET同样采用数字证书和RSA数字签名实现这一功能。[page] SET系统的体系结构鉴于上述特点,本文提出一种基于SET协议的电子商务系统体系结构基于SET的电子商务系统由以下六部分组成:·持卡人:指由发卡银行所发行的支付卡的授权持有者。·商家:指出售商品或服务的个人或机构。商家必须与收单银行建立业务联系,以接受支付卡这种付款方式。·发卡银行:指向持卡人提供支付卡的金融机构。·收单银行:指与商家建立业务联系的金融机构。·支付网关:实现对支付信息从Internet到银行内部网络的转换,并对商家和持卡人进行认证。·认证中心(CA):在基于SET协议的电子商务体系中起着重要作用。可以为持卡人、商家和支付网关签发数字证书,让持卡人、商家和支付网关通过数字证书进行认证。CA同时要对证书进行管理。 SET的支付模型SET的支付处理过程主要包括:购买请求、支付认证。 购买请求持卡人完成了浏览、选购及订货之后,商家向顾客发送一张完整的订购单,然后持卡人才开始进入购买请求阶段,在此之前的各种处理并没有用到SET。购买请求由四种消息组成:初始请求、初始响应、购买请求、购买响应。为了能向商家发送SET消息,持卡人必须拥有商家和支付网关的数字证书拷贝。持卡人在发向商家的初始请求中,请求得到数字证书的拷贝。初始请求消息包含持卡人所使用信用卡的商标,本次信息交换的标识号及表示时效性的随机数等信息。商家接收初始请求后产生一个响应消息并进行数字签名。该响应消息包含表示时效性的随机数、本次交易的交易号、商家的签名证书及支付网关的密钥交换证书。持卡人接收初始响应后,先验证有关证书有效性,再生成订购信息OI和支付指令PI。接着生成购买请求消息。该消息包含如下信息:·与购买有关的信息。主要组成信息为:PI、双签名、关于OI的消息摘要、数字信封。这部分信息由商家再转送支付网关。·与订购有关的信息。主要组成信息为:OI、双签名、关于PI的消息摘要。·持卡人数字证书。商家和支付网关都要用到该证书。当商家接收购买请求后,先验证持卡人证书的有效性;再验证双签名的有效性,确保订购信息由持卡人签名且在传输过程中未被非法更改;然后处理订购信息并把支付指令传送给支付网关;最后把购买响应消息回传给持卡人。该消息包含用于确认订购的响应数据,这一数据由商家进行数字签名。客户软件收到这一消息后将验证商家的数字签名,然后进行有关的操作,如向持卡人显示有关信息,就订购状态更新数据库等。 支付认证支付认证消息是在商家与支付网关之间交换的信息。支付认证包括支付授权和支付资金清算。⑴支付授权支付授权确保这笔交易是经银行确认的,保证商家能收到钱,据此可向持卡人提供商品或服务。商家首先向支付网关发送授权请求消息。其由三部分组成:①与购买有关的信息。主要来自于客户,包括:PI、双签名、OID和数字信封;②与授权有关的信息。由商家生成,包括:交易标识号,由商家签名并加密的授权数据块以及数字信封;③数字证书,包含持卡人签名证书、商家的签名证书及密钥交换证书。支付网关接收到授权请求后,①验证有关的数字证书;②解开相关数字信封;③验证有关的数字签名、双签名;④验证交易标识号;⑤向发卡银行提交授权请求。得到发卡银行的授权确认后,支付网关向商家返回授权响应消息。其由三部分组成:①与授权有关的信息,包括由支付网关签名及加密的授权数据块和数字信封;②资金清算令牌,这一消息将用于清算支付资金;③数字证书,包含支付网关的签名证书。得到支付网关的授权确认后,商家即可发送货物或提供服务。�⑵支付资金清算商家向支付网关发送清算请求消息。其包括:经商家签名、加密的清算请求数据块,该数据块包含了支付总额和交易标识号;资金清算令牌。支付网关收到清算请求后,解开有关加密的数据块,进行相关的有效性、一致性的检验,然后通过银行内部的资金清算网络把款项从持卡人帐号划到商家的帐号上。接着,支付网关向商家返回清算响应消息以通知商家转帐的结果。商家须保留该响应消息以备日后核对之用。3 结束语电子商务发展过程中关键的问题是电子支付的安全问题。目前大多数支付系统只是传统支付系统的Internet版本,还没有某一种方案明显占有优势。针对现状,本文对安全性较强,但又很复杂的SET协议进行了分析,在此基础上做了一些探讨,有利于相关协议的实现,为进一步对电子商务进行研究提供了便