数字证书互信互认技术探讨
2012-08-06张博朱璇高炽扬
张博 朱璇 高炽扬
中国软件评测中心电子认证实验室 北京 100048
0 引言
一般情况下,在一个应用系统中仅会使用一家CA颁发的数字证书。如果一个用户在多个或者多种应用系统中使用数字证书的话,那么该用户会有很多的数字证书。这就会给用户带来很多的麻烦,光是要记住在哪个应用系统中用哪个数字证书都会让某些人感到头痛,就更不用说能否及时发现某个数字证书丢失的问题了。
1 数字证书互信互认技术
解决证书互信互认问题主要有四种方式,下面分别对它们的优缺点进行分析。
1.1 基于根的互信互认技术
基于根(Root)的互信互认技术采用根CA模式(也叫做分级结构CA模式)来实现证书的互信互认,其特点是所有的用户都信任同一个根CA。在进行网上交易双方的身份认证时,交易双方互相提供自己的证书和数字签名,由CA来对证书进行有效性和真实性的认证。若一个持有由CA3颁发的证书2的用户甲要与由CA2颁发的证书4的用户乙进行安全通信,那么他们只要信任为这两家CA同时签名的根CA即可,如图1所示。
根CA模式由于其简单的结构和单向的可信任关系,具有4个优点:
(1) 根CA模式系统易于升级和增加新的认证域用户,因为只需要根CA与该认证域的CA建立信任关系。
图1 基于根CA模式示意图
(2) 证书路径由于其单向性,容易扩展,可生成从用户证书到可信任点的简单的、明确的路径。
(3) 证书路径相对较短。最长的路径等于树的深度加一:每个从属CA的证书路径加上用户的证书路径。
(4) 基于分级结构中的CA的位置,用户隐含地知道一个证书用于哪种应用。
根CA模式也有缺点。这是因为它依赖于一个单一的可信任点,即“根CA”。
(1) 存在单点故障和性能瓶颈。
(2) 构建一个单一的、共同的根CA最主要的问题是需要各个相关部门的共同努力与协调。
(3) 由一组彼此分离的CA过渡到根CA模式。
1.2 基于桥的互信互认技术
基于桥(Bridge)的互信互认技术采用桥接CA(也叫桥CA)
体系结构(参见图2),该结构被设计成用来克服根CA模式的缺点和连接不同结构的PKI系统。桥CA不直接向用户发放证书。而且,桥CA不作为一个可信任点,供PKI中的用户使用,这一点不同于根CA模式中的根CA。
图2 桥CA模式
与根CA模式相比,桥CA模式的优点在于:
(1) 证书路径的发现变得较为容易。用户清楚地知道他们到桥CA的路径,从而只需确定从桥CA到用户证书的证书路径。
(2) 桥CA模式的PKI系统的分散化特性更精确地代表了现实世界中的证书机构的关系。
(3) 桥CA模式更适合链接不同结构的PKI体系。
基于桥CA的PKI系统的另一个技术挑战是如何获取证书和证书状态信息。在有效的PKI系统中,用户必须容易地获取CA证书和用户证书,以及通过一种分发机制获得相应的状态信息。 在存在多种分发机制的PKI系统中,用户端的应用,需要支持多种检索协议来搜寻所需要的信息。因此我们需要开发一些技术用于发现和验证复杂的证书路径,处理不同的PKI信息分发机制。
2 基于交叉认证的互信互认技术
基于交叉认证(Cross Certification)的互信互认技术是通过CA之间互相签发交叉证书的方式来实现互信互认的。为交叉认证而签发的证书称为交叉证书(Cross Certificate)。从类型上,交叉认证可以细分为双向交叉认证(如图3所示)和单向交叉认证(如图4所示)。
图3 双向交叉认证技术
图4 单向交叉认证技术
如图3所示,CA3和CA4都向对方签署了交叉证书(红色的双向箭头表示签署交叉证书),于是CA3和CA4都承认证书1、证书2、证书3和证书4的合法性,也即上述4个证书可以互信互认。如图4所示,CA5向CA4签署了交叉证书而CA4并未向CA5签署交叉证书,于是在部署CA5证书链的应用系统中证书3、证书4、证书5和证书6可以互信互认,而在部署CA4证书链且没有部署CA5证书链的应用系统中证书5和证书6不可以与证书3或者证书4实现互信互认。
交叉认证方式的优点是适于少数CA间的证书实现互信互认,而参加基于交叉认证方式CA的证书策略还不能太复杂。
交叉认证方式的缺点在于:
(1) 不适合实现数量多的CA间证书的互信互认。当需要实现互信互认的证书是来自较多家CA的时候,需要签发的交叉证书的数量会呈现出指数级别的增长。表1给出了CA数量与需要签发的交叉证书数量,表中的公式P(m)(n)是排列组合中的公式,由于m取2所以P(2)(n)=n(n-1)。当参加互认的CA达到32个时,需要签发的交叉证书就达到了992张。需要进一步说明的是,表1中的公式仅适用于只有一种证书策略的CA。
表1 CA数量与需要签发的交叉证书数量表
(2) 不适合实现策略复杂的CA间证书的互信互认。如果参加互信互认的CA有多个策略的话,还要考虑策略映射的问题。对于CA来讲,不同的证书策略对应着不同安全措施,同时也对应着不同的赔付额度。一般情况下,不同CA的赔付额度也是不同的。从理论讲,实现不同CA所颁发的不同证书策略的映射是可能的。然而,得到让很多CA都妥协(几乎不可能是满意)的策略映射方案的难度是可想而知的。阻力不仅来源于兼容已经颁发证书等技术问题,更来自证书定价等经济问题。
3 基于列表的互信互认技术
基于列表的互信互认技术通过公布CA的列表来表明列表中CA颁发的证书可以实现互信互认。除了公布CA名称等自然信息外,还可以公布CA的公钥证书,以便用户对CA的数字签名进行验证。
工业和信息化部在其网站上公布的获得《电子认证服务许可证》CA的名单就是一种列表。国家密码管理局在其网站上公布的获得《电子认证服务使用密码许可证》的CA(也即电子认证服务使用密码许可单位)名单也可以被看作是一种列表。微软公司的根证书计划(Root Certificate Program)同样是一种列表,进入该列表的CA所颁发的证书能够在IE浏览器上被正确的识别出来。工信部和国密局的列表没有给出CA的公钥证书,而微软却将进入根证书计划CA的公钥证书嵌入在IE浏览器中(如图5所示)。
基于列表技术的优点在于实现简单、方便,证书的依赖方和应用系统都不用进行太多的改动就可以兼容列表方式。基于列表技术的缺点是相对简单,对用户的客户端应用程序要求较高。为了实现某种功能,大致是需要一些工作的。如果CA和应用系统要做的工作少,那么用户的应用程序要做的工作就会稍微多一些。
图5 IE浏览器中嵌入的根证书列表
4 四种互信互认技术比较
这里通过一张表格将上面叙述的四种证书互信互认技术进行对比(参见表2),以便能够更加清楚地看到四种技术的优点和缺点。
表2 四种互信互认技术比较
续表
5 总结和讨论
对于CA来讲,虽然从表面上和短期来看,数字证书互信互认会让用户手中的证书减少,进而减少CA能够发放证书的数量,也即减少了CA的利润。但是,如果我们从宏观和全局的角度上来看就会发现:目前数字证书这种身份方式的应用面还未全面渗透入人们生活的方方面面。为什么?易用性差和用户体验差是两个主要的原因。而数字证书的互信互认一定会推动数字证书这种身份认证方式的易用性并大大改进用户体验,从而反过来推动数字证书的应用推广,进而增加CA的利润。
从对四种互认技术的比较中,我们可以看出,目前我国CA的技术水平比较适合采用基于列表的证书互信互认技术。综上所述,笔者认为在证书互信互认方面应该采取基于列表的证书互信互认策略,并增强在证书验证及证书链部署等方面的相关技术支持。
[1] http://xxaqs.miit.gov.cn/n11293472/n11505629/n11506629/n119 67886/n11967946/12432542.html.
[2] http://xxaqs.miit.gov.cn/n11293472/n11295344/n11296947/1471 8564.html.