一种基于预共享密钥的分布式鉴权方法

文档序号:9567633阅读:492来源:国知局
一种基于预共享密钥的分布式鉴权方法
【技术领域】
[0001]本发明涉及无线通信领域,尤其涉及一种基于预共享密钥的分布式鉴权方法。
【背景技术】
[0002]IEEE802.1li标准中的鉴权机制是:首先在发现阶段,站点STA通过Probe流程(或侦听Beacon),获得接入节点AP的安全信息,协商安全功能配置,并为之建立关联;然后在认证阶段,站点STA和认证服务器AS进行鉴权流程,站点STA和认证服务器AS相互向对方证明自己的标志,根据证明结果决定STA非认证流量的使用,其中接入节点AP不参与鉴权交互过程,只转发站点STA与认证服务器AS之间的通信。
[0003]IEEE802.16标准中的鉴权机制是:当站点STA关联或是重新关联接入节点AP时,接入节点AP向站点STA发送认证激活启动整个认证过程,然后站点STA向接入节点AP开始发送认证请求消息,AP向AS发送消息携带其证书、私钥和STA认证信息,AS验证AP和STA证书的有效性,返回应答,AP根据响应结果对STA进行接入控制,同时STA根据应答消息AS签名进行认证,决定是否接入该AP。
[0004]上述两种现有鉴权机制的缺陷在于:这两种鉴权方式都设置有专门的鉴权节点,鉴权节点如果发生故障,将导致整个网络都无法完成节点的接入。同时专有的鉴权节点可能成为网络扩展的瓶颈。

【发明内容】

[0005]为了解决上述现有技术的缺陷,本发明提出一种基于预共享密钥的分布式鉴权方法,凡是成功入网的节点都可以作为鉴权节点,认证过程用到的密钥的都是基于预共享密钥为根密钥产生,该方法包括:
[0006]请求入网节点在入网前,获取通信网络的所有节点均共享的一个密钥,即预共享密钥,然后选择任意一个成功入网的节点作为鉴权节点进行双向鉴权,即相互验证对方身份是否合法;
[0007]针对请求入网节点和验证节点之间的每一次双向鉴权,双方节点均生成一个随机数,并根据预共享密钥和生成的随机数生成一个临时密钥和一个验证密钥,临时密钥用于对发送的鉴权交互消息进行加密,验证密钥用于验证对方节点身份;双方节点还均在本地维护一个标识序号,用于在本地标识两者之间的有效双向鉴权;
[0008]在双向鉴权过程中,一方节点根据预共享密钥和接收到的对方节点的随机数恢复出对方临时密钥和对方验证密钥,使用对方临时密钥对接收的鉴权交互消息进行解密,接收并解密对方标识序号后与本地标识序号比较,验证是否满足防重放攻击条件,如果不满足则判断本次双向鉴权无效,如果满足则判断本次双向鉴权有效,将恢复出的对方验证密钥加密后发给对方节点,对方节点接收并解密后验证是否与自身生成的验证密钥相同,如果不相同,则鉴权失败,如果相同,则判断双方拥有相同的预共享密钥,所述一方节点的身份合法。
[0009]优选的,双方节点均在本地维护一个标识序号,在双向鉴权过程中,双方节点均判断本次双向鉴权有效后,双方节点的本地标识序号均增加固定步长。进一步的,双方节点的本地标识序号的初始值均置为0,在双向鉴权过程中:
[0010]一方节点接收并解密对方标识序号后与本地标识序号比较,验证是否满足防重放攻击条件,如果不满足则判断本次双向鉴权无效,双方节点的本地标识序号均复位为0,如果满足则判断本次双向鉴权有效;双方节点均判断本次双向鉴权有效后,双方节点的本地标识序号均增加I ;所述防重放攻击条件为解密出的对方标识序号与本地标识序号之间的差值不超出设定的门限值。
[0011]优选的,所述通信网络是一个无线自组网网络。
[0012]优选的,鉴权成功以后进行相关业务,基于预共享密钥生成业务信息的加密和解密密钥。
[0013]本发明的优点在于:1,凡是成功入网的节点都可以作为鉴权节点;3,认证过程中产生的密钥是基于分级密钥体系中的根密钥(即预共享密钥),认证过程中根密钥不直接参与,保证根密钥的安全性,且认证完成以后的业务信息加密密钥也是基于根密钥产生的。3,接入节点和验证节点进行双向认证,鉴权结果更可靠;4,认证过程所使用的算法是国内首推的祖冲之算法,具有很高的权威性和安全性。
【附图说明】
[0014]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1是本发明实施例的双向鉴权过程的流程图。
【具体实施方式】
[0016]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例;需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0017]本实施例以一个无线自组网的分布式鉴权为例。无线自组网是由一组带有无线收发装置的可移动终端节点组成的无中心网络,是可以不依赖人为操作自组织、自愈合的网络。网络中的各个节点相互协作完成信息交换,实现信息和服务共享。在无线自组织网络中,通信终端可以为各种便携通信设备,如传感器节点、手机、PC等。请求入网节点是请求加入无线自组织网络中的节点,或者已经加入到无线自组织网络中,但是发生了移动需要更换邻节点的节点,验证节点是接受请求入网节点入网请求的节点,鉴权节点一定是已经成功接入到无线自组网的节点。
[0018]无线自组网的所有节点都共享一个预共享密钥(PSK,Pre-Share Key),它是整个分级密钥体系的根密钥,认证过程中的密钥都是基于PSK产生的,且认证完成以后的业务信息加密密钥也是基于PSK产生的。鉴权时需要进行身份认证,身份认证指的是每个节点需要确认与其通信的节点的身份,本实施例中双向身份认证的原理就是要验证请求入网节点和鉴权节点是否拥有相同的PSK。
[0019]为了增强保密性,每次双向鉴权时双方节点都会产生各自不同的临时密钥,用于对发送的鉴权交互消息进行加密,在鉴权结束后临时密钥就失效。本实施例中双方节点根据预共享密钥和生成的随机数生成一个临时密钥。
[0020]鉴权成功以后进行相关业务,业务信息的加密和解密密钥是基于预共享密钥生成的。本实施例中,请求入网节点在验证鉴权节点合法后,进行自身的PTK (PairwiseTransient key,成对临时密钥)的衍生,鉴权节点在验证请求入网节点合法后,进行自身的PTK的衍生。PTK生成后保存在内存中,用于组临时密钥传输加密和单播数据的加密。
[0021 ] 为了防止重放攻击,在规划无线自组网的时候,所有预加入到此无线自组网中的节点都必须将该自组网中的其他节点的标识ID预先导入到该节点的flash中,并且针对其他每一个节点都要维护一个标识序号,用于在本地标识与该其他节点之间的有效双向鉴权,标识序号的初始值均置为0,在双向鉴权过程中,一方节点接收并解密对方标识序号后与本地标识序号比较,验证是否满足防重放攻击条件,如果不满足则判断本次双向鉴权无效,双方节点的本地标识序号均复位为0,如果满足则判断本次双向鉴权有效;在双方节点均判断本次双向鉴权有效后,双方节点的本地标识序号均增加1,本实施例的防重放攻击条件为解密出的对方标识序号与本地标识序号之间的差值不超出设定的门限值。
[0022]本实例假设节点A为请求接入节点,节点B为鉴权节点,节点A在本地为节点B维护一个标识序号ID_B,节点B在本地为节点A维护一个标识序号ID_A,ID_B和ID_A初始值置为O ;双向鉴权流程如图1,具体步骤如下:
[0023]a,请求入网节点A向鉴权节点B发送鉴权试探消息,具体为:
[0024]al,节点A生成一个随机数RandA,其中随机数的目的主要是为了使产生的数据流不可预测,保密性更强;
[0025]a2,根据预共享密钥PSK和RandA通过Fl算法生成一个临时密钥MTKA,MTKA =Fl (PSK RandA),Fl是一种基于祖冲之算法的消息摘要算法;
[0026]a3,根据MTKA和RandA通过Fl算法生成一个验证密钥MRC_B,MRC_B =Fl (RandAI MTKA);
[0027]a4,使用MTKA通过F2算法对ID_B进行加密得到加密后的数据ERandAID,ERandAID = F2 (MTKA, ID_B),F2是一种基于祖冲之算法的加解密算法;
[0028]a5,节点A向节点B发送鉴权试探消息,携带Rand_A和ERandAID ;
[0029]b,节点B接收鉴权试探消息,执行如下步骤:
[0030]bl,节点B根据PSK和接收到的RandA通过Fl算法恢复出MTKA,MTKA =Fl (PSKI I RandA);
[0031 ] b2,根据MTKA对接收到的ERandAID进行解密得到ID_B,ID_B = F2 (MTKA,ERandAID),和本地ID_A比较,验证是否满足防重放攻击条件,如果不满足则本地ID_A复位为0,返回鉴权试探失败响应,携带标识序号无效指示,节点A接收鉴权试探失败响应后将本地ID_B复位为0,如果满足则继续下一步;
[0032]b3,根据 MTKA 和 RandA 通过 Fl 算法恢复出 MRC_B,MRC_B = Fl (RandA | | MTKA);
[0033]b4,生成一个随机数RandB ;
[0034]b5,根据PSK和RandB通过Fl算法生成一个临时密钥MTKB, MTKB =Fl (PSKI I RandB);
[0035]b6,根据MTKB和RandB通过Fl算法生成一个验证密钥MRC_A,MRC_A =Fl(RandBI MTKB);
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1