来源:LUPA开源社区 更新时间:2007-08-28
一、电子商务安全基础
1、算法的介绍
常用的加密方式分为对称密钥加密和非对称密钥加密两种,也称为秘密密钥加密和公开密钥加密。对称密钥加密和解密时使用的密钥是同一个密钥,其优点是加密速度快,缺点是不能作为身份验证,密钥发放困难。常见的对称加密算法有RC2,RC4,DES,3DES,IDEA,SDBI等。
公开密钥加密和解密使用的密钥是不同的密钥,分别称为公钥和私钥,公钥可以公开,私钥则必须保密只能归密钥所有者拥有。其缺点是对大容量的信息加密速度慢,优点是可以作为身份认证,而且密钥发送方式比较简单安全。常见的公开密钥加密算法有RSA,DSA,ECA等。
另外在密码学中经常使用到的是单向散列函数(Hash函数)。Hash函数用于对要传输的数据作运算生成信息摘要,它并不是一种加密机制,但却能产生信息的数字“指纹”,它的目的是为了确保数据没有被修改或变化,保证信息的完整性不被破坏。
Hash函数有三个主要特点:
(1)它能处理任意大小的信息,并将其按信息摘要(Message Digest)方法生成固定大小的数据块,对同一个源数据反复执行Hash函数将总是得到同样的结果。
(2)它是不可预见的。产生的数据块的大小与原始信息看起来没有任何明显关系,原始信息的一个微小变化都会对小数据块产生很大的影响。
(3)它是完全不可逆的,没有办法通过生成的数据块直接恢复源数据。
常见的Hash算法有MD2、MD5和SHA1等。
2、电子商务的安全性要求
电子商务安全要求包括四个方面:
(1)数据传输的安全性
对数据传输的安全性需求即是保证在公网上传送的数据不被第三方窃取。对数据的安全性保护是通过采用数据加密(包括对称密钥加密和非对称密钥加密)来实现的,数字信封技术是结合对称密钥加密和非对称密钥加密技术实现的保证数据安全性的技术。
(2)数据的完整性
对数据的完整性需求是指数据在传输过程中不被篡改。数据的完整性是通过采用安全的Hash函数和数字签名技术来实现的。双重数字签名可以用于保证多方通信时数据的完整性。
(3)身份验证
参与安全通信的双方在进行安全通信前,必须互相鉴别对方的身份。身份认证是采用口令技术、公开密钥技术或数字签名技术和数字证书技术来实现的。
(4)交易的不可抵赖
网上交易的各方在进行数据传输时,必须带有自身特有的、无法被别人复制的信息,以保证交易发生纠纷时有所对证。这是通过数字签名技术和数字证书技术来实现的。
基于对称密钥加密、公开密钥加密以及安全的Hash函数等基本安全技术和算法,电子商务采用以下几种安全技术来解决电子商务应用中遇到的各种问题:
(1)采用数字信封技术保证数据的传输安全;
(2)采用数字签名和双重数字签名技术进行身份认证并同时保证数据的完整性、完成交易防抵赖;
(3)采用口令字技术或公开密钥技术进行身份认证。
(4)结合数字信封和数字签名就可以满足电子商务安全中对数据的安全性、数据的完整性和交易的不可抵赖性的要求,同时可以使用数字证书来进行交易双方身份的认证。
3、PKI体系结构
提起电子商务的安全性,我们就不得不提到PKI(Public Key Infrastructure),即公钥基础结构。PKI利用公钥加密技术为网上电子商务的开展提供了一套安全基础平台,用户利用PKI平台提供的安全服务进行安全通信。
PKI(公开密钥体系)一词被解释成为是一种框架体系,通过它,在不安全的信道上的通信的用户可实现信息数据的安全交换,满足商务对保密性,完整性,身份认证及不可否认性的安全需求,其构成主要包括硬件、软件、?嗽薄⒅傅荚?蚣胺椒āK?暮么υ谟冢旱谝唬??辖灰姿?娇赏ü?档眯爬档牡谌?交?雇瓿山灰祝? 由于金融机构的特殊身份常使其充当第三方认证机构的角色,因此可将交易双方的风险降至最低;其次,PKI的应用发展已从区域型逐步发展到全球性,如著名的 Identrust 组织建立了一套支持全球数字证书发放的体系,包括不同证书机构之间合作的程序以及对争议、索赔等问题的处理等,使具有法律约束力的电子商务得以在全球范围内展开。
一个典型的PKI体系结构如图1:
PAA:政策批准机构,创建整个PKI系统的方针,批准本PAA下属PCA的政策,为下属PCA签发公钥证书,建立整个PKI体系的安全政策,并具有监测各PCA行为的责任。
PCA:政策CA,制定本PCA下的具体政策,可以是PAA政策的扩充或细化,但不能与之相背离。这些政策可能包括本PCA范围内密钥的产生,长度,证书的有效期规定,CRL的处理等。并为下属CA签发公钥证书。
CA:不具备或具备有限的政策制定功能,按照上级PCA制定的政策,担任具体的用户公钥证书的生成和发布,或CRL生成发布职能。
RA:进行证书申请者的身份认证,向CA提交证书申请请求,验证接收到的CA签发的证书,并将之发放给证书申请者。必要时,还协助证书作废过程。
在一个电子商务系统中,所有参与活动的实体都必须用数字证书(简称证书)来表明自己的身份。证书一方面可以用来向系统中的其它实体证明自己的身份(每份证书都是经“相对权威的机构”签名的),另一方面由于每份证书都携带着证书持有者的公钥(签名证书携带的是签名公钥,密钥加密证书携带的是密钥加密公钥),所以,证书也可以向接收者证实某人或某个机构对公开密钥的拥有,同时也起着公钥分发的作用。
PKI操作有12种主要行为,包括:产生、证明和分发密钥;签名和验证;证书的获取;验证证书;保存证书;本地保存的证书的获取;密钥泄漏或证书中证明的某种关系中止的报告;密钥泄漏的恢复;CRL的获取;密钥更新;审计;存储等,这些行为分别和PKI中下列成员相关:PKI认证机构(P),数据发布的目录(D)和用户(U)。
其中有几个重要的功能实体CRL、OCSP、LDAP等。CRL(Certificate Revoke List)证书撤销列表和OCSP(Online Certificate Status Protocol)在线证书状态查询都是为了保证用户证书的有效性。当验证用户证书的有效性时,需要查询CRL或者OCSP来保证用户的证书是有效的。如果用户因为某种原因,或者想更换新的证书,或者怀疑其私人密钥泄漏了,那么用户就可以报告CA要求撤销自己的证书,这时CRL或者OCSP中就会出现这个用户的证书信息,说明这个用户的证书已经失效,其它的用户不要再信任这个证书了。CRL和OCSP的区别在于,CRL是离线方式的,OCSP是在线方式的,是实时的。这种区别也造成CRL列表占用的空间会比OCSP大。
LDAP目录服务器是用来存放用户证书的,它对外提供了下载证书的接口。用户可以通过LDAP的接口来获取任何用户的证书。
4、安全通信的应用协议
一个完整的电子商务的安全体系结构可以由图2来表示。电子商务安全体系由网络基础结构层、PKI体系结构层、安全协议层、应用系统层组成。其中,下层是上层的基础,为上层提供技术支持;上层是下层的扩展与递进。各层次之间相互依赖、相互关联构成统一整体。通过不同的安全控制技术,实现各层的安全策略,保证电子商务系统的安全。
网络基础结构层包括多厂商的网络服务及网络系统,用它们构成一种安全的、面向交易以及面向关系的通信网络联结。网络服务包括策略管理软件、地址管理软件、安全和网络管理软件。网络系统部件包括局域网、交换机、安全的虚拟专用网、负载平衡、缓冲、网关、数据与电话服务器、广域网接入设备、路由器、应用服务器以及数据存储服务器。
在PKI的基础之上,是安全协议层,为各种安全的通信应用提供了基础。常见的安全协议包括SSL协议(Secure Socket Layer Protocol)或者TLS(Transport Layer Secure Protocol)协议,以及专门用于电子交易的SET协议(Secure Electronic Transaction Protocol)。
(1)SSL协议
SSL(Secure Socket Layer即安全套接层)协议是Netscape Communication公司推出在网络传输层之上提供的一种基于非对称密钥和对称密钥技术的用于浏览器和Web服务器之间的安全连接技术。它是国际上最早应用于电子商务的一种由消费者和商家双方参加的信用卡/借记卡支付协议。
SSL协议支持了电子商务关于数据的安全性、完整性和身份认证的要?螅??撬?挥斜Vげ豢傻掷敌缘囊?蟆?
客户端和服务端进行身份认证时,SSL协议支持三种方式的认证:双方的相互认证,只认证服务端的认证和双方都不认证。身份认证是通过验证数字证书的合法性来保证的,因为我们在上文提到,数字证书类似一个实体的身份证。
在认证通过之后,客户端和服务端产生一套完全一样的临时对称密钥,通过对数据进行对称加密操作来保证数据的安全性,通过MAC码的计算来保证数据的完整性。
但是我们可以看出,SSL协议对数据的安全性保护是建立在对称密钥算法基础上的,所以它不能够提供不可抵赖性的保证。这样,我们就没有办法区别一条消息究竟是谁创建的,因为双方共享着一套对称密钥。
而且,在SSL协议中,交易的参与者只有两方:商家和客户,它没有涉及到支付方。因此在一个要求严格的电子商务应用中,SSL协议是不太适合的。
(2)SET协议
SET(Secure Electronic Transaction)安全电子交易协议是由美国Visa和MasterCard两大信用卡组织提出的应用于 Internet上的以信用卡为基础的电子支付系统协议。
它采用公钥密码体制和X.509数字证书标准,主要应用于B2C(Business To Customer)模式中保障支付信息的安全性。SET协议本身比较复杂,设计比较严格,安全性高,它能保证信息传输的机密性、真实性、完整性和不可否认性。SET协议是PKI框架下的一个典型实现,同时也在不断升级和完善,如SET 2.0将支持借记卡电子交易。
由于SET提供了消费者、商家和银行之间的认证,确保了交易数据的安全性、完整可靠性和交易的不可否认性,特别是保证不将消费者银行卡号暴露给商家等优点,因此它成为了目前公认的信用卡/借记卡的网上交易的国际安全标准。
但是,由于SET协议要求有银行系统的参与,对于普通的电子商务应用来说,实现基于SET协议的安全应用还是十分困难的。而支持SSL协议的资源非常丰富,在此基础上我们可以比较简单的构建一个基于SSL协议的安全网站。同时,SSL协议对于普通的安全应用也提供了很好的支持。所以,构建一个基于SSL 的网站来开展安全应用也是一个相当不错的选择。