本发明属于无线通信技术领域,更进一步涉及无线局域网络安全技术领域中的一种基于物理层密钥协商增强wlan安全性的方法。本发明以基于无线信道物理参数的密钥协商技术为基础,提出了一种可用于无线局域网络中,实现无线局域网络中的各个通信节点安全通信的方法。
背景技术:
如何保证公共wlan中的各个通信节点与接入点之间直接安全可靠地进行信息传输是无线网络安全领域中的一个重要的议题,也是解决当下公共wlan安全隐患的核心任务之一。基于无线信道物理参数的密钥协商技术是实现两个无线设备之间不依赖于传统密码学方法便能生成共享密钥的网络安全关键技术,能够实现用于解决公共wlan中通信节点的安全通信需求。
李兴华和尚朝晖在其发表的论文“利用无线物理层密钥增强802.11i的安全性”(江苏大学学报,2013)中提出了无线局域网安全性增强技术。该方法的主要步骤是:(1)在移动站点和接入点之间生成物理层密钥pk;(2)使用生成的pk保护数据帧和管理帧;(3)参与加密密钥的生成,在后续认证过程中对消息加密。该方法存在的不足之处是,使用网络层的数据探针生成物理层密钥pk,密钥匹配率低,密钥生成速率低。生成的物理层密钥pk没有更新机制,长时间使用会增加泄露的风险。
皇家飞利浦电子股份有限公司在其申请的专利文献“增强无线局域网安全的方法”(申请号031249124,申请日期2003.09.19,公开日期2005.03.23)中提出了一种增强无线局域网安全的方法。该方法的主要步骤是:(1)读取存储在身份卡中的密钥;(2)根据读取到的密钥以及相应的加密算法请求无线接入点进行身份认证处理;(3)如果身份认证成功,接入无线局域网。利用该方法,可以对即将接入无线局域网的无线终端进行强制身份认证以防止未经授权的无线终端进入网络而导致网络不安全。该方法存在的不足之处是:该方法主要是增强认证的安全性,并不能保护通信的安全性,并且需要使用到身份卡来预先存储一个安全密钥,然而现在无线局域网中的大多数设备并不存在这样一个身份卡,这会大大限制该方法的适用性。
技术实现要素:
本发明的目的在于克服上述现有技术的不足,提出一种基于物理层密钥协商的wlan安全增强方法,以保护认证流程,保证wlan中的各个通信节点的安全通信,防范当前wlan存在的安全隐患,增强wlan的安全性。
为实现上述目的,本发明采用的技术方案包括物理层加密密钥协商,加密通信数据包,更新加密密钥三个阶段。
第一阶段:物理层加密密钥协商的步骤如下:
(1)数据链路层采集信号强度值:
(1a)接入点ap在100到200的范围内随机选择一个整数m作为数据包交互总次数,发送给站点sta,将接入点ap初次交互次数设置为1;
(1b)在数据链路层,接入点ap向站点sta发送请求数据包,站点sta接收到请求数据包之后向接入点ap发送响应数据包,站点sta记录无线信道的信号强度值,接入点ap在接受到响应数据包之后记录无线信道的信号强度值;
(1c)接入点ap判断当前交互次数是否等于总交互次数m,若是,则执行步骤(1d),否则,接入点ap将当前交互次数加1,执行步骤(1b);
(1d)将接入点ap的信号强度值组成信号强度序列,将站点sta的信号强度值组成信号强度序列,执行步骤(2);
(2)筛选信号强度值序列:
(2a)采用阈值计算方法,分别计算接入点ap信号强度值序列的上阈值和下阈值以及站点sta信号强度值序列的上阈值和下阈值;
(2b)筛选接入点ap的信号强度值序列,得到接入点ap的阈值外信号强度值序列和阈值内信号强度值序列,筛选站点sta的信号强度值序列,得到站点sta的阈值外信号强度值序列和阈值内信号强度值序列;
(2c)采用阈值计算方法,分别计算接入点ap阈值外信号强度值序列的上阈值和下阈值以及接入点ap阈值内信号强度值序列的上阈值和下阈值;
(3)量化阈值外信号强度序列:
(3a)将接入点ap的初次量化次数设置为1;
(3b)将满足下式的当前量化次数记录到接入点ap的序列号数组:
a[i]<q+且a[i]>q-
其中,a表示接入点ap的信号强度值序列,[·]表示数组取值操作,i表示入点ap的当前量化次数,q+表示接入点ap阈值外信号强度序列的上阈值,q-表示接入点ap阈值外信号强度序列的下阈值;
(3c)判断接入点ap当前量化次数是否大于接入点ap阈值外信号强度序列的长度值,若是,执行步骤(3d),否则,将接入点ap当前量化次数加1,执行步骤(3b);
(3d)将接入点ap的序列号数组发送给站点sta作为站点sta的序列号数组,将站点sta的初次量化次数设置为1;
(3e)按照下式,得到站点sta的序列号:
s=b[j]
其中,s表示站点sta的序列号,b表示站点sta的序列号数组,[·]表示数组取值操作,j表示站点站点sta的当前量化次数;
(3f)将满足下式的站点sta的序列号记录到站点sta的最终序列号数组:
c[s]<q+且c[s]>q-
其中,c表示站点sta的阈值外信号强度序列,s表示站点sta的序列号,q+表示接入点站点sta阈值外信号强度序列的上阈值,q-表示站点sta阈值外信号强度序列的下阈值;
(3g)判断站点sta的当前量化次数是否大于站点sta阈值外信号强度序列的长度值,若是,执行步骤(3h),否则,将站点sta当前量化次数下标加1,执行步骤(3e);
(3h)将站点sta的最终序列号数组发送给接入点ap作为接入点ap的最终序列号数组;
(3i)利用序列号转换方法,分别将接入点ap和站点sta的最终序列号数组和阈值外信号强度值序列,转换成接入点ap的比特序列以及站点sta的比特序列;
(4)量化阈值内信号强度序列:
(4a)按照下式,计算接入点ap和站点sta信号强度值序列的信号强度值:
r=max(x)-min(x)
其中,r表示信号强度范围值,x表示信号强度值序列,max表示最大值操作,min表示最小值操作;
(4b)按照下式,分别计算接入点ap和站点sta的信号强度值序列的等分间隔数:
其中,k表示等分间隔数,
(4c)将初次循环次数设置为1;
(4d)按照下式,分别计算接入点ap和站点sta的信号强度值:
s=d[p]
其中,s表示信号强度值,d表示阈值内信号强度值序列,p表示当前循环次数;
(4e)按照下式,分别计算接入点ap和站点sta的信号强度值所在区间编号:
其中,n表示,s表示信号强度值,k为接入点ap的区间间隔数;
(4f)分别将接入点ap的信号强度值所在区间编号和站点sta的信号强度值所在区间编号转化为格雷码;
(4g)将接入点ap的格雷码存入接入点ap的阈值内比特序列,将站点sta的格雷码存入站点sta的阈值内比特序列;
(4h)判断当前循环次数是否等于接入点ap阈值内信号强度值序列的长度值,若是,则分别得到接入点ap和站点sta的阈值内比特序列,执行步骤(5),否则,将当前循环次数加1后执行步骤(4d);
(5)生成物理层密钥:
将接入点ap的阈值外比特序列和阈值内比特序列拼接成接入点ap的物理层密钥pk,将站点sta的阈值外比特序列和阈值内比特序列拼接成站点sta的物理层密钥pk;
(6)扩展物理层密钥:
(6a)利用密钥扩展算法,将物理层密钥pk扩展为384bit的主密钥pmk;
(6b)利用密钥扩展算法,将物理层密钥pk扩展为256bit的组密钥gk;
第二阶段加密通信数据包步骤如下:
(7)加密数据包:
(7a)将会话密钥sk作为加密密钥,利用高级加密标准aes,加密wlan管理帧数据包;
(7b)将会话密钥sk作为加密密钥,利用高级加密标准aes,加密认证数据包;
(7c)站点sta向接入点ap的发起身份认证;
(7d)使用会话密钥sk作为加密密钥,利用高级加密标准aes,加密wlan通信数据包;
第三阶段更新加密密钥步骤如下:
(8)定时更新加密密钥:
每30分钟执行第一阶段物理层加密密钥协商,重新生成物理层加密密钥。
本发明与现有技术相比具有如下优点:
第一,由于本发明通过生成物理层密钥,扩展物理层密钥,加密数据包,保护了数据通信,克服了现有技术主要是增强认证的安全性,并不能保护通信的安全性的不足,使得本发明提升通信安全性。
第二,由于本发明通过数据链路层采集信号强度值,克服了现有技术中使用网络层的数据探针生成物理层密钥,密钥匹配率低,密钥生成速率低的不足本发明具有提高物理层密钥生成速率和密钥匹配率的优点。
第三,由于本发明通过定时更新加密密钥,克服了现有技术中生成的物理层密钥pk没有更新机制,长时间使用会增加泄露的风险,使得本发明具有防止加密密钥泄露的优点。
附图说明
图1是本发明的流程图;
图2是链路层数据包格式示意图;
图3是数据包交互示意图;
图4是信道强度值序列采集示意图。
具体实施方式
下面结合附图对本发明作进一步的描述:
参照图1,本发明包括物理层加密密钥协商,加密通信数据包,更新加密密钥三个阶段,第一阶段:物理层加密密钥协商的步骤如下。
步骤1,数据链路层采集信号强度值。
第1步,接入点ap在100到200的范围内随机选择一个整数m作为数据包交互总次数,发送给站点sta,将接入点ap初次交互次数设置为1。
第2步,在数据链路层,接入点ap向站点sta发送请求数据包,站点sta接收到请求数据包之后向接入点ap发送响应数据包,站点sta记录无线信道的信号强度值,接入点ap在接受到响应数据包之后记录无线信道的信号强度值。
第3步,接入点ap判断当前交互次数是否等于总交互次数m,若是,则执行本步骤的第4步,否则,接入点ap将当前交互次数加1,执行本步骤的第2步。
第4步,将接入点ap的信号强度值组成信号强度序列,将站点sta的信号强度值组成信号强度序列。
下面结合附图2对步骤(1b)中的数据链路层请求数据包和响应数据包的格式进行描述。
对原有数据链路层beacon帧进行修改,使用原本闲置的字段作为seq字段用于样本配对。
其中,framecontrol表示帧控制字段,duration表示发包间隔,da表示目的地址,sa表示源地址,bssid表示基本服务集,sequencecontrol表示序列控制字段,framebody表示帧体,seq表示序列号,fcs表示帧校检序列
下面结合附图3对步骤(1b)中的数据包交互过程进行描述。
数据包交互过程有正常流程和数据包丢失两种情况。
正常流程中,ap向sta发送请求请求数据包,sta在接收到请求数据包之后记录下数据包中的信号强度值,并向ap回复响应数据包。ap接收到响应数据包之后记录下数据包中的信号强度值。其中request为请求数据包的序列号,ack为响应数据包的序列号。
数据包丢失情况分为两种,如果ap向sta发送的请求数据包丢失,则ap在定时器超时后再次发送。如果sta向ap回复的响应数据包丢失,则只有sta记录数据包中的信号强度值。
下面结合附图4对步骤(1b)中的记录无线信道的信号强度值进行描述。
ap和sta开启无线网卡的侦听接口mon0,并设置过滤规则,在应用层使用数据包抓捕函数库libpcap抓取数据包,记录数据包中的信号强度ssisignal字段作为信号强度值。
其中,radiotapheader表示无线信号头部,ieee802.11data表示802.11数据字段,llc表示逻辑链路控制,upperlayerdata表示上层数据,ethernet表示以太网,headerversion表示头部版本号,headerdata表示头部数据,headerlength表示头部长度,presentflags表示现有标志,timestamp表示时间戳,flags表示标志,daterate表示数据速率,channelfrequency表示信道频率,ssisignal表示信号强度指标,libpcap表示数据包抓捕函数库,mon0表示零号侦听接口,ieee8023_parser表示802.3格式转换。
步骤2,筛选信号强度值序列。
采用阈值计算方法,分别计算接入点ap信号强度值序列的上阈值和下阈值以及站点sta信号强度值序列的上阈值和下阈值。
所述阈值计算方法的具体步骤如下:
第1步,按照下式,计算信号强度值序列的均值:
其中,m表示信号强度值序列的平均值,n表示信号强度值序列的长度,∑表示求和操作,si表示信号强度值序列中的第i个信号强度值。
第2步,按照下式,计算强度值序列的标准差:
其中,d表示信号强度值序列的标准差,√表示开方操作。
第3步,按照下式,计算信号强度序列的上阈值和下阈值:
q+=m+0.5d
q-=m-0.5d
其中,q+和q-分别表示信号强度序列的上阈值和下阈值。
筛选接入点ap的信号强度值序列,得到接入点ap的阈值外信号强度值序列和阈值内信号强度值序列,筛选站点sta的信号强度值序列,得到站点sta的阈值外信号强度值序列和阈值内信号强度值序列。
所述的筛选过程的具体步骤描述如下。
将信号强度序列中的每一个信号强度序列与信号强度值序列的上阈值和下阈值进行比较,如果信号强度值大于上阈值或信号强度值小于下阈值,将该信号强度值记录到阈值外信号强度值序列,否则将该信号强度值记录到阈值内信号强度值序列。
采用阈值计算方法,分别计算接入点ap阈值外信号强度值序列的上阈值和下阈值以及接入点ap阈值内信号强度值序列的上阈值和下阈值。
所述阈值计算方法的具体步骤如下:
第1步,按照下式,计算信号强度值序列的均值:
其中,m表示信号强度值序列的平均值,n表示信号强度值序列的长度,∑表示求和操作,si表示信号强度值序列中的第i个信号强度值。
第2步,按照下式,计算强度值序列的标准差:
其中,d表示信号强度值序列的标准差,√表示开方操作。
第3步,按照下式,计算信号强度序列的上阈值和下阈值:
q+=m+0.5d
q-=m-0.5d
其中,q+和q-分别表示信号强度序列的上阈值和下阈值。
步骤3,量化阈值外信号强度序列。
第1步,将接入点ap的初次量化次数设置为1。
第2步,将满足下式的当前量化次数记录到接入点ap的序列号数组:
a[i]<q+且a[i]>q-
其中,a表示接入点ap的信号强度值序列,[]表示数组取值操作,i表示入点ap的当前量化次数,q+表示接入点ap阈值外信号强度序列的上阈值,q-表示接入点ap阈值外信号强度序列的下阈值。
第3步,判断接入点ap当前量化次数是否大于接入点ap阈值外信号强度序列的长度值,若是,执行本步骤的第4步,否则,将接入点ap当前量化次数加1,执行本步骤的第2步。
第4步,将接入点ap的序列号数组发送给站点sta作为站点sta的序列号数组。将站点sta的初次量化次数设置为1。
第1步,按照下式,得到站点sta的序列号:
s=b[j]
其中,s表示站点sta的序列号,b表示站点sta的序列号数组,[·]表示数组取值操作,j表示站点站点sta的当前量化次数。
第2步,将满足下式的站点sta的序列号记录到站点sta的最终序列号数组:
c[s]<q+且c[s]>q-
其中,c表示站点sta的阈值外信号强度序列,s表示站点sta的序列号,q+表示接入点站点sta阈值外信号强度序列的上阈值,q-表示站点sta阈值外信号强度序列的下阈值。
第3步,判断站点sta的当前量化次数是否大于站点sta阈值外信号强度序列的长度值,若是,执行本步骤的第4步,否则,将站点sta当前量化次数下标加1,执行本步骤的第2步。
第4步,将站点sta的最终序列号数组发送给接入点ap作为接入点ap的最终序列号数组。
利用序列号转换方法,分别将接入点ap和站点sta的最终序列号数组和阈值外信号强度值序列,转换成接入点ap的比特序列以及站点sta的比特序列。
所述序列号转换方法的具体步骤如下:
第1步,将初次转换次数设置为1。
第2步,将当前转换次数作为序列号数组的下标,取出序列号,将该序列号作为信号强度值序列的序列下标,取出信号强度值。
第3步,将大于信号强度值序列上阈值的信号强度值以整数1存入到比特序列,其余的以整数0存到比特序列中。
第4步,判断当前转换次数是否等于序列号数组的长度值,若是,得到阈值外比特序列,否则,将当前转换次数加1,执行本步骤的第2步。
步骤4,量化阈值内信号强度序列。
按照下式,计算接入点ap和站点sta的信号强度值序列的信号强度值:
r=max(x)-min(x)
其中,r表示信号强度值,x表示信号强度值序列,max表示最大值操作,min表示最小值操作。
按照下式,分别计算接入点ap和站点sta的信号强度值序列的等分间隔数:
其中,k表示等分间隔数,
第1步,将初次循环次数设置为1。
第2步,按照下式,分别计算接入点ap和站点sta的信号强度值:
s=d[p]
其中,s表示信号强度值,d表示阈值内信号强度值序列,p表示当前循环次数。
第3步,按照下式,分别计算接入点ap和站点sta的信号强度值所在区间编号:
其中,n表示,s表示信号强度值,k为接入点ap的区间间隔数;
第4步,分别将接入点ap的信号强度值所在区间编号和站点sta的信号强度值所在区间编号转化为格雷码。
第5步,将接入点ap的格雷码存入接入点ap的阈值内比特序列,将站点sta的格雷码存入站点sta的阈值内比特序列。
第6步,判断当前循环次数是否等于接入点ap阈值内信号强度值序列的长度值,若是,则分别得到接入点ap和站点sta的阈值内比特序列,执行步骤5,否则,将当前循环次数加1后执行本步骤的第2步。
步骤5,生成物理层密钥。
将接入点ap的阈值外比特序列和阈值内比特序列拼接成接入点ap的物理层密钥pk,将站点sta的阈值外比特序列和阈值内比特序列拼接成站点sta的物理层密钥pk。
步骤6,扩展物理层密钥。
利用密钥扩展算法,将物理层密钥pk扩展为384bit的主密钥pmk。所述的主密钥pmk包括128bit的消息完整性校验码mic以及128bit的密钥加密密钥kek128bit的会话密钥sk。
利用密钥扩展算法,将物理层密钥pk扩展为256bit的组密钥gk。
所述的组密钥gk包括128bit的组加密密钥gek以及128bit的消息完整性校验码mic。
第二阶段加密通信数据包步骤如下。
步骤7,加密数据包。
将会话密钥sk作为加密密钥,利用高级加密标准aes,加密wlan管理帧数据包。
将会话密钥sk作为加密密钥,利用高级加密标准aes,加密认证数据包。
站点sta向接入点ap的发起身份认证。
使用会话密钥sk作为加密密钥,利用高级加密标准aes,加密wlan通信数据包。
第三阶段更新加密密钥步骤如下。
步骤8,定时更新加密密钥。
每30分钟执行第一阶段物理层加密密钥协商,重新生成物理层加密密钥。
以上描述仅是本发明的一个具体实例,不构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式上和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变在本发明的权利要求保护范围之内。