密钥分发的可能方式安全
一、A选择一个密钥后以物理的方式传递给B网络
二、第三方选择密钥后物理地传给A和B并发
三、若是A和B先前或最近使用过一个密钥,则一方能够将 新密钥用旧密钥发送给另外一方分布式
四、若是A和B到第三方C有加密链接,则C能够在加密链接上发送密钥给A、B函数
分析:加密
1和2都须要人工交付,对链路加密(设备一对一链接)可行,对网络通讯则不可行,由于网络通讯涉及大量密钥spa
对于3,一旦攻击者得到一个密钥,则后序全部密钥便都再也不安全。设计
4须要第三方即密钥分发中心,在网络通讯中获得了普遍的应用。对象
密钥分发方案blog
基本原理:密钥分发中心KDC和每一个终端用户都共享一对惟一的主密钥(用物理的方式传递,如U盾)。终端用户之间每次会话,都要向KDC申请惟一的会话密钥,会话密钥经过与KDC共享的主密钥加密来完成传递。
典型方案描述
一、A以明文形式向KDC发送会话密钥请求包。包括通话双方A、B的身份以及该次传输的惟一标识N1,称为临时交互号(nonce)。
临时交互号能够选择时间戳、随机数或者计数器等。KDC可根据临时交互号设计防重放机制。
二、KDC返回的信息包括两部分。
第一部分是A想获取的信息,用A的主密钥KA加密,包括通话密钥Ks和KDC收到的请求包内容用以验证消息到达KDC前是否被修改或者重放过。
第二部分是B想获取的信息,用B的主密钥KB加密,包括通话密钥Ks和A的身份。A收到后这部分消息便原样发给B。
三、为保证A发给B的会话密钥信息未被重放攻击,A、B使用会话密钥进行最后的验证。
B使用新的会话密钥Ks加密临时交互号N2并发给A。A对N2进行一个函数变换后,用会话密钥发给B验证。
对于大型网络,能够创建KDC的层次体系来使得主密钥分发的开销最小化。
透明的密钥控制方案
其中心思想是经过设定专门的会话安全单元(SSM)来完成表明主机、获取会话密钥和加密会话消息的功能
分布式的密钥控制方案
该方案的核心思想是将每一个终端都兼职干KDC的活。这显然大大增长了主密钥的数量(N(N-1)/2个),适合一些对KDC安全性要求高的中小系统。
Km是AB共享的主密钥。
会话密钥生命周期
对于面向对象的协议,在会话整个生命周期中使用同一个会话密钥,为每次新的会话使用新的会话密钥。若一个会话的生命周期很长,则周期性改变会话密钥。
对于无链接的协议如面向事务的协议,则可约定时间或者数量分配不一样的会话密钥
控制密钥的使用
目的:
一、经过某种标识区分密钥的种类及使用范围
二、避免主密钥做为数据加密密钥带来的安全风险
控制向量解决方案:
一、KDC生成会话密钥Ks,同时使用一个控制向量CV,根据约定的规范描述会话密钥的用法和限制。而后用如下公式生成消息返回给用户。
C = E([Km⊕h(CV)] , Ks) || CV h为Hash函数 Km是用户主密钥
二、用户可直接经过逆操做还原会话密钥 Ks = D([Km⊕h(CV)] , E([Km⊕h(CV)] , Ks))
这样,经过将主密钥与CV异或避免了主密钥可能的暴露,同时也规范了会话密钥的使用。