论文部分内容阅读
[摘要]Ad hoc网络已经被广泛应用,针对Ad hoc网络的安全研究也越来越普遍。针对Ad hoc网络中密钥的安全问题进行分析和讨论,指出组密钥机制存在的安全问题。最后在Ad hoc网络的ODMRP协议的基础上,提出一种组密钥生成算法,该算法比传统算法有更高的安全性和更好的生成效率。
[关键词]移动自组网 安全 组密钥 算法
中图分类号:TN92 文献标识码:A 文章编号:1671-7597(2008)1110052-01
一、引言
移动自组网(Ad hoc)是指为了某种特定目的由移动设备临时组成,通过无线信道通信,不需要基站、路由器等固定的基础设施的高度动态、自组织的、多跳的临时性自治系统。
安全性是网络通信的首要保证,而Ad hoc网络中通信节点的移动、无线通信特点以及网络的无中心特性给保护网络通信的安全性带来新的挑战。在Ad hoc网络中,安全研究主要集中在信任和密钥管理、安全路由和入侵检测、可用性等方面。
信任和密钥管理:移动自组网网络加密系统的安全性依赖于有效的密钥管理。密钥管理包括信任模型、密钥生成与分发、密钥存储和加密系统等多个方面。安全路由:路由协议的安全目标是实现路由信息的可用性、真实性、完整性和抗抵赖性。
二、Ad hoc网络应用组播的安全研究
组播是一种允许一个或多个发送者发送单一的数据包到多个接收者的网络技术。在Ad hoc网络中,很多网络功能都是面向群组的,需要一个发送节点将相同的信息发送给多个接收节点。对于一些重要信息,采用组播方式是最好的选择。
在Ad hoc中,组密钥管理具有广泛的应用领域。组密钥管理系统需要满足扩展性、独立性、可靠性及安全性等特征。一般的管理方案有基于证书的方案和基于GDH的方案。
三、改进的组密钥生成算法
但目前的组密钥管理方案还很不完善,组密钥管理还存在缺乏可信的第三方、网络拓扑结构动态变化频繁等问题。其中组密钥的生成是最突出需要解决的问题。
新的组密钥生成算法是在结合现有按需组播协议ODMRP的基础上提出来,在ODMRP发现路由的同时生成组密钥,这样与路由过程和组密钥生成过程分开相比,有利于提高算法效率、减少网络开销。
(一)ODMRP简介
ODMRP协议的路由发现过程由路由请求和路由回复两个阶段组成。当源节点要发现一个组播路由时,它首先广播一个组播路由请求,其中跳数初始值为0,生存期根据网络规模设定初值。当某个节点收到这个组播请求包时,经过判断如果不是重复收到的包而且自己不是这个组播路由中的组成员时,就在路由表中存储发该包的节点地址,且将包中的跳数加1,如果跳数小于生存期则将自己的IP地址填到域中,然后广播新的路由请求包,否则就丢弃该包不再转发。当某一个组播路由目的节点收到这个组播路由请求包时,它生成一个组播路由回复包并向周围节点广播,当它的邻居节点接收到了这个包时,如果该包的下一节点地址是自己且自己不是这个组播路由的源节点,则置自己的FG_FLAG标帜,成为该组播路由的转发组的成员,然后生成自己的组播路由回复包继续广播。
(二)组密钥生成算法描述
在系统初始阶段,首先给每一个节点分发一个种子密钥生成函数seed(T),其中T为发起生成组密钥的时间,并且按照(n,t)门限方案为每一个节点生成私钥分量,同时用生成元g生成{gssk,ga1,…gat-1,}发送到所有相关节点。
密钥生成过程如下:整个网络使用公钥算法生成一对系统公钥SPK和系统私钥SSK,系统私钥采用拉格朗日差值多项式生成n个系统私钥分量,分别存放在系统n个节点中,任意t个节点联合提供私钥分量就可以生成系统私钥。
当组播源节点S需要发现组播路由时执行以下算法:
1.组播源节点S首先取当前系统时间T生成组密钥种子S=seed(T),然后在路由请求包中添加两个域存放组播源节点S和时间T所生成的随机数v并向邻居节点广播。邻居节点处理路由请求包时类似ODMRP。
2.当其中一个组播目的节点D收到路由请求包后,首先利用自己的私钥分量kd计算Cd=Skd mod N;Wd=gkd mod N,然后选随机数ud计算A1=Sud mod N,A2=gud mod N,rd=ud-v*kd然后生成组播路由回复包附上{A1,A2,Cd,Wd,rd}并向周围节点广播。
3.当中间节点i收到组播路由回复包后取出{A1,A2,Cd,Wd,rd},然后除了与ODMRP一样建立转发路由和设置转发组成员标帜外,也类似第二步用自己的密钥分量ki计算{Ai1,Ai2,Ci,Wi,ri}然后附在{A1,A2,Cd,Wd,rd}后面重新生成路由回复包并广播。
4.当组播源节点S收到路由回复包后验证组播目的节点提供的Kd和Wd以及转发组成员提供的Ki和Wi,判断Kd的正确性,若Kd正确,则计算Cd,同样验证各个中间节点提供的Ki和Ci。如果节点S收到t个有效的组密钥生成片断Cd或Ci,就转第七步生成组密钥。
5.节点S如果在路由发现过程中没有收到t个有效的组密钥生成片断,节点S就向邻居节点广播组密钥生成请求包,包格式为{flag,S,T,V,hop},其中flag为组密钥生成请求标帜,S,T,V为第一步生成的组密钥种子、生成时间和随机数;hop为邻居节点跳数,表示向hop跳的邻居节点请求组密钥生成片断,初始值为1。
6.当邻居节点n收到节点S组密钥生成请求包时,如果它已经是节点S的转发组成员则表示已经向节点S发过组密钥生成片断,就不做任何回复,否则类似第二步进行计算A1,A2,Cn,Wn及rn并发送给源节点S。
7.节点S若收到t个有效的组密钥生成片断,Cj就开始合成组密钥,分别计算GKj。正确合成组密钥后将组密钥发给各个组成员,已知S和拥有系统公钥SPK的组成员节点都可以验证该组密钥正确性。
四、总结
由于该算法采用可验证秘密共享的思想,不但可以验证私钥分量的正确性,有效防止恶意节点提供错误私钥分量来破坏组密钥的合成。还可以在合成组密钥前首先验证Cj的有效性,错误的Cj将不能参加组密钥生成,提高了组密钥生成效率;同时由于采用t个Cj来合成组密钥,在合成过程中始终未暴露系统私钥,保证了私钥的安全性;最后,该算法以Ad hoc组播路由协议为基础,嵌入组密钥生成协议,因此组密钥生成成功率高。
参考文献:
[1]汪祥莉、李腊元,基于MANET的QoS多播路由协议研究.计算机科学. 2007,07.
[2]赵安军、徐邦海、郭雷,动态Ad hoc网络环境下组播源认证研究.计算机应用研究.2007,01.
[3]黄勤等,PKI/CA系统互操作技术实现模型分析.重庆大学学报,2003,12.
[4]洪帆、姜凡、张伟、陈晶、付才,移动Ad Hoc网络中带路由机制的密钥管理.计算机工程与科学.2007,03.
[关键词]移动自组网 安全 组密钥 算法
中图分类号:TN92 文献标识码:A 文章编号:1671-7597(2008)1110052-01
一、引言
移动自组网(Ad hoc)是指为了某种特定目的由移动设备临时组成,通过无线信道通信,不需要基站、路由器等固定的基础设施的高度动态、自组织的、多跳的临时性自治系统。
安全性是网络通信的首要保证,而Ad hoc网络中通信节点的移动、无线通信特点以及网络的无中心特性给保护网络通信的安全性带来新的挑战。在Ad hoc网络中,安全研究主要集中在信任和密钥管理、安全路由和入侵检测、可用性等方面。
信任和密钥管理:移动自组网网络加密系统的安全性依赖于有效的密钥管理。密钥管理包括信任模型、密钥生成与分发、密钥存储和加密系统等多个方面。安全路由:路由协议的安全目标是实现路由信息的可用性、真实性、完整性和抗抵赖性。
二、Ad hoc网络应用组播的安全研究
组播是一种允许一个或多个发送者发送单一的数据包到多个接收者的网络技术。在Ad hoc网络中,很多网络功能都是面向群组的,需要一个发送节点将相同的信息发送给多个接收节点。对于一些重要信息,采用组播方式是最好的选择。
在Ad hoc中,组密钥管理具有广泛的应用领域。组密钥管理系统需要满足扩展性、独立性、可靠性及安全性等特征。一般的管理方案有基于证书的方案和基于GDH的方案。
三、改进的组密钥生成算法
但目前的组密钥管理方案还很不完善,组密钥管理还存在缺乏可信的第三方、网络拓扑结构动态变化频繁等问题。其中组密钥的生成是最突出需要解决的问题。
新的组密钥生成算法是在结合现有按需组播协议ODMRP的基础上提出来,在ODMRP发现路由的同时生成组密钥,这样与路由过程和组密钥生成过程分开相比,有利于提高算法效率、减少网络开销。
(一)ODMRP简介
ODMRP协议的路由发现过程由路由请求和路由回复两个阶段组成。当源节点要发现一个组播路由时,它首先广播一个组播路由请求,其中跳数初始值为0,生存期根据网络规模设定初值。当某个节点收到这个组播请求包时,经过判断如果不是重复收到的包而且自己不是这个组播路由中的组成员时,就在路由表中存储发该包的节点地址,且将包中的跳数加1,如果跳数小于生存期则将自己的IP地址填到域中,然后广播新的路由请求包,否则就丢弃该包不再转发。当某一个组播路由目的节点收到这个组播路由请求包时,它生成一个组播路由回复包并向周围节点广播,当它的邻居节点接收到了这个包时,如果该包的下一节点地址是自己且自己不是这个组播路由的源节点,则置自己的FG_FLAG标帜,成为该组播路由的转发组的成员,然后生成自己的组播路由回复包继续广播。
(二)组密钥生成算法描述
在系统初始阶段,首先给每一个节点分发一个种子密钥生成函数seed(T),其中T为发起生成组密钥的时间,并且按照(n,t)门限方案为每一个节点生成私钥分量,同时用生成元g生成{gssk,ga1,…gat-1,}发送到所有相关节点。
密钥生成过程如下:整个网络使用公钥算法生成一对系统公钥SPK和系统私钥SSK,系统私钥采用拉格朗日差值多项式生成n个系统私钥分量,分别存放在系统n个节点中,任意t个节点联合提供私钥分量就可以生成系统私钥。
当组播源节点S需要发现组播路由时执行以下算法:
1.组播源节点S首先取当前系统时间T生成组密钥种子S=seed(T),然后在路由请求包中添加两个域存放组播源节点S和时间T所生成的随机数v并向邻居节点广播。邻居节点处理路由请求包时类似ODMRP。
2.当其中一个组播目的节点D收到路由请求包后,首先利用自己的私钥分量kd计算Cd=Skd mod N;Wd=gkd mod N,然后选随机数ud计算A1=Sud mod N,A2=gud mod N,rd=ud-v*kd然后生成组播路由回复包附上{A1,A2,Cd,Wd,rd}并向周围节点广播。
3.当中间节点i收到组播路由回复包后取出{A1,A2,Cd,Wd,rd},然后除了与ODMRP一样建立转发路由和设置转发组成员标帜外,也类似第二步用自己的密钥分量ki计算{Ai1,Ai2,Ci,Wi,ri}然后附在{A1,A2,Cd,Wd,rd}后面重新生成路由回复包并广播。
4.当组播源节点S收到路由回复包后验证组播目的节点提供的Kd和Wd以及转发组成员提供的Ki和Wi,判断Kd的正确性,若Kd正确,则计算Cd,同样验证各个中间节点提供的Ki和Ci。如果节点S收到t个有效的组密钥生成片断Cd或Ci,就转第七步生成组密钥。
5.节点S如果在路由发现过程中没有收到t个有效的组密钥生成片断,节点S就向邻居节点广播组密钥生成请求包,包格式为{flag,S,T,V,hop},其中flag为组密钥生成请求标帜,S,T,V为第一步生成的组密钥种子、生成时间和随机数;hop为邻居节点跳数,表示向hop跳的邻居节点请求组密钥生成片断,初始值为1。
6.当邻居节点n收到节点S组密钥生成请求包时,如果它已经是节点S的转发组成员则表示已经向节点S发过组密钥生成片断,就不做任何回复,否则类似第二步进行计算A1,A2,Cn,Wn及rn并发送给源节点S。
7.节点S若收到t个有效的组密钥生成片断,Cj就开始合成组密钥,分别计算GKj。正确合成组密钥后将组密钥发给各个组成员,已知S和拥有系统公钥SPK的组成员节点都可以验证该组密钥正确性。
四、总结
由于该算法采用可验证秘密共享的思想,不但可以验证私钥分量的正确性,有效防止恶意节点提供错误私钥分量来破坏组密钥的合成。还可以在合成组密钥前首先验证Cj的有效性,错误的Cj将不能参加组密钥生成,提高了组密钥生成效率;同时由于采用t个Cj来合成组密钥,在合成过程中始终未暴露系统私钥,保证了私钥的安全性;最后,该算法以Ad hoc组播路由协议为基础,嵌入组密钥生成协议,因此组密钥生成成功率高。
参考文献:
[1]汪祥莉、李腊元,基于MANET的QoS多播路由协议研究.计算机科学. 2007,07.
[2]赵安军、徐邦海、郭雷,动态Ad hoc网络环境下组播源认证研究.计算机应用研究.2007,01.
[3]黄勤等,PKI/CA系统互操作技术实现模型分析.重庆大学学报,2003,12.
[4]洪帆、姜凡、张伟、陈晶、付才,移动Ad Hoc网络中带路由机制的密钥管理.计算机工程与科学.2007,03.