公钥基础设施简称PKI,是一个以公钥技术为基础提供和实施安全服务的具有普适性的安全基础设施。它旨在解决网上身份认证、信息的完整性和不可抵赖性等安全问题。
实际应用中,PKI在不明确对方身份或分布地的情况下,通过一系列的信任关系,提供了一套使用户以数字证书为基础的安全机制,来实现信息的保密性、完整性和不可否认性。它是一套软硬件系统和安全策略的集合。
一个典型的PKI系统包括PKI策略、软硬件系统、认证机构CA、证书/CRL库、证书撒销处理系统、密钥备份及恢复系统和应用程序接口等部分,它的基本组成如下图所示:
1.PKI策略
PKI体系的建立和运行是需要一套策略的,如CA可以为哪些人颁发证书,颁发证书的流程是怎样的,这都需要一套策略来指导。
PKI策略是一个包含增强和支持安全策略的一些操作过程的详细文档。在PKI中有两种类型的策略:一是证书策略( CP),用来说明证书的适用范围或应用分类,例如证书策略可以限定证书的用户群、用户使用证书的目的等;另一种是认证惯例声明( CPS),它是一份详细的文档,包括如何建立和执行CA,如何发行、接受和废除证书,如何生成、注册和鉴定密钥,以及如何确立证书的存放位置和如何让用户使用。
2.软硬件系统
软硬件系统是PKI系统运行所需硬件和软件的集合,主要包括认证服务器、目录服务器、PKI平台、应用程序接口、数据库等。
3.密钥备份与恢复系统
企业级的PKI产品至少应支持密钥的安全存储、备份和恢复。其功能包括:
(1)当用户证书生成时,用户公钥即被PKI备份存储。
(2)当需要恢复密钥时,用户只需向CA提出申请即可;但须注意,密钥备份与恢复系统只能备份用户的公钥,不能备份私钥。
(3)归档密钥,如当一个公司的员工辞职时,PKI系统管理员一方面要使该证书作废,使证书中的公钥无效,另一方面为了访问以前被该公钥加密的文件等信息,需要保留备份该公钥。
4.PKI应用程序接口系统
一个完整的PKI有必要有应用程序接口,使程序以安全、共同、可信的方法与PKI体系进行交互,并减少维护和管理成本。让用户可以方便地运用加密、数字签名、身份认证等服务。
为了向运用体系屏蔽密钥和证书办理的细节,PKI应用程序接口需要是跨平台的并具有以下功能:
(1) 为使用公钥证书的所有应用提供支持,以完成证书的验证工作。
(2)为应用程序提供统一的密钥备份与恢复支持,向应用提供历史密钥的安全管理服务。
(3)阻止备份私钥的行为。
(4)实现密钥更新的自动、透明与一致。
(5)为所有用户访问统一的公用证书库提供支持。
(6)向所有应用提供统一的证书撤销处理服务。
也就是说需要能够理解证书策略,知道何时和怎样去执行证书撤销操作。
(7)完成交叉证书的验证工作,为所有应用程序提供统一模式的交叉验证支持。
(8)接口系统支持多种密钥存放介质,包括IC卡、安全文件等,并有相应的防复制技术。
5.PKI的部署
部署PKI时,推荐将PKI的主要功能部件放在各自分开的系统中,即CA放在一台主机中,RA放在另一台主机中,而目录服务器又放在其他系统中。CA系统尤为重要,因为CA出现一点问题就可能使整个PKI瘫痪,从而不得不重新签发所有的证书。因此建议将CA放在专设的防火墙之后,这样它就可以得到Internet防火墙和企业内的防火墙的双重保护。当然,企业内的防火墙应允许CA与RA及其他系统之间进行通信,如果不同PKI之间想互相访间对方的证书,它们的目录对对方必须是可用的,与此同时,目录服务器可能包含对于组织来说比较敏感的不适合公用的数据。为了解决这个问题,一般的方法是创建一个只包含公开密钥或证书的目录,并把这个目录放在组织边界上。该目录(称为边界目录)既可以放置在企业防火墙之外,也可在企业内部网的DMZ区中,这样它既可以公用,又可以被较好地保护起来。
企业内部网内的主目录服务器将会定期以新证书刷新边界目录或更新现有证书。全业内的用户可以使用主目录,而其他系统或组织的用户只能使用边界目录。例如,当组织A中的用户想向组织B中的用户发送加密电子邮件时,用户A将从组织B的边界目录中寻找用户B的证书,然后用该证书中的公钥将电子邮件加密。