一种应用协议的自动识别方法和装置的制作方法

文档序号:7866131阅读:402来源:国知局
专利名称:一种应用协议的自动识别方法和装置的制作方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种应用协议的自动识别方法和装置。
技术背景
近几年互联网快速发展,各种应用大量出现,其中很大一部分应用都是加密的未公开私有协议,这就对网络的有效管理带来了很大挑战。一般情况下,国家、企业和互联网服务提供商都使用网络流分类技术作为网络管理的基本保障。通过网络流分类和控制技术,可以有效缓解网络拥塞,提高网络服务质量,增强网络测量和管理能力等。
目前新出现的加密网络应用协议繁多,如P2P协议、S卩时通讯(Instant Messenger, IM)协议、网络游戏协议等。这些加密网络应用拥有数量庞大的用户,并且产生的网络流量占据了互联网流量的很大比例。例如,在中国境内,QQ是最常使用的頂工具, 它有几亿的在线用户;迅雷是最广泛使用的P2P文件共享工具,在教育网内占据了主要的流量。这些协议大都是私有协议,对流量载荷进行了加密,以保护其通信内容。由于加密的原因,通过流量分析方法,无法直接获取其协议结构;另外这些加密协议的通信端口一般不固定,呈现出动态变化的特点。
现有的识别应用协议的方法主要有如下两种
方法I
基于端口的识别技术端口识别是根据TCP/UDP的端口来识别应用的,检测效率闻,简单易行。
此种方法仅对传统的规范协议有效,像不按规范定义端口的协议和使用动态端口号的协议用该方法就识别不准确。
方法2
深度包检测技术通过分析TCP/UDP负载内容,找出其交互过程中不同于其他协议的字段作为该协议的特征。
此种方法只有负载数据中有特征字才能识别,对传统的公开协议和不加密的私有协议能比较有效的进行识别,但对加密的协议却无能为力。发明内容
有鉴于此,本发明的目的是提供一种应用协议的自动识别方法和装置,能够准确、 有效、快速地从复杂的背景流中识别出加密的应用协议。
为实现上述目的,本发明提供技术方案如下
一种应用协议的自动识别方法,应用于网络设备上,所述方法包括
获取客户端与服务器之间的http交互信息;
从所述http交互信息中获取应用协议名称;
获取客户端与服务器之间的后续会话流,提取所述后续会话流的属性特征,根据所述属性特征生成该应用协议名称对应的协议模型;
将生成的协议模型与存储的协议模型进行匹配,若匹配成功,则识别出具体的应用协议;
若匹配失败,则将该应用协议名称和对应的协议模型进行存储。
上述的方法,其中,所述从所述http交互信息中获取应用协议名称,包括
提取所述http交互信息中的关键字符串,将所述关键字符串作为所述应用协议名称。
上述的方法,其中,所述根据所述属性特征生成该应用协议名称对应的协议模型, 包括
用所述属性特征来表征所述协议模型;或者
对所述属性特征进行统计处理,用统计处理结果来表征所述协议模型。
上述的方法,其中,所述获取客户端与服务器之间的后续会话流,包括
获取当前http会话与下一个http会话之间的会话流,得到所述后续会话流。
一种应用协议的自动识别装置,应用于网络设备上,所述装置包括
http信息获取模块,用于获取客户端与服务器之间的http交互信息;
协议名称提取模块元,用于从所述http交互信息中获取应用协议名称;
协议模型生成模块,用于获取客户端与服务器之间的后续会话流,提取所述后续会话流的属性特征,根据所述属性特征生成该应用协议名称对应的协议模型;
协议模型检测模块,用于将生成的协议模型与存储的协议模型进行匹配,若匹配成功,则识别出具体的应用协议;
协议模型更新模块,用于当协议模型检测模块匹配失败时,将该应用协议名称和对应的协议模型进行存储。
与现有技术中相比,本发明的技术方案能够高效的解决加密流的协议识别问题, 可以在线快速的得到未知协议特征模型,而且,本发明选择了易于分析和获取的多种网络流属性来描述数据特征,大大提高协议分析的效率和协议识别的精度。


图I是本发明实施例的应用协议的自动识别方法流程图2是本发明实施例的应用协议的自动识别装置结构图。
具体实施方式
以下结合附图对本发明进行详细描述。
本发明以利于网络管理为基础,从http交互信息中获取当前会话和后续会话所对应的应用协议名称(指从当前会话中获取应用协议名称,将该应用协议名称作为当前会话和后续会话的应用协议名称),再利用各种易于获取和分析的数据属性来描述该应用协议的主要特征,提出了一种融合自动化分析协议技术的新型应用协议识别方案,主要用于解决加密应用协议的识别和分类问题,该方案能准确、有效、快速地从复杂的背景流中识别出加密的应用协议。
需要说明的是,本发明中识别应用协议是指识别出数据流所属的应用,而不是识别出具体的协议结构。
图I是本发明实施例的应用协议的自动识别方法,所述方法应用于网络设备上, 所述网络设备位于客户端和服务器之间,其可以为流量控制设备、防火墙等。参照图1,所述方法可以包括如下步骤
步骤101,获取客户端与服务器之间的http交互信息;
客户端与服务器之间产生http会话时,网络设备能够获取到客户端与服务器之间的http交互信息。
步骤102,从所述http交互信息中获取应用协议名称;
http交互信息是明文,因此,能够提取所述http交互信息中的关键字符串(http 交互信息的格式是已知的,因此,可以根据需要提取所述http交互信息中的预定位置的字段,该提取的字段即为关键字符串),然后,将所述关键字符串作为所述应用协议名称。例如,http交互信息中包括关键字符串QQ,则可以将QQ作为应用协议名称。
本发明中,是从当前会话(所述http交互信息对应的会话)中获取应用协议名称, 并将该应用协议名称作为当前会话和后续会话的应用协议名称。
步骤103,获取客户端与服务器之间的后续会话流,提取所述后续会话流的属性特征,根据所述属性特征生成该应用协议名称对应的协议模型;
这里,所述后续会话流可以根据需要进行选取,例如,可以获取当前http会话与下一个http会话之间的会话流,得到所述后续会话流;又例如,可以获取当前会话结束后的预定时长(例如,为I分钟)的会话流,得到所述后续会话流。
获取到客户端与服务器之间的后续会话流,就可以提取所述后续会话流的属性特征,举例如下
权利要求
1.一种应用协议的自动识别方法,应用于网络设备上,其特征在于,所述方法包括 获取客户端与服务器之间的http交互信息; 从所述http交互信息中获取应用协议名称; 获取客户端与服务器之间的后续会话流,提取所述后续会话流的属性特征,根据所述属性特征生成该应用协议名称对应的协议模型; 将生成的协议模型与存储的协议模型进行匹配,若匹配成功,则识别出具体的应用协议; 若匹配失败,则将该应用协议名称和对应的协议模型进行存储。
2.如权利要求I所述的自动识别方法,其特征在于,所述从所述http交互信息中获取应用协议名称,包括 提取所述http交互信息中的关键字符串,将所述关键字符串作为所述应用协议名称。
3.如权利要求I所述的自动识别方法,其特征在于,所述根据所述属性特征生成该应用协议名称对应的协议模型,包括 用所述属性特征来表征所述协议模型;或者 对所述属性特征进行统计处理,用统计处理结果来表征所述协议模型。
4.如权利要求I所述的自动识别方法,其特征在于,所述获取客户端与服务器之间的后续会话流,包括 获取当前http会话与下一个http会话之间的会话流,得到所述后续会话流。
5.一种应用协议的自动识别装置,应用于网络设备上,其特征在于,所述装置包括 http信息获取模块,用于获取客户端与服务器之间的http交互信息; 协议名称提取模块元,用于从所述http交互信息中获取应用协议名称; 协议模型生成模块,用于获取客户端与服务器之间的后续会话流,提取所述后续会话流的属性特征,根据所述属性特征生成该应用协议名称对应的协议模型; 协议模型检测模块,用于将生成的协议模型与存储的协议模型进行匹配,若匹配成功,则识别出具体的应用协议; 协议模型更新模块,用于当协议模型检测模块匹配失败时,将该应用协议名称和对应的协议模型进行存储。
6.如权利要求5所述的自动识别装置,其特征在于,所述协议名称提取模块进一步用于 提取所述http交互信息中的关键字符串,将所述关键字符串作为所述应用协议名称。
7.如权利要求5所述的自动识别装置,其特征在于,所述协议模型生成模块进一步用于 用所述属性特征来表征所述协议模型;或者 对所述属性特征进行统计处理,用统计处理结果来表征所述协议模型。
8.如权利要求5所述的自动识别装置,其特征在于,所述协议模型生成模块进一步用于 获取当前http会话与下一个http会话之间的会话流,得到所述后续会话流。
全文摘要
本发明提供一种应用协议的自动识别方法和装置,属于网络通信技术领域。所述方法包括获取客户端与服务器之间的http交互信息;从所述http交互信息中获取应用协议名称;获取客户端与服务器之间的后续会话流,提取所述后续会话流的属性特征,根据所述属性特征生成该应用协议名称对应的协议模型;将生成的协议模型与存储的协议模型进行匹配,若匹配成功,则识别出具体的应用协议;若匹配失败,则将该应用协议名称和对应的协议模型进行存储。本发明能够准确、有效、快速地从复杂的背景流中识别出加密的应用协议。
文档编号H04L29/08GK102984242SQ20121047702
公开日2013年3月20日 申请日期2012年11月20日 优先权日2012年11月20日
发明者叶倩 申请人:杭州迪普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1