视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
网络监听技术的研究与应用
2025-10-03 15:14:15 责编:小OO
文档
  题目:网络监听技术的研究与应用

            姓名:***

        指导老师:***

            班级:计算机网络技术

引 言

由于互联网的发展,整个世界经济正在迅速地融为一体,而整个国家犹如一部巨大的网络机器。计算机网络已经成为国家的经济基础和命脉。伴随着网络的发展,也产生了各种各样的问题,其中安全问题尤为突出。了解网络面临的各种威胁,防范和消除这些威胁,实现真正的网络安全已成了网络发展中最重要的事情。遗憾的是,当网络给人们提供便利的同时,网络技术的发展方向似乎都趋向于网络的便利性和实用性,因而留下了太多的技术、管理和基础设施的漏洞。正是由于网络本身存在的这些缺陷和漏洞,网络在进行信息和数据传送时,可能会因为网络传输介质带宽的而出现数据冲突,传输帧中的地址不匹配或是因为网络硬件设备的错误,导致传输的信息出错或丢失;一些网络黑客和非法用户利用这些缺陷向网络发送可疑或不安

全的信息,肆意盗窃和破坏网络数据。网络的维护和安全的要求也变得越来越高。网络监听技术的起源是网络管理员为了诊断网络故障的需要,而监听网络中传输的数据信息。一般的做法是在一定的网段上安装网络监视系统或网络分析仪来获取网络上的数据包进行分析,以便找出错误的原因,解决网络的故障。一些网络管理人员也利用截取网络中传输的数据监听网络数据流量,来实现一定的流量计费功能。目前,很多黑客也利用网络监听来获取一些明文传送的信息,达到窃取信息的目的。在这样的一个迫切需要网络安全的信息社会里,积极的研究和探索网络安全问题是一件非常有意义的事情,通过研究网络监听系统来进行具体的网络安全研究工作是非常必要的。

第一章 网络监听软硬件现状的简介

1.1研究现状

从早期的计算机网络出现,1969 年美国国防部高级研究计划局建成的ARPANET 实验网开始,计算机网络在各发达国家迅速蓬勃发展,到今天复杂的Intranet 和Internet 网络,经历了不同的时期。伴随着网络的出现,对网络数据截取的工具,像sniffer 也就随之而产生了。到目前为止,可以进行网络数据监听的工具从软件到硬件,从有线网到无线网,可以说是应有尽有。有软件实现的便携式终端,也有硬件实现的网络分析仪。下面分别介绍。

1.1.1 软件数据截取工具介绍

目前,针对各种不同版本的操作系统都有不同版本的数据监听软件,如 MS-DOS平台上Gobblor、Window9x 平台的NetXray、Win2000/xp 平台下得Sniffer Pro、Novell平台的EthLoad 以及UNIX 平台Netman 和Sunsniff 等等。

1.2 硬件数据截取工具介绍

以上介绍的均是由单纯的软件实现的 sniffer,其功能相对硬件来说还是较为简单的。下面将介绍相应的由硬件实现的sniffer。硬件的sniffer 又称为网络分析仪(协议分析仪)。目前的网络分析仪的技术已经非常的成熟,产品也非常的多样。各种产品的功能会略有差异,有的只能针对一种协议,有的可以分析多种协议。一般的情况下,大型的企业网络都会使用软硬件结合的网络分析仪。如:1)安捷伦网络分析仪系统,2)Fluke Optiview 综合网络协议分析仪等。

1.3 综述

软件实现的 Sniffer 工具优点是:物美价廉(甚至可以使用共享软件),且易于学习使用,同时对硬件的要求不高,也易于交流数据;缺点是:无法抓获网络上所有的传输信息,比如碎片、short event 等等,某些情况下就无法真正了解网络的故障和运行情况。但是,它可以和其他的软件配合使用一起工作,可以起到维护网络稳定和安全的作用。

硬件实现的 Sniffer 通常称为网络协议分析仪。它的功能比较齐全,可以对各种的网络环境进行网络数据包的检测和监听,可以进行详细的网络故障分析,现在新出现的分布式网络分析仪和无线网络分析仪使其在维护网络稳定和网络安全方面更加游刃有余。但是,硬件的网络分析仪的缺点是:价格昂贵,一般功能的网络分析仪的价钱都可以达到¥50,000,功能齐全的就更加昂贵。而且体积比较大,不容易随身携带,一般硬件的网络分析仪都固定在某一固定的网络中。根据各自的特点,一般在一些骨干网中安置硬件的网络协议分析仪,而在规模相对小一些的局域网中就使用软件实现的Sniffer。

 

第二章 网络监听相关技术综述

2.1 OSI 模型

在 20 世纪80 年代早期,ISO 开始致力于制定一套普遍适用的规范集合,以使得全球范围的计算机平台可进行开放式通信。ISO 创建了一个有助于开发和理解计算机的通信模型,即开放系统互连OSI(模型)。OSI 模型将网络结构划分为七层:即物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每一层均有自己的一套功能集,并与紧邻的上层和下层交互作用。在顶层,应用层与用户使用的软件(如字处理程序或电子表格程序)进行交互。在OSI 模型的底端是携带信号的网络电缆和连接器。总的说来,在顶端与底端之间的每一层均能确保数据以一种可读、无错、排序正确的格式被发送。

图2.1 OSI 七层模型

(1)物理层:物理层是O S I 模型的最低层或第一层,该层包括物理联网媒介,如电缆连接器。物理层的协议产生并检测电压以便发送和接收携带数据的信号。在你的桌面P C 上插入网络接口卡,你就建立了计算机连网的基础。换言之,你提供了一个物理层。尽管物理层不提供纠错服务,但它能够设定数据传输速率并监测数据出错率。

(2)数据链路层:数据链路层是O S I 模型的第二层,它控制网络层与物理层之间的通信。它的主要功能是将网络层接收到的数据分割成特定的可被物理层传输的帧。帧是用来移动数据的结构包,它不仅包括原始(未加工)数据,或称“有效荷载”,还包括发送方和接收方的网络地址以及纠错和控制信息。其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达。

(3)网络层:即O S I 模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A到另一个网络中节点B的最佳路径。由于网络层处理路由,而路由器因为连接网络各段,并智能指导数据传送,因此属于网络层。

(4)传输层:传输层主要负责确保数据可靠、顺序、无错地从A点传输到B点(A、B点可能在相同的网络段也可能不在相同的网络段上)。因为如果没有传输层,数据将不能被接受方验证或解释,所以,传输层常被认为是O S I 模型中最重要的一层。传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割。

(5)会话层:会话层负责在网络中的两节点之间建立和维持通信。会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。

(6)表示层:表示层如同应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。表示层管理数据的解密与加密,除此之外,表示层协议还对图片和文件格式信息进行解码和编码。

(7)应用层:O S I 模型的顶端也即第七层是应用层。应用层负责对软件提供接口以使程序能使用网络服务。应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。

2.2 TCP/IP 协议体系结构

TCP/IP 不是一个简单的协议,而是一组小的、专业化协议,包括TCP、IP、UDP、ARP、ICMP 以及其他的一些被称为子协议的协议。大部分网络管理员将整组协议称为TCP/IP,有时简称为IP。TCP/IP 的前身是由美国国防部在20 世纪60 年代末期为其远景研究规划署网络(ARPAnet)而开发的。由于低成本以及在多个不同平台间通信的可靠性,TCP/IP 迅速发展并开始流行。它实际上是一个关于因特网的执行标准,并迅速成为局域网的首选协议。TCP/IP 这个协议遵守一个四层的模型概念:应用层、传输层、互联层和网络接口层。

2.1.3 MAC 地址的格式

以太网卡的 MAC 地址是一组唯一的48 比特数字。这48 比特分为两个部分组成,前面的24 比特用于表示以太网卡的寄主,后面的24 比特是一组序列号,是由寄主进行分配的。这样可以保证没有任何两块网卡的MAC 地址是相同的(当然可以通过特殊的方法实现)。这24 比特被称之为OUI(Organizationally Unique Identifier)。可是,OUI 的真实长度只有22 比特,还有两个比特用于其他:一个比特用来校验是否是广播或者多播地址,另一个比特用来分配本地执行地址(一些网络允许管理员针对具体情况再分配MAC 地址)。

举个例子,你的 MAC 地址在网络中表示为 03 00 00 00 00 01 。第一个字节所包含的值二进制表示方法为00000011。可以看到,最后两个比特都被置为真值。即指定了一个多播模式,向所有的计算机进行广播,使用了“NetBEUI”协议(一般的,在Windows 计算机的网络中,文件共享传输等是不使用TCP/IP 协议的)。

2.3 IP 地址

在 TCP/IP 协议中,编址由网际协议(Internet Protocol,简称IP)规定,IP 标准规定每台主机一个32 位数作为该主机的地址。所有Internet 上的计算机都必须有一个Internet 上唯一的编号作为其在Internet 的标识,这个编号称为IP 地址。每个数据报中包含有发送方的IP 地址和接收方的IP 地址。

(1)IP 地址

IP 地址是一个32 位二进制数,为了输入和读取的方便,通常采用点分十进制表示法,即以32 位数中的每8 位为一组,用十进制表示,并将各组用句点分开。例:某台机器的IP 地址为11001010 011100010 01000000 10000001,写成点分十进制表示形式就是 202.114..33。整个 Internet 由很多的网络互联而成,每个的网络,就是一个子网,包含若干台计算机。根据这个模式,Internet 的设计人员用两级层次模式构造IP 地址。IP 地址的32 个二进制位也被分为两个部分,即网络地址和主机地址,网络地址就像电话的区号,标明主机所在的子网,主机地址则在子网内部区分具体的主机。

(2)IP 地址分类

IP 地址根据网络规模的不同分为A、B、C、D、E 五类。其中A、B 和C 类称为基本类,D 类地址是多址广播地址,允许发送到一组计算机,E 类是实验性地址。

第三章 网络监听技术概述

3.1 网络监听概念

网络监听技术是一种与网络安全性密切相关的技术,它的完整定义是:利用计算机的网络接口截获目的地为其它计算机的数据报文的一种技术。网络( sniffer )原来是提供给网络管理员的一类管理工具,使用这组工具可以监视网络的状态、数据流动情况以及网络上传出的消息并利用这些消息来排除网络故障。不幸的是由于网络监听能有效的截获网络上的数据,它也成为了黑客使用最多的法。黑客运行监听工具暗中监视他人的网络状况、窃取明文传出的密码和各种数据。网络监听不仅在共享式局域网中实现,而且还可以在交换式局域网中实现。

3.2 网络监听的可能性

在一些传输介质上,网络信息是会有被监听的可能性。在网络上,监听效果最好的地方是在网关、路由器和防火墙一类的位置,通常由网络管理员来操作。而大多数黑客使用的地方是以太网中任何一台连网的主机上,因为这是监听最方便的地方。下面简单讨论一下各种数据链路上网络信息被监听的可能性。

(1)以太网:因为以太网是一种广播型网络,所以大多数网络数据的截获是在这种网络上实现的,其中可以分为共享式以太网监听和交换式以太网监听。

(2)令牌网:尽管令牌网并不是一个广播型网络,但带有令牌的那些包在传输过程中,平均要经过网络上一半的计算机。使得网络监听成为可能,但是令牌网中高的数据传输率使网络监听实现起来变得非常困难。

(3)电话线:电话线可以被一些电话公司协作人或者一些有机会在物理上访问到线路的人搭线窃听。在微波线路上的信息也会被截获。在实际中,高速的调制解调器将比低速的调制解调器搭线窃听困难一些,因为高速调制解调器中引入了许多频率。

(4)微波和无线电:监听的可能性高。无线电本来就是一个广播性的传输媒介,任何一个无线电接收机都可以截获传输的信息。

3.3 以太网的网络数据监听

目前,以太网组成的局域网中,按传输技术网络可以分为两种:点到点网络和广播式网络。局域网下目前以广播式的共享网络居多,但以点到点方式实现的交换式局域网也正在日益普及。在这两种环境下,由于网络的构成不同,监听的实现原理也各不相同。由于局域网下的数据传输主要是在数据链路层进行的,因此监听也集中在这一层实现。

3.4 共享式局域网中实现网络监听

共享式局域网采用的是广播信道,每一台主机都共享一条网络总线,这意味着所有的主机都可以接收到总线上的数据包。但我们实际情况是每个主机只接受发给它的数据包,丢弃不属于自己的数据包,这是通过每台主机网卡上唯一的MAC 地址实现的。只有当数据包中目的地址与自己的MAC 地址相同,主机才接收该数据包,否则不接受该

数据包。在一个计算机系统中,数据的收发是由网卡来完成的。网卡接收到传输来的数据,得知数据包的目的MAC 地址,根据计算机上的网卡驱动程序设置的接收模式及该地址值判断该不该接收,认为该接收就产生中断信号通知CPU,所以是否接收数据由网卡而不是计算机决定。CPU 得到中断信号后产生中断,操作系统就根据设置的网卡中断程序地址调用相应程序接收数据,驱动程序接收数据后放入信号堆栈让操作系统处理。

对于网卡来说一般有四种接收模式:1 广播模式:该模式下的网卡能够接收网络中的广播信息。2 组播模式:设置在该模式下的网卡能够接收组播数据。3 直接模式:在这种模式下,只有目的网卡才能接收该数据。4 混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否是发送给它的。正常的情况下,一个网卡默认响应广播模式和直接模式。而监听的主机网卡一般采用混杂模式(Promiscuous model),因而可以接收到网上所有数据包。共享式网络监听的实现正是基于这一原理。

3.5 交换式局域网中实现网络监听

3.5.1 ARP 欺骗(ARP Spoofing)

ARP 欺骗能够实现的主要原因是ARP 协议在早期设计上的缺陷造成的。ARP 协议是这样工作的:首先,源主机会向网络中所有主机广播包含有ARP 请求的数据包,数据包中询问与目的主机IP 地址相对应的MAC 地址;然后拥有该IP 的目的主机会向请求方发送一个含有其MAC 地址的 ARP 应答数据包,这样,源主机就知道向哪个MAC地址,也就是目的主机发送数据了。

出于传输效率以及实现简单性的考虑,ARP 协议没有考虑安全问题。ARP 协议是建立在各个主机之间相互信任基础上的,因此存在一定的安全问题。问题之一:局域网内每台主机都维护着一张ARP 表来表明IP 地址与MAC 地址的对应关系,这张ARP 表定时的进行刷新,如果假冒者在下次更新之前成功地修改了被攻击主机上的ARP 表,就可以进行假冒了。问题之二:ARP 请求包是以广播的方式进行。因为主机不知道通信对方的MAC 地址,才需要进行ARP 广播请求。这样攻击者就可以通过伪装ARP 应答包来与真正要通信的主机竞争,并且通过迟延一定时间发送ARP 应答包来更改已经被刷新了的、正确的ARP 表。问题之三:由于ARP 协议是无状态和无认证的,因此可以随意的发送ARP 应答包。局域网中任何主机即使没有ARP 请求的时候也可以做出应答,只要应答有效,接受到应答包的主机就会无需认证的和无条件的根据应答包的内容刷新本机的ARP表。

下面举例详细说明 ARP 欺骗的过程。假设在局域网中有三台主机通过交换机相连。如图3.1所示:

               图3.1 ARP欺骗后数据传递过程

主机A:IP地址:192.168.100.1

MAC地址:00-51-24-35-33-01

主机B:IP地址:192 168 100 2

MAC地址:00-51-24-35-33-02

主机C:IP地址:192.168.100 3

MAC地址:00.51-24-35-33-03

正常情况下,主机B是收不到主机A与主机C之间的通信报文的,如果主机B要监听主机A与主机C的通信报文,那么主机B就要分别向主机A和主机C发送假冒的ARP应答包。对于主机B发往主机A的应答包中IP地址与MAC地址的对应关系是:主机C的IP地址:192.168.100 3对应主机B的MAC地址:00-5l-24-35-33-02,这样在丰机A收到应答包后会刷新自己本地的ARP表。这样当主机A要发往主机C的报文实际上已发给了主机B,因为数据包是根据MAC地址发送的而不是根据IP地址发送的。同样对于主机B发往主机C的应答包中口地址与MAC地址的对应关系是:宅机A的IP地址:192.168.100.1对应主机B的MAC地址:00.51.24.35.33.02。

这样就可监听主机A与主机C之间的所有报文了,如图2所示。这里,主机B相当于充当了一个中间人的角色,因此这种监听方法被称为“Man-In-The—Middle”方法。

 3.5.2 MAC 复制(MAC Duplicating)

由于很多网卡允许修改内部的MAC地址,所以可以利用这一点修改本地的MAC地址,使它和被监听主机的MAC地址相同,这样,交换机就会发现,有两个端口对应相同的MAC地址,于是到该MAC地址的数据包将同时从这两个交换机端口发送出去。这种方法也要求交换机使用动态的地址映射表。这种方式与前面提到的ARP 欺骗有本质的不同,前者是欺骗交换机,后者是毒害主机的ARP 缓存而与交换机没有关系。

3.5.3 MAC 洪水(MAC Flooding)

交换机要负责建立两个节点之间的“虚电路”,就必须维护一张交换机端口与MAC 地址的映射表。这张映射表是存放在交换机的内存中的,由于交换机的内存是有限的,所以这张映射表存储的映射表项也是有限的。如果向这个交换机发送大量的虚假MAC地址数据从而使映射表“溢出”,使交换机在应接不暇的情况下,像普通Hub那样只是简单地向所有端口广播数据。这样实际上就破坏了网络的交换环境,监听者就可以用共享式局域网中的方法进行监听。

3.6 网络数据过滤机制

通过网络数据截获机制我们可以获取几乎所有流经该网络的数据包,但是在实际操作中,我们只对部分有用的数据感兴趣,其它的数据都会忽略掉。因此我们使用相应的数据过滤机制来对数据进行过滤,这样将大大提高系统的性能。通常的数据过滤机制有两种实现方式:

3.6.1 树型结构过滤机制

在树型模型中,每一节点代表一个布尔关系如 AND、OR,每个叶子代表一个谓词短语,如type=IP,边表示布尔操作和操作数的关系。树结构方式如图2.17 所示。

        

 图2.17 树结构方式                      图2.18 CFG结构方式

树型图的操作往往基于操作数堆栈运算,指令将常数或包数据压入堆栈,在堆栈顶层执行布尔运算或位运算,通过连续运算,在堆栈清空时返回结果。堆栈需要内存模拟,其中的pop 和push 操作需要指针的加减运算将数据从内存读取和写入内存。另外树型结构解释包时可能进行重复操作,例如某个值可能在多个叶子中分别从内存读取并计算,因此这种方式效率较低。

3.6.2 可控制流图方式CFG(Control Flow Graph)过滤机制

在 CFG 模型中,每个节点代表一个谓词短语,而边代表控制转换,如果谓词短语为true 则转向右边,反之转向左边。每个CFG 图有两个终结节点,表示返回true 或者false。其结构方式如图2.18 所示。

CFG 模型可以基于寄存器操作,且CFG 模型解释包时数据包的解释状态和路径是可记忆的,不需要重复计算。

以上两个模型的计算功能大致相同,它们可以表示相同的函数只在实现的过程不相同。但是它们在实现时都有相同的要求:

(1)于协议;

(2)指令集是通用的;

(3)尽量少的引用数据包。

第四章  Windows 平台下的数据包截获的方法介绍

网络封包截获,涉及驱动编程技术、核心态编程技术、系统动态链接库编程技术、协议生成与解析编程技术等,集中体现了网络应用的核心技术,是防火墙等高级网络应用开发的基础。截获Windows 下的网络数据包可以在两个层面进行:用户态(usermode)和内核态(kernel-mode),基于 Windows2000 和Windows XP 的网络封包截获技术主要分为以下几种: Winsock Layered Service Provider、WinSock2 动态链接库重载、Winpcap、Win2k Filter-Hook Driver 、NDI S Hook Driver、传输层过滤驱动(TDI)、中间层驱动(NDIS)。

几乎所有的Unix操作系统都为应用程序直接与网络交互提供了一套标准的系统调用,这样的系统调用非常有用,例如可以用来直接捕获数据包。这使得unix操作系统下的Sniffer相当多。而Windows平台下,由于系统没有直接提供捕获数据包的API,而且网卡驱动不能重新编译以加入新功能,所以要想在windows下开发Sniffer很困难,只能通过自己编写一个驱动程序或网络组件来访问内核网卡驱动提供的数据包来实现。WinPcap这个捕获数据包的工具库的出现,在一定程度上弥补了Windows操作系统在这方面的欠缺,也为Windows下网络监听工具的开发带来了新的方法和思路。本文将简要介绍WinPcap,以及利用WinPcap开发网络监听工具。

4.1 Winpcap技术介绍

WinPcap的出现具有一定的必然性。由于Window操作系统没有提供可以直接捕获数据包的API,尽管提供了一些内核模块,但存在着严重的局限性。例如:IP Filter Driver只运行在 Windows2000 下,且仅支持IP协议。由于这些局限,使得Windows平台下的网络安全和分析工具无论在数量上,还是质量上都与Unix下有很大的差距。微软研究院赞助了意大利一家开发机构,为Win32平台底层网络分析开发了一套有力而且易扩展的体系结构——WinPcap,它可以将Unix支持的数据包捕获功能加到Win32系统中,从而弥补了Windows操作系统这方面的欠缺。而且WinPcap完全开放,提供源代码,同时它提供了与Libpcap相兼容的函数接口。

4.2 WinPcap的体系结构

(1)BSD Capturing Component的体系结构:BSD Capturing Component是Unix下最常用的捕获数据包的驱动,其基本体系结构见图4.1。

             

               图4.1 BSD Capturing Component 的体系结构

如图4.1所示,BSD Capturing Component由以下几部分组成:NetWork Tap,它负责从网络直接捕获所有的数据包;Berkeley Packet Filter,它用来分析捕获进来的数据包;两种Buffer:一种工作在核心层,一种工作在用户层。经过Berkeley Packet Filter的数据包被拷贝到Kernel Buffer中,它分为两个buffer:store buffer和hold  buffer。store buffer用于保存从网络适配器捕获的数据包,hold bufier则用于将数据包拷贝到用户的buffer中。二者之间拥有swap特性:由于store buffer比hold buffer更易被填满,所以当store buffer已满,而hold buffer为空的时候,store buffer 变成 hold buffer,而之前的hold buffer变成store buffer。这样使得用户的程序和捕获数据包的驱动完全分开。User-level buffer存储从核心层进来的数据包,它可防止用户直接访问内核管理的内存。

  从程序员的角度来看,Libpcap是主要的部件,它隐藏了应用程序和内核之间的交互。它为捕获数据包的过程提供了强大而抽象的接口。通过它,可以使用用户定义的filter、管理用户层的buffer等。但是Libpcap并不能够发送数据包或者统计数据包。

(2)WinPcap的体系结构:WinPcap保留了BSD Capturing Component最重要的模块:一个Filter Machine、两种Burfer以及提供给用户的库。但是,WinPcap与BSD捕获数据包有一些本质的区别:filtering过程开始于用户层定义的一个Filter,例如port=21,WinPcap把它编译成一个伪指令,伪指令被传到核心层,核心层通过一个虚拟机开始抓取所有的数据包,并通过伪指令来判断是否保留数据包。虚拟机的效率成为获得好的效率的关键。另外,它们在结构上也有重要的区别:Netgroup Packet Filter采用循环buffer,这样使得buffer空间可以得到充分利用,大大提高了效率。Winpcap(windows packet capture)是微软提供的一个在Windows 平台下访问网络的编程接口。微软开发winpcap 这个项目的目的在于为win32 应用程序提供更开放的访问网络底层的能力。它包括三个部分:参见图4.2。

               图 4.2 Winpcap 结构图

第一个模块 NPF(Netgroup Packet Filter),是一个虚拟设备驱动程序文件。它的功能是过滤数据包,并把这些数据包原封不动地传给用户态模块,这个过程中包括了一些操作系统特有的代码。

第二个模块 packet.dll 为win32 平台提供了一个公共的接口。不同版本的Windows系统都有自己的内核模块和用户层模块。Packet.dll 可以解决这些差异。调用Packet.dll的程序可以运行在不同版本的Windows 平台上,而无需重新编译。

第三个模块 Wpcap.dll 是不依赖于操作系统的。它提供了更加高层、抽象的函数。Winpcap 的实质是用了我们后面说的NDIS,将自己注册为一个协议处理驱动来实现网络数据包的截获。

Winpcap 主要可以实现:

(1)捕获原始数据报,包括在共享网络上各主机发送/接收的以及相互之间交换的数据包;

(2)在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据包过滤掉;

(3)在网络上发送原始的数据包;

(4)收集网络通信过程中的统计信息;

WinPcap 的优点在于:1.于主机协议来发送和接收原始数据包,并且提供了一套标准的抓包接口,与libpcap 兼容,可使得原来许多UNIX 平台下的网络分析工具可以快速移植,便于开发各种网络分析工具。2.充分考虑了各种性能和效率的优化,包括对于NPF 内核层次上的过滤器支持。 3.支持内核态的统计模式,提供了发送数据包的能力。Winpcap 的缺点在于:不能阻塞、过滤或控制其他应用程序对数据报收发,它仅仅只是监听共享网络上传送的数据。因此,它不能用于QoS 调度程序或个人防火墙。

4.3 WinPcap的功能与新特性

WinPcap除了其强大的捕获数据包的功能以外,相比BSD Capturing Component还增加了发送数据包的功能:它是在Win32平台上第一个提供标准的一套发送数据包函数的库。需要注意的是,WinPcap不具备产生数据包的能力,发送的数据包需要通过手工或者其它工具来构造。而且WinPcap还实现了统计模式的工作方式:它不需要把数据包传送到应用程序,避免了大量的数据包拷贝操作。当数据包还在NIC driver的存储器中时,统计模式就开始起作用,然后数据包被丢弃。统计模式是一种非常高效的、用来监测网络的方法,即使在高速的局域网等有大量数据包流动的网络环境中,它依然可工作得很好。

总  结

网络正以前所未有的速度进入人类社会,影响和改变着人们的生活方式、思想观念,对政治、经济军事等方面都产生了重大的影响,更是本世纪知识经济增长的基础和保障。因此保证网络系统稳定安全的运行,以促进实现质量的提高,从而保障整个Internet 的健康发展,有着重要的现实意义。局域网中的网络数据监听,是实现网络安全的必要技术,它的研究和发展有利于网络管理、网络故障排除以及网络入侵检测系统的进一步发展。因而它未来的发展将在局域网中发挥着举足轻重的作用,对于维护整个网络的安全和性能稳定有着直接的影

响。网络架构的进一步复杂和庞大,网络黑客入侵程序无孔不入,时刻危及到处于网络中的各台主机。所以对于网络数据监听技术的深入研究可以使我们在复杂的网络环境下对于出现的情况有很清楚地认识,对于保证网络稳定、网络安全有着重要的意义。

致  谢

本毕业设计从网络监听的建设思想、目标、可以选用的网络技术以及网络设备的介绍和选择等多方面进行论述,在此之前我们所学的都是一些关于网络方面的理论知识,很少用于实践中去,通过此次对该网络监听的规划,是对网络理论知识的又一次系统的学习,也是一次更完整的学习。在设计期间我学到了很多实际应用的知识,。在以后的规划中以建立网络监听教学,办公为目标,从经济性、实用性、扩展性的原则来设计网络。整个规划基本做到量体设计,并且对以后的网络扩展也有较强的扩展性。通过这次网络规划,丰富了我在网络方面的知识,使我遇到了很多网络方面深层次的问题。

参考文献

[1]王宇,张宁,网络原理分析与实现[J],计算机应用研究,2003

[2]梁理,黄樟钦,侯义斌.网络信息侦听系统的研究与实现[J],计算机工程与应用,2002

[3]喻飞,朱淼良.以太网中的网络监听原理与检测[J].应用技术,2004

[4]庄春兴,彭奇志.基于Winpcap的网络嗅探程序设计[J].计算机与现代化,2002

[5]唐正军,刘代志.网络嗅探器Sniffer软件源代码浅析(2)[J].计算机工程,2002下载本文

显示全文
专题