一种端到端通信密钥的建立方法及系统 【技术领域】
本发明涉及通信网络安全应用领域, 尤其涉及一种端到端通信密钥的建立方法及系统。 背景技术 有线局域网一般为广播型网络, 一个节点发出的数据, 其它节点都能收到。 网络上 的各个节点共享信道, 这给网络带来了极大的安全隐患。 攻击者只要接入网络进行监听, 就 可以捕获网络上所有的数据包。
现有国家标准 GB/T 15629.3( 对应 IEEE 802.3 或 ISO/IEC 8802-3) 定义的局域 网 LAN 并不提供数据保密方法, 这样就使得攻击者容易窃取到关键信息。在国际研究领域 里, IEEE 所制定的 IEEE 802.1AE 标准为保护以太网提供数据加密协议, 并采用逐跳加密的 安全措施来实现网络节点之间数据的安全传达这种安全措施给局域网中的交换设备带来 了巨大的计算负担, 容易引发攻击者对交换设备的攻击 ; 且数据包从发送节点传递到目的
节点的延时也会增大, 降低了网络传输效率。
有线局域网的拓扑结构比较复杂, 涉及到的节点 ( 这里, 终端和交换设备被统称 为节点 ) 数目也比较多, 因此网络中的数据通信比较复杂。如果为局域网节点间分配静态 的密钥对来建立端到端的通信密钥, 其分配和更新过程极为复杂。 因此, 静态密钥对的方式 并不适合建立局域网端到端的通信密钥。 发明内容 为了解决背景技术中存在的上述技术问题, 本发明提供了一种安全性更高的端到 端通信密钥的建立方法及系统。
本发明的技术方案是 :
一种端到端通信密钥的建立方法, 包括以下步骤 :
1) 发送源节点 NSource 发送第一密钥通告分组给核心交换设备 SWCenter ; 所述第一密 钥通告分组包含 : IDDestination 字段、 E1(KEYS-D) 字段以及 MIC1 字段, 其中 :
IDDestination 字段 : 表示目的节点 NDestination 的标识 ;
E1(KEYS-D) 字段 : 表示密钥资料数据, 由发送源节点 NSource 利用其与核心交换设备 SWCenter 之间的密钥 KEYS-Center 对 KEYS-D 加密后的数据 ; 其中 KEYS-D 是由发送源节点 NSource 生 成的随机数, 发送源节点 NSource 将其作为与目的节点 NDestination 之间的通信密钥 ;
MIC1 字段 : 表示消息完整性验证码, 由发送源节点 NSource 利用其与核心交换设备 SWCenter 之间的密钥 KEYS-Center 对第一密钥通告分组中本字段外的其他字段通过杂凑函数计 算得到的杂凑值 ;
2) 核心交换设备 SWCenter 收到第一密钥通告分组后, 构造第二密钥通告分组给目的 节点 NDestination ; 所述第二密钥通告分组包括 IDSource 字段、 E2(KEYS-D) 字段以及 MIC2 字段, 其 中:
IDSource 字段 : 表示发送源节点 NSource 的标识 ;
E2(KEYS-D) 字段 : 表示密钥资料数据, 由核心交换设备 SWCenter 用其与目的节点 NDestination 之间的密钥 KEYD-Center 对 KEYS-D 加密后的数据 ;
MIC2 字段 : 表示消息完整性验证码, 由核心交换设备 SWCenter 用其与目的节点 NDestination 之间的密钥 KEYD-Center 对第二密钥通告分组中本字段外的其他字段通过杂凑函数 计算得到的杂凑值 ;
3) 目的节点 NDestination 收到第二密钥通告分组后, 构造第二密钥通告响应分组给核 心交换设备 SWCenter ; 所述第二密钥通告响应分组包括 : IDSource 字段以及 MIC3 字段 ; 其中 :
MIC3 字段 : 表示消息完整性验证码, 由目的节点 NDestination 利用与核心交换设备 SWCenter 之间的密钥 KEYD-Center 对第二密钥通告响应分组中本字段外的其他字段通过杂凑函 数计算得到的杂凑值 ;
4) 核心交换设备 SWCenter 收到第二密钥通告响应分组后, 构造第一密钥通告响应分 组给发送源节点 NSource ; 所述第一密钥通告响应分组包括 : IDDestination 字段以及 MIC4 字段, 其 中:
MIC4 字段 : 表示消息完整性验证码, 由核心交换设备 SWCenter 用其与发送源节点 NSource 之间的密钥 KEYS-Center 对第一密钥通告响应分组中本字段外的其他字段通过杂凑函数 计算得到的杂凑值 ;
5) 发送源节点 NSource 接收第一密钥通告响应分组, 建立端到端的通信密钥。
上述发送源节点 NSource 发送的第一密钥通告分组中还包括标识字段, 该标识字段 为时钟、 顺序号或随机数, 所述标识字段用于标识此次通信密钥建立过程 ; 所述核心交换设 备 SWCenter 收到第二密钥通告响应分组后, 需验证该分组中的标识值与其之前接收的第一密 钥通告分组中的标识值是否一致 ; 所述发送源节点 NSource 收到第一密钥通告响应分组后, 需 验证该分组中的标识值与其之前发送的第一密钥通告分组中的标识值是否一致。
上述发送源节点 NSource 发送的第一密钥通告分组中还包括一个独立的消息新鲜 性标识字段, 该标识为时钟、 顺序号或随机数 ; 所述发送源节点 NSource 收到第一密钥通告响 应分组后, 需验证该分组中的标识值与其之前发送的第一密钥通告分组中的标识值是否一 致; 所述核心交换设备 SWCenter 发送的第二密钥通告分组中还包含一个独立的消息新鲜性标 识字段, 该标识为时钟、 顺序号或随机数 ; 所述核心交换设备 SWCenter 收到第二密钥通告响 应分组后, 需验证该分组中的标识值与其之前发送的第二密钥通告分组中的标识值是否一 致。
上述步骤 2) 的具体实现方式是 :
2.1) 利用与发送源节点 NSource 之间的密钥 KEYS-Center 验证 MIC1 是否正确, 若不正 确, 则丢弃该分组 ; 若正确, 则执行 2.2) ;
2.2) 利用与发送源节点 NSource 之间的密钥 KEYS-Center 解密 E1(KEYS-D) 字段, 即得到 KEYS-D 值 ;
2.3) 构造第二密钥通告分组发送给目的节点 NDestination。
上述步骤 3) 的具体实现方式是 :
3.1) 利用与核心交换设备 SWCenter 之间的密钥 KEYD-Center 验证 MIC2 是否正确, 若不 正确, 则丢弃该分组 ; 若正确, 则执行 3.2) ;3.2) 利用与核心交换设备 SWCenter 之间的密钥 KEYD-Center 解密 E2(KEYS-D) 字段, 即得 到 KEYS-D 值, 将其作为与发送源节点 NSource 之间的通信密钥 ;
3.3) 构造第二密钥通告响应分组发送给核心交换设备 SWCenter。
上述步骤 4) 的具体实现方式是 :
4.1) 比较 IDSource 字段与之前发送的第二密钥通告分组中 IDSource 字段值是否一致, 若不一致, 则丢弃该分组 ; 若一致, 则执行 4.2) ;
4.2) 利用与目的节点 NDestination 之间的密钥 KEYD-Center 验证 MIC3 是否正确, 若不正 确, 则丢弃该分组 ; 若正确, 则执行 4.3)
4.3) 构造第一密钥通告响应分组发送给发送源节点 NSource。
上述步骤 5) 的具体实现方式是 :
5.1) 检查分组中的 IDDestination 字段与之前发送给核心交换设备 SWCenter 的第一密钥 通告分组中的 IDDestination 字段值是否一致, 若不一致, 则丢弃该分组 ; 若一致, 则执行 5.2) ;
5.2) 利用与核心交换设备 SWCenter 之间的密钥 KEYS-Center 验证 MIC4 是否正确, 若不 正确, 则丢弃该分组 ; 若正确, 则完成发送源节点 NSource 和目的节点 NDestination 之间通信密钥 KEYS-D 的建立过程。 一种端到端通信密钥的建立系统, 其特殊之处是, 所述系统包括局域网内的发送 源节点 NSource、 核心交换设备 SWCentr、 目的节点 NDestination ; 所述发送源节点 NSource 向核心交换 设备 SWCenter 发送第一密钥通告分组、 接收核心交换设备 SWCenter 发送的第一密钥通告响应分 组; 所述核心交换设备 SWCenter 接收发送源节点 NSource 发送的第一密钥通告分组、 向目的节点 NDestination 发送第二密钥通告分组、 接收目的节点 NDestination 发送的第二密钥通告响应分组、 向发送源节点 NSource 发送第一密钥通告响应分组 ; 所述目的节点 NDestination 接收核心交换设 备 SWCenter 发送的第二密钥通告分组、 向核心交换设备 SWCenter 发送第二密钥通告响应分组。
本发明的优点是 : 发送源节点 NSource 和目的节点 NDestination 之间的通信密钥是由发 送源节点 NSource 临时生成后, 通过核心交换设备 SWCenter 利用发送源节点 NSource 和核心交换设 备 SWCenter 之间的通信密钥 KEYS-Center 及目的节点 NDestination 和核心交换设备 SWCenter 之间的通 信密钥 KEYD-Center 以逐跳加密的方式通告给目的节点 NDestination。如果发送源节点 NSource 需要 更新和目的节点 NDestination 之间的通信密钥, 也可发起该建立过程重新建立新的通信密钥, 更新过程灵活, 无需管理员为全网节点两两之间部署共享的静态密钥对。
附图说明
图 1 为本发明所提供的端到端通信密钥建立过程示意图。 具体实施方式
本发明中的节点 N(Node) 是指有线局域网中的用户终端 STA(STAtion) 和交换设 备 SW(SWitch)。局域网中的集线器等物理层设备不作为节点处理。
在网络中, 所有的交换设备和用户终端都与网络中的核心交换设备之间通过预分 发或其他安全机制已建立安全连接, 即已具有共享的密钥。本发明中对该假设中的通信密 钥的建立机制不予限制和定义。 本发明中所述核心交换设备一般是局域网中离网关最近的 交换设备, 可由网络管理员进行指定或配置, 本发明不予限定和定义。以发送源节点 NSource 与目的节点 NDestination 之间的通信密钥建立为例进行说明, SWCenter 为网络中的核心交换设备。发送源节点 NSource 与核心交换设备 SWCenter 之间已建立安 全连接, 具有的共享密钥记为 KEYS-Center ; 目的节点 NDestination 与核心交换设备 SWCenter 之间已 建立安全连接, 具有的共享密钥记为 KEYD-Center。
图 1 以发送源节点 NSource 和目的节点 NDestination 之间建立通信密钥的步骤为例来说 明本发明所提供的一种端到端通信密钥的建立方法的具体方案如下 :
1) 发送源节点 NSource 发送第一密钥通告分组给核心交换设备 SWCenter ; 该第一密钥 通告分组主要包含 :
IDDestination
E1(KEYS-D)MIC1其中 :
IDDestination 字段 : 表示目的节点 NDestination 的标识 ;
E1(KEYS-D) 字段 : 表示密钥资料数据, 由发送源节点 NSource 利用其与核心交换设备 SWCenter 之间的密钥 KEYS-Center 对 KEYS-D 加密后的数据 ; 其中 KEYS-D 是由发送源节点 NSource 生 成的随机数, 发送源节点 NSource 将其作为与目的节点 NDestination 之间的通信密钥 ; MIC1 字段 : 表示消息完整性验证码, 由发送源节点 NSource 利用其与核心交换设备 SWCenter 之间的密钥 KEYS-Center 对该第一密钥通告分组中本字段外的其他字段通过杂凑函数 计算得到的杂凑值。
2) 核心交换设备 SWCenter 发送第二密钥通告分组给目的节点 NDestination ;
核心交换设备 SWCenter 收到第一密钥通告分组后, 进行如下处理 :
2.1) 利用与发送源节点 NSource 之间的密钥 KEYS-Center 验证 MIC1 是否正确, 若不正 确, 则丢弃该分组 ; 否则, 执行 2.2) ;
2.2) 利用与发送源节点 NSource 之间的密钥 KEYS-Center 解密 E1(KEYS-D) 字段, 即得到 KEYS-D 值 ;
2.3) 构造第二密钥通告分组发送给目的节点 NDestination。
该第二密钥通告分组中主要包含 :
IDSource
E2(KEYS-D)MIC2其中 :
IDSource 字段 : 表示发送源节点 NSource 的标识 ;
E2(KEYS-D) 字段 : 表示密钥资料数据, 由核心交换设备 SWCenter 用其与目的节点 NDestination 之间的密钥 KEYD-Center 对 KEYS-D 加密后的数据 ;
MIC2 字段 : 表示消息完整性验证码, 由核心交换设备 SWCenter 用其与目的节点 NDestination 之间的密钥 KEYD-Center 对该第二密钥通告分组中本字段外的其他字段通过杂凑函 数计算得到的杂凑值。
3) 目的节点 NDestination 发送第二密钥通告响应分组给核心交换设备 SWCenter ;目的节点 NDestination 收到第二密钥通告分组后, 进行如下处理 :
3.1) 利用与核心交换设备 SWCenter 之间的密钥 KEYD-Center 验证 MIC2 是否正确, 若不 正确, 则丢弃该分组 ; 否则, 执行 3.2) ;
3.2) 利用与核心交换设备 SWCenter 之间的密钥 KEYD-Center 解密 E2(KEYS-D) 字段, 即得 到 KEYS-D 值, 将其作为与发送源节点 NSource 之间的通信密钥 ;
3.3) 构造第二密钥通告响应分组发送给核心交换设备 SWCenter。
该第二密钥通告响应分组主要包含 :
IDSource
MIC3其中 :
IDSource 字段 : 表示发送源节点 NSource 的标识, 其值同收到的第二密钥通告分组中的 IDSource 字段的值 ;
MIC3 字段 : 表示消息完整性验证码, 由目的节点 NDestination 利用与核心交换设备 SWCenter 之间的密钥 KEYD-Center 对该第二密钥通告响应分组中本字段外的其他字段通过杂凑 函数计算得到的杂凑值。
4) 核心交换设备 SWCenter 发送第一密钥通告响应分组给发送源节点 NSource ;
核心交换设备 SWCenter 收到第二密钥通告响应分组后, 进行如下处理 :
4.1) 比较 IDSource 字段与之前发送的第二密钥通告分组中 IDSource 字段值是否一致, 若不一致, 则丢弃该分组 ; 否则, 执行 4.2) ;
4.2) 利用与目的节点 NDestination 之间的密钥 KEYD-Center 验证 MIC3 是否正确, 若不正 确, 则丢弃该分组 ; 否则, 执行 4.3)
4.3) 构造第一密钥通告响应分组发送给发送源节点 NSource ;
该第一密钥通告响应分组中主要包含 :
MIC4 IDDestination 其中 :
IDDestination 字段 : 表示目的节点 NDestination 的标识 ;
MIC4 字段 : 表示消息完整性验证码, 由核心交换设备 SWCenter 用其与发送源节点 NSource 之间的密钥 KEYS-Center 对第一密钥通告响应分组中本字段外的其他字段通过杂凑函数 计算得到的杂凑值。
5) 发送源节点 NSource 接收第一密钥通告响应分组 ;
发送源节点 NSource 收到第一密钥通告响应分组后, 进行如下处理 :
5.1) 检查分组中的 IDDestination 字段与之前发送给核心交换设备 SWCenter 的第一密钥 通告分组中的 IDDestination 字段值是否一致, 若不一致, 则丢弃该分组 ; 否则, 执行 5.2) ;
5.2) 利用与核心交换设备 SWCenter 之间的密钥 KEYS-Center 验证 MIC4 是否正确, 若
不正确, 则丢弃该分组 ; 否则, 即完成发送源节点 NSource 和目的节点 NDestination 之间通信密钥 KEYS-D 的建立过程。此后, 发送源节点 NSource 和目的节点 NDestination 之间可通过该通信密钥 KEYS-D 进行保密通信。
当对上述方案进行具体实施时, 发送源节点 NSource 还可生成一个数值, 作为此次通 信密钥建立过程的标识, 该标识可为时钟、 顺序号或随机数, 且在每个消息中进行携带, 相 应地核心交换设备 SWCenter 收到第二密钥通告响应分组后, 需验证该分组中的标识值与其之 前接收的第一密钥通告分组中的标识值是否一致 ; 发送源节点 NSource 收到第一密钥通告响 应分组后, 也需验证该分组中的标识值与其之前发送的第一密钥通告分组中的标识值是否 一致。
当利用上述方案进行具体实施时, 也可以由发送源节点 NSource 和核心交换设备 SWCenter 在发送第一密钥通告分组和第二密钥通告分组时, 各自独立生成一个数值 ( 可为时 钟、 顺序号或随机数 ) 作为消息新鲜性标识分别携带在上述分组中, 对应地核心交换设备 SWCenter 收到第二密钥通告响应分组后, 需验证该分组中的标识值与其之前发送的第二密钥 通告分组中的标识值是否一致 ; 发送源节点 NSource 收到第一密钥通告响应分组后, 也需验证 该分组中的标识值与其之前发送的第一密钥通告分组中的标识值是否一致。
一种端到端通信密钥的建立系统, 该系统包括向核心交换设备 SWCenter 发送第一密 钥通告分组、 接收核心交换设备 SWCenter 发送的第一密钥通告响应分组的发送源节点 NSource ; 接收发送源节点 NSource 发送的第一密钥通告分组、 向目的节点 NDestination 发送第二密钥通告 分组、 接收目的节点 NDestination 发送的第二密钥通告响应分组、 向发送源节点 NSource 发送第一 密钥通告响应分组的核心交换设备 SWCenter ; 接收核心交换设备 SWCenter 发送的第二密钥通告 分组、 向核心交换设备 SWCenter 发送第二密钥通告响应分组的目的节点 NDestination。