物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  其他  >  正文

PKI技术专题:3、PKI系统的常用信任模型

作者:周瑞辉 冯登国
来源:RFID世界网
日期:2005-08-01 10:18:28
摘要:PKI技术专题:3、PKI系统的常用信任模型

  选择信任模型(Trust Model)是构筑和运作PKI所必需的一个环节。选择正确的信任模型以及与它相应的安全级别是非常重要的,同时也是部署PKI所要做的较早和基本的决策之一。
  信任模型主要阐述了以下几个问题:
  ● 一个PKI用户能够信任的证书是怎样被确定的?
  ● 这种信任是怎样被建立的?
  ● 在一定的环境下,这种信任如何被控制?
  为了进一步说明信任模型,我们首先需要阐明信任的概念。每个人对术语信任(Trust)的理解并不完全相同,在这里我们只简单地叙述在ITU-T推荐标准X.509 规范(X.509,Section3.3.23)中给出的定义:Entity A trusts entity B when Aassumes that B will behave exactly as A expects。如果翻译成中文,这段话的意思是:当实体A假定实体B严格地按A所期望的那样行动,则A信任B。从这个定义可以看出,信任涉及假设、期望和行为,这意味着信任是不可能被定量测量的,信任是与风险相联系的并且信任的建立不可能总是全自动的。在PKI中,我们可以把这个定义具体化为:如果一个用户假定CA可以把任一公钥绑定到某个实体上,则他信任该CA。
  本文将介绍目前常用的四种信任模型:认证机构的严格层次结构模型(Strict Hierarchy of Certification Authorities Model)、分布式信任结构模型(Distributed Trust Architecture Model)、Web模型(Web Model)和以用户为中心的信任模型(User-Centric Trust Model)。


  认证机构的严格层次结构模型
  认证机构(CA)的严格层次结构可以被描绘为一棵倒转的树,根在顶上,树枝向下伸展,树叶在下面。在这棵倒转的树上,根代表一个对整个PKI系统的所有实体都有特别意义的CA——通常叫做根CA(root CA),它充当信任的根或信任锚(trust anchor)——也就是认证的起点或终点。在根CA的下面是零层或多层中介CA(intermediate CA),也被称作子CA(subordinate CA),因为它们从属于根CA。子CA用中间节点表示,从中间节点再伸出分支。与非CA的PKI实体相对应的树叶通常被称作终端实体(end-entities)或被称作终端用户(end-users)。在这个模型中,层次结构中的所有实体都信任唯一的根CA。这个层次结构按如下规则建立:
  * 根CA认证(更准确地说是创立和签署证书)直接连接在它下面的CA。
  * 每个CA都认证零个或多个直接连接在它下面的CA。(注意:在一些认证机构的严格层次结构中,上层的CA既可以认证其他CA也可以认证终端实体。虽然在现有的PKI标准中并没有排除这一点,但是在文献中层次结构往往都是假设一个给定的CA要么认证终端实体要么认证其他CA,但不能两者都认证。我们将遵循这个惯例,但不应该认为这是有限制的。)
  * 倒数第二层的CA认证终端实体。
  在认证机构的严格层次结构中,每个实体(包括中介CA和终端实体)都必须拥有根CA的公钥,该公钥的安装是在这个模型中为随后进行的所有通信进行证书处理的基础。因此,它必须通过一种安全的方式来完成。例如,一个实体可以通过物理途径如信件或电话来取得这个密钥;也可以选择通过电子方式取得该密钥,然后再通过其他机制来确认它,如将密钥的散列结果(有时被称作密钥的指纹 )用信件发送、公布在报纸上或者通过电话告之。


  值得注意的是,在一个多层的严格层次结构中,终端实体直接被其上层的CA认证(也就是颁发证书),但是它们的信任锚是另一个不同的CA(根CA)。如果是没有子CA的浅层次结构,则对所有终端实体来说,根和证书颁发者是相同的。这种层次结构被称作可信颁发者层次结构(trusted-issuer hierarchies)。
  这里有一个例子,说明在认证机构的严格层次结构模型中进行认证的过程。一个持有根CA公钥的终端实体A可以通过下述方法检验另一个终端实体B的证书。假设B的证书是由CA2签发的,而CA2的证书是由CA1签发的,CA1的证书又是由根CA签发的。A(拥有根CA的公钥KR)能够验证CA1的公钥K1,因此它可以提取出可信的CA1的公钥。然后,这个公钥可以被用作验证CA2的公钥,类似地就可以得到CA2的可信公钥K2。公钥K2能够被用来验证B的证书,从而得到B的可信公钥KB。A现在就可以根据密钥的类型来使用密钥KB,如对发给B的消息加密或者用来验证据称是B的数字签名,从而实现A和B之间的安全通信。


  分布式信任结构模型
  与在PKI系统中的所有实体都信任唯一一个CA的严格层次结构相反,分布式信任结构把信任分散在两个或多个CA上。也就是说,A把CA1作为他的信任锚,而B可以把CA2做为他的信任锚。因为这些CA都作为信任锚,因此相应的CA必须是整个PKI系统的一个子集所构成的严格层次结构的根CA(CA1是包括A在内的严格层次结构的根,CA2是包括B在内的严格层次结构的根)。
  如果这些严格层次结构都是可信颁发者层次结构,那么该总体结构被称作完全同位体结构(fully peered architecture),因为所有的CA实际上都是相互独立的同位体(在这个结构中没有子CA)。另一方面,如果所有的严格层次结构都是多层结构(multi-level hierarchy),那么最终的结构就被叫做满树结构(fully treed architecture)。(注意,根CA之间是同位体,但是每个根又是一个或多个子CA的上级。)混合结构(hybrid treed architecture)也是可能的(具有若干个可信颁发者层次结构和若干个多层树型结构)。一般说来,完全同位体结构部署在某个组织内部,而满树结构和混合结构则是在原来相互独立的PKI系统之间进行互联的结果。尽管PKI网络(PKI networking)一词用得越来越多(特别是对满树结构和混合结构),但是同位体根CA(peer root CA)的互连过程通常被称为交叉认证(cross-certification)。


  Web模型
  Web模型是在环球网(World Wide Web)上诞生的,而且依赖于流行的浏览器,如Netscape 公司的Navigator和Microsoft公司的Internet Explorer。在这种模型中,许多CA的公钥被预装在标准的浏览器上。这些公钥确定了一组浏览器用户最初信任的CA。尽管这组根密钥可以被用户修改,然而几乎没有普通用户对于PKI和安全问题能精通到可以进行这种修改的程度。
  初看之下,这种模型似乎与分布式信任结构模型相似,但从根本上讲,它更类似于认证机构的严格层次结构模型。因为在实际上,浏览器厂商起到了根CA的作用,而与被嵌入的密钥相对应的CA就是它所认证的CA,当然这种认证并不是通过颁发证书实现的,而只是物理地把CA的密钥嵌入浏览器。

  Web模型在方便性和简单互操作性方面有明显的优势,但是也存在许多安全隐患。例如,因为浏览器的用户自动地信任预安装的所有公钥,所以即使这些根CA中有一个是坏的(例如,该CA从没有认真核实被认证的实体),安全性将被完全破坏。A将相信任何声称是B的证书都是B的合法证书,即使它实际上只是由其公钥嵌入浏览器中的CAbad签署的挂在B名下的C的公钥。所以,A就可能无意间向C透露机密或接受C伪造的数字签名。这种假冒能够成功的原因是:A一般不知道收到的证书是由哪一个根密钥验证的。在嵌入到其浏览器中的多个根密钥中,A可能只认可所给出的一些CA,但并不了解其他CA。然而在Web模型中,A的软件平等而无任何疑问地信任这些CA,并接受它们中任何一个签署的证书。


  当然,在其他信任模型中也可能出现类似情况。例如,在分布式信任结构模型中,A或许不能认可一个特定的CA,但是其软件在相关的交叉认证是有效的情况下,却会信任该CA所签署的证书。在分布式信任结构中, A在PKI 安全方面明确地相信其局部CA做正确的事,例如,与可信的其他CA进行交叉认证等。而在Web模型中,A通常是因为与安全无关的原因而取得浏览器的,因此,从他的安全观点来看,没有任何理由相信这个浏览器是在信任正确的CA。


  另外一个潜在的安全隐患是没有实用的机制来撤销嵌入到浏览器中的根密钥。如果发现一个根密钥是坏的(就像前面所讨论的那样)或者与根的公钥相应的私钥被泄密了,要使全世界数百万个浏览器都自动地废止该密钥的使用是不可能的,这是因为无法保证通报的报文能到达所有的浏览器,而且即使报文到达了浏览器,浏览器也没有处理该报文的功能。因此,从浏览器中去除坏密钥需要全世界的每个用户都同时采取明确的动作;否则,一些用户将是安全的而其他用户仍处于危险之中。但是这样一个全世界范围内的同时动作是不可能实现的。
  最后,该模型还缺少有效的方法在CA和用户之间建立合法协议,该协议的目的是使CA和用户共同承担责任。因为,浏览器可以自由地从不同站点下载,也可以预装在操作系统中;CA不知道(也无法确定)它的用户是谁,并且一般用户对PKI也缺乏足够的了解,因此不会主动与CA直接接触。这样,所有的责任最终或许都会由用户承担。
  以用户为中心的信任模型
  在以用户为中心的信任模型中,每个用户自己决定信任哪些证书。通常,用户的最初信任对象包括用户的朋友、家人或同事,但是否信任某证书则被许多因素所左右。


  著名的安全软件Pretty Good Privacy(PGP)最能说明以用户为中心的信任模型。在PGP中,一个用户通过担当CA(签署其他实体的公钥)并使其公钥被其他人所认证来建立(或参加)所谓的信任网(web of trust)。例如,当Alice收到一个据称属于Bob的证书时,她将发现这个证书是由她不认识的David签署的,但是David的证书是由她认识并且信任的Catherine签署的。在这种情况下,Alice可以决定信任Bob的密钥(即信任从Catherine到David再到Bob的密钥链),也可以决定不信任Bob的密钥(认为未知的 Bob与已知的Catherine之间的距离太远)。
  因为要依赖于用户自身的行为和决策能力,因此以用户为中心的模型在技术水平较高和利害关系高度一致的群体中是可行的,但是在一般的群体(它的许多用户有极少或者没有安全及PKI的概念)中是不现实的。而且,这种模型一般不适合用在贸易、金融或政府环境中,因为在这些环境下,通常希望或需要对用户的信任实行某种控制,显然这样的信任策略在以用户为中心的模型中是不可能实现的。
  以上介绍的是目前比较流行的四种信任模型,重点强调了它们的相似点和差别,希望对读者更深刻地理解PKI及其他信息安全概念有所帮助。 

RFID世界网公众号

为业界提供实时、全面、高质量的RFID行业新闻、方案、案例与技术资讯与深度报道,打造全球权威的RFID产业中文信息门户!

扫码立即关注公众号,每日推送RFID新闻