公钥基础设施(Public Key Infrastructure,PKI)是网络安全的基础,其原理是利用公钥技术所构建,用来解决网络安全问题的一种普遍适用的基础设施。也有学者把提供全面安全服务的基础设施,包括软件、硬件、人员和策略的集合称为PKI。PKI在网络信息空间的地位相当于电力基础设施在工业中的地位。可以说PKI是目前电子商务和电子政务必不可少的安全基础。
PKI体系结构采用证书管理公钥,通过第三方的可信机构认证中心(Certificate Authority,CA),把用户的公钥和用户的其他标识信息(如名称、E-mail、身份证号等)捆绑在一起,在Internet上验证用户的身份。PKI体系结构把公钥密码和对称密码结合起来,在Internet上实现密钥的自动管理。其主要目的是通过自动管理密钥和证书,为用户建立起一个安全的网络运行环境,使用户可以在多种应用环境下方便地使用加密和数字签名技术,从而保证网上数据的机密性、完整性和不可抵赖性。
作为网络环境的一种基础设施,PKI必须具有良好的性能。通常对PKI的性能要求如下。
1)透明性和易用性:这是最基本的要求,PKI必须尽可能地向上层应用屏蔽密码服务的实现细节,向用户屏蔽复杂的安全解决方案,使密码服务对用户而言简单易用,同时便于单位、企业完全控制其信息资源。
3)互操作性:不同企业、单位的PKI实现方法可能是不同的,这就提出了互操作性要求。要保证PKI的互操作性,必须将PKI建立在标准之上,这些标准包括加密标准、数字签名标准、Hash标准、密钥管理标准、证书格式、目录标准、文件信封格式、安全会话格式、安全应用程序接口规范等。
4)支持多应用:PKI应该面向广泛的网络应用,提供文件传送安全、文件存储安全、电子邮件安全、电子表单安全、Web应用安全等保护。
5)支持多平台:PKI应该支持目前广泛使用的操作系统平台,包括Window、UNIX等。
PKI是一种遵循标准的密钥管理平台,涉及到多个实体之间的协作过程,它们包括认证中心、注册机构(Registration Authority,RA)、证书数据库(Certificate Database)、密钥管理系统(Key Manage System)、证书撤销管理系统(Certificate Revocation List Manage System)、PKI应用接口系统(PKI Application Interface System)及最终用户,如图2-21所示。
1.认证中心(CA)
证书是一种权威性的电子文档,如同网络计算环境中的一种身份证,用于证明某一主体(如人、服务器等)的身份以及其公开密钥的合法性。在公钥密码体制环境中,必须有一个可信的机构来对任何一个主体的公钥进行验证,证明主体的身份以及与公钥的匹配关系。认证中心正是这样的机构,它是证书的签发机构,是PKI系统的核心。
图2-21 PKI各构成部件之间的交互作用
CA的功能如图2-22所示。
图2-22 证书处理流程图
(1)接受证书请求
接受证书请求,检查其合法性,审核用户的证书申请。这部分工作一般由RA来完成,它可以是独立的部门,也可以看成是CA的一部分。
(2)证书签发,审核,制作
它以数据库(PKICADB)为核心,按照既定的业务流程到数据库中查找待签发用户信息,向证书签发服务器发送证书签发消息。
(3)证书发布
证书的发布是指将证书保存到LDAP(Lightweight Directory Access Protocol)目录服务器上。证书管理协议主要基于LDAP API技术,LDAP API提供了LDAP证书读,证书搜索,证书或CRL增加、删除,目录服务器中的信息修改。
CA证书系统的证书库构造采用支持LDAP的目录系统,CA将已经生成但未发布的数字证书一次性地向目录服务器发布。用户或相关的应用通过LDAP来访问证书库。
(4)证书的归档及撤销
CA所发证书要定期归档,以备查询。除用于用户的签名密钥外,对证书的所有数据信息,都要进行归档处理。
CA使用符合LDAP X.500标准的目录服务器系统存储证书以及证书的撤销列表。目录和数据库备份可以根据组织机构的安全策略执行归档,最长保存期可达7年。数据库还保存审计和安全记录。对于用户密钥对,CA通过专用程序自动存储和管理密钥历史及密钥备份。
在证书的有效期内,由于私钥丢失、泄密等原因,必须废除证书。此时证书持有者要提出证书废除申请。注册管理中心一旦收到证书撤销请求,就可以立即执行证书撤销,并同时通知用户,使之知道特定证书已被撤销。CA提供了一套成熟、易用和基于标准的证书撤销系统,目前主要采用的方案有证书撤销列表CRL及在线证书状态查询协议(OCSP)。从安全角度来说,每次使用证书时,系统都要检查证书是否已被撤销。为了保证执行这种检查,证书撤销是自动进行的,而且对用户是透明的。这种自动透明的检查是针对企业证书进行的,而个人证书则要人工查询。
(5)证书的更新
证书都具有一定的有效期,这种有效期是由证书的安全策略或CPS(证书运作规范)所规定的。当证书“接近”过期时,就必须颁发一个新的公/私密钥和相关证书,这也被称为密钥更新。
所谓“接近”过期,一般是指在证书到达有效期之前的时间“提前量”,这个提前量,通常规定为整个密钥生存期的20%左右,即一旦密钥生存周期被用到80%时,密钥更新就应发生。然后,新的密钥资料应该被用到随后所有的密码操作中。实践证明,这是一个合理的转变时间,可以防止证书过期而得不到安全服务的问题发生。
因为扩展性的要求,这个过程必须是自动的,对终端用户而言,也应该是透明的。
(6)密钥的备份与恢复
PKI中一个很重要的内容就是密钥的备份与恢复。密钥的备份与恢复分为CA根密钥的备份与恢复、运营CA的密钥备份与恢复和用户密钥的备份与恢复。
1)CA根密钥的备份与恢复。根密钥是由根密钥加密机(硬件加密模块)产生的,因此密钥备份由加密机系统管理员启动加密机管理程序执行,它将根密钥分割成多块,为每一块生成一个随机口令,使用该口令加密对应的密钥块,然后将加密后的密钥块分别写入不同的IC卡中,每一个口令以一个文件形式保存,每人只能保存一块。恢复密钥时,必须由各密钥备份持有人员分别插入各自保管的IC卡,并输入相应口令才能恢复根密钥。
2)运营CA的密钥备份和恢复。运营CA直接为各种用户实体签发证书,其密钥备份非常重要。一般由加密机系统管理员启动加密机管理程序执行。它将运营CA密钥切分成多块,为每一块生成一个随机口令,使用该口令加密对应的密钥块,然后将加密的密钥块分别写入不同的IC卡中,每个口令以一个文件形式保存,最后将每个IC卡及其对应的口令文件交给备份人员保存,每人只能保存一块。当需要密钥恢复时,其做法与根密钥恢复时做法相同。
3)用户密钥的备份与恢复。用户的加密密钥,在CA签发用户证书时,即可做用户密钥备份。一般是将用户密钥存放在CA的资料库中。
若用户密钥丢失或其他原因,用户不愿意撤销原密钥,希望能对原密钥进行恢复,就可以根据密钥历史存档进行恢复。在完成这个恢复过程后,相应的软件将产生一个新的签名密钥对来代替旧的签名密钥对。
密钥的备份与恢复也可考虑用门限秘密共享体制来实现。
(7)交叉认证
属于不同CA的用户之间,当他们要检查对方证书的合法性时,需要交叉认证,交叉认证扩展了第三方认证的范围。(www.xing528.com)
2.注册机构(RA)
尽管可以将RA看做是PKI的一个扩展部分,但管理员却渐渐发现它是必不可少的。随着一个PKI区域的最终实体数量的增加,施加在一个CA上的负载也随之增加。而RA可以充当CA和它的最终用户之间的中间实体,辅助CA来完成它的证书生成功能,并且可以将CA从不安全的环境中分离出去。
RA子系统包括RA的初始化、操作员管理、证书申请录入、证书申请审核、证书申请上传、注销证书申请录入、注销证书申请审核、注销证书申请上传、证书下载和制卡、日志管理、报表统计和数据库备份管理。系统应自动记录系统内发生的每一事件,包括系统自动执行的和管理操作执行的,如图2-23所示。
图2-23 RA的管理模块
3.证书目录
证书生成后,必须存储以备以后使用。为了减少最终用户将证书存储于本地机器的需要,CA通常使用一个证书目录,或者中央存储点。作为PKI的一个重要组成部分,证书目录提供证书管理和分发的单一点。
X.500目录正被广泛接受,因为除了可以充当证书库之外,它还可以给予管理员一个个人属性信息入口的集中点。通过使用目录访问协议,如轻量级目录访问协议(LDAP),目录客户端可以定位条目项以及它们的属性。
4.客户端系统
客户端软件(或称其为证书的客户端代理)运行在用户的机器上,一方面,在申请双证书时帮助用户生成签名密钥对,另一方面,它负责本地证书的管理,帮助用户对证书进行导入、导出,以便完成证书在电子商务应用系统中的认证作用;它以客户端的身份与RA通信,进行证书的申请与下载。该软件也可以以插件的形式与浏览器集成在一起,帮助完成在线交易。
客户端软件功能有:
1)询问证书和相关的撤销信息。
2)在一定时刻为文档请求时间戳。
3)作为安全通信的接收点。
4)进行传输加密或数字签名操作。
5)能理解策略,知道是何时和怎样去执行取消操作。
6)证书路径处理等。
没有客户端软件,PKI无法有效地提供很多服务。客户端软件应当独立于所有应用程序之外,去完成PKI服务的上述客户端功能。应用程序应通过标准接入点与客户端软件连接,作为PKI的客户端软件,应用程序是在使用基础设施。
5.密钥管理及其要求
密钥管理是一门综合性的技术,涉及密钥的产生、检验、分配、传递、保管、使用和销毁的全过程。
一般来说,一个好的密钥管理系统应满足以下3点要求:
1)密钥难以被非法窃取。
2)在一定条件下窃取了密钥也没有任何用处。
3)密钥的分配和更换过程对用户而言是透明的。
CA不在其任何设备保存用户的私有密钥。如果需要托管密钥,则密钥的托管由密钥管理中心负责。
密钥管理中心不备份用户私有的签名密钥,用户应备份他们的私有签名密钥,并确保这些密钥的安全;密钥管理中心可备份用户要求托管的私有加密密钥及一些相关信息,并确保密钥得到安全的保护。
6.证书状态查询方案
(1)离线证书状态查询方案
离线证书状态查询方案通过一个经过签名的证书撤销列表来发布认证数据。服务器可以通过“推”(Push)或“拉”(Pull)的方式将此撤销列表发送给无线用户(如果用户向服务器提出查询证书状态的请求,就用“拉”的方式;如果用户没有提出查询证书状态的请求,服务器可以使用“推”的方式将数据传送给用户)。通过证书撤销列表的方式,用户就能拥有所有的撤销数据。在数据有效期内及没有在线传输要求的情况下,这些数据常被缓存起来。这种方案最简单的实现例子就是传统的证书撤销列表CRL(Traditional-certificate Revocation List)方案。
(2)在线证书状态查询机制
在线证书状态查询机制是基于在线证书状态协议(On-line Certificate Status ProtocolOCSP)的一种在线的证书撤销信息获得方式。OCSP是一种请求/响应协议,它提供了一种从名称为OCSP响应者的可信第三方获得在线证书状态信息的手段。
OCSP请求由版本号、服务请求类型及证书标识符组成。其中,证书标识符包括证书颁发者可识别名的Hash值、颁发者公钥Hash值、证书序列号及扩展。OCSP响应包括证书标识符和证书状态(即“正常”、“撤销”和“未知”),若证书状态是“撤销”,还应包括撤销的具体时间和撤销原因。OCSP的可信性和在传输过程中的安全性由OCSP响应器(可信第三方)的数字签名保证。
OCSP的优点在于它本身不存在延迟,但它有一定的局限性。首先,OCSP的响应必须由响应器进行数字签名。一个加密的签名响应,对响应产生的周期时间的影响是非常大的,因此使得系统可能拒绝大量查询的请求。但是没有签名的响应将使攻击者有机可乘,送给客户一个伪装的错误响应;其次,必须保证用户与OCSP响应器之间的在线通信,这会造成较高的通信成本,还会引起通信瓶颈;再次,OCSP只是一个协议,它没有用来搜集撤销信息的后端结构,它仍然需要CRL或其他方法搜集证书撤销信息,因此,OCSP响应器提供的信息实时性将取决于获得这些信息的来源的延迟,所以,认为OCSP能自动更新信息以提供实时服务是不恰当的;最后,由于OCSP的可信性和在传输过程中的安全性是由OCSP响应器的数字签名来保证的,一旦签名秘密泄露,OCSP就毫无安全性可言。
(3)证书状态信息的发布模式
如何为PKI系统的证书状态信息的发布机制选择一种最佳的模式,要考虑大量的因素。除了客户的校验率和CRL的有效期外,还有一个必须考虑的因素是吊销证书可能的数量和PKI系统的运行环境。
1)客户的校验率很低或者系统要求较低的信息延迟。如果系统要求较低的证书状态信息的延迟,以提高系统的安全性,就需要减少CRL的有效期,以减小客户请求吊销证书到该信息发布给所有客户的时间。如果CRL的有效期很短,将造成客户每执行一次或很少几次校验都必须从资料库中获得最新的作废信息。如果客户的校验证书的需求率很低,也会产生这种情况。在CRL发布信息的几种模式中,峰值请求率的减少都依赖于缓存信息的再次使用。当Cache中缓存的CRL的信息不可用或很少用到时,这几种技术没有一种能够很有效地降低峰值请求率。这种情况下较好的解决方案是将CRL分段,以减少服务一次请求要求的时间。也可以考虑采用在线发布的方式,使系统获得实时的响应,但遗憾的是这种方式不适用于大规模的PKI系统。如果希望减少系统的响应时间,同时又在一定程度上减少峰值请求率,可考虑采用Delta-CRL方式。通过Delta-CRL较短的生命期获得较好的系统响应,而将CRL分成基本CRL和增量CRL来减小峰值请求率。
2)可能被吊销的证书数目很少。如果CRL的有效期相对较长,可以使得缓存的CRL信息生效,那么证书作废信息的最佳发布方式将依赖于可能的作废证书的数目。如果能预期到只可能有很少的证书会被吊销,那么分段发布CRL的模式对减少CRL的大小就没有什么效果。在这种情况下,最好的方法是采用分时但不分段发布CRL的模式,以减少峰值请求率。
3)可能被吊销的证书数目很多。如果可能有大量的作废信息需要发布,那么减少CRL的大小就比减少峰值请求率更重要。这种情况下必须使用分段发布CRL的模式。如果CRL需要被分成较多的段,就不需要分时发布CRL的分段了,因为这时分时发布技术已不能充分地减少峰值请求率,反而会增加额外的系统开销。
4)在离线环境下的客户操作。这种情况下分段将毫无用处,因为离线操作的客户在从资料库中获取CRL信息时,并不知道哪个证书将被校验。如果CRL被分段,那客户需要获得所有分段的CRL。此时,分时发布CRL的方案却十分有效。如果CRL采用分时发布,每次客户请求CRL时,可以确保总是获得相对更新的信息。反之若不采用分时发布,某些请求获得证书状态信息的客户可能会得到过期的CRL,这样的CRL将被抛弃。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。