网上支付2 - IT收藏夹 - 无翼天使

(这条文章已经被阅读了 45 次) 时间:2001-04-16 20:33:41 来源:无翼天使 (张琨) 转载

摘 要 网上支付是电子商务得以顺利发展的基础。本文在解释什么是网上支付后,分析网上支付组件,解释了SET和SSL通信协议,列举了网上支付的方式以及如何实现网上,最后展望展望了网上支付的前景。
关键词 电子商务 网上支付 E-BanK SSL SET CA认证
网上支付
  伴随着电子商务的浪潮,网上付款越来越成为必要,这种快捷和日渐安全的在网上支付购物货款、支付各项公用事业费用的帐单,甚至进行个人网上理财的方式,让使用者大有时代弄潮儿的感觉,同时随着消费者对信息安全技术信心的提高,网上支付可望愈来愈受欢迎。
  一、什么是网上支付?
  任何交易,都会包含一个最基本的环节,就是资金的转移。利用网络完成交易,不管这笔交易是否有物流,也就是说即使只有提供信息等服务性商品,也一定会有资金流动的问题。对于这样一个问题,最传统的解决方案是利用邮局的邮政汇款或是由银行转帐,再有就是今天普遍使用的信用卡支付工具。不过,对于电子商务来说,这些种付款方式对方便性与时效性大打折扣,甚至可以说,跟邮购似乎相去不远,自然不能说是很好的付款方式。而由所谓的电子货币来交易,这种采用先进的数字签名的安全防护技术认证措施,使客户不必出门,不需开支票,不必贴邮票,就能经由网络迅速完成款项支付、资金调拨的电子转账及信息通知作业,相比传统的付款方式,将更受消费者的青睐。
  在线电子支付是电子商务的关键环节,也是电子商务得以顺利发展的前提条件。没有适时的电子支付手段相配合,电子商务顶多算是“虚拟商务”,只能是电子商情、电子合同,而无法网上成交。网上支付要求金融业电子化,E-Bank(Electronic Bank)的建立成为大势所趋。 E-Bank,网上银行,即是在INTERNET上的虚拟银行柜台。用户可以不受时间、空间的限制,只要用一台PC,一根电话线,就可以享受全天候的网上金融服务。这里的网上金融服务是指实质性的金融服务,除了传统的商业银行业务之外,还可以进行网上支付结算。那些拥有自己网站,但仅仅进行形象宣传和业务介绍的银行,充其量只能算“上网银行”,而非“网上银行”。
  E-Bank目前有两种形式:一种是完全依赖于INTERNET发展起来的全新电子银行,这类银行所有的业务交易依靠INTERNET进行,如世界第一家全交易型网络银行——美国安全第一网络银行(Security First Network Bank,简称SFNB)。另一种则是在现有商业银行基础上发展起来,把银行服务业务运用到INERNET,开设新的电子服务窗口,即所谓传统业务的外挂电子银行系统。例如国内的招商银行。
  二、网上支付组件
  从技术角度看,网上支付至少需要四个方面:商户系统,电子钱包,支付网关和安全认证。其中后三者是网上支付的必要条件,也是E-Bank运行的技术要求、认证。其中后三者是网上支付的必要条件,也是E-Bank运行的技术要求。
  1.电子钱包:
  简单地说就是客户的加密银行账户,它的安装程序可以从网上下载,或直接到E-Bank领取安装光盘。一些E-Bank甚至直接用普通信用卡代替电子钱包的功能。
2.支付网关(Payment Gateway):
连接银行网络与INTERNET的一组服务器。其主要作用是完成两者之间的通信、协议转换和进行数据加、解密,以保护银行内部网络的安全。支付网关的功能主要有:将INTERNET传来的数据包解密,并按照银行系统内部的通信协议将数据重新打包,接收银行系统内部反馈的响应消息,将数据转换为INTERNET传送的数据格式,并对其进行加密。实际上,支付网关起着一个数据转换与处理中心的作用。
3.SET与SSL:
网上支付与网络安全如同孪生兄弟,提到网上支付,又怎能不提交易安全?目前安全协议有两种:SET与SSL。
SET(Secure Electronic Transaction)即安全电子交易模式,是由Vise和MasterCard两大信用卡组织提出的以信用卡为基础的电子付款系统规范,用来确保在开放网络上持卡交易的安全性。SET规范使用了公开密钥体系对通信双方进行认证,利用DES、RC4或任何标准对称加密方法进行信息的加密传输,并利用Hash算法鉴别消息的真伪、有无篡改,以维护在任何开放网络上的个人金融资料的安全性。SET体系中还有一个关键的认证机构(CA),此机构根据X.509标准发布和管理证书。
SET协议规定发给每个持卡人一个数字证书。客户(持卡人)选中一个口令,用它对数字证书和私钥、信用卡号以及其他信息加密存储。这些与一个SET协议的软件一起组成了一个SET电子“钱夹”。
SET协议的工作流程如下:
  (1)支付初始化请求和响应阶段 当客户决定要购买商家的商品并使用SET钱夹付钱时,商家服务器上POS软件发报文给客户的浏览器SET钱夹付钱,SET钱夹则要求客户输入口令然后与商家服务器交换“握手”信息,使客户和商家相互确认,即客户确认商家被授权可以接受信用卡,同时商家也确认客户是一个合法的持卡人。
  (2)支付请求阶段 客户发一报文,包括订单和支付命令。在订单和支付命令中必须有客户的数字签名,同时利用双重签名技术保证商家看不到客户的帐号信息。只有位于商家开户行的被称为支付网关的另外一个服务器可以处理支付命令中的信息。
  (3)授权请求阶段 商家收到订单后,POS组织一个授权请求报文,其中包括客户的支付命令,发送给支付网关。支付网关是一个Internet服务器,是连接Internet和银行内部网络的接口。授权请求报文通过到达收单银行后,收单银行再到发卡银行确认。
  (4)授权响应阶段 收单银行得到发卡银行的批准后,通过支付网关发给商家授权响应报文。
  (5)支付响应阶段 商家发送购买响应报文给客户,客户记录交易日志备查。
  在SET协议中,定义了五种实体:持卡人:拥有信用卡的消费者;商家:在Internet上提供商品或服务的商店;支付网关:由金融机构或第三方控制,它处理持卡人购买和商家支付的请求;收单行(Acquirer):负责将持卡人的帐户中资金转入商家帐户的金融机构;发卡行:负责向持卡人发放信用卡的金融机构。涉及SET交易的有持卡人、商家和支付网关三个实体。认证机构需分别向持卡人、商家和支付网关发出持卡人证书、商家证书和支付网关证书。三者在传输信息时,要加上发方的数字签字,并用接收方的公开密钥对信息加密。实现商家无法获得持卡人的信
用卡信息,银行无法获得持卡人的购物信息,同时保证商家能收到货款的SET支付的目标。  
SET协议规范的技术范围包括:加密算法的应用;证书信息和对象格式;购买信息和对象格式;认可信息和对象格式;划帐信息和对象格式;对话实体之间消息的传输协议。
  SET协议在安全性方面主要解决五个问题:(1)保证信息在Internet上安全传输,防止数据被黑客或内部人员窃取;(2)保证电子商务参与者信息的相互隔离,客户的资料加密或打包后通过商家到达银行,但是商家不能看到客户的帐户和密码信息;(3)解决多方论证问题,不仅要对消费者的信用卡认证,而且要对在线商店的信誉程度认证,同时还有消费者、在线商店与银行间的认证;(4)保证网上交易的实时性,使所有的支付过程都是在线的;(5)仿效EDI贸易的形式,规范协议和消息格式,促使不同厂家按照一定的规范开发软件,使其具有兼容性和互操作功能,并且可以运行在不同的硬件和操作系统平台上。
  SET协议的缺陷:自1996年4月SET协议面市以来,得到了IBM、HP、Microsoft、Netscape、VeriFone、GET、Verisign等许多大公司的支持,促进了SET的发展。但SET仍然存在一些问题:(1)协议没有说明收单银行给商家付款前,是否必须收到客户的货物接受证书。否则,商家提供的货物不符合质量标准,客户提出疑议,责任由谁承担。(2)协议没有担保“非拒绝行为”,这意味着在线商店没有办法证明订购是不是由签署证书的客户发出的。(3)SET技术规范没有提及在事务处理完成后,如何安全地保存或销毁此类数据,是否应当将数据保存在客户、商家或收单银行
的计算机里。这种漏洞可能使这些数据以后受到潜在的攻击。
SSL(Security Sockets Layer)即安全套接层协议,主要用于提高应用程序之间的数据的安全系数,采用了公开密钥和专有密钥两种加密:在建立连接过程中采用公开密钥;在会话过程中使用专有密钥。加密的类型和强度则在两端之间建立连接的过程中判断决定。它保证了客户和服务器间事务的安全性。
SSL协议在运行过程中可分为六个阶段:
  (1)建立连接阶段:客户通过网络向服务商打招呼,服务商回应;
  (2)交换密码阶段:客户与服务商之间交换双方认可的密码;
  (3)会谈密码阶段:客户与服务商之间产生彼此交谈的会谈密码;
  (4)检验阶段:检验服务商取得的密码;
  (5)客户认证阶段:验证客户的可信度;
  (6)结束阶段:客户与服务商之间相互交换结束信息。
  当上述动作完成之后,两者之间的资料传输就以对方公密进行加密后再传输,另一方收到资料后以私钥解密。即使盗窃者在网上取得加密的资料,如果没有解密密钥,也无法看到可读的资料。
  在电子商务交易过程中,由于有银行参与,按照SSL协议,客户购买的信息首先发往商家,商家再将信息转发银行,银行验证客户信息的合法性后,通知商家付款成功,商家再通知客户购买成功,将商品寄送客户。
  在SSL协议中主要提供三方面的服务:(1)认证用户和服务器,使得他们能够确信数据将被发送到正确的客户和服务器上;(2)加密数据,以保证数据在传送过程中的安全,即使数据被窃,盗窃者没有解密密钥也得不到可读的资料;(3)维护数据的完整性,确保数据在传送过程中不被改变。
  SSL协议的缺点:首先,客户的信息先到商家,让商家阅读,这样,客户资料的安全性就得不到保证;其次,SSL只能保证资料传递过程的安全,而传递过程是否有人截取就无法保证了。所以,SSL并没有实现电子支付所要求的保密性、完整性,而且多方互相认证也是很困难的。
  4.示范操作放大镜:
  利用一台配有按照电子支票要求修改的浏览器的个人电脑,买主从某一Web地址观察所销售的货物。一旦选中一项物品,销售商地址上的服务器在屏幕上显示一个任选的电子付款方式,要求消费者插入其电子支票簿,并输入口令或者PIN。一张支票出现,买主确认金额后点触鼠标进行签字。在后台,托收证明书被加到支票上,并算出安全的无用数据算法附加到支票上,以防篡改。利用电子邮件经过浏览器将支票送到Web地址和其它地址。
  在Web地址上,销售服务商经过编程后利用消费者公用键确认支票、签发支票的银行和团体。支票一经确认,就由销售商背书,并附加上来自其银行和联邦储备银行的证明书,再通过电子邮件到达销售商银行里的服务器。经过进一步确认后,支票就传送给票据交换和结算系统。
  因为托收与账户信息在交易的所有阶段中都包含在支票上,通过键入信息而混入差错的机会很少,因而实现了节约。对于销售商来说,不仅整个交易过程是自动化的,混入差错的机会很少,因而实现了节约。对于销售商来说,不仅整个交易过程是自动化的,而且他们可以有百分之百的时间核查支票的签名,而这在使用纸支票时是不可能的。从消除欺诈现象及实现自动接收与处理两个方面来说,都会得到很大的好处。这些好处会表现在降低成本上。欺诈行为越少,自动处理过程越多,成本就越低。
5.CA认证中心:
  在网上交易中,客户、商家、银行不可能直接见面。为了确认交易各方的身份以及保证交易的不可否认,需要有一份数字证书进行检验,这就是电子安全证书。电子安全证书由CA(Certificate Authority)认证中心来发放。实际上,CA这个概念起源于SET。由于在基于SET的交易流程中,最主要的一点就是要确认交易各方的身份,所以才有了CA这个概念。后来,鉴于单纯SSL协议方式只解决了数据传输过程中加密的方法,但是不能真正解决交易双方的身份确认问题,CA的概念有扩展了一步,被引入到SSL体系之中。所以现在有“SET-CA”和“非SET-CA”两种不同的形式。
  三、电子付款的方式
  广义而言,电子付款就是网上进行买卖双方的金融交换,这种交换的内容通常是由银行中介或法定货币所背书的某种形式的数字金融工具,比如加密过的信用卡号码、电子支票或是数字现金等。就像现实世界中的交易一样,网上付款也可以分为几种不同的类型。
  电子货币:即数字货币﹐在网上付款方式上,数字现金可能是最主要取代纸钞的付款方式,它所具备的特性是具有金钱价值(受现金、银行授权信用或银行证明的本票所担保,若没有适当的银行证明,数字现金就有在存款时以资金不足而被拒绝的风险)、互通性若没有适当的银行证明,数字现金就有在存款时以资金不足而被拒绝的风险)、互通性(可和其它数字现金、纸钞、货物或服务、信用贷款限额、银行账户存款、银行票据或契约、电子利益转移等等来交换)、可取得性(远程的储存和取得可以提供客户不论是在家里、办公室或旅行时交换电子现金,甚至可以储存在远程的计算机内存里、在智能卡上、或在其它方便携带或特别设计的装置上)和安全性(预防或检测数字现金的复制和重复使用是做得到的,以便使数字现金不容被复制或窜改)。数字货币以所谓的数字签名的密码系统为基础,这方法使用了一对同时运作的数字金钥(极大整数或号码):一个号码用来锁定,也就是加密,另一个密码则是用来解密。用一个数字金钥所能编译出来的讯息只能用另一个数字金钥来解读,加密金钥绝对是保密的,而解密金钥则是公开的。一旦银行把公开金钥提供给所有的顾客(不论是买方或卖方),客户便可以解读任何用银行私密金钥所编译的讯息,如果客户解读出可辨识的讯息,那么客户便可以确定此讯息乃银行所编译的。数字签名安全可靠,而且证明比手写的签名更不容易仿造。客户通过建立账号和维持账号内足够的钱来支持任何的采购,如此便可从货币服务器购买数字现金,其价值由银行来做担保,一旦买进代币,客户计算机上所使用的数字现金软件,就会记下银行所签章的数字金钱,使用者就可以在任何接受数字现金的商店里尽情购物,而不必再开账号或传送信用卡号码,客户如果想付款,软件就会从所储存的代币中转出适当的金额。为防止电子现金的重复使用,银行先拿数据库里已使用的票据资料来检查。如同纸钞一样,数字现金也可用流水号码来辨识。不过对于大量处理付款的银行而言,仍无法达到登记点的网上逐一检查工作,银行必须从事不断的检查和进行安全记录,来维持电子现金的安全性。
  电子支票: 所谓电子支票,就是设计来吸引不想使用现金,而宁可采用信用方式的个人客户和公司组织。是用电子方式起始,使用电子签名做背书,并使用数字证明来验证个人客户和公司组织。是用电子方式起始,使用电子签名做背书,并使用数字证明来验证付款者、付款银行和银行账户,其安全和认证工作则由公开金钥密码法的电子签名来完成。电子支票可以通过电话的直接传达或利用互联网络这类公众网络来传送,银行收集电子支票,然后通过类似票据交换所(Automated Clearing House, ACH)网络来交换,这种现有银行体系和公众网络的整合为银行、工业界和客户提供了以现有支票处理机构为主的可行方案。电子支票的优点是适合做小额付款的清算,而且电子支票的传统密码加密方式比以公开金钥密码的系统较容易处理。收款人、收款人银行和付款人银行都可以使用公开金钥来验证支票。电子签名也可以自动验证。而且电子支票容易和EDI应用的应收账款结合。电子支票会产生浮动(Float),浮动则是商业的重要条件。第三者会计服务器可藉由向买方或卖方收取费用以赚取利润,它也可以视为一家银行,提供存款账户然后在再存款里赚取费用。总而言之,电子支票技术可以连结公众网络和网络金融机构和银行票据交换网络,以达到通过公众网络连结现有付款体系。
   信用卡:信用卡付款有两道程序,一是包括经销商把产品或服务的价格给客户看、确认订单、送货通知和经销商可以接受的付款方式,二是买方告知经销商付款方式以及目前在Web网站上还没有办法提供安全的付款提示。目前消费者可以在网站上“逛街”浏览产品内容并阅读产品规格,可是却必须离线然后才能真的使用信用卡来进行购买行动。使用单纯的信用卡付款方式就是通过电话线或互联网络等公众网络而交换不加密处理的信用卡交换,由于网络的安全设计并不严密,所以这种付款方式问题丛生(任何计算机玩家都可以读出信用卡号码,而且甚至有专门网络上扫瞄信用卡号码,然后将这些资料送给程序员的程序),验证成为非常严重的问题,厂商通常只好相信使用卡的人就是卡片的所有者。若是使用对信用卡的详细资料做加密方式付款的话,传送前仍有许多因素要考虑,其中之一就是信用卡交易本身的成本可能会阻碍低价值的付款(小额付款),Cyber Cash已做到。若是为了解决安全和验证问题就是引进第三者以便收集和核准付款方式,这方面First Virtual已在做了。
  四、电子付款的运做
基于SET协议的网上交易(B-to-C)
首先客户要在自己的计算机里安装一个电子钱包,然后需要到CA认证中心(到CA的网站)去申请一个证书,这个证书用来在做交易的时候跟商家,跟银行做身份上的认证。做好了这些准备工作以后,客户便可以进行网上支付了。
以网上购书为例:客户通过自己的浏览器在某网上书店选取好商品后,把它放在购物筐里结算,在结帐单里填写姓名、地址、联络方式;接着启动电子钱包,输入自己的密码,在钱包中选取一张卡来付款;此时,计算机上会出现一个窗口来确认商店,实际上这就是证书在起验证作用,表明这家商店是一家经过认证的真实的商店,这些信息则来自CA和支付网关;确认商店后,下一步就是验证一下客户的帐户是否由足够的钱;当通过支付网关进入银行网络完成验证并反馈回来的时候,客户卡中的钱实际已经从帐户中扣出去了。至此,客户的购物程序已经完成。而对于网上的商户来说,货款虽已从客户卡中扣出,但还没有马上放到商户的帐户里,银行会定时自动生成一个报表,然后跟商户服务器上生成的报表做一对照,一旦确认,银行便会把钱划到商户的帐户里。这时商户的服务器已收到订购要求和定单号码,可以开始发货了。在基于SET协议的整个过程中,客户的信息是分开走的,银行只看到客户卡信息而看不到定单信息,商户则反之,这样就保证了整个交易过程信息的完整、保密、安全。商户则反之,这样就保证了整个交易过程信息的完整、保密、安全。
   网上支付放大镜——完整交易过程:
   步骤1:首先消费者向银行提领电子现金。
   步骤2:银行在验证了消费者的身份后,从消费者的真实账户中扣款,并将等值的电子现金存入消费者的电子钱包。
步骤3:当消费者通过WWW浏览器连接到网络商店观看商品并决定要购买某项商品时,他按下 “购买”键,商店端的软件就会将此商品的订单送给消费者的电子钱包软件。
步骤4:电子钱包就开始激活管理功能,将订单上所列的电子现金支付给商店端软件。
步骤5:商店端在收到消费者送来的电子现金后就会传送到银行去验证这笔电子现金否为银行发行的合法电子现金。
步骤6:如果验证无误的话,银行就会通知商店验证成功,并将电子现金转成相对的真实现金金额存入商店的账户。商店这时就可安心地将消费者所订的货品送出去了!这样就完成了一笔网络交易。
   五、 电子付款的展望
随着Internet的盛行,电子商务大行其道,电子付款必将成为付款方式的主要形式。