电子商务安全协议
电子商务安全协议
Xxx
(华中科技大学电子与信息工程系,武汉430074)
摘要:随着人类进入以网络为主的信息时代,Internet 的高速发展带来了商业和经济模式的重大变革。基于 Internet 发展起来的电子商务慢慢成为人们进行商务活动的新模式,但是安全问题成为了制约其发展的重要因素。本文简单介绍了电子商务安全的相关问题以及电子商务中的主流安全协议:SSL协议与SET协议,并对两种协议的优缺点进行了一定的比较分析。
关键词:电子商务,安全协议,SSL,SET
1. 电子商务安全概述
随着信息技术的迅速发展,人类正进入以网络为主的信息时代,基于Internet发展起来的电子商务慢慢成为人们进行商务活动的新模式。但是,电子商务的安全问题也是制约其发展的重要因素之一,如何建立一个安全、便捷的电子商务应用环境,保证整个电子商务活动中信息的安全性,使基于Internet的电子交易方式与传统交易方式一样可靠。
1.1. 电子商务的定义
电子商务是把现有的计算机软件、硬件设备和网络设施,通过一定的协议连接起来的在电子网络环境下进行各种商品买卖的一种新方式。电子商务改变了传统的面对面交易模式,同时在一定程度上打破了时间和地点的限制。虽然电子商务具有快捷性、方便性、不受时间地点的限制、相对传统交易开销小等诸多优点,但是却存在安全性方面的许多隐患。
1.2. 电子商务的安全要素
为了保证电子商务在整个商品交易活动中,可以安全顺利的进行,一般来说,需要电子商务的安全系统必须具备以下几个安全要素:
1) 有效性:要求电子商务系统可以对信息,交易实体的有效性进行鉴别
2) 机密性:保证信息在存取和传输过程中的安全性
3) 数据的完整性:即保护数据的完整性,防止有人没有经过授权就对数据内容进行修改,同时还要保证数据的一致性
4) 可靠性和不可抵赖性:在进行电子商务交易时,交易信息在传输过程中将为参与交易的个人、企业、国家提供可靠的标识
5) 审查能力:过使用电子商务交易系统的日志文件对交易的数据的结果
进行审查、追踪
1.3. 电子商务主要安全协议
1) S-HTTP:安全超文本传输协议, 它是一种面向安全信息通信的协议,
它可以和 HTTP 结合起来使用。 S-HTTP 能与 HTTP 信息模型共存并易于与 HTTP 应用程序相整合。该协议向www的应用提供可鉴别性、完整性、机密性以及不可否认性等安全措施。
2) iKP:该协议是由IBM公司设计的一种全新的安全电子支付协议,可
以在网上进行安全的交易。该协议最主要的特征是对数据提供密码保护和对解决争端的检查跟踪,可以对客户、商家和银行的网关三方之间进行仲裁。该协议是基于RSA公钥体制的,并能推广到借记卡或电子支票等支付系统中。
3) SSL:安全套接层协议,是Netscape公司率先采用的网络安全协议。
它是传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。SSL广泛支持各种类型网络,同时提供三种基本的安全服务。对于电子商务应用来说,安全套接层协议可以保证信息的完整性、保密性和真实性。但是,安全套协议不能对应用层的消息进行数字签名,因此不能确定交易的不可否认性,这是安全套协议在电子商务中最大的不足。
4) SET:安全电子交易协议,由Visa与Master card两大信用卡组织联合
IBM、HP等公司1997年开发成功,是为了在Internet进行线上交易时保证信用卡支付的安全而设立的一个开放的规范。Set协议在网上购物环境中提供了商家、顾客和银行三者之间的认证,确保了交易数据的安全性、完整性、可靠性和交易的不可否认性,同时还提供了一定的隐私保护,使其获得IETF标准的认可,也是电子商务发展的方向。
SSL 和 SET 是当前在电子商务中应用最为广泛的安全协议,在较长时间内 SSL 和 SET 将作为电子商务安全保证的主流协议,在下文中会主要介绍这两种常用协议。
2. SSL(Secure Socket Layer)安全套接层协议
SSL协议向基于TCP/IP 的客户/服务器应用程序提供了客户端和服务器的鉴别、数据完整性及信息机密性等安全措施。
2.1. SSL协议工作流程
服务器认证阶段:
1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
用户认证阶段:
经认证的服务器发送一个提问给客户,客户返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。
从SSL 协议所提供的服务及其工作流程可以看出,SSL协议运行的基础是商家对消费者信息保密的承诺,这就有利于商家而不利于消费者。
图 2.1 SSL握手协议
2.2. SSL协议安全性分析
SSL协议可提供如下安全保证:
1) 用户和服务器的合法性认证:用户和服务器都有各自的识别号,采用
公钥技术,在握手阶段进行数字认证,以确保用户的合法性
2) 数据加密:采用对称密钥加密传输数据
3) 数据的完整性:采用哈希函数等形成数字摘要,保证数据的完整性
但是,SSL协议也存在着一些问题,SSL刚开始并不是为了支持电子商务而设计的。电于商务往往是用户、网站、银行三家协作完成,SSL 协议并不能协调各方面的安全传输和信任关系,并且,SSL并不支持完善的防抵赖功能。
3. SET(Secure Electronic Transaction)安全电子交易协议
SET 协议是针对开放网络上安全、有效的银行卡交易,是由 Visa 和
Master card联合研制的一个能保证通过开放网络进行安全资金支付的技术标准。SET 协议采用公开密码体制(PK)和 X509 电子证书标准,通过相应软件、电子证书、数字签名和加密技术能在电子交易环节上提供更大的信任度、更完善地交换信息、更高的安全性和较少的可欺诈性。
3.1. SET协议关键技术
SET使用多种密钥技术来达到安全交易的要求,其中对称密钥技术、公钥加密技术和Hash算法是其核心。综合应用以上三种技术产生了数字签名、数字信封、数字证书等多种加密与认证技术。
数字签名技术:
数字签名是实现认证的重要工具,在网络中的密钥分配、电子安全交易等方面都有重要应用,它能提供身份认证、数据完整性、不可抵赖等安全服务。数字签名分为签名和认证两部分。
签名过程:首先计算消息M的散列值,即利用哈希函数对代待发信息形成数据摘要H(M)。然后利用私钥加密散列值形成签名S,最后再将消息与签名(M,S)一起发送给接收方。
验证过程:接收方首先要取得发送方的公钥,利用发送方的公钥可以对接收到得签名S进行解密,得到h。计算接收到得明文M的散列值,设为H(M),假如h=H(M),则签名有效,反之则签名无效。
数字签名的主要作用:
1) 防冒充:其他人不能伪造对消息的签名,因为私有密钥只有签名者自
己知道,所以其他人不可能构造出正确的签名数据。
2) 可鉴别身份:在网络环境中,接收方必须能够鉴别发送方所宣称的身
份,即接收者使用发送者的公开密钥对签名报文进行解密运算,如结果为明文,则签名有效,证明对方身份是真实的。
3) 防篡改:签名数据和原有文件已形成了一个混合的整体数据,不可能
篡改,从而保证了数据的完整性。
4) 防重放:重放即为了获取利益而重复使用已签名的单据,在电子交易
中,付款后要及时毁掉另一方手中的单据,否则,对方可能再次要求付款。在签名电文中添加流水号、时间戳等,就可以防止这种情况发生。
5) 防抵赖:数字签名可以鉴别身份,不可能冒充伪造,那么,只要保存
好签名的报文,就好象保存好了手工签署的合同文本,也就是保留了证据,签名者就无法抵赖。
数字签名流程图:
图 3.1 数字签名流程图
数字信封技术:
在数字信封中,信息发送方采用对称密钥来加密信息内容,然后将此对称密钥用接收方的公开密钥来加密(这部分称数字信封)之后,将它和加密后的信息一起发送给接收方,接收方先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息。在传递信息时,信息接收方若要解密信息,必须先用自己的私钥解密数字信封,得到对称密码,才能利用对称密码解密所得到的信息。这样就保证了数据传输的真实性和完整性。
数字信封流程图:
图 3.2 数字信封流程图
数字签名流程图:
图 3.1 数字签名流程图
数字信封技术:
在数字信封中,信息发送方采用对称密钥来加密信息内容,然后将此对称密钥用接收方的公开密钥来加密(这部分称数字信封)之后,将它和加密后的信息一起发送给接收方,接收方先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息。在传递信息时,信息接收方若要解密信息,必须先用自己的私钥解密数字信封,得到对称密码,才能利用对称密码解密所得到的信息。这样就保证了数据传输的真实性和完整性。
数字信封流程图:
图 3.2 数字信封流程图
双重签名技术:
双重签名的目的在连结两个不同接收者消息。在这里,消费者想要发送订单信息OI到特约商店,且发送支付命令PI给银行。特约商店并不需要知道消费者的信用卡卡号,而银行不需要知道消费者订单的详细信息。消费者需要将这两个消息分隔开,而受到额外的隐私保护。
在必要的时候这两个消息必须要连结在一起,才可以解决可能的争议、质疑。这样消费者可以证明这个支付行为是根据他的订单来执行的,而不是其它的货品或服务。
生成双重签名:
图 3.3 双重签名生成过程
双重签名的流程:
首先生成两条消息的摘要(PI和OI),将两个摘要连接起来,生成一个新的摘要(称为双重签名POMD),然后用签发者的私有密钥加密,为了让接收者验证双重签名,还必须将其中一条消息的摘要(PI或OI)一块传过去。
这样,任何一个消息的接收者都可以通过以下方法验证消息的真实性:生成消息摘要,将它和另外一个消息摘要连接起来,生成新的摘要,如果它与解密后的双重签名相等,就可以确定消息是真实的。
3.2. SET协议的交易流程
1) 持卡人注册(Cardholder registration):持卡人必须在发送SET信息给
特约商店之前向CA注册
2) 特约商店注册(Merchant registration): 特约商店必须在它们和消费
者与支付网关交换SET信息之前,向CA申请注册
3) 购买请求(Purchase request):从消费者送出给特约商店的消息,包含
给特约商店的订单信息OI,给银行的支付命令摘要PIMD,双重数字签名POMD,包含用户公钥的信用卡持有者认证证书。此外,该消息中还包含由银行支付信息PI,双重签名POMD,特约商店的订单信息摘要OIMD,这些信息利用临时对称公钥和银行公钥形成一个数字信封
4) 支付授权(Payment authorization):在特约商店与支付网关之间的交
换,可以对特定账户信用卡持卡人的采购做授权,商户会将接收到的
包含银行支付信息PI,双重签名POMD,特约商店的订单信息摘要OIMD的数字信封转发给支付网关
5) 支付获得(Payment capture):让特约商店可以从支付网关请求支支付
项。
6) 证书询问与状态(Certificate inquiry and status):如果CA无法快速完
成一个证书请求的处理,它会发送一个消息给持卡人或特约商店,表明要请求者稍后再做确认。而持卡人或特约商店会发送证书询问的消息,来确定证书请求的状态,如果请求得到批准就会接收到证书了。
7) 采购询问(Purchase inquiry):采购响应消息收到后,持卡人可以询问
订单处理状态。
8) 记录回复(Capture reversal):特约商店可以更正在取得请求消息中的
错误,如销售员输入错误的交易数量。
一般来说,支付网关需要执行以下工作:
1) 核对所有的证书
2) 将授权区块的数字信封解密,得到对称密钥,然后就可以对授权区块
解密了
3) 核对授权区块中的特约商店签名
4) 对支付区块的数字信封解密,得到对称密钥后,可以再将支付区块解
5) 核对支付区块中的双重签名
6) 核对从特约商店接收到的交易ID,是否和从消费者接收到的PI内交
易ID吻合
7) 向发卡银行请求并接受授权
3.3. SET协议安全性分析
SET的鉴别工作必须依赖公开密钥的运作体系(public key infrastructure,PKI),使得系统是否能实际运作必须依赖整体大环境是否成熟而定,例如签证体系的建立等,这将导致系统建设成本的大幅提升。
SET协议使用数字签名与哈希函数技术来达成完整性的要求,运作方式为发送方先将交易信息经过哈希函数的计算产生消息摘要后,再使用发送方的私钥加密产生签名。 SET使用的哈希函数算法是SHA-1,其产生的消息摘要长度为160位,而只要更改消息中任一个位,平均来说,将导致一半的消息摘要位改变,故可提升签名的安全性。
SET协议采用了对称性与非对称性的密码系统。每一次交易双方建立新的连接就是一次通信期间的开始,而每次通信期间都会产生新的通信密钥,也就是说每个通信密钥的有效期为通信期间,而这个期间通常都不长;基于这些特性,相对于长期间都使用同一把密钥加密来说,就算某次的通信密钥遭到破解,也不会影响到其它交易数据的安全性。
SET协议可以利用数字签名技术来产生不可否认的证据,其中双重签名也隐含了这个功能。基于银行对于商店不信任的假设,银行可利用商店转交持卡人的支付信息以及请求授权信息,来防止商店否认交易内容。
SET协议为了提供消费者隐私权的保护,使用了一个重要的创新技术:双重签名。 SET协议是从银行的角度来考虑,所以对于隐私的保护是建立在信任银行的假设上。事实上,银行可能汇集持卡人个别交易的支付信息,如果缺乏适当的防范措施,将导致持卡人隐私泄露的风险。
4. SSL与SET协议的比较
表 4.1 SSL协议与SET的比较 1) 协议层比较:
SSL属于传输层的安全技术规范,它不具备电子商务的商务性、协调性和集成性功能。SET协议位于应用层,它不仅规范了整个商务活动的流程,而且制定了严格的加密和认证标准,具备商务性、协调性和集成性功能。
2) 安全性比较:
SET协议由于采用了公钥加密、信息摘要和数字签名可以确保信息的保密性、可鉴别性、完整性和不可否认性,且SET协议采用了双重签名来保证各参与方信息的相互隔离SSL协议虽也采用了公钥加密、信息摘要和MAC检测,可以提供保密性、完整性和一定程度的身份鉴别功能,但缺乏一套完整的认证体系,不能提供完备的防抵赖功能。
3) 处理速度比较:
SET协议非常复杂、庞大,处理速度慢。一个典型的SET交易过程需验证电子证书9次、验证数字签名6次、传递证书7次、进行5次签名、4次对称加密和4次非对称加密,整个交易过程可能需花费1.5至2分钟; 而SSL协议则简单得多,处理速度比SET协议快。
4) 用户接口比较:
SSL协议已被浏览器和WEB服务器内置,无需安装专门软件;而SET协议中客户端需安装专门的电子钱包软件,在商家服务器和银行网络上也需安装相应的软件。
5) 认证要求比较:
早期的SSL协议并没有提供身份认证机制,虽然在SSL3.0中可以通过数字签名和数字证书实现浏览器和Web服务器之间的身份验证,但仍不能实现多方认证,而且SSL中只有商家服务器的认证是必须的,客户端认证则是可选的。SET协议的认证要求较高,所有参与SET交易的成员都必须申请数字证书,并且解决了客户与银行、客户与商家、商家与银行之间的多方认证问题。
6) 加密机制比较:
SSL对网上传输的所有信息都加密,因此每次传输速度相对较慢。SET对网上传输的信息进行加密,是有选择的,它只对敏感性信息加密,比如只对Form中输入的信用卡帐号加密。由于SSL是基于传输层加密, SSL为高层提供了特定接口,使得应用方无须了解传输层情况,对用户完全透明。SET的加密过程则不同于SSL,在很大程度上加密对它而言只是一种普及的技术手段,而不像SSL中把加密看作一种重要组成部分。SET中广泛使用了数字信封等技术,并采用严密的系统约束来保证数据传输的安全性。
由于SSL协议的成本低、速度快、使用简单,对现有网络系统不需进行大的修改,因而目前取得了广泛的应用。但随着电子商务规模的扩大,网络欺诈的风险性也在提高,在未来的电子商务中SET协议将会逐步占据主导地位。
参考文献:
[1] 王曦杰.电子商务中安全问题的研究——SET协议的完善与改进[D].新疆:电子科
技大学,2009.8.
[2] 陈果.移动电子商务密钥管理协议及加密算法研究[D].湖南:湖南大学,2009.6.
[3] 侯小梅,毛宗源,张波.电子商务中加密方法的理论和应用研究[J].计算机工程与
应用,2000.11(11)
[4] 王秋杰,李振坤,陈平华;专业市场电子商务系统研究[J];现代计算机;2003.09(9)
[5] 王少锋,王克宏;电子商务技术的发展与研究[J];计算机工程与应用;2000.04(4)
[6] 王茜,杨德礼;电子商务的安全体系结构及技术研究[J];计算机工程;2003(01)