通过互联网在WEB站点上进行的网上交易是一种全新的交易方式。电子商务之前的传统的商品交易,是消费者与商家面对面的直接交易。直接商品交易可面对面地使用直接支付工具,如现金、支票和银行卡等。但在电子商务中,买方和卖方无法直接支付款项,需要通过网上支付,才能完成网上交易。为了实现安全网上支付,需要采取多种信息安全技术。各国相继研究、制定并实施了一系列网上支付安全协议与体系标准,主要包括SET协议、SSL协议、X。509协议、X。500协议以及PKI安全体系等。其中,SET和SSL已被广泛接受和运用在国际网上支付中。本节主要对基于SSL协议、SET协议以及PKI安全体系的不同网上支付模式进行分析。
7.2.1 SSL安全支付模式
(1)SSL安全支付原理
SSL安全支付模式,就是在电子交易过程中进行网上支付时遵守SSL协议的安全通信与控制机制,通过SSL协议实现即时、安全可靠的在线支付。
SSL协议是目前安全电子商务交易中使用最多的协议之一。SSL协议并不是专门用于电子支付的技术,其设计目的是保证互联网信息传递的保密性。在电子交易过程中,通过SSL协议建立消费者和商家之间的联系,其用户端的浏览器与商家服务器通过一个加密的安全通道进行信息交换,第三者无法通过窃听的方式把得到的加密数据还原成明文。
SSL协议在Internet网络层次中的应用层和传输层之间实现。SSL协议不是单个协议,而是两层协议,包含套接层SSL记录协议和应用层SSL握手协议、SSL更改密文规范协议和SSL告警协议。
HTTPSSL握手协议SSL更改密文规范协议SSL告警协议SSL记录协议TCPIP、7-5SSL协议体系结构SSL协议的优势在于它是与应用层协议独立无关的。高层的应用层协议(如HTTP、FTP、TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经通过SSL记录协议完成加密算法、通信密钥的协商以及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的安全性。
2SSL的工作过程SSL的工作过程其中,各个步骤的作用如下:
①浏览器请示与服务器建立安全会话。
②浏览器与Web服务器交换密钥证书以便双方相互确认。
③Web服务器与浏览器协商密钥位数(40位或128位);用户机提供自己支持的所有算法清单,服务器选择它认为最有效的密码。
④浏览器将产生的会话密钥用Web服务器的公钥加密传给Web服务器。
⑤Web服务器用自己的私钥解密。
⑥Web服务器和浏览器用会话密钥加密和解密,实现加密传输。
3SSL提供的三种基本的安全服务SSL提供三种基本的安全服务,它们都是使用公开密钥技术。
(1)信息保密通过使用公开密钥和对称密钥技术以达到数据加密。SSL用户机和SSL服务器之间的所有业务使用在SSL握手过程中建立的密钥和算法进行加密。这样就防止了某些用户的非法窃听,因为即使通信的内容被捕捉到,也无法破译。
(2)信息完整如果Internet成为可行的电子商务平台,应确保服务器和用户机之间的信息内容免受破坏。SSL利用机密共享和Hash函数组提供信息完整性服务。
(3)相互认证这是用户机和服务器相互识别的过程。它们的识别号用公开密钥编码,并在SSL握手时交换各自的识别号。
4SSL协议的安全性能
(1)有效防止冒名顶替为了验证密钥证书持有者是其用户而不是冒名用户,SSL要求密钥证书持有者在握手时对交换数据进行数字式标志。密钥证书持有者对包括密钥证书的所有信息数据进行标志,以说明自己是密钥证书的合法持有者。这样就防止了其他用户冒名使用密钥证书。密钥证书本身并不提供认证,只有密钥证书和密钥一起才起作用。
(2)安全的对话过程SSL的安全性服务对用户做到尽可能透明。一般情况下,用户只需单击屏幕上的一个按钮或连接就可以与SSL的主机相连。当用户机连接SSL主机时,首先初始化握手协议,以建立一个SSL对话时段。握手结束后,将对通信加密,并检查信息完整性,直到这个对话时段结束为止。当前,大多数Web服务器均可以提供对SSL协议的支持。
(3)缺乏对商家认证SSL协议运行的基点是商家对用户信息保密的承诺。从上述流程中可以注意到,SSL协议有利于商家而不利于用户。用户的信息首先传给商家,商家阅读后再传给银行,这样,用户资料的安全性便受到威胁。商家认证用户是必要的,但在整个过程中,缺少了用户对商家的认证。在电子商务的开始阶段,由于参与电子商务的公司大都是一些大公司,信誉较高,这个问题没有引起人们的重视。随着参与电子商务的商家迅速增加,对商家的认证问题越来越突出,SSL协议的缺点暴露出来。
5SSL协议在电子商务中的应用SSL协议作为HTTP网络安全传输中事实上的工业标准,被目前国际上的许多大型厂商支持,并广泛应用于支持电子商务的各类应用系统中。当前主流的用户端浏览器和Web服务器大都支持SSL协议,银行以及支付网关也都研发了大量支持SSL协议的应用服务与产品。
要实现用户浏览器与商家服务器之间在SSL协议下的信息传输,需要在Web服务器端安装支持SSL协议的Web服务器证书,并将URL中的“http://”改成“https://”。如果用户端也要求安装支持SSL协议的用户端证书,则称为双向认证;如果用户端不要求安装支持SSL协议的证书,则称为单向认证。
(1)商家的选择商家在互联网上与用户联系的目的是处理两类业务,其一是接受订单,其二是支持网上支付。对于中小规模的网商来说,处理订单信息的过程一般不需要较高级别的安全协议,所以第一类业务没有必要使用SSL协议。网上商家必须要解决安全在线支付问题,解决办法有两种。
①直接与某银行合作,接到银行的支付接口,就可以支持该银行提供给银行卡用户的网上支付服务了。比如招商银行的“一卡通”、建设银行的“龙卡”等。银行往往愿意与特约商户联盟,因为银行不但可以收取一定的服务费,还可以扩大其用户群。不过,由于各银行的支付接口并不统一,对于商家来说,要实现与多家银行的连接并不现实。
②利用网上支付平台。这是目前发展较快的第三方支付模式,如美国的Paypal和中国的支付宝、安付通等。统一的网上支付平台屏蔽了各个银行支付接口上的差别,为所有的商家提供统一网上支付接口,降低了商家在支付环节上的技术难度,有效地解决了在线支付的安全问题。
(2)网上支付平台①网上支付平台的SSL协议应用。网上支付平台的服务器端安装的一般是全球着名认证中心的SSL协议证书,用户端浏览器发送请求时使用HTTPS协议,通过用户端浏览器与支付平台的服务器之间的所有信息往来都使用SSL协议加密。
②网上支付平台提供的服务。网上支付平台根据商家注册信息验证商家身份的合法性,接受商家的支付请求;根据商家提供的用户购物信息要求用户通过支付平台提供的页面在线填写银行卡和本次支付的相关内容,再通过银行的支付网关发给银行专用网络。
③网上支付平台的安全保密性。网上支付平台是通过银行的支付网关进行操作的,安全性由银行方面负责。支付平台并不保存或处理用户的银行卡信息,即当用户在线填写银行卡和支付的相关内容时,已经到达银行的支付网关,因此不用担心个人的敏感信息会泄露给商家或支付平台。
(3)基于支付平台的网上支付流程统一支付接口的第三方网上支付平台可以支持多种银行卡的网上支付,为从事电子商务的商家和用户提供网上在线交易的支付接口,作为商家、银行和消费者之间的桥梁,既提供了支付安全的保证,又省去了银行和商家之间的接口不统一给支付过程带来的高成本。基于SSL协议的支付流程具体流程如下:
①用户在商家选购商品,生成订单。
②商家将订单发送给支付平台。
③支付平台接受支付请求,要求顾客选择支付购物款所用的银行卡种类。
④支付平台根据用户的选择连接相关银行的加密页面,由用户填写银行卡信息和支付信息,直接提交到发卡银行。
⑤发卡银行首先进行交易合法性检验,然后查询用户的账户信息,将支付请求的款额从用户的账户中扣除,并通过银行的专用网络将资金转到商家的开户银行。
⑥收单行将款项到账的消息通知商家,商家给用户发货。
7.2.2 SET安全支付模式
1SET安全支付的目标基于SET协议机制的安全支付模式,就是指在电子商务过程中进行网上支付时遵守SET协议的安全通信与控制机制,通过它实现即时、安全可靠的在线支付。在这种支付模式中,运用了一系列先进的安全技术与身份认证手段,如私有密钥加密、公开密钥加密、数字摘要、数字证书、数字签名和双重签名等。
安全电子交易的标准是确保信息的保密性、付款的完整性和能对商家及持卡人进行身份验证(authentication),SET安全支付的目标是:
(1)能确保用户支付信息的安全,对付款信息及订单信息能分别保密和发送;(2)能确保所有支付信息的完整性;(3)能保护商家利益,确保用户发送的信息不可抵赖;(4)能验证商家是该信用卡发卡行的合法特约商家;(5)能验证付款人是信用卡的合法使用者;(6)建立一个协议,该协议上的交易通道并不依赖传输安全机制;(7)能在不同平台上及不同网络系统上使用,尤其适合在互联网上的信用卡支付。
2SET协议的分层次认证SET协议为了达到上述目标,需要一个权威的认证机构对所有参与交易的成员进行认证,同时利用公钥体制对传递的信息进行加密。在SET协议中对认证过程有严格的要求,SET支付模式的分层次认证本地认证中心并不一定存在,品牌认证中心可以直接认证持卡人、收款人及金融机构。
而无论是持卡人、收款人还是收单银行,都需要分别经过持卡人认证中心、商家认证中心和支付网关认证中心的认证才能参与交易。
3SET安全支付的工作过程在SET协议环境下利用信用卡进行网上支付时,需要在用户端安装一个专用的用户端软件,同时在商家服务器端安装商家服务器端软件,在支付网关处安装对应的网关转换软件等。各参与方还要事先下载一个证实自己真实身份的数字证书,借此获取自己的公开密钥和私有密钥对,并且把公开密钥在系统中公开。SET协议的支付工作流程(如图7-9所示)可以分为三部分。
(1)SET协议工作前。消费者使用浏览器在商家的web主页上浏览商品,并选择要购买的商品,在线填写订单并选择付款方式。
7-9SET协议的支付工作流程(2)SET开始介入。消费者发送给商家一个完整的订单及要求付款的指令;商家接受订单后,通过支付网关向消费者的发卡行请求支付认可;经银行及发卡机构确认后,批准交易,然后将确认信息发送给商家;商家发送订单确认信息给顾客;顾客端软件记录交易日志。SET工作结束。
(3)商家给顾客发运货物后,可以立即请求银行将购物者的货款转移到商家的账户,也可以等到某个时间,请求成批划账处理。
4SET支付过程采取的安全措施(1)使用数字信封保证信息的机密性SET在一个数据封套中使用对称和非对称两种加密技术和算法来提供数据的机密性。发送方将信息用DES加密,并将DES对称密钥用接收方的公钥加密,形成信息的“数字信封”,将数字信封与DES加密后的信息一起发给接收方,接收方收到信息后,先用其密钥打开数字信封,得到发送方的DES对称密钥,再用此对称密钥去解开数据。只有用接收方的RSA密钥才能打开此数字信封,确保了接收方的身份。
(2)应用数字签名技术进行鉴别数字签名在SET协议中一个重要的应用就是双重签名。为了避免在交易过程中商家窃取持卡人的信用卡信息,以及避免银行跟踪持卡人的行为,SET协议采用了双重签名的方法,使商家只能看到订单信息,而银行则只能看到支付信息。
(3)使用数字证书来提供身份验证SET协议使用数字证书来提供身份验证。SET协议中主要的证书是持卡人证书和商家证书。除此之外,还有支付网关证书、银行证书、发卡机构证书。
在网上购物过程中,持卡人的证书与发卡机构的证书相关联,而发卡机构的证书通过不同品牌的证书连到根CA,而根的公开密钥对所有的SET软件都是已知的,可以校验每一个证书。
持卡人可从公开媒体上获得商家的公开密钥,但持卡人无法确定商家不是冒充的,于是持卡人请求CA对商家认证。CA对商家进行调查、验证和鉴别后,将包含商家公开密钥的证书经过数字签名传给持卡人。同样,商家也可对持卡人进行验证。
SET对处理过程中的通信协议、请求信息的格式、数据类型的定义等,都有明确的规定。在操作的每一步,持卡人、商家、网关都通过CA来验证通信主体的身份,以确保通信的对方不是冒名顶替的。
(4)应用数字摘要保证数据的完整性SET协议中采用传输数据产生的完整性数值(Hash值)来验证数据从发送方传输到接收方是否被篡改。SET在支付应用中将数字摘要和数字签名一起结合使用,允许信息的接收方验证数据的来源和完整性,防止伪造和篡改。在SET结构中,数字签名是采用发送方私有密钥加密的Hash值,该Hash值提供信息数据的完整性。如果支付信息被修改,则其Hash值不同,可发现数据被篡改。
7.2.3 基于PKI体系的安全支付模式如前所述,SSL协议以其便捷和可以满足现实要求的安全性得到了不少用户的认可,但SSL协议只是简单地建立起了通信双方的安全连接,由于无法解决多方认证问题,缺乏一套完整的认证体系,不能提供完备的防抵赖功能,在支付应用中存在着用户信息无法得到保障、商家容易受到欺骗等安全隐患。而SET协议不仅能加密两个端点之间的对话,还可以加密多个信息和解决多方认证问题,安全性能高,但它操作复杂,对用户的要求高,运行成本高,在互联网上的推广和应用有很大难度。一个既方便易用,又能有效地认证交易各方的身份,还具有防抵赖和保护各方信息的安全支付系统,为人们所期待。目前,建设基于PKI和SSL协议的支付系统解决方案成为人们的选择。
1PKI简介PKI是基于公钥加密算法和技术为网上通信提供安全服务的支付系统解决方案,其核心是数字证书,核心执行者是CA认证机构。PKI的主要目的是通过自动管理密钥和证书,为用户建立起一个安全的网络运行环境,使用户可以在多种应用环境下方便地使用加密和数字签名技术,从而保证网上数据的机密性、完整性和有效性。数据的机密性是指数据在传输过程中不能被非授权者偷看;数据的完整性是指数据在传输过程中不能被非法篡改;数据的有效性是指数据不能被否认。因此,PKI系统能有效地解决SSL协议不能解决的问题,即为交易的各方审批和发放数字证书、管理密钥,并支持多方交叉认证。PKI体系结构是目前比较成熟的互联网络安全解决方案。
2基于PKI和SSL协议的安全网上支付系统(1)建设统一网关。基于PKI的方案,首先应建设统一的支付网关,这个网关提供银行的标准接口,并通过互联网与商户连接。由于中国银联银行卡交换中心的跨行交易系统覆盖面广、运行稳定,能够准确、及时地实现发卡行与收单行之间的划账清算,已经成为中国电子支付平台支付网关的首选。
(2)安装数字证书。商家事先要在某商业银行开立结算账户,持卡人用户通过互联网与商家网站连接。银联支付网关和商户网站安装服务器证书,持卡人用户安装个人普通证书。
(3)采用SSL协议。持卡人与商家之间采用SSL协议,实现点对点的连接和认证;商家和支付网关之间采用SSL协议,实现点对点连接和认证,即整个连接是两次点对点通信和交易连接。
基于PKI和SSL协议的网上支付系统,对支付网关、商家和用户均进行了认证,并且消费者的支付信息直接通过SSL协议点对点地传给可信任的第三方支付网关,因此在很大程度上保障了消费者的利益,极大地方便了网上支付。
3PKI与SSL结合的网上支付流程基于PKI和SSL协议的支付流程PKI与SSL协议结合的网上支付流程具体流程如下:
①持卡人登录商家网站,浏览商品,填写购物订单信息及银行卡支付信息,数字签名后发送到商家网站服务器。
②商家验证持卡人的订单签名,确认后商家将支付信息转发给银联支付网关,银联支付网关将网上通讯格式转换为银行内部格式后转送后台进行信息转接并进行传统授权处理。
③银联信息交换中心将支付信息按传统授权,即收单行向发卡行要求授权,然后,发卡行通过银联信用卡网络向收单行发送授权。
④银联支付网关将交易授权结果返回给商户。
⑤商户将交易扣款成功信息返回给持卡人,持卡人等待商家的配送。
⑥用户发卡行和商家开户行分别向用户和商家发送支付与到账信息。
4该系统的特点基于PKI和SSL协议的网上支付系统具有以下特点:
①系统安全性高,因为目前黑客尚不能攻破PKI机制;②具有数据完整性、数据保密性功能;③利用数字签名技术,可以有效防止交易各方对发送信息的抵赖;④采用了证书机制,网上身份认证采用的是强认证机制,确保交易各方的身份真实、合法;⑤信息传递的安全性和交易过程快捷方便;⑥虽然与SET协议相比,大大降低了交易的复杂性,提高了交易效率,但由于用户端需要安装数字证书,用户的使用成本仍然较高。