为了克服SSL协议的缺点,满足电子交易不断增加的安全要求,以达到交易安全及合乎成本效益市场要求,Visa和MasterCard联合其他国际组织,如Microsoft、IBM、Netscape、GTE、SAIC、Terisa和Verisign等业界的主流厂商,通过多年的研究,于1996年提出了安全电子交易(Secure Electronic Transaction,SET)协议,并在1997年5月正式发布了SET1.0标准。
SET协议是应用层的协议,是一种基于消息流的协议,它是面向B2C模式的,完全针对信用卡来制定,涵盖了信用卡在电子商务交易中的交易协议信息保密、资料完整等各个方面。SET协议主要定义了加密算法的应用、证书消息和对象格式、购买消息和对象格式、请款消息和对象格式以及参与者之间的消息协议。
SET协议作为一个专门的安全电子付款协议,是一个多方的消息报文协议,定义了银行、商家和持卡人间必须符合的报文规范,而且所有参与SET的成员都必须先申请数字证书,以识别身份。但是SET协议对参与操作的各方定义了互操作接口,一个系统可由不同厂商的产品构成,SET报文不依赖于浏览器,能在银行内部网或其他网络上传输。
2.SET协议的交易流程
一个完整的SET协议处理流程中涉及以下参与者。
1)消费者:包括个人消费者和团体消费者,按照商家的要求填写订货单,通过由发卡银行发行的信用卡进行付款。
3)收单银行:通过支付网关处理消费者和商家之间的交易付款问题。
4)发卡银行:电子货币(如智能卡、电子现金)的发行公司,以及某些兼有电子货币发行的银行,负责处理智能卡的审核和支付工作。
5)支付网关:银行金融系统与Internet之间的接口,可以将Internet上的传输数据转换成金融机构内部的数据。
6)认证机构(Certificate Authority,CA):负责对交易双方的身份确认,对商家的信誉度和消费者的支付手段进行认证;CA在整个电子商务过程中至关重要,是开展电子商务的基础;CA具有证书发放、证书更新、证书撤销和证书验证功能;CA证书可分为持卡人证书、商家证书、支付网关证书、银行证书和发卡机构证书。CA通常是企业性服务机构,受理数字证书的申请、签发及管理。
一个完整的基于SET协议的支付流程主要包括以下几个步骤(如图9-8所示):
图9-8 一个完整的基于SET协议的支付流程
1)持卡者向商家发出购买初始化请求,包含持卡者的信息和数字证书。
2)商家接收到请求,通过CA验证持卡者的身份后,将商家和支付网关的有关信息和证书生成回复消息,发给持卡者。
3)持卡者接收到消息后,通过CA验证商家和支付网关的身份,然后,持卡者利用自己的支付信息(包括账户信息)生成购买请求消息,并发送给商家。其中,持卡人利用加密技术,使得商家只能读购买信息,支付网关只能读账户信息。
4)商家接收到后,通过解密,读到购买信息,连同自己的信息及持卡人信息,一同加密生成授权请求消息,发给支付网关,请求支付网关授权该交易。
5)支付网关接收后,解密取出支付信息,通过银行内部网络连接收单银行和发卡银行,对该交易进行授权。授权完成后,支付网关产生授权响应消息,发给商家。
6)商家接收后,定期向支付网关发出转账请求消息,请求进行转账。
7)支付网关接收到后,通过银行内部网络连接收单银行和发卡银行,将资金从持卡者账户转到商家账户中,然后向商家发出消息。(www.xing528.com)
8)商家接收到消息后,知道已经完成转账,然后产生消息,发送给持卡者。
9)持卡者接收到消息,知道该交易已经完成。
SET协议通过数字证书、CA以及CA的树形验证体系结构完成认证过程。
3.SET的安全性
SET协议通过定义银行、商家、持卡人之间必须的报文规范,利用公开密钥加密、数字签名、数字证书等技术,保证了交易的机密性、信息的完整性、身份的真实性及不可否认性,保护了参与各方的利益。其安全性主要体现在以下几个方面。
(1)机密性(Confidentiality)
SET协议采用先进的公开密钥算法来保证传输信息的机密性,以避免Internet上任何无关方的窥探。公开密钥算法容许任何人使用公开的密钥将加密信息发送给指定的接收者,接收者收到密文后,用私人密钥对这个信息解密,因此,只有指定的接收者才能读这个信息,从而保证信息的机密性。
SET协议也可通过双重签名的方法将信用卡信息直接从客户方通过商家发送到商家的开户行,而不容许商家访问客户的账号信息,这样客户在消费时可以确信其信用卡号没有在传输过程中被窥探,而接收SET协议交易的商家因为没有访问信用卡信息,故免去了在其数据库中保存信用卡号的责任。
(2)数据完整性(Data Integrity)
通过SET协议发送的所有报文加密后,将为之产生一个唯一的报文摘要值,一旦有人企图篡改报文中包含的数据,该摘要值就会改变,从而被检测到,这就保证了信息的完整性。
(3)身份验证(Verification of Identity)
SET协议可使用各方共同信任的CA发放的数字证书来确认交易涉及的各方(包括商家、持卡人、收单银行和支付网关)的身份,为在线交易提供一个完整的可信赖的环境。
(4)不可否认性(Non-repudiation of Disputed Charges)
SET协议交易中数字证书的发布过程也包含了商家和客户在交易中存在的信息。因此,如果客户用SET协议发出一个商品的订单,在收到货物后不能否认发出过这个订单;商家以后也不能否认接到过这个订单。
SET协议尽管安全性高,但是也存在一些不足之处,主要体现在以下几个方面:
1)SET协议只支持信用卡消费,主要传输持卡者的主账户信息,没有个人密码PIN的加密。
2)SET协议交易过程只保证了货币原子性,并不满足发送原子性和商品原子性。也就是说,不能保证客户付款后一定得到商品,得到的商品是否就是自己所订购的,如果商家提供的货物不符合质量标准,或消费者故意说质量有问题而拒不接收货物,对商家进行恶意敲诈,该如何进行仲裁没有规定。
3)SET协议报文消息太复杂。SET协议定义了支付过程的报文消息及数据定义,由于其规范的目标是全球使用,考虑的因素很多主要是美国的支付方式,而对其他国家来讲报文消息显得过于复杂,造成SET协议应用软件设计复杂,价格高,影响了SET协议的普及。
4)SET协议要求安装的软件包太多,处理速度慢,价格昂贵。对于小型交易来说,高安全性带来的低效率与高费用代价,是很不值得的。同时,SET协议涉及的实体较多。要实现SET协议支付,持卡人、商家、支付网关和CA必须同时支持SET协议,因而各方建设和协调的困难造成互操作性差。
5)SET协议没有解决交易中证据的生成和保留问题。SET协议技术规范没有提及在事务处理完成后,如何安全地保存或销毁此类数据,这种漏洞可能使这些数据以后受到潜在的攻击。
6)SET协议中未添加时间项信息。对于每一笔支付,时间项是关键的信息,特别是在网络交易过程中,显得尤其重要,时间和签名一样是应该防止伪造和篡改的关键性内容,然而在计算机上改变某个文件的时间标记是轻而易举的事。所以,在电子交易中也需要对文件的日期和时间信息采取相应的安全措施,必须有统一的时间控制,由第三方对交易时间进行仲裁,以防止以后各方对交易的否认和抵赖。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。