安全电子支付协议有待改进 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
http://www.sina.com.cn 2006年02月20日 16:32 中国计算机报 | ||||||||||
【赛迪网讯】电子银行业务顺利开展的基础建立在安全的电子支付上,缺乏安全的电子支付手段,电子银行根本无法在现实生活中得到实现。电子支付的安全性则依靠电子交易协议获得保证。当前通用的电子交易协议分别为SSL(Secure Socket Layer)协议与SET(Secure Electronic Transaction)协议,两者之间各不相同,并各有优缺点。 简便易行的SSL协议
安全套接层SSL协议是一种对计算机之间整个会话进行加密的协议,最初是由Netscape推出的一种安全通信协议,它通过密钥技术能够为信用卡和个人信息提供较强的安全防护。在SSL协议中采用了公开密钥和私有密钥两种加密方式。Web信息通过协议传输时,先在传送端被加密,然后在接收端被解密,从而为机器之间提供安全连接。 SSL协议是两层协议(见图1),建立在TCP传输控制协议之上、应用层之下,并且与上层应用协议无关,可为应用层协议如HTTP、FTP、SMTP等提供安全传输,通过将HTTP与SSL相结合,Web服务器就可实现客户浏览器与服务器间的安全通信。 通过用户和服务器的合法性认证、加密数据、保护数据完整性三个方面的服务,SSL协议为电子商务连接提供这样的交易流程:当顾客想从Web站点购买某个产品时,顾客和Web站点都要进行认证。顾客通常是以提供名字和密码的方式来认证其本人;Web站点通过交换一块签名数据和一个有效的X.509证书来认证它自己。顾客通过浏览器验证该证书并用所附的公用密钥验证签名数据,一旦双方都认证了,交易就可以开始了。 简便易行是SSL协议的最大优点,但与此同时其缺点也是显而易见的。首先,在交易过程中,客户的信息先到达商家那里,这就导致客户资料安全性无法保证;其次,SSL只能保证资料传递过程的安全性,而传递过程是否有人截取则无法保证;再次,由于SSL协议的数据安全性是建立在RSA等算法上,因此其系统安全性较差。 除这些缺点外,由于SSL协议不对应用层的消息进行数字签名,因此不能提供交易的不可否认性,这就造成了SSL协议在电子银行应用中的最大不足。 安全可靠的SET协议 安全电子交易SET协议是1997年由美国Visa和MasterCard两大信用卡组织提出、应用于Internet上、以信用卡为基础的电子支付系统协议。它采用公钥密码体制和X.509数字证书标准,主要应用于B to C模式中保障支付信息的安全性。 SET协议主要是为了解决用户、商家和银行之间通过信用卡支付的交易而设计的,以保证支付信息的机密、支付过程的完整、商户及持卡人的合法身份以及可操作性。可以说,SET协议是PKI框架下的一个典型实现,其核心技术主要有公开密钥加密、数字签名、电子信封、电子安全证书等。通过这些手段,SET协议在电子交易环节上为用户提供更大的信任度、更完整的交易信息、更高的安全性和更少受欺诈的可能性。 由于SET提供了消费者、商家和银行之间的认证,确保了交易数据的安全性、完整可靠性和交易的不可否认性,特别是保证不将消费者银行卡号暴露给商家等优点,因此它成为目前公认的信用卡/借记卡的网上交易的国际安全标准。其运作方式如图2所示。 在图2所示的整个交易过程中,数字认证(CA)扮演了系统中很重要的角色。SET协议重点就在于利用CA实现交易安全及隐秘性,数字证书为其核心,它提供了简单的方法来确保进行电子交易的人们能够互相信任。在交易中,信用卡组织提供数字证书给发卡银行,然后发卡行再提供证书给持卡人;同时,信用卡组织也提供数字证书给收单银行,然后收单银行再将证书发给特约商店。在进行交易的时候,持卡人和特约商店两边利用符合SET协议规格的软件,在资料交换前分别确认双方的身份,也就是检查由授权的第三者所发给的证书。 在整个交易过程中,SET协议的安全保障主要来自于:将所有报文文本用非对称的方式加密;增加两类保密键(公钥和单钥)的字长;采用联机动态的授权和认证检查,以确保交易过程的安全可靠性。 安全可靠是SET协议最大的优点,但在实际应用中,SET协议依然存在以下不足: 1.协议没有说明收单银行给商家付款前,是否必须收到客户的货物接受证书。一旦客户对货物的质量标准提出疑义,而收单银行已把货款付给了商家,谁承担责任将无法定义。 2.协议没有担保“非拒绝行为”,这意味着在线商店没有办法证明订购是不是由签署证书的客户发出的。 3.SET技术规范没有提及在事务处理完成后如何安全地保存或销毁此类数据; 4.利用SET协议实施电子支付,交易过程复杂,使用成本高。 两种协议比较 SET是一个多方的消息报文协议,它定义了银行、商家、持卡人之间必需的报文规范,而SSL只是简单地在两方之间建立了一条安全连接。SSL是面向连接的,而SET允许各方之间的报文交换不是实时的。SET报文能够在银行内部网络或者其他网络上传输,而基于SSL协议之上的支付卡系统只能与Web浏览器捆绑在一起。两者间的差别主要表现在以下几个方面。 用户接口不同 在应用中,SSL协议已被浏览器与Web服务器内置,无须安装专门软件,用户通过网络就可直接应用;而SET协议中客户端须安装专门的电子钱包类软件,并且在商家服务器和银行网络上也须安装相应的软件,不同银行间系统间的兼容性尚不够完善。 处理速度不同 SET协议非常复杂、庞大,处理速度慢。一个典型的SET交易过程须验证电子证书9次,验证数字签名6次,传递证书7次,进行5次签名,4次对称加密和4次非对称加密,整个交易过程可能需花费1.5~2min;而SSL协议则简单得多,处理速度比SET协议快。 认证要求各异 早期的SSL协议并没有提供身份认证机制,虽然在SSL 3.0中可以通过数字签名和数字证书实现浏览器和Web服务器之间的身份验证,但仍不能实现多方认证,而且在SSL协议中商家服务器的认证是必需的,客户端的认证则是可选的。相比之下,SET协议的认证要求较高,所有参与SET交易的成员都必须申请数字证书。SET协议还解决了客户与银行、客户与商家、商家与银行之间的多方认证问题。 安全性能差别大 安全性是网上交易中最关键的问题。SET协议由于采用了公钥加密、信息摘要和数字签名,可以确保信息的保密性、可鉴别性、完整性和不可否认性,且SET协议采用了双重签名来保证各参与方信息的相互隔离,使商家只能看到持卡人的订购数据,而银行只能取得持卡人的信用卡信息。 SSL协议虽也采用了公钥加密、信息摘要和MAC检测,可以提供保密性、完整性和一定程度的身份鉴别功能,但缺乏一套完整的认证体系,不能提供完备的防抵赖功能。因此,SET的安全性远比SSL高。 协议层次和功能各异 SSL属于传输层的安全技术规范,不具备电子商务的商务性、协调性和集成性功能。而SET协议位于应用层,不仅规范了整个商务活动的流程,而且制定了严格的加密和认证标准,具备商务性、协调性和集成性功能。 相比之下,SET协议从技术上和流程上都要相对优于SSL协议,功能上也更强,但这并不代表SET协议就会超过SSL协议的应用。 因为虽然SET通过制定标准和采用各种技术手段,解决了一直困扰电子商务发展的安全问题,但是SET协议要求在银行网络、商家服务器、顾客的PC机上安装相应的软件;SET协议要求必须向各方发放证书,使得应用SET协议要比SSL协议昂贵得多。这些都成了大面积推广使用SET协议的障碍。 在未来的一段时间内,可能会出现商家需要支持SET和SSL两种支付方式的局面。但由于SET实现起来非常复杂,商家和银行都需要改造原有系统以实现互操作。 智能卡的推广使用将改变现有的电子商务方式,但是需要添置额外的设备,也需要时间被人们接受以做到广泛发卡,另外,很多厂商还在致力于发展别的协议以支持SET和SSL所不能支持的支付方式,例如微支付(Micropayments)以及对等支付(Peer-to-Peer Payments)等。(n101) 作者:刘添添 |