第八章密钥分配与管理8.1密钥分配方案8.2密钥的管理本章重点和复习要点本章重点和复习要点通信方A、B的主密钥如何进行安全分配;通信方A和B共享的对话密钥如何进行安全分配D-H中有无KDC?D-H是对称加密算法还是公开加密算法?K是对称加密密钥还是公开加密密钥?该方案有无鉴别通信双方的功能,所以容易遭受什么攻击?N-S算法有无KDC?它是一个对称加密算法还是公开加密算法?KS是对称加密密钥还是公开加密密钥?N-S的密钥分配和相互鉴别过程为什么说CA相对KDC来说不容易形成瓶颈?返回首页目前,大部分加密算法都已经公开了,像DES和RSA等加密算法甚至作为国际标准来推行。因此明文的保密在相当大的程度上依赖于密钥的保密。1)设计安全的密钥算法和协议是不容易的,但可以依靠大量的学术研究。2)相对来说,对密钥进行保密更加困难。如何安全可靠、迅速高效地分配密钥,如何管理密钥一直是密码学领域的重要问题。8.1密钥分配方案1)要使常规加密有效进行,通信双方必须共享一个密钥,这个密钥还要防止被他人获得。2)要使公开加密有效进行,通信双方必须发布其公开密钥,并防止其私钥被其他人获得。此外,密钥还需经常更换,以便在攻击者知道密钥的情况下使得泄漏的数据量最小化。对于通信的双方A和B,密钥的分配可以有以下的几种方法:返回首页(1)密钥可以由A选定,然后通过物理的方法安全地传递给B。(2)密钥可以由可信任的第三方C选定,然后通过物理的方法安全地传递给A和B。上述方法由于需要对密钥进行人工传递,对于大量连接的现代通信而言,显然不适用。(3)如果A和B都有一个到可信任的第三方C的加密连接,那么C就可以通过加密连接将密钥安全地传递给A和B。采用的是密钥分配中心技术,可信任的第三方C就是密钥分配中心KDC,常用于常规加密密钥的分配。(4)如果A和B都由可信任的第三方发布自己的公开密钥,它们就可用彼此公开密钥加密通信。采用的是密钥认证中心技术,可信任的第三方C就是证书授权中心CA,更多用于公开加密密钥的分配。8.1.1常规加密密钥的分配1.集中式密钥分配方案由一个中心节点或者由一组节点组成层次结构负责密钥产生并分配给通信双方,用户只需保存同中心节点的加密主密钥,用于安全传送由中心节点产生的即将用于与第三方通信的会话密钥。这种方式缺点是通信量大,同时需要较好的鉴别功能以鉴别中心节点和通信方。目前这方面的主流技术是密钥分配中心KDC技术。我们假定:1)每个通信方与密钥分配中心KDC之间共享一个惟一的主密钥;2)这个主密钥通过其他安全的途径传递。实际上,到第(3)步已经完成密钥的分配过程,通信的双方已经共享了当前的会话密钥Ks,第(1)步到第(5)步共完成了两次鉴别功能。单个密钥分配中心KDC无法支持大型的通信网络。因为每两个可能要进行安全通信的终端都必须同某个密钥分配中心共享主密钥。所以当通信的终端数量很大时,将出现这样的情况:1)每个终端都要同许多密钥分配中心共享主密钥,增加了终端的成本和人工分发密钥分配中心和终端共享的主密钥的成本。2)需要几个特别大的密钥分配中心,每个密钥分配中心都同几乎所有终端共享主密钥。然而各个单位往往希望自己来选择或建立自己的密钥分配中心。解决方案:1)为了同时支持没有共同密钥分配中心的终端之间的密钥信息的传输,可以建立一系列的密钥分配中心,各个密钥分配中心之间存在层次关系。2)各个密钥分配中心按一定方式进行协作,这样,一方面主密钥分配所涉及的工作量减至最少,另一方面也可以使得某个KDC失效时,只影响其管辖区域,而不至于影响整个网络。2.分散式密钥分配方案使用KDC进行密钥的分配要求KDC是可信任的并且应该保护它免于被破坏。1)如果KDC被破坏,那么所有依靠该KDC分配会话密钥进行通信的所有通信方将不能进行正常的安全通信。2)如果KDC被控制,那么所有依靠该KDC分配会话密钥进行通信的所有通信方之间的通信信息将被窃听。解决方案:1)把单个KDC分散成几个KDC,将会降低这种风险。2)更进一步,把几个KDC分散到所有的通信方,也就是说每个通信方自己保存同其他所有通信方的主密钥。优缺点:有n个通信方的网络要保存[n(n一1)/2]个主密钥。对于较大网络,这种方案不适用,但对于小型网络或大型网络的局部范围,该分散化方案可行。分散式密钥分配方案中会话密钥的产生通过如下的步骤实现:(1)AB:IDa||N1A给B发出一个要求会话密钥的请求,报文内容包括A的标识符IDa和一个现时N1,告知:A希望与B进行通信,并请B产生一个会话密钥用于安全通信。(2)BA:EMKm[Ks||IDa||IDb||f(N1)||N2]B使用一个用A和B之间共享的主密钥加密的报文进行响应。响应的报文包括:B产生的会话密钥、A的标识符IDa、B的标识符IDb、f(N1)的值、另一个现时N2。(3)AB:EKs[f(N2)]A使用B产生的会话密钥Ks对f(N2)进行加密,返回给B。优缺点:1)每个通信方都必须保存多达(n一1)个主密钥;2)但是需要多少会话密钥就可以产生多少;3)同时,使用主密钥传输的报文很短,所以对主密钥的分析也很困难。8.1.2公开加密密钥的分配公开加密密钥的分配要求和常规加密密钥的分配要求有着本质的区别。公开密钥技术使得密钥较易分配,但它也有自己的问题。获取一个人的公开密钥有如下四种途径。1.公开密钥的公开宣布任何参与者都可以将他的公开密钥发送给另外任何一个参与者,或者把这个密钥广播给相关人群,比如PGP。致命的漏洞:任何人都可以伪造一个公开的告示,冒充其他人,发送一个公开密钥给另一个参与者或者广播这样一个公开密钥。2.公开可用目录1)由一个可信任组织负责维护一个公开的公开密钥动态目录。2)公开目录为每个参与者维护一个目录项{标识,公开密钥},每项信息都需经过安全认证。3)任何其他方都可以从这里获得所需要通信方的公开密钥。致命的弱点:如果一个敌对方成功地得到或者计算出目录管理机构的私有密钥,就可以伪造公开密钥,并发送给其他人达到欺骗的目的。3.公开密钥管理机构1)更严格控制公开密钥从目录中分配的过程就可以使得公开密钥的分配更安全。2)比公开可用目录多了公开密钥管理机构和通信方的认证以及通信双方的认证。3)每个通信方都由安全渠道得到该中心权威机构的公开密钥,而其对应的私有密钥只有该中心权威机构才持有。4)任何通信方都可以向该中心权威机构获得其他任何通信方的公开密钥,通过该中心权威机构的公开密钥便可判断它所获得的其他通信方的公开密钥的可信度。4.公开密钥证书需求:1)公开密钥管理机构往往会成为通信网络中的瓶颈。2)如果不需要与公开密钥管理机构通信,也能证明其他通信方的公开密钥的可信度,——公开密钥证书。3)目前,公开密钥证书即数字证书由CA颁发。1)CA作为网络通信中受信任的第三方,承担检验公开密钥的合法性的责任。2)CA中心为每个用户发放数字证书(经CA签名的包含公开密钥拥有者信息以及公开密钥的文件),作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。3)CA机构的数字签名使得攻击者不能伪造和篡改证书。4)证书的格式遵循X.509标准。8.1.3利用公开密钥加密进行常规加密密钥的分配1)用公开加密方法来保护常规加密密钥的传送,保证了常规加密密钥的安全性。2)用常规加密方法来保护传送的数据,由于其加密密钥是安全的,因而其传送的数据也是安全的,也利用了常规加密速度快的特点。假定通信的双方A和B已经通过某种方法得到对方的公开密钥,用于常规加密密钥分发过程如下步骤所示:(1)AB:EKUb[N1||IDa]A使用B的公开密钥KUb加密一个报文发给B,报文内容包括:一个A的标识符IDa一个现时值N1(2)BA:EKUa[N1||N2]B返回一个用A的公开密钥KUa加密的报文给A,报文内容包括A的现时值N1和B新产生的现时值N2。因为只有B才可以解密(1)中的报文,报文(2)中的N1存在使得A确信对方是B。(3)AB:EKUb[N2]A返回一个用B的公开密钥KUb加密的报文给B,因为只有A才可以解密(2)中的报文,报文(3)中的N2存在使得B确信对方是A。(4)AB:EKUb[EKRa[Ks]]A产生一个常规加密密钥Ks,并用A的私有密钥KRa加密,保证只有A才能发送它,再用B的公有密钥KUb加密,保证只有B才能解读它。(5)B计算DKUa[DKRb[EKUb[EKRa[Ks]]]]得到Ks,从而获得与A共享的常规加密密钥,因而通过Ks可以与之安全通信。其分发过程如图8.4所示。8.2密钥的管理1)常规加密体制通常是设立KDC来管理密钥,但增加了网络成本,降低了网络的性能。2)或者利用公开密钥加密技术来实现对常规密钥的管理,这使密钥管理变得简单,同时解决了对称密钥中的可靠性和鉴别的问题。3)公开密钥的管理通常采用数字证书。密钥的管理涉及密钥的生成、使用、存储、备份、恢复以及销毁等多个方面,涵盖了密钥的整个生存周期。返回首页8.2.1密钥的生成1)算法的安全性依赖于密钥,如果用一个弱的密钥产生方法,那么整个系统都将是弱的。2)DES有56位的密钥,正常情况下任何一个56位的数据串都能成为密钥,所以共有256种可能的密钥。3)在某些实现中,仅允许用ASCII码的密钥,并强制每一字节的最高位为零。有的实现甚至将大写字母转换成小写字母。4)这些密钥产生程序都使得DES的攻击难度比正常情况下低几千倍。表8.1、表8.2分别给出了在不同输入限制下可能的密钥数,并给出了在每秒一百万次测试的情况下,寻找所有这些密钥消耗的时间。随着计算能力的加快,现有的安全密码长度,也许很快就会变得不安全了。