根据近代密码学观点,密钥体制的安全应当只取决于密钥的安全,而不取决于对密码算法的保密。因此密钥管理是至关重要的。
从技术上讲,密钥管理包括密钥的产生、存储、分配、组织、使用、更换和销毁等一系列技术问题。每个密钥都有其生命周期,密钥管理就是对整个生命周期的各个阶段进行管理。密钥体制不同,其管理方法也不同。密钥管理是数据加密技术中的重要一环,其目的是确保密钥的安全性(真实性和有效性)。一个好的密钥管理系统应该做到:
- (1)密钥难以被窃取。
- (2)在一定条件下窃取了密钥也没有用,密钥有使用范围和时间的限制。
- (3)密钥的分配和更换过程对用户透明,用户不一定要亲自掌管密钥。
另外需要说明的是,对称密码体制的密钥管理和非对称密码体制的密钥管理是完全不同的。
一、对称密码体制的密钥管理
对称密码体制的加密钥等于解密钥,因此密钥的秘密性、真实性和完整性必须同时保护。这就带来了密钥管理方面的复杂性。对于大型网络系统,由于所需要的密钥种类和数量都很多,因此密钥管理尤其困难。著名的DES的颁布和广泛应用,促使人们对传统密码管理理论和技术进行研究,于是ANSI颁布了ANSI X9. 17金融机构密钥管理标准,为DES、AES等商业密码的应用提供了密钥管理指导。
1.1、密钥分级
密钥分为初级密钥、二级密钥和主密钥。ANSI X9.17支持这种三级密钥组织。
1.1.1、初级密钥
初级密钥是真正用于加解密数据的密钥,根据其使用范围不同其称呼有所差别。例如,用于通信保密的初级密钥为初级通信密钥,用于文件保密的称为初级文件密钥,用于通信会话保密的称为初级会话密钥。
初级密钥可由系统应实体请求通过硬件或软件的方式产生,也可以由用户自己提供。初级通信密钥和初级会话密钥原则上采用一个密钥只使用一次的“一次一密"方式。也就是说,初级通信密钥和初级会话密钥仅在两个应用实体之间交换数据的时候才存在,生存周期很短。初级文件密钥与其所保护的文件有一样长的生存周期。
初级密钥在系统中不能以明文形式保存,必须用更高级的密钥进行加密保存。
1.1.2、二级密钥
二级密钥用于保护初级密钥。当二级密钥用于保护初级通信密钥时称为二级通信密钥,用于保护初级文件密钥时称为二级文件密钥。
二级密钥可由系统应专职密钥安装人员的请求,由系统自己产生,也可由专职密钥安装人员提供。二级密钥的生存周期一般较长。同样,二级密钥也不能以明文形式保存在系统中,必须接受更高级密钥的保护。
1.1.3、主密钥
主密钥是密钥管理方案中的最高级密钥,用于对二级密钥进行保护。
主密钥由密钥专职人员随机产生,并妥善安装。主密钥的生存周期很长。
1.2、密钥生成
算法的安全性依赖于密钥,如果采用一个弱的密钥生成方法,那么整个体制是弱的。因为能破译密钥生成算法,所以攻击者就不需要试图去破译加密算法了。
好密钥指那些由自动处理设备生成的随机的二进制数。如果密钥为64位长,产生每一个可能的64位密钥必须具有相同的可能性。这些密钥要么从可靠的随机源中产生(例如抛硬币或噪音发生器),要么从安全的伪随机比特发生器中产生。同时要有好的加密算法和密钥管理程序。
许多加密算法有弱的密钥。例如,DES在每256个密钥中会有16 个弱密钥。
对公钥密码体制来说,生成密钥更加困难,因为密钥必须满足某些数学特征(必须是素数的,是二次剩余的等),而且从密钥管理的观点看,密钥发生器的随机种子也必须是随机的。
对密钥的一个基本要求就是具有良好的随机性,这主要包括长周期性、非线性、统计意义上的等概率性以及不可预测性等。一个真正的随机序列是不可再现的,任何人都不能再次产生它。高效地产生高质量的真随机序列不是一件容易的事情。因此,有实际意义的是针对不同的情况采用不同的随机序列。例如,对于主密钥,则应当采用高质量的真随机序列。而对于初级密钥,并不需要一定采用真随机序列,采用足够随机的伪随机序列就可以了。
1.2.1、主密钥的产生
主密钥是密码系统中的最高级密钥,用它对其他密钥进行保护,而且生存周期长,因此它的产生要格外小心。
主密钥应当是高质量的真随机序列。真随机数应该从自然界的随机现象中提取产生,一般原理是将自然界的随机模拟信号经适当处理,再数字化后得到。理论上随机源的选择具有一定的自由度,可以根据不同的应用选择不同的随机源。但适合用做密钥的并不多,有些自然随机现象产生的随机序列并不好。因此,有时候采用真随机和伪随机相结合的方法来产生高质量的随机数作为主密钥。
真随机数的产生常采用物理噪声源的方法。主要有基于力学的噪声源和基于电子学的噪声源。基于力学的噪声源常利用硬币和骰子抛撒落地的随机性产生密钥,但效率低,已经很少使用。基于电子学噪声源的密钥产生技术是目前最主要的密钥产生技术。例如利用电子方法对噪声器件(如MOS晶体管、稳压二极管、电阻等)的热噪声进行放大、滤波、采样、量化后产生出随机密钥,并制成随机数产生器芯片。
1.2.2、二级密钥的产生
可以像产生主密钥那样产生真正随机的二级密钥。特别是利用真随机数产生器芯片产生二级密钥也是比较方便的。
另外使用主密钥和一个强的密码算法产生二级密钥也是可以的。一个强的密码算法可以用做一个具有良好随机性的随机数产生器。
1.2.3、初级密钥的产生
为了安全和简便,通常把随机数视为受高级密钥(主密钥或二级密钥)加密后的初级密钥。因此,随机数被解密后得到初级密钥。
1.3、密钥的存储与备份
密钥的安全存储是密钥管理中的一个十分重要的环节,而且也是比较困难的一个环节。
所谓密钥的安全存储就是要确保密钥在存储状态下的秘密性、真实性和完整性。安全可靠的存储介质是密钥安全存储的物质条件,安全严密的访问控制机制是密钥安全存储的管理条件。只有当这两个条件同时具备时,才能确保密钥的安全存储。
密钥安全存储的原则是不允许密钥以明文形式出现在密钥管理设备之外。
为了进一步确保密钥和加密数据的安全,对密钥进行备份是必要的。目的是一旦密钥遭到毁坏,可利用备份的密钥恢复原来的密钥或被加密的数据,避免造成损失。密钥备份本质上也是一种存储。
密钥的存储形态有明文形态、密文形态、分量形态三种。
- 明文形态即密钥以明文形式存储。
- 密文形态即密钥被加密后存储。
- 分量形态指密钥以分量的形式存储,密钥分量不是密钥本身,而是用于产生密钥的部分参数,只有在所有密钥分量共同作用下才能产生出真正的密钥,而且只知道其中一个或部分分量,无法求出其他分量。“秘密分拆”是实现密钥以分量形态存储的重要方法。
1.3.1、密钥存储
不同级别的密钥应采用不同的存储形态,密钥的不同形态应当采用不同的存储方式。
1)主密钥的存储
主密钥是最高级别的密钥,主要用于对二级密钥和初级密钥进行保护。主密钥的安全性要求最高,而且生存周期很长,需要采用最安全的方法存储。
由于主密钥是最高级别,所以只能用明文形式存储,否则就不能工作。这就要求存储器必须是高度安全的,不但物理上安全,而且逻辑上安全。通常是将其存储在专用密码装置中。
2)二级密钥的存储
二级密钥可以以明文形式存储也可以用密文形式存储。如果以明文形式存储,则和主密钥一样,必须存放在专用密钥装置中。如果以密文形式存储,则对存储器要求降低。通常采用以高级密钥加密的形式存储二级密钥。这样可以减少明文形态密钥的数量,便于管理。
3)初级密钥的存储
初级文件密钥和初级会话密钥是两种不同性质的初级密钥,因此存储方法也有所不同。
由于初级文件密钥的生命周期与受保护的文件的生命周期一样长,有时会很长,所以初级文件密钥需要妥善地存储。初级文件密钥一般采用密文形式存储,通常采用以二级文件密钥加密的形式存储初级文件密钥。
由于初级会话密钥按“一次一密”的方式工作,使用时动态产生,使用完毕后立即销毁,生命周期很短。因此初级会话密钥的存储空间是工作存储器,应当确保工作存储器的安全。
1.3.2、密钥备份
密钥的备份是确保密钥和数据安全一种有备无患的方式。备份的方式有多种,除了用户自己备份以外,也可以交由第三方进行备份,还可以以密钥分量形态委托密钥托管机构备份。有了备份,在需要时可以恢复密钥,从而避免损失。
不管以什么方式进行备份,密钥的备份应该遵循以下原则:
- (1)密钥的备份应当是异设备备份,甚至是异地备份。如果是同设备,当密钥存储设备出现故障时,备份的密钥也将毁坏,因此不能起到备份的作用。异地备份可以避免因场地被攻击而使密钥和备份密钥同时被损。
- (2)备份的密钥应当受到与存储密钥一样的保护,包括物理的安全保护和逻辑的安全保护。
- (3)为了减少明文形态的密钥数量,一般采用高级密钥保护低级密钥的方式来进行备份。
- (4)对于高级密钥,不能以密文形态备份。为了进一步增强安全,可采用多个密钥分量的形态进行备份。每一个密钥分量应分别备份到不同的设备或不同的地点,并且分别指定专人负责。
- (5)密钥的备份应当方便恢复,密钥的恢复应当经过授权而且要遵循安全的规章制度。
- (6)密钥的备份和恢复都要记录日志,并进行审计。
1.4、密钥分配
密钥的分配指产生密钥并将密钥传送给使用者的过程。密钥的传送分集中传送和分散传送两类。集中传送指将密钥整体传送,这时需要使用主密钥来保护会话密钥的传递,并通过安全渠道传递主密钥。分散传送指将密钥分解成多个部分,用秘密分享的方法传递,只要有部分到达就可以恢复,这种方法适用于在不安全的信道中传输。
1.4.1、主密钥的分配
主密钥的安全性要求最高,而生存周期很长,需要采取最安全的分配方法。一般采用人工分配主密钥,由专职密钥分配人员分配并由专职安装人员妥善安装。
1.4.2、二级密钥的分配
在主密钥分配并安装后,二级密钥的分配就容易解决了。一种方法是像分配主密钥那样,由专职密钥分配人员分配并由专职安装人员安装。虽然这种人工分配的方法很安全,但效率低,不适应计算机网络环境的需求。另一种方法是直接利用已经分配安装的主密钥对二级密钥进行加密保护,并利用计算机网络自动传输分配。在发送端用主密钥对二级密钥进行加密,把密文传送给对方,对方用主密钥解密得到二级密钥,并妥善安装存储,如图7-1所示。其中,Knc是要分配的二级密钥,Km是已分配并安装的主密钥。
1.4.3、初级密钥的分配
由于初级密钥按“一次一密”的方法工作,生命周期很短,而对其产生和分配的速度却要求很高。为了安全和方便,通常总是把一个随机数直接视为一个初级密钥被高级密钥(主密钥或者二级密钥,通常为二级密钥)加密之后的结果,这样初级密钥一产生就是密文形式。
注意,这个随机数要在被解密之后才是真正的初级密钥。
因此初级密钥的分配就变得很简单,发送方直接把随机数(密文形式的初级密钥)通过计算机网络传给对方,接收端用高级密钥解密获取初级密钥,分配过程如图7-2所示。其中,RN是随机数,Knc是二级密钥,Kc是初级密钥。
实际在传送过程中,还要考虑到传送内容可能会被截获、伪造、篡改,所以要构建恰当的协议防止这些攻击。
1.4.4、利用公钥密码体制分配
利用公钥密码体制分配对称密码的会话密钥,再利用对称密码的会话密钥对会话进行加密保护,将公钥密码的方便性和传统密码的快速性结合,是一种较好的密钥分配方法。这种方法已得到国际标准化组织的采纳,并且在许多国家得到使用。
当A要和B通信时,A产生一对公钥-私钥对,并向B发送产生的公钥和A的身份。B收到A的消息后,产生会话密钥Ks,用产生的公钥加密后发送给A。A用私钥解密得到会话密钥Ks。此时,A和B可以用会话密钥Ks采用对称密码通信。之后A销毁此次产生的公钥-私钥对,B销毁从A得到的公钥。
1.5、密钥的更新
密钥的更新是密钥管理中非常麻烦的一个环节,必须周密计划、谨慎实施。当密钥的使用期限已到,或怀疑密钥泄露时,密钥必须更新。密钥更新是密码技术的一个基本原则。密钥更新越频繁就越安全,但同时也越麻烦。
1.5.1、主密钥的更新
主密钥是最高级密钥,它保护二级密钥和初级密钥。主密钥的生命周期最长,因此由于使用期限到期而更换主密钥的时间间隔很长。更新时必须重新安装,安全要求与初次安装一样。值得注意的是,主密钥的更新将要求受其保护的二级密钥和初级密钥都要更新。因此主密钥的更新是很麻烦的。
1.5.2、二级密钥的更新
当二级密钥使用期限到期或因为泄露需要更换时,要重新产生二级密钥,并且妥善安装。同样也要求受其保护的初级密钥更新。
1.5.3、初级密钥的更新
初级会话密钥采用“一次一密”的方式工作,所以更新是非常容易的。初级文件密钥更新要麻烦得多,将原来的密文文件解密并且用新的初级文件密钥重新加密。
1.6、密钥的终止和销毁
密钥的终止和销毁同样是密钥管理中的重要环节,但容易被忽视。当密钥使用期限到期时,应该立即终止使用该密钥,并且更换新密钥。终止使用的密钥并不马上销毁,而需要保留一- 段时间。这是为了确保受其保护的其他密钥和数据得以妥善处理。只要密钥尚未销毁,就应该妥善保护。
密钥销毁要彻底清除密钥的一切存储形态和相关信息,使重复这一密钥变得不可能。这里既包括处于产生、分配、存储和工作状态的密钥及相关信息,也包括处于备份状态的密钥和相关信息。
值得注意的是,要采用妥善的清除存储器的方法,对于磁存储器,简单的删除、清零或写1都是不安全的。
二、公钥密码体制的密钥管理
由于公钥密码体制与对称密码体制是性质不同的两种密码体制,所以它们的密钥产生和管理也完全不同。
对称密码体制的密钥本质上是一种随机数或者随机序列,而公钥密码体制本质上是一种单向陷门函数,建立在某一数学难题之上。不同公钥密码体制所依据的数学难题不同,因此其密钥产生的具体要求也不同。
所以,公钥密码体制的密钥管理和对称密码体制的密钥管理有着本质的区别。
2.1、公钥的分配
前面讲述的对称密钥密码体制中加密解密只有一个密钥,因此在密钥分配中必须保证其保密性、真实性和完整性。而公钥密码体制有两个密钥,在分配的时候要确保私钥的秘密性、真实性和完整性,对于公钥,则保证其真实性和完整性,绝不允许攻击者替换或者篡改用户的公钥。
公钥的分配方式从简单到复杂有这样几种:
(1)公开发布:用户将自己的公钥发给所有其他用户或向某一团体广播。例如,将自己的公钥发布在BBS或邮件列表上。这种方法方便快捷,每个人都可以很方便地发布自己的公钥。但缺点也很明显,容易被人冒充或算改。所以这种方法一般为简单的个人应用,或在一些小型网络中使用。
(2)公钥动态目录表:建立一个公用的公钥动态目录表,表的建立和维护以及公钥的分布由某个公钥管理机构承担,每个用户都可靠的知道管理机构的公钥。但在这个方法中,每一用户想要与他人通信都要求助于公钥管理机构,因而可能形成瓶颈,而且公钥目录表也容易被篡改。所以这个方法只适合用于小型网络,如企业局域网中。
(3)数字证书:分配公钥的最安全有效的方法是采用数字证书,它由证书管理机构CA为用户建立,实际上是一个数据结构。其中的数据项有该用户的公钥、用户的身份和时间戳等。
2.2、数字证书
公钥需要保证完整性和真实性,像电话号码那样直接公开的方式并不能防止别人篡改、冒充、伪造。在前面讲到保证完整性和真实性的方法之一就是数字签名。假设信任一个实体X,所有的公钥都由实体X验证后签名存入某个数据库,实体X把自己的公钥公开。则每取出一个公钥时用户都验证实体X的签名是否完整,从而可以发现对公钥的篡改。进一步,如果将用户的标识符和用户的公钥联系在一起签名,则可以防止有人冒充或者伪造公钥。
由此可见,采用数字签名技术可以确保公钥的安全分配。这里经过实体X签名的一组信息的集合被称为证书,而可信的实体X被称为签证机构(certificate authority,CA)。
证书是一个数据结构,是一种由一个可信任的权威机构签署的信息集合。证书分很多种类型,例如X.509公钥证书、简单PKI证书、PGP证书、属性证书等。
这些证书具有各自不同的格式。有时候,一种类型的证书可以被定义为好几种不同的版本,每一种版本可能以好几种不同的方式来具体实现。例如,安全电子交易(SET)证书就是X.509版本3的公钥证书结合专门为SET交易特别扩展而成的。
证书、公钥证书、数字证书这几个概念用得比较混乱。在许多场合下,证书和公钥证书都是X.509公钥证书的同义词。数字证书这个词有时候专门来强调电子形式的证书。这个词在某些环境下也会引起混乱,因为各种不同类型的证书都是“数字”的。因此,除非这个词被专门解释说明,它不具有任何更详细的专有意义。
公钥证书包含持证主体的标识、公钥等相关信息,并经过签证机构施加数字签名保护。任何知道签证机构公钥的人都可以验证签名的真伪,从而确保公钥的真实性、确保公钥与持证主体之间的严格绑定。
日常生活中有许多使用证书的例子,例如汽车的驾驶证。驾驶证(公钥证书)确认了驾驶员的身份(用户),表示其开车的能力(公钥),驾驶证上有公安局的印章(CA对证书的签名),任何人只要信任公安局(CA),就可以信任驾驶证(公钥证书)。
有了公钥证书系统后,如果某个用户需要任何其他已向CA注册的用户的公钥,可以向持证人(或证书机构)直接索取其公钥证书,并用CA的公钥验证CA的签名,从而获得可信的公钥。
由于公钥证书不需要保密,可以在Internet.上分发,从而实现公钥的安全分配。有了签名,攻击者就无法伪造合法的公钥证书。因此,只要CA是可信的,公钥证书也是可信的。其中CA公钥的获取也是通过证书方式进行的,为此CA也为自已颁发公钥证书。
使用公钥证书的主要好处是,用户只要获取了CA的公钥,就可以安全获取其他用户的公钥。因此公钥证书为公钥的分发奠定了基础,成为公钥密码在大型网络系统中应用的关键技术。电子商务、电子政务等大型网络应用系统都采用了公钥证书技术。
2.3、 X.509证书
目前应用最广泛的证书格式是国际电信联盟(Internet Telecommunication Union,ITU)提出的X.509版本3格式。X.509是由ITU制定的数字证书标准。为了提供公用网络用户目录信息服务,ITU于1988年制定了X.500系列标准。其中X.500和X.509是安全认证系统的核心,X.500定义了一种区别命名规则,以命名树来确保用户名称的唯一性;X.509则为X.500用户名称提供了通信实体鉴别机制,并规定了实体鉴别过程中广泛适用的证书语法和数据接口,X.509称之为证书。
最初的X.509版本公布于1988年,版本3的建议稿1994年公布,在1995年获得批准。本质上,X.509证书由用户公钥与用户标识符组成,此外还包括版本号、证书序列号、CA标识符、签名算法标识、签发者名称、证书有效期等。
X.509版本3的证书结构如图7-6所示。
(1)版本号:识别用于该证书的X.509标准的版本,这可以影响证书中所能指定的信息。迄今为止,已定义的版本有三个。
(2)证书序列号:发放证书的实体有责任为证书指定序列号,以使其区别于该实体发放的其他证书。此信息用途很多。例如,如果某一证书被撤销,其序列号将放到证书撤销清单(CRL)中。
(3)签名算法标识符:用于识别CA签写证书时所用的算法。
(4)颁发者名称:签写证书实体的可识别名。它通常为一个CA。使用该证书意味着信任签写该证书的实体。
注意:有些情况下签写证书的实体还要签写自己的证书,如根或顶层CA会给自已签发证书。
(5)有效期:每个证书均只能在一个有限的时间段内有效。该有效期以起始日期和时间及终止日期和时间表示,可以短至几秒或长至一世纪。所选有效期取决于许多因素,如用于签写证书的私钥的使用频率及愿为证书支付的金钱等。它是在没有危及相关私钥的条件下,实体可以依赖公钥的预计时间。
(6)主体名称:证书可以识别其公钥的实体名。此名称使用X.500标准,因此在Internet中应是唯一的。此字段必须是非空的,除非在扩展项中使用了其他的名字形式。
(7)主体公钥信息:这是被命名实体的公钥,同时包括指定该密钥所属公钥密码系统的算法标识符及所有相关的密钥参数。
(8)颁发者唯一标识符(可选):证书颁发者唯一标识符,属于可选字段。该字段在实际中很少使用,并且不被RFC2459推荐使用。
(9)主体唯一标识符(可选):证书拥有者唯- .标识符,属于可选字段,用于不同的实体重用这一证书时标识证书的主体,该字段在实际中很少使用,并且不被RFC2459推荐使用。
(10)扩展项(可选):在颁布了X. 509版本2后,人们认为还有一些不足之处,于是提出一些扩展项附在版本3证书格式的后面。这些扩展项包括密钥和策略信息、主体和颁发者属性以及证书路径限制。
(11)颁发者的签名:覆盖了证书的所有其他字段,以及这些字段被CA私钥加密后的Hash值、签名算法标识等。
2.4、公钥基础设施
公钥证书、证书管理机构、证书管理系统.围绕证书服务的各种软硬件设备以及相应的法律基础共同组成公钥基础设施(publicekeyinfrastructure,PKI)。公钥基础设施提供一系列支持公钥密码应用(加密、解密、签名与验证)的基础服务。本质上,PKI是一种标准的公钥密码的密钥管理平台。
PKI采用证书进行公钥管理,通过第三方的可信任机构(CA),把用户的公钥和用户的其他标识信息捆绑在一.起,其中包括用户名和电子邮件地址等信息,以在Internet网上验证用户的身份。
因此,从大的方面来说,所有提供公钥加密和数字签名服务的系统,都可归结为PKI系统的一部分,PKI的主要目的是通过自动管理密钥和证书,为用户建立起一个安全的网络运行环境,使用户可以在多种应用环境下方便地使用加密和数字签名技术,从而保证网上数据的机密性.完整性、有效性。
一个 简单的PKI构成如图7-7所示。
简单的PKI系统包括证书机构CA.注册机构RA和相应的PKI存储库。CA用于签发并管理证书; RA可作为CA的一部分,也可以独立,其功能包括个人身份审核、CRL(证书撤销列表)管理、密钥产生和密钥备份等; PK1存储库包括LDAP目录服务器和普通数据库,用于对用户申请、证书、密钥.CRL和日志等信息进行存储和管理,并提供一定的查询功能。
一个有效的PKI系统必须是安全的和透明的,用户在获得加密和数字签名服务时,不需要详细地了解PKI的内部运作机制。在一个典型、完整和有效的PKI系统应该包含证书的创建和发布以及证书的撤销,一个可用的PKI产品还必须提供相应的密钥管理服务,包括密钥的备份、恢复和更新等。没有一个好的密钥管理系统,将极大影响一个PKI系统的规模、可伸缩性和在协同网络中的运行成本。
美国是最早推动PKI建设的国家,早在1996 年就成立了联邦PKI指导委员会。目前美国联邦政府、州政府、大型企业都建立了PKI。比较有代表性的主要有VeriSign 和Entrust。VeriSign 作为RSA的控股公司,借助RSA成熟的安全技术,提供了PKI产品,为用户之间的内部信息交互提供安全保障。另外,VeriSign也提供对外的CA服务,包括证书的发布和管理等功能,并且同一些大的生产商,如Microsoft、Netscape和JavaSoft等,保持了伙伴关系,以在Internet上提供代码签名服务。
1998年中国的电信行业也建立了国内第-一个行业CA.此后金融、工商、外贸、海关和一些省市也建立了自己的行业CA和地方CA。PKI 已经成为世界各国发展电子商务、电子政务、电子金融的基础设施。
2.4.1、PKI的逻辑结构
PKI作为一组在分布式计算系统中利用公钥技术和X.509证书所提供的安全服务,企业或组织可利用相关产品建立安全域,并在其中发布密钥和证书。在安全域内,PKI管理加密密钥和证书的发布,并提供诸如密钥管理(包括密钥更新,密钥恢复和密钥委托等)、证书管理(包括证书产生和撤销等)和策略管理等。
PKI产品也允许一个组织通过证书认证的方式来同其他安全域建立信任关系。这些服务和信任关系不能局限于独立的网络之内,而应建立在网络之间甚至Internet之上,为电子商务和网络通信提供安全保障,所以具有互操作性的结构化和标准化技术成为PKI的核心。
PKI在实际应用上是一套软硬件系统和安全策略的集合,提供了一整套安全机制,使用户在不知道对方身份或分布地很广的情况下,以证书为基础,通过一系列的信任关系进行通信和电子商务交易。
一个典型的PKI的逻辑结构如图7-8所示,其中包括PKI策略、软硬件系统、证书机构CA、注册机构RA、证书发布系统和PKI应用等。
- (1) PKI安全策略:建立和定义了一个组织信息安全方面的指导方针,同时也定义了密码系统使用的处理方法和原则。
- (2)证书机构CA:是PKI的信任基础,它管理公钥的整个生命周期,其作用包括发放证书.规定证书的有效期和通过发布证书撤销列表,确保必要时可以废除证书。
- (3)注册机构RA:提供用户和CA之间的一个接口,获取并认证用户的身份,向CA提出证书请求。它主要完成收集用户信息和确认用户身份的功能。这里的用户,是指将要向认证中心CA申请数字证书的客户,可以是个人,也可以是集团或团体、某政府机构等。
- (4)证书发布系统:负责证书的发放,如可以通过用户自己,或是通过目录服务。目录服务器可以是一个组织中现存的,也可以是PKI方案中提供的。
- (5)数字证书:在PKI中,最重要的信息就是数字证书,可是说,PKI的所有的活动都是围绕数字证书进行的。
- (6) PKI应用: PKI的应用范围非常广“泛,并且在不断发展之中,可以说只要需要使用到公钥的地方就要使用到PKI,如安全电子邮件、Web安全、虚拟专用网等。
2.4.2、证书的存放
数字证书作为一种电子数据格式,可以直接从网上下载,也可以通过其他方式存放。
可以使用IC卡存放用户证书。即把用户的数字证书写到IC卡中,供用户随身携带。这样用户在所有能够读IC卡证书的电子商务终端上都可以享受安全电子商务服务。
用户证书也可以直接存放在磁盘或自己的终端上。用户将从CA申请的证书通过下载或复制到磁盘或自己的PC或智能终端上,当用户使用自己的终端享受电子商务服务时,直接从终端读人即可。
另外,CRL一般通过网上下载的方式存储在用户端。
2.4.3、证书的申请和撤销
证书的申请有两种方式,一是在线申请;另外一个就是离线申请。在线申请就是通过浏览器或其他应用系统通过在线的方式来申请证书,这种方式-.般用于申请普通用户证书或测试证书。离线方式一般通过人工的方式直接到证书机构的受理点去办理证书申请手续,通过审核后获取证书,这种方式-.般用于比较重要的场合,如服务器证书和商家证书等。
证书的撤销涉及CRL的管理。用户向特定的操作员(仅负责CRL的管理)发一份加密签名的邮件,申明自己希望撤销证书。操作员打开邮件,填写CRL注册表,并且进行数字签名,提交给CA,CA操作员验证注册机构操作员的数字签名,批准用户撤销证书,并且更新CRL,然后CA将不同格式的CRL输出给注册机构,公布到安全服务器上,这样其他人可以通过访问服务器得到CRL。
在一个PKI中,特别是CA中,信息的存储是一个非常核心的问题,它包括两个方面:一是CA服务器利用数据库来备份当前密钥和归档过期密钥,该数据库需高度安全和机密,其安全等级同CA本身相同;另外一个就是目录服务器,用于分发证书和CRL,一般采用LDAP目录服务器。
2.4.4、PKI密钥管理
密钥管理是PKI(主要指CA)中的-一个核心问题,主要指密钥对的安全管理,包括密钥产生、密钥备份、密钥恢复和密钥更新等。
1)密钥产生
密钥对的产生是证书申请过程中重要的一步,其中产生的私钥由用户保留,公钥和其他信息则交给CA中心进行签名,从而产生证书。根据证书类型和应用的不同,密钥对的产生也有不同的形式和方法。对普通证书和测试证书,一般由浏览器或固定的终端应用来产生,这样产生的密钥强度较小,不适合应用于比较重要的安全网络交易。而对于比较重要的证书,如商家证书和服务器证书等,密钥对一般由专用应用程序或CA中心直接产生,这样产生的密钥强度大,适合于重要的应用场合。
另外,根据密钥的应用不同,也可能会有不同的产生方式,如签名密钥可能在客户端或RA中心产生,而加密密钥则需要在CA中心直接产生。
2)密钥备份和恢复
在一个PKI系统中,维护密钥对的备份至关重要,如果没有这种措施,当密钥丢失后,将意味着加密数据的完全丢失,对于- -些重要数据,这将是灾难性的。所以,密钥的备份和恢复也是PKI密钥管理中的重要一环。使用PKI的企业和组织必须能够得到确认:即使密钥丢失,受密钥加密保护的重要信息也必须能够恢复,并且不能让--个独立的个人完全控制最重要的主密钥,否则将引起严重后果。
企业级的PKI产品至少应该支持用于加密的安全密钥的存储、备份和恢复。密钥一般用密码进行保护,而密码丢失则是管理员最常见的安全疏漏之一。所以,PKI产品应该能够备份密钥,即使密码丢失,它也能够让用户在一定条件下恢复该密钥,并设置新的密码。
另外,使用PKI的企业也应该考虑所使用密钥的生命周期,包括密钥和证书的有效时间,以及已撤销密钥和证书的维护时间等。
3)密钥更新
每一个由CA颁发的证书都会有有效期,密钥对生命周期的长短由签发证书的CA中心来确定,各CA系统的证书有效期限有所不同,一般大约为2~3年。
当私钥被泄露或证书的有效期快到时,应该更新私钥。这时可以废除证书,产生新的密钥对,或者申请新的证书。
2.4.5、证书的使用
在实际应用中,为了验证信息的数字签名,首先必须获取信息发送者的公钥证书,以及一些额外需要的证书(如CA证书等,用于验证发送者证书的有效性)。证书的获取可以有多种方式,如发送者发送签名信息时附加发送自己的证书,或以另外的单独信息发送证书,或可以通过访问证书发布的目录服务器来获得,或直接从证书相关的实体处获得。在一个PKI体系中,可以采取某种或某几种.上述方式获得证书。
在电子商务系统中,证书的持有者可以是个人用户、企事业单位、商家、银行等。无论是电子商务中的哪一方,在使用证书验证数据时,都遵循同样的验证流程。一个完整的验证过程有以下几步:
- (1)验证者将客户端发来的数据解密。
- (2)将解密后的数据分解成原始数据、签名数据和客户证书三部分。
- (3)用CA根证书(CA的公钥)验证客户证书的签名完整性。
- (4)检查客户证书是否有效(当前时间在证书结构中的所定义的有效期内)。
- (5)检查客户证书是否作废。
- (6)验证客户证书结构中的证书用途。
- (7)用客户的证书(客户的公钥)验证原始数据的签名完整性。
如果以上各项均验证通过,则接受该数据。
2.4.6、PKI应用
PKI技术的广泛应用能满足人们对网络交易安全保障的需求。当然,作为一种基础设施,PKI的应用范围非常广泛,并且在不断发展之中,下面给出几个应用实例。
1)虚拟专用网络(VPN)
VPN是一种架构在公用通信基础设施上的专用数据通信网络,利用网络层安全协议(尤其是IPSec)和建立在PKI, 上的加密与签名技术获得机密性保护。基于PKI技术的IPSec协议现在已经成为架构VPN的基础,可以为路由器之间、防火墙之间或路由器和防火墙之间提供经过加密和认证的通信。虽然IPSec协议的实现会复杂一些,但其安全性比其他协议都完善得多。
2)安全电子邮件
随着Internet的持续增长,商业机构或政府机构都开始用电子邮件交换一些秘密的或是有商业价值的信息,这就引出了一些安全方面的问题,包括:消息和附件可以在不为通信双方所知的情况下被读取、篡改或截掉;发信人的身份无法确认。电子邮件的安全需求也是机密性.完整性、认证和不可否认性,而这些都可以利用PKI技术来获得。目前发展很快的安全电子邮件协议是S/ MIME (the secure multipurpose Internet mail extension),这是一个允许发送加密和有签名邮件的协议。该协议的实现需要依赖于PKI技术。
3) Web安全
为了透明地解决Web的安全问题,在两个实体进行通信之前,先要建立SSL连接,以此实现对应用层透明的安全通信。利用PKI技术,SSL协议允许在浏览器和服务器之间进行加密通信。此外服务器端和浏览器端通信时双方可以通过数字证书确认对方的身份。结合SSL协议和数字证书,PKI技术可以保证Web交易多方面的安全需求,使Web.上的交易和面对面的交易一样安全。
从目前的发展来说,PKI的范围非常广,而不仅仅局限于通常认为的CA机构,它还包括完整的安全策略和安全应用。因此,PKI的开发也从传统的身份认证到各种与应用相关的安全场合,如企业安全电子商务和政府的安全电子政务等。
另外,PKI的开发也从大型的认证机构到与企业或政府应用相关的中小型PKI系统发展,既保持了兼容性,又和特定的应用相关。