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建设亟待解决的重要问题。
8.3.1PKI的体系
PKI体系结构内的主要组件包括:终端实体(EE:End Entity)、证书机构(CA:Certificate Authority)、注册机构(RA:Registration Authority)、CRL发布者(CRL Issuer)、资料库(Repository)等。
PKI组件的说明如下:
(1)终端实体:PKI证书用户,应用软件的使用者;最终用户使用的应用系统。
(2)证书机构(CA):发行和撤销PKI证书。
(3)注册机构(RA):PKI的可选系统,执行CA委托的任务,例如确定公开密钥和证书持有者身份之间的关联等。
(4)CRL发布者:PKI的可选系统,执行CA委托的发布证书、撤销列表的任务。
(5)资料库:一个系统或一个分布式系统的集合。存储证书和CRL;向终端实体提供证书和CRL的分发服务。
PKIX组件之间的信息流包括:操作事务、管理事务、证书和CRL公布等。操作事务是包含在操作协议文档中的消息交换,它提供证书、CRL和其他管理与状态信息的传送。同样,管理事务是管理协议文档中描述的消息交换,它提供通知服务,以支持PKI内部的管理事务或操作。公布用于向公开库分发证书和CRL。
1.注册机构
在某些特定的应用环境中,CA将某些责任委托注册机构(RA)来完成。注册机构(RA:Registration Authority)是PKI内的可选实体,它负责与注册终端实体相关的管理任务。终端实体是CA发行证书的主体。如果在PKI中没有设置RA,则CA自身具备与注册机构性能相同的功能。
尽管注册的功能可以直接由CA来实现,专门设置一个单独的注册机构(RA)来实现注册功能在有些应用环境中是很有意义的。例如,一个大型集团公司可以设置一个集中控制的CA,但公司办事处的地理位置十分分散。随着公司规模的扩大,员工数目不断增加,且这些员工分散在不同的办事处,集中登记注册比较麻烦。如果按地理位置的分布,设置多个RA(也叫局部注册机构,或LRA)将有助于解决这一问题。RA的主要目的就是分担CA的一定功能以增强可扩展性并且降低运营成本。
RFC2510的Internet公钥基础设施证书管理协议(Internet Public Key Infrastructure Certificate Management Protocols)规定的RA功能包括:个人认证、令牌分发、吊销报告、名称指定、密钥生成、存储密钥对等。多数情况下,RA用于在证书登记过程中核实证书申请者的身份,并且,不同的RA的注册条件也会有所不同。
不同的注册机构实现不同的功能集合。功能集合的定义要根据PKI实施的需求而变化,这些功能可能包括以下功能列表的一部分:
作为初始化过程的一部分建立并确定个体的身份。
确认主体所提供的信息的真实性。
批准或拒绝证书属性的变更请求。
确认主体确实拥有注册的私钥,这一般称为拥有证据(POP)。
在需要撤销证书时向CA报告事件原因。
分配名称以识别身份。
在注册初始化和证书获得期间产生共享秘密。
产生公/私钥对。
代表终端用户启动和CA的认证进程(包括终端用户相应属性的注册)。
私钥归档。
开始密钥恢复处理。
包含私钥的物理令牌(例如智能卡)的分发。
一般来说,注册机构控制注册、证书传递、其他密钥和证书生命周期管理过程中终端实体和PKI间的交换(经常包括用户的相互作用)。切记,在任何环境下RA都不能真正提供关于主体的可信性声明,所以,只有证书机构可以颁发证书或者颁发证书撤销状态信息。
2.认证机构
在PKI框架中,认证是一种将终端实体(及其属性)和公钥绑定的一种手段。如前文所述,这种绑定表现为一种签名的数据结构即公钥证书。认证机构(CA)就是负责颁发这些公钥证书的机构。CA是PKI的核心,负责证书的管理(发行、吊销、更新)、证书和CRL发布,以及事件日志记录等几项重要的任务。从根本上说,这些任务都是CA的责任,但其中某些功能可能会委托给其他PKI实体(如RA)来完成。
认证机构(CA)是公钥基础设施中受信任的第三方实体。CA向主体发行证书,该主体成为证书的持有者。通过CA在数字证书上的数字签名来声明证书持有者的身份。CA是信任的起点,各个终端实体必须对CA高度信任,因为他们要通过CA的担保来验证其他的主体。
根据信任模型的不同,CA也扮演不同的角色。例如,在一个企业域,可以让一个或多个CA来给企业的员工颁发证书。员工们实质上是将他们的“信任”放入了企业的CA。在PGP的“信任的Web”模型里就是完全不同的结构了,那里用户自己扮演自己的CA,所有的信任决定取决于个人而不仅是远端的CA。
3.资料库
资料库被用作证书和CRL的公共存储地,是网上的公共信息库,可供公众进行开放式查询。最初,资料库是一个X。500目录。为了支持PKIX,资料库通常是一个LDAP目录。LDAP是PKIX明确支持的一个操作协议。虽然像CMP之类的管理协议中规定的操作能够提供获取指定证书或者CRL的查询支持,但对于公众来讲,LDAP可以直接使用。
一般来说,用户查询资料库的目的有两个:①是想得到与之通信的对方实体的公钥;②是要验证通信对方的证书是否已经被撤销。证书库支持分布式存放,即可以采用数据库镜像技术,将CA签发的证书中与本组织有关的证书和证书撤销列表存放到本地,以提高证书的查询效率,减少向总目录查询的瓶颈。
8.3.2PKI的主要功能
1.注册
注册是即将成为证书主体的终端实体使CA认识自己的过程。终端实体可以通过RA注册,如果CA实现RA的功能的话,终端用户也可以直接向CA注册。确定主体所使用的名字和其他属性必须依照证书操作管理规范进行,CA在证书操作管理规范之下进行操作。
2.初始化
当终端实体需要开始与PKI通信时存在自举问题。终端实体如何决定它们需要同哪个PKI组件通信?如何向终端实体提供CA的公开密钥和证书?终端实体如何确定RA或者CA的安全通信信道?在注册过程期间如何产生终端实体的公/私钥?初始化期间提供的信息应该回答所有这些问题。
3.认证
CA为主体公开密钥发行证书,并将该证书返回给终端实体或者将它公布在一个资料库中。
4.密钥对恢复
为了满足本地策略需要,加密数据使用的密钥或者其他密钥(为了密钥传输或交换)可能需要归档。在密钥丢失并且需要访问先前加密的信息时,允许密钥恢复。CA或者分离的密钥恢复系统可以执行归档和恢复操作。
5.密钥产生
PKIX允许终端实体在本地环境下产生证书主体的公/私钥对,并且传送给注册要求的RA/CA。作为选择,可以由RA或CA产生密钥对,倘若私钥材料可以以某种安全的方式分配给终端实体。
6.密钥更新
PKI希望有规律地更换密钥对。在密钥过期或者密钥泄露时,如果密钥更新发生是为了响应正常密钥过期,新密钥的转变应该透明地发生,并且这要求支持适当的通知机制和期限。在密钥泄露的情况下,必须声明证书无效,并且必须宣布新证书的有效性和可用性。鉴于这种事件的无计划本质,它可以是任何事情,但是不可能优雅地进行。
7.交叉证书
PKI将交叉证书确定为一个CA向另一个CA发行的证书,用来证明CA签名证书使用的公/私钥对中。可以在相同管理领域或者交叉管理领域发行交叉证书。可以在CA之间的一个方向或者两个方向发行交叉证书。在关于信任模型的章节中将详细讨论这个问题。
8.撤销
如果CA想在证书过期之前使之失效,那么就需要撤销证书。比如:职员可能会离开公司,在这种情况下,公司不会希望一个前职员仍然拥有公司CA发行的有效证书。另一种情况是,某个用户可能丢失了自己的手提电脑,如果该用户的证书所关联的私钥在手提电脑中,那么盗窃者就能够冒充此用户。为防止发生类似情况,CA需要一种方法来吊销证书并通知吊销的终端实体。
PKI CA负责维护关于证书状态的信息。这包括在证书过期之前变成无效证书时对证书撤销的支持。可以使用X。509V2CRL作为传递证书撤销状态信息的机制。在证书已经撤销之后,将实体增加到下一个发布的CRL中。
作为选择,CA可以使用在线撤销通知机制,例如在线证书状态协议(Online Certificate Status Protocol,OCSP),减少CA撤销证书与通知终端实体之间的延迟。与CRL发布机制不同,终端实体使用在线方式的证书确认必须能够确定在线服务提供者的身份。在OCSP的情况下,这要求确认向客户提供响应的响应者签名。
9.证书与撤销通知的分发与发布
PKI负责分发证书和证书撤销通知。在注册过程结束和证书所有者或用户要求这么做时,可以通过将证书传递给所有者来分配证书。作为选择,可以使用库服务,例如LDAP目录,作为发布机制。
可以通过以下方式分配撤销信息或通知,以CRL的形式向例如LDAP目录的资料库公布已撤销证书列表,产生转发给终端实体的通知,或者提供终端实体查询的在线服务(或者响应程序)的访问。可以定期或者不定期地公布CRL。
8.3.3PKI公钥设施标准
从整个PKI体系建立与发展的历程来看,与PKI相关的标准主要包括以下一些:
1.X。209(1988)ASN。1基本编码规则的规范
ASN。1(Abstract Syntax Notation One抽象语法表示法1)是描述在网络上传输信息格式的标准方法。它有两部分:第一部分(ISO8824/ITU X。208)描述信息内的数据、数据类型及序列格式,也就是数据的语法;第二部分(ISO8825/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。509v3,它定义了包含扩展信息的数字证书。该版数字证书提供了一个扩展信息字段,用来提供更多的灵活性及特殊应用环境下所需的信息传送。
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技术的不断进步和完善,以及其应用的不断普及,将来还会有更多的标准和协议加入。
8.3.4PKIX证书实施标准
为了开发支持X。509基础的PKI的互联网标准,1995年秋天成立了PKIX工作组。PKIX(Public-Key Infrastructure Using X。509)使用X。509的公钥体系基础框架,并且推出新的PKI的互联网标准。
PKIX已经以文档的方式推出了一些主要的PKI标准(并不止这些):
RFC2459关于X。509V3证书和V2CRL。
RFC2587关于特征证书,LDAPv2证书和CRL存储。
RFC3039关于PKI资格认证。
RFC2527关于PKI证书政策和框架。
RFC2510关于证书管理协议(CMP)。
RFC2560关于在线证书状态协议(OCSP)。
RFC2511关于证书管理请求格式(CRMF)。
RFC3161关于时间戳协议、PKI时间戳协议。
RFC2797关于证书管理消息。
RFC2585关于使用ftp、HTTP传输PKI操作。
目前PKIX工作组的主要研究领域如下:
开发代表路径的发现和确认(DPD/DPV)的RFC标准。
开发代理证书的扩展和相关处理规则的RFC标准。
开发从PKI灾难恢复的文档的RFC标准。
8.3.5X。500目录服务协议标准
X。500目录服务是一种用于开发一个单位(或组织)内部人员目录的标准方法,这个目录可以成为全球目录的一部分。这样在世界任何一个角落,只要是在能和Internet相连的地方,任何人都可以查询这个单位中人员的信息,可以通过人名、部门、单位(或组织)来进行查询。许多公司或组织都提供X。500目录,这个目录像我们通常知道的目录一样有一个树型结构,它的结构如下:国家,单位(或组织),部门和个人。
在X。500中,每个本地目录叫做目录系统代理(DSA),一个DSA代表一个或多个单位(或组织),而DSA之间以目录信息树(DIT)连接,用于访问一个或多个DSA的用户程序称为DUA。X。500在全球目录服务(GDS)中作为分布计算机环境的一部分实现。
X。500目录服务器用于发布用户的证书和黑名单信息,用户可通过LDAP协议查询自己或其他人的证书和下载黑名单信息。LDAP是X。500目录访问协议的一个子集。支持这个协议的服务器,可以让普通用户使用支持LDAP功能的Web浏览器,进行有关电子邮件用户登录住处方面的查询,查询的用户属性包括姓名、电话号码、电子邮件地址、工作机构、所在部门和地址信息等。系统管理员可以通过LDAP客户程序远程进行目录管理操作,如添加、删除和修改用户账户信息等。
X。500是一个协议族。X。500实际上不是一个协议,它是由一个协议族组成:X。501模型强调目录服务基本模型和概念;X。509认证框架是如何在X。500中处理目录客户和服务器的认证;X。511抽象服务定义X。500被要求提供的功能性服务;X。518分布式操作过程表明如何跨越多台服务器处理目录服务;X。519协议规范即是X。500协议,包括目录访问协议DAP、目录系统协议DSP、目录操作绑定协议DOP和目录信息Shadowing协议DISP;X。520选定的属性类型要求是X。500自己使用的属性类型;X。521选定的对象类即为X。500自己使用的对象类;X。525复制是如何在目录服务器之间复制目录内容。
在这些X。500标准中主要定义有多种内容。一个信息模型:确定目录中信息的格式和字符集,如何在项中表示目录信息(定义对象类、属性等模式);一个命名空间:确定对信息进行的组织和引用,如何组织和命名项——目录信息树DIT和层次命名模型;一个功能模型:确定可以在信息上执行的操作;一个认证框架:保证目录中信息的安全,如何实现目录中信息的授权保护——访问控制模型;一个分布操作模型:确定数据如何进行分布和如何对分布数据执行操作,如何将全局目录树划分为管理域进行管理——目录管理模型,客户端与服务器通信的协议——目录访问协议DAP,将用户请求在服务器之间进行链接所需的目录系统协议DSP,将选定的信息在服务器之间进行复制所需的目录信息映像协议DISP,用于自动在服务器之间协商连接配置的目录操作绑定协议DOP。
X。500虽然是一个完整的目录服务协议,但在实际应用的过程中,却存在着不少障碍。由于目录访问协议DAP这种应用层协议是严格遵照复杂的ISO七层协议模型制定的,对相关层协议环境要求过多,主要运行在UNIX机器上,在许多小系统上,如PC和Macintosh上无法使用,因此没有多少人按照DAP开发应用程序,TCP/IP协议体系的普及,更使得这种协议越来越不适应需要。
“思考题”
1.为什么需要身份认证?
2.电子商务中的身份认证有什么特点?
3.身份认证最主要的协议有什么?
4.数字证书的作用是什么?其主要应用包括哪些?
5.说明数字认证的安全机理。
6.PKI的作用是什么?
7.数字证书的认证机构是什么?