在介绍密钥分发中心的概念前,先来回顾一下之前介绍的身份认证协议AP4.0:利用随机数R来避免“回放攻击”,并借助于对称加密算法来保证R的加密传输和解密,从而实现身份认证的协议过程。
我们知道对称加密算法在发送方/接收方使用的是同一共享密钥,用该密钥加密,同时也需要用该密钥解密。**因此,这里涉及到的一个问题就是,发送方和接收方如何实现密钥的共享,即两个实体在网上如何建立共享密钥。**如果这个问题不能得到很好解决的话,那么共享密钥在网络环境下实施起来就存在很大障碍和安全隐患。
解决方案
比较有代表性的解决方案,就是利用可信任的密钥分发中心(Key Distribution Center-KDC)作为实体间的中介(intermediary)
引入密钥分发中心KDC,就是以它作为中介,实现通信实体之间的共享密钥的分发。
接下来,我们就看一下作为密钥分发中心,是什么样一个形式,发挥什么样的作用。
我们仍然假设一个通信场景,并以此为基础来介绍KDC在两个实体间通信时的作用机理。
仍然以Alice和Bob两个实体间的通信为例:
Alice和Bob间通信需要使用共享对称密钥进行加密,如何获取彼此的密钥呢?
引入KDC:一个服务器
Alice在KDC上注册一个只有Alice和KDC知道的密钥KA-KDC。
Bob在KDC上注册一个只有Bob和KDC知道的密钥KB-KDC。
Alice和Bob只知道自己与KDC之间的对称密钥,用于分别与KDC进行秘密通信。
Alice在与Bob进行通信时,为了把自己的密钥告知Bob,就需要借助KDC来完成。
Q:KDC如何支持Bob和Alice确定用于彼此通信的共享对称密钥呢?
总结
以上就是KDC在Alice和Bob之间通信过程中,所起的作用和原理。实际上可以看出,KDC的角色相当于是作为一个大家都可以信任的权威机构,每个通信方都需要向其注册申请自己的密钥。在对称加密中,由于需要通信双方共享对称密钥,但实际上,通信双方本身的密钥是不直接利用网络传输给对方的,而是借助于KDC中介,生成一个临时的共享密钥。由这个临时共享密钥来实现通信双发本次会话的对称加密。
上面我们介绍了对称密钥在实际应用中,需要借助KDC来实现密钥分发的基本原理和过程。在这一节中,我们针对上述对称密钥方法中存在的问题,来介绍一种公钥会使用的机制:认证中心(CA)。
在之前介绍的身份认证协议AP5.0中,我们介绍了在Alice和Bob间使用对称密钥加密通信时,会存在中间人攻击的问题。事实上,使用公开密钥除了存在这种问题外,还有一个典型的场景就是:比萨恶作剧。
同样以Alice和Bob间的通信为例,看看Trudy(第三方入侵者)可以在通信过程中实施怎样的比萨恶作剧。
Ttudy创建邮件订单:Dear Pizza Store: Please deliver to me four pepperon pizzas. Thank you Bob.
上述邮件订单的意思就是,以Bob的名字,向Pizza店订购了4个pizza。
为了实现上述恶作剧,Trudy会利用她的私钥签名订单。
Trudy向比萨店发送订单。
当比萨店索要Bob的公钥时,Trudy向比萨店发送她自己的公钥,但是她声称这是Bob的公钥。
由于没有其他机制来验证该公钥是不是真的属于Bob,比萨店只能利用收到的公钥尝试去解密收到的以为是“Bob"发送的签名订单。当然这是能解密的(因为这是一对Trudy的私钥和公钥),因此,基于非对称加密算法,比萨店由于用该公钥解开了之前以为是真实Bob的私钥加密的订单,所以认定该公钥就是属于Bob的。
比萨店核实签名,然后向Bob配送了4个比萨。
然而可能Bob根本就不喜欢吃比萨,所以这也称为比萨恶作剧。
事实上,我们分析一下,无论是之前的中间人攻击还是比萨恶作剧也好,问题的发生就在于公钥这样一个系统存在一个主要的问题。接下来,我们详细对该问题进行探讨。
核心问题其实上面在讲比萨恶作剧时也提到了,实际上就是,当Alice或者比萨店,当其获得了Bob的公钥时(通过网站,e-mail,磁盘等),她应该如何确定这是真的Bob的公钥,而不是另一个第三方的公钥?
上面的中间人攻击和比萨恶作剧,事实上发生问题的原因,都在于第三方使用了假的公钥来欺骗了接收方。这个问题也就是公钥的主要问题。
如何解决?
同样的,我们可以借助第三方权威认证机构:可信任的认证中心(Certification Authority - CA)。
可信任的认证中心跟我们上面介绍的密钥分发中心KDC类似,它也是一个服务器形式的基础设施,它的主要目的是实现:将网络中通信的实体与其真正的公钥进行绑定。
因此,作为我们在网络通信中要使用公钥的每个人、路由器等,都需要在CA上注册其公钥。
有了证书之后,将来任何实体需要获取Bob的公钥时,就不会把一个“欺骗性”的密钥当作Bob的密钥,因为它会核实这个密钥的证书是否由权威认证颁发的。
就像大学毕业出去找工作,用人单位不会只听信你自己说:我是***名牌大学毕业的,而是会看你的毕业证书,因为证书是由教育部权威机构颁发的。上面的CA颁发证书也是类似的道理。
有了CA认证中心后,公钥系统就可以比较安全的来运行和实施了。
此时,当Alice想要Bob的公钥时:
在示例中包含这样几部分:
总结:公钥认证中心CA是现在网络公钥系统得以正常运行的重要保障!