一种基于无线局域网保密基础结构的设备调试方法及系统 【技术领域】
本发明涉及通信领域,尤其涉及一种基于无线局域网保密基础结构的设备调试方法及系统。
背景技术
目前,在移动终端等通信设备的研发、特别是外场测试过程中,需要对来自网络系统的调试信息和通信设备自身的的调试信息进行分析和处理。在这种情况下,通常需要通过UART(Universal AsynchronousReceiver/Transmitter,通用异步接收/发送装置,简称串口)或者USB(Universal Serial Bus,通用串行总线)接口将被调试的通信设备与PC(Personal Computer,个人电脑)相连,并将调试信息发送给PC,在PC上对调试信息进行分析和处理。
图1为现有技术中的通信设备调试系统的结构示意图,如图1所示,被调试通信设备(简称为被调试设备)通过外部数据接口数据线(例如,UART或USB接口数据线)与PC上的UART或者USB接口相连,将调试信息发送给PC端,并在PC端进行调试信息的分析和处理,完成通信设备或通信网络的调试。
采用图1所示的系统结构进行调试时,由于被调试设备与PC之间需要相应的物理连接,可移动性差,非常不方便,特别是在外场进行移动环境的实测时,需要PC与被调试设备一起移动;此外,由于被调试设备上的可用外部数据接口的数量有限,被调试设备通常只能与少量PC连接,不便于多台PC在不同地点同时接收调试信息,并对调试信息进行分析和处理。
目前,具备无线局域网(WLAN)功能的双模通信设备越来越普及,例如,具备TD-SCDMA(Time Division-Synchronous CDMA,时分-同步码分多址)等无线通信能力和WLAN功能的双模手机即将大规模投入市场。对此类通信设备进行调试、或通过此类通信设备对通信网络进行调试时,PC端可以通过无线局域网向被调试的通信设备发送调试命令,并通过无线局域网接收被调试的通信设备发送的调试信息。
基于无线局域网构建的调试系统支持多台调试设备同时接收被调试的通信设备发送的调试信息,并且在调试过程中不影响通信设备的移动性。但是,由于无线局域网不需要物理连接即可进行数据的收发,因此如何保证调试系统的通信安全是非常重要的问题。
为了提高无线局域网的安全性,相关机构提出了无线局域网鉴别与保密基础结构(WLAN Authentication and Privacy Infrastructure,简称WAPI)协议。WAPI是针对IEEE802.11中WEP(Wried Equivalent Privacy,有线等效隐私)等协议的安全问题,经多方反复论证,充分考虑各种应用模式,在中国无线局域网国家标准GB15629.11中提出的WLAN安全解决方案。
WAPI协议主要通过WAI(WLAN Authentication Infrastructure,无线局域网鉴别基础结构)协议规定的鉴别和密钥协商过程进行移动终端的接入认证和密钥的协商,并通过WPI(WLAN Privacy Infrastructure,无线局域网保密基础结构)协议规定的加解密过程完成数据在MAC(Media AccessControl,介质访问控制)层的加密传输(即链路层加密传输)。
图2是基于WAPI的通信设备调试方法流程图;其中,被调试设备和PC等调试设备中都包含WAPI通信模块,两者之间能够建立无线局域网连接,并通过无线局域网连接实现调试命令报文、调试响应报文和调试信息报文的传输。如图2所示,该方法包括:
201:被调试设备与调试设备之间成功进行链路验证和关联后,完成WAPI协议的鉴别和密钥协商过程;
被调试设备与调试设备在鉴别和密钥协商过程中可以分别使用双方预先存储的相同的预共享密钥(PSK)导出基密钥(BK),然后使用基密钥完成单播会话密钥的协商,在被调试设备与调试设备之间协商出单播会话密钥。
链路验证和关联、以及鉴别和密钥协商过程所涉及的技术细节可以参考WAPI协议。
202:被调试设备与调试设备之间进行调试命令报文和调试响应报文的传输;其中,被调试设备与调试设备之间采用步骤201中协商得到的单播会话密钥对调试命令报文和调试响应报文进行链路层的加密传输。
调试命令报文由调试设备发送给被调试设备,包括:模块选择命令(用于选择被调试设备中的被调试模块)、参数设置命令(用于对被调试模块进行参数设置)、调试启动命令(用于启动被调试模块的调试过程)、调试结束命令(用于停止被调试模块的调试过程)等。
调试响应报文由被调试设备发送给调试设备,用于对调试设备发送的调试命令做出相应的响应(例如,成功响应、失败响应等),包括:调试模块选择响应、参数设置响应、调试启动响应、调试结束响应等。
203:调试过程启动后,被调试设备向调试设备发送调试信息报文;其中,被调试设备采用步骤201中协商得到的单播会话密钥对调试信息报文进行链路层的加密传输。
调试信息报文中包含:被调试设备的无线通信模块(例如,TD-SCDMA模块)当前的运行状态、被调试设备的无线通信模块接收和发送的数据、被调试设备所在的无线通信网络的状态(例如,邻小区列表)等信息。
此后,在调试信息的传输过程中,被调试设备与调试设备之间随时会进行调试命令和调试响应的传输。
通过以上描述可知,将WAPI协议引入调试系统,可以极大地增强基于无线局域网的调试系统的通信安全,避免了非授权用户获取调试信息中包含的系统参数和设备参数等商业机密。但是,上述方法也存在以下不足之处:
1)由于被调试设备传输的调试信息的数据量非常大,对调试信息进行加密传输加重了被调试设备地处理负荷,严重时会影响被调试设备的正常运行;对于与时间相关的调试而言,对大量调试信息进行加密所造成的延时还可能影响调试结果的准确性。
2)由于被调试设备与调试设备之间的单播会话密钥由基密钥和双方各自生成的随机数生成,因此在多台调试设备同时对被调试设备进行调试时,需要在多台调试设备之间共享单播会话密钥才能使所有调试设备都能够对调试信息进行正确解密。而多台调试设备共享单播会话密钥可能会造成多台调试设备都向被调试设备发送调试命令,容易造成混乱,不利于调试过程的集中控制和管理。
【发明内容】
本发明所要解决的技术问题是,克服现有技术的不足,提供一种基于WAPI的设备调试方法及系统,以降低被调试设备和调试设备的处理负荷和软硬件成本。
为了解决上述问题,本发明提供一种基于无线局域网保密基础结构的通信设备调试方法,该方法包括:
主调试设备与被调试设备之间进行无线局域网保密基础结构WAPI协议的鉴别和密钥协商过程,并在该过程中协商得到会话密钥;
主调试设备通过无线局域网向被调试设备发送调试命令报文,以启动并控制调试过程;
调试过程启动后,被调试设备向主调试设备发送调试信息报文,主调试设备使用调试信息报文中的调试信息进行调试分析;
其中,主调试设备使用所述会话密钥对所述调试命令报文进行加密后,将其封装在介质访问控制协议数据单元MPDU中进行传输;被调试设备将至少一个调试信息报文采用明文方式封装在MPDU中发送给主调试设备。
此外,所述会话密钥包含:单播会话密钥和组播会话密钥;
主调试设备与被调试设备协商得到所述会话密钥后,还将所述组播会话密钥发送给从调试设备;
主调试设备使用所述单播会话密钥对所述调试命令报文进行所述加密;被调试设备使用所述组播会话密钥对至少一个调试信息报文进行加密后,将其封装在MPDU中发送给主调试设备和从调试设备;主调试设备和从调试设备使用所述组播会话密钥对经过加密调试信息报文进行解密。
此外,被调试设备将所有调试信息报文都采用明文方式封装在MPDU中传输;或
被调试设备随机选择对当前的调试信息报文进行加密、或采用明文方式封装在MPDU中传输;或
被调试设备对调试信息报文的报文头进行解析,根据报文头中的加密指示字段对该报文进行加密、或以明文方式封装在MPDU中传输。
此外,被调试设备发送的MPDU中包含明文传输标识,用于表示该MPDU中的调试信息报文是否采用明文方式封装。
此外,将MPDU的保留字段中的n1个比特作为所述明文传输标识;或
将MPDU的会话密钥索引字段中的第2个至第8个比特中的n2个比特作为所述明文传输标识;
其中,1≤n1≤8,1≤n2≤7。
此外,将MPDU的数据分组序号字段作为所述明文传输标识,当所述明文传输标识的值为1时表示以明文方式将音视频数据报文封装在MPDU中;当所述明文传输标识的值为0时表示以加密方式将音视频数据报文封装在MPDU中。
本发明还提供一种基于无线局域网保密基础结构的通信设备调试系统,该系统包含:调试设备和被调试设备;调试设备中设置有:调试控制和分析模块、第一无线局域网鉴别基础结构WAI单元和第一无线局域网保密基础结构WPI单元;被调试设备中设置有:被调试模块、调试信息采集模块、第二WAI单元和第二WPI单元;其中:
所述第一WAI单元和第二WAI单元用于交互完成WAPI协议的鉴别和密钥协商过程,并分别将在该过程中协商生成的会话密钥发送给所述第一WPI单元和第二WPI单元;
所述调试控制和分析模块用于通过所述第一WPI单元向所述被调试设备发送调试命令报文,以启动并控制调试过程;
所述第一WPI单元用于使用所述会话密钥对所述调试控制和分析模块发送的调试命令报文进行加密,加密后将其封装在MPDU中发送给所述被调试设备;
所述第二WPI单元用于接收所述第一WPI单元发送的所述MPDU,使用所述会话密钥对其中封装的调试命令报文进行解密,解密后将调试命令报文发送给所述调试信息采集模块;
所述调试信息采集模块用于根据所述调试命令报文中的调试命令采集所述被调试模块生成的调试信息,将调试信息封装在调试信息报文中发送给所述第二WPI单元;
所述第二WPI单元还用于对所述调试信息采集模块发送的至少一个调试信息报文采用明文方式封装在MPDU中发送给所述调试设备;
所述第一WPI单元还用于:接收所述第二WPI单元发送的所述MPDU,判断其中封装的调试信息报文是否已经过加密,如果已经过加密,则使用所述会话密钥解密;将经过解密、或以明文方式封装在所述MPDU中的调试信息报文发送给所述调试控制和分析模块;
所述调试控制和分析模块还用于对接收到的调试信息报文中的调试信息进行调试分析。
此外,所述第二WPI单元将所述调试信息采集模块发送的所有调试信息报文都采用明文方式封装在MPDU中发送给所述被调试设备;或
所述第二WPI单元随机选择将所述调试信息采集模块当前发送的调试信息报文使用所述会话密钥加密、或采用明文方式封装在MPDU中发送给所述被调试设备;或
所述第二WPI单元对所述调试信息采集模块发送的调试信息报文的报文头进行解析,根据报文头中的加密指示字段对该报文使用所述会话密钥加密、或采用明文方式封装在MPDU中发送给所述被调试设备。
此外,所述第二WPI单元还用于在其发送的MPDU中设置明文传输标识,用于表示该MPDU中的调试信息报文是否采用明文方式封装。
此外,所述第二WPI单元将MPDU的保留字段中的n1个比特作为所述明文传输标识;或
所述第二WPI单元将MPDU的会话密钥索引字段中的第2个至第8个比特中的n2个比特作为所述明文传输标识;或
所述第二WPI单元将MPDU的数据分组序号字段作为所述明文传输标识;
其中,1≤n1≤8,1≤n2≤7。
综上所述,本发明通过在被调试设备与调试设备之间进行通信时采用单向加密和选择性加密来降低被调试设备和调试设备的处理负荷,提高了调试结果的准确性。
【附图说明】
图1为现有技术中的通信设备调试系统的结构示意图;
图2是基于WAPI的通信设备调试方法流程图;
图3是WPI的MPDU封装结构示意图;
图4是本发明实施例基于WAPI的通信设备调试方法流程图;
图5是本发明实施例调试报文的数据结构示意图;
图6是本发明实施例基于无线局域网保密基础结构的通信设备调试系统结构示意图。
【具体实施方式】
本发明的核心思想是,被调试设备中的WPI单元在将调试信息报文和调试响应报文封装到MPDU(MAC Protocol Data Unit,介质访问控制协议数据单元)前,对调试信息报文和调试响应报文进行选择性加密(或称为部分加密),即对部分调试信息报文和调试响应报文进行加密,另一部分采用明文方式直接封装在MPDU的数据(PDU)字段中发送给调试设备。
WPI的MPDU封装结构如图3所示,其中:
MAC头字段的长度为24字节或30字节;
会话密钥索引字段长度为1个字节,表示USKID(单播会话密钥索引)或MSKID(组播会话密钥索引)或STAKeyID(站间密钥索引)值,即表示加密本MPDU所使用的会话密钥的索引;
保留字段的长度为1字节;
PN(数据分组序号)字段的长度为16字节,该字段的值可以作为数据加解密时所需的IV(初始向量);
PDU(数据)字段封装有MPDU数据,最大长度为2278字节,其中封装有高层协议数据报文,包括调试命令报文、调试响应报文、调试信息报文;
MIC(完整性校验码)字段的长度为16字节;
FCS字段的长度为4字节,为MAC帧格式的帧校验序列。
此外,图3中还示出了一种调试命令报文、调试响应报文和调试信息报文的封装方式。其中,调试命令报文、调试响应报文和调试信息报文统称为调试报文,由调试报文头和调试数据组成。
调试报文可以封装在TCP(Transfer Control Protocol,传输控制协议)报文或UDP(User Datagram Protocol,用户数据报协议)报文中传输。
TCP报文和UDP报文可以封装在IP(Internet Protocol,因特网协议)报文中传输。在IP头中包含有被调试设备/调试设备的IP地址等信息。IP地址可以是单播地址,也可以是组播地址。
需要注意的是,图3所示的调试报文在PDU字段中的封装方式仅是一种示例,也可以采用其它封装方式。
下面将结合附图和实施例对本发明进行详细描述。
图4是本发明实施例基于WAPI的通信设备调试方法流程图;其中,被调试设备和调试设备中都包含WAPI通信模块,两者之间能够建立无线局域网连接,并通过无线局域网连接实现调试命令报文、调试响应报文和调试信息报文的传输。如图4所示,该方法包括:
401:在被调试设备与调试设备成功进行链路验证和关联后,被调试设备与调试设备的WAI单元完成WAPI协议的鉴别和密钥协商过程;
在鉴别和密钥协商过程中,被调试设备与调试设备可以分别使用双方预先存储的相同的预共享密钥(PSK)导出相同的基密钥(BK),然后使用基密钥完成单播会话密钥、组播会话密钥的协商,在被调试设备与调试设备之间协商出单播会话密钥、组播会话密钥等会话密钥。
402:调试设备向被调试设备发送调试命令,以选择被调试设备中的调试模块、对被调试模块进行参数设置,最终启动并控制调试过程;其中,调试设备中的WPI单元使用步骤401中协商出的会话密钥对调试命令进行链路层加密后,将其封装在MPDU的PDU字段中传输。
图5是本发明实施例调试报文的数据结构示意图;如图5所示,调试报文分为:调试报文头和调试数据两大部分。
调试报文头中包含:报文类型、报文长度、密钥类型、加密指示;其中:
报文类型包括:调试命令报文、调试响应报文和调试信息报文三类。
报文长度用于指示整个调试报文的总长度。
密钥类型为可选字段,调试设备中的调试控制和分析模块使用该字段通知底层的WPI单元进行链路层加密时应当使用的密钥类型、或被调试设备中的调试信息采集模块通知底层的WPI单元进行链路层加密时应当使用的密钥类型;密钥类型包括:单播会话密钥和组播会话密钥。
加密指示为可选字段,被调试设备中的调试信息采集模块使用该字段通知底层的WPI单元是否进行链路层加密。
403:被调试设备向调试设备返回相应的调试响应报文,告知调试设备已收到其发送的调试命令,并进行了相应的处理;其中,被调试设备中的WPI单元可以采用明文方式将调试响应报文封装在MPDU中传输,也可以使用步骤401中协商出的会话密钥对调试响应报文进行链路层加密后,将其封装在MPDU中传输。
WPI单元可以根据以下策略选择是否对调试响应报文进行链路层加密传输:
A:对所有的调试响应报文都不进行链路层加密,直接以明文方式封装在MPDU中传输;
B:随机选择对当前的调试响应报文进行链路层加密或以明文方式封装传输;例如,将每10个调试响应报文中的7个以明文方式传输,对其余的3个进行链路层加密后封装传输;
C:对调试报文头进行解析,根据调试报文头中加密指示字段(如图5所示)判断是否对该报文进行链路层加密;该字段的值由上层的调试信息采集模块设置。
404:调试过程启动后,被调试设备向调试设备发送调试信息报文;同样,被调试设备中的WPI单元可以以明文方式将调试信息报文封装在MPDU中传输,也可以使用步骤401中协商出的会话密钥对调试信息报文进行链路层加密后,将其封装在MPDU的PDU字段中传输。
WPI单元可以根据以下策略选择是否对调试信息报文进行链路层加密传输:
A:对所有的调试信息报文都不进行链路层加密,直接以明文方式封装在MPDU中传输;
B:随机选择对当前的调试信息报文进行链路层加密或以明文方式封装传输;例如,将每10个调试信息报文中的3个以明文方式传输,对其余的7个进行链路层加密后封装传输;
C:对调试报文头进行解析,根据调试报文头中加密指示字段(如图5所示)判断是否对该报文进行链路层加密;该字段的值由上层的调试信息采集模块设置。
为了便于调试设备识别出该MPDU中封装的调试报文是否已经过链路层加密,被调试设备可以通过以下方式在其发送给调试设备的MPDU中设置明文传输标识:
1)将MPDU中的保留字段中的n1(1≤n1≤8)个比特作为明文传输标识,例如,将明文传输标识的值设置为1表示明文传输的MPDU,将明文传输标识设置为0表示加密传输的MPDU;
2)将会话密钥索引字段的比特1至比特7(即第2个至第8个比特,WAPI协议中未使用的比特位置)中的n2(1≤n2≤7)个比特作为明文传输标识,当明文传输标识的值大于0时表示明文传输的MPDU,当明文传输标识的值等于0时表示加密传输的MPDU;
需要注意的是,会话密钥索引字段的比特0为单播会话密钥索引或组播会话密钥索引或站间密钥索引占用的比特。
3)除在以上位置设置明文传输标识以外,由于PN(数据分组序号)字段在明文传输MPDU时无需使用,因此明文传输标识也可以设置在PN字段的位置,当PN字段的值为1时表示明文传输的MPDU,当PN字段的值为0时表示加密传输的MPDU(按照WAPI协议的规定,在加密过程中将PN字段的值作为IV使用时,该字段的值不会为0和1)。
405:调试设备中的WPI单元接收到封装有调试信息报文的MPDU后,判断其中封装的调试信息报文是否已经过链路层加密:如果已经过链路层加密,则解密后将调试信息报文发送给调试控制和分析模块进行分析和处理,如果未经过链路层加密,则直接将调试信息报文发送给调试控制和分析模块进行分析和处理。
本步骤中,调试设备除了通过明文传输标识获知该MPDU是否为明文传输的MPDU外,还可以通过解析PDU字段中封装的数据的格式来判断该MPDU是否为明文传输的MPDU;例如,检查IP头的值是否正确,如果不正确则认为IP头被加密,进而判定该MPDU不是明文传输的MPDU。
根据本发明的基本原理,上述实施例还可以有多种变换方式,例如:
(一)在多台调试设备对同一被调试设备进行调试时,多台调试设备中可以有一台作为主调试设备与被调试设备进行步骤201所述的鉴别和密钥协商,协商出单播会话密钥和组播会话密钥后,将组播会话密钥通过安全的途径(例如,通过直接的物理连接)发送给从调试设备;在这种情况下,主调试设备可以通过调试命令指示被调试设备使用组播密钥对调试信息报文进行链路层加密传输。
为了对调试过程集中控制,主调试设备应当使用单播会话密钥对调试命令进行链路层加密;被调试设备也应当仅使用单播会话密钥对接收到的MPDU报文进行解密。
(二)主调试设备可以在调试过程中通过调试命令指示被调试设备在组播会话密钥和单播会话密钥之间进行切换;被调试设备中的调试信息采集模块接收到该指示后,可以通过调试报文头的密钥类型字段指示WPI单元使用对应类型的会话密钥。
(三)需要注意的是,由于调试设备发送的调试命令报文经过了链路层的加密,一般情况下,如果不能正确地解密调试命令报文,即使能够获取到所有调试信息报文,也很难了解该报文的含义。因此,在某些对安全性要求不高的调试场景下,可以对所有的调试信息报文和调试响应报文都采用明文方式封装和传输。在这种情况下调试设备的WPI单元可以无需进行应用层报文头(调试报文头)的解析,以根据其中的加密指示字段判断调试报文是否经过链路层加密。
综上所述,在被调试设备上采用本发明的部分加密/选择性加密方法,可以极大地降低被调试设备的处理负荷,并提高调试结果的准确性。
图6是本发明实施例基于无线局域网保密基础结构的通信设备调试系统结构示意图;该系统包含:调试设备、被调试设备。
调试设备中设置有:调试控制和分析模块、WAPI通信模块(可以称为第一WAPI通信模块);第一WAPI通信模块中包含:WAI单元(可以称为第一WAI单元)和WPI单元(可以称为第一WPI单元)。
被调试设备中设置有:被调试模块、调试信息采集模块、WAPI通信模块(可以称为第二WAPI通信模块);第二WAPI通信模块中包含:WAI单元(可以称为第二WAI单元)和WPI单元(可以称为第二WPI单元)。
调试控制和分析模块用于:通过第一WAPI通信模块向被调试设备发送调试命令报文,以选择被调试设备中的调试模块,对被调试模块进行参数设置,最终启动并控制调试过程;通过第一WAPI通信模块接收被调试设备发送的调试响应报文和调试信息报文,根据调试响应报文的内容进行相应的处理(例如,重新发送调试命令报文等),对调试信息报文中包含的调试信息进行分析和处理。
第一WAI单元用于与第二WAI单元进行交互,完成WAPI协议的鉴别和密钥协商过程,并将协商生成的会话密钥发送给第一WPI单元。
第一WPI单元用于:接收调试控制和分析模块发送的调试命令报文,将其进行链路层加密后封装在MPDU中发送给被调试设备;接收被调试设备发送的MPDU,判断其中封装的调试信息报文或调试响应报文是否已经过链路层加密,如果已经过链路层加密,则解密后将调试信息报文或调试响应报文发送给调试控制和分析模块进行分析和处理,如果未经过链路层加密,则直接将调试信息报文或调试响应报文发送给调试控制和分析模块进行分析和处理。
调试信息采集模块用于通过第二WAPI通信模块接收调试设备发送调试命令,并根据调试命令选择(启动)被调试模块,设置被调试模块的参数;并通过第二WAPI通信模块向调试设备返回相应的调试响应报文;当调试过程启动后,采集被调试模块生成的调试信息,将调试信息封装在调试信息报文中通过第二WAPI通信模块发送给调试设备。
第二WAI单元用于与第一WAI单元进行交互,完成WAPI协议的鉴别和密钥协商过程,并将协商生成的会话密钥发送给第二WPI单元。
第二WPI单元用于:接收调试信息采集模块发送的调试信息报文和调试响应报文,将部分报文以明文方式封装在MPDU中发送给被调试设备,将另一部分报文进行链路层加密后封装在MPDU中发送给被调试设备;接收调试设备发送的MPDU,对其中封装的调试命令报文进行解密后发送给调试信息采集模块进行后续的处理。
此外,第二WPI单元还可以根据步骤403和404所述的策略选择是否对调试响应报文和调试信息报文进行链路层加密。
此外,第二WPI单元还用于设置MPDU中的明文传输标识。