CN101287010A - 识别和验证消息协议类型的方法和装置 - Google Patents

识别和验证消息协议类型的方法和装置 Download PDF

Info

Publication number
CN101287010A
CN101287010A CNA2008101108342A CN200810110834A CN101287010A CN 101287010 A CN101287010 A CN 101287010A CN A2008101108342 A CNA2008101108342 A CN A2008101108342A CN 200810110834 A CN200810110834 A CN 200810110834A CN 101287010 A CN101287010 A CN 101287010A
Authority
CN
China
Prior art keywords
message
protocol
type
characteristic character
template
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
CNA2008101108342A
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.)
Huawei Digital Technologies Chengdu Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNA2008101108342A priority Critical patent/CN101287010A/zh
Publication of CN101287010A publication Critical patent/CN101287010A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明实施例公开了一种识别消息协议类型的方法和装置,能够识别消息所属的协议类型,识别的正确率比较高。所述方法包括:获得通讯端之间传输的消息;查找与所述消息相匹配的消息识别模板,所述消息识别模板包含消息的特征字符和特征字符的格式;查找与该消息相匹配的消息识别模板对应的协议类型。本发明实施例还公开了一种验证消息协议类型的方法和装置。本发明实施例用于协议的识别和验证。

Description

识别和验证消息协议类型的方法和装置
技术领域
本发明涉及通信领域,尤其涉及一种识别和验证消息协议类型的方法和装置。
背景技术
网络协议即网络中(包括互联网)传递、管理信息的一些规范。无论是对网络架构、网络使用情况等方面的检测,还是为了提高网络服务质量,对网络异常流量的检测,都首先需要对网络流量的所属协议类型进行识别。
目前的应用层协议识别方案,为一种基于特征字符的识别方法。该方法根据网络协议的特点,提取一个或多个消息的特征字符,组成协议指纹,同时提取组成协议指纹的特征字符以外的特征字符,组成协议的验证规则。
例如,以识别HTTP(Hypertext Transfer Protocol,超文本传输协议)为例:首先建立协议指纹集,包括“GET”和“POST”,然后分别为协议指纹“GET”和“POST”建立相应的验证规则集。
HTTP协议指纹“GET”的验证规则集为:
规则1:文本中必须含有“TTP”字符串;
规则2:文本中必须包含“\r\n”字符串。
HTTP协议指纹“POST”的验证规则集为:
规则1:文本中必须含有“r\n”字符串;
规则2:文本中必须包含“Content-Length”字符串。
一种协议对应一个或多个协议指纹,一个协议指纹对应一个或多个验证规则。已有的应用层协议识别方法包括:获取两个IP地址的端口之间传输的消息,将消息与协议指纹匹配,一旦匹配成功,则激活该协议指纹的验证规则集。通过协议指纹的验证规则集的验证后,则判断为协议类型识别成功。在协议类型识别成功后,采用<源IP地址、源IP地址的端口、目标IP地址、目标IP地址的端口、协议类型>的五元组形式,存储消息的两个传输端以及消息所属的协议类型,组成固化表,以进行“记忆”。这种形式的固化表只对当前会话流的识别有效,并且会占用大量的***资源的空间。
在上述方案的实施过程中,发明人发现现有技术中至少存在以下问题:单纯的通过消息的特征字符组成协议指纹,通过组成协议指纹的特征字符以外的特征字符组成协议指纹的验证规则集,根据消息所包含的一些特征字符而识别其所属的协议类型,这样的识别及验证方法不完善,误报率比较高,如包括这些特征字符的其它协议类型的消息,也会被识别出属于该协议类型。
发明内容
本发明的实施例提供了一种识别消息协议类型的方法,能够识别消息所属的协议类型,识别的正确率比较高。
一方面,本发明实施例提供了一种识别消息协议类型的方法,包括:
获得通讯端之间传输的消息;
查找与所述消息相匹配的消息识别模板,所述消息识别模板包含消息的特征字符和特征字符的格式;
查找与该消息相匹配的消息识别模板对应的协议类型。
另一方面,本发明实施例提供了一种验证消息协议类型的方法,包括:
连续获得通讯端之间传输的至少两条消息;
判断获得的至少两条消息与消息验证模板是否匹配,所述消息验证模板顺序包含至少两条消息的特征字符以及特征字符的格式。
本发明实施例还提供了一种识别消息协议类型的方法,包括:
获得通讯端之间传输的消息;
查找与所述消息相匹配的消息识别模板,所述消息识别模板包含消息的特征字符和特征字符的格式;
查找与该消息相匹配的消息识别模板对应的协议类型;
判断获得的消息与消息验证模板是否匹配,所述消息验证模板顺序包含至少两条消息的特征字符以及特征字符的格式;
如果匹配,则确定所述消息的协议类型为查找的与该消息相匹配的消息识别模板对应的协议类型。
本发明实施例提供了一种识别消息协议类型的装置,包括:
第一获得单元,用于获得通讯端之间传输的消息;
第一查找单元,用于查找与该消息相匹配的消息识别模板,所述消息识别模板包含消息的特征字符和特征字符的格式;
第二查找单元,用于查找与该消息相匹配的消息识别模板对应的协议类型。
本发明实施例还提供了一种验证消息协议类型的装置,包括:
第二获得单元,用于连续获得通讯端之间传输的至少两条消息;
判断单元,用于判断获得的至少两条消息与消息验证模板是否匹配,所述消息验证模板顺序包含至少两条消息的特征字符以及特征字符的格式。
本发明实施例识别消息协议类型的方法和装置,通过查找与获得的通讯端间传输的消息相匹配的消息识别模板,并将进一步查找到的与该识别模板所对应的协议类型作为消息协议类型。作为识别标准的消息识别模板不仅包括协议中消息的特征字符,而且包括消息的特征字符格式,提高了识别消息协议类型的正确率。本实施例验证消息协议类型的方法和装置,作为验证标准的消息验证模板不仅包括协议中消息的特征字符,而且包括消息的特征字符格式,并且消息验证模板包含的至少两条消息的特征字符以及特征字符的格式的顺序与通信过程中消息的交互顺序一致,模拟了消息的交互过程,每个协议的消息交互过程是该协议特有的,所以就能提高通过协议验证的协议类型的正确性。
附图说明
图1是本发明实施例消息协议类型的识别方法流程图;
图2是本发明实施例消息协议类型的验证方法流程图;
图3是本发明实施例协议类型识别过程的协议状态机示意图;
图4是本发明实施例SMTP(Simple Message Transfer Protocol,简单邮件传输协议)消息的典型交互过程图;
图5是本发明实施例SMTP消息的协议验证过程;
图6是本发明实施例识别消息协议类型的装置示意图;
图7是本发明实施例验证消息协议类型的装置示意图。
具体实施方式
本发明实施例提供的识别消息协议类型的技术方案,根据消息的特征字符和特征字符格式,识别消息协议类型,并且根据消息的特征字符、特征字符格式以及消息的交互顺序,对识别出的消息协议类型进行验证。
如图1所示,为本发明实施例消息协议类型的识别方法流程图,该方法包括:
步骤101,获得通讯端之间传输的消息。
其中,通讯端包括客户端(Client)和服务器端(Server),也可以包括两个对等的通讯端。客户端包括移动终端(如移动电话、个人电脑PC、个人数字助理PDA)和固定终端(如固定电话)等。本实施例中,获得消息的过程可以包括主动从通讯端处获取消息,或者为被动接收通讯端发送的消息。
在本步骤中,可以获得通讯端间传输的完整的消息(如完整的一条或两条消息),也可以获得通讯端间传输的部分消息,如一条消息的部分字节(如前100字节),这样可以降低***负担。
步骤102,查找与该消息相匹配的消息识别模板。
本发明实施例中所称的消息识别模板用于表达协议消息(如会话发起协议SIP消息、与承载无关的呼叫控制协议BICC消息、简单邮件传送协议SMTP消息等)包含的特征字符以及特征字符的格式,其中,特征字符为协议消息所特有的关键字符,特征字符的格式包括特征字符在协议消息中的位置(例如在协议消息的开头或结尾)、特征字符的数量、以及不同特征字符之间的前后顺序。本实施例中所称的与该消息相匹配,是指该消息满足消息识别模板表达的特征字符以及特征字符的格式。本实施例中,可以预先设置多个消息识别模板,一种消息识别模板对应一种协议类型(即一种消息识别模板关联一种协议类型),用于表达一种协议消息包含的特征字符以及特征字符的格式。本步骤中,可以在预先设置的消息识别模板中(预先设置的消息识别模板可以为一个或者多个),查找与该消息相匹配的消息识别模板,以确定与该消息相匹配的消息识别模板。
本实施例中的消息识别模板可以用“正则表达式”表示。正则表达式由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成,描述在查找字符时待匹配的一个或多个特征字符以及特征字符格式。特征字符的格式包括特征字符在消息中的位置(例如在消息的开头或结尾)、特征字符的数量、以及不同特征字符之间的前后顺序。例如,在正则表达式(a|b)*c中,“*”表示重复0次或多次,“|”表示或运算。正则表达式(a|b)*c表示的字符串为:0个或多个字符a或字符b,接着为1个字符c。满足正则表达式(a|b)*c的字符串可以是ac、bc、abc、aabc、abbc、c等。本实施例中的消息模板也可以采用其他的表示方法,也可以采用自定义规则的表示,只要消息模板能够包含特征字符以及特征字符的格式即可。
进一步,本发明实施例中还可以在数据库(如协议识别库)中设置协议类型识别规则,并将消息的识别模板,以及消息识别模板所对应的协议类型记录在协议类型识别规则中。其中,识别规则的格式可以为:
【协议类型识别规则的编号:消息识别模板】。
其中,“协议类型识别规则的编号”字段表示消息识别模板对应的协议类型;“消息识别模板”字段包含消息的特征字符,以及特征字符的格式;“:”号表示分隔符。
下面以SMTP为例,描述查找与SMTP消息相匹配的消息识别模板的过程。
首先预先设置消息识别模板。以SMTP消息为例,可以根据SMTP在经过TCP(Transfer Control Protocol,传输控制协议)三次握手以后,服务器端返回的第一个应答,预先设置SMTP消息识别模板(以正则表达式表示消息识别模板为例),并进一步形成如下协议类型识别规则:【SMTP:^220[\x09\x0b-\x0d-~]*(″smtp″|″mail″)】。其中:
SMTP为协议类型识别规则的编号,表示消息识别模板对应的协议类型为SMTP;
正则表达式^220[\x09\x0b-\x0d-~]*(″smtp″|″mail″)的元字符“^”表示“匹配字符串的开始位置”,元字符“*”表示“匹配前面的子表达式出现零次或多次”,“[\x09\x0b-\x0d-~]”表示任意字符,该正则表达式表示的消息识别模板为:以220开始,然后为0个或几个任意字符,接下来的字符为smtp或mail。
接着将获得的消息与消息识别模板相匹配。优选的,本实施例可以通过具有特定状态和迁移条件的状态机来实现模板匹配:首先将消息识别模板进行编译,形成协议识别引擎,协议识别引擎相当于一个协议状态机。下面具体描述将获得的消息与SMTP消息识别模板相匹配的方法。本实施例中预先设置的SMTP协议类型识别规则为【SMTP:^220[\x09\x0b-\x0d-~]*(″smtp″|″mail″)】,可以根据该正则表达式建立图3所示的确定性有穷自动机(DFA:DeterministicFinite Automata)。图3中,箭头上面的字符表示输入的字符,同心圆表示状态机的命中状态,即,若状态机运行到该状态则表示有一条输入的字符特征命中。协议状态机的初始状态为状态0,在状态0时遇到输入字符为“\n”时,则转换到状态1;在状态1时遇到输入字符为“2”时,则转换到状态2;以此类推。在各状态下若遇到任何不在图3中标出的能明确转换到下一个状态的输入字符(如在状态3下遇到非“0”的输入),则重新回到状态0。例如,若获得的消息为“220 thisis smtp server”,则在与SMTP消息识别模板匹配时,状态机能从状态0转到状态12,则表示与协议类型识别规则【SMTP:^220[\x09\x0b-\x0d-~]*(″smtp″|″mail″)】中的用正则表达式表示的消息识别模板匹配成功,即查到的与SMTP消息匹配的模板为^220[\x09\x0b-\x0d-~]*(″smtp″|″mail″)。
步骤103,查找与该消息相匹配的消息识别模板对应的协议类型。
本实施例中,一种消息识别模板对应一种协议类型(即一种消息识别模板关联一种协议类型),用于表达一种协议消息包含的特征字符以及特征字符的格式。由此,在查找与该消息相匹配的消息识别模板后,进一步查找与该消息相匹配的消息识别模板对应的协议类型。例如,若在某个协议识别规则中查找与该消息匹配的消息协议模板,则该协议识别规则的编号即为该消息识别模板对应的协议类型。
步骤104,确定该消息的协议类型为查找的与该消息相匹配的消息识别模板对应的协议类型。
在本步骤中,可以将与该消息相匹配的消息识别模板对应的协议类型,确定为通讯端间传输的消息的协议类型。例如,若在某个协议识别规则中查找与该消息匹配的消息协议模板,则可以将该协议识别规则的编号(即消息识别模板对应的协议类型)确定为通讯端间传输的消息的协议类型。
步骤105,建立通讯端与确定的消息的协议类型的对应关系。
本发明实施例中,在确定该消息的协议类型后,还可以进一步建立通讯端与确定的消息的协议类型的对应关系。如建立包含通讯端的标识(IP地址和/或端口号)和消息的协议类型的固化表,对协议识别结果进行“固化”,固化表的结构可以为<IP地址,IP地址的端口,协议类型>。
本发明实施例识别消息协议类型的方法,通过查找与获得的通讯端间传输的消息相匹配的消息识别模板,并将进一步查找到的与该识别模板所对应的协议类型作为消息协议类型。作为识别标准的消息识别模板不仅包括协议中消息的特征字符,而且包括消息的特征字符格式,提高了识别消息协议类型的正确率。并进一步建立该通讯端与确定的消息的协议类型的对应关系,这样在识别消息协议类型的过程中,可以通过分别提取消息中携带的通讯端的IP地址和端口号,将消息通讯端的IP地址和端口号与记录对应关系相比较,以确认消息的协议类型,即可通过查固化表实现对协议类型的识别,能够提高识别消息协议类型的效率。
在本发明实施例中,可以没有步骤104,即默认查找到的与该消息相匹配的消息识别模板对应的协议类型即为消息的协议类型。
在本发明实施例中,可以默认执行步骤105(建立该通讯端与确定的消息的协议类型的对应关系),也可以没有步骤105,即不用建立通讯端间传输的消息的协议类型的对应关系,如一些协议(如BT协议),每次通信的端口都是随机的,建立对应关系对后续别的消息的识别帮助不大,则没有必要建立对应关系。也可以预先设置是否执行步骤105,例如可以在协议类型识别规则中增加一个字段,用于表示是否建立通讯端间传输的消息的协议类型的对应关系,如:【协议类型识别规则的编号:消息识别模板:是否固化识别结果】,其中,“是否固化识别结果”字段可以通过1或0标识,用于表示是否建立包含通讯端的标识(IP地址和/或端口号)和消息的协议类型的固化表,对协议识别结果进行“固化”。
在本发明实施例中,在步骤103之后,步骤104以前,即查找与该消息相匹配的消息识别模板对应的协议类型以后,确定该消息的协议类型为查找的与该消息相匹配的消息识别模板对应的协议类型之前,还可以默认对查找到的与该消息相匹配的消息识别模板对应的协议类型进行验证,如果验证通过,再执行步骤104。也可以预先设置是否对查找的与该消息相匹配的消息识别模板对应的协议类型进行验证,例如可以在协议类型识别规则中增加一个字段,用于表示是否对获得通讯端之间传输的消息进行验证,如:【协议类型识别规则的编号:消息识别模板:是否验证协议类型】,其中,“是否验证协议类型”字段可以通过1或0标识,用于表示是否对查找的与该消息相匹配的消息识别模板对应的协议类型进行验证。
如图2所示,为本发明实施例消息协议类型的验证方法流程图,该方法包括:
步骤201,连续获得通讯端之间传输的至少两条消息;
其中,通讯端包括客户端(Client)和服务器端(Server),也可以包括两个对等网络的通讯端。客户端包括移动终端(如移动电话、个人电脑PC、个人数字助理PDA)和固定终端(如固定电话)等。本实施例中,获得消息的过程可以包括主动从通讯端处获取消息,以及为被动接收通讯端发送的消息。
在本步骤中,获得的通讯端之间传输的连续消息数至少为2条,一般不超过20条。
步骤202,判断获得的至少两条消息与消息验证模板是否匹配。如果匹配,则表明消息的协议类型验证成功,反之,则表明消息的协议类型验证失败。
本发明实施例中所称的消息验证模板顺序包含:至少两条消息的特征字符以及特征字符的格式,所称的顺序是指,包含的至少两条消息的特征字符以及特征字符的格式的顺序,与通信过程中消息的交互顺序一致。本实施例中所称的匹配,是指所述连续获得的至少两条消息顺序,满足消息验证模板顺序表达的所述至少两条消息的特征字符以及特征字符的格式。当然,当接收到的消息只有两条时,消息验证模板也可以包含两条以上的消息的特征字符以及特征字符的格式,只要接收到的两条消息顺序满足消息验证模板顺序表达的其中两条消息的特征字符以及特征字符的格式即可。
消息验证模板中包含的消息的特征字符可以与消息识别模板中包含的该消息的特征字符重合,消息验证模板也可以只包含消息识别模板中已经包含的该消息的特征字符以外的特征字符。
消息验证模板可以用正则表达式表示,用于验证的消息验证模板应该是与消息协议类型识别过程中识别出的消息协议类型所对应的消息验证模板。
本发明实施例中还可以在数据库(如协议验证库)中设置协议类型验证规则,并将消息的验证模板,以及消息验证模板所对应的协议类型记录在协议类型验证规则中。在进行消息协议类型的验证过程中,只需将消息与消息识别过程中识别出的该消息的协议类型所对应的消息验证模板匹配即可。验证规则的格式可以为:
【协议类型验证规则的编号1:消息验证模板1;
协议类型验证规则的编号2:消息验证模板2;
......】。
其中,“协议类型识别规则的编号”字段表示消息验证模板对应的协议类型;“消息验证模板”字段包含消息的特征字符,以及特征字符的格式;“:”号表示分隔符;“;”表示两条顺序消息验证模板之间的分隔符。
下面以SMTP为例,描述将SMTP消息与消息验证模板相匹配的过程。在本实施例中,以将接收到的6条连续消息与顺序包含6条消息的特征字符以及特征字符的格式的消息验证模板相匹配为例。
首先预先设置消息验证模板。以SMTP消息为例,可以根据SMTP消息在通信过程消息的交互顺序,预先设置SMTP消息验证模板(以正则表达式表示消息识别模板为例),并进一步形成如下协议类型验证规则。
如图4所示为SMTP消息的典型交互过程。交互过程如下:
客户端发送“mail from”请求;
服务器端接收客户端的“mail from”请求后,发送“250”应答;
客户端接收服务器端的“250”应答后,发送“rcpt to”请求;
服务器端接收客户端的“rcpt to”请求后,发送“250”应答;
客户端接收服务器端的“250”的应答后,发送“data”请求;
服务器端接收客户端的“data”请求后,发送“354”应答。
根据上述SMTP消息的交互过程,可以设置如下协议验证规则(以正则表达式表示消息验证模板为例):
【SMTP_MAIL:“^mail from”(其中的正则表达式表示以″mail from″开始);
SMTP_MAIL_REPLY:“^250”(其中的正则表达式表示以″250″开始);
SMTP_RCPT:“^rcpt to”(其中的正则表达式表示以″rcpt to″开始);
SMTP_RCPT_REPLY:“^250”(其中的正则表达式表示以″250″开始);
SMTP_DATA:“data”(其中的正则表达式表示以″data″开始);
SMTP_DATA_REPLY:“354”(其中的正则表达式表示以″354″开始)】。
在上述的协议验证规则中,SMTP_MAIL、SMTP_MAIL_REPLY等代表协议类型验证规则的编号,协议类型验证规则的编号也可以用序号1、2、3表示,用于表示协议类型验证规则之间的前后顺序;正则表达式表示消息的特征字符以及特征字符的格式。
接着将获得的消息与消息识别模板相匹配。在本实施例中,将接收到的6条SMTP消息与和SMTP消息所对应的消息验证模板相匹配。优选的,本实施例可以通过具有特定状态和迁移条件的状态机来实现模板匹配:首先将消息验证模板进行编译,形成协议验证引擎,该协议验证引擎相当于一个协议状态机,协议状态机模拟协议典型的协议交互行为,协议验证过程可以看作是通过典型的协议状态机。如果一个状态满足,则跳入下一个状态,如果通过协议状态机的所有状态,则匹配成功。下面具体描述将获得的SMTP消息与SMTP消息对应的消息验证模板相匹配的方法。本实施例中,识别出消息协议类型为SMTP协议后,则将消息与在协议验证库中SMTP消息对应的消息验证模板进行匹配。如图5所示,SMTP消息的协议验证过程如下:
状态1,等待来自客户端的“mail from”请求;
状态2,等待来自服务器端的“250”应答;
状态3,等待来自客户端的“rcpt to”请求;
状态4,等待来自服务器端的“250”应答;
状态5,等待来自客户端的“data”请求;
状态6,等待来自服务器端的“354”应答。
若通过协议状态机的所有状态,则SMTP消息验证通过。
本步骤中,用于进行验证的消息数一般可以为不超过20条,对每个消息进行验证时只需要扫描每个消息的前几百个字节(如前100字节),限定进行协议验证的所使用的消息数、以及对每个消息验证时对每个消息扫描的最大字节数,可以减少协议验证时的***开销。
本发明实施例消息协议的验证方法是基于典型的消息交互过程,可以参考RFC(Request For Comments,请求注解),编写协议验证规则。
需要说明的是,协议验证过程并不是必需的,一些消息协议类型只需要根据协议类型的识别规则,就能准确地确定消息协议类型,则不需要进行协议验证,增强了协议识别的高效性。例如,POP3(Post Office Protocol,邮局协议3)、Telnet协议等。
本发明实施例中,还可以定期或不定期对协议识别库和协议验证库进行升级,从而升级消息识别模板和消息验证模板,从而使协议识别库和协议验证库能够实时生效,有很好的协议模板库扩展性。
在上述实施例中,是将连续获得的通讯端之间传输的至少两条消息与消息识别模板相匹配,为了使验证更加准确,一般连续获得的至少两条消息包括客户端和服务器端典型交互过程中的所有消息,消息验证模板顺序包含的至少两条消息的特征字符以及特征字符的格式也包括客户端和服务器端典型交互过程中的所有消息的特征字符以及特征字符的格式,连续获得的至少两条消息也可以包括对等网络中通讯端典型交互过程中的消息。如图4所示为SMTP消息的典型交互过程中的所有消息。
为了节约***开销,可以只获得消息典型交互过程中一个通讯端(如客户端或服务器端,或者对等网络中的任一通讯端)发送的消息,消息验证模板也只顺序包含典型交互过程中一个通讯端发送的消息的特征字符以及特征字符的格式,这样,将一个通讯端发送的消息与消息验证模板相匹配,可以节省一半的匹配处理时间,另外,在后续建立固化表的过程中,只记录一个通讯端的IP地址、端口号、协议类型,可以节省***的存储资源。在此种具体实现方式中,可以协议识别规则中增加消息识别模板对应的消息传输方向,用于记录消息的发送通讯端。当查找到与消息相匹配的消息识别模板后,可以根据协议类型识别规则中预先定义的消息传输方向,来确定传输消息的通讯端分别为服务器端还是客户端。如协议类型识别规则格式可以为:
【协议类型识别规则的编号:消息识别模板:消息识别模板对应的消息传输方向】。
其中,“消息识别模板对应的消息传输方向”的字段可以“server”或“client”或“Peer”表示,其中,“server”代表消息来自服务器端,“client”代表消息来自客户端,“Peer”代表消息来自对等通讯端。
后续对消息的协议类型进行验证的过程中,只需接收该确定的通讯端发送的消息,并进行验证。消息验证模板也只需顺序包含一个通讯端发送的消息的特征字符以及特征字符的格式,例如,协议类型验证规则可以为:
【SMTP_MAIL:″^mail from″:client;
SMTP_RCPT:″^rcpt to″:client;
SMTP_DATA:″data″:client】。
其中,“client”代表消息来自客户端。
本实施例使用消息验证模板对消息进行验证,作为验证标准的消息验证模板不仅包括协议中消息的特征字符,而且包括消息的特征字符格式,并且消息验证模板包含的至少两条消息的特征字符以及特征字符的格式的顺序,与通信过程中消息的交互顺序一致,模拟了消息的交互过程,每个协议的消息交互过程是该协议特有的,所以就能确保通过协议验证的协议类型的正确性。
本实施例中获得的至少两条消息可以是消息协议类型识别过程中获得的消息,也可以是在消息协议类型验证过程中重新获得的消息;若是前者,则本发明实施例中可以没有步骤201。
如图6所示,为本发明实施例识别消息协议类型的装置示意图,该装置包括:第一获得单元,第一查找单元和第二查找单元,其中,
第一获得单元,用于获得通讯端之间传输的消息;其中,通讯端包括客户端(Client)和服务器端(Server),也可以包括两个对等的通讯端,客户端包括移动终端(如移动电话、个人电脑PC、个人数字助理PDA)和固定终端(如固定电话)等。本实施例中,获得消息的过程可以包括主动从通讯端处获取消息,或者为被动接收通讯端发送的消息。本实施例中,可以获得通讯端间传输的完整的消息(如完整的一条或两条消息),也可以获得通讯端间传输的部分消息,如一条消息的部分字节(如前100字节),这样可以降低***负担。
第一查找单元,用于查找与该消息相匹配的消息识别模板;其中,消息识别模板用于表达协议消息包含的特征字符以及特征字符的格式,其中,特征字符为协议消息所特有的关键字符,特征字符的格式包括特征字符在协议消息中的位置(例如在协议消息的开头或结尾)、特征字符的数量、以及不同特征字符之间的前后顺序。本实施例中所称的与该消息相匹配,是指该消息满足消息识别模板表达的特征字符以及特征字符的格式。消息识别模板可以存储在第一查找单元中,也可以存储在该装置中的其他模块中。
第二查找单元,用于查找与该消息相匹配的消息识别模板对应的协议类型。
可选的,本实施例中的识别消息协议类型的装置还可以进一步包括:
建立单元,用于建立通讯端与确定的消息的协议类型的对应关系;建立单元可以建立包含通讯端的标识(IP地址和/或端口号)和消息的协议类型的固化表,对协议识别结果进行“固化”,固化表的结构可以为<IP地址,IP地址的端口,协议类型>。
如图7所示,为本发明实施例验证消息协议类型的装置示意图,该装置包括:第二获得单元和判断单元,其中:
第二获得单元,用于连续获得通讯端之间传输的至少两条消息;第二获得单元获得的通讯端之间传输的连续消息数至少为2条,一般不超过20条。
判断单元,用于判断获得的至少两条消息与消息验证模板是否匹配;其中,消息验证模板顺序包含至少两条消息的特征字符以及特征字符的格式,顺序是指包含的至少两条消息的特征字符以及特征字符的格式的顺序与通信过程中消息的交互顺序一致。本实施例中所称的匹配,是指所述连续获得的至少两条消息顺序满足消息验证模板顺序表达的所述至少两条消息的特征字符以及特征字符的格式。当然,当接收到的消息只有两条时,消息验证模板也可以包含两条以上的消息的特征字符以及特征字符的格式,只要接收到的两条消息顺序满足消息验证模板顺序表达的其中两条消息的特征字符以及特征字符的格式即可。消息验证模板可以存储在匹配单元中,也可以存储在该装置中的其他模块中。
本发明实施例中能够识别的协议类型可以为文本协议,例如:FTP(FileTransfer Protocol,文件传输协议)、HTTP(Hypertext Transfer Protocol,超文本传输协议)、SMTP(Simple Message Transfer Protocol,简单邮件传输协议)、BT(BitTorrent,比特流),也可以为二进制协议,例如:TELNET(远程登录协议)、TFTP(Trivial File Transfer Protocol,简单文件传输协议)、DNS(Domain Name Server,域名解析***)等。
本发明实施例可用于网络技术的入侵检测***和入侵防御***中,对传输层以上各层网络协议类型的识别。本领域技术人员可以理解,本发明实施例还可以用于其它应用,例如对其它标准协议或者私有协议的识别应用中。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对背景技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在可读取的存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (15)

1、一种识别消息协议类型的方法,其特征在于,包括:
获得通讯端之间传输的消息;
查找与所述消息相匹配的消息识别模板,所述消息识别模板包含消息的特征字符和特征字符的格式;
查找与该消息相匹配的消息识别模板对应的协议类型。
2、根据权利要求1所述的识别消息协议类型的方法,其特征在于,还包括:
建立通讯端与查找到的消息的协议类型的对应关系。
3、根据权利要求2所述的识别消息协议类型的方法,其特征在于,所述对应关系为通讯端的IP地址和/或端口号,与消息的协议类型的对应关系。
4、根据权利要求1所述的识别消息协议类型的方法,其特征在于,所述消息识别模板由正则表达式表示。
5、一种验证消息协议类型的方法,其特征在于,包括:
连续获得通讯端之间传输的至少两条消息;
判断获得的至少两条消息与消息验证模板是否匹配,所述消息验证模板顺序包含至少两条消息的特征字符以及特征字符的格式。
6、根据权利要求5所述的验证消息协议类型的方法,其特征在于,所述消息验证模板由正则表达式表示。
7、一种识别消息协议类型的方法,其特征在于,包括:
获得通讯端之间传输的消息;
查找与所述消息相匹配的消息识别模板,所述消息识别模板包含消息的特征字符和特征字符的格式;
查找与该消息相匹配的消息识别模板对应的协议类型;
判断获得的消息与消息验证模板是否匹配,所述消息验证模板顺序包含至少两条消息的特征字符以及特征字符的格式;
如果匹配,则确定所述消息的协议类型为查找到的与该消息相匹配的消息识别模板对应的协议类型。
8、根据权利要求7所述的识别消息协议类型的方法,其特征在于,还包括:
建立通讯端与确定的消息的协议类型的对应关系。
9、根据权利要求8所述的识别消息协议类型的方法,其特征在于,所述对应关系为通讯端的IP地址和/或端口号,与消息的协议类型的对应关系。
10、根据权利要求7所述的识别消息协议类型的方法,其特征在于,所述消息识别模板和消息验证模板由正则表达式表示。
11、一种识别消息协议类型的装置,其特征在于,包括:
第一获得单元,用于获得通讯端之间传输的消息;
第一查找单元,用于查找与该消息相匹配的消息识别模板,所述消息识别模板包含消息的特征字符和特征字符的格式;
第二查找单元,用于查找与该消息相匹配的消息识别模板对应的协议类型。
12、根据权利要求11所述的识别消息协议类型的装置,其特征在于,还包括:建立单元,用于建立通讯端与确定的消息的协议类型的对应关系。
13、根据权利要求12所述的识别消息协议类型的装置,其特征在于,所述对应关系为通讯端的IP地址和/或端口号,与消息的协议类型的对应关系。
14、一种验证消息协议类型的装置,其特征在于,包括:
第二获得单元,用于连续获得通讯端之间传输的至少两条消息;
判断单元,用于判断获得的至少两条消息与消息验证模板是否匹配,所述消息验证模板顺序包含至少两条消息的特征字符以及特征字符的格式。
15、根据权利要求14所述的验证消息协议类型的装置,其特征在于,所述消息验证模板由正则表达式表示。
CNA2008101108342A 2008-06-12 2008-06-12 识别和验证消息协议类型的方法和装置 Pending CN101287010A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008101108342A CN101287010A (zh) 2008-06-12 2008-06-12 识别和验证消息协议类型的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008101108342A CN101287010A (zh) 2008-06-12 2008-06-12 识别和验证消息协议类型的方法和装置

Publications (1)

Publication Number Publication Date
CN101287010A true CN101287010A (zh) 2008-10-15

Family

ID=40058976

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101108342A Pending CN101287010A (zh) 2008-06-12 2008-06-12 识别和验证消息协议类型的方法和装置

Country Status (1)

Country Link
CN (1) CN101287010A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102098272A (zh) * 2009-12-10 2011-06-15 华为技术有限公司 一种协议识别的方法、装置和***
CN102143148A (zh) * 2010-11-29 2011-08-03 华为技术有限公司 用于通用协议解析的参数获取和通用协议解析方法及装置
CN102164182A (zh) * 2011-04-18 2011-08-24 北京神州绿盟信息安全科技股份有限公司 一种网络协议识别设备和方法
CN102420809A (zh) * 2011-08-19 2012-04-18 中联重科股份有限公司 终端管理***、服务器以及方法
CN105610763A (zh) * 2014-10-31 2016-05-25 杭州迪普科技有限公司 协议识别方法及装置
CN106330969A (zh) * 2016-10-31 2017-01-11 成都广达新网科技股份有限公司 一种cmc***中cm上线过程中的报文识别方法
CN107133160A (zh) * 2016-02-26 2017-09-05 北京京东尚科信息技术有限公司 测试***
CN107306256A (zh) * 2016-04-22 2017-10-31 上海真虹信息科技有限公司 一种基于字符串类型数据的通讯协议解析方法
WO2018214424A1 (zh) * 2017-05-23 2018-11-29 华为技术有限公司 一种监测数据流量的方法、装置及***
CN110166313A (zh) * 2019-03-21 2019-08-23 北京华顺信安科技有限公司 一种模拟协议服务端的方法和***
CN112486139A (zh) * 2020-11-12 2021-03-12 顶象科技有限公司 基于虚拟补丁的工业控制***保护方法、装置、设备及介质
CN114448685A (zh) * 2022-01-13 2022-05-06 绿盟科技集团股份有限公司 一种生成网络协议报文防护策略的方法及装置

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011069388A1 (zh) * 2009-12-10 2011-06-16 华为技术有限公司 一种协议识别的方法、装置和***
CN102098272A (zh) * 2009-12-10 2011-06-15 华为技术有限公司 一种协议识别的方法、装置和***
CN102098272B (zh) * 2009-12-10 2014-02-19 华为技术有限公司 一种协议识别的方法、装置和***
US8782068B2 (en) 2009-12-10 2014-07-15 Huawei Technologies Co., Ltd. Method, apparatus and system for protocol identification
CN102143148A (zh) * 2010-11-29 2011-08-03 华为技术有限公司 用于通用协议解析的参数获取和通用协议解析方法及装置
CN102143148B (zh) * 2010-11-29 2014-04-02 华为技术有限公司 用于通用协议解析的参数获取和通用协议解析方法及装置
CN102164182B (zh) * 2011-04-18 2014-08-06 北京神州绿盟信息安全科技股份有限公司 一种网络协议识别设备和方法
CN102164182A (zh) * 2011-04-18 2011-08-24 北京神州绿盟信息安全科技股份有限公司 一种网络协议识别设备和方法
CN102420809A (zh) * 2011-08-19 2012-04-18 中联重科股份有限公司 终端管理***、服务器以及方法
CN105610763A (zh) * 2014-10-31 2016-05-25 杭州迪普科技有限公司 协议识别方法及装置
CN107133160A (zh) * 2016-02-26 2017-09-05 北京京东尚科信息技术有限公司 测试***
CN107133160B (zh) * 2016-02-26 2020-06-30 北京京东尚科信息技术有限公司 服务器和客户端
CN107306256A (zh) * 2016-04-22 2017-10-31 上海真虹信息科技有限公司 一种基于字符串类型数据的通讯协议解析方法
CN106330969A (zh) * 2016-10-31 2017-01-11 成都广达新网科技股份有限公司 一种cmc***中cm上线过程中的报文识别方法
WO2018214424A1 (zh) * 2017-05-23 2018-11-29 华为技术有限公司 一种监测数据流量的方法、装置及***
CN110166313A (zh) * 2019-03-21 2019-08-23 北京华顺信安科技有限公司 一种模拟协议服务端的方法和***
CN112486139A (zh) * 2020-11-12 2021-03-12 顶象科技有限公司 基于虚拟补丁的工业控制***保护方法、装置、设备及介质
CN114448685A (zh) * 2022-01-13 2022-05-06 绿盟科技集团股份有限公司 一种生成网络协议报文防护策略的方法及装置
CN114448685B (zh) * 2022-01-13 2023-11-03 绿盟科技集团股份有限公司 一种生成网络协议报文防护策略的方法及装置

Similar Documents

Publication Publication Date Title
CN101287010A (zh) 识别和验证消息协议类型的方法和装置
US10708288B2 (en) Computerized system and method for automatically determining malicious IP clusters using network activity data
Antunes et al. Reverse engineering of protocols from network traces
US11425047B2 (en) Traffic analysis method, common service traffic attribution method, and corresponding computer system
US20230224232A1 (en) System and method for extracting identifiers from traffic of an unknown protocol
US11537751B2 (en) Using machine learning algorithm to ascertain network devices used with anonymous identifiers
CN103139315A (zh) 一种适用于家庭网关的应用层协议解析方法
CN114157502B (zh) 一种终端识别方法、装置、电子设备及存储介质
EP3364601B1 (en) Testing method, device and system
CN107911398B (zh) 身份信息的认证方法、装置以及***
CN109450733B (zh) 一种基于机器学习的网络终端设备识别方法及***
CN102710504A (zh) 应用识别方法和装置
CN110768875A (zh) 一种基于dns学习的应用识别方法及***
CN114095274B (zh) 一种攻击研判方法及装置
CN112491917A (zh) 一种物联网设备未知漏洞识别方法及装置
CN108174360A (zh) 一种短信发送方法及装置、短信验证方法及装置
Kebande et al. Functional requirements for adding digital forensic readiness as a security component in IoT environments
CN104883428A (zh) 识别voip电话的方法及装置
WO2016037489A1 (zh) Rcs垃圾消息的监控方法、装置及***
CN111277449B (zh) 语音业务设备的安全性测试方法及装置
CN117201601A (zh) 物联网设备接入方法、装置、设备及存储介质
CN110381174B (zh) 一种基于无状态扫描的高速域名解析方法
CN114050917B (zh) 音频数据的处理方法、装置、终端、服务器及存储介质
CN115774762A (zh) 即时通讯信息处理方法、装置、设备及存储介质
CN115801927A (zh) 报文解析方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: CHENGDU CITY HUAWEI SAIMENTEKE SCIENCE CO., LTD.

Free format text: FORMER OWNER: HUAWEI TECHNOLOGY CO., LTD.

Effective date: 20090424

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20090424

Address after: Qingshui River District, Chengdu high tech Zone, Sichuan Province, China: 611731

Applicant after: Chengdu Huawei Symantec Technologies Co., Ltd.

Address before: Headquarters office building, Bantian HUAWEI base, Longgang District, Guangdong, Shenzhen Province, China: 518129

Applicant before: Huawei Technologies Co., Ltd.

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20081015