基于DPI的应用层协议解析

  • 格式:docx
  • 大小:453.41 KB
  • 文档页数:36

摘要随着互联网在中国的迅速发展,全国各大网络运营商的网络规模都在不断扩张,网络结构日渐复杂,网络业务日趋丰富,网络流量高速增长,这使得网络管理的要求和难度都大大提高。

因此,网络运营商需要利用协议分析对网络进行可靠、有效的监测与控制,而传统依靠端口识别的协议分析已经无法实现对协议的准确识别。

在这种情况下,如何通过一种新的协议分析方法对网络进行流量控制、网络计费、内容过滤、以及流量管理,为用户提供一个良好的网络环境成为了一个热门的研究课题。

首先,对应用层协议解析的研究现状和已有的检测方法进行了分析和介绍,在此基础上采用了深度包检测(DPI)技术对应用层协议解析;其次,对应用层协议解析系统的系统架构及各子系统的功能做了概要介绍,同时将协议分析模块(包括HTTP分析、DHCP分析)作为核心模块详细加以说明;再次,对整个应用层协议解析做了详细设计,阐述了各个模块的设计原理及实现流程,并通过系统测试,证实了系统设计方案的可行性和正确性。

最后,对研究工作进行了总结与展望,肯定了其研究意义和价值,同时也指出了系统存在的不足及今后的改进方向。

关键词:深度包检测,应用层协议解析,数据包捕获函数库,超文本传输协议AbstractWith the rapid development of Internet in China, the major network operators, network size in the ever-expanding, increasingly complex network structure, network operations are becoming increasingly rich, high-speed network traffic growth, which makes network management requirements and greatly increase thedifficulty. Therefore, network operators need to network a reliable effective monitoring and control, in this case, how to protocol analysis of network flow control, network billing, content filtering, and traffic management, to provide users with a good network environment has become a hot research topic.First ,the artical has analysised on the research present situation and the existing detection method on the application layer protocol analysis, and based on this, it used the depth inspection packet (DPI) technology for application layer protocol analysis; Second, the article given an overview on the system architecture of the application layer protocol analysis system and subsystem functions,and at the same time, it gaven a detailed description on the analysis of hypertext transfer protocol (HTTP: hypertext transport protocol) as the core module; Three, the article given a detailed design on the application layer protocol analysis system, described the design principles and processes of each module, and system testing, confirmed the feasibility of the system design. Finally, this paper summarized the research work and looking, ensured its significance and value, and also pointed out the shortcomings of the system and the future direction of the improvement.Keywords:deep packet inspection, the application layer protocol analysis, libpcap, hypertext transfer protocol analysis目录摘要 (I)Abstract (II)1 绪言1.1 课题背景及研究的目的和意义 (1)1.2深度数据包检测(DPI)国内外研究概况 (2)1.3 应用层协议概述 (3)1.4论文的组织结构 (11)2 应用层协议解析系统设计方案的研究2.1 系统需求分析 (13)2.2 基于DPI的应用层协议解析系统设计方案 (14)2.3 协议分析系统设计方案 (15)2.4 系统开发语言、工具及环境 (16)3 基于DPI的应用层协议解析与设计3.1数据包捕获模块 (17)3.2 HTTP分析模块 (23)3.3 DHCP分析模块 (25)4 系统测试4.1 测试指标 (28)4.2 测试环境 (28)4.3 测试步骤及结果分析 (28)5 总结与展望 (30)致谢 (31)参考文献 (32)1 绪言1.1 课题背景及研究的目的和意义1.1.1 课题背景在如今Internet高速发展,网络的内容安全是网络安全的重要组成部分。

对于网络管理来说,最重要的就是识别和区分网络流量,通过协议识别可以对网络进行流量控制、网络计费、内容过滤、以及流量管理。

传统的协议识别采用的是端口识别,如检测到端口号为80时,则认为该应用代表着普通上网应用。

这种识别能达到较高的速率,但是现在大量的应用层协议为了避免识别,逃避防火墙的检查,不使用固定的端口进行通信。

这不仅包括众多近年新出现的P2P协议,而且包括了越来越多的传统协议,比如BitTorrent、eMule等P2P协议,其采用动态端口进行通信;而Skype、QQ等协议则共用80端口。

并且当前网络上的一些非法应用会采用隐藏或假冒端口号的方式躲避检测和监管,造成仿冒合法报文的数据流侵蚀着网络[2]。

越来越多诸如此类协议的产生,采用L2~L4层的传统检测方法已无能为力了,因此近年来很多的研究工作都致力于开发新的方法来识别应用层协议。

1.1.2 课题研究的目的和意义DPI(Deep Packet Inspection,深度包检测)技术就是近年来出现的一种协议识别技术。

DPI技术不同于传统的协议(如图1.1)。

传统报文检测仅仅分析IP包的四层以下的内容,包括源地址、目的地址、源端口、目的端口以及协议类型。

而是在在分析包头的基础上,增加了对应用层的分析,是一种基于应用层的流量检测和控制技术,当IP数据包、TCP或UDP数据流经过基于DPI技术的网络设备时,DPI引擎通过深入读取IP包载荷的内容来对OSI 7层协议中的应用层信息进行重组,从识别出IP包的应用层协议。

随着对应用层协议解析的要求越来越高,对基于DPI的应用层协议解析技术的研究也变得越来越重要。

图1.1 两种报文检测的区别1.2深度数据包检测(DPI)国内外研究概况深度数据包检测(DPI)是一项已经在流量管理、安全和网络分析等方面获得成功的技术,同时该技术能够对网络数据包进行内容分析,但又与header 或者基于元数据的数据包检测有所不同,这两种检测通常是由交换机、防火墙和入侵检测系统IPS设备来执行的。

通常的DPI解决方案能够为不同的应用程序提供深度数据包检测。

只针对header的处理限制了能够从数据包处理过程中看到的内容,并且不能够检测基于内容的威胁或者区分使用共同通信平台的应用程序。

DPI能够检测出数据包的内容及有效负载并且能够提取出内容级别的信息,如恶意软件、具体数据和应用程序类型。

随着网络运营商、互联网服务提供商(ISP)以及类似的公司越来越依赖于其网络以及网络上运行的应用程序的效率,管理带宽和控制通信的复杂性以及安全的需要变得越来越重要。

DPI恰好能够提供这些要求[3],寻求更好的网络管理以及合规的用户企业应该把DPI作为一项重要的技术。

DPI技术能够将数据包组装到网络的流量中[20,23],数据处理(包括协议分类)接着可以从流量内容中提取信息,流量重组和内容提取都需要大量处理能力,尤其是在高流量的数据流中。

成功的DPI技术必须能够提供基本功能,如高性能计算和对分析任务的灵活的支持。

DPI的识别技术可以分为三大类:基于“特征字”的识别技术,应用层网关识别技术和行为模式识别技术。

(1)基于“特征字”的识别技术[1]。

不同的应用通常依赖于不同的协议,而不同的协议都有其特殊的指纹,这些指纹可能是特定的端口、特定的字符串或者特定的Bit 序列。

基于“特征字”的识别技术通过对业务流中特定数据报文中的“指纹”信息的检测以确定业务流承载的应用。

根据具体检测方式的不同,基于“特征字”的识别技术又可以被分为固定位置特征字匹配、变动位置的特征匹配以及状态特征匹配三种技术。

通过对“指纹”信息的升级,基于特征的识别技术可以很方便的进行功能扩展,实现对新协议的检测。

(2)应用层网关识别技术。

某些业务的控制流和业务流是分离的,业务流没有任何特征。

这种情况下,我们就需要采用应用层网关识别技术。

应用层网关需要先识别出控制流,并根据控制流的协议通过特定的应用层网关对其进行解析,从协议内容中识别出相应的业务流。

对于每一个协议,需要有不同的应用层网关对其进行分析。

(3)行为模式识别技术。

行为模式识别技术基于对终端已经实施的行为的分析,判断出用户正在进行的动作或者即将实施的动作。

行为模式识别技术通常用于无法根据协议判断的业务的识别。

1.3 应用层协议概述应用层(Application layer)是七层OSI模型[4,5](如图1.2所示)的第七层。