PKI技术初探
2014-04-21石飞
摘 要 对PKI的一些原理、内容和功能、CA以及在PKI开发中需要了解的关键问题等进行分析。
关键词 PKI;CA;密钥;证书
中图分类号:TP399 文献标识码:A 文章编号:1671-7597(2014)03-0094-02
1 PKI简介
在现实世界中,人们通过网络进行通信和消费,于是安全机制问题就出现了,如何识别信息传输的过程中信息是否是完整的,如何识别信息传输过程中信息是否是真实的,如何保证信息传输过程中重要信息不被其他人窃取,为了解决这些接踵而来的问题,我们需要建立一种网络的安全体系。主要有以下几个方面。
1)简单的识别。
2)最终用户的完全暴露。
3)整体的安全保障。
最近几年,许多新的安全规范以及安全技术涌现出来,PKI(公开密钥基础设施)就是这时候被提出来的。它在大规模网络中通信的安全问题是通过实现公钥分配而解决的。PKI(公开密钥基础设施)是在一个现代密码学理论与技术的基础上,创建,管理,分发和以公钥证书为基础的公钥密码体制,包含硬件,软件,策略和过程。它的目的是实现信息安全风险控制,提供安全控制机制,并针对网络用户的安全需求,提供诸如信息的完整性、信息的保密性、身份认证等各种不同的安全服务。PKI已经成为网络安全体系结构的核心部分。安全电子邮件,Web访问,VPN和简单的用户登录认证系统的标准协议大部分都利用公钥证书。
2 PKI的原理
在传统的单密钥加密技术中,加密和解密密钥是一致的,所以在与合作伙伴进行信息交流时,首先要保证必须交换的加密或解密密钥是非常安全的。单钥密码体制是安全的数据传输的一个很好的解决方案,但是它有其致命弱点,就是密钥互换问题。单钥密码体制中密钥的管理和分配是无法完美解决的。因此我们知道单钥体制不能保证信息的不可抵赖性。而从技术上解决了这个问题的理论就是公钥理论。公开密钥体制的加密和解密的密钥是不相同的,并且很难从一个推断出另外一个。这是公共密钥加密技术的最基本的特征。它使用加密密钥将明文转变成密文,这一过程是单向的,加密和解密过程相互独立;解密时我们将需要使用一个解密密钥将密文解密成明文,加密密钥和加密密钥是互不相同的。因此,在公共密钥加密技术中,每个用户分别拥有一对由公钥和私钥组成的密钥组。公钥被对外公开,所以当你收到别人发送的用你的公钥加密过的信息,只是用你的私钥解密就可以看到具体内容。同样的,当你把用你自己的私人密钥加密的数据发送给他人,他就可以用你的公钥来验证数据是否正确来自于你,这就是数据签名。
3 PKI系统的具体内容和功能
PKI系统一般由五个部分构成。第一部分是CA,主要功能是颁发和吊销证书;第二部分是RA,主要功能是身份信息审核并绑定身份信息和公开密钥;第三部分是持有证书者,是指获得并使用证书的机器、软件和人;第四部分是程序,主要功能是通过使用最终用户的密钥和证书来提供签名以及加密等服务;第五部分是存储,主要功能是保存证书和证书吊销列表。
PKI系统能够实现以下的功能。
1)注册功能:如果用户想要申请证书,那么他需要将自己的用户信息提交给CA,CA证书的操作规程制定了需要提交的信息内容。
2)认证功能。认证功能需要给用户颁发含有用户公钥的证书,并且将这个含有公钥的证书发布到相应的证书库。
3)对密钥进行恢复,用户密钥在某些PKI系统中需要进行安全备份,因为最终用户的密钥如果丢失,CA的系统就可以应用备份的用户密钥对其进行恢复进而对已加密的数据进行解密。恢复功能如果是必须的,那么所有最终用户解密私钥都是需要被备份的。
4)密钥生成,有两种方式:一是由负责该用户的密钥的CA生成,然后对其进行加密后发送给最终用户,文件可以被存储在一个物理介质上给最终用户;二是生成一对本地计算机环境中的最终用户的密钥,然后发送到CA,并且签发证书。
5)更新密钥,与它相关的所有密钥和证书应定期更新。更新密钥和证书一般有以下两方面原因,一是现有证书已过期;二是用户的私有密钥被其他原因破坏。
6)交叉认证功能,该功能是使受信任的域用户CA证书可以通过另一个不同信任域信任的CA发放的证书,在这个过程中,需要包括当前CA签发的的另一个CA的证书(交叉验证),该证书包含了另一个CA的签名证书的公钥。
7)证书吊销功能,证书将持续有效直至其有效期。但是,总会有意外发生,那么,该证书就可能需要被取消,比如用户的名字进行了更改,或者相应的工作人员已经被调离,或者用户私钥被泄露。根据X.509标准,我们是使用一个CRL(证书撤销列表)对证书吊销。CRL的发布需要选择最适当的时间间隔。当证书已被撤销,如果不及时进行新的CRL发布或CRL立即释放,但最终用户没有看到,我们仍然不能保证安全。
4 认证中心(CA)
认证中心(CA)是PKI的核心实施者。认证中心(CA)对主体的公共密钥和主体的其他属性做签名形成公钥证书,其将主体的其他属性和公钥与主体的身份进行绑定,几个主体之间的信任也是基于属性和公钥的信任。通常在实际网络环境中有多个认证中心(CA),所以我们总结出两种传统的PKI信任模型,它们是网状模型和层次模型。在网状模型中,每两个CA彼此认证,形成了一个等同的信任关系。用户通过从附近的CA认证路径找到被验证证书的认证路径,就可以实现验证此证书。在层次模型中,每个用户都知道根CA的公钥证书。并且只有一个根CA,于是只要找到一个路径从根CA到此证书,就可以实现验证此证书。
实际上,PKI的CA具有它的安全限制性。
1)PKI CA没有用户身份认证。我们通过对CA证书认证机制进行分析,发现身份认证只是验证CA证书的合法性和有效性,而不是对一个用户进行身份判断,只可以控制用户是否有权限进入一个系统,而不是更多的访问控制。
2)仅仅依靠CA证书认证机制不能确定是否该用户是合法持有证书的用户。因为数字证书颁发的CA是开放的,数字证书在传输过程中通过网络发送给对方,因此其他人可以通过直接在CA服务器下载、网络监听获得证书,对商业系统进行未经授权的访问。因此,非信息主管人员必须对PKI CA的功能有一个清醒的认知。
5 在PKI开发中需要了解的关键问题
为了实现PKI系统,我们就必须要实现加密,证书管理,可靠的服务,目录管理四个部分。
1)加密服务:包括执行加密和摘要算法。该算法需要MD5,SHA1的支持,签名算法需要支持RSA,DSA,密钥交换算法需要支持DH。使用它们之间的不同组合来实现数字签名。
2)证书管理:我们把它分为底层证书数据处理和高层证书的业务流程两个方面。
3)可靠的传输服务,我们通过使用SSL实现PKI操作和管理信息传输的可靠性。并且可以直接使用Linux OpenSSL软件包提供的API。
4)目录服务,我们可以通过LDAP服务器软件进行证书的实现和发布以及获取CRL。
参考文献
[1]梅颖.PKI信任模型比较分析[J].湖北师范学院学报,2010(01).
[2]高放.基于PKI的CA系统的设计与实现[D].东北大学,2009.
[3]胡军,等.基于PKI的CA认证系统信任模型的研究[J].网络安全技术与应用,2010(03).
作者简介
石飞,讲师,计算机软件硕士,毕业于辽宁大学。endprint