一种基于802.1x的证书认证安全机制的本地mesh无线网络的制作方法

文档序号:15849351发布日期:2018-11-07 09:36阅读:233来源:国知局

本发明涉及一种基于802.1x的证书认证安全机制的本地mesh无线网络。

背景技术

当前本地无线网络一般为星型网网络拓扑,在户外苛刻环境下,如上行通讯接入点少而要求分布式、较离散、较大范围的无线节点接入网络,变得极为困难。另外,在安全机制上,主要只单纯以物理层的aes128加密作为安全保障,这在需要高安全要求的场景难以使用。



技术实现要素:

本发明的目的在于提供一种基于802.1x的证书认证安全机制的本地mesh无线网络,能够有效解决现有星型网网络拓扑安全性差的问题。

为了解决上述技术问题,本发明是通过以下技术方案实现的:一种基于802.1x的证书认证安全机制的本地mesh无线网络,

步骤一:经历802.15.4网络设备发现待接入的节点;

步骤二:进行802.1xradius认证,通过认证的节点被路由器发现、进行网络地址分配、路由器组网、注册至网管,加入整个无线网络;没有被认证的节点拒绝加入网络。

优选的,802.1x认证机制为:

一、证书的获取

radius服务器首先向ca证书颁发机构申请服务器证书,用于代表radius服务器的合法性,无线节点向ca证书颁发机构下载ca根证书,用来验证radius服务器下发的证书是否合法;

二、认证初始化

1)无线节点向cgr根节点发送一个eapol-start报文,开始802.1x接入的开始;

2)根节点向无线节点发送eap-request/identity报文,要求节点将自身信息送上来;

3)无线节点回应一个eap-response/identity给根节点的请求,其中包括用户的网络标识;

4)根节点以eapoverradius的报文格式将eap-response/identity发送给认证服务器radius,并且带上相关的radius的属性;

5)radius收到无线节点发来的eap-response/identity,根据配置确定使用eap-peap认证,并向根节点发送radius-access-challenge报文,里面含有radius发送给无线节点客户端的eap-request/peap/start的报文,表示希望开始进行eap-peap的认证;

6)根节点将eap-request/peap/start发送给认证无线节点;

三、建立tls通道

1)无线节点收到eap-request/peap/start报文后,产生一个随机数、自身支持的加密算法列表、tls协议版本、会话id、以及压缩方法,封装在eap-response/clienthello报文中发送给根节点;

2)根节点以eapoverradius的报文格式将eap-response/clienthello发送给认证服务器radiusserver,并且带上相关的radius的属性;

3)radius收到client发来的clienthello报文后,会从client的hello报文的加密算法列表中选择自己支持的一组加密算法+server产生的随机数+server证书(包含服务器的名称和公钥)+证书请求+server_hello_done属性形成一个serverhello报文封装在access-challenge报文中,发送给client;

4)根节点把radius报文中的eap域提取,封装成eap-request报文发送给无线节点;

5)无线节点收到报文后,进行验证server的证书是否合法(使用从ca证书颁发机构获取的根证书进行验证,主要验证证书时间是否合法,名称是否合法),即对网络进行认证,从而可以保证server的合法。如果合法则提取server证书中的公钥,同时产生一个随机密码串pre-master-secret,并使用服务器的公钥对其进行加密,最后将加密的信息clientkeyexchange+无线节点的证书+tlsfinished属性封装成eap-rsponse/tlsok报文发送给认证点根节点;

6)根节点以eapoverradius的报文格式将eap-response/tlsok发送给认证服务器radiusserver,并且带上相关的radius的属性;

7)radius收到无线节点发了的报文后,用自己的证书对应的私钥对clientkeyexchange进行解密,从而获取到pre-master-secret,然后将pre-master-secret进行运算处理,加上无线节点client和server产生的随机数,生成加密密钥、加密初始化向量和hmac的密钥,这时双方已经安全的协商出一套加密办法了,至此tls通道已经建立成功,以后的认证过程将使用协商出的密钥进行加密和校验;radiusserver借助hmac的密钥,对要在tls通道内进行认证的消息做安全的摘要处理,然后和认证消息放到一起;借助加密密钥,加密初始化向量加密上面的消息,封装在access-challenge报文中,发送给无线节点;

4认证过程

1)根节点把radius报文中的eap域提取,封装成eap-request报文发送给无线节点;

2)无线节点收到radiusserver发来报文后,用服务器相同的方法生成加密密钥,加密初始化向量和hmac的密钥,并用相应的密钥及其方法对报文进行解密和校验,然后产生认证回应报文,用密钥进行加密和校验,最后封装成eap-response报文发送给根节点。根节点以eapoverradius的报文格式将eap-response发送给认证服务器radiusserver,并且带上相关的radius的属性,这样反复进行交互,直到认证完成。在认证过程中,radiusserver会下发认证后用于生成空口数据加密密钥(包括单播、组播密钥)的pmk给无线节点;

3)服务器认证无线节点成功,会发送access-accept报文给根节点,报文中包含了认证服务器所提供的mppe属性;

4)根节点收到radius-access-accept报文,会提取mppe属性中的密钥做为wpa加密用的pmk,并且会发送eap-success报文给无线节点。

优选的,在通过802.1x认证后,运行mesh网络协议的无线节点,彼此间通过对dio/dis/dao这三种icmpv6网络管理消息来建立网络,首先是拓扑结构的建立和往上路由的建立,其次是向下路由的建立;

一、拓扑结构和往上路由的建立

a)首先,被指定为dodag根节点的无线节点,上电后向周围空间发送dio消息报文,dio消息中包含实例id、dodag版本号、根节点rank值、路由协议工作模式、路由代价等;

b)因为环境中可能存在多个根节点,所以一个刚上电的节点可能会收到多个根节点发过来的dio消息,此时该节点将会根据dio消息中的路由代价参数使用自己的目标函数来选定自己的父节点,之后再计算出自身的rank值;

c)然后,该节点修改dio中的路由代价和rank值后,再向自身周围发送dio消息报文;

d)类似的,其余的节点也会同时收到好多节点发送的dio消息报文,他们则各自通过自身的目标函数从中选出某个节点作为自己的父节点,然后又修改dio中的路由代价和rank值后,再向自身周围发送dio消息报文;

e)依次进行,这样所有节点都在知道自己的父节点了;

f)网络中的无线节点,都将父节点作为路由时默认的下一跳节点;因此当节点往上发送数据包时,就先发给父节点,然后通过父节点转发;

二、往下路由的建立

a)一个无线节点收到dio消息后,向dodag根节点发送dao消息;dao消息中包含了通过该节点可以到达的地址或地址前缀信息;

b)该dao消息将通过父节点进行转发;

c)当根节点收到所有节点发送过来的dao消息后,就会建立到所有节点的路由表;

d)这样,当根节点需要向下发送数据包时,就根据路由表构建源路由进行发送。

与现有技术相比,本发明的优点是:网络拓扑采用mesh多跳网状网网络拓扑,能满足在在户外苛刻环境下,如上行通讯接入点少而要求分布式、较离散、较大范围的无线节点接入网络的需求,同时使用802.1x认证,在二层网络上实现用户认证,具有很高的安全性,可以适用于高安全要求的场景使用。

具体实施方式

一种基于802.1x的证书认证安全机制的本地mesh无线网络,

步骤一:经历802.15.4网络设备发现待接入的节点;

步骤二:进行802.1xradius认证,通过认证的节点被路由器发现、进行网络地址分配、路由器组网、注册至网管,加入整个无线网络;没有被认证的节点拒绝加入网络。

网络拓扑采用mesh多跳网状网网络拓扑,能满足在在户外苛刻环境下,如上行通讯接入点少而要求分布式、较离散、较大范围的无线节点接入网络的需求。通过无线节点间的互相中继、路由转发,使得大范围、分散的无线节点,都可以共同通过根节点的上行通讯接入点而实现上下通讯。

802.1x认证机制为:

一、证书的获取

radius服务器首先向ca证书颁发机构申请服务器证书,用于代表radius服务器的合法性,无线节点向ca证书颁发机构下载ca根证书,用来验证radius服务器下发的证书是否合法;

二、认证初始化

1)无线节点向cgr根节点发送一个eapol-start报文,开始802.1x接入的开始;

2)根节点向无线节点发送eap-request/identity报文,要求节点将自身信息送上来;

3)无线节点回应一个eap-response/identity给根节点的请求,其中包括用户的网络标识;

4)根节点以eapoverradius的报文格式将eap-response/identity发送给认证服务器radius,并且带上相关的radius的属性;

5)radius收到无线节点发来的eap-response/identity,根据配置确定使用eap-peap认证,并向根节点发送radius-access-challenge报文,里面含有radius发送给无线节点客户端的eap-request/peap/start的报文,表示希望开始进行eap-peap的认证;

6)根节点将eap-request/peap/start发送给认证无线节点;

三、建立tls通道

1)无线节点收到eap-request/peap/start报文后,产生一个随机数、自身支持的加密算法列表、tls协议版本、会话id、以及压缩方法,封装在eap-response/clienthello报文中发送给根节点;

2)根节点以eapoverradius的报文格式将eap-response/clienthello发送给认证服务器radiusserver,并且带上相关的radius的属性;

3)radius收到client发来的clienthello报文后,会从client的hello报文的加密算法列表中选择自己支持的一组加密算法+server产生的随机数+server证书(包含服务器的名称和公钥)+证书请求+server_hello_done属性形成一个serverhello报文封装在access-challenge报文中,发送给client;

4)根节点把radius报文中的eap域提取,封装成eap-request报文发送给无线节点;

5)无线节点收到报文后,进行验证server的证书是否合法(使用从ca证书颁发机构获取的根证书进行验证,主要验证证书时间是否合法,名称是否合法),即对网络进行认证,从而可以保证server的合法。如果合法则提取server证书中的公钥,同时产生一个随机密码串pre-master-secret,并使用服务器的公钥对其进行加密,最后将加密的信息clientkeyexchange+无线节点的证书+tlsfinished属性封装成eap-rsponse/tlsok报文发送给认证点根节点;

6)根节点以eapoverradius的报文格式将eap-response/tlsok发送给认证服务器radiusserver,并且带上相关的radius的属性;

7)radius收到无线节点发了的报文后,用自己的证书对应的私钥对clientkeyexchange进行解密,从而获取到pre-master-secret,然后将pre-master-secret进行运算处理,加上无线节点client和server产生的随机数,生成加密密钥、加密初始化向量和hmac的密钥,这时双方已经安全的协商出一套加密办法了,至此tls通道已经建立成功,以后的认证过程将使用协商出的密钥进行加密和校验;radiusserver借助hmac的密钥,对要在tls通道内进行认证的消息做安全的摘要处理,然后和认证消息放到一起;借助加密密钥,加密初始化向量加密上面的消息,封装在access-challenge报文中,发送给无线节点;

4认证过程

1)根节点把radius报文中的eap域提取,封装成eap-request报文发送给无线节点;

2)无线节点收到radiusserver发来报文后,用服务器相同的方法生成加密密钥,加密初始化向量和hmac的密钥,并用相应的密钥及其方法对报文进行解密和校验,然后产生认证回应报文,用密钥进行加密和校验,最后封装成eap-response报文发送给根节点。根节点以eapoverradius的报文格式将eap-response发送给认证服务器radiusserver,并且带上相关的radius的属性,这样反复进行交互,直到认证完成。在认证过程中,radiusserver会下发认证后用于生成空口数据加密密钥(包括单播、组播密钥)的pmk给无线节点;

3)服务器认证无线节点成功,会发送access-accept报文给根节点,报文中包含了认证服务器所提供的mppe属性;

4)根节点收到radius-access-accept报文,会提取mppe属性中的密钥做为wpa加密用的pmk,并且会发送eap-success报文给无线节点。

在通过802.1x认证后,运行mesh网络协议的无线节点,彼此间通过对dio/dis/dao这三种icmpv6网络管理消息来建立网络,首先是拓扑结构的建立和往上路由的建立,其次是向下路由的建立;

一、拓扑结构和往上路由的建立

a)首先,被指定为dodag根节点的无线节点,上电后向周围空间发送dio消息报文,dio消息中包含实例id、dodag版本号、根节点rank值、路由协议工作模式、路由代价等;

b)因为环境中可能存在多个根节点,所以一个刚上电的节点可能会收到多个根节点发过来的dio消息,此时该节点将会根据dio消息中的路由代价参数使用自己的目标函数来选定自己的父节点,之后再计算出自身的rank值;

c)然后,该节点修改dio中的路由代价和rank值后,再向自身周围发送dio消息报文;

d)类似的,其余的节点也会同时收到好多节点发送的dio消息报文,他们则各自通过自身的目标函数从中选出某个节点作为自己的父节点,然后又修改dio中的路由代价和rank值后,再向自身周围发送dio消息报文;

e)依次进行,这样所有节点都在知道自己的父节点了;

f)网络中的无线节点,都将父节点作为路由时默认的下一跳节点;因此当节点往上发送数据包时,就先发给父节点,然后通过父节点转发;

二、往下路由的建立

a)一个无线节点收到dio消息后,向dodag根节点发送dao消息;dao消息中包含了通过该节点可以到达的地址或地址前缀信息;

b)该dao消息将通过父节点进行转发;

c)当根节点收到所有节点发送过来的dao消息后,就会建立到所有节点的路由表;

d)这样,当根节点需要向下发送数据包时,就根据路由表构建源路由进行发送。

以上所述仅为本发明的具体实施例,但本发明的技术特征并不局限于此,任何本领域的技术人员在本发明的领域内,所作的变化或修饰皆涵盖在本发明的专利范围之中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1