CN112181856A - 一种加密工控协议测试方法及装置 - Google Patents

一种加密工控协议测试方法及装置 Download PDF

Info

Publication number
CN112181856A
CN112181856A CN202011203091.0A CN202011203091A CN112181856A CN 112181856 A CN112181856 A CN 112181856A CN 202011203091 A CN202011203091 A CN 202011203091A CN 112181856 A CN112181856 A CN 112181856A
Authority
CN
China
Prior art keywords
byte stream
protocol
ciphertext
test case
plaintext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011203091.0A
Other languages
English (en)
Other versions
CN112181856B (zh
Inventor
邹海明
谷双平
李波波
郑志方
沈孟龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Supcon Technology Co Ltd
Original Assignee
Zhejiang Supcon Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Supcon Technology Co Ltd filed Critical Zhejiang Supcon Technology Co Ltd
Priority to CN202011203091.0A priority Critical patent/CN112181856B/zh
Publication of CN112181856A publication Critical patent/CN112181856A/zh
Application granted granted Critical
Publication of CN112181856B publication Critical patent/CN112181856B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种加密工控协议测试方法及装置,可以构建协议测试用例集中一个目标协议测试用例的基础数据类型和至少一个协议封装类;在获取到各个协议封装类的至少一个字段特征时按照相应的协议封装类进行协议封装,并按照指定顺序将封装得到的至少一个第一封装类实例组合为源数据包;构建源数据包对应的第一明文字节流,并加密为第一密文字节流;将第一密文字节流发送至安装有待测加密工控协议的目标设备,并将目标设备反馈的第二密文字节流解密为第二明文字节流,解构第二明文字节流对应的数据包;根据源数据包和反馈数据包中的封装类实例的对比结果确定待测加密工控协议的测试结果。

Description

一种加密工控协议测试方法及装置
技术领域
本发明涉及加密工控协议测试的技术领域,更具体地说,涉及一种加密工控协议测试方法及装置。
背景技术
工业控制系统是由计算机设备和工业过程控制设备组成的智能控制系统,是工业系统的大脑和中枢。工控系统中,设备间通信采用各类工控协议实现。传统的工控系统由于运行环境封闭、专业性强,较少关注通信过程的安全性,这些工控协议在传输过程中通常不加密、不做数据完整性校验,往往通过协议逆向分析就可以识别出来。随着工业信息化的发展,工控系统由相对封闭的运行环境向信息化转变,传统的不加密、无校验、易篡改破坏的通信方式,使得生产安全面临着巨大的威胁。为解决上述问题,对工控协议增加应用协议头部(包含加密相关信息)、将原始数据加密、加校验的通信方式应运而生。
在工控设备投入应用之前,需要对通信协议和过程进行测试。对于协议的测试包括一致性测试、互操作性测试、健壮性测试和性能测试。传统的不加密协议测试,都是在明文数据包的基础上进行操作:截取通信设备之间的通信数据,进行分析和信息提取,判断被测设备和协议标准规定的预期输出是否相同;截取通信设备之间的通信数据,进行改包和重放操作,实现以上各协议测试。
应用以上现有协议测试软件对加密工控协议进行测试存在以下缺陷:
(1)由于截取的数据包是密文,需要测试人员对每个包进行解密操作,才能提取到数据包信息并校验,导致测试效率低。
(2)改包后的数据包,数据和校验不匹配,会被协议实体视为无效报文,无法触发漏洞。
(3)传统的不加密工控协议测试,也有通过构造数据包进行测试。但是由于明文数据包结构单一(应用层只有应用协议数据),故而其构造过程也较简单,部分简单协议甚至可以直接操作纯字节流就可完成测试。不能满足加密工控协议应用层包含多层数据、数据构造/解析包含多个步骤的要求。
为此,如何克服现有协议测试软件对加密工控协议不适用的问题,是本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,为解决上述问题,本发明提供一种加密工控协议测试方法及装置。技术方案如下:
一种加密工控协议测试方法,所述方法包括:
构建协议测试用例集,所述协议测试用例集包括至少一个协议测试用例;
针对所述至少一个协议测试用例中的目标协议测试用例来说,构建所述目标协议测试用例的基础数据类型和至少一个协议封装类;
获取每个所述协议封装类对应的至少一个字段特征,所述字段特征包括一个控制字段的描述数据和所述控制字段的数值,所述控制字段的数值的类型由所述基础数据类型确定;
对每个所述协议封装类对应的所述至少一个字段特征分别进行协议封装,并按照指定顺序将封装得到的至少一个第一封装类实例组合为源数据包;
构建所述源数据包对应的第一明文字节流,并将所述第一明文字节流加密为第一密文字节流;
将所述第一密文字节流发送至安装有待测加密工控协议的目标设备,并接收所述目标设备基于所述第一密文字节流反馈的第二密文字节流;
将所述第二密文字节流解密为第二明文字节流,并解构所述第二明文字节流对应的反馈数据包,所述反馈数据包中是由至少一个第二封装类实例按照所述指定顺序组合的;
根据所述源数据包和所述反馈数据包中所述至少一个第一封装类实例和所述至少一个第二封装类实例的对比结果确定所述目标协议测试用例对所述待测加密工控协议的测试结果。
优选的,所述方法还包括:
响应用户基于所述控制字段的描述数据输入的针对所述控制字段的数值的编辑操作。
优选的,所述将所述第一明文字节流加密为第一密文字节流,包括:
获取针对所述源数据包的加密用的填充数据和函数输入参数;
根据所述加密用的填充数据和函数输入参数计算加密密钥;
按照预设加密算法和所述加密密钥加密所述第一明文字节流得到第一密文字节流;
所述将所述第二密文字节流解密为第二明文字节流,包括:
解析所述第二密文字节流得到解密用的填充数据和函数输入参数;
根据所述解密用的填充数据和函数输入参数计算解密密钥,所述解密密钥和所述加密密钥相匹配;
按照预设解密算法和所述解密密钥解密所述第二密文字节流得到第二明文字节流。
优选的,所述将所述第一密文字节流发送至安装有待测加密工控协议的目标设备,并接收所述目标设备基于所述第一密文字节流反馈的第二密文字节流,包括:
将所述第一密文字节流发送至具有指定的MAC、IP和端口的设备,并接收具有所述指定的MAC、IP和端口的设备反馈的第二密文字节流。
优选的,所述方法还包括:
以树状结构管理所述协议测试用例集,所述协议测试用例集中的每个所述协议测试用例是基于关键字、以表格形式编写的。
优选的,所述方法还包括:
评价所述目标设备与协议相关的业务功能。
一种加密工控协议测试装置,所述方法包括:
协议测试用例模块,用于构建协议测试用例集,所述协议测试用例集包括至少一个协议测试用例;
源协议模块,用于针对所述至少一个协议测试用例中的目标协议测试用例来说,构建所述目标协议测试用例的基础数据类型和至少一个协议封装类;获取每个所述协议封装类对应的至少一个字段特征,所述字段特征包括一个控制字段的描述数据和所述控制字段的数值,所述控制字段的数值的类型由所述基础数据类型确定;对每个所述协议封装类对应的所述至少一个字段特征分别进行协议封装,并按照指定顺序将封装得到的至少一个第一封装类实例组合为源数据包;构建所述源数据包对应的第一明文字节流,并将所述第一明文字节流加密为第一密文字节流;
数据收发模块,用于将所述第一密文字节流发送至安装有待测加密工控协议的目标设备,并接收所述目标设备基于所述第一密文字节流反馈的第二密文字节流;
所述源协议模块,还用于将所述第二密文字节流解密为第二明文字节流,并解构所述第二明文字节流对应的反馈数据包,所述反馈数据包中是由至少一个第二封装类实例按照所述指定顺序组合的;根据所述源数据包和所述反馈数据包中所述至少一个第一封装类实例和所述至少一个第二封装类实例的对比结果确定所述目标协议测试用例对所述待测加密工控协议的测试结果。
优选的,所述源协议模块,还用于:
响应用户基于所述控制字段的描述数据输入的针对所述控制字段的数值的编辑操作。
优选的,用于将所述第一明文字节流加密为第一密文字节流的所述源协议模块,具体用于:
获取针对所述源数据包的加密用的填充数据和函数输入参数;根据所述加密用的填充数据和函数输入参数计算加密密钥;按照预设加密算法和所述加密密钥加密所述第一明文字节流得到第一密文字节流;
用于将所述第一明文字节流加密为第一密文字节流的所述源协议模块,具体用于:
解析所述第二密文字节流得到解密用的填充数据和函数输入参数;根据所述解密用的填充数据和函数输入参数计算解密密钥,所述解密密钥和所述加密密钥相匹配;按照预设解密算法和所述解密密钥解密所述第二密文字节流得到第二明文字节流。
优选的,所述数据收发模块,具体用于:
将所述第一密文字节流发送至具有指定的MAC、IP和端口的设备,并接收具有所述指定的MAC、IP和端口的设备反馈的第二密文字节流。
以上本发明提供的加密工控协议测试方法及装置,可以构建协议测试用例集中一个目标协议测试用例的基础数据类型和至少一个协议封装类;在获取到各个协议封装类的至少一个字段特征时按照相应的协议封装类进行协议封装,并按照指定顺序将封装得到的至少一个第一封装类实例组合为源数据包;构建源数据包对应的第一明文字节流,并加密为第一密文字节流;将第一密文字节流发送至安装有待测加密工控协议的目标设备,并将目标设备反馈的第二密文字节流解密为第二明文字节流,解构第二明文字节流对应的数据包;根据源数据包和反馈数据包中的封装类实例的对比结果确定待测加密工控协议的测试结果。基于本发明可以对加密工控协议进行深入测试,全自动化的操作方式也极大提升了测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的加密工控协议测试方法的方法流程图;
图2为加密前数据包和加密后数据包的结构对比图;
图3为本发明实施例提供的加密工控协议测试装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种加密工控协议测试方法,该方法的方法流程图如图1所示,包括如下步骤:
S10,构建协议测试用例集,协议测试用例集包括至少一个协议测试用例。
本实施例中,针对不同的功能测试可以设置对应的测试用例,测试用例集中可以包含多种功能测试的测试用例。而在实施应用中,为方便管理,可以以树状结构管理该协议测试用例集,在该协议测试用例集中,每个协议测试用例在编写时可以用关键字标识变量、以表格形式展示。
S20,针对至少一个协议测试用例中的目标协议测试用例来说,构建目标协议测试用例的基础数据类型和至少一个协议封装类。
本实施例中,目标协议测试用例是由从协议测试用例集中选取的用于测试待测加密工控协议的一个或多个用例。对于常见的协议测试,比如一致性和互操作性测试、健壮性测试和性能测试,都设置有相应的协议测试用例。
目标协议测试用例的基础数据类型包括但不局限于字符串、浮点、bool、整型等编程语言提供的基础数据类型,还可以构建基础数据类型之外的诸如设备时间、组态UUID等常用工控协议中控制字段所用的数据类型。
此外,本实施例中,可以按照目标协议测试用例的基础功能设置协议封装类,一个基础功能对应一个协议封装类,例如,应用层写变量功能、应用层读变量功能分别封装为独立的类,一个协议封装类的实例是一个完整业务数据里面的一段功能子包。
S30,获取每个协议封装类对应的至少一个字段特征,字段特征包括一个控制字段的描述数据和控制字段的数值,控制字段的数值的类型由基础数据类型确定。
本实施例中,由于工控协议具有高度结构化的特征,因此在一个协议封装类中,每个字段特征以“keyname-value”的列表形式体现,其中,keyname为控制字段的描述数据、value为控制字段的数值。
在实际应用中,为方便用户对数据包填充和改值,可以将每个字段特征以“keyname-value”的列表形式展示于测试侧的用户终端,响应用户在该用户终端上基于控制字段的描述数据输入的针对控制字段的数值的编辑操作。
S40,对每个协议封装类对应的至少一个字段特征分别进行协议封装,并按照指定顺序将封装得到的至少一个第一封装类实例组合为源数据包。
本实施例中,每个协议封装类中包含有bind_layer(绑定)函数、build(构建)函数、dissaction(解构)函数。
针对一个协议封装类,将该协议封装类对应的至少一个字段特征进行协议封装得到一个第一封装类实例。在所有协议封装类都封装完成后,调用bind_layer函数将协议封装得到的所有相对独立的第一封装类实例,按照指定顺序组合成一个源数据包。
S50,构建源数据包对应的第一明文字节流,并将第一明文字节流加密为第一密文字节流。
参见图2所示的加密前数据包和加密后数据包的结构对比图。可以看出,在网络层(以太网头部、IP首部、UDP首部),加密后数据包和加密前数据的内容相同;在应用层,加密前数据包中仅包含应用协议数据,而加密后数据包中包含应用协议数据外、还包含应用协议头部和应用协议签名。需要说明的是,加密后数据包中的应用协议数据是对加密前数据包中应用协议数据加密得到的,而应用协议头部中包含有加密相关的信息。
因此,本实施中按照指定顺序组合的至少一个第一封装类实例是源数据包中“应用协议数据”部分的内容,而源数据包中“网络层”部分的具体内容可以预先设置,本实施例对此不做限定。
在构建源数据包对应的第一明文字节流的过程中,调用build函数将源数据包中“应用协议数据”部分的至少一个第一封装类实例由“keyname-value”的列表形式构建为明文的字节流,再添加源数据包中“网络层”部分的内容得到第一明文字节流。
相应的,在将第一明文字节流加密为第一密文字节流的过程中,对第一明文字节流中“应用协议数据”部分的至少一个第一封装类实例的明文的字节流进行加密得到第一密文字节流中“应用协议数据”部分的内容,再添加第一明文字节流中“网络层”部分的内容、“应用协议头部”部分的内容、以及“应用协议签名”部分的内容得到第一密文字节流。
当然,第一密文字节流中“应用协议头部”部分的内容与第一密文字节流中“应用协议数据”部分的内容(比如协议版本号、数据长度)以及加密信息(比如加密类型)有关。对于“应用协议头部”的计算方式,本实施例不做限定。
具体实现过程中,步骤S50中“将第一明文字节流加密为第一密文字节流”可以采用如下步骤:
获取针对源数据包的加密用的填充数据和函数输入参数;根据加密用的填充数据和函数输入参数计算加密密钥;按照预设加密算法和加密密钥加密第一明文字节流得到第一密文字节流。
本实施例中,加密用的填充数据包括协议版本号、加密类型等信息,加密用的填充数据和函数输入参数由测试侧的用户终端输入。加密密钥对第一明文字节流中的“应用协议数据”部分的内容进行加密,再基于加密结果(比如加密结果的数据长度)和加密用的填充数据填充第一密文字节流中的“应用协议头部”部分的内容。
需要说明的是,第一密文字节流中的“应用协议签名”部分的内容可以预先设置,还可以根据上述加密结果确定,本实施例对此不做限定。
S60,将第一密文字节流发送至安装有待测加密工控协议的目标设备,并接收目标设备基于第一密文字节流反馈的第二密文字节流。
本实施例中,可以作为一个真实网络节点将第一密文字节流发送至目标设备,该目标设备以指定的MAC、IP和端口作为识别标记。当然,在接收目标设备的反馈时,也只响应具有指定的MAC、IP和端口的设备。
此外,本实施例还可以具有伪装成任意MAC、IP和端口的功能,也就是说以一个伪装网络节点将第一密文字节流发送至目标设备。
S70,将第二密文字节流解密为第二明文字节流,并解构第二明文字节流对应的反馈数据包,反馈数据包中是由至少一个第二封装类实例按照指定顺序组合的。
本实施例中,第二密文字节流的结构与第一密文字节流的结构一致,其也包括“网络层”、“应用协议头部”、“应用协议数据”和“应用协议签名”这四部分。
对第二密文字节流中“应用协议数据”部分的内容进行解密,解密结果作为第二明文字节流中“应用协议数据”部分的内容、再添加第二密文字节流中“网络层”部分的内容得到第二明文字节流。
调用dissaction函数将第二明文字节流中“应用协议数据”部分的内容由明文的字节流解构为至少一个“keyname-value”的列表形式的第二封装类实例。
具体实现过程中,步骤S70中“将第二密文字节流解密为第二明文字节流”可以采用如下步骤:
解析第二密文字节流得到解密用的填充数据和函数输入参数;根据解密用的填充数据和函数输入参数计算解密密钥,解密密钥和加密密钥相匹配;按照预设解密算法和解密密钥解密第二密文字节流得到第二明文字节流。
本实施例中,可以从第二密文字节流中“应用协议头部”部分中获得解密用的填充数据和函数输入参数,解密用的填充数据包括协议版本号、解密类型等信息,解密用的填充数据和函数输入参数由被测试侧的用户终端输入。解密密钥对第二密文字节流中的“应用协议数据”部分的内容进行解密。
S80,根据源数据包和反馈数据包中至少一个第一封装类实例和至少一个第二封装类实例的对比结果确定目标协议测试用例对待测加密工控协议的测试结果。
本实施例中,通过各个第一封装实例与其对应的第二封装实例的对比结果,可以确定待测加密工控协议的响应是否符合标准,由此确定待测加密工控协议是否通过目标协议测试用例的测试。
在其他一些实施例中,根据工控系统的特征,还可以评价目标设备与协议相关的业务功能。
本实施例中,根据反馈数据包的内容测试目标设备的DO/AO输出正确性,结合与反馈数据包一同返回的PING包测试目标设备ICMP回应正确性。此外,还可以根据网络接口返回的数据测试与目标设备的网络链路的连通性。
本发明实施例提供的加密工控协议测试方法,可以对加密工控协议进行深入测试,全自动化的操作方式也极大提升了测试效率。
基于上述实施例提供的加密工控协议测试方法,本发明实施例则提供一种执行上述加密工控协议测试方法的装置,该装置的结构示意图如图3所示,包括:
协议测试用例模块10,用于构建协议测试用例集,协议测试用例集包括至少一个协议测试用例;
源协议模块20,用于针对至少一个协议测试用例中的目标协议测试用例来说,构建目标协议测试用例的基础数据类型和至少一个协议封装类;获取每个协议封装类对应的至少一个字段特征,字段特征包括一个控制字段的描述数据和控制字段的数值,控制字段的数值的类型由基础数据类型确定;对每个协议封装类对应的至少一个字段特征分别进行协议封装,并按照指定顺序将封装得到的至少一个第一封装类实例组合为源数据包;构建源数据包对应的第一明文字节流,并将第一明文字节流加密为第一密文字节流;
数据收发模块30,用于将第一密文字节流发送至安装有待测加密工控协议的目标设备,并接收目标设备基于第一密文字节流反馈的第二密文字节流;
源协议模块20,还用于将第二密文字节流解密为第二明文字节流,并解构第二明文字节流对应的反馈数据包,反馈数据包中是由至少一个第二封装类实例按照指定顺序组合的;根据源数据包和反馈数据包中至少一个第一封装类实例和至少一个第二封装类实例的对比结果确定目标协议测试用例对待测加密工控协议的测试结果。
可选的,源协议模块20,还用于:
响应用户基于控制字段的描述数据输入的针对控制字段的数值的编辑操作。
可选的,用于将第一明文字节流加密为第一密文字节流的源协议模块20,具体用于:
获取针对源数据包的加密用的填充数据和函数输入参数;根据加密用的填充数据和函数输入参数计算加密密钥;按照预设加密算法和加密密钥加密第一明文字节流得到第一密文字节流;
用于将第一明文字节流加密为第一密文字节流的源协议模块,具体用于:
解析第二密文字节流得到解密用的填充数据和函数输入参数;根据解密用的填充数据和函数输入参数计算解密密钥,解密密钥和加密密钥相匹配;按照预设解密算法和解密密钥解密第二密文字节流得到第二明文字节流。
可选的,数据收发模块30,具体用于:
将第一密文字节流发送至具有指定的MAC、IP和端口的设备,并接收具有指定的MAC、IP和端口的设备反馈的第二密文字节流。
可选的,上述装置还包括:
评价模块,用于评价目标设备与协议相关的业务功能。
本发明实施例提供的加密工控协议测试装置,可以对加密工控协议进行深入测试,全自动化的操作方式也极大提升了测试效率。
以上对本发明所提供的一种加密工控协议测试方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种加密工控协议测试方法,其特征在于,所述方法包括:
构建协议测试用例集,所述协议测试用例集包括至少一个协议测试用例;
针对所述至少一个协议测试用例中的目标协议测试用例来说,构建所述目标协议测试用例的基础数据类型和至少一个协议封装类;
获取每个所述协议封装类对应的至少一个字段特征,所述字段特征包括一个控制字段的描述数据和所述控制字段的数值,所述控制字段的数值的类型由所述基础数据类型确定;
对每个所述协议封装类对应的所述至少一个字段特征分别进行协议封装,并按照指定顺序将封装得到的至少一个第一封装类实例组合为源数据包;
构建所述源数据包对应的第一明文字节流,并将所述第一明文字节流加密为第一密文字节流;
将所述第一密文字节流发送至安装有待测加密工控协议的目标设备,并接收所述目标设备基于所述第一密文字节流反馈的第二密文字节流;
将所述第二密文字节流解密为第二明文字节流,并解构所述第二明文字节流对应的反馈数据包,所述反馈数据包中是由至少一个第二封装类实例按照所述指定顺序组合的;
根据所述源数据包和所述反馈数据包中所述至少一个第一封装类实例和所述至少一个第二封装类实例的对比结果确定所述目标协议测试用例对所述待测加密工控协议的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应用户基于所述控制字段的描述数据输入的针对所述控制字段的数值的编辑操作。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一明文字节流加密为第一密文字节流,包括:
获取针对所述源数据包的加密用的填充数据和函数输入参数;
根据所述加密用的填充数据和函数输入参数计算加密密钥;
按照预设加密算法和所述加密密钥加密所述第一明文字节流得到第一密文字节流;
所述将所述第二密文字节流解密为第二明文字节流,包括:
解析所述第二密文字节流得到解密用的填充数据和函数输入参数;
根据所述解密用的填充数据和函数输入参数计算解密密钥,所述解密密钥和所述加密密钥相匹配;
按照预设解密算法和所述解密密钥解密所述第二密文字节流得到第二明文字节流。
4.根据权利要求1所述的方法,其特征在于,所述将所述第一密文字节流发送至安装有待测加密工控协议的目标设备,并接收所述目标设备基于所述第一密文字节流反馈的第二密文字节流,包括:
将所述第一密文字节流发送至具有指定的MAC、IP和端口的设备,并接收具有所述指定的MAC、IP和端口的设备反馈的第二密文字节流。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
以树状结构管理所述协议测试用例集,所述协议测试用例集中的每个所述协议测试用例是基于关键字、以表格形式编写的。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
评价所述目标设备与协议相关的业务功能。
7.一种加密工控协议测试装置,其特征在于,所述方法包括:
协议测试用例模块,用于构建协议测试用例集,所述协议测试用例集包括至少一个协议测试用例;
源协议模块,用于针对所述至少一个协议测试用例中的目标协议测试用例来说,构建所述目标协议测试用例的基础数据类型和至少一个协议封装类;获取每个所述协议封装类对应的至少一个字段特征,所述字段特征包括一个控制字段的描述数据和所述控制字段的数值,所述控制字段的数值的类型由所述基础数据类型确定;对每个所述协议封装类对应的所述至少一个字段特征分别进行协议封装,并按照指定顺序将封装得到的至少一个第一封装类实例组合为源数据包;构建所述源数据包对应的第一明文字节流,并将所述第一明文字节流加密为第一密文字节流;
数据收发模块,用于将所述第一密文字节流发送至安装有待测加密工控协议的目标设备,并接收所述目标设备基于所述第一密文字节流反馈的第二密文字节流;
所述源协议模块,还用于将所述第二密文字节流解密为第二明文字节流,并解构所述第二明文字节流对应的反馈数据包,所述反馈数据包中是由至少一个第二封装类实例按照所述指定顺序组合的;根据所述源数据包和所述反馈数据包中所述至少一个第一封装类实例和所述至少一个第二封装类实例的对比结果确定所述目标协议测试用例对所述待测加密工控协议的测试结果。
8.根据权利要求7所述的装置,其特征在于,所述源协议模块,还用于:
响应用户基于所述控制字段的描述数据输入的针对所述控制字段的数值的编辑操作。
9.根据权利要求7所述的装置,其特征在于,用于将所述第一明文字节流加密为第一密文字节流的所述源协议模块,具体用于:
获取针对所述源数据包的加密用的填充数据和函数输入参数;根据所述加密用的填充数据和函数输入参数计算加密密钥;按照预设加密算法和所述加密密钥加密所述第一明文字节流得到第一密文字节流;
用于将所述第一明文字节流加密为第一密文字节流的所述源协议模块,具体用于:
解析所述第二密文字节流得到解密用的填充数据和函数输入参数;根据所述解密用的填充数据和函数输入参数计算解密密钥,所述解密密钥和所述加密密钥相匹配;按照预设解密算法和所述解密密钥解密所述第二密文字节流得到第二明文字节流。
10.根据权利要求7所述的装置,其特征在于,所述数据收发模块,具体用于:
将所述第一密文字节流发送至具有指定的MAC、IP和端口的设备,并接收具有所述指定的MAC、IP和端口的设备反馈的第二密文字节流。
CN202011203091.0A 2020-11-02 2020-11-02 一种加密工控协议测试方法及装置 Active CN112181856B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011203091.0A CN112181856B (zh) 2020-11-02 2020-11-02 一种加密工控协议测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011203091.0A CN112181856B (zh) 2020-11-02 2020-11-02 一种加密工控协议测试方法及装置

Publications (2)

Publication Number Publication Date
CN112181856A true CN112181856A (zh) 2021-01-05
CN112181856B CN112181856B (zh) 2022-04-22

Family

ID=73918042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011203091.0A Active CN112181856B (zh) 2020-11-02 2020-11-02 一种加密工控协议测试方法及装置

Country Status (1)

Country Link
CN (1) CN112181856B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112714047A (zh) * 2021-03-29 2021-04-27 北京网测科技有限公司 基于工控协议流量的测试方法、装置、设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130185056A1 (en) * 2012-01-12 2013-07-18 Accenture Global Services Limited System for generating test scenarios and test conditions and expected results
CN106326721A (zh) * 2015-06-19 2017-01-11 上海高清数字科技产业有限公司 终端加密解密系统及方法
US20170124333A1 (en) * 2015-10-28 2017-05-04 Ajou University Industry-Academic Cooperation Foundation Method and system for detecting vulnerabilities of communication protocol software
CN106789156A (zh) * 2016-11-11 2017-05-31 北京匡恩网络科技有限责任公司 一种工控网络测试方法、装置及系统
CN107241226A (zh) * 2017-06-29 2017-10-10 北京工业大学 基于工控私有协议的模糊测试方法
CN108520187A (zh) * 2018-04-20 2018-09-11 西安交通大学 基于串行通信总线信号分析的工控系统物理入侵攻击检测方法
US10200259B1 (en) * 2016-09-21 2019-02-05 Symantec Corporation Systems and methods for detecting obscure cyclic application-layer message sequences in transport-layer message sequences
EP3479284A1 (en) * 2016-06-30 2019-05-08 General Electric Company Secure industrial control platform
CN110401581A (zh) * 2019-07-22 2019-11-01 杭州电子科技大学 基于流量追溯的工控协议模糊测试用例生成方法
CN110505111A (zh) * 2019-07-09 2019-11-26 杭州电子科技大学 基于流量重放的工控协议模糊测试方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130185056A1 (en) * 2012-01-12 2013-07-18 Accenture Global Services Limited System for generating test scenarios and test conditions and expected results
CN106326721A (zh) * 2015-06-19 2017-01-11 上海高清数字科技产业有限公司 终端加密解密系统及方法
US20170124333A1 (en) * 2015-10-28 2017-05-04 Ajou University Industry-Academic Cooperation Foundation Method and system for detecting vulnerabilities of communication protocol software
EP3479284A1 (en) * 2016-06-30 2019-05-08 General Electric Company Secure industrial control platform
CN110325995A (zh) * 2016-06-30 2019-10-11 通用电气公司 安全的工业控制平台
US10200259B1 (en) * 2016-09-21 2019-02-05 Symantec Corporation Systems and methods for detecting obscure cyclic application-layer message sequences in transport-layer message sequences
CN106789156A (zh) * 2016-11-11 2017-05-31 北京匡恩网络科技有限责任公司 一种工控网络测试方法、装置及系统
CN107241226A (zh) * 2017-06-29 2017-10-10 北京工业大学 基于工控私有协议的模糊测试方法
CN108520187A (zh) * 2018-04-20 2018-09-11 西安交通大学 基于串行通信总线信号分析的工控系统物理入侵攻击检测方法
US20200302054A1 (en) * 2018-04-20 2020-09-24 Xi'an Jiaotong University Method for detecting physical intrusion attack in industrial control system based on analysis of signals on serial communication bus
CN110505111A (zh) * 2019-07-09 2019-11-26 杭州电子科技大学 基于流量重放的工控协议模糊测试方法
CN110401581A (zh) * 2019-07-22 2019-11-01 杭州电子科技大学 基于流量追溯的工控协议模糊测试用例生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘晋兵等: "基于模糊测试的嵌入式设备协议漏洞挖掘及分析", 《山西电力》 *
张冠宇; 尚文利; 张博文; 陈春雨; 张锐: "一种结合遗传算法的工控协议模糊测试方法", 《计算机应用研究》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112714047A (zh) * 2021-03-29 2021-04-27 北京网测科技有限公司 基于工控协议流量的测试方法、装置、设备及存储介质
CN112714047B (zh) * 2021-03-29 2021-06-29 北京网测科技有限公司 基于工控协议流量的测试方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112181856B (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
TWI598765B (zh) Data protection methods and devices
CN113591119B (zh) 跨域标识解析节点数据隐私保护与安全共享方法及系统
CN101309273B (zh) 一种生成安全联盟的方法和装置
US8417640B2 (en) Secure license key method and system
CN108664395A (zh) 应用程序测试方法、装置、设备及存储介质
Ksiezopolski QoP-ML: Quality of Protection modelling language for cryptographic protocols
Arapinis et al. Verifying privacy-type properties in a modular way
CN112181856B (zh) 一种加密工控协议测试方法及装置
CN107135190A (zh) 基于传输层安全连接的数据流量归属识别方法及装置
CN111586045B (zh) 一种属性加密和动态安全层的防护方法及对应的防火墙
CN107431691A (zh) 一种数据包传输方法、装置、节点设备以及系统
CN109347696B (zh) 一种基于分级变异的网络协议模糊测试方法
CN114915503A (zh) 基于安全芯片的数据流拆分处理加密方法及安全芯片装置
CN113992734A (zh) 会话连接方法及装置、设备
CN104994078B (zh) 局域网内的信息发送、获取方法及装置、信息处理系统
Khan et al. Generic verification of security protocols
CN112104590B (zh) 一种检测私网内网络设备私接公网的方法及系统
CN108337083A (zh) 自动化测试过程中生成密钥的方法及装置
Doghmi et al. Completeness of the authentication tests
CN109788249B (zh) 基于工业互联网操作系统的视频监控控制方法
De Moraes et al. Protecting LoRaWan data against untrusted network servers
Unruh Termination-insensitive computational indistinguishability (and applications to computational soundness)
Whalen et al. Protocol vulnerability analysis
Stergiopoulos et al. Leaking supervisory controls and data acquisition commands over unpadded TCP/IP encryption through differential packet size analysis
Liu et al. CMSS: Collaborative Modeling of Safety and Security Requirements for Network Protocols

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant