[发明专利]应用层协议识别方法及系统有效
申请号: | 201110066864.X | 申请日: | 2011-03-18 |
公开(公告)号: | CN102130956A | 公开(公告)日: | 2011-07-20 |
发明(设计)人: | 何飞;邵熠阳;李军 | 申请(专利权)人: | 清华大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 100084 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用 协议 识别 方法 系统 | ||
1.一种应用层协议识别方法,其特征在于,该方法包括步骤:
S1.提取待识别报文的负载的前缀字符;
S2.判断所述前缀字符是否匹配已知的应用层协议的固定前缀,若是,则执行步骤S3,否则执行步骤S4;
S3.根据所述前缀字符选择确定的有穷自动机引擎,并由所选择的确定的有穷自动机引擎对所述前缀字符对应的待识别报文进行匹配处理;
S4.基于协议指纹对所述前缀字符对应的待识别报文进行协议识别。
2.如权利要求1所述的应用层协议识别方法,其特征在于,步骤S1之前还包括步骤:
A1.记录具有固定前缀的已知的应用层协议的前缀长度,按照首字符对所述具有固定前缀的已知的应用层协议进行分组,得到若干协议集;
A2.去除若干协议集中为其他协议集子集的协议集;
A3.采用启发式聚类算法对步骤A2得到的若干协议集进行优化;
A4.将经步骤A3优化处理后的若干协议集编译为确定的有穷自动机引擎。
3.如权利要求2所述的应用层协议识别方法,其特征在于,步骤A3进一步包括:
B1.取任一协议集,遍历其余协议集,判断两个协议集的公共协议数量是否大于设定阈值,若是,则执行步骤B2,否则,不合并;
B2.判断所述两个协议集的平均通配符数量是否小于1,若是,则执行步骤B3,否则,不合并;
B3.判断所述两个协议集合并后是否会导致所述确定的有穷自动机引擎中状态数的减少,若是,合并所述两个协议集,否则,不合并;
B4.判断是否已遍历所有协议集,若是,则结束优化,否则,返回步骤B1,从未遍历到得协议集中选择任一协议集。
4.如权利要求1所述的应用层协议识别方法,其特征在于,步骤S4进一步包括:
S4.1提取不具有固定前缀的已知的应用层协议中所有确定性字符串;
S4.2对于每一个所述不具有固定前缀的已知的应用层协议,选择其所提取的字符串中长度最长且与其他应用层协议所提取的字符串不相同的字符串作为该应用层协议的协议指纹;
S4.3基于协议指纹对所述前缀字符对应的待识别报文进行协议识别。
5.一种应用层协议识别系统,其特征在于,该系统包括:
提取模块,用于提取待识别报文的负载的前缀字符;
分段模块,用于判断所述提取模块提取到得前缀字符是否匹配已知的应用层协议的固定前缀,若是,将所述前缀字符对应的待识别报文发送至第一识别模块,否则将其发送至第二识别模块;
第一识别模块,用于根据所述前缀字符选择确定的有穷自动机引擎,并由所选择的确定的有穷自动机引擎对所述前缀字符对应的待识别报文进行匹配处理;
第二识别模块,用于基于协议指纹对所述前缀字符对应的待识别报文进行协议识别。
6.如权利要求5所述的应用层协议识别系统,其特征在于,该系统还包括编译模块,该模块进一步包括:
分组单元,用于记录具有固定前缀的已知的应用层协议的前缀长度,按照首字符对所述具有固定前缀的已知的应用层协议进行分组,得到若干协议集;
子集合并单元,用于去除若干协议集中为其他协议集子集的协议集;
优化单元,用于采用启发式聚类算法对所述子集合并单元处理得到的若干协议集进行优化;
编译单元,用于将经所述优化单元优化处理后的若干协议集编译为确定的有穷自动机引擎。
7.如权利要求5所述的应用层协议识别系统,其特征在于,所述第二识别模块进一步包括:
提取单元,用于提取不具有固定前缀的已知的应用层协议中所有确定性字符串;
协议指纹确定单元,用于对于每一个所述不具有固定前缀的已知的应用层协议,选择其所提取的字符串中长度最长且与其他应用层协议所提取的字符串不相同的字符串作为该应用层协议的协议指纹;
识别单元,用于基于协议指纹对所述前缀字符对应的待识别报文进行协议识别。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110066864.X/1.html,转载请声明来源钻瓜专利网。