一种基于内容模板的电力IEC协议符合性验证方法。本发明专利技术属于网络通信领域,尤其涉及一种基于内容模板的电力IEC协议符合性验证方法。解决了现有技术中协议符合性验证过程效率低下、协议符合性验证过程难以针对具体协议字段的取值范围进行快速有效验证的缺陷的问题。本发明专利技术的方案:根据IEC协议规范制定内容模板,对网络中传输的指定TCP端口的TCP报文进行捕获,然后提取TCP报文二进制串,接着对TCP报文二进制串与相应的内容模板二进制串进行按位与运算,得到结果二进制串,最后对比结果二进制串和TCP报文二进制串,输出判定结果。可以通过内容模板的定义和简单的与运算,能够快速验证TCP报文载荷内容是否符合IEC协议规范,从而提升协议符合性验证的性能。
A Conformance Verification Method of IEC Protocol Based on Content Template
【技术实现步骤摘要】
一种基于内容模板的电力IEC协议符合性验证方法
本专利技术属于网络通信领域,尤其涉及一种基于内容模板的电力IEC协议符合性验证方法。
技术介绍
IEC系列协议是电力系统常用的标准通信协议规范,近年来在电力传输网络、新能源电厂等电力场景的设备、网络中得到广泛应用,用于对电力相关设备进行信息采集、控制等远程操作,各类设备厂商应当按照IEC标准规范进行各自设备的协议栈实现。然而由于不同实现者对协议的理解不一致,可能导致其协议实现过程偏离规范要求。网络攻击者也有可能利用伪造的网络TCP报文,对协议字段内容进行修改,实现网络攻击、伪装通信等非法目的。因此,对电力网络中传输的TCP报文进行协议符合性验证,对网络安全、网络规范而言是一项重要工作。目前,常见的网络协议符合性检测方法有以下几种:面向协议运行状态的协议一致性检查,该方法面向协议请求和应答的响应序列,来测试一台主机是否按照协议规范进行了应答操作;基于模式匹配的TCP报文内容符合性检查,该方法通过模式识别方法来判断协议实现是否与协议标准规定的字段内容相符合,其原理是从协议传输载荷中查找特定的模式串,从而验证TCP报文中传输的协议内容是否满足规范要求,目前存在多种模式匹配方法,例如暴力匹配(BF)、BM匹配算法、BB-BM算法等。对于现有技术,不能够针对TCP报文内容中特定二进制位的值进行协议符合性验证,面向协议运行状态的协议一致性检查,该方法偏重于对协议运行状态的规范一致性检查,针对协议内容字段的检查则显得不足;基于模式匹配的TCP报文内容符合性检查,该方法为每种协议规定多个模式串,针对每一个TCP报文内容,从中查找并匹配多个模式串,缺点是需要对TCP报文内容中进行顺序或跳跃查找,在多个模式串并存的情况下,效率较低,而且对协议规范中单个二进制位的值缺乏验证手段。
技术实现思路
针对现有技术中协议符合性验证过程效率低下、协议符合性验证过程难以针对具体协议字段的取值范围进行快速有效验证的缺陷的问题,其目的在于:通过内容模板的定义和简单的与运算,能够快速验证TCP报文载荷内容是否符合IEC协议规范,从而提升协议符合性验证的性能。本专利技术采用的技术方案如下:一种基于内容模板的电力IEC协议符合性验证方法,其特征在于,包括以下步骤:步骤1:根据IEC协议规范制定内容模板,内容模板中包含至少一个内容模板二进制串,每个模板二进制串的每个字节的值均对照IEC协议规范中相应位置字节的取值范围进行填写,填写方法是:针对该字节的在模板二进制串中的位置,在IEC规范中选取IEC协议TCP报文对应位置的字节,取出IEC规范针对该字节的所有允许值,并将所有允许值进行按位或(|)运算,将运算结果填入内容模板二进制串相应的字节中,并记录该内容模板二进制串的字节长度和该二进制串在IEC协议TCP报文中的字节偏移量;步骤2:对网络中传输的指定TCP端口的TCP报文进行捕获,只选取TCP端口号2404收发的所有TCP报文进行后续分析,丢弃其他TCP报文;步骤3:提取TCP报文中的TCP载荷内容,并且依次提取内容模板中每个内容模板二进制串,读出该内容模板二进制串的字节长度和字节偏移量,根据字节偏移量和字节长度从TCP载荷内容中提取TCP报文二进制串;步骤4:将TCP报文二进制串与相应的内容模板二进制串进行按位与运算,得到结果二进制串;步骤5:对比结果二进制串和TCP报文二进制串,输出判定结果。其中,所述步骤1包括:步骤1.1:初始化一个与IEC协议规范中标准TCP报文格式相一致的二进制串,其中,对协议规范中已经规定了取值范围的协议字段,以字节为单位,将协议规范允许的所有值进行按位或运算,获得该字节的模板值;对于协议规范未规定取值范围的协议字段,将该字段所有字节的所有二进制位设置为0x01;将该二进制串记为模板二进制串TEMPSTR,将其字节长度记为LEN,将其起始位置字节偏移量记为OFFSET;步骤1.2:将步骤1.1获得的TEMPSTR、LEN、OFFSET记为一个三元组{TEMPSTR,LEN,OFFSET};步骤1.3:若IEC规范中定义了多种TCP报文格式,则按照步骤1.1和1.2的方法,可根据每种TCP报文格式,各自制定一个三元组{TEMPSTR,LEN,OFFSET},多个三元组共同构成一个内容模板。其中,所述步骤3中提取TCP报文的TCP载荷内容,记为PAYLOAD,每获得一个TCP报文的PAYLOAD,都对其进行内容符合性验证,从内容模板中每一个三元组,取出其TEMPSTR、LEN、OFFSET,根据OFFSET和LEN的值,从PAYLOAD中提取从第OFFSET字节开始、长度为LEN的TCP报文二进制串,一个PAYLOAD中提取获得TCP报文二进制串的数量为一个或多个,所述TCP报文二进制串的数量与所述内容模板中三元组的数量一样,若PAYLOAD长度不足以提取TCP报文二进制串,则以0补齐该TCP报文二进制串的数据内容;所述多个TCP报文二进制串记为{PACKSTR1,PACKSTR2,……,PACKSTRn}。其中,所述步骤4中数个三元组中的TEMPSTR分别与数个TCP报文二进制串{PACKSTR1,PACKSTR2,……,PACKSTRn}依次进行按位与运算,获得多个结果二进制串,结果二进制串记为{RESULTSTR1,RESULTST2,……,RESULTSTRn}。其中,所述步骤5中将结果二进制串{PACKSTR1,PACKSTR2,……,PACKSTRn}分别与结果二进制串{RESULTSTR1,RESULTST2,……,RESULTSTRn}进行一一对比,任意PACKSTRi与相应RESULTSTRi内容完全一致,则判定该捕获的TCP报文符合协议规范,如果所有PACKSTRi均与相应RESULTSTRi内容不一致,则判定该TCP报文不符合协议规范,输出判定结果。其中,所述步骤2中捕获IEC协议规范指定的TCP端口号2404收发的所有TCP报文。综上所述,由于采用了上述技术方案,本专利技术的有益效果是:1.能够显著提升IEC协议符合性验证的效率。2.不需要对电力系统主机、设备发起协议测试。2.不需要建立多个模式字符串,不需要在TCP报文查找模式串。3.能够对二进制位进行内容的合法性判定。附图说明本专利技术将通过例子并参照附图的方式说明,其中:图1是本专利技术整体技术流程图。图2是基于按位与运算的协议内容符合性判定原理图。具体实施方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。下面结合图1、图2对本专利技术作详细说明。为表述方便,本专利技术对相关术语进行定义:TCP报文:TCP报文指的是网络中传输的数据包,一个TCP报文包含MAC头部、IP头部、TCP头部、TCP载荷。TCP端口:TCP头部中某个固定位置的数据内容,标识了该TCP报文所属的端口号。TCP载荷:指网络TCP报文中位于TCP头部以后的字节内容,这些字节内容就是TCP协议的载荷。二进制串:本专利技术从TCP报文中提取出来的TCP载荷,以二进制方式存放。内容模板:一个数据结构,包括一个或多个模板二进制串,以及各个模板二进制串的字节长度LEN、起始位置字节偏移量O本文档来自技高网...
【技术保护点】
1.一种基于内容模板的电力IEC协议符合性验证方法,其特征在于,包括以下步骤:步骤1:根据IEC协议规范制定内容模板,内容模板中包含至少一个内容模板二进制串,每个模板二进制串的每个字节的值均对照IEC协议规范中相应位置字节的取值范围进行填写;步骤2:对网络中传输的指定TCP端口的TCP报文进行捕获,只选取TCP端口号2404收发的所有TCP报文进行后续分析,丢弃其他TCP报文;步骤3:提取TCP报文中的TCP载荷内容,并且依次提取内容模板中每个内容模板二进制串,读出该内容模板二进制串的字节长度和字节偏移量,根据字节偏移量和字节长度从TCP载荷内容中提取TCP报文二进制串;步骤4:将TCP报文二进制串与相应的内容模板二进制串进行按位与运算,得到结果二进制串;步骤5:对比结果二进制串和TCP报文二进制串,进行判定,输出判定结果。
【技术特征摘要】
1.一种基于内容模板的电力IEC协议符合性验证方法,其特征在于,包括以下步骤:步骤1:根据IEC协议规范制定内容模板,内容模板中包含至少一个内容模板二进制串,每个模板二进制串的每个字节的值均对照IEC协议规范中相应位置字节的取值范围进行填写;步骤2:对网络中传输的指定TCP端口的TCP报文进行捕获,只选取TCP端口号2404收发的所有TCP报文进行后续分析,丢弃其他TCP报文;步骤3:提取TCP报文中的TCP载荷内容,并且依次提取内容模板中每个内容模板二进制串,读出该内容模板二进制串的字节长度和字节偏移量,根据字节偏移量和字节长度从TCP载荷内容中提取TCP报文二进制串;步骤4:将TCP报文二进制串与相应的内容模板二进制串进行按位与运算,得到结果二进制串;步骤5:对比结果二进制串和TCP报文二进制串,进行判定,输出判定结果。2.根据权利要求1所述一种基于内容模板的电力IEC协议符合性验证方法,其特征在于,所述步骤1包括:步骤1.1:初始化一个与IEC协议规范中标准TCP报文格式相一致的二进制串,其中,对协议规范中已经规定了取值范围的协议字段,以字节为单位,将协议规范允许的所有值进行按位或运算,获得该字节的模板值;对于协议规范未规定取值范围的协议字段,将该字段所有字节的所有二进制位设置为0x01;将该二进制串记为模板二进制串TEMPSTR,将其字节长度记为LEN,将其起始位置字节偏移量记为OFFSET;步骤1.2:将步骤1.1获得的TEMPSTR、LEN、OFFSET记为一个三元组{TEMPSTR,LEN,OFFSET};步骤1.3:若IEC规范中定义了多种TCP报文格式,则按照步骤1.1和1.2的方法,根据每种TCP报文格式,各自制定一个三元组{TEMPSTR,LEN,OFFSET},多个三元组共同构成一个内容模板。3.根据权利要求2所述一种基于内容模板的电力IEC协议符合性验证方法,其特征在于,所述步骤3中提取TCP报文的TCP载荷内容,记为PAYLOAD,每获得一个TCP报文的PAYLOAD,都对其进行内容符合性验证,从内容模板中每一个三元组,取出其TEMPSTR、LEN、OFFSET,根据OFFSET和LEN的值,从...
【专利技术属性】
技术研发人员:赵博,段军红,李玉杰,马志程,闫晓斌,付嘉渝,张宪康,李方军,杨波,张驯,袁晖,赵金雄,李龙,张自强,盖晓平,张建辉,刘志远,李春亮,卫祥,党倩,王刚,尚闻博,孙碧颖,沈琛云,
申请(专利权)人:国网甘肃省电力公司电力科学研究院,国网甘肃省电力公司,
类型:发明
国别省市:甘肃,62
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。