由于电子商务、电子政务、网上银行、网上证券等金融业网上交易业务的飞速发展,网络安全,特别是互联网通信的安全性令人瞩目。为此,越来越多的安全协议如SSL、SET、S/MIME 等得到了广泛的应用。但是,最新发展起来的网络安全技术和安全服务规范却是公钥基础设施PKI(Public key Infrastructure)。
应用架构
一个标准的PKI域必须具备以下主要内容。
1. 认证机构CA(Certificate Authority)
CA是PKI的核心执行机构,是PKI的主要组成部分,业界人士通常称它为认证中心。从广义上讲,认证中心还应该包括证书申请注册机构RA(Registration Authority),它是数字证书的申请注册、证书签发和管理机构。图1是中国金融CA和RA结构图。
CA的主要职责包括:
验证并标识证书申请者的身份。对证书申请者的信用度、申请证书的目的、身份的真实可靠性等问题进行审查,确保证书与身份绑定的正确性。
确保CA用于签名证书的非对称密钥的质量和安全性。为了防止被破译,CA用于签名的私钥长度必须足够长并且私钥必须由硬件卡产生,私钥不出卡。
管理证书信息资料。管理证书序号和CA标识,确保证书主体标识的惟一性,防止证书主体名字的重复。在证书使用中确定并检查证书的有效期,保证不使用过期或已作废的证书,确保网上交易的安全。发布和维护作废证书列表(CRL),因某种原因证书要作废,就必须将其作为“黑名单”发布在证书作废列表中,以供交易时在线查询,防止交易风险。对已签发证书的使用全过程进行监视跟踪,作全程日志记录,以备发生交易争端时,提供公正依据,参与仲裁。
由此可见,CA是保证电子商务、电子政务、网上银行、网上证券等交易的权威性、可信任性和公正性的第三方机构。
2. 证书和证书库
证书是数字证书或电子证书的简称,它符合X.509标准,是网上实体身份的证明。证书是由具备权威性、可信任性和公正性的第三方机构签发的,因此,它是权威性的电子文档。
证书库是CA颁发证书和撤消证书的集中存放地,它像网上的“白页”一样,是网上的公共信息库,可供公众进行开放式查询。一般来说,查询的目的有两个:其一是想得到与之通信实体的公钥;其二是要验证通信对方的证书是否已进入 “黑名单”。证书库支持分布式存放,即可以采用数据库镜像技术,将CA签发的证书中与本组织有关的证书和证书撤消列表存放到本地,以提高证书的查询效率,减少向总目录查询的瓶颈。
3. 密钥备份及恢复
密钥备份及恢复是密钥管理的主要内容,用户由于某些原因将解密数据的密钥丢失,从而使已被加密的密文无法解开。为避免这种情况的发生,PKI提供了密钥备份与密钥恢复机制:当用户证书生成时,加密密钥即被CA备份存储;当需要恢复时,用户只需向CA提出申请,CA就会为用户自动进行恢复。
4. 密钥和证书的更新
一个证书的有效期是有限的,这种规定在理论上是基于当前非对称算法和密钥长度的可破译性分析;在实际应用中是由于长期使用同一个密钥有被破译的危险,因此,为了保证安全,证书和密钥必须有一定的更换频度。为此,PKI对已发的证书必须有一个更换措施,这个过程称为“密钥更新或证书更新”。
证书更新一般由PKI系统自动完成,不需要用户干预。即在用户使用证书的过程中,PKI也会自动到目录服务器中检查证书的有效期,当有效期结束之前,PKI/CA会自动启动更新程序,生成一个新证书来代替旧证书。
5.证书历史档案
从以上密钥更新的过程,我们不难看出,经过一段时间后,每一个用户都会形成多个旧证书和至少一个当前新证书。这一系列旧证书和相应的私钥就组成了用户密钥和证书的历史档案。
记录整个密钥历史是非常重要的。例如,某用户几年前用自己的公钥加密的数据或者其他人用自己的公钥加密的数据无法用现在的私钥解密,那么该用户就必须从他的密钥历史档案中,查找到几年前的私钥来解密数据。
6.客户端软件
为方便客户操作,解决PKI的应用问题,在客户装有客户端软件,以实现数字签名、加密传输数据等功能。此外,客户端软件还负责在认证过程中,查询证书和相关证书的撤消信息以及进行证书路径处理、对特定文档提供时间戳请求等。
7.交叉认证
交叉认证就是多个PKI域之间实现互操作。交叉认证实现的方法有多种:一种方法是桥接CA,即用一个第三方CA作为桥,将多个CA连接起来,成为一个可信任的统一体;另一种方法是多个CA的根CA(RCA)互相签发根证书,这样当不同PKI域中的终端用户沿着不同的认证链检验认证到根时,就能达到互相信任的目的。
PKI服务
PKI作为安全基础设施,能为不同的用户按不同安全需求提供多种安全服务。这些服务主要包括认证、数据完整性、数据保密性、不可否认性、公正及时间戳服务。
1. 认证
认证服务即身份识别与鉴别,就是确认实体即为自己所声明的实体,鉴别身份的真伪。我们以甲乙双方的认证为例:甲首先要验证乙的证书的真伪,当乙在网上将证书传送给甲时,甲首先要用CA的公钥解开证书上CA的数字签名,如果签名通过验证,则证明乙持有的证书是真的;接着甲还要验证乙身份的真伪,乙可以将自己的口令用自己的私钥进行数字签名传送给甲,甲已经从乙的证书中或从证书库中查得了乙的公钥,甲就可以用乙的公钥来验证乙的数字签名。如果该签名通过验证,乙在网上的身份就确凿无疑(图2)。
2. 数据完整性服务
数据完整性服务就是确认数据没有被修改。实现数据完整性服务的主要方法是数字签名,它既可以提供实体认证,又可以保障被签名数据的完整性,这是由密码哈希算法和签名算法提供的保证。哈希算法的特点是输入数据的任何变化都会引起输出数据不可预测的极大变化,而签名是用自己的私钥将该哈希值进行加密,然后与数据一道传送给接受方。如果敏感数据在传输和处理过程中被篡改,接受方就不会收到完整的数据签名,验证就会失败。反之,如果签名通过了验证,就证明接收方收到的是未经修改的完整数据。
3. 数据保密性服务
PKI的保密性服务采用了“数字信封”机制,即发送方先产生一个对称密钥,并用该对称密钥加密敏感数据。同时,发送方还用接收方的公钥加密对称密钥,就像把它装入一个“数字信封”。然后,把被加密的对称密钥(“数字信封”)和被加密的敏感数据一起传送给接收方。接收方用自己的私钥拆开“数字信封”,并得到对称密钥,再用对称密钥解开被加密的敏感数据。
4. 不可否认性服务
不可否认性服务是指从技术上保证实体对其行为的认可。在这中间,人们更关注的是数据来源的不可否认性、接收的不可否认性以及接收后的不可否认性。此外还有传输的不可否认性、创建的不可否认性和同意的不可否认性。
5. 公证服务
PKI中的公证服务与一般社会公证人提供的服务有所不同,PKI中支持的公证服务是指“数据认证”,也就是说,公证人要证明的是数据的有效性和正确性,这种公证取决于数据验证的方式。例如,在PKI 中被验证的数据是基于哈希值的数字签名、公钥在数学上的正确性和签名私钥的合法性。
应用模式
上述PKI提供的安全服务恰好能满足电子商务、电子政务、网上银行、网上证券等金融业交易的安全需求,是确保这些活动顺利进行必备的安全措施,没有这些安全服务,电子商务、电子政务、网上银行、网上证券等都无法正常运作。
模式1:电子商务应用
电子商务的参与方一般包括买方、卖方、银行和作为中介的电子交易市场。买方通过自己的浏览器上网,登录到电子交易市场的Web服务器并寻找卖方。当买方登录服务器时,互相之间需要验证对方的证书以确认其身份,这被称为双向认证。
在双方身份被互相确认以后,建立起安全通道,并进行讨价还价,之后向商场提交订单。订单里有两种信息:一部分是订货信息,包括商品名称和价格;另一部分是提交银行的支付信息,包括金额和支付账号。买方对这两种信息进行“双重数字签名”,分别用商场和银行的证书公钥加密上述信息。当商场收到这些交易信息后,留下订货单信息,而将支付信息转发给银行。商场只能用自己专有的私钥解开订货单信息并验证签名。同理,银行只能用自己的私钥解开加密的支付信息、验证签名并进行划账。银行在完成划账以后,通知起中介作用的电子交易市场、物流中心和买方,并进行商品配送。整个交易过程都是在PKI所提供的安全服务之下进行,实现了安全、可靠、保密和不可否认性。
模式2:电子政务
电子政务包含的主要内容有:网上信息发布、办公自动化、网上办公、信息资源共享等。按应用模式也可分为G2C、G2B、G2G,PKI在其中的应用主要是解决身份认证、数据完整性、数据保密性和不可抵赖性等问题。
例如,一个保密文件发给谁或者哪一级公务员有权查阅某个保密文件等,这些都需要进行身份认证,与身份认证相关的还有访问控制,即权限控制。认证通过证书进行,而访问控制通过属性证书或访问控制列表(ACL)完成。有些文件在网络传输中要加密以保证数据的保密性;有些文件在网上传输时要求不能被丢失和篡改;特别是一些保密文件的收发必须要有数字签名等。只有PKI提供的安