电子商务的安全协议分析
2011-03-14覃如贤
覃如贤
西南科技大学应用技术学院 四川 621000
0 前言
为了保障电子商务安全性,人们制定了各种安全协议,来规范在 Internet上的商务活动流程。典型的电子商务安全协议有SSL和SET。
1 SSL协议
1.1 协议简介
SSL协议是基于 Web应用的安全协议,该协议向基于TCP/IP的客户/服务器应用程序提供客户端和服务器的鉴别、数据完整性及信息机密性等安全措施。通过在应用程序进行数据交换前交换SSL初始握手信息,来实现安全性审查。在SSL握手信息中采用了DES、MD5等加密技术来实现机密性和数据完整性,并采用X.509的数字证书实现鉴别。
SSL提供如下安全服务:
秘密性。SSL客户机和服务器之间通过密码算法和密钥的协商,建立起安全通道。以后在安全通道中传输的所有信息都经过加密处理,网络中的非法窃听者所获取的信息都将是无意义的密文。
完整性。SSL利用密码算法和hash函数,通过对传输信息特征值的提取来保证信息的完整性,确保要传输的信息全部到达目的地,可避免服务器和客户机间的信息内容被破坏。
认证性。利用证书技术和可信的第三方 CA,可让客户机和服务器相互识别对方身份。为验证证书持有者是合法用户,SSL要求证书持有者在握手时相互交换数字证书,通过验证来保证对方身份合法。
SSL分为两层,一是握手层,二是记录层。SSL握手协议描述建立安全连接的过程,在客户和服务器传送应用层数据之前,完成诸如加密算法和会话密钥的确定,通信双方的身份验证等功能;SSL记录协议定义了数据传送的格式,上层数据包括SSL握手协议建立安全连接时所需传送的数据都通过 SSL记录协议再往下层传送。这样,应用层通过 SSL协议把数据传给传输层时,已是被加密后的数据,此时TCP/IP协议只需负责将其可靠地传送到目的地,弥补了TCP/IP协议安全性较差的弱点。
1.2 SSL协议的作用
SSL标准解决以下几个问题:
客户对服务器的身份确认:SSL服务器允许客户的浏览器,使用标准的公钥加密技术和一些可靠的认证中心(CA)的证书,来确认服务器的合法性(检验服务器的证书和ID的合法性)。对于用户服务器身份的确认与否是非常重要的,因为客户可能向服务器发送自己的信用卡密码。
服务器对客户的身份确认:容许SSL服务器确认客户的身份,SSL协议容许客户服务器的软件通过公钥技术和可信赖的证书,来确认客户的身份(客户的证书 client’s certificate)。
建立起服务器和客户之间安全的数据通道:SSL要求客户和服务器之间的所有的发送数据都被发送端加密,所有的接收数据都被接收端解密,这样才能提供一个高水平的安全保证。同时SSL协议会在传输过程中解查数据是否被中途修改。
1.3 SSL的安全性
SSL协议存在的缺点:
(1)系统不符合中国国务院最新颁布的《商用密码管理条例》中对商用密码产品不得使用国外密码算法的规定,要通过国家密码管理委员会的审批会遇到相当困难。
(2)系统安全性差。SSL协议的数据安全性其实就是建立在RSA等算法的安全性上,因此从本质上来讲,攻破RSA等算法就等同于攻破此协议。由于美国政府的出口限制,使得进入我国的实现了SSL的产品(Web浏览器和服务器)均只能提供512比特RSA公钥、40比特对称密钥的加密。
但总的来讲,SSL协议的安全性能是好的,而且随着SSL协议的不断改进,更多的安全性能好的加密算法被采用,逻辑上的缺陷被弥补,SSL协议的安全性能会不断加强。
1.4 双向认证SSL协议的具体过程
(1)浏览器发送一个连接请求给安全服务器。
(2)服务器将自己的证书,以及同证书相关的信息发送给客户浏览器。
(3)客户浏览器检查服务器送过来的证书是否是由自己信赖的CA中心所签发的。如果是,就继续执行协议;如果不是,客户浏览器就给客户一个警告消息:警告客户这个证书不是可以信赖的,询问客户是否需要继续。
(4)接着客户浏览器比较证书里的消息,例如域名和公钥,与服务器刚刚发送的相关消息是否一致,如果是一致的,客户浏览器认可这个服务器的合法身份。
(5)服务器要求客户发送客户自己的证书。收到后,服务器验证客户的证书,如果没有通过验证,拒绝连接;如果通过验证,服务器获得用户的公钥。
(6)客户浏览器告诉服务器自己所能够支持的通讯对称密码方案。
(7)服务器从客户送发送过来的密码方案中,选择一种加密程度最高的密码方案,用客户的公钥加过密后通知浏览器。
(8)浏览器针对这个密码方案,选择一个通话密钥,接着用服务器的公钥加过密后发送给服务器。
(9)服务器接收到浏览器送过来的消息,用自己的私钥解密,获得通话密钥。
(10)服务器,浏览器接下来的通讯都用是经过对称密码方案,对称密钥加过密的。
上面所述的是双向认证SSL协议的具体通讯过程,这种情况要求服务器和用户双方都有证书。单向认证SSL协议不需要客户拥有CA证书,具体的过程相对于上面的叙述,只需将服务器端验证客户证书的过程去掉,以及在协商对称密码方案,对称通话密钥时,服务器发送给客户的是没有加过密的(这并不影响SSL过程的安全性)。
这样,双方具体的通讯内容,就是加过密的数据,如果有第三方攻击,获得的只是加密的数据,第三方要获得有用的信息,就需要对加密的数据进行解密,这时候的安全就依赖于密码方案的安全。只要通讯密钥长度足够的长,就足够的安全。
2 SET协议
2.1 SET概述
SET是进行在线交易的安全标准,它采用公钥密码体制和X.509数字证书标准,主要应用于保障网上购物信息的安全性。
由于SET提供了消费者、商家和银行之间的认证,确保了交易数据的机密性、真实性、完整性和交易的不可否认性,特别是保证不将消费者银行卡号暴露给商家等优点,它成为了目前公认的信用卡/借记卡的网上交易的国际安全标准。
SET主要适用于因特网上的卡交易。SET交易虽然没有传统的面对面交易过程,但与传统交易类似,也涉及到三种实体:持卡人;商户;金融机构。持卡人是通过自己的计算机,浏览到商户建立在因特网上的网站,选购商品,然后通过金融机构在网上的代表—支付网关进行支付。
2.2 SET协议的目标
SET要达到的目标是:
(1)信息在公共因特网上安全传输,保证网上传输的数据不被黑客窃取。
(2)订单信息和个人账号信息隔离。在将包括持卡人账号信息在内的订单送到商家时,商家只能看到订货信息,而看不到持卡人的账户信息。
(3)持卡人和商家相互认证,以确保交易各方的真实身份。通常,第三方机构负责为在线交易的各方提供信用担保。
(4)要求软件遵循相同协议和消息格式,使不同厂家开发的软件具有兼容性和互操作性,并且可以运行在不同的硬件和操作系统平台上。
SET协议涉及的当事人包括持卡人、发卡机构、商家、银行以及支付网关。他们在SET协议中扮演的角色各不相同(如图1所示)。
图1 SET系统中参与方之间的关系图
2.3 SET协议的购物流程
一个较为简单和完整的购物流程如下所述(如图2)。
图2 网上交易流程
(1)持卡人使用浏览器在商家的Web页面上查看和浏览在线商品及目录。
(2)持卡人选择要购买的商品。
(3)持卡人填写订单,包括项目列表、价格、总价、运费、搬运费和税费等。订单可通过电子化方式从商家传过来,或由持卡人的电子购物软件建立。有些在线商店允许持卡人与商家协商物品的价格(例如出示老客户证明或给出竞争对手的价格等)。
(4)持卡人选择付款方式,此时SET开始介入。
(5)持卡人通过网络发送给商家一个完整的订单及要求付款的指令。在SET中,订单和付款指令由持卡人进行数字签名,同时,利用双重签名技术保证商家看不到持卡人的账号信息。
(6)商家接受订单,通过支付网关向持卡人的金融机构请求支付认可。在银行和发卡机构确认和批准交易后,支付网关给商家返回确认信息。
(7)商家通过网络给顾客发送订单确认信息。客户端软件可记录交易日志,以备将来查询。
(8)商家为顾客配送货物,完成订购服务。
(9)商家可以立即请求银行将钱从购物者的账号转移到商家账号,也可以等到某一时间,请求成批划账处理。到此为止,一个购买过程结束。
在该购物过程中,前三步与 SET协议无关,从第四步SET协议开始起作用。在处理过程中,SET对通信协议、请求信息格式、数据类型定义等都有明确的规定。同时,在操作的每一步,持卡人、商家、支付网关等都需要通过CA安全认证中心来验证交易各方的身份,以确保对方不是冒名顶替。
2.4 SET交易的安全性
(1)信息的机密性:SET系统中,敏感信息(如持卡人的账户和支付信息)是加密传送的,不会被未经许可的一方访问。
(2)数据的完整性:通过数字签名,保证在传送者和接收者传送消息期间,消息的内容不会被修改。
(3)身份的验证:通过使用证书和数字签名,可为交易各方提供认证对方身份的依据,即保证信息的真实性。
(4)交易的不可否认性:通过使用数字签名,可以防止交易中的一方抵赖已发生的交易。
(5)互操作性:通过使用特定的协议和消息格式,SET系统可提供在不同的软硬件平台操作的同等能力。
在整个电子交易过程中,SET利用各种加密方法、数字签名、证书认证等技术手段为网上交易的各方提供了最全面的保护,确保了电子交易的安全、有序的进行。
SET提供电子商务的特殊安全需要:支付信息和订单信息的安全保密;使用数字签名确保支付信息的完整性;使用数字签名和消费者证书,进行消费者银行的认证;使用数字签名和商家证书,进行商家的认证;保证所有方事务的不可否认性。
3 SSL与SET的比较
从以下4个方面来比较SSL和SET的异同。
(1)认证机制:SET的安全要求较高,因此,所有参与SET交易的成员(持卡人、商家、支付网关等)都必须先申请数字证书来识别身份,而在SSL中只有商店端的服务器需要认证,客户端认证则是有选择性的。
(2)设置成本:持卡者希望申请SET交易,除了必须先申请数字证书之外,也必须在计算机上安装符合SET规格的电子钱包软件,而SSL交易则不需要另外安装软件。
(3)安全性:一般公认SET的安全性较SSL高,主要是因为整个交易过程中,包括持卡人到商店端、商店到付款转接站再到银行网络,都受到严密的保护,而SSL的安全范围只限于持卡人到商店端的信息交换。
(4)基于Web的应用:SET是为信用卡交易提供安全的,它更通用一些。然而,如果电子商务应用只通过Web或是电子邮件,则可能并不需要SET。
SET从技术上和流程上都相对优于 SSL,但并不表示SET会超过SSL也不会取代SSL,主要原因是SET成本高,互操作性差,实现过程复杂,还有待完善。
[1]关铁军.电子商务安全策略研究.北京邮电大学硕士论文. 2008.
[2]彭利军.电子商务中的安全技术,武汉理工大学硕士论文. 2006.
[3]项润华.电子商务交易安全机制的研究.中南林学院硕士学位论文.2005.
[4]姚小兵.电子商务中SET协议分析与研究.网络信息安全.2010.
[5]覃如贤.几类危害网络安全的 JAVA程序分析.绵阳经济技术高等专科学校学报.2003.