局域网监听软件的设计与实现.docx
- 文档编号:24233167
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:47
- 大小:888.53KB
局域网监听软件的设计与实现.docx
《局域网监听软件的设计与实现.docx》由会员分享,可在线阅读,更多相关《局域网监听软件的设计与实现.docx(47页珍藏版)》请在冰豆网上搜索。
局域网监听软件的设计与实现
毕业设计(论文)
设计(论文)题目:
局域网监听软件的设计与实现
学院名称:
电子与信息工程学院
专业:
计算机科学与技术
班级:
10计科
(2)
姓名:
XXXX学号XXXXXXXX
指导教师:
XXXX职称教授
定稿日期:
2014年4月30日
局域网监听软件的设计与实现
摘要
互联网给我们的社会和个人带来了太多的便利和益处。
社会运作包括公共设施及其服务、政府运作和个人生活,已经越来越离不开电脑和互联网了。
这使得互联网安全这一潜在威胁迅速、悄然但又爆炸式地产生了。
公民个人的隐私、通讯和表达自由受到直接冲击。
从邮件、电话到电子文档和其他资料,乃至行踪、消费记录等,我们似乎可以变成透明。
最近沸沸扬扬的棱镜门和Heartbleed漏洞更是为世人敲响了网络安全的警钟。
对局域网内数据监听系统的研究,对于维护网络的稳定性和解决网络安全问题有着重要的意义,它可以用来帮助诊断网络中的路由设备,其他的网络连接设备,查看网络上数据报的传送情况,利于网络管理员的管理与维护。
本局域网监听软件主要采用WinPCap开发工具和C++语言在VisualStudio2008编译器下进行开发。
软件实现了对局域网内的数据进行捕获以及过滤,并分析出每一协议层的传输数据的主要字段和内容。
之后再将其显示,同时进行动态更新。
经过长时间的使用,证明该软件运行可靠稳定,捕获数据准确,易于使用。
关键词:
互联网安全,局域网监听,WinPCap,多协议分析
DESIGNANDIMPLEMENTATIONOF
LANMONITORINGSOFTWARE
ABSTRACT
Internethasbroughtmuchconvenienceandbenefitstooureverydaylife.Socialfunctioning,includingpublicfacilitiesandservices,governmentoperationsandpersonallifehasbecomeincreasinglydependentoncomputersandtheInternet.ThismakesthepotentialthreattoInternetsecurityquickly,quietlybutexplosivelygenerated.Theprivacyofindividualcitizens,freedomofcommunicationandexpressiondirectimpact.Frome-mail,telephonetoelectronicdocumentsandotherinformation,aswellasthewhereaboutsofconsumerrecords,itseemsthatwecanbecometransparent.RecentuproartheUSsurveillanceprogramPRISMandHeartbleedloopholeisfortheworldsoundedthealarmfornetworksecurity.ResearchondatamonitoringsysteminLAN,playsanimportantroleinmaintainingthestabilityofthenetworkandsolvetheproblemofnetworksecurity,itcanbeusedtohelpdiagnoseroutingequipmentinthenetwork,theothernetworkconnectiondevice,checkthetransmissionofthedataonthenetwork,managementandmaintenancetothenetworkadministrator.
ThisLANmonitoringsoftwaredevelopedwithWinPcap,usingtheC++languagecompilerunderVisualStudio2008.Thissoftwareismainlyrealizesinmonitoringthenetwork,dataanalyzesandanalyzethemainfielddataforeachprotocollayer.Afterthat,itshowswithcarriesonthedynamicrenewal.Afteralongperiodofuse,thesoftwareisreliableandstable,alsoabletoaccuratelycapturedataandeasytouse.
KeyWords:
internetsecurity,lanmonitoring,winpcap,multi-protocolanalysis
绪论
研究目的和意义
随着计算机技术的发展,网络与我们的生活紧密相连,甚至已经成为生活中的一部分,然而越来越多的网络攻击正在一步步侵犯着我们的网络安全。
黑客们很容易截获在局域网中传输的数据包,通过对数据包进行分析,就能得到数据包内的重要信息。
通过这种方式,我们使用的密码,发送的邮件等私密信息无疑就暴露在别人面前,给个人隐私等信息带来很大的安全威胁!
当然,我们也可以利用网络监听技术,获取黑客入侵的信息,甚至可以提前做好预防工作,这样对保护我们的信息安全无疑是一个获得了巨大的先机。
因此,了解网络监听的实现原理就显得尤为重要[]。
网络监听是信息安全领域内一项非常重要和使用的技术,他的起源是网络管理员为了诊断网络故障的需要,而监听网络中传输的数据信息。
在网络管理和维护中,网络管理和维护人员常常利用网络监听技术监控网络当前的信息状况,网络流量,进行网络访问统计分析等等。
除此之外,网络监听还可以发现网络中存在的安全隐患,及时采取相应措施,不让黑客有机可乘。
但在现实生活中,网络监听技术往往能在黑客手中发挥更大的作用,它们利用网络监听技术窃取用户的私密资料。
对于普通用户来说,被监听也许只是泄露个人隐私资料;而对于金融机构等资料敏感用户,恶意的网络监听更会带来难以弥补的金钱和信用损失。
综上所述,对于局域网数据监听系统的研究,有利于维护计算机网络安全。
对于网络管理者来说,局域网监听可以识别网络中的路由设备,查看局域网中传输的数据包,统计网络的流量,并可以侦测到非法的入侵,找出网络中潜在的问题等。
同时,管理员还可以利用网络监听软件解决一些网络故障,比如网络延时,丢包等问题。
如果不凭借监听软件,就无法准确的知道问题出在何处。
在大型的网络中,它的存在对系统管理员是非常重要的,凭借从局域网监听软件获取的信息,系统管理员可以了解网络中出现的问题,给出相应的解决方法,这给网络环境的管理与维护提供了非常宝贵的信息。
1.1局域网监听技术的发展
1.1.1局域网监听技术原理
局域网监听的基本原理是数据在局域网环境下进行传输时,包含物理地址的帧数据能送达到线路上的每一台主机。
当数据到达一台主机的网卡时,在正常情况下,网卡读取数据帧,并进行检查,如果数据帧中所包含的物理地址和本机的物理地址或者广播地址相同,则将该数据帧交由IP层进行处理,否则就将该数据帧丢弃。
当主机将该网卡置于混杂模式时,所有的数据帧都将交由IP层进行处理,并不会发生因物理地址不符而将该数据帧丢弃的情况。
也就是说,在局域网环境下同一根线缆上传输的所有数据都会被该主机接收到,进而可以将所有接收到的数据进行分析,从而得出用户所需要的数据[][]。
局域网监听的实现方法
要在局域网中监听,就需要主机工作在监听模式下,需要向网络接口发出I/O控制命令,将其设置成监听模式。
在Unix系统中,需要超级用户权限来发送命令。
但在Windows系统中,就没这个限制。
这种工作并不复杂,目前有太多的工具软件可以做到这一点,在很多黑客网站或者从事网络安全管理的网站都能找到。
在Unix环境下,监听工具非常多,如Sniffit、Snoop、Dsniff等都是常见的,他们都免费发布源代码,可以进行研究。
而在Windows环境下,常用的网络监听工具当然是著名的Snifferpro了,实际上很多人都是用它在Windows环境下抓包来分析[]。
(1)Sniffit:
Sniffit可以运行在Solaris、SGI和Linux等平台上,是由LawrenceBerkeleyLaboratory开发的一个免费的网络监听软件。
举例说明:
#Sniffit-a-p21-txxx.xxx.xxx.xxx
监听流向机器xxx.xxx.xxx.xxx的21端口(FTP)的信息,并以ASCII显示[]。
(2)Snifferpro:
通过对用监听工具捕获的数据帧进行分析,可以很容易的发现敏感信息和重要信息。
例如,在使用Snifferpro对局域网进行一段时间的监听后,分析所得的数据,就能直接看到一些在监听期间该网用户名和口令,都以明码显示,由此也可以看到局域网监听技术如果用于不正当的目的会有多大的危害[]。
网络传输技术概述
网络传输模型
计算机网络采用两种传输模型进行传输:
协议模型和参数模型。
协议模型提供了与特定协议族结构精确匹配的模型。
TCP/IP模型描述了TCP/IP协议族中每个协议层实现的功能,因此属于协议模型。
参考模型为各类网络协议和分服务之间保持一致性提供了通用的参考,参考模型的主要用途是帮组人们更清晰地理解涉及的功能和过程。
开放式系统互联(OSI)模型是一种参考模型。
TCP/IP模型
TCP/IP是TransmissionControlProtocol/InternetProtocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。
TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。
协议采用了4层的层级结构,每一层都呼叫它的下一层所提a供的协议来完成自己的需求。
通俗而言:
TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。
而IP是给因特网的每一台电脑规定一个地址[]。
(1)网络接口层
物理层是定义物理介质的各种特性:
1、机械特性;
2、电子特性;
3、功能特性;
4、规程特性。
数据链路层是负责接收IP数据包并通过网络发送,或者从网络上接收物理帧,抽出IP数据包,交给IP层。
ARP是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址。
RARP是反向地址解析协议,通过MAC地址确定IP地址。
比如无盘工作站还有DHCP服务。
常见的接口层协议有:
Ethernet802.3、TokenRing802.5、X.25、Framerelay、HDLC、PPPATM等。
(2)网络层
负责相邻计算机之间的通信。
其功能包括三方面。
处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
处理输入数据报:
首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
处理路径、流控、拥塞等问题。
网络层包括:
IP(InternetProtocol)协议、ICMP(InternetControlMessageProtocol)
控制报文协议、ARP(AddressResolutionProtocol)地址转换协议、RARP(ReverseARP)反向地址转换协议。
IP是网络层的核心,通过路由选择将下一条IP封装后交给接口层。
IP数据报是无连接服务。
ICMP是网络层的补充,可以回送报文。
用来检测网络是否通畅。
Ping命令就是发送ICMP的echo包,通过回送的echorelay进行网络测试。
(3)传输层
提供应用程序间的通信。
其功能包括:
一、格式化信息流;二、提供可靠传输。
为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送,即耳熟能详的“三次握手”过程,从而提供可靠的数据传输。
传输层协议主要是:
传输控制协议TCP(TransmissionControlProtocol)和用户数据报协议UDP(UserDatagramprotocol)。
(4)应用层
向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。
远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。
TELNET会话提供了基于字符的虚拟终端。
文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。
应用层协议主要包括如下几个:
FTP、TELNET、DNS、SMTP、NFS、HTTP。
FTP(FileTransferProtocol)是文件传输协议,一般上传下载用FTP服务,数据端口是20H,控制端口是21H。
Telnet服务是用户远程登录服务,使用23H端口,使用明码传送,保密性差、简单方便。
DNS(DomainNameService)是域名解析服务,提供域名到IP地址之间的转换,使用端口53。
SMTP(SimpleMailTransferProtocol)是简单邮件传输协议,用来控制信件的发送、中转,使用端口25。
NFS(NetworkFileSystem)是网络文件系统,用于网络中不同主机间的文件共享。
HTTP(HypertextTransferProtocol)是超文本传输协议,用于实现互联网中的WWW服务,使用端口80[]。
OSI模型
OSI是OpenSystemInterconnect的缩写,意为开放式系统互联。
一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。
该体系结构标准定义了网络互连的七层框架。
主要如下:
(1)应用层(ApplicationLayer)
应用层是OSI参考模型的顶层,该层通过应用程序来完成用户的需求,是用户与网络的接口。
主要完成文件传输、收发电子邮件等功能。
(2)表示层(PresentationLayer)
早期的表示层用来转化字符数据的编码等显示相关功能。
现在由于应用层能完成一部分表示层功能,因此功能有所淡化。
(3)会话层(SessionLayer)
会话指的是用户与用户的连接。
会话层负责在两台计算机之间建立,管理和终止通信,就如同两台计算机之间的对话。
会话层因此而得名。
(4)传输层(TransportLayer)
传输层是整个OSI模型中最关键的一层,是模型中的中心层,充当心脏的作用。
在它之下的层级实现通信,而它之上的层级则对通信进行管理。
它负责数据传输和控制,提供端到端的数据控制。
传输层独立于物理网络运行。
另外它还负责数据重传任务。
(5)网络层(NetworkLayer)
网络层定义了通信的协议,它把逻辑地址转换成物理地址。
同时,网络层还提供选择路由功能,路由器的功能就在这一层实现。
它为传输层提供支持。
(6)数据链路层(DataLinkLayer)
数据链路层位于物理层与网络层之间。
在数据链路层上传输的数据为帧。
该层的目的是保证在节点之间传输数据帧的正确性。
(7)物理层(PhysicalLayer)
物理层是OSI参考模型的最底层。
顾名思义,它为数据传输建立物理连接。
完成通过物理线路在两个节点间传输比特流[]。
TCP/IP模型和OSI模型的关系
TCP/IP协议并不能够与OSI模型完全匹配,TCP/IP不是使用7层,而是使用4层,它通常也叫做Internet协议套件,它分为下面的4层:
1.网络接口层
2.互连网层
3.传输层
4.应用层
这4层的每一层对应于OSI模型的一层或者多个层。
表2-1TCP/IP协议簇和OSI对应层级比较
OSI层级
TCP/IP协议
功能
应用层
TFTP,HTTP,SNMP,FTP等
文件传输,电子邮件,文件服务等
表示层
无
数据格式化,代码转换,数据加密
会话层
无
解除或建立别的连接点联系
传输层
TCP,UDP
提供端对端的接口
网络层
IP,ICMP,OSPF,ARP等
为数据包选择路由
数据链路层
SLIP,PPP,MTU,RARP等
传输有地址的帧以及错误检测功能
物理层
ISO2110,IEEE802等
二进制形式在物理媒体上传输数据
TCP/IP协议簇对应OSI的相应层级,如下图所示:
图2-1TCP/IP协议簇对应OSI的相应层级
主要数据包结构
以太网帧格式
以太网帧是OSI参考模型数据链路层的封装。
它是对网络层传输的数据包加上帧头帧尾进行封装,从而构成了可被数据链路层识别的数据帧。
在以太网帧当中,帧头和帧尾的数据大小是固定不变的,但是因为被封装的数据包大小是可变的,所以以太网帧的大小是可变不固定的。
大小范围在64-1518字节之间。
以太网V2的MAC帧格式。
该标准由5个字段组成:
目的地址、源地址、类型、数据报、效验。
前导码:
包括同步码(用来使局域网中的所有节点同步,7字节长)和帧标志(帧的起始标志,1字节)两部分;
目的地址:
接收端的MAC地址,6字节长;
源地址:
发送端的MAC地址,6字节长;
类型:
数据包的类型(即上层协议的类型),2字节长;
数据:
被封装的数据包,46-1500字节长:
校验码:
错误检验,4字节长。
分析每一帧可以得到此数据包的源MAC地址和目的MAC地址,并且可以得到IP数据报的完整内容(如果是ARP协议则没有IP数据包)。
IP数据报的第4至7位是IP首部长度,该字段可以用来准确定位上层协议的起始位置。
第10字节是协议字段,指出该IP数据报携带的数据使用何种协议。
以太网头数据结构描述如下:
typedefstructethernet_header
{
u_chardstmac[6];//目标mac地址
u_charsrcmac[6];//源mac地址
u_shorteth_type;//以太网类型
}ethernet_header;[]
IP数据包格式
图2-2IP数据报首部的组成
表2-2IP数据包总体结构
数据包
IP首部
信息首部(如TCP、UDP首部)
数据
以太网V2标准的主要特点是通过类型域标识了封装在帧里的数据包所采用的协议,类型域是一个有效的指针,通过它,数据链路层就可以承载多个上层(网络层)协议。
但是,它的缺点是没有标识帧长度的字段。
根据前面的定义,数据包一般都从数据链路层获取,因此,本软件按照获取数据格式的先后,先处理链路层之上的数据帧,之后分别是网络层,传输层以及应用层上的数据。
在对数据链路层上的太网帧进行分析之后,我们就可以得到IP数据包。
IP数据包数据结构描述如下:
typedefstructip_header
{
u_charihl:
4;/*首部长度(4bits)*/
u_charver:
4;/*版本(4bits)*/
u_chartos;/*服务类型*/
u_shorttlen;/*总长度*/
u_shortidentification;/*标识*/
u_shortfo:
13;/*片偏移(13bits)*/
u_shortflags:
3;/*标志(3bits)*/
u_charttl;/*生存时间*/
u_charproto;/*协议*/
u_shortcrc;/*首部检验和*/
ip_addresssaddr;/*源地址*/
ip_addressdaddr;/*目标地址*/
u_intop_pad;/*可选+填充*/
}ip_header;
TCP数据报
图2-3TCP数据报的组成
源端口和目的端口字段——各占2字节。
端口是传输层与应用层的服务接口。
传输层的复用和分用功能都要通过端口才能实现。
序号字段——占4字节。
TCP连接中传送的数据流中的每一个字节都编上一个序号。
序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
数据偏移——占4bit,它指出TCP报文段的数据起始处距离CP报文段的起始处有多远。
“数据偏移”的单位不是字节而是32bit字(4字节为计算单位)。
保留字段——占6bit,保留为今后使用,但目前应置为0。
紧急比特URG——当URG=1时,表明紧急指针字段有效。
它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
确认比特ACK——只有当ACK=1时确认号字段才有效。
当ACK=0时,确认号无效。
复位比特RST(Reset)——当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
同步比特SYN——同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。
终止比特FIN——用来释放一个连接。
当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
窗口字段——占2字节。
窗口字段用来控制对方发送的数据量,单位为字节。
TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。
检验和——占2字节。
检验和字段检验的范围包括首部和数据这两部分。
在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。
紧急指针字段——占16bit。
紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。
选项字段——长度可变。
TCP首部可以有多达40字节的可选信息,用于把附加信息传递给终点,或用来对齐其它选项。
填充字段——这是为了使整个首部长度是4字节的整数倍。
TCP数据报的数据结构描述如下:
typedefstructtcp_header//20bytes:
default
{
u_shortsport;//源端口
u_shortdport;//目标端口
u_longseqno;//Sequenceno
u_longackno;//Ackno
u_charreserved_1:
4;//保留6位中的4位首部长度
u_charoffset:
4;//tcp头部长度
u_charflag:
6;//6位标志
u_charreserved_2:
2;//保留6位中的2位
u_shortwin;
u_shortchecksum;
u_shortuptr;
}tcp_header;
WinPCap简介
WinPCa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 局域网 监听 软件 设计 实现