局域网安全管理系统客户端的设计与实现1.docx
- 文档编号:24519891
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:33
- 大小:355.53KB
局域网安全管理系统客户端的设计与实现1.docx
《局域网安全管理系统客户端的设计与实现1.docx》由会员分享,可在线阅读,更多相关《局域网安全管理系统客户端的设计与实现1.docx(33页珍藏版)》请在冰豆网上搜索。
局域网安全管理系统客户端的设计与实现1
电子工程学院
地方生学员毕业设计报告
报告题目:
局域网安全管理系统客户端的设计与实现
学员姓名:
张欢
学员队别:
四系二十七队
专业名称:
网络工程
指导教员:
夏阳
二〇一一年三月十二日
指导教员对毕业设计报告的评语:
指导教员:
日期:
年月日
室级答辩评语及成绩:
答辩组负责人:
日期:
年月日
专业系意见:
专业系领导:
日期:
年月日
院级答辩评语及成绩:
答辩组负责人:
日期:
年月日
摘要
随着网络技术的不断发展,社会进入了一个信息爆炸的时代,世界也由于网络而变小,人们通过各种技术和工具使交流突破了空间的限制。
在网络技术发展与普及的同时,网络安全问题引起了人们的广泛关注。
因此,研究并开发出一种能够有效地实时捕获网络信息的系统具有极其重要的意义。
基于这一情况,本论文针对网络数据的捕获与数据包信息分析等问题进行了深入的探讨和研究。
本论文逐一介绍了信息捕获中的相关技术及需求分析,在系统设计中对数据包捕获模块、解码数据包模块和数据库信息模块的实现进行了详细讲述。
通过运用WinPcap开发包实现网络数据包的捕获,利用TCP/IP协议的封装理论和自下而上的分析实现了数据包信息的分析,并且将分析出来的信息存入数据库。
另外,还能实现一些功能,如对指定的IP地址进行数据包的捕获,对捕获结果进行显示等。
关键词:
WinPcap;数据捕获;信息分析;局域网
Abstract
Asdevelopmentofthenetworkandtechnology,thesocietycomesintoaageofinformationexplosion.Duetothenetwork,theworldhasbecomesmaller,andpeopleuseallkindsoftechnologiesandtoolstobreakthroughthelimitationofcommunication.Thenetworksecurityhasbeenwidelyconcernedfollowedbythedevelopmentanduniversalofthenetworktechnology.Therefore,itisgreatsignificancethataneffectivereal-timeinterceptionnetworkinformationsystemisstudiedanddeveloped.Basedonthissituation,thisthesisin-depthstudiestocapturethenetworkdataandsoon.Besides,itintroducesrelativetechnologyandtheneedsinformationcapture.Therealizationofthedatacapturemodule,datapacketdecodedmoduleanddatabaseinformationmoduleisdisplayedfordetailinthesystem'sdesign.ThenetworkdatapacketiscapturedthroughWinPcap,somefunctionshasbeenrealized,suchasnetworkdatapacketcapture,datapacketsofinformationanalysisbyusingTCP/IPprotocolencapsulationtheoryandbottom-up,andwillanalyzetheinformationstoredinthedatabase.Simultaneously,thissoftwarewouldalsoincreasessomefunctions,suchasdatapacketcapturebytheIPaddress,maketheresultsandstatistics,displaytheresultsofdatapacketcaptureandsoon.
Keywords:
WinPcap;datacapture;informationanalysis;LAN
引言
1.1课题背景及意义
计算机网络的发展给计算机产业和整个人类的工作、生活方式带来了巨大的变化,特别是信息技术的发展使一个信息缺乏的时代进入了一个信息爆炸的时代,世界也由于Internet而变小。
人们通过各种技术,工具使得交流突破了空间的限制。
全球范围内的网络互联给人们的生活和工作带来了方便,人们正享受网络技术带给我们美好生活。
但同时某些不法分子利用网络的漏洞非法入侵他人的主机系统,有的利用网络盗取他人个人信息,如网上银行帐号密码等,对他人财产安全造成了重大威胁。
据有关资料统计我国每年通过计算网络进行违法行为以30%的速度上升。
面对计算机犯罪越来越多的趋势,及网络上日益泛滥的信息垃圾和污染情况,我国政府未雨绸缪,已经制定了关于互联网络使用的法律法规,网络安全问题已面临着重大挑战。
目前我国正在进行大规模的现代化经济建设,需要使用自己的网络和信息安全系统来保护自己的网络和信息系统,尤其是对于全国性大型计算机网络而言,必须将网络安全和信息安全放在非常重要的地位上,而从长远角度看,这只能依靠我们自己解决。
因此建立网络安全系统是我们现在迫切需求,这项工作对我们来说具有重大的政治和经济意义面对这种形式研究并开发出一种能方便有效的实时监视和捕获可疑网络信息的系统迫在眉睫。
随着信息化程度的提高,使我们从一个封闭的环境进入到一个开放的世界,但我们所担心和关心的问题便是网络安全问题,也就是内部网络安全和外部网络安全的问题。
本课题正是针对这种情况和需求,对实时数据捕获与网络信息监控提出系统设计方案,并对信息过滤和跟踪的方法和技术进行研究,这便是我的论文研究的意义与目的。
1.2本课题研究的相关技术及方法
网络数据捕获技术是获取信息的关键技术,它通过监听技术,过滤技术获取原始数据,根据TCP/IP分层理论进行层层拆解,提取相关协议中的信息。
本毕业设计主要通过使用Winpcap开发包,在VC++环境下编写出了一款简单的软件对数据包信息按TCP协议类型、UDP协议类型和特定IP地址进行分类捕获,捕获出所需要的敏感信息,并且将捕获出来的信息写入数据库。
1.3VisualC++6.0
VisualC++6.0是微软公司推出的开发Win32应用程序(Windows95/98/2000/XP/NT)的、面向对象的可视化集成工具。
它的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C++类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。
1.4Winpcap简介
Winpcap(windowspacketcapture)是Windows平台下一个免费,公共的网络访问系统。
开发Winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。
它提供了以下的各项功能:
(1)捕获原始数据报,包括在共享网络上各主机发送/接收的以及相互之间交换的数据报;
(2)在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉;
(3)在网络上发送原始的数据报;
(4)收集网络通信过程中的统计信息。
Winpcap的主要功能在于独立于主机协议(如TCP/IP)而发送和接收原始数据报。
也就是说,Winpcap不能阻塞、过滤或控制其他应用程序数据报的发收,它仅仅只是监听共享网络上传送的数据报。
Winpcap是Win32平台下的数据包捕获与网络分析架构,由三个模块构成:
NPF,packet.dll,wpcap.dll。
前一个工作在内核层,后两个工作在用户层。
第一个模块是内核部分NPF(NetgroupPacketFilter),在Win95/98中它是一个VXD(虚拟设备驱动程序文件)文件,在WinNT/Win2000下是一个SYS文件。
它的主要功能是过滤数据包,并把这些数据包原封不动地传给用户态模块。
当然也添加了一些系统特定的标志(比如时间戳管理)。
这个过程中包括了一些操作系统特有的代码。
第二个模块packet.dll用来在不同的Win32平台下提供一个通用的公共的包驱动接口。
事实上,不同版本的Windows平台在内核层模块和用户进程之间的接口不完全相同,packet.dll用于解决这些不同。
提供了一套系统独立的API(ApplicationProgrammingInterface应用编程接口),调用packet.dll的程序能够运行在不同版本的Windows平台上而无需重新编译。
packet.dll还有一些附加的功能。
它可执行一些低层操作:
如:
获得网卡名字,动态装载驱动,得到比如机器的网络掩码、硬件冲突等一些系统特定的信息。
第三个模块wpcap.dll是系统无关的,它提供了更高层、抽象的函数。
它包括了一些比如过滤器生成、用户级缓冲等其它的高层函数,增加了比如统计和包发送等更高级的特性。
因此程序员能处理两种类型的API:
一套原始函数集,包含在packet.dll中,直接与内核层调用匹配;另一套高层函数由wpcap.dll提供,便于用户调用,功能更强大。
程序员能随意使用wpcap.dll,但只能在受限的环境中直接使用packet.dll.
Packets
图1WINPCAP结构图
总的说来,Packet.dll直接映射了内核的调用。
Wpcap.dll提供了更加友好、功能更加强大的函数调用。
Winpcap的具体结构图1所示:
Winpcap是用NDIS(Windows的通信协议程序(比如TCP/IP)和网络设备驱动器之间通信的规范)的,将自己注册为一个协议处理驱动。
Wincap的使用非常方便,但是它有一个致命的缺陷就是只适用于共享式以太网络,对于交换式网络下的数据则无能为力。
经过测试,在使用交换机连接的局域网下,Wincap只能监听到本网段内的数据,而对于来自其他网段的数据则无法监听,除非你把probe接到交换机之前或者接到交换机的console口上,不过那样的弊端是显而易见的,所以,Winpcap的应用还是有局限性的。
Winpcap结构图如下:
图2NPFdevicedriver
基于信息捕获的相关理论基础
2.1TCP/IP协议
TCP/IP(TransferContrcol/InternetProtocol)传输控制协议/网际协议起源于60年代末美国政府资助的一个分组交换网络研究项目,到90年代已发展成为计算机之间最常应用的组网形式。
它是能够在网络中提供可靠的数据传输和无连接的数据报服务的一组协议。
提供可靠数据传输的协议称为传输控制协议TCP,提供网络寻址的协议称为网际协议IP,它只是TCP/IP协议族的其中的两种协议。
TCP/IP协议族是一组不同的协议组合在一起构成的协议族,它是一个真正的开放系统。
现已成为全球互联网中的基础。
基于TCP/IP协议的网络体系结构,TCP/IP协议分为四层如图3所示,每一层分别负责不同的通信功能。
应用层
Telnet、Ftp、Email等
传输层
TCP、UDP
网络层
IP、ICMP、IGMP
网络接口层
设备驱动程序及接口卡
图3TCP/TP协议族的四个层次
链路层:
有时也称作数据层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。
它们一起处理任何传输媒介的物理接口细节,它使用的协议为以太网协议。
网络层:
有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。
在TCP/IP协议族中,网络层协议包括IP(网际协议)、ICMP(因特网网间控制报文协议)以及IGMP(因特网组管理协议)。
传输层:
它主要为两台主机上的应用程序提供端到端的通信。
TCP/IP协议族中,有两个互不相同的传输协议:
UDP(用户数据报协议)、TCP(传输控制协议)。
TCP为两台主机提供高可靠性的数据通信。
它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等,由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。
UDP则为应用层提供一种非常简单的服务。
它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。
任何必需的可靠性必须由应用层来提供。
应用层:
它负责处理特定的应用程序细节。
对于TCP/IP协议族,它提供Telnet(远程登录协议)、FTP(文件传输协议)、SMTP(简单邮件传送协议)、POP3(邮件接受协议)、SNMP(简单网络管理协议)。
通常应用程序是一个用户进程,而下面的三层进程则是一般在内核中执行的。
应用层关心的是应用程序的细节,它不关心数据在网络中的传输。
下三层对应用程序一无所知,但却要处理所有的通信细节。
在TCP/IP协议族中,有很多协议。
TCP和UDP是两种最为著名的运输层协议,二者都使用IP作为网络层协议。
虽然TCP使用不可靠的IP服务,但它却提供一种可靠的运输层服务。
除了以上提到的协议,还有下面几个协议:
IPARP(地址解析协议)、RARP(逆向地址解析协议)、动态选路协议(RIP、OSPF、BGP、CIDR)、DNS(域名系统)、TFTP(简单文件传送协议)等。
图4为TCP/IP网络体系结构与上述各协议之间的关系模型。
图4TCP/IP协议族中不同层次的协议
从图的模型中可以看到,应用层的大多数应用程序通过TCP、UDP来访问网络层,或者通过ICMP来使用网络层,如Ping、TraceRoute等也可以使用IP直接访问网络层。
传输层中的TCP、UDP为应用层提供可靠的或不可靠网络传输的网络传输服务。
网络层的ICMP是IP协议的附属协议,IP协议用它与路由器之间交换错误报文或其它控制信息。
网络接口层的ARP、RARP是以太网和令牌环使用的特殊协议,用来转换IP层和网络接口层使用的地址。
2.2数据封装与分用过程
以用户用TCP协议传送数据为例,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。
然后逐个通过每一层直到被当作一串比特流送入网络。
其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息)。
TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCPsegment)。
IP传给网络接口层的数据单元称作IP数据报。
通过以太网传输的比特流称作帧(Frame)。
这就是通常说的数据的封装过程,如图5所示。
图5数据进入协议栈时的封装过程
当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。
每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。
这个过程称作分用(Demultiplexing),图6显示了该过程是如何发生的。
图6数据帧的分用过程
2.3IP协议
IP是TCP/IP协议族中最为核心的协议。
所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。
IP提供不可靠、无连接的数据报传送服务。
IP数据报的首部信息如图7:
图7IP数据报格式及首部中的各字段
IP各域的含义如下:
版本:
当前IP协议的版本号,本论文采用的版本号为4;
首部长度:
以32bit为单位的包头长度;
服务类型:
规定对本数据报的处理方式,比如优先权等;
总长:
以Byte为单位的整个IP数据报长度;
标识:
信源主机赋予每个IP数据报的唯一标识符号,用于控制分片及其重组;
标志和片偏移:
同样用于控制分片及其重组;
生存时间:
设置本数据报的最大生存时间,以秒为单位;
协议:
表示创建本IP数据报数据区数据的高层协议的类型,如TCP,UDP等;
头标校验和:
用于保证头标数据的完整性;
源IP地址和目的IP地址:
分别指发送本数据报的主机IP地址和接受本数据报的主机的IP地址;
选项:
用于控制和测试,是IP数据报中可选的部分,包含“源路径”、“路径记录”、“时间戳”等几种类型。
TCP协议是网络中应用最为广泛的协议,许多的应用层协议都是在建立在TCP协议之上的。
TCP首部的各字段如图8所示:
20字节
图8TCP数据在IP数据报中的封装
TCP协议头部信息如下:
源端口:
发送端TCP端口号。
目的端口:
接收端TCP端口号;
序号:
指出段中数据在发送端数据流中的位置;
确认号:
指出本机希望下一个接收的字节的序号;
头标长度:
以32bit为单位的段头标长度,是针对变长的“选项”域设计的;
码位:
指出段的目的与内容,不同的各码位置位有不同的含义;
窗口:
用于通告接收端接收缓冲区的大小;
校验和:
这是可选域,置0表示未选,全1表示校验和为伍
紧急指针:
当码位的URG置位时,指出紧急指针的序号。
UDP协议是英文UserDatagramProtocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。
包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。
UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。
UDP数据报各域的意义与TCP段中相应的域相同。
只有校验和有些不同,除UDP数据报本身外,它还覆盖一个附加的“伪头标”。
这个伪头标来自于IP报头,包括:
源IP地址、信宿IP地址、协议类型、UDP长度及填充域。
UDP首部的各字段图9所示:
图9UDP首部
需求分析
3.1功能需求
随着个人计算机和互联网的普及,越来越多的人开始使用网络这个媒介来发送,接收信息,计算机网络给人们生产和生活带来了巨大的便利。
但是由于网络是一个面向大众的开放系统,对数据信息的保密和系统的安全性考虑得并不完备,存在着许多的安全隐患。
而有的人,就利用这些隐患,通过网络来发送一些包含色情,反动等不良内容的信息,达到扰乱正常社会秩序的目的。
网络的安全形势日趋严峻。
因此,现在在Internet安全隐患中扮演重要角色之一的网络数据安全管理软件受到越来越大的关注。
本软件的设计就是为了达到基本的维护网络安全的作用,对网络上传输的数据进行捕获,然后从中得到所有的网络数据包,并对其进行简单的分析操作。
在网络入侵取证系统中,对网络上传送的数据包进行有效的监听即捕获包是目前取证的关键技术,只有进行高效的数据包捕获,网络管理员才能对所捕获的数据进行一系列的分析,从而进行可靠的网络安全管理。
IP是TCP/IP协议族中最为核心的协议。
所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。
这些数据类型中又以TCP和UDP两种数据类型为多数。
所以本软件需要设计出按TCP协议类型和按UDP协议类型来过滤网络中的数据。
同时本软件还还应当具有一种过滤功能,那就是当我们知道某个IP地址发送的数据包信息都是属于一些不良,反动等等内容的信息,那么,我们可以通过在软件上输出这台主机IP地址,来过滤从这台主机上发送的所有TCP和UDP协议类型的数据。
从而达到信息过滤的要求。
3.2性能要求
由于本设计是安装在个人电脑上,所以要求用户界面简洁,友好,方便使用和操作。
网络上数据包的捕获是入侵检测系统的基础,关键是要保证高速的安全管理和低的丢包率。
一方面,网络检测部分的数据源是网络上的数据包,需要经过捕获后方可以提交给分析系统;另一方面,捕获数据包效率的高低直接影响着网络探测部分的性能的好坏,如果发生丢包现象,则有可能丢掉的包就是攻击包。
在保证高速的安全管理和低的丢包率的同时,要还要求程序能有较强的稳定性。
一款好的信息过滤软件,都是将在一个长时间工作的环境中运行。
如果不能保证较强的稳定性的话,那么软件对信息过滤的效率和功能有很大的局限性,对数据信息过滤就是失败的。
那么这款软件就不会具备同其他同类似软件的竞争力,更不会有市场,那么它就注定成为一款失败的软件。
试想一下,假如,当用户使用这款软件时,软件占用了太多的系统资源而导致用户对电脑的其他操作都很难进行,那么,谁还会用这款软件呢?
所以,该软件还应该具备一种特点就是:
低的系统资源占用率。
局域网信息捕获器的设计
4.1功能概述
通过前面的叙述可以知道,这款软件具有的功能,那就是:
能够分别捕获局域网中的TCP协议类型数据,UDP协议类型数据和从某一特定的IP地址发送出来的TCP协议类型数据和UDP协议数据类型。
并且,将这些捕获出来的数据包的基本信息存入到数据库中,提供给网络管理员使用和进一步的分析。
系统流程图如下图:
图10系统流程图
本系统包括三个基本模块,分别是数据包捕获模块,数据分析模块和数据库模块。
其中数据包捕获模块的功能是:
利用Winpcap控件,通过网卡设备从网络中捕获数据包;数据分析模块的功能是:
主要实现数据的解析,从网络适配器中捕获到的数据的为原始数据(rawdata),这些原始数据为二进制格式,必须转化为能比较好明白的格式,这就要求将这些原始数据能按照网络数据传输的具体格式来保存,主要为了能较好的读懂相关的信息,以便使用者分析;数据库模块的功能是:
经过前两个模块处理后的数据,现在已经转化成了对我们有用的信息了,而这些信息不可能一直让他存放在内存中,那么就需要在数据库中建立相应的表,把这些信息存贮在这些数据库表的相应列名中,以便使用者处理、使用。
4.2系统功能模块的设计
数据包捕获模块
数据包捕获模块主要用Winpcap软件实现,模块的设计思想遵循Winpcap捕获数据包的流程,流程分三步:
查找设备,打开设备和捕获数据的函数。
利用WinPcap结构提供的wpcap.dll来开发实现数据包捕获程序。
流程图如下:
图11数据捕获模块流程图
这里给出其主要过程:
先确定要在其上进行监测的网络适配器,得到现有的网络适配器的列表和他们的描述,从而获得该NIC的相关信息。
if(pcap_findalldevs_ex(PCAP_SRC_IF_STRING,NULL,&alldevs,errbuf)==-1)
{
MessageBox("查找设备出错","提示");
return;
}
接下来打开所获得的网络适配器,其中pcap_open函数的参数1为上面获得的NIC名称,参数2定义了网络监测程序所捕捉的最大字节数。
参数3指示是否将网络适配器设为混杂模式,PCAP_OPENFLAG_PROMISCUOUS表示工作方式为混杂模式。
参数4为捕获时间限制,单位为毫秒。
参数5为错误信息缓存。
该函数负责按照用户指定参数和其它系统默认值初始化WinPcap,并返回会话句柄
//打开设备
adhandle=pcap_open(d->name,
65536,
PCAP_OPENFLAG_PROM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 局域网 安全管理 系统 客户端 设计 实现