一个典型的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 的网站来开展安全应用也是一个相当不错的选择。