基于DAA的移动AdHoc网络匿名认证方案范文摘要:随着移动Adhoc网络(MANET)技术的发展,安全问题受到越来越多的关注。
认证服务是MANET安全的基础。
近年来,研究人员提出了各种MANET的认证方案,但对于开放环境下MANET的匿名性要求考虑较少。
本文基于可信计算技术中的直接匿名证明协议(DAA)[1],提出了一种适合于MANET环境的匿名认证方案,在解决MANET无中心认证问题的同时,实现了节点身份的匿名性,增加了签名的可追踪性,并对节点的访问权限进行了划分,能够满足更多应用场合的要求。
关键词:认证;adhoc;权限划分;匿名;安全AnAnonymousAuthenticationSchemeforMobileAdHocNetworksBasedon DAAYUEKang1,ZHANGTao1,SUOYan1,MAOWei-xing2Keywords:authentication;adhoc;privilegeclassification;anonym ity;security移动Adhoc网络(MANET)是一种自创建、自组织、自管理的网络,网络中的节点不仅要具备普通移动终端的功能,还要具有报文转发能力,即要具备路由器的功能。
MANET最早用于军事上的战术互联网,但随着技术的发展,MANET也越来越多地运用于民用领域。
由于其不需要固定的基础设施和集中式管理,在灾难情况(如地震、爆炸等)、电子会议等需要临时快速配置网络的场景中有着巨大的应用前景。
与传统网络相比,MANET 有着不同的特性,也面临着新的安全威胁:1)无线信道的无向性质以及对空开放,使其很容易被截获和干扰;2)节点易受到攻击被俘获,这意味着网络中的节点都是不可信的;3)节点的移动性使网络拓扑随时可能发生变化,从而使网络管理变得困难;4)缺乏固定的基础设施(如缺乏服务器、CA机构等),使传统的认证、加密等安全措施不能直接使用。
随着MANET技术的发展,安全问题已成为热点研究领域。
而在所有安全措施中,认证是安全的基础。
因为内部节点攻击的破坏可能危及整个网络系统安全,并且防范比较困难,认证服务是拒绝恶意节点访问网络的根本途径。
不管是对于军事应用还是其他应用,保证信息安全都是至关重要的。
而对于越来越广泛的MANET应用,有时需要对网络中节点的权限进行细致地划分,以决定节点所能获得的服务。
本文提出的分级认证方案够很好地解决此问题,在认证中根据对方的身份级别来提供相应的服务。
例如在军事战术互联网中,根据节点的身份来区分其所能访问的数据库级别。
在民用领域,节点的权限划分同样重要,如区分网络中用户的级别,划分普通用户和VIP用户等,以区分其所能获得网络资源的权限。
匿名性在很多应用中不但能够保护用户隐私信息,而且是安全方案中重要的组成部分,特别是在战术互联网的应用中,不但要求攻击者不能窃听到通讯的内容(机密性),不能中断通讯(有效性和完整性),还要求通信双方的身份和位置信息对攻击者是匿名的。
否则,攻击者可能推算出有关位置、移动或者通信模式等重要信息,从而发起物理上的攻击[2]。
同时,通过匿名性也可以加强对网络中重要节点的保护,如骨干节点等[8]。
1相关工作近年来,研究者提出了各种MANET的认证方案,主要解决MANET无固定基础设施带来的认证问题,主要有分布式CA、基于信任链的认证以及基于簇的认证等方法。
分布式CA的方案最早由Zhou和Haas提出[3],采用门限密码机制(n,k),把CA的功能分散到选定的n个节点上,每个CA节点持有一个部分CA密钥。
一个新节点要获取证书,必须向其中任意k个CA节点请求,每个CA节点给其签名后生成部分签名证书,最后由这些部分签名证书合并成完整的签名证书。
Luo等对此分布式方案进行了改进[4-5],把CA的功能分散到网络中的所有节点上,每个节点都持有部分私钥,任意k个节点合作可以完成CA的功能,这样提高了系统的可用性。
此方案适合于节点密度较高、范围较广的社区AdHoc网络,当节点数目较少时,认证将变得困难,另外方案对于初始信任的建立没有给出很好的方法。
基于信任链认证的思想是信任的可传递性。
Capkun在[6]中提出了一种基于信任链的认证方案,每个节点都需要维护两个证书库,一个存储它向其他节点颁发的证书,另一个存储其他节点向它颁发的证书。
当节点相互认证时,将这两个证书库合并,看是否能找到一条信任路径。
但在在网络建立初期,所有节点之间都没有建立信任关系时,节点内并不存在证书库,这时节点的相互认证就无法进行。
基于簇的认证是根据地理位置把网络划分为多个小的局域网,称之为簇,每个簇中选取一个头节点(clusterheader)负责管理。
很多基于簇的方案也并用其他认证的方法,如Bechler在文献[7]中提出,将CA的功能分散到每个簇的头节点上,采用分布式CA的方法对新节点进行认证和签发证书。
基于簇的认证方案比较适合大型MANET,但对于簇头节点性能要求较高,也容易造成簇头节点周围网络的局部拥塞。
同时,MANET中的节点随时都可能离开网络,当簇头节点离开时,重新选取簇头节点的过程比较复杂,耗费较高。
另外,还有基于身份的认证、kerberos辅助认证[11]以及基于位置受限的认证等方法。
现有的MANET研究对于网络匿名性的考虑较少[12],通过在认证方案中加入匿名机制,能够很好地满足这一要求。
2.1直接匿名证明协议介绍(DAA)直接匿名证明协议(DAA)[1]由Brickell等人于2022年提出,用于解决可信计算技术中远程证明的问题。
DAA是基于Camenisch-Lysyanskaya(CL)签名方案[9],采用了离散对数的零知识证明的方法。
DAA协议的过程如图所示,其中包括三个参与方,分别为证明方(Prover)、验证方(Verifier)和DAA颁发者(DAAIssuer),协议由三部分组成:DAA-Join协议:证明方产生秘密信息f0和f1,通过零知识证明的方法向DAA颁发者申请证书,DAA颁发者用私钥签名生成证书发送给证明方;DAA-Sign协议:证明方通过秘密信息f0和f1和证书对自己产生的公钥AIKi进行签名,发送给验证方;DAA-Verify协议:验证方对签名进行验证。
2.2方案描述2.2.1基本思想本方案是对DAA协议的拓展性应用,使其适用于MANET环境。
DAA协议采用群签名的算法,但在设计时去除了群签名可追踪的特性,也就是任何节点或者群管理员都无法知道签名者是谁,这在MANET应用中存在问题,当网络中出现纠纷,或者发现恶意行为时,必须能够追踪到签名者身份。
本方案中,节点向管理员申请证书时,管理员给每个节点生成一个唯一的ID,并将此ID加入到颁发的证书中,必要时可以通过管理员追踪到签名者身份。
方案中在节点证书中加入L参数,用以标识节点证书的权限,通过L参数验证方判断请求方是否具有某些访问权限,比如给低等级权限节点只提供报文转发的服务,而具有更高权限的节点,则可访问更高等级的数据,这非常适用于分层AdHoc网络。
2.2.2网络初始化在DAA协议中,对于公钥的产生和各个参数的要求有非常详细的描述,本方案中管理员M采用同样的方法产生群公钥(n,g",g,h,S,Z,R0,R1,R2,R3,γ,Г,ρ),管理员M私钥为p,q,在网络初始化阶段,管理员把群公钥发给每个节点。
在网络初始化阶段,节点和管理员通过离线的安全可靠的方式建立初始信任。
每个节点自己产生秘密信息f,计算U=R0fSv"modn,并把U的值和自己的身份信息交给群管理员M,从而完成身份的注册,管理员给用户生成一个ID,,其中Info为部分用户信息(如节点申请的用户名等),b为随机数。
管理员M将用户的身份信息和ID绑定,加入到可信列表中。
然后管理员给用户颁发证书,过程如下:1)管理员M根据用户的身份产成L和T两个参数:L:表示用户的权限级别;T:表示证书的有效时间,且L,T∈{0,1}lf。
2)管理员M随机选择和,并计算,用户得到证书(ID,A,e,v,L,T)。
2.2.3签名与验证1)证明方产生一个随机数a∈R,计算E=aIDmodГ,将a和E同时发送给验证方。
2)证明方随机选择,计算T1=Ahwmodn,。
3)进行知识签名:具体证明过程如下:证明方随机选择整数计算证明方随机选择整数,计算最后得到签名:证明方将签名σ以及被签名的信息发送给验证方,这里m为证明方的公钥,证明方自己产生公私钥对(PKi,Ski)。
4)验证操作验证方收到证明方的签名σ以及被签名的信息m后,首先验证参数L和T,通过L的值判断此节点是否具有足够的权限访问网络;通过T的值判断此证书是否过期。
如果这两项条件之一不满足,则验证方拒绝此次请求。
如果满足此两条,则继续以下验证:验证方计算验证最后,验证方查看恶意列表,对于列表中的所有ID值,计算,如果等式成立说明用户的ID在恶意里表中,验证者拒绝请求。
反之,则完成此次验证,证明方通过了身份认证,并同时证明了其公钥信息的真实性,通过此公钥验证方可以安全地给证明方传递会话密钥,建立安全的通信连接。
2.2.4追踪签名者方案中的作用是为了实现签名的可追踪性,但只有管理员能够查找出签名者是谁。
当网络中发生纠纷或者检测到恶意行为时,可以求助于管理员对签名者进行追踪,将节点在签名过程中的a和E发送给管理员,管理员通过对列表中所有ID,计算E?=aIDmodГ,找出签名者。
3方案分析3.1安全性分析在网络初始化阶段,节点通过离线的方式向管理员注册并申请证书,通过这种方式建立初始信任可靠性最高。
同时节点的签名具有可追踪性,节点在检测到恶意行为,通过求助于管理员可以追踪出签名者的身份,这样可以更好地规范网络中节点的行为。
节点自己生成密钥f,只把U发送给管理员M,管理员M虽然知道节点的ID,但并不知道节点的密钥f,所以管理员M并不能进行伪造签名。
证明方在请求验证时,必须向验证方发送E的值,也就是用自身的ID对随机数a的一个签名,因为在证书中A的值里包含有节点ID的信息,所以节点如果使用假的ID计算E,在验证过程中就无法通过。
在签名过程中采用了零知识证明的方法,文献[1]已经证明了其在DDH和强RSA假设下的安全性,这里不予赘述。
3.2匿名性分析方案中采用零知识证明的方法进行身份的认证,实现了节点身份的匿名性。
证明方每次认证中,产生一个随机数a,计算E=aIDmodГ,将a和E发送给验证方,验证方不能计算出节点的ID。
同时由于节点每次产生a不同,所以E也不同,从而不能通过两次认证过程对节点的身份进行关联。
节点自己产生公私钥对(PKi,SKi),在每次认证过程中,发给证明方的公钥(也就是第三节中的信息)可以不同,通过管理员颁发的证书对其进行签名,证明其合法性。