基于安全证书的PKI解决方案
2012-03-19杜丽萍刘宇
杜丽萍 刘宇
北京市科技情报研究所 北京 100044
0 引言
PKI是基于证书的密码认证架构,各国的网络密码认证都普遍采用PKI技术,PKI已经成为各国各行业网络密码认证的标准,在亚洲还成立了亚洲PKI联盟。但是,国际标准的PKI的CA认证中心全部证书,包括证书信任链中的各个证书,都是以明文形式存储在CA认证中心的的数据库里。仅仅依靠防火墙和防病毒系统很难保证CA认证中心证书的安全,CA认证中心证书以明文形式存储是PKI的重大安全隐患。黑客能够利用计算机病毒替换证书来攻击PKI。为此,我们提出一种使用加密卡(或加密机)硬件设备,将全部证书加密成密文,存储在CA认证中心的证书数据库中,保证证书的存储安全和运行安全,实现“芯片级”的PKI安全协议,提高PKI的安全等级。
1 基于安全证书的PKI实施方案
1.1 建立安全PKI架构
在CA认证中心的服务器或小型机的PCI槽里,插入多块加密卡,或将多台加密机与CA认证中心的服务器或小型机链接,并在加密卡或加密机的芯片里,预存非对称密码算法、对称密码算法、一组固定的存储密钥K,以及各种安全协议如:身份认证协议、签名验证协议和服务器端SSL协议等。在客户端的USB-KEY的芯片里存放对称密码算法、非对称密码算法、用户的私钥、身份认证协议、数字签名协议和客户机端SSL协议,以及对应USB-KEY设备的用户证书(最终实体证书)。
1.2 建立安全证书系统
在证书初始化过程中,先将CA认证中心的全体最终实体证书加密成密文存储,由于证书格式和内容是标准的X.500(或 X.509),若使用一组固定的对称密钥来加密全部用户的证书,则会造成重复报(是破译的重要条件),若用非对称密码算法加密,则运行速度较慢,非对称密码算法加解密速度若在计算机里运行,比对称密码算法加解密速度慢 100倍,若在芯片硬件里运行,比对称密码算法加解密速度慢1000倍,这会影响各种安全协议的速度。为此,我们提出由CA认证中心端的加密卡或加密机芯片里的随机数发生器来产生一次一变的随机数,作为对称密钥即:加密证书的密钥,一组密钥加密一组最终实体证书,一次一密,并将全体最终实体证书加密成密文,存储在CA认证中心端的证书数据库里,将各个中级证书和根证书存放在CA认证中心加密卡或加密机设备的芯片里。
证书加密及密钥管理方法:
在密钥初始化过程中,首先,通过调用CA认证中心加密卡或加密机芯片里的随机数发生器,在芯片里产生一组随机数,将该随机数作为存储密钥K,其中:存储密钥是固定不变的,存储密钥K用于对所有加密证书的密钥进行加密。
其次,再调用CA认证中心加密卡或加密机芯片里的随机数发生器,在芯片里产生一组随机数 L1,并将该随机数L1作为密钥K1,将CA认证中心证书数据库中的最终实体证书 CA1输入芯片里,在芯片里,使用密钥 K1将最终实体证书CA1加密成密文;在芯片里产生一组随机数L2,并将该随机数L2作为密钥K2,将CA认证中心证书数据库中的最终实体证书 CA2输入芯片里,在芯片里,使用密钥 K2将最终实体证书CA2加密成密文;……;在芯片里产生一组随机数Ln,并将该随机数n作为密钥Kn,将CA认证中心证书数据库中的最终实体证书CAn输入芯片里,在芯片里,使用密钥Kn将最终实体证书CAn加密成密文,其中:各个最终实体证书的序列号(证书的标识)Li,(i=1~n)不加密,证书序列号 Li用于检索定位证书CAi密文,密钥Ki(i=1~n),为加密证书的密钥,n为CA认证中心中全体最终实体证书的总数。
再次,将证书CA1、证书CA2、…… 证书CAn的密文从芯片里输出,存放在CA认证中心证书数据库中。
最后,在芯片里,使用存储密钥K分别将K1、K2、……Kn加密成密文,分别生成 K1’、K2’、……Kn’,再将K1’、K2’、……Kn’,分别存放在 CA认证中心证书数据库对应最终实体证书 CA1、CA2、……、CAn的密文记录的最后一个字段里。
1.3 建立CA认证中心的安全协议
PKI的安全协议如:身份认证协议、数字签名协议和SSL协议中,当CA认证中心端需要获取对应用户的最终实体证书时,根据客户端传输来的最终实体证书的序列号(标识),定位证书数据库中的最终实体证书记录的密文,并输入到CA认证中心加密卡或加密机的芯片里,在芯片里,用存储密钥K将最终实体证书对应的密钥密文Ki’(i=1~n)解密成明文即:Ki(i=1~n),再用Ki(i=1~n)来解密该最终实体证书得到其明文,之后,在芯片里再进行安全协议的其他操作,如:在身份认证协议中的其他操作包括:CA认证中心端加密系统,在芯片里调用对应用户最终实体CA证书的公钥,对客户端传来的用户最终实体 CA证书的密文进行解密获得明文,并与CA认证中心端存储的对应用户的最终实体CA证书明文进行比对认证,来判断客户端的用户是否可信;在数字签名协议中的其他操作包括:CA认证中心端加密系统,在芯片里调用对应用户最终实体CA证书的公钥,对客户端传来文件数字签名进行解密,获得文件的摘要信息即:“数字指纹1”,再用调用摘要算法,对文件进行摘要得到文件的摘要信息即:文件的“数字指纹2”,通过对比“数字指纹1”和“数字指纹 2”是否相同,来判别对文件进行签名的用户是否可信;在SSL协议中的其他操作包括:通过对比客户端和CA认证中心端的用户最终实体CA证书是否相同,完成双向认证后,再协商客户端和CA认证中心端的对称密码算法、及其版本和对称密钥,即:完成SSL协议的握手子协议,最后,执行SSL协议的记录子协议。从而,建立基于“芯片级”的PKI安全协议。
1.4 建立CA认证中心证书安全检测系统
在CA认证中心建立证书安全检测协议,定时对CA认证中心的全体信任链中的CA证书进行检测。其检测过程是,将CA认证中心证书数据库中全体最终实体CA证书,即:CA1、CA2、……、CAn的记录内容(包括:CAi的密文、证书标识、以及密钥密文 Ki’),依次输入加密卡或加密机的芯片里,在芯片里,调用存储密钥K,分别将加密最终实体证书CAi(i=1~n)的密钥密文Ki’(i=1~n),解密成明文即:Ki(i=1~n),再用 Ki(i=1~n)来解密对应的最终实体证书CAi(i=1~n)密文,获得其明文,之后,在芯片里,调用最下一级中级CA证书的公钥,对该已经解密成明文的最终实体证书CAi(i=1~n)进行签名验证,若没有通过签名验证的最终实体证书,则该最终实体证书CAi(i=1~n)视为已被篡改,若通过签名验证,则该最终实体证书CAi(i=1~n)未被篡改。从而,防止攻击者篡改CA证书,保证全部最终实体证书的安全、可信。
2 基于安全证书建立PKI的优势
在CA认证中心全部用户的最终实体证书都是以密文形式存储在证书数据库中,证书信任链上各中级证书和根证书存放在芯片硬件里,能保证认证中心全部最终实体证书、信任链上各个中级证书和根证书的存储安全,同时,保证 CA认证中心端的各种证书是可信的;即使攻击者想篡改用户的最终实体证书,但是,在无法获得加密证书的密钥的情况下,也无法将篡改后的最终实体证书加密成攻击者可用的密文,从而,防止攻击者通过篡改最终实体证书,来攻击CA认证中心的各种安全协议。
存放在CA认证中心加密卡或加密机芯片里的全体中级CA证书和根 CA证书,受到芯片硬件的保护,在第一次建立各个中级CA证书和根CA证书信任链时,在芯片里,对信任链上的各个中级CA证书和根CA证书进行验证,以后不再对信任链上的各个中级CA证书和根CA证书进行验证,也就是,当CA认证中心运行安全协议如:身份认证、签名验证和SSL协议时,各种安全协议不对证书信任链进行验证,即:不调用最下级中级证书对最终实体证书进行签名验证,也不调用上一级中级证书对下一级中级证书进行签名验证,也不用调用根证书对最上一级中级证书进行签名验证,从而,减少各种安全协议的部分环节,提高各安全协议的运行效率。
在CA认证中心端建立“芯片级”各种PKI安全协议(如:身份认证、签名验证和SSL协议),将各种PKI安全协议的各种环节都在芯片里完成,即:在芯片里,用存储密钥K解密密钥Ki’(i=1~n),生成密钥Ki(i=1~n),再用Ki(i=1~n)将最终实体证书密文解密成明文后,再进行安全协议的其他操作,从而,提高了PKI各种安全协议的安全等级。
在CA认证中心建立证书安全检测系统,定时对CA认证中心全体最终实体证书进行签名验证,检测CA认证中心的最终实体证书是否被篡改,以便及时对CA认证中心的最终实体证书进行恢复,保证CA认证中心各种安全协议能正常运行。
存储密钥K是在芯片里产生,用于对所有加密证书的密钥Ki(i=1~n)进行加密,存储密钥K存储在芯片里,且不输出芯片外,保证存储密钥K的存储和运行安全;加密证书的密钥 Ki(i=1~n)是在芯片里,由随机数发生器产生,在芯片里,对最终实体证书进行加密操作,且保证一组加密证书的密钥 Ki(i=1~n)加密一组最终实体证书,一次一密,不重复使用,加密证书的密钥 Ki(i=1~n)不出芯片,且在芯片里被存储密钥K加密成密文后,从芯片里输出存储在证书数据库里,从而,保证加密证书密钥的存储安全和运行安全。
在芯片里将CA认证中心,将海量的最终实体证书数据以密文的形式,存放在CA认证中心的证书数据库中,同时,将证书信任链上的全部中级证书和根证书,以明文形式存储在CA认证中心加密卡或加密机的芯片里,不仅,能保证海量最终实体证书,以及证书信任链上的全部中级证书和根证书重要的数据的存储安全,而且,能大大减少CA认证中心购置加密设备硬件的建设成本。
3 结束语
本方案通过对标准PKI的分析,指出了PKI的CA认证中心普遍存在的用户证书安全漏洞,阐述了攻击者能够利用PKI存在的安全漏洞,攻击CA认证中心的方法和过程,提出了在证书初始化阶段对 CA认证中心的全体最终实体 CA证书进行加密,并将信任链上的各个中级证书和根证书存放在芯片里,保证CA认证中心全体最终实体CA证书,以及信任链上的各个中级CA证书和根CA证书数据的安全存储,防止攻击者利用计算机病毒替换用户的最终实体CA证书,来对PKI进行“张冠李戴”式攻击,同时,建立对最终实体CA证书实时进行安全检查系统,保证PKI的各种安全协议能安全运行,另外,将CA认证中心各中安全协议的主要环节都在芯片里实现,从而,建立基于“芯片级”的安全协议,来保证CA认证中心的安全等级。
[1]龙毅宏.SSL证书被攻击、被假冒及服务被中止的风险分析——关于 SSL证书的研究分析报告.武汉理工大学信息工程院.2011.
[2]肖凌,李之棠.公开密钥基础设施(PKI)结构.计算机工程与应用.2002.
[3]刘知贵,杨立春,蒲洁,张霜.基于PKI技术的数字签名身份认证系统.计算机应用研究.2004.
[4]Carlisle Adams,Steve Lloyd,冯登国.公开密钥基础设施——概念、标准和实施. 2001.
[5]汪立东.PKI中几个安全问题的研究.计算机工程.2000.