分类: 网络与安全
2008-05-10 20:21:31
一、概述
PKI是“Public Key Infrastructure”的缩写,意为“公钥基础设施”。简单地说,PKI技术就是利用公钥理论和技术建立的提供信息安全服务的基础设施。公钥体制是目前应用最广泛的一种加密体制,在这一体制中,加密密钥与解密密钥各不相同,发送信息的人利用接收者的公钥发送加密信息,接收者再利用自己专有的私钥进行解密。这种方式既保证了信息的机密性,又能保证信息具有不可抵赖性。目前,公钥体制广泛地用于CA认证、数字签名和密钥交换等领域。
PKI似乎可以解决绝大多数网络安全问题,并初步形成了一套完整的解决方案,它是基于公开密钥理论和技术建立起来的安全体系,是提供信息安全服务的具有普适性的安全基础设施。该体系在统一的安全认证标准和规范基础上提供在线身份认证,是CA认证、数字证书、数字签名以及相关安全应用组件模块的集合。作为一种技术体系,PKI可以作为支持认证、完整性、机密性和不可否认性的技术基础,从技术上解决网上身份认证、信息完整性和抗抵赖等安全问题,为网络应用提供可靠的安全保障。但PKI绝不仅仅涉及到技术层面的问题,还涉及到电子政务、电子商务以及国家信息化的整体发展战略等多层面问题。PKI作为国家信息化的基础设施,是相关技术、应用、组织、规范和法律法规的总和,是一个宏观体系,其本身就体现了强大的国家实力。PKI的核心是要解决信息网络空间中的信任问题,确定信息网络空间中各种经济、军事和管理行为主体(包括组织和个人)身份的惟一性、真实性和合法性,保护信息网络空间中各种主体的安全利益。
公钥基础设施(PKI)是信息安全基础设施的一个重要组成部分,是一种普遍适用的网络安全基础设施。PKI是20世纪80年代由美国学者提出来了的概念,实际上,授权管理基础设施、可信时间戳服务系统、安全保密管理系统、统一的安全电子政务平台等的构筑都离不开它的支持。数字证书认证中心CA、审核注册中心RA(Registration Authority)、密钥管理中心KM(Key Manager)都是组成PKI的关键组件。作为提供信息安全服务的公共基础设施,PKI是目前公认的保障网络社会安全的最佳体系。在我国,PKI建设在几年前就已开始启动,截至目前,金融、政府、电信等部门已经建立了30多家CA认证中心。如何推广PKI应用,加强系统之间、部门之间、国家之间PKI体系的互通互联,已经成为目前PKI建设亟待解决的重要问题。
二、PKI技术的信任服务及意义
一)PKI技术的信任服务
公钥基础设施PKI是以公开密钥技术为基础,以数据的机密性、完整性和不可抵赖性为安全目的而构建的认证、授权、加密等硬件、软件的综合设施。
PKI安全平台能够提供智能化的信任与有效授权服务。其中,信任服务主要是解决在茫茫网海中如何确认“你是你、我是我、他是他”的问题,PKI是在网络上建立信任体系最行之有效的技术。授权服务主要是解决在网络中“每个实体能干什么”的问题。在虚拟的网络中要想把现实模拟上去,必须建立这样一个适合网络环境的有效授权体系,而通过PKI建立授权管理基础设施PMI是在网络上建立有效授权的最佳选择。
到目前为止,完善并正确实施的PKI系统是全面解决所有网络交易和通信安全问题的最佳途径。根据美国国家标准技术局的描述,在网络通信和网络交易中,特别是在电子政务和电子商务业务中,最需要的安全保证包括四个方面:身份标识和认证、保密或隐私、数据完整性和不可否认性。PKI可以完全提供以上四个方面的保障,它所提供的服务主要包括以下三个方面:
1、认证
在现实生活中,认证采用的方式通常是两个人事前进行协商,确定一个秘密,然后,依据这个秘密进行相互认证。随着网络的扩大和用户的增加,事前协商秘密会变得非常复杂,特别是在电子政务中,经常会有新聘用和退休的情况。另外,在大规模的网络中,两两进行协商几乎是不可能的。透过一个密钥管理中心来协调也会有很大的困难,而且当网络规模巨大时,密钥管理中心甚至有可能成为网络通信的瓶颈。
PKI通过证书进行认证,认证时对方知道你就是你,但却无法知道你为什么是你。在这里,证书是一个可信的第三方证明,通过它,通信双方可以安全地进行互相认证,而不用担心对方是假冒的。
2、支持密钥管理
通过加密证书,通信双方可以协商一个秘密,而这个秘密可以作为通信加密的密钥。在需要通信时,可以在认证的基础上协商一个密钥。在大规模的网络中,特别是在电子政务中,密钥恢复也是密钥管理的一个重要方面,政府决不希望加密系统被犯罪分子窃取使用。当政府的个别职员背叛或利用加密系统进行反政府活动时,政府可以通过法定的手续解密其通信内容,保护政府的合法权益。PKI能够通过良好的密钥恢复能力,提供可信的、可管理的密钥恢复机制。PKI的普及应用能够保证在全社会范围内提供全面的密钥恢复与管理能力,保证网上活动的健康有序发展。
3、完整性与不可否认
完整性与不可否认是PKI提供的最基本的服务。一般来说,完整性也可以通过双方协商一个秘密来解决,但一方有意抵赖时,这种完整性就无法接受第三方的仲裁。而PKI提供的完整性是可以通过第三方仲裁的,并且这种可以由第三方进行仲裁的完整性是通信双方都不可否认的。例如,小张发送一个合约给老李,老李可以要求小张进行数字签名,签名后的合约不仅老李可以验证其完整性,其他人也可以验证该合约确实是小张签发的。而所有的人,包括老李,都没有模仿小张签署这个合约的能力。“不可否认”就是通过这样的PKI数字签名机制来提供服务的。当法律许可时,该“不可否认性” 可以作为法律依据(美国等一些国家已经颁布数字签名法)。正确使用时,PKI的安全性应该高于目前使用的纸面图章系统。
完善的PKI系统通过非对称算法以及安全的应用设备,基本上解决了网络社会中的绝大部分安全问题(可用性除外)。PKI系统具有这样的能力:
它可以将一个无政府的网络社会改造成为一个有政府、有管理和可以追究责任的社会,从而杜绝黑客在网上肆无忌惮的攻击。在一个有限的局域网内,这种改造具有更好的效果。目前,许多网站、电子商务、安全E-mail系统等都已经采用了PKI技术。
二)PKI技术的意义
1、通过PKI可以构建一个可管、可控、安全的互联网络
众所周知,传统的互联网是一个无中心的、不可控的、没有QoS保证的、“尽力而为” (Best-effort)的网络。但是,由于互联网具有统一的网络层和传输层协议,适合全球互联,且线路利用率高,成本低,安装使用方便等,因此,从它诞生的那一天起,就显示出了强大的生命力,很快地遍布全球。
在传统的互联网中,为了解决安全接入的问题,人们采取了“口令字”等措施,但很容易被猜破,难以对抗有组织的集团性攻击。近年来,伴随宽带互联网技术和大规模集成电路技术的飞速发展,公钥密码技术有了其用武之地,加密、解密的开销已不再是其应用的障碍。因此,国际电信联盟(ITU)、国际标准化组织(ISO)、国际电工委员会(IEC)、互联网任务工作组(IETF)等密切合作,制定了一系列的有关PKI的技术标准,通过认证机制,建立证书服务系统,通过证书绑定每个网络实体的公钥,使网络的每个实体均可识别,从而有效地解决了网络上“你是谁”的问题,把宽带互联网在一定的安全域内变成了一个可控、可管、安全的网络。
2、通过PKI可以在互联网中构建一个完整的授权服务体系
PKI通过对数字证书进行扩展,在公钥证书的基础上,给特定的网络实体签发属性证书,用以表征实体的角色和属性的权力,从而解决了在大规模的网络应用中“你能干什么”的授权问题。这一特点对实施电子政务十分有利。因为电子政务从一定意义上讲,就是把现实的政务模拟到网上来实现。在传统的局域网中,虽然也可以按照不同的级别设置访问权限,但权限最高的往往不是这个部门的主要领导,而是网络的系统管理员,他什么都能看,什么都能改,这和政务现实是相左的,也是过去一些领导不敢用办公自动化系统的原因之一。而利用PKI可以方便地构建授权服务系统,在需要保守秘密时,可以利用私钥的惟一性,保证有权限的人才能做某件事,其他人包括网络系统管理员也不能做未经授权的事;在需要大家都知道时,有关的人都能用公钥去验证某项批示是否确实出自某位领导之手,从而保证真实可靠,确切无误。
3、通过PKI可以建设一个普适性好、安全性高的统一平台
PKI遵循了一套完整的国际技术标准,可以对物理层、网络层和应用层进行系统的安全结构设计,构建统一的安全域。同时,它采用了基于扩展XML标准的元素级细粒度安全机制,换言之,就是可以在元素级实现签名和加密等功能,而不像传统的“门卫式”安全系统,只要进了门,就可以一览无余。而且,底层的安全中间件在保证为上层用户提供丰富的安全操作接口功能的同时,又能屏蔽掉安全机制中的一些具体的实现细节,因此,对防止非法用户的恶意攻击十分有利。此外,PKI通过Java技术提供了可跨平台移植的应用系统代码,通过XML技术提供了可跨平台交换和移植的业务数据,在这样的一个PKI平台上,可以方便地建立一站式服务的软件中间平台,十分有利于多种应用系统的整合,从而大大地提高平台的普适性、安全性和可移植性。
三.PKI的标准及体系结构
一)PKI的标准
从整个PKI体系建立与发展的历程来看,与PKI相关的标准主要包括以下一些:
1、X.209(1988)ASN.1基本编码规则的规范
ASN.1是描述在网络上传输信息格式的标准方法。它有两部分:第一部份(ISO 8824/ITU X.208)描述信息内的数据、数据类型及序列格式,也就是数据的语法;第二部分(ISO 8825/ITU X.209)描述如何将各部分数据组成消息,也就是数据的基本编码规则。
ASN.1原来是作为X.409的一部分而开发的,后来才独立地成为一个标准。这两个协议除了在PKI体系中被应用外,还被广泛应用于通信和计算机的其他领域。
2、X.500(1993)信息技术之开放系统互联:概念、模型及服务简述
X.500是一套已经被国际标准化组织(ISO)接受的目录服务系统标准,它定义了一个机构如何在全局范围内共享其名字和与之相关的对象。X.500是层次性的,其中的管理性域(机构、分支、部门和工作组)可以提供这些域内的用户和资源信息。在PKI体系中,X.500被用来惟一标识一个实体,该实体可以是机构、组织、个人或一台服务器。X.500被认为是实现目录服务的最佳途径,但X.500的实现需要较大的投资,并且比其他方式速度慢;而其优势具有信息模型、多功能和开放性。
3、X.509(1993)信息技术之开放系统互联:鉴别框架
X.509是由国际电信联盟(ITU-T)制定的数字证书标准。在X.500确保用户名称惟一性的基础上,X.509为X.500用户名称提供了通信实体的鉴别机制,并规定了实体鉴别过程中广泛适用的证书语法和数据接口。
X.509的最初版本公布于1988年。X.509证书由用户公共密钥和用户标识符组成。此外还包括版本号、证书序列号、CA标识符、签名算法标识、签发者名称、证书有效期等信息。这一标准的最新版本是X.509 v3,它定义了包含扩展信息的数字证书。该版数字证书提供了一个扩展信息字段,用来提供更多的灵活性及特殊应用环境下所需的信息传送。
4、PKCS系列标准
由RSA实验室制订的PKCS系列标准,是一套针对PKI体系的加解密、签名、密钥交换、分发格式及行为标准,该标准目前已经成为PKI体系中不可缺少的一部分。
5、OCSP在线证书状态协议
OCSP(Online Certificate Status Protocol)是IETF颁布的用于检查数字证书在某一交易时刻是否仍然有效的标准。该标准提供给PKI用户一条方便快捷的数字证书状态查询通道,使PKI体系能够更有效、更安全地在各个领域中被广泛应用。
6、LDAP 轻量级目录访问协议
LDAP规范(RFC1487)简化了笨重的X.500目录访问协议,并且在功能性、数据表示、编码和传输方面都进行了相应的修改。1997年,LDAP第3版本成为互联网标准。目前,LDAP v3已经在PKI体系中被广泛应用于证书信息发布、CRL信息发布、CA政策以及与信息发布相关的各个方面。
除了以上协议外,还有一些构建在PKI体系上的应用协议,这些协议是PKI体系在应用和普及化方面的代表作,包括SET协议和SSL协议。目前PKI体系中已经包含了众多的标准和标准协议,由于PKI技术的不断进步和完善,以及其应用的不断普及,将来还会有更多的标准和协议加入。
二)PKI的体系结构
一个标准的PKI域必须具备以下主要内容:
1、认证机构CA(Certificate Authority)
CA是PKI的核心执行机构,是PKI的主要组成部分,业界人士通常称它为认证中心。从广义上讲,认证中心还应该包括证书申请注册机构RA(Registration Authority),它是数字证书的申请注册、证书签发和管理机构。
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域中的终端用户沿着不同的认证链检验认证到根时,就能达到互相信任的目的。