无线局域网鉴别与保密基础结构(WLAN Authentication and Privacy Infrastructure, WAPI)是无线局域网安全协议。被应用到各种终端产品的WAPI协议是否符合各项技术参数,关键在于WAPI协议符合性测试的落地程度。WAPI协议符合性测试包含协议互通性测试和协议完整性测试。具体来说,协议互通性测试主要检测设备正确处理正常协议数据的能力,而协议完整性测试则围绕设备正确处理异常协议数据的能力进行检测。从根本上讲,WAPI协议完整性检测的推出对于产品的互通性和性能提出了更高要求,进而促进了WAPI产品功能更加完备。
尽管WAPI协议完整性检测工作已在测试机构开展多年,不过在诸如手机等移动终端检测中仍然暴露出不少问题,究其原因还是部分终端厂商缺乏对于WAPI协议完整性及测试的深刻理解。为此,我们对手机WAPI协议完整性测试,以及其中出现的问题进行归纳、解析,进而提出整改建议,希望让终端厂商的研发和检测有的放矢。
WAPI协议完整性测试的内容主要包括以下6类,详见图1。

 
图1  WAPI协议符合性测试

我们将从WAI子类型报文的协议完整性测试谈起,叙述该项测试的要点、测试方法和步骤,以及常见问题。以后我们还将陆续介绍协议完整性测试的其它内容,借此与大家共同探讨。

WAI子类型协议完整性的技术解析
该项检测是针对各个分组数据中的WAI子类型字段进行的协议完整性测试。WAI协议分组数据格式如图2。

 
图2  WAI协议分组数据格式

在该数据报文中,当类型字段为“1”时,表示该组数据为WAI协议分组。子类型字段长度为一个八位位组。在WAI协议分组中子类型字段的值定义如下:
1、表示预鉴别开始分组;
2、表示站间密钥请求分组;
3、表示鉴别激活分组;
4、表示接入鉴别请求分组;
5、表示接入鉴别响应分组;
6、表示证书鉴别请求分组;
7、表示证书鉴别响应分组;
8、表示单播密钥协商请求分组;
9、表示单播密钥协商响应分组;
10、表示单播密钥协商确认分组;
11、表示组播密钥/站间密钥通告分组;
12、表示组播密钥/站间密钥响应分组。
其他值保留。

图3是WAI协议流程图。图3包括证书鉴别过程、单播密钥协商过程和组播密钥通告过程,同时也详细标注了WAI各分组子类型的值。

图3  证书鉴别、单播密钥协商及组播密钥通告过程

WAI子类型协议完整性测试简介和测试环境
当被测移动终端在接收到含有异常WAI子类型的数据报文(鉴别激活,接入鉴别响应,单播密钥协商请求,单播密钥协商确认,组播密钥通告)后,通过检测被测移动终端对异常报文的处理情况,判断其是否符合WAI子类型协议完整性测试要求。实现完好的移动终端应该在接收到报文后先做判断,丢弃异常的报文不做响应;在未超时内且没有达到最大重发次数的情况下,实现完好的移动终端在先接收到异常报文之后又接收到了正常报文,应能对正常报文做出响应。
如图4所示搭建协议完整性测试环境,开展协议完整性整改和测试。测试环境中用到了西电捷通公司的WAPI负面测试仪(XWN1000T)和WAPI协议分析工具(XWT300)。WAPI负面测试仪可以构建异常报文,用于测试STA对异常报文的判断和处理能力。WAPI协议分析工具可以高效地捕获WAPI协议相关报文,对报文内容进行全面细致的解析,并对可能存在的错误字段和出现位置给予准确的提示。

 
图4  协议完整性测试环境拓扑图

WAI子类型协议完整性测试方法
以针对鉴别激活分组的WAI子类型协议完整性测试样本为例进行分析,如下图5和图6所示,利用WAPI协议分析工具对抓取的报文数据包进行解析:
1、WAI子类型被赋予了异常值“103”,如果被测移动用户终端并未对该异常报文进行响应,则通过该测试用例检测。如果被测移动用户终端在收到异常的鉴别激活分组后发出接入鉴别请求分组,会导致无法通过该测试用例检测。

 
图5  异常WAI子类型的鉴别激活分组报文解析

2、负面测试仪先发送两次异常鉴别激活分组报文,报文之间间隔100毫秒。移动用户终端不应对异常的鉴别激活分组报文做出响应。然后,负面测试仪发送一次正常的鉴别激活分组报文(WAI子类型值为“3”),正常报文与异常报文之间间隔100毫秒。移动用户终端应能对正常的鉴别激活分组报文做出响应,完成后续接入鉴别和密钥协商的全过程,最终建立连接。

图6  正常WAI子类型的鉴别激活分组报文解析

其它四种WAI子类型协议完整性测试的方案和步骤与上述鉴别激活分组的WAI子类型协议完整性测试的方案和步骤相似。
WAI子类型的协议完整性测试中常见问题及解析
1、常见问题
被测移动用户终端针对异常WAI子类型的数据报文无法做出正确响应。该问题可能存在以下三种情况:
(1)在收到异常的报文时没有对WAI子类型进行校验,而默认WAI子类型值是正确的随即发出响应。例如:在被测移动用户终端发出接入鉴别请求分组报文后,默认从AP收到的下一条报文是接入鉴别响应分组,未对收到的报文进行校验,便直接依照接入鉴别响应分组的格式对报文进行处理。这样的实现方式是错误的,将无法通过协议完整性检测。
(2)在收到异常WAI子类型的报文后对报文进行校验,但是未能成功识别异常的报文,并将异常报文按照正确报文处理。
(3)在收到异常WAI子类型的报文后对报文进行了校验并识别出该异常,丢弃异常报文不做处理,但对在异常报文之后接收到的正确报文也未能做出响应。这样的实现方式也是错误的,且无法通过协议完整性检测。
2、问题分析及解决方法
WAI子类型字段根据不同分组定义了其对应的字段值。首先,需要注意校验在不同分组中的WAI子类型字段值是否正确,移动用户终端应能够解析并识别异常的WAI子类型字段,并丢弃异常的报文不进行处理。同时,移动用户终端也应能处理包含正常WAI子类型字段的报文并完成鉴别和密钥协商,最终建立连接。

WAPI协议完整性测试解析系列(之一)WAI子类型的协议完整性测试相关推荐

  1. UDP协议疑难杂症全景解析

    UDP协议疑难杂症全景解析 转载:http://blog.csdn.net/dog250/article/details/6896949 UDP协议疑难杂症全景解析 2011-10-22 19:26  ...

  2. STM32 Ymodem 协议及代码解析

    点击左上角的"关注",定期更新 STM32 最新资讯,总有你想要的信息! STM32 Ymodem 协议及代码解析 文章导图: 1. Ymodem 协议传输效果 1.1 发送端软件 ...

  3. 微信小程序发布正式版规则,累的教训(小程序审核常见驳回类型-可用性和完整性问题)

    小程序审核常见驳回类型-可用性和完整性问题 小程序审核常见驳回类型-可用性和完整性问题

  4. 手机WAPI功能检测常见问题分析(系列连载三):预共享密钥功能

    原文地址:http://www.wapia.org/topic/standards/detail_5073.shtml 1 预共享密钥功能测试中常见问题及解决方法 A. 问题一:预共享密钥长度不符合要 ...

  5. 技术解析系列 | PouchContainer 支持 LXCFS 实现高可靠容器隔离

    划重点 本周起 PouchContainer 启动核心技术专家解析系列文章,第一篇文章将深入剖析 LXCFS 适用业务场景和原理,对 LXCFS 感兴趣的同学不要错过 引言 PouchContaine ...

  6. TiKV 源码解析系列文章(二)raft-rs proposal 示例情景分析

    作者:屈鹏 本文为 TiKV 源码解析系列的第二篇,按照计划首先将为大家介绍 TiKV 依赖的周边库 raft-rs .raft-rs 是 Raft 算法的 Rust 语言实现.Raft 是分布式领域 ...

  7. Tomcat源码解析系列二:Tomcat总体架构

    Tomcat即是一个HTTP服务器,也是一个servlet容器,主要目的就是包装servlet,并对请求响应相应的servlet,纯servlet的web应用似乎很好理解Tomcat是如何装载serv ...

  8. 测试思路系列:《谷歌的软件测试之道》读书笔记

    一  谷歌的测试理念 谷歌专职测试人员很少. 把开发过程和测试融合在一起--开发和测试必须同时开展. 写一段代码就立刻测试这段代码,开发人员要对自己写的代码负责,比专职的测试人员更适合做测试工作. 质 ...

  9. 自定义协议的命令解析器

    文章目录 前言 Switch...case类型命令解析的弊端 程序的改进目标 对命令解析器的分析 命令解析器的代码示例 用于代码工程需要解决的问题 可用于代码工程的命令解析器实现 一些新的认识 前言 ...

  10. SkeyePlayer源码解析系列之支持H265

    近期SkeyePlayer(windows)更新已全面支持H265的RTSP流的解码播放,这里就支持H265过程做简要介绍: 一. libSkeyeRTSPClient库已支持H265视频源的RTSP ...

最新文章

  1. java代码的执行机制_关于java代码的执行机制
  2. MAC YII 安装步骤
  3. 图解understand分析一个asp.net办公系统源码
  4. pandas 第一行_Pandas进阶,从0到100你还差这篇文章!
  5. java json自定义_java返回json设置自定义的格式
  6. “新内容 新交互”全球视频云创新挑战赛复赛启幕
  7. clion卸载+clion连接docker编写trt程序
  8. 【离散数学】含有两个量词的谓词逻辑公式
  9. 网友疯买、雷军力撑,又一家国货站起来了!
  10. python代码删掉了几行怎么撤回_仅78行代码实现微信撤回消息查看 | Python itchat
  11. 18-CSS问题-让多个div横排显示并设置间距解决方案
  12. JAVA实战项目--文章发布系统
  13. matlab直线的程序,MATLAB|辅助直线绘制程序
  14. img html 文件怎么打开,img文件怎么打开?img文件用什么打开?
  15. Js常用40个页面效果
  16. Java 枚举和泛型
  17. 用树莓派做一个实时垃圾分类器|超实用!!
  18. 添加SearchView控件时飘红的问题
  19. tarjan算法讲解。
  20. Excel在统计分析中的应用—第十二章—回归分析与预测-运用LINEST函数进行多元线性回归分析

热门文章

  1. 大一python选择题题库及答案_万维考试系统选择题题库(含参考 答案).pdf
  2. c语言二进制十进制十六进制之间的转化(详解,含源代码)
  3. 一套基于java的开源车牌识别算法
  4. 求职面试PPT模板推荐
  5. 小学计算机英语,小学英语流利读电脑版
  6. 轻灵高效的WizTree树
  7. 百度OCR图片内容识别
  8. rs485串口转网口设置
  9. 机器学习面试常用算法知识点梳理总结
  10. Linux下的动态库和静态库详解