首页 > 文章中心 > 正文

电子商务安全技术

电子商务安全技术

1.引言:

对我国来说,电子商务尚是一个机遇和挑战并存的新领域,这种挑战在很大程度上来源于对有关安全技术的信赖。在开放的网络(如Internet)上处理交易,如何保证传输数据的安全成为电子商务能否普及最重要的因素之一。

2.电子商务对安全的要求及一般性对策

归纳用户对电子商务活动安全性的需求,以及可使用的网络安全措施主要包括如下几个方面。

⑴如何确定通信中的贸易伙伴的真实性,常用的处理技术是身份认证,依赖某个可信赖的机构(认证中心-CA)发放证书,双方交换信息之前通过CA获取对方的证书,并以此识别对方。

⑵如何保证电子单证的秘密性,防范电子单证的内容被第三方读取;常用的处理技术是数据加密和解密。常见的加密技术包括对称密钥加密技术(典型的加密算法包括DES、TripleDES、IDEA、RC4和RC5)和非对称密钥加密技术(典型的加密算法为RSA、SEEK、PGP和EU等)。

⑶如何保证被传输的业务单证不会丢失,或者发送方可以察觉所发单证的丢失;对于固定且具有频繁贸易往来的伙伴,可以采用单证传输的序列性检验(即为单证分配序列号,或者增加时间戳);也可采用双方约定的方法(即在规定的时间内,通过某种方式进行确认。

⑷如何确定电子单证的内容未被篡改;单证传输完整性主要采用散列技术来防止非法用户对单证的篡改,通过散列算法对被传输的单证进行处理,产生一个依赖于该单证的短小的散列值,并将该散列值附接在单证之后传输给接收方。以便接收方采用相同的散列算法对接收的单证进行检验。

⑸如何确定电子单证的真实性,即单证来源于期望的发送方;鉴别单证真实性的主要手段是数字签名技术,其基础是数据加密中的公开密钥加密技术,实用中常结合单证完整性一起考虑,利用发方的秘密密钥对散列值进行加密。

⑹如何解决或者仲裁收发双方对交换的单证所产生的争议,包括发方或者收方可能的否认或抵赖。通常要求引入认证中心进行管理,由CA发放密钥,传输的单证及其签名的备份发至CA保存,作为可能争议的仲裁依据。

⑺如何保证存储信息的安全性。规范内部管理,使用访问控制权限和日志,以及敏感信息的加密存储等。当使用WWW服务器支持电子商务活动时,应注意数据的备份和恢复,并采用防火墙技术(有些专家建议直接采用物理分割WWW服务器和内部网络的连接)保护内部网络的安全性。

3.电子支付协议工作流程

电子商务也需要有与现实世界中使用的各种支付手段的相应的电子支付工具。目前主要有三种支付工具:卡,电子支票,电子货币(电子现金,电子硬币)。对应于不同的支付工具,可以将目前已有的支付协议分为三类:基于卡的支付协议,基于支票的支付协议,基于电子货币的支付协议。基于卡的支付协议使用信用卡的支付基础设施,卡的有效性需经过发卡机构的认证,不能提供交易的匿名性。基于支票的支付协议使用电子支票作为支付工具,支付机制类似于基于卡的支付,支票的有效性需经过发行银行的认证。电子货币是可以独立于发行银行而进行自认证的一种符号。基于电子货币的支付协议可以通过盲签名的机制实现匿名交易。下面以广泛应用的SET协议为例来加以分析。

SET正是在这种背景下应运而生的。SET(SecureElectronicTransaction安全电子交易)是由VISA和MASTCARD所开发,是为了在Internet上进行在线交易时保证用卡支付的安全而设立的一个开放的规范。

SET要达到的最主要的目标是:

⑴信息在INTERNET上的安全传输。保证网上传输的数据不被黑客窃听。

⑵定单信息和个人帐号信息的隔离。在将包括消费者帐号信息的定单送到商家时,商家只能看到定货信息,而看不到消费者的帐户信息。

⑶消费者和商家的相互认证,以确定通信双方的身份。一般由第三方机构负责为在线通信方双方提供信用担保。

⑷要求软件遵循相同的协议和消息格式,使不同厂家开发的软件具有兼容和互操作功能,并且可以运行在不同的硬件和操作系统平台上。

SET协议中的角色有:

⑴消费者:在电子商务环境中,消费者和团体购买者通过计算机与商家交流,消费者通过由发卡机构颁发的付款卡(例如信用卡、借记卡)进行结算。在消费者和商家的会话中,SET可以保证消费者的个人帐号信息不被泄漏。

⑵发卡机构:它是一个金融机构,为每一个建立了帐户的顾客颁发付款卡,发卡机构根据不同品牌卡的规定和政策,保证对每一笔认证交易的付款。

⑶商家:提供商品或服务,使用SET,就可以保证消费者个人信息的安全。接受卡支付的商家必须和银行有关系。

⑷银行:在线交易的商家在银行开立帐号,并且处理支付卡的认证和支付。

⑸支付网关:是由银行操作的,将INTERNET上的传输数据转换为金融机构内部数据的设备,或由指派的第三方处理商家支付信息和顾客的支付指令。

SET是针对用卡支付的网上交易而设计的支付规范,对不用卡支付的交易方式,象先送货货到付款方式、邮局汇款方式则与SET无关。另外象网上商店的页面安排,保密数据在购买者计算机上如何保存等,也与SET无关。

协议的工作原理如下:

具体工作流程说明如下:

⑴消费者使用浏览器在商家的WEB主页上查看在线商品目录浏览商品。

⑵消费者选择要购买的商品。

⑶消费者填写定单,包括:项目列表、价格、总价、运费、搬运费、税费。定单可通过电子化方式从商家传过来,或由消费者的电子购物软件(wallet)建立。有些在线商场可以让消费者与商家协商物品的价格(例如出示自己是老客户的证明,或给出了竞争对手的价格信息)。

⑷消费者选择付款方式。此时SET开始介入。

⑸消费者发送给商家一个完整的定单及要求付款的指令。在SET中,定单和付款指令由消费者进行数字签名。同时利用双重签名技术保证商家看不到消费者的帐号信息。

⑹商家接受定单后,向消费者的金融机构请求支付认可。通过Gateway到银行,再到发卡机构确认,批准交易。然后返回确认信息给商家。

⑺商家发送定单确认信息给顾客。顾客端软件可记录交易日志,以备将来查询。

⑻商家给顾客装运货物,或完成订购的服务。到此为止,一个购买过程已经结束。商家可以立即请求银行将钱从购物者的帐号转移到商家帐号,也可以等到某一时间,请求成批划帐处理。

⑼商家从消费者的金融机构请求支付。在认证操作和支付操作中间一般会有一个时间间隔,例如,在

每天的下班前请求银行结一天的帐。

前三步与SET无关,从第四步开始SET起作用,一直到第九步,在处理过程中,通信协议、请求信息的格式、数据类型的定义等,SET都有明确的规定。在操作的每一步,消费者、商家、网关都通过CA来验证通信主体的身份,以确保通信的对方不是冒名顶替。

4.支付协议中采用的加密技术

下面主要还是以SET为例,来深入说明加密技术在协议中的体现。

SET将对称密钥的快速、低成本和非对称密钥的有效性完美地结合在一起。以下是SET使用的加密技术。

考虑网上商店的情况,对于成千上万的消费者和商家在INTERNET交换信息,要对每一个消费者通过某个渠道发放一个密钥,在现实中是不可取的。而用公开密钥,商家生成一个公共密钥对,任何一个消费者都可用商家公开的公钥与商家进行保密通信。

⑴数字信封:SET依靠密码系统保证消息的可靠传输,在SET中,使用DES算法产生的对称密钥来加密数据,然后,将此对称密钥用接收者的公钥加密,称为消息的“数字信封”,将其和数据一起送给接收者,接收者先用他的私钥解密数字信封,得到对称密钥,然后使用对称密钥解开数据。

⑵数字签名:由于公开密钥和私有密钥之间存在的数学关系,使用其中一个密钥加密的数据只能用另一个密钥解开。SET中使用RSA算法来实现。发送者用自己的私有密钥加密数据传给接收者,接收者用发送者的公钥解开数据后,就可确定消息来自于谁。这就保证了发送者对所发信息不能抵赖。

⑶消息摘要:消息摘要(messagedigest)是一个唯一对应一个消息或文本的值,由一个单向Hash加密函数对消息作用而产生。在SET协议中,原文通过SHA-1算法生成消息的文摘。用发送者的私有密钥加密摘要附在原文后面,一般称为消息的“数字签名”。数字签名的接受者可以确信消息确实来自谁,另外,如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。

下图说明了加密、签名和消息摘要的过程:

加密的有效性取决于加密算法DES和RSA的强度,以及SHA-1算法的有效性。

⑷双重签名:为了保证消费者的帐号等重要信息对商家隐蔽,SET中采用了双重签名技术。它是SET推出的数字签名的新应用。考虑下面的情况,王先生要买李小姐的一处房产,他发给李小姐一个购买报价单及对他对银行的授权书的消息,要求银行如果李小姐同意按此价格出卖,则将钱划到李小姐的帐上。但是王先生不想让银行看到报价,也不想让李小姐看到他的银行帐号信息。此外,报价和付款是相连的、不可分割的,仅当李小姐同意他的报价,钱才会转移。要达到这个要求,采用双重签名即可实现。

5.身份认证技术

网上的两个人要谈一笔交易,每一个人都要鉴别对方是否可信的,例如,王先生收到了带有李小姐数字签名的一封信,用属于李小姐的公钥解密,他要确定公钥属于李小姐,而不是在网上冒充李小姐的其他人,一种确定公钥属于李小姐的办法就是,通过秘密途径接收由李小姐亲自送来的公钥(PublicKey),显然在实际中,这种办法是不现实的。一个可行的办法就是由一个大家都相信的第三方来验证公钥确实属于李小姐,这样的第三方称为“认证中心”(CertificateAuthority)。认证中心(CA)就是承担网上安全电子交易认证服务、能签发数字证书、并能确认用户身份的服务机构。认证中心通常是企业性的服务机构,主要任务是受理数字凭证的申请、签发及对数字凭证的管理。认证中心依据认证操作规定(CPS:CertificationPracticeStatement)来实施服务操作。

5.1证书在做交易时,向对方提交一个由CA签发的包含个人身份的证书,使对方相信自己的身份,即数字证书。数字证书,是用电子手段来证实一个用户的身份和对网络资源的访问的权限。在网上的电子交易中,如双方出示了各自的数字凭证,并用它来进行交易操作,那么双方都可不必为对方身份的真伪担心。

数字凭证可用于电子邮件、电子商务、群件、电子基金转移等各种用途。

数字凭证的内部格式是由CCITTX.509国际标准所规定的,它包含了以下几点:

⑴凭证拥有者的姓名,

⑵凭证拥有者的公共密钥,

⑶公共密钥的有效期,

⑷颁发数字凭证的单位,

⑸数字凭证的序列号(Serialnumber),

数字凭证有三种类型:顾客向CA申请证书时,可提交自己的驾驶执照、身份证或护照,经验证后,颁发证书,证书包含了顾客的名字和他的公钥。以此作为网上证明自己身份的依据。在SET中,最主要的证书是持卡人证书和商家证书:

⑴持卡人证书:它实际上是支付卡的一种电子化的表示。由于它是由金融机构以数字化形式签发的,因此不能随意改变。持卡人证书并不包括帐号和终止日期信息,取而代之的是用单向哈希算法根据帐号,截止日期生成的一个码,如果知道帐号、截止日期、密码值即可导出这个码值,反之不行。

⑵商家证书:用来表示商店可以用什么卡来结算。它是由金融机构签发的,不能被第三方改变。在SET环境中,一个商家至少应有一对证书,与一个银行打交道,一个商家也可以有多对证书,表示它与多个银行有合作关系,可以接受多种付款方法。

⑶除了持卡人证书和商家证书以外,还有支付网关证书、银行证书、发卡机构证书等。

5.2CertificateAuthority(CA)CA是提供身份验证的第三方机构,由一个或多个用户信任的组织实体,例如,持卡人要与商家通信,持卡人从公开媒体上获得了商家的公开密钥,但持卡人无法确定商家不是冒充的(有信誉),于是持卡人请求CA对商家认证,CA对商家进行调查、验证和鉴别后,将包含商家PublicKey(公钥)的证书传给持卡人。同样,商家也可对持卡人进行验证。证书一般包含拥有者的标识名称和公钥并且由CA进行过数字签名。

5.3证书的树形验证结构

在两方通信时,通过出示由某个CA签发的证书来证明自己的身份,如果对签发证书的CA本身不信任,则可验证CA的身份,依次类推,一直到公认的权威CA处,就可确信证书的有效性。SET证书正是通过信任层次来逐级验证的。每一个证书与数字化签发证书的实体的签名证书关联。沿着信任树一直到一个公认的信任组织,就可确认该证书是有效的。例如,C的证书是由名称为B的CA签发的,而B的证书又是由名称为A的CA签发的,A是权威的机构,通常称为根(Root)CA。验证到了RootCA处,就可确信C的证书是合法的。

在网上购物实现中,持卡人的证书与发卡机构的证书关联,而发卡机构证书通过不同品牌卡的证书连接到rootCA,而root的公共签名密钥对所有的SET软件都是已知的,可以校验每一个证书。

参考文献: