西电捷通TISec协议一致性自动化测试框架设计与实现

来源:互联网 发布:linux系统切换输入法 编辑:程序博客网 时间:2024/06/15 19:02
IP安全可信技术(Trust of IP Security,TISec)是基于西电捷通三元对等安全架构(Tri-element Peer Architecture,TePA)的安全技术,通过双向鉴别、加解密、密钥管理、隧道等一系列创新技术,构建网络任意两个节点之间逻辑链路的安全、可信连接,同时具有跨共享网络或公共网络的身份鉴别、加解密和封装专用网络的扩展能力,其中,网络接入安全包括鉴别接入网络节点的身份合法性和鉴别其平台的可信;数据传输安全则包括保障数据在传输过程中的机密性、完整性和抗重放性等。

TISec协议实现一致性测试是验证协议程序是否实现协议规范所描述的功能,是保证协议实现质量的一个必需而且十分重要的手段。TISec协议实现一致性测试根据TISec协议标准提炼出测试条件和要求,由此来确定测试目的,如协议必备的行为、测试框架与被测协议交互、发送和接收数据单元格式等,而协议一致性测试是无法应用常规的系统测试方法开展的,测试难度不言而喻。为实现TISec协议实现一致性自动化测试,通过建立针对TISec协议的测试框架来承载协议,并提供有效的用例集合注入协议运行,分析协议执行的结果来判定协议实现的质量。


构建TISec协议实现一致性测试框架
TISec协议实现一致性测试的目的是保证一个标准化协议的不同实现之间能够成功地进行通信。一般说来,协议标准是使用自然语言描述,开发人员对于协议的语言描述理解不同,可能会导致不同的协议实现,甚至出现错误的实现。即便协议实现正确,也不能保证不同的实现彼此之间能够准确无误地通信,而且同一协议的不同实现其性能也有差别。协议一致性测试的过程是利用测试序列集,在一定的网络环境下,对被测实现(Implementation Under Test,IUT)进行的黑盒测试,通过比较IUT的实际输出与预期输出的异同,判定IUT是否实现了协议标准。
 
图1 协议测试流程

一致性测试包括静态测试和动态测试,其中静态一致性测试是将协议实现者向测试方提供的“协议实现一致性声明(Protocol Implement Conformance Statements,PICS)”与协议规范中的静态一致性要求相比较,而动态一致性测试就是运行测试用例对IUT进行测试。西电捷通遵照国际标准组织ISO/IEC(International Organization for Standardization,国际标准化组织/International Electro technical Commission,国际电工委员会标准)发布的ISO/IEC 9646标准定义的基于OSI(Open System Interconnect,开放系统互连)层次模型的协议一致性测试(Conformance Testing)系统结构的简化模型来进行,其中上层测试器(Upper Tester, UT)和下层测试器(Lower Tester,LT),分别位于IUT的上侧和下侧的控制观察点,通过控制观察点对IUT进行控制和观察。
 
图2 协议实现一致性测试系统结构的简化模型

PICS中罗列出TISec协议对应实现的全部功能范围和选项。分析TISec协议的PICS表发现,在同一网络拓扑结构下测试框架和IUT协商建立连接后,主要的功能体现在不同传输模式、不同加密算法等多个参数共同作用下的网络通信。如测试PICS表中“传输模式”时,测试框架从测试用例集中提取相关的单个用例发送给TISec协议实现,TISec协议实现根据测试框架提供的用例来确定是否同测试框架建立连接,如果不能建立连接,给出错误信息;如果建立了连接,则根据配置文件中的配置进入“传输模式”通信状态,在通信过程中可在接收模块获取数据包分析数据是否被IUT执行了加密、解密等处理。
 
图3 TISec协议测试系统体系结构

测试集编辑器:测试人员在对协议文本描述充分理解的基础上,按照测试要求,利用编辑器来设计适合于程序处理的形式化描述的协议测试集;测试集生成器:依据PICS表来选择测试集,产生出对该实现进行测试所需要的可执行测试集;测试执行:用可执行测试集对TISec协议进行测试,TISec协议返回的协议数据单元(Protocol Data Unit,PDU)由接收模块处理;测试结果生成:将测试产出的结果和协议文本描述的规格生成进行比对,通过对比结果来判断是否符合要求,并反馈给人机界面。


利用SAP集合模型完成TISec协议一致性自动化测试
从TISec协议文本中提取支持协议运行的关键因素,即安全关联参数(Security Association Param,SAP),除去一些基本固定参数外,协议运行时的可变安全关联参数多达9个,每个可变参数有2~8个可变值,为保证测试的全面和完整,将每个参数的取值排列组合后的SAP集合数量非常巨大,所以为方便测试框架对输入信息和输出结果的集中处理,建立用例集合模型CASE[i]:

图4 用例集合模型

其中,SAP[i]:{input[i1],input[i2],input[i3],…,input[iJ]}表示安全关联参数的全部可能集合,该集合的值从协议文本中提取;
EVENT[i]:{event1 | event2 |…| eventM}表示通信事件的全部可能集合,该集合值则根据IUT成功解析SAP[i]后,可执行的动作设定;
OUTPUT[i]:{output1 | output2 |…| outputN}表示输出结果的全部可能集合,该集合值由IUT根据输入条件SAP[i]或SAP[i]&EVENT[i]运行后产生;
EXPECT[i]:{expect1 | expect2 |…| expectP}表示期望结果的全部可能集合,该集合值从协议文本中提取。
测试框架抽取CASE[i]中某一用例注入到TISec协议实现,TISec协议实现对该用例的SAP[i]或SAP[i] & EVENT [i]作为条件进行执行,这些用例集的预期结果包含四方面:TISec协议实现对合法SAP的响应、TISec协议实现对不合法SAP的响应、TISec协议实现对合法事件(SAP合法)的响应、TISec协议实现对不合法事件(SAP合法)的响应,并将响应结果填写到OUTPUT[i]中,此时的OUTPUT[i]回传给测试框架,测试框架将该结果与EXPECT[i]中指定的结果进行比较,得出该用例是否通过。如通过测试框架启动TISec协议,注入合法SAP[i]参数,TISec协议实现先进行身份鉴别和平台鉴别,然后进行SAP参数的协商,按照参数指定动作进行状态检测和控制服务,建立数据通道进行通信,在数据通信过程中要对数据进行校验,加解密等处理,TISec协议的整个处理过程关键点均有输出到OUTPUT[i]中。
 
图5 TISec协议处理用例流程

由于用例数量巨大,如果采用手工测试,难免出现漏测,为避免漏测和手工测试修改参数出现错误的情况,基于上述模型利用计算机程序来完成十分方便。在开发框架中利用Python语言(一种面向对象的解释型计算机程序设计语言)编写程序,容易将上述用例集合模型转换成计算机程序,利用程序对用例进行筛选和调用,很大程度上方便了测试,达到了利用测试框架进行自动化测试的目的。


总结
通过上述TISec协议测试方法可以看出,一致性测试作为协议实现测试的一个重要环节,其目标就是证明协议描述是否得到正确实现。同时,TISec协议本身的特殊性和复杂性无疑会给手工测试带来大量重复工作,不过当在一致性测试中采用正确的自动化测试方法,测试的有效性和真实性显著提高,最终使得TISec协议的实现更可靠,更完整。
0 0
原创粉丝点击