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头部字段报文,则应该断开连接。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值