本站支持IPv6

菜单导航
产品介绍
解决方案
信息安全服务
下载专区
服务支持
旗下品牌
解决方案
金融篇
电子商务篇
移动篇
企业信息化篇
信息安全基础篇
电子政务篇
电子数据司法实践
旗下品牌
旗下品牌

关于信任模型与交叉认证

字号:

  本篇文章介绍建立信任关系的概念,在此基础上解决不同PKI(公钥基础设施)的互联互通,即交叉认证,也就是通常所说的证书信任传递问题。

  多个认证机构之间的信任关系必须保证所有的PKI用户不必依赖和信任唯一的认证机构CA(Certificate Authority),否则无法扩展和互通。我们的目的是确保一个认证机构所签发的身份证明能够被另一个认证机构的依赖方所信任。

  所谓信任模型就是提供了一个建立和管理信任关系的框架。在公钥基础设施中,当两个认证机构中的一方给对方的公钥或双方相互给对方的公钥颁发证书时,两者间就建立了这种信任关系。信任模型描述了如何建立不同认证机构之间的认证路径以及寻找和遍历信任路径的那些规则。

  信任模型的建立和交叉认证的实现是非常重要的。要实现电子商务或网上银行的跨行交易,就必须在全国甚至全世界范围内建立可信的身份,由许多不同的可信的PKI域来证明全球各种人的身份。我们暂且不说B2C上亿数量的百姓身份认证工作量,就只考虑B2B公司中的证书用户,那也需要几万个PKI信任域及潜在的数百万个身份打交道。这就导致了在大量人群中建立信任关系的必要性和建立信任关系时要保持较少的中间人的要求之间产生了一种矛盾,PKI域的互联互通,使得在大量人群中间建立可信身份变得容易了。这种多个PKI中实体的互认,是借助于证书的信任传递所完成的。

  信任模型有很多结构,如层次信任模型、网状信任模型、信任列表、桥接模型(既混合模型)等等,在众多的这些模型中,层次模型是应用得比较多的模型,因为它有很多优点,特别是适合完全中国金融界实际情况,本篇主要讲层次模型。

  1、认证机构的严格层次结构

  定义:

  认证机构CA的严格层次结构可以描绘为一棵倒置的树,树根在顶上,树枝向下伸展,树叶在最下面的末端。在这棵倒置的树上,根代表一个对整个PKI域内的所有实体都具有特别意义的CA,通常被称作根CA,把它作为信任的根或称“信任锚”。在根CA的下面是零层或多层的中间CA,因为是属于根的,也称作子CA,子CA可作为中间节点,再伸出分支,最后是树的叶子,被称作终端实体或称为终端用户。

  倒置大树的根,作为树结构的始点,它不仅是网络、通讯或子结构的始点,它还是信任的始点。在这个系统中的所有的实体(包括终端实体和所有的子CA)都以根CA的公钥作为他们信任的锚,即他们对所有证书决策的信任始点或终点。其结构如图一所示:

关于信任模型与交叉认证

  图一:严格层次结构CA

  (2)建立规则

  在这个模型中,层次结构中的所有实体都信任唯一的根CA。根CA对直接在它下面的CA的认证是为其创建和签发根证书;

  这些CA中的每一个都认证零个或多个直接接在它下面的CA;最后一层CA认证终端实体。

  在该层次结构中的每个实体,包括中介CA和终端实体,都必须拥有根的公钥。该公钥的安装是这个模型中所进行的通讯处理的基础。因此,必须通过一种安全的带外方式来完成。

  在多层的严格层次结构中,终端实体被直接在其上面的CA所认证(即颁发证书)对于那些浅层次结构,对其所有的终端实体来说根和证书的颁布者是相同的。

  (3)终端实体的认证过程

  一个持有可信根CA公钥的终端实体甲,可以通过以下过程检验另一个终端实体乙的证书。假设乙的证书是由CA2签发的,而CA2的证书是由CA1签发的,CA1的证书是由CA签发的。

  因为甲拥有根CA的公钥KR,所以能够验证CA1的公钥K1,因此可以提取出可信的CA1的公钥。然后,这个公钥可以被用作验证CA2的公钥,类似的就可以得到CA2的可信公钥K2,公钥K2就能够来验证乙的证书,从而得到乙的可信公钥K乙。甲现在即可根据乙的密钥类型是加密密钥或是签名密钥,来使用密钥K乙.

  2、下属层次信任模型

  (1)定义:

  下属层次模型与通用层次模型有所区别,下属层次模型是通用层次模型的子集通用层次模型允许双向信任关系,而下属层次模型只是单向证明下一层的下属CA。在下属层次模型中,根CA具有特殊意义,它被任命为所有终端用户公共信任锚。根据定义它是最可信的证书权威,所有其他信任关系都源于它。

  在模型中,只有上级CA可以给下级CA发证,而下级CA不能反过来为上级CA发证,来证明上级CA。如图二所示

关于信任模型与交叉认证

  图二.下属层次信任模型

  (2)根证书

  由于在模型中根CA是唯一的信任锚,且信任关系是从最可信的CA建立起来的,所以没有别的认证机构可以为根CA颁发证书。根CA给自己颁发一个自签的CA,这样证书主体和证书颁发者就是相同的。在证书中证明的公钥与用于证书签名的私钥是相对应的。

  根CA作为惟一指定的信任锚,该根证书必须分发给所有的证书用户,因为在模型中,所有路径必须包括根证书,所以,根CA的密钥非常重要,一旦泄露,对整个信任模型都将产生灾难性的后果。

  但是,在此模型中根CA本身很少用到,因为根CA的主要工作是证明下属CA的身份,这种事是很少进行的。一般颁布证书的CA都设置一个证书库,即目录服务器供用户随时访问,这样信任模型中的用户就很少与根CA直接打交道。结果是根CA大部分时间可以离线运作,把签名私钥放在硬件模块中安全地保护起来。

  (3)特点

  下属层次结构,所有证书路径都在根CA证书处终止,所以只有通向根CA的证书路径才需要遍查和验证,并不需要建立或验证从根CA到证书用户CA的反路径。证书路径比通用层次模型缩短了一半。

  如图三所示:

关于信任模型与交叉认证

  图三.下属层次模型证书认证路径

  图中根CA为自己自签名颁发了根证书,然后为用户CA签发证书,用户CA为最终用户签发了证书。

  其中粗线为证书认证路径,用户证书签发者名称为用户CA证书的主体名;用户CA证书的签发者名称为根CA证书的主体名称;根CA证书的签发者名称为根CA自己的主体名称,即自签证书,到达了信任的终点。

  下属层次结构模型在支持严格层次结构的环境中使用最为有效。

  美国国防部采用了下属层次模型支持防御系统(DMS),因为美国国防部的组织结构本身就是层次型的。

  严格下属层次结构另一个著名应用是因特网增强保密电子邮件PEM。

  PEM引入了称为名称从属关系的概念,名称从属关系允许一个待证明的CA只能在一个从属于自己名字的X.500完整名字空间的受限子集中颁发证书(子树)。

  例如:在RSA公司中,一个工程(engineering)CA可能有如下X.500名字:{Country=us,Organigation=SRA Security,Organizational Unit=Engineering}.

  按照名字从属规则颁发的所有证书都要有一个以CA的X.500名字为前缀的主体名字。于是工程CA不能颁发在主体名字中暗含ou=marketing的证书。

  {Country=us,Organization=SRASecurity,Organizational Unit=Marketing}。

  解决这一问题的办法,可以用直接交叉认证。称“直接交叉认证链接”。

  3、层次PKI应用举例 加拿大政府PKI/CA层次结构

  (1)结构

  加拿大政府PKI体系是由若干个CA所组成,这些CA组成层次结构(即树状结构)。如图五所示

  PKI/CA的最上层是政策管理机构(PMA),第二层是中央认证机构(CCF),第三层是一级CA,第四层是本地注册机构(LRA)。

  其中,PMA是一个若干部门共同组成的机构,由加拿大政府财政部秘书处领导,为政府PKI体系提供全面的政策指导,负责监督和管理加拿大政府PKI体系的政策和实施情况。

  CCF是中央认证机构,它实施政府PKI体系中的所有策略,签署和管理与一级CA与一级CA交叉认证的证书。

  一级CA是由政府营运 ,制定一个或多个证书担保的等级,颁发和管理数字证书,定期颁发证书注销黑名单。

  LRA是一级CA设置的认证申请注册登记机构,其职责是认证和鉴别申请者的身份,为密钥匙恢复或证书恢复申请进行审批,接受并审批证书的注销请求。

  (2)特点

  加拿大政府PKI体系是一个完全政府行为的公开密钥体系结构,充分考虑了交易的保密性和安全性,亦将其列为信息高速公路的首要问题;

  因体系为树状结构,查询信任关系更加快捷,建立信任关系也更加容易,只需要与相应的一级进行交叉认证即可;

  树状结构,结构简单,中央认证机构是一个根CA;各信任域之间建立信任关系必须经过中央认证机构;

  证书路径由于其单向性,容易扩展,可生成从用户证书到可信任点的简单的、明确的认证路径;亦且证书路径较短,最长的等于树的深度加1;

  层次结构中使用的证书可以比树状结构中使用的证书更少。更简单。

  层次结构PKI的缺点:

  由于依赖于一个单一的信任起点,安全性集中,信任“锚”的安全削弱使得整体PKI系统安全削弱。根CA出故障会影响全局。

  只适用于严格层次结构的组织,不适合组织关系比较复杂的情况。对于那些已有多个根CA的情况下,构建一个单一的,共同的根CA来统一所有的CA,形成一个层次结构,有一定的难度,要对原有CA进行改造。

关于信任模型与交叉认证

   图四,加拿大政府PKI体系

  4、证书链的认证实例

  所谓的证书链的认证,是想通过证书链追溯到可信赖的CA的根(ROOT)。换句话说,要验证签发用户实体证书的CA是否是权威可信的CA,如:CFCA。证书链验证的要求是:路径中每个证书从最终实体到根证书都是有效的,并且每个证书都要正确地对应发行该证书的权威可信任性CA。操作表达式为:Ap.A《B》B《C》,它指出该操作使用A的公钥,从B的证书中获得B的公钥Bp,然后再通过Bp来解封C的证书。操作的最终结果得到了C的公钥Cp。这就是一个证书链的认证拆封过程。

  从用户实体证书到ROOT CA的证书链确认,其具体的做法如表1所示。

关于信任模型与交叉认证

  表1 证书对比与验证

  从以上对比中可以看出:用户实体证书中的AuthorityKeyIdentifier扩展项CertIssuer,即证书签发者的甄别名,应当与CA证书中签发此证书的CA名称相匹配,如表中箭头所指。即CA证书中的Subject Name是用户实体证书中Issuer Name的父名,对上级CA来说又成为子名,CA证书中Issuer Name是上一级CA的名字,成为可信任的链状结构。这样通过各级实体证书的验证,逐渐上溯追逆到链的终止点——可信任的CA,如CFCA的Root CA。