CN106817372A - 一种基于多状态机的协议解析系统及方法 - Google Patents

一种基于多状态机的协议解析系统及方法 Download PDF

Info

Publication number
CN106817372A
CN106817372A CN201710048041.1A CN201710048041A CN106817372A CN 106817372 A CN106817372 A CN 106817372A CN 201710048041 A CN201710048041 A CN 201710048041A CN 106817372 A CN106817372 A CN 106817372A
Authority
CN
China
Prior art keywords
machine
condition code
multimode
supervising
state machine
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.)
Pending
Application number
CN201710048041.1A
Other languages
English (en)
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.)
XIAMEN TIPRAY TECHNOLOGY Co Ltd
Original Assignee
XIAMEN TIPRAY 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 XIAMEN TIPRAY TECHNOLOGY Co Ltd filed Critical XIAMEN TIPRAY TECHNOLOGY Co Ltd
Priority to CN201710048041.1A priority Critical patent/CN106817372A/zh
Publication of CN106817372A publication Critical patent/CN106817372A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开一种基于多状态机的协议解析系统,包括:多状态机生成模块,用于定义需要的状态机以及状态机之间的跳转关系;以及,状态机匹配模块,用于待匹配数据的输入、中间匹配结果的保存以及最终匹配结果的输出。本发明还公开一种基于多状态机的协议解析方法,包括如下步骤:步骤1,初始化所有状态机,并定义各状态机之间的跳转关系,形成多状态机;步骤2,将待匹配的数据输入多状态机进行匹配,输出匹配结果。此种方案可提高解析效率,解决特征码被分段传输的问题,并可进行容错处理。

Description

一种基于多状态机的协议解析系统及方法
技术领域
本发明涉及一种基于多状态机的协议解析系统及解析方法。
背景技术
现有的协议一般都是以键-值对的形式定义的。键也就是通常所说的特征码,值则是通常所说的有效数据。在实际操作时,通过对特征码的循环匹配,将相应的有效数据进行保存,当识别到的特征码为结束特征码的时候,则输出匹配结果。
现有的解析方法存在着如下几点不足:
(I)解析速度慢;
(II)在网络数据传输中,特征码可能被分段传输,导致特征码匹配不到;
(III)无法定义特征码出现的先后顺序;
(V)所有的特征码都聚集在一个状态机里面,可能造成状态机爆炸;
(IV)没有容错机制和跳转机制。
以下对本案涉及到的几个名词进行解释:
(I)状态:用于匹配的最小单位。比如特征码China包含有C、h、i、n和a五个状态。
(II)状态机:一个有向图形,由一组节点和一组相应的转移函数组成。
(III)前置状态:用于保存上次匹配结束时的最终状态。
发明内容
本发明的目的,在于提供一种基于多状态机的协议解析方法,其可提高解析效率,解决特征码被分段传输的问题,并可进行容错处理。
为了达成上述目的,本发明的解决方案是:
一种基于多状态机的协议解析系统,包括:
多状态机生成模块,用于定义需要的状态机以及状态机之间的跳转关系;以及,
状态机匹配模块,用于待匹配数据的输入、中间匹配结果的保存以及最终匹配结果的输出。
一种基于多状态机的协议解析方法,包括如下步骤:
步骤1,初始化所有状态机,并定义各状态机之间的跳转关系,形成多状态机;
步骤2,将待匹配的数据输入多状态机进行匹配,输出匹配结果。
上述步骤1中,对基于Http协议的多状态机,将特征码“POST”作为根状态机下的特征码,“\r\n\r\n”为“POST”特征码下的结束特征码。
上述步骤1中,对基于Smtp协议的多状态机,将特征码“To:”作为根状态机下的特征码,“\r\n\r\n”为“To:”特征码下的结束特征码。
上述步骤2的具体内容是:
步骤21,将待匹配的数据输入多状态机进行匹配;如果前置状态不为空,则将当前状态恢复为前置状态;否则从根状态机开始匹配;
步骤22,如果匹配到特征码,则执行步骤23,否则执行步骤25;
步骤23,如果特征码为结束特征码,则执行步骤24,否则保存对应的有效数据,并跳转到该特征码对应的状态机,并执行步骤22;
步骤24,将获取到的有效数据进行整合并分析:如果有效数据符合解析的协议特征,则输出解析结果并跳转到该特征码对应的状态机;否则判定匹配结果为脏数据,丢弃获取到的有效数据,并跳转到容错状态机;执行完上述操作后执行步骤22;
步骤25,匹配结束,将最后匹配到的状态保存为前置状态。
上述步骤24中,容错状态机为根状态机。
采用上述方案后,本发明具有以下特点:
(1)本发明采用多状态机间跳转的方式,可以解耦状态之间的关系,可以避免状态机爆炸,提高解析效率;
(2)本发明可以解决特征码被分段传输而导致的匹配失败问题;
(3)本发明具有容错机制,可以对脏数据进行识别和处理;
(4)状态机匹配之后,输出的即是最终数据,而不是一堆无序的状态。
附图说明
图1是本发明的多状态机的拓扑图;
图2是本发明的多状态机匹配流程图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
本发明提供一种基于多状态机的协议解析系统,包括如下两个模块:
(1)多状态机生成模块,用于定义需要的状态机以及状态机之间的跳转关系;
(2)状态机匹配模块,用于待匹配数据的输入、中间匹配结果的保存以及最终匹配结果的输出。
基于以上系统,本发明还提供一种基于多状态机的协议解析方法,包括如下步骤:
步骤1,生成多状态机
包含:
步骤11,初始化所有状态机;
步骤12,定义各状态机之间的跳转关系,形成多状态机。
以下将以基于Http协议和Smtp协议的多状态机的生成为例,说明步骤1的实现过程。
a.根据Http协议的RFC协议规范,Http在上传数据的时候,具有特征码“POST”;在“POST”特征码下,具有特征码“Host:”、“Content-Length:”和“\r\n\r\n”等;其中“\r\n\r\n”为“POST”特征码下的结束特征码;
b.根据Smtp协议的RFC协议规范,Smtp协议在发送邮件的时候,具有特征码“To:”,在“To:”特征码下,具有特征码“From:”,“Subject:”和“\r\n\r\n”等;其中“\r\n\r\n”为“To:”特征码下的结束特征码;
c.根据Http协议和Smtp的协议特征,将特征码“POST”和“To:”作为根状态机下的特征码;
d.根据以上描述,基于Http协议和Smtp协议的多状态机的拓扑图如图1所示。
步骤2,多状态机匹配
配合图2所示,包含:
步骤21,将待匹配的数据输入多状态机进行匹配;如果前置状态不为空,则将当前状态恢复为前置状态;否则从根状态机开始匹配;
步骤22,如果匹配到特征码,则执行步骤23,否则执行步骤25;
步骤23,如果特征码为结束特征码,则执行步骤24,否则保存对应的有效数据,并跳转到该特征码对应的状态机,并执行步骤22;
步骤24,将获取到的有效数据进行整合并分析:如果有效数据符合我们所解析的协议特征,则输出解析结果并跳转到该特征码对应的状态机;否则判定匹配结果为脏数据,丢弃获取到的有效数据,并跳转到容错状态机(一般为根状态机)。执行完上述操作后执行步骤22;
步骤25,匹配结束,将最后匹配到的状态保存为前置状态。
以下将给出步骤2的实施实例。
实例1:匹配一段正确的Http协议报文
a、输入以下内容到多状态机进行匹配:POST index.jsp\r\nHost:127.0.0.1\r\nContent-;
b、前置状态为空,从根状态机开始匹配;
c、根状态机匹配到特征码“POST”,由于特征码“POST”不是结束特征码,获取有效数据“index.jsp”后跳转到预设好的Http状态机对如下内容进行匹配:\r\nHost:127.0.0.1\r\nContent-;
d、Http状态机匹配到特征码“Host:”,由于特征码“Host:”不是结束特征码,获取有效数据“127.0.0.1”后,跳转到预设好的Http状态机对如下内容进行匹配:\r\nContent-;
e、匹配结束,设置隶属于Http状态机的特征码“Content-Length:”的“-”状态为前置状态;
f、输入以下内容到状态机进行匹配:Length:8\r\n\r\nHttpData;
g、前置状态不为空,恢复隶属于Http状态机的特征码“Content-Length:”的“-”状态为当前状态;
h、Http状态机匹配到特征码“Content-Length:”,由于特征码“Content-Length:”不是结束特征码,获取有效数据“8”后,跳转到预设好的Http状态机对如下内容进行匹配:\r\n\r\nHttpData;
i、Http状态机匹配到特征码“\r\n\r\n”,由于特征码“\r\n\r\n”是结束特征码,获取有效数据“HttpData”后,判定获取到的有效数据符合Http协议特征后输出“index.jsp127.0.0.1 HttpData”,跳转到预设好的根状态机,对如下内容进行匹配:(内容为空);
j、匹配结束,由于当前处于根状态机,并没有处于任何状态,设置前置状态为空。
实例2:匹配一段错误的Smtp协议报文
a、输入以下内容到根状态机进行匹配:Welcome To:\r\n Beijing.\r\n\r\n;
b、前置状态为空,从根状态机开始匹配;
c、根状态机匹配到特征码“To:”,由于特征码“To:”不是结束特征码,获取有效数据“”(空)后预跳转到预设好的Smtp状态机对如下内容进行匹配:\r\nBeijing.\r\n\r\n;
d、Smtp状态机匹配到特征码“\r\n\r\n”,由于特征码“\r\n\r\n”是结束特征码,判定获取到的有效数据不符合Smtp特征,故断定获取到了脏数据。清空数据并跳转到容错状态机(根状态机)对如下内容进行匹配:(内容为空);
5、匹配结束,由于当前处于根状态机,并没有处于任何状态,设置前置状态为空。
综合上述,本发明一种基于多状态机的协议解析系统及方法,通过解耦状态机之间的逻辑关系,定义状态机与状态机之间的跳转关系,从而实现用于解析协议的多状态机模型,避免状态机爆炸的问题,提高解析效率;同时,本发明可以识别脏数据并进行容错处理。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

Claims (6)

1.一种基于多状态机的协议解析系统,其特征在于包括:
多状态机生成模块,用于定义需要的状态机以及状态机之间的跳转关系;以及,
状态机匹配模块,用于待匹配数据的输入、中间匹配结果的保存以及最终匹配结果的输出。
2.一种基于多状态机的协议解析方法,其特征在于包括如下步骤:
步骤1,初始化所有状态机,并定义各状态机之间的跳转关系,形成多状态机;
步骤2,将待匹配的数据输入多状态机进行匹配,输出匹配结果。
3.如权利要求2所述的一种基于多状态机的协议解析方法,其特征在于:所述步骤1中,对基于Http协议的多状态机,将特征码“POST”作为根状态机下的特征码,“\r\n\r\n”为“POST”特征码下的结束特征码。
4.如权利要求2所述的一种基于多状态机的协议解析方法,其特征在于:所述步骤1中,对基于Smtp协议的多状态机,将特征码“To:”作为根状态机下的特征码,“\r\n\r\n”为“To:”特征码下的结束特征码。
5.如权利要求2所述的一种基于多状态机的协议解析方法,其特征在于:所述步骤2的具体内容是:
步骤21,将待匹配的数据输入多状态机进行匹配;如果前置状态不为空,则将当前状态恢复为前置状态;否则从根状态机开始匹配;
步骤22,如果匹配到特征码,则执行步骤23,否则执行步骤25;
步骤23,如果特征码为结束特征码,则执行步骤24,否则保存对应的有效数据,并跳转到该特征码对应的状态机,并执行步骤22;
步骤24,将获取到的有效数据进行整合并分析:如果有效数据符合解析的协议特征,则输出解析结果并跳转到该特征码对应的状态机;否则判定匹配结果为脏数据,丢弃获取到的有效数据,并跳转到容错状态机;执行完上述操作后执行步骤22;
步骤25,匹配结束,将最后匹配到的状态保存为前置状态。
6.如权利要求5所述的一种基于多状态机的协议解析方法,其特征在于:所述步骤24中,容错状态机为根状态机。
CN201710048041.1A 2017-01-21 2017-01-21 一种基于多状态机的协议解析系统及方法 Pending CN106817372A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710048041.1A CN106817372A (zh) 2017-01-21 2017-01-21 一种基于多状态机的协议解析系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710048041.1A CN106817372A (zh) 2017-01-21 2017-01-21 一种基于多状态机的协议解析系统及方法

Publications (1)

Publication Number Publication Date
CN106817372A true CN106817372A (zh) 2017-06-09

Family

ID=59111461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710048041.1A Pending CN106817372A (zh) 2017-01-21 2017-01-21 一种基于多状态机的协议解析系统及方法

Country Status (1)

Country Link
CN (1) CN106817372A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111556067A (zh) * 2020-05-09 2020-08-18 中国航空无线电电子研究所 基于有穷状态机的网络数据协议描述结构及解析方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1993687A (zh) * 2004-08-05 2007-07-04 罗伯特·博世有限公司 用于控制对通信组件的消息存储器的数据访问的消息管理器和方法
CN102647414A (zh) * 2012-03-30 2012-08-22 华为技术有限公司 协议解析方法、设备及系统
CN102916967A (zh) * 2012-10-29 2013-02-06 华为技术有限公司 协议解析的方法和装置
CN103685280A (zh) * 2013-12-18 2014-03-26 华为技术有限公司 报文匹配方法、状态机编译方法及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1993687A (zh) * 2004-08-05 2007-07-04 罗伯特·博世有限公司 用于控制对通信组件的消息存储器的数据访问的消息管理器和方法
CN102647414A (zh) * 2012-03-30 2012-08-22 华为技术有限公司 协议解析方法、设备及系统
CN102916967A (zh) * 2012-10-29 2013-02-06 华为技术有限公司 协议解析的方法和装置
CN103685280A (zh) * 2013-12-18 2014-03-26 华为技术有限公司 报文匹配方法、状态机编译方法及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘秀霞等: "《电子系统EDA设计实训》", 30 June 2011, 北京航空航天大学出版社 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111556067A (zh) * 2020-05-09 2020-08-18 中国航空无线电电子研究所 基于有穷状态机的网络数据协议描述结构及解析方法
CN111556067B (zh) * 2020-05-09 2022-05-20 中国航空无线电电子研究所 基于有穷状态机的网络数据协议描述结构及解析方法

Similar Documents

Publication Publication Date Title
US9870502B2 (en) Apparatus for, a method of, and a network server for detecting data patterns in a data stream
CN102932203B (zh) 异构平台间的深度报文检测方法及装置
CN104123280B (zh) 文件比对方法和设备
CN102857493A (zh) 内容过滤方法和装置
CN104866465A (zh) 敏感文本检测方法及装置
CN104426909A (zh) 为具有高级特征的正则表达式图样生成非确定有限自动机(nfa)图形
CN111177491B (zh) 正则表达式的匹配方法、装置、电子设备及存储介质
CN103873320A (zh) 加密流量识别方法及装置
CN102148805B (zh) 特征匹配方法和装置
CN110008385B (zh) 一种基于字符串的快速匹配识别方法和装置
CN102523219A (zh) 正则表达式匹配系统及匹配方法
US20150286927A1 (en) Complex nfa state matching method that matches input symbols against character classes (ccls), and compares sequence ccls in parallel
CN103997514A (zh) 一种文件并行传输的方法及系统
CN102207979A (zh) 一种敏感词匹配方法和系统
CN106934011A (zh) 一种json数据的结构化解析方法及装置
US10965600B2 (en) Metadata extraction
CN110232633A (zh) 一种电子签约方法、装置、存储介质和服务器
CN107450929A (zh) 页面开发方法及装置
CN107534601B (zh) 分组过滤装置
CN106817372A (zh) 一种基于多状态机的协议解析系统及方法
CN105739464B (zh) 智能家电设备中主控通信方法
CN106850559A (zh) 一种可扩展的网络协议解析系统及方法
CN105573726B (zh) 一种规则处理方法及设备
CN107465500B (zh) 基于fpga的md5暴力破解系统及方法
CN105323236B (zh) 用于经由多态安全代理来检查在线通信会话的系统、方法和装置

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170609

RJ01 Rejection of invention patent application after publication