KDC

2023年 2月 15日23:07:58 发表评论

KDC(key-distribution center)密钥分配中心

起源

​ KDC 被提出是为了解决对称密钥加密通信在实际使用时存在的一些问题。为此,我们先了解一下私钥加密通信的一些窘境:

​ 私钥加密用来保证在不安全信道上进行通信时,通信双方信息的保密性和完整性。然而其前提是双方拥有共享的密钥。那么问题来了,通信的双方如何安全地共享此密钥呢?显然私钥的共享不能在公共的信道上进行。最初的方法是进行通信双方人与人,个体与个体的对接或委托可信任第三方的快递服务,这不失为一种安全的解决办法。但当需要通信的实体增多,或是存在过长通信实际距离时,便会产生巨大成本消耗。此外还需考虑密钥的保管问题,密钥的更新问题等。考虑一个大的跨国公司,公司的员工间需要进行通信,那么处在不同办公点的员工如何建立密钥共享通道,员工间又如何保管通信的密钥(假如有n个员工,每个员工最多需保存n-1个密钥),随需保管的密钥数增加而增大的安全风险怎么解决,在开放系统中的安全通信又该如何...

​ KDC便是用来尝试解决上述问题的一种密钥分发机制。

基本思想

​ 在系统内确立一个受通信各方信任的实体(KDC),帮助所有需要进行安全通信的通信方之间进行通信:KDC同每个通信方共享一个密钥(不同通信方同KDC共享不同的密钥),并使用共享的密钥为每个通信方分配用于同其他通信方进行通信的密钥。这样,通信方之间,通信方与KDC之间,便可进行安全通信。

​ 当然,这样仍然需要每个通信方管理保存n个密钥(n-1个用于通信方间的通信,1个用于同KDC的通信)。为此,通常采用在线KDC的方法,为需要安全通信的双方“按需”分配用于通信的密钥 - “会话密钥”(session key)。当然,通信各方仍同KDC共享一个密钥用于同KDC通信。具体过程如下:

​ 考虑需要进行安全通信的A, B,。A,B同KDC共享的密钥分别为Ka, Kb。假设A希望同B通信,A首先向KDC发送需要同B通信的请求(如果需要,可用Ka加密以进行身份认证),然后KDC选择一个新的随机的随机密钥,即会话密钥k,并使用Ka,Kb加密发送给A,B。当A,B恢复密钥k,便可使用密钥k进行加密通信了。当通信结束,便将密钥k擦除,下次进行安全通信时则需要再次访问KDC。

优缺点

​ 优点是显而易见的,即通信方只需保存一个长期的同KDC进行通信的密钥,一个临时产生的短期会话密钥。当通信实体增加时,密钥的分发复杂度也极低。但KDC并未解决对称密码体制在最初的密钥共享的安全信道的问题(当然,公钥密码体制解决了这个问题),同时,密钥的集中管理分发决定了KDC安全重要程度,一旦对KDC攻击得手,整个系统的安全通信便失去了保障。此外,大量的单点访问会使得KDC系统负载过大,而若尝试增加KDC数量,则又为整个系统增加了易受攻击的目标。

Needham–Schroeder protocol

​ 关于KDC使用的协议有很多,被设计用来减小KDC系统的负载的needham-Schroeder是其中之一。needham-Schroeder 协议是Kerberos(Kerberos是执行身份验证和支持安全通信的重要且广泛使用的服务 )的核心组成部分之一,该协议的一个feature是:当A需要同B通信并向KDC发送请求时,KDC并不同时向A,B发送加密后的会话密钥k, 而是向A发送由密钥Ka加密的会话密钥k以及密钥Kb加密的会话密钥k两份密文。当A使用Ka恢复其中一份密文得到k,并将另外一份密文作为认证(也称ticket, 票据)发送给B, B使用Kb解密得到k,之后,两者可使用k进行安全通信。并且,在通信结束后,k可保留,一直到需要更新。

KDC

​ 需要提及的一点是,nS协议虽然可以显著缓解KDC系统的负载问题,但同样存在一些大大小小的安全问题,这一点就不多赘述了。

参考

​ 《Introduction to Modern Cryptography, Second Edition》

原文链接:https://www.cnblogs.com/chl233/p/12495989.html

  • 版权声明:内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 1936370309@qq.com 举报,一经查实,本站将立刻删除。
  • 转载请注明:KDC 紫林博客

发表评论

您必须才能发表评论!