欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    信息安全课程设计.docx

    • 资源ID:17796021       资源大小:42.52KB        全文页数:35页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    信息安全课程设计.docx

    1、信息安全课程设计 信息安全课程设计(论文)说明书题 目: 网络嗅探器的设计与实现 学 院: 专 业: 姓 名: 学 号: 指导教师: 2011年 月 日摘 要随着网络技术的飞速发展,以及越来越多的信息资源放在了网上,网络安全问题越来越被人们所重视,其安全性和可靠性也越发重要。嗅探技术作为网络安全攻防中最基础的技术,它既可以用于获取网络中传输的大量的敏感信息,又可以用来进行网络管理。但同时它又有另一方面的影响,即攻击者可以利用它来监听网络中的数据,达到非法获得信息的目的。因此对网络嗅探器的研究具有重要意义,分析其通过获取网络包得流向和内容等信息,从而进行网络安全分析和网络威胁应对。本课程设计是关

    2、于网络嗅探器的简单设计与实现,同时对网络嗅探技术进行了简要分析,研究了网络数据包的捕获机制,以VS2010为开发平台,使用Windows环境下的网络数据包捕获开发库WinPcap认真学习和掌握网络嗅探器工作原理,设计出一个嗅探器程序,使其实现网络层抓包,并对获得包的源和目的地址、端口、协议等进行分析及显示,实现简单的包嗅探器功能。 关键字:网络嗅探 数据包捕获 数据包分析 网络协议 WinPcap VS20101、引言.12、系统分析.23、程序设计与实现.44、问题分析及测试.95、结论.11参考文献.12附录(源程序).131、引 言1.1 开发背景随着网络技术的迅速发展,加速了全球信息化

    3、进程,各种重要数据在网上的传播日益普遍,使得网络安全问题越来越为人们所关注。网络嗅探器作为一种网络数据监听程序,在网络安全攻防方面扮演了很重要的角色,多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。嗅探器是一种常用的收集有用数据的方法,可以作为网络数据包的设备,如果把网络嗅探器放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。1.2 开发

    4、意义本次课程设计是基于VS的网络嗅探器的设计与实现,由于本人编程能力有限,只是对抓取到的本机在网络中的通信数据,比如说协议类型,源、目的地址和端口、数据包的大小等加以分析,而无法做到像Sniffer那种成熟的嗅探器所拥有的强大功能。作为网络技术人员来说,要想有效地利用它、防范它,就得深入地学习、分析网络嗅探技术。最为重要的是,对于网络嗅探器的设计与实现,使我对网络通信,数据传输和网络信息安全等有了切身的体会与融入,同时也是对大学三年来内容的学以致用,不断提高自我的一种有效途径。1.3 正文安排 作为论文的主要部分,本文正文的安排如下: 第一部分是系统分析,包括程序需求分析和技术分析。讨论用户需

    5、求,功能需求,性能需求,运行环境等因素,对嗅探工具开发的思想和过程作初步的分析和论证。并介绍出现网络嗅探器工具的原理和方法,以及本次设计中用到的Winpcap技术; 第二部分是功能设计,包括系统的设计与实现。详细介绍使用Winpcap开发程序的一般流程及相关功能函数,以及数据包捕获,分析,过滤等各个模块的具体实现。 第三部分是问题分析及解决,同时介绍测试环境及过程,作为课程设计的最后一部分,将严格地对网络嗅探器进行测试。第四部分总结这次课程设计的心得、谢辞以及列出参考文献。2、系统分析2.1 需求分析2.1.1 功能需求本程序主要实现了对流经网络的数据包进行捕获及分析,通过对网卡的选择,设置过

    6、滤规则,来制定对特定的协议进行解析,主要运用到套接字编程,WinPcap编程等技术,在程序上每一步都有详细的解释,很容易了解本嗅探程序的功能。 2.1.2 适用范围这个程序是面向用户的,简单易行,是对网络协议进行分析,只要电脑上有流经网络的数据包,通过本程序的执行,均可捕获该数据报,并对其内容进行分析,操作步骤简单,每一过程均有明显的提示信息。2.1.3基本思路该嗅探程序的总体架构划分为5部分,分别是监听网络适配器,选择网卡设备,设置过滤规则,捕获数据包,数据的分析及显示。良好的实现了嗅探器的一般功能。2.1.4使用环境 (1)、一台主机 (2)、操作系统(Windows XP)(3)、开发工

    7、具(VS2010,WinPcap)2.1.5可行性分析在日异月新的网络时代中,网络信息与安全一是其中重要的一环,网络嗅探更是网络攻防重基础的技术,用来监听网络数据,保障信息安全,这项技术有着广大的发展空间,其类的嗅探工具更是层出不穷,有着良好的发展前景及经济利益,而且操作运行时所需人员不是很多,这种工具的开发节省了大量的人力及物力,在广大市场中是被需求的,并且无论是生活中还是企业里都得到了广泛的应用,它所带来的经济效益是无可厚非的。2.2 技术分析2.2.1嗅探原理 嗅探器是一种常用的收集有用数据的方法,嗅探器是利用计算机的网络接口截获目的地为其它计算机的数据报文的一种工具。由于组网方式不同,

    8、嗅探器的工作原理也有所不同,总共可以分为三类:(1)基于网卡混杂模式的嗅探原理;(2)基于ARP欺骗的网络嗅探原理;(3)基于中间人攻击的嗅探原理。本次课程设计就是利用第一种方式来实现嗅探器的功能,从网卡原理上来说,在一个实际的系统中,网卡的主要功能就是接收和发送网络数据包,它根据网卡内的单片程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就接收后产生中断信号通知CPU,认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。而本次设计嗅探工具正是利用了这个特点,把网卡设置为“混杂模式”。网卡的混杂模式可以接受所有的网络数据

    9、包,无论其目的地址是否等于自己的地址,都一并接受。2.2.2捕获机制很多网络安全系统最首要的任务就是捕获网络上的数据信息,而网络数据包捕获技术就解决了这个问题。不同的网络有不同的捕获技术,不同的操作系统其捕获机理也有所不同。以太网采用了CSMA/CD技术,它使用了广播机制,所有与网络连接的机器都可以看到网络上传播的数据,操作系统提供的捕获机制主要有以下三种:(1)SOCK_PACKET类型套接口;(2)数据链路提供者接口(Data Link Provider Interface,DLPI);(3)伯克利数据包过滤器(Berkeley Packet Filter,BPF)。BPF主要由两部分组成

    10、:网络转发部分和数据包过滤部分。网络转发部分是从链路层中捕获数据包并把它们转发给数据包过滤部分,数据包过滤部分是从接收到的数据包中接受过滤规则决定的网络数据包,其他数据包就抛弃。捕获数据包和过滤数据包都是在操作系统内核中完成的,而且使用了数据缓存机制。从效率上来讲,BPF在三种机制中是性能最高的,而SOCK_PACKET是最弱的。在实际应用中,实现网络数据包捕获技术的代表是Libpcap。它是一个专业的跨平台的网络数据包捕获开发包。使用Libpcap可以很轻松地实现网络数据包的捕获功能,它的捕获机制就是BPF捕获机制。在Windows平台下有与Libpcap兼容的WinPcap开发包,它是专门

    11、针对Windows平台而开发的,本次程序的开发就是利用WinPcap库函数实现的。2.2.3 WinPcap 技术WinPcap(Windows Packet Capture)是Windows平台下的一个免费、公平的专业网络数据包捕获开发包。WinPcap的功能为:捕获数据包(主要功能)、流量统计功能、数据包发送功能。它包括三部分,即数据包捕获和过滤块NPF、较低层的网络编程接口packer.dll、较高层的编程接口wpcap.dll。使用该开发包可以提高应用效率,WinPcap充分考虑了各种性能和效率的优化,在内核层实现了数据包的捕获和过滤,这是由NPF来实现的,NPF是WinPcap的核心

    12、部分,它实现了内核的统计功能,对于设计网络流量的程序很有好处。体系结构调用如下: 图2.2.3:体系结构调用3、程序设计与实现本次课设的主要研究内容是利用套接字开发网络嗅探器的程序设计,设计要求完成对流经本地网卡的所有数据包的捕获,分析协议类型,并根据不同的协议类型对数据包进行了进一步的分析,包括分析数据包的IP,端口,协议类型等。3.1 主要流程3.2 总体规划首先要选择监听的网络适配器,再设置网络适配器为混杂模式,然后再设置过滤器,从而可以过滤使用特殊协议的数据包。当完成这些准备工作后,就可以对流经网络适配器的数据进行循环捕获了。捕获的同时,可以分析和显示数据,这可以通过调用相关函数实现。

    13、程序主要分为五个模块:获得网卡信息、数据包过滤、数据包捕获、数据包分析、数据显示。3.3 函数说明 (1)、pcap_findalldevs()是用来获得主机的网络设备列表,获取的网络设备就存储在参数alldevs中函数体:int pcap_findalldevs(pcap_if_t * alldevs,char * error_content)说明:指向pcap_if_t*类型的列表的指针的指针,char型指针,当打开列表错误时 返回错误信息。当不再需要网卡列表时,用pcap_freealldevs(pcap_if_t *) 释放空间。 (2)、pcap_open_live() 是用来打开网

    14、络设备列表,得到一个包抓取的描述符。函数体:pcap_t *pcap_open_live(const char * device, int snaplen, int promise, int to_ms, char ebuf *)说明:device表示要捕获数据包的网络设备的名称,由函数pcap_findalldevs()得 到的; Snaplen表示要捕获的数据包的最大可抓取的最大字节; Promise表示捕获数据包是否设为混杂模式,若值为1 则表明设为混杂模式; to_ms表示捕获的时间间隔。(3)、pcap_lookupnet() 用来监测网卡所在网络的网络地址和子网掩码。函数体:int

    15、 pcap_lookupnet(char *device,bpf_u_int32 *netp,bpf_u_int32 *maskp,char *errbuf)说明:bpf_u_int32 *netp 存放网络地址 bpf_u_int32 *maskp 存放子网掩码(4)、pcap_compile()如果要获得特定的网络数据包,就需要使用过滤规则,过滤规则其实就是一个字符串,在Winpcap 中使用此函数用来编译表达式。函数体:int pcap_compile(pcap_t *p,struct bpf_program *fp,char *str,int optimize,bpf_u_int32

    16、netmask)说明:pcap_t *p 打开的设备接口句柄 struct bpf_program *fp 存储被编译过的过滤器版本的地址 Char *str 表达式本身 int optimize 是否被优化的整形量(0-false,1-true)(5)、pcap_setfilter()使用过滤器用于设定一个过滤程序。函数体:int pcap_setfilter(pcap_t *p,struct bpf_program *fp)(6)、pcap_loop()设置获取到满足过滤规则后,数据包处理的回调函数。函数体:int pcap_loop(pcap_t *p,int cnt,pcap_hand

    17、ler callback,u_char *user)说明:int cnt 捕获数据包的个数 pcap_handler callback 回调函数的名称 u_char *user 送往回调函数的参数(7)、pcap_close()关闭pcap_open_live()获取的包捕捉句柄,释放相关的资源。关闭相关的文件并释放对应资源。函数体:void pcap_close(pcap_t *p()(8)、void ethernet_protocol_packet_callback()回调函数的原型。函数体:void ethernet_protocol_packet_callback(u_char *ar

    18、gument, const struct pcap_pkthdr *packet_header, const u_char *packet_content)说明:u_char *argument对应于pcap_loop()的最后一个参数 const struct pcap_pkthdr *packet_header参数类型在pcap.h中包含,该结 构体包含数据包被嗅探的时间、大小等信息。(9)、struct protocol_header用于定义ETHERNET、IP、TCP、UDP、ARP、ICMP等协议的头部信息。3.4 分块设计3.4.1获得网卡列表信息首先调用WinPcap 的pca

    19、p_findalledvs () 函数获取电脑中所有可用的网络适配器列表,并显示在控制台上,供操作人员选择不同的网络适配器进行测试。这个函数返回一个pcap_if 结构的连表,连表的每项内容都含有网卡信息,尤其是字段名字namea和含有名字的描述description 以及有关驱动器的易读信息。同样,WinPcap 也提供其他的高级信息,特别是pcap_findalldevs () 这个函数返回的每个pcap_if 结构体都包含一个pcap_addr 结构的列表, 它包含:一个地址列表,一个掩码列表,一个广播地址列表和一个目的地址列表。实现代码:pcap_if_t *alldevs; pcap

    20、_if_t *d; pcap_t *pcap_handle;/* Winpcap句柄 */ char error_contentPCAP_ERRBUF_SIZE;/* error_content错误缓冲区,即effbuf,存储错误信息 */int i=0; /i指的是网卡的序列号/* 取得列表 */ /pcap_findalldevs()是用来获得主机的网络设备列表,获取的网络设备就存储在参数alldevs中if (pcap_findalldevs(&alldevs, error_content) = -1) fprintf(stderr,pcap_findalldevs发生错误: %sn,

    21、error_content); exit(1); / 输出网卡信息for(d=alldevs; d; d=d-next) /next表示指向下一个网络设备 printf(%d. 网卡名: %s n, +i, d-name); if (d-description) printf( 网卡描述: %s n, d-description); else printf( (No description available)n); if(i=0) printf(n没有找到任何网卡,请确认Winpcap已经安装.n); return ;3.4.2数据包捕获当操作人员选择了可用的适配器后, 可调用WinPcap

    22、 的pcap_open_live()函数对所选网络适配器进行配置,把网络适配器配置成混杂模式,从而可以捕获到流过网络适配器的数据。此函数还配置了每次捕获数据的长度和读取时间及错误信息的缓存。在设置好过滤条件后就可对流经网络适配器的数据进行捕获。在此系统中WinPcap 利用pcap_loop()函数来实现循环捕获。捕获后,利用指针指向捕获到的数据,如果没有数据,则返回提示信息。并根据返回值判断是什么原因造成的。实现代码: int inum; /网卡的编号bpf_u_int32 net_mask;/* 掩码 */bpf_u_int32 net_ip; /网络地址printf(nn请输入网卡编号

    23、(1-%d):,i);scanf(%d, &inum);/ 检测用户是否指定了有效网卡if(inum i) printf(n网卡编号超出范围.n); pcap_freealldevs(alldevs); /* 释放列表 */ return ; for(d=alldevs, i=0; inext, i+);/* 跳转到选中的适配器 */pcap_lookupnet(d-name,&net_ip,&net_mask,error_content);/获得网络地址和掩码pcap_handle = pcap_open_live(d-name, BUFSIZ, 1, 1, error_content);/

    24、打开网路接口 /*pcap_loop()表示捕获多个数据包,可以总是循环捕获数据包,ethernet_protocol_packet_callback回调函数*/* 注册回调函数,循环捕获网络数据包,利用回调函数来处理每个数据包 */pcap_loop(pcap_handle, - 1, ethernet_protocol_packet_callback, NULL);3.4.3数据包过滤 数据包的过滤,是通过设置过滤条件完成的。在WinPcap 中有pcap_compile()和pcap_setfilter()两个函数,通过其参数的设置可以完成数据包的过滤。在过滤之前,要得到网络链路层的类型

    25、,是为了在分析数据时确定数据帧的类型。在过滤之前,要得到网络链路层的类型,是为了在分析数据时确定数据帧的类型, 以便于地位IP 首部开始的地方, 此功能是用pcap_datalink()实现的。实现代码:int protocol_type; / 0-ip 1-arp 2-tcp 3-udp 4-icmpstruct bpf_program bpf_filter;/* BPF过滤规则 */char packet_filter20;/* 过滤规则字符串 */ 选择过滤包类型printf(n请选择监听的数据包协议类型(0-ip 1-arp 2-tcp 3-udp 4-icmp) : ); scanf

    26、(%d,&protocol_type); switch(protocol_type) case 0: strcpy(packet_filter,ip); break; case 1: strcpy(packet_filter,arp); break; case 2: strcpy(packet_filter,ip and tcp); break; case 3: strcpy(packet_filter,ip and udp); break; case 4: strcpy(packet_filter,ip and icmp); break; default: break; /* pcap_co

    27、mpile()编译BPF过滤规则 */ pcap_compile(pcap_handle, &bpf_filter,packet_filter, 0, net_ip); /* pcap_setfilter设置过滤规则 */ pcap_setfilter(pcap_handle, &bpf_filter);if (pcap_datalink(pcap_handle) != DLT_EN10MB) return ;3.4.4数据包分析 当捕获到数据时,对数据要进行分析显示。本程序中捕获到的数据是立即进行分析显示。根据链路层帧的类型,可知道数据帧头部的结构。有网络构架可以知道,数据在发送或接收之前都

    28、要对数据进行处理, 即对数据进行封装,正中结构可以清晰地知道所封装的上层协议是哪种类型的。用户在程序中调用的pcap_loop()函数可以进行数据包的捕获,而每一个数据包到达时该函数会调用pcap_handler()函数进行数据包处理,返回一个指向捕获器头部和一个指向帧数据的指针(包含协议头)。图3.4.4:上层封装协议4、问题分析及测试通过对整体程序的设计、程序代码的编写,最终会在调试的时候出现很多的问题,有的是细节问题,如引用错误、语法不明、丢失分号、声明错误,有的问题是程序设计思路本身不够完善,或者代码出现了错误导致不能运行,需要通过不断的调试和改正,从而使程序能正确的按照 要求运行。在

    29、反复的调试中,可以使我们认识到作为一个程序员对程序编写的严谨性,养成严于律己的好习惯。4.1问题分析 在本程序的设计过程中,遇到较多的困难,主要是上网查看相关的协议,参详WinPcap的开发手册及其库函数,查找一些常见问题的解决方法,以下陈述几种常见的错误:(1)、安装问题。调试前,必须在VS下的程序工程属性下的C+目录下的包含目录include和库目录lib下分别加入WinPcap的include和lib目录;在C+下的预编译头中加入WPCAP;HAVE_REMOTE;选项;在链接目录下的命令行选项中添加wpcap.lib ws2_32.lib库文件。之后引入pcap.h头文件后即可调试。有时候程序调试后,仍显示不能找到pcap.h头文件,首先要先检查上述选项是否正确添加,若正确,仍有错误提示,则可能是其他的安装问题,上网搜查后,其解决方法是将WinPcap中的wpcap.lib和packet.lib添加到VS2010-VS-lib目录下,即可解决。对于不熟悉此软件的操作人员尤其要注意这种安装问题,有时候一个很小的错误就导致程序无法运行。(2)、程序设计问题。在本设计这个程序之前,由于没有过多接触,所以到图书馆寻找资料,从上面的编程实例解析中,确定了本程序的设计思路,由于整体框架不是很清晰,所以到


    注意事项

    本文(信息安全课程设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开