WAPI协议完整性测试——WAI头部字段报文

2024-03-20 19:20

本文主要是介绍WAPI协议完整性测试——WAI头部字段报文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       无线局域网鉴别与保密基础结构(WLAN Authentication and Privacy Infrastructure,简称WAPI)是无线局域网安全协议。被应用到各种终端产品的WAPI协议是否符合各项技术参数,关键在于WAPI协议符合性测试的落地程度。WAPI协议符合性测试包含协议互通性测试和协议完整性测试。其中WAPI协议完整性测试的内容主要包括以下6类,详见下图1。

图1 WAPI协议符合性测试

  上一期我们介绍了针对WAI子类型报文的协议完整性测试,本期我们重点介绍WAI头部字段报文的协议完整性测试要点、测试方法和步骤,以及测试中容易出现的高频问题。

  针对WAI头部字段的技术解析

  该项检测是针对各个分组数据中的WAI头部的部分字段,包括版本、类型和分组序号等进行的协议完整性测试。WAI协议分组数据基本格式如图2。

图2 WAI协议分组数据基本格式

  在该数据报文中:

  1、版本字段长度为2个八位位组,表示WAPI协议的版本号,当前值为1。

  2、类型字段长度为1个八位位组,表示协议类型。定义如下:当类型字段为1时,表示该组数据为WAI协议分组。其它值保留。

  3、子类型字段长度为1个八位位组,当类型字段为1时,即当该组数据为WAI分组数据时,子类型字段的值分别为1到12,代表各个分组(如上一期WAI子类型部分详述)。其它值保留。

  4、保留字段长度为2个八位位组,默认值为0。

  5、长度字段长度为2个八位位组,其值表示WAI协议分组所有字段的八位位组数。

  6、分组序号字段长度为2个八位位组,其值表示协议分组序号。第一个分组序号为1,后序分组依次按1递增。

  7、分片序号字段长度为1个八位位组,其值表示分片的顺序编号,每一个分组的第一个分片序号为0,后序分片依次按1递增。

  8、标识字段长度为1个八位位组,比特0表示后续是否有分片,值为0表示没有,值为1表示有。比特1至比特7保留。

  其中:分组序号字段、分片序号字段和标识字段仅在移动用户终端和AP之间的WAI协议分组中有效。

  根据上述WAI协议分组数据报文的定义:版本字段代表当前WAPI协议版本号,当前版本号都是“1”,随着WAPI技术演变和发展,可能会出现其它版本的WAPI协议,对应新的版本号数值。因此,必须对版本字段值进行校验。后续,在有多个版本号并存的技术背景下,同一鉴别过程中使用版本号也应该是相同的。

  类型字段表示该分组的类型,值为“1”时表示该组数据为WAI协议分组,因此在WAI鉴别过程中,各个分组的类型字段值均为“1”。

  分组序号和分片序号字段根据各个分组情况按规定取值。

  WAI头部字段报文协议完整性测试简介和测试环境

  WAI头部字段的数据报文由鉴别激活,接入鉴别响应,单播密钥协商请求,单播密钥协商确认,组播密钥通告组成。当被测移动终端在接收到含有异常WAI头部字段的数据报文后,通过检测该终端对异常报文的处理情况,判断其是否符合WAI头部字段报文协议完整性测试规范。实现完好的移动终端应该在接收到报文后先做判断,丢弃异常的报文不做响应;在未超时内且没有达到最大重发次数的情况下,实现完好的移动终端在先接收到异常报文之后又接收到了正常报文,应能对正常报文做出响应。

  WAI头部字段报文的协议完整性测试包含五个测试用例:

  ——针对鉴别激活分组的WAI版本号的协议完整性测试;

  ——针对接入鉴别响应分组的WAI类型的协议完整性测试;

  ——针对单播密钥协商请求分组的WAI版本号的协议完整性测试;

  ——针对单播密钥协商确认分组的WAI类型的协议完整性测试;

  ——针对组播密钥通告分组的WAI分组序号的协议完整性测试。

  如图3所示,搭建协议完整性测试环境,开展协议完整性整改和测试。测试环境中用到了西电捷通公司研发的WAPI负面测试仪(XWN1000T)和WAPI协议分析工具(XWT300)。WAPI负面测试仪可以构建异常报文,用于测试STA对异常报文的判断和处理能力。WAPI协议分析工具可以高效地捕获WAPI协议相关报文,对报文内容进行全面细致的解析,并对可能存在的错误字段和出现位置给予准确的提示。

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

  WAI头部字段报文协议完整性测试方法

  以针对组播密钥通告分组的WAI分组序号的协议完整性测试样本为例进行分析,如下图4和图5所示,利用WAPI协议分析工具对抓取的报文数据包进行解析:

  1、WAI分组序号被赋予了异常值“0”,通常WAI分组序号从“1”开始,逐个递增。如果被测移动用户终端并未对该异常报文进行响应,则通过该测试用例检测。如果被测移动用户终端在收到异常的组播密钥通告分组后,发出组播密钥响应分组,会导致不能通过该测试用例检测。

图4 异常WAI分组序号的组播密钥通告分组报文解析

  2、负面测试仪先发送两次异常组播密钥通告分组报文,报文之间间隔100毫秒。移动用户终端不应对异常的组播密钥通告分组报文做出响应。然后,负面测试仪发送一次正常的组播密钥通告分组报文,在WAI分组序号值为“1”,正常报文与异常报文之间间隔100毫秒。移动用户终端应能对正常的组播密钥通告分组报文做出响应,完成后续密钥协商的全过程,最终建立连接。

图5 正常WAI分组序号的组播密钥通告分组报文解析

  其它四项WAI头部字段报文协议完整性测试的方案和步骤,与上述方案和步骤相似。

  WAI头部字段协议完整性测试中常见问题及解析

  1、常见问题

  被测移动用户终端针对异常WAI头部字段的数据报文无法做出正确响应。该问题可能存在以下四种情况:

  (1)在收到异常的报文时,没有对WAI头部字段进行校验,而默认WAI头部字段值是正确的随即发出响应。例如,在被测移动用户终端收到异常WAI分组序号的组播密钥通告分组报文后,默认WAI分组序号正常,一旦未对收到的报文的WAI分组序号进行校验,便直接发出组播密钥通告响应完成密钥协商。显然,这样的实现方式是错误的,如此将无法通过协议完整性检测。

  (2)在收到异常WAI头部字段的报文后对报文进行校验,但是未能成功识别异常的报文,并将异常报文按照正确报文处理。

  (3)在收到异常WAI头部字段的报文后对报文进行了校验并识别出该异常,丢弃异常报文不做处理,但对在异常报文之后接收到的正确报文也未能作出响应。这样的实现方式也是错误的,且无法通过协议完整性检测。

  (4)在第一次或者第二次收到异常WAI头部字段的报文后断开连接。

  2、问题分析及解决方法

  WAI头部字段值都有对应的规范定义标准。首先,需要注意校验在不同分组中的WAI头部字段值是否正确,移动用户终端应能够解析并识别异常的WAI头部字段,并丢弃异常的报文不进行处理。同时,移动用户终端也应能处理包含正常WAI头部字段的报文并完成鉴别和密钥协商,最终建立连接。

  移动用户终端在前两次收到异常的WAI头部字段的报文后不应断开连接,如果第三次收到正常的WAI头部字段的报文,应正常处理并最终建立连接;如果第三次仍旧收到异常的WAI头部字段报文,则应该断开连接。

这篇关于WAPI协议完整性测试——WAI头部字段报文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/830494

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

Modbus-RTU协议

一、协议概述 Modbus-RTU(Remote Terminal Unit)是一种基于主从架构的通信协议,采用二进制数据表示,消息中的每个8位字节含有两个4位十六进制字符。它主要通过RS-485、RS-232、RS-422等物理接口实现数据的传输,传输距离远、抗干扰能力强、通信效率高。 二、报文结构 一个标准的Modbus-RTU报文通常包含以下部分: 地址域:单个字节,表示从站设备

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------