报文流识别方法及装置的制作方法

文档序号:7718589阅读:245来源:国知局
专利名称:报文流识别方法及装置的制作方法
技术领域
本发明涉及网络技术,尤其涉及一种报文流识别方法及装置。
背景技术
近年来,点对点(Peer to Peer,简称P2P)技术飞速发展,其业务已经占据了互联 网业务总量的60% -80% ,成为流行的宽带互联网应用。P2P业务应用围绕IP音频和视频文 件共享快速发展,造成了网络带宽的巨大消耗,甚至引起网络拥塞,降低其他业务的性能。 运营商为了保护自己的利益,对P2P报文进行限制,以保证其他业务的正常运行。于是,P2P 软件的开发者将网络上传输的P2P报文进行加密或模糊,以逃避协议识别设备的检测。
为了限制经过加密或模糊之后的P2P报文在网络中的传输,运营商需要识别网络 中的采用某种特定协议加密的P2P报文流。 现有技术中这种报文流识别方法存在的问题是P2P协议报文和其他非P2P报文 协议都会采用某种特定协议加密或模糊,现有技术中报文流识别方法,有可能将非P2P协 议报文识别出来,导致误识别。

发明内容
本发明实施例针对现有技术中存在的问题,提供一种报文流识别方法及装置,提 高报文识别准确率。 本发明实施例提供了 一种报文流识别方法,包括 从输入的报文流中过滤出符合第一传输层协议的报文流; 从所述符合第一传输层协议的报文流中过滤出符合第一加密协议的报文流; 按照待识别的协议,向所述符合第一加密协议的报文流的目的端或源端发送符合
所述第一加密协议和所述第一传输层协议的握手报文; 如果握手成功,则确定输入的报文流为符合所述待识别的协议的报文流,断开此 次握手成功的通信。 本发明实施例还提供了一种报文流识别装置,包括 传输协议过滤模块,用于从输入的报文流中过滤出符合第一传输层协议的报文 流; 加密协议过滤模块,用于从所述符合第一传输层协议的报文流中过滤出符合第一 加密协议的报文流; 握手模块,用于按照待识别的协议,向所述符合第一加密协议的报文流的目的端 或源端发送符合所述第一加密协议和所述第一传输层协议的握手报文; 确定模块,与所述握手模块连接,用于在所述握手模块握手成功后,确定输入的报 文流为符合所述待识别的协议的报文流; 断开模块,用于在所述握手模块握手成功后断开此次握手成功的通信。 本发明实施例提供的报文流识别方法及装置中,首先从输入的报文流中过滤出符合第一传输层协议和第一加密协议的报文流,然后模拟符合待识别的协议的客户端,主动 与输入的报文流的目的端或源端握手,如果握手成功,则可以确定输入的报文流符合待识 别的协议,从而避免了将所有符合第一传输层协议和第一加密协议的报文流识别为符合待 识别的协议的报文流,提高了报文识别准确率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。
图1所示为本发明报文流识别方法实施例流程图; 图2所示为本发明报文流识别装置一实施例的结构示意图; 图3所示为本发明报文流识别装置另一实施例的结构示意图。
具体实施例方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员
在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 如图1所示为本发明报文流识别方法实施例流程图,包括 步骤101、从输入的报文流中过滤出符合第一传输层协议的报文流; 步骤102、从所述符合第一传输层协议的报文流中过滤出符合第一加密协议的报
文流; 步骤103、按照待识别的协议,向所述符合第一加密协议的报文流的目的端或源端 发送符合所述第一加密协议和所述第一传输层协议的握手报文; 步骤104、如果握手成功,则确定输入的报文流为符合所述待识别的协议的报文 流,断开此次握手成功的通信。 本发明提供的报文流识别方法可以用于识别采用各种加密协议加密之后的符 合待识别的协议的报文流,待识别的协议可以是P2P文件共享协议等欲识别的协议。第 一加密协议可以包括消息流加密(Message StreamEncryption,简称MSE)、协议头加 密(Protocol Header Encryption,简称PHE)等,P2P文件共享协议可以包括比特流 (BitTorrent,简称BT)协议、Ares协议、eDonkey协议等。第一传输层协议是用于传输P2P 报文流的协议,可以是传输控制协议(Transmission Control Protocol,简称TCP)或者是 用户数据报协议(User Datagram Protocol,简称UDP)。 下面以如何识别采用TCP传输层协议、MSE加密协议的BT报文流为例来说明本发 明实施例一提供的方法的实现过程。BT协议为待识别的协议,MSE协议为第一加密协议, TCP为第一传输层协议。 BT是一个著名的P2P文件共享协议,BT客户端中使用的加密或模糊技术是MSE技 术。BT报文流中基于MSE协议进行加密或模糊,使得网络运营商或网络服务提供商无法识别BT报文流。 MSE协议使用DH(Diffie-Hellman)协议进行加密密钥协商,并且使用序列密码加 密算法RC4进行数据加密,消息验证哈希函数采用SHA-1,DH参数P为768比特(96字节) 的安全素数,DH参数G等于2。 MSE协议进行密钥协商以及数据通讯的过程如下 以客户端A和服务端B之间进行密码协商及数据通信为例来介绍。首先,客户端 A给服务端B发送密钥中的部分内容以及随机数,其中随机数主要用于抵抗中间人的基于 长度的统计分析识别,服务端B向客户端A发送密钥的一部分和随机数,从而完成密钥协商 过程。然后客户端A和服务端B之间进行密码算法的选择和参数协商,协商完成后客户端 A采用协商好的密钥以及密码算法对报文流加密,把加密之后的报文流发送给服务端B。
MSE协议并没有明确要求其承载协议,但目前主要运行在TCP之上。
为了识别出采用MSE加密之后的BT报文流,首先从输入的报文流中过滤出符合 TCP协议的报文流,再过滤出符合MSE协议的报文流。由于除了 BT报文流之外,其他报文流 也可能采用TCP协议传输,并采用MSE协议加密或模糊,所以为了避免将除了 BT报文流之 外的其他报文流误识别为BT报文流,需要进一步模拟BT客户端,向输入的符合MSE协议的 报文流的源端或目的端发送符合TCP协议和MSE协议以及BT协议的握手报文,如果握手成 功,则可以确定当前过滤出的符合TCP协议和MSE协议的报文流是符合BT协议的报文流, 当前过滤出的符合TCP协议和MSE协议的报文流的源端或目的端均为BT客户端。如果握 手失败,则可以确定当前过滤出的符合TCP协议和MSE协议的报文流不是符合BT协议的报 文流。 通过上述的方法,就可以识别出采用TCP协议传输和MSE协议加密之后的BT报文 流,并且能够避免将采用了 TCP协议传输和MSE协议加密的符合其他协议的报文流误识别 为BT报文流。 步骤101可以采用端口识别方法、或特征关键字识别方法、或端口识别方法与特 征关键字识别方法的组合方法。端口识别方法具体是识别所述输入的报文流的通信端口 , 如果符合预设的端口 ,则确定为符合第一传输层协议的报文流。特征关键字识别方法具体 是识别所述输入的报文流的特征关键字,如果符合预设的特征关键字,则确定为第一传输 层协议的报文流。 步骤102可以采用特征关键字识别方法。具体地,识别所述符合第一传输层协议 的报文流的特征关键字,如果符合预设的特征标志,则确定为符合第一加密协议的报文流。
步骤103可以采用如下过程和目的端或源端进行握手生成待识别的协议的握手 报文;按照第一传输层协议,对所述握手报文进行封装;按照第一加密协议,对封装后的握 手报文进行加密;向目的端或源端发送加密后的握手报文。 本发明实施例提供的报文流识别方法,首先从输入的报文流中过滤出符合第一传 输层协议和第一加密协议的报文流,然后模拟符合待识别的协议的客户端,主动与输入的 报文流的目的端或源端握手,如果握手成功,则可以确定输入的报文流符合待识别的协议, 从而避免了将所有符合第一传输层协议和第一加密协议的报文流识别为符合待识别的协 议的报文流,提高了报文识别准确率。 如图2所示为本发明报文流识别装置一实施例的结构示意图,该装置包括传输协议过滤模块11、加密协议过滤模块12、握手模块13、确定模块14和断开模块15。传输协议 过滤模块11用于从输入的报文流中过滤出符合第一传输层协议的报文流;加密协议过滤 模块12用于从所述符合第一传输层协议的报文流中过滤出符合第一加密协议的报文流; 握手模块13与加密协议过滤模块12连接,用于按照待识别的协议,向所述符合第一加密协 议的报文流的目的端或源端发送符合所述第一加密协议和所述第一传输层协议的握手报 文;确定模块14与握手模块13连接,用于在所述握手模块13握手成功后,确定输入的报文 流为符合所述待识别的协议的报文流。断开模块15用于在所述握手模块13握手成功后断 开此次握手成功的通信。 如图2所示的报文流识别装置可以是深度协议分析(De印Packetlnspection,简 称DPI)装置,DPI装置可以是具有DPI功能的防火墙,相当于在现有的DPI装置中增加了 加密协议过滤模块、握手模块、确定模块和断开模块。 如图3所示为本发明报文流识别装置另一实施例的结构示意图,该实施例中,将 加密协议过滤模块设置在DPI装置16中,该DPI装置16可以是具备DPI功能的防火墙。
如图2和图3所示的实施例中,握手模块可以包括生成子模块,封装子模块、加密 子模块和发送子模块。其中,生成子模块可以用于生成待识别的协议的握手报文;封装子模 块可以用于按照第一传输层协议,对生成子模块生成的握手报文进行封装;加密子模块可 以用于按照第一加密协议,对封装子模块封装后的握手报文进行加密;发送子模块可以用 于向目的端或源端发送加密子模块加密后的握手报文。 传输协议过滤模块具体可以用于识别输入的报文流的通信端口 ,如果符合预设的 端口,则确定为符合第一传输层协议的报文流;和/或识别输入的报文流的特征关键字,如 果符合预设的特征关键字,则确定为第一传输层协议的报文流。 加密协议过滤模块具体可以用于识别符合第一传输层协议的报文流的特征关键 字,如果符合预设的特征标志,则确定为符合第一加密协议的报文流。 下面以如何识别采用TCP协议传输和MSE协议加密的BT报文流为例来说明本发 明报文流识别装置的工作原理。 传输协议过滤模块从输入的报文流中过滤出符合第一传输层协议的报文流后,加 密协议过滤模块从所述符合第一传输层协议的报文流中过滤出符合MSE协议的报文流,由 于除了 BT报文流之外,其他报文流也可能采用MSE协议对报文流加密或模糊,所以为了避 免将除了 BT报文流之外的其他报文流误识别为BT报文流,握手模块需要进一步模拟BT客 户端,按照BT协议,向输入的符合MSE协议的报文流的源端或目的端发送符合MSE协议以 及TCP协议的握手报文,如果握手成功,则确定模块可以确定当前过滤出的符合MSE协议的 报文流是符合BT协议的报文流,当前过滤出的符合MSE协议的报文流的远端或目的端均为 BT客户端。如果握手失败,则确定模块可以确定当前过滤出的符合MSE协议的报文流不是 符合BT协议的报文流。 确定模块确定当前过滤出的符合MSE协议的报文流是符合BT协议的报文流之后,
可以向DPI装置上报报文流识别的结果,并由断开模块断开与BT客户端的连接。 本发明提供的报文流识别装置可以部署在一个域的网络出口处,这样就可以识别
流经该装置的所有网络报文流。 本发明实施例提供的报文流识别装置,首先从输入的报文流中过滤出符合第一传输层协议和第一加密协议的报文流,然后模拟符合待识别的协议的客户端,主动与输入的 报文流的目的端或源端握手,如果握手成功,则可以确定输入的报文流符合待识别的协议, 从而避免了将所有符合第一传输层协议和第一加密协议的报文流识别为符合待识别的协 议的报文流,提高了报文识别准确率。 本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、 RAM、磁碟或者 光盘等各种可以存储程序代码的介质。 最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
8
权利要求
一种报文流识别方法,其特征在于,包括从输入的报文流中过滤出符合第一传输层协议的报文流;从所述符合第一传输层协议的报文流中过滤出符合第一加密协议的报文流;按照待识别的协议,向所述符合第一加密协议的报文流的目的端或源端发送符合所述第一加密协议和所述第一传输层协议的握手报文;如果握手成功,则确定输入的报文流为符合所述待识别的协议的报文流,断开此次握手成功的通信。
2. 根据权利要求1所述的报文流识别方法,其特征在于,所述从输入的报文流中过滤 出符合第一传输层协议的报文流包括识别所述输入的报文流的通信端口 ,如果符合预设的端口 ,则确定为符合第一传输层 协议的报文流;和/或识别所述输入的报文流的特征关键字,如果符合预设的特征关键字,则确定为第一传 输层协议的报文流。
3. 根据权利要求1所述的报文流识别方法,其特征在于,所述从所述符合第一传输层 协议的报文流中过滤出符合第一加密协议的报文流包括识别所述符合第一传输层协议的报文流的特征关键字,如果符合预设的特征标志,则 确定为符合第一加密协议的报文流。
4. 根据权利要求1所述的报文流识别方法,其特征在于,所述待识别的协议包括点对 点P2P文件共享协议。
5. 根据权利要求1所述的报文流识别方法,其特征在于,所述第一加密协议包括消息 流加密MSE协议或者协议头加密PHE协议。
6. 根据权利要求1所述的报文流识别方法,其特征在于,所述按照待识别的协议,向所 述符合第一加密协议的报文流的目的端或源端发送符合所述第一加密协议和所述第一传 输层协议的握手报文包括生成待识别的协议的握手报文; 按照第一传输层协议,对所述握手报文进行封装; 按照第一加密协议,对封装后的握手报文进行加密; 向目的端或源端发送加密后的握手报文。
7. —种报文流识别装置,其特征在于,包括传输协议过滤模块,用于从输入的报文流中过滤出符合第一传输层协议的报文流; 加密协议过滤模块,用于从所述符合第一传输层协议的报文流中过滤出符合第一加密 协议的报文流;握手模块,用于按照待识别的协议,向所述符合第一加密协议的报文流的目的端或源 端发送符合所述第一加密协议和所述第一传输层协议的握手报文;确定模块,与所述握手模块连接,用于在所述握手模块握手成功后,确定输入的报文流 为符合所述待识别的协议的报文流;断开模块,用于在所述握手模块握手成功后断开此次握手成功的通信。
8. 根据权利要求7所述的装置,其特征在于,所述传输协议过滤模块用于 识别所述输入的报文流的通信端口 ,如果符合预设的端口 ,则确定为符合第一传输层协议的报文流;和/或识别所述输入的报文流的特征关键字,如果符合预设的特征关键字,则确定为第一传 输层协议的报文流。
9. 根据权利要求7所述的装置,其特征在于,所述加密协议过滤模块用于 识别所述符合第一传输层协议的报文流的特征关键字,如果符合预设的特征标志,则确定为符合第一加密协议的报文流。10. 根据权利要求7所述的装置,其特征在于,所述握手模块包括 生成子模块,用于生成待识别的协议的握手报文; 封装子模块,用于按照第一传输层协
议,对所述握手报文进行封装; 加密子模块,用于按照第一加密协议,对封装后的握手报文进行加密; 发送子模块,用于向目的端或源端发送加密后的握手报文。
全文摘要
本发明公开了一种报文流识别方法及装置,其中方法包括从输入的报文流中过滤出符合第一传输层协议的报文流;从符合第一传输层协议的报文流中过滤出符合第一加密协议的报文流;按照待识别的协议,向符合第一加密协议的报文流的目的端或源端发送符合第一加密协议和第一传输层协议的握手报文;如果握手成功,则确定输入的报文流为符合待识别的协议的报文流,断开此次握手成功的通信。本发明实施例提供的报文流识别方法和装置,主动与输入的报文流的目的端或源端握手,如果握手成功,则可以确定输入的报文流符合待识别的协议,从而避免了将所有符合第一加密协议的报文流识别为符合待识别的协议的报文流,提高了报文识别准确率。
文档编号H04L29/08GK101702733SQ20091022215
公开日2010年5月5日 申请日期2009年11月18日 优先权日2009年11月18日
发明者刘永京, 沈华林, 马勺布 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1