任何一个安全系统都建立在信任的基础之上的。在系统的用户之间,这种信任可能表现为不同的形式。总的来说,不同形式的信任能解决不同的问题,减少某种情况下的冒险。采取哪一种形式的信任大多取决于合作方式。
    在网络环境下,用户需要了解有两种最主要形式的信任:第三方信任和直接信任。本节将主要介绍这些概念并提供一些附加的信息,让用户来理解在给定的环境下,应该采取何种信任方式。

4.4.1 第三方信任

    第三方信任是指使从来没有建立过联系的双方建立一个相互之间的完全信任(如图4-3所示)。在这种情况下,双方都完全相互信任,因为他们有共同的第三方,并且第三方声明这两个人都值得信任。
    第三方信任是一个大型网络基于公共密钥密码系统产品的基础。公共密钥密码系统需要操作用户的公共密钥。在一个大型网络中,寄希望于每个用户之间都已经建立了联系是不现实也是无法实现的。另外,这就意味着用户的公共密钥必须广为人知,并且持有该公共密钥的用户必须由第三方来保证其可信,防止冒充。事实上,用户完全信任由第三方发放的公共密钥,因为他们的组织以一种安全的方式拥有和运作着第三方证书代理。
    一般来说,第三方证书代理就是指认证机构(Certification Authority,CA)。

图4-3 第三方信任

4.4.2 认证机构

    认证机构(Certification Authority,CA)是一个可以被信任的实体,它的中心责任是保证用户是可信任的。从某种意义上来说,CA就是政府护照发放机构的一个别名。护照是一个由权威机构发放的公民安全文件,保证公民和他所声明的身份一致。其他国家相信这个政府护照发放机构,同样会相信公民的护照棗这是一个典型的第三方信任。
    类似于一个护照,一个网络用户的“电子身份证”是通过CA来发放的。这就表明用户是值得CA信任的。因此通过第三方信任,任何信任CA的人应该同样信任这个用户。
    护照发放机构和CA都是政治和社会的混合体。在护照发放局的例子当中,政府要决定哪些公民是被认为是自己的公民并可以获得一个护照。同样的,CA也是一个组织,它决定了在网络这个政治实体中,哪些人是这个组织值得信任的,并可以给他们发放一个电子证书。
    从实际的角度来看,一个护照发放部门可以被看作是一个授权安全文件的创造者。护照机构有一系列的设备将公民的各种信息(例如:姓名、相片、生日……)和护照捆绑在一起。这样使得护照很难被更改。然后,当某个人检查这个护照的时候,就可以假设这个护照的信息是真实的。当护照机构使用物理设备来创建安全文件的时候,CA使用计算机平台和算法来创建和验证一个网络用户的电子身份。特别地,CA创建电子“证书”,其权威性和可靠性都是使用CA的私有密钥的电子签名来保证的。用户可以使用CA的公开密钥来验证CA电子签名的可靠性。
    护照机构必须保证其物理设备创造的护照的权威性。同样CA的私有密钥的电子签名必须小心保护,这样才能保证其领域内的个体的高度可信。
    在讨论证书之前,这儿有一个附加的网络安全信任概念,有点类同于护照发放机构。一个国家的护照发放机构没有权利发放其他国家的护照,而且一个国家只有一个护照发放机构。类似的,网络安全信任概念也具有信任域和唯一性,这个概念就是CA域(CA domain)。CA域是指拥有该CA发放的证书的用户的团体。

4.4.3 电子证书

    一个网络用户的证书和一个电子护照等价。因此,一个电子证书包含了可以用来检验和识别用户的安全信息,例如:一个证书包含了用户的名字。一个非常关键的信息就是用户的公开密钥。这个公开密钥是用来给证书的所有者加密数据或者是验证用户的电子签名。
    考虑到信任的各个方面,有两个关键的问题与证书有关。第一个就是证书如何来保证证书内信息的安全。就是如何使别人相信证书内的姓名和公开密钥的确是证书的所有者。的确,如果没有这个保障,那么公开密钥系统早就完全瘫痪了。因为没有人能够保证他的数据或者签名一定是他真正指定的人才能打开。
    为了在用户的公共密钥和用户的信息之间建立信任关系。CA采用了对这些信息使用私有密钥进行数字签名的方式来保证。CA的数字签名提供三种重要的安全方式来保证证书的可靠性。首先,一个有效的数字签名就保证了其可信任性。第二,既然CA是唯一持有这个私有密钥的实体,任何人可以校验CA在证书上的签名,保证只有CA能够生成这样的签名。第三,既然只有CA是唯一持有这个私有密钥的实体,CA无法抵赖它所签过名的证书。
    既然证书是包含了CA的电子签名,那么第二个和信任相关的问题是关系到CA自己是否是值得信任的。如果我们把这个问题和护照发放机构联系起来,那么正确的解释就是如何衡量一个护照发放机构的可靠性。例如,一个公民进入一个国家A,他持有一个有效的B国护照,海关必须保证B国的护照发放机构是否值得信任。为了做出这个决定,A国海关官员将要检查现在的可信任国家的列表,就好像决定高级别的政治组织是否在所控制的边界内。
    这个可信任的国家集合,在网络安全中被称作交叉认证域(Cross-certified CA domains)。

4.4.4 交叉认证

    交叉认证是指在两个CA认证机构之间交换钥匙信息的过程,这样使得双方可以有效地验证对方钥匙的可靠性(图4-4)。实质上,交叉CA认证是第三方认证的一个简单意义上的拓展。在某个CA域内的网络用户将完全信任由自己CA通过交叉认证的其他CA域内的用户。
    从技术角度来说,交叉认证包括在两个CA域之间创建交叉证书。当CA域X和CA域Y交叉校验的时候,CA域X实际上创建和签名一个包含了CA域Y的公开密钥的证书(反之也这样)。接下来,在任一域内的用户都假设这两个CA之间相互信任,因而在一个域内的用户可以通过扩展的第三方信任来信任另一个域内的用户。
    关于交叉认证,在安全地交换钥匙信息(在它们之间这是不冒风险的)方面还有更多的技术细节。既然交叉认证是拓展的第三方认证,那么在任何一个CA域内都将能和其他安全模式打交道。回到先前的护照的比喻,在没有考察对方的护照创造和发放的过程之前,是不可能申明对对方机构的信任。例如在建立信任之前,每个国家将会想知道对方国家是如何验证公民的身份并发放护照的。
    在CA交叉认证的时候也有类似的情况。例如在交叉认证之前,两个CA都想知道对方的安全模式,包括知道对方人员的操作高级安全功能所能得到的信息。双方还要签订有关的法律文件。这个文件是一个安全手段,并签名保证这个手段将实施。

图4-4 交叉认证

4.4.5 直接信任

    直接信任是指双方之间直接建立信任关系(图4-5)。与第三方认证所不同的是允许双方直接建立信任而无须第三方的参与。直接信任的基础是在交换安全信息之前的个人关系的基础上建立的。在网络安全中,直接信任是指在两个独立CA域中的个人通过交换钥匙信息来建立他们的通信。因为这些CA域的代表之间还没有建立信任关系(通过交叉认证),因此用户必须通过个人关系来信任对方。
    没有个人信任,交换钥匙信息是没有意义的。因为钥匙信息本身就不可以信赖。当直接信任应用于信息安全通信的时候,它的唯一责任就是双方都能保证他们能接受对方的信任条件。
    当直接信任的时候,个人之间钥匙的交换是以个人关系之间强大的机制来保证安全通信的。

图4-5 直接信任