ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:192.22KB ,
资源ID:5248558      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5248558.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Windows平台的个人防火墙设计学位论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于Windows平台的个人防火墙设计学位论文.docx

1、基于Windows平台的个人防火墙设计学位论文 学位论文基于Windows平台下的个人防火墙设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即

2、:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权

3、书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名: 日期: 年 月 日导师签名: 日期: 年 月 日注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9

4、)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档

5、5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 及格 不及格2、学生掌握专业知识、技能的扎实程度 优 良 中 及格 不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 及格 不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 及格 不及格5、完成毕业论文(设计)期间的出勤情况 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、

6、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位: (盖章)年 月 日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中

7、 及格 不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位: (盖章)年 月 日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 及格 不及格2、对答辩问题的反应、理解、表达情况 优 良 中 及格 不及格3、学生答辩过程中的精神状态 优 良 中

8、及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格评定成绩: 优 良 中 及格 不及格教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日基于Windows平台下的个人防火墙设计摘 要网络安全问题长期

9、威胁着网络终端用户,需要有有效的安全工具解决这个问题,个人防火墙就是其中的一种常用的安全工具。为了实现个人防火墙软件,选用VC+ 6.0开发工具。软件系统主要包括两项工程,一是核心模块设计,即DLL工程,实现了封包截获、管制动作和协议封包的解析任务,主要利用Winsock 2 SPI技术实现网络封包截获,之后利用控管规则对过往封包进行合法性检查和过滤,方法是首先利用Winsock 2 SPI技术建立winsock钩子,用它来截获winsock的调用,然后作出相应动作处理,动作处理需通过控管规则的检查后,确定socket连接是否允许通过,其中控管规则由用户层设置;二是用户模块设计,即EXE工程,

10、实现用户界面和负责与DLL模块的通信,提供了3个主要界面,即封包监视、控管规则、控管规则设置。最后通过测试和应用,基本解决了终端用户的网络连接安全问题。关键词: 过滤;动态连接库;Winsock 2 SPI;网络封包;协议封包The Design of the Personal Firewall Based on WindowsAbstractThe terminal users of network are always threaten by the problems of security of network,so we need a effective tool to solve t

11、his problem.The personal firewall is one of the common tools of security. VC+ is selected to implement the personal firewall.The system has two projects mainly. One of the projects is the design of core module which can be called the project of DLL.This project implements behaviors of management and

12、 the analysis of packets of protocols. The technology of Winsock 2 SPI is used to capture of pakcets of network. After that, then the checking and filtering of the packets are done using the rules of control and management. At the beginning, the control rules build up the Hook of winsock which is us

13、ed to capture the tranfer of winsock,and then it implements relative behaviors.The link of socket will be or not get through checking by the rules of control and management. The rules of control and management are set by the layer of user.Then, we should design the module of user which can be called

14、 the project of exe. It implements the interface of user and the module of communication with DLL. It provides three main interfaces, they are the watching of filtering packet, the rules of control and management and the setting of rules of control and management. Finally, it has solved the requirem

15、ent of security of terminal users after the final testing and application.Key words: Filter ;DLL;Winsock 2 SPI;Network packets; Protocol packets论文总页数:25页1 引言1.1 课题背景与意义目前,随着网络向各个领域的扩展,网络安全的重要性日益被人们所认知。ISP提供商担心网络被攻击,因为这种事情发生太频繁;使用网上交易的用户担心帐户密码被盗,因为窃取密码的工具比比皆是;软件公司担心源代码泄露,就连微软也没逃脱厄运。种种现象都表明网络安全越来越重要,这

16、种事情随时都可能发生在我们自己身上。这也正是网络安全快速发展的原因。所以防火墙和防病毒软件格外的重要,也被现在的人们强烈的需要。1.2 设计实现的主体功能现在防火墙的花样与种类繁多,让人眼花缭乱。但是防火墙的主要功能是防止外部网络的攻击以达到保护主机的目的。我认为哪些未知的网络IP可能对主机产生攻击可能我们都不知道。只要试验过才知道。所以现在防火墙一般与防病毒软件配合使用。这样才能安全的保护主机。实现的主要的核心功能如下定义:1. 根据应用程序访问规则可对应用程序连网动作进行过滤;2. 对应用程序访问规则具有自学习功能;3. 可实时监控、监视网络活动。1.3 本课题的研究方法本课题由两大模块构

17、成,分别为DLL模块和EXE模块。首先利用Winsock 2 SPI技术建立winsock钩子用来截获winsock调用从而拦截TCP/IP封包,并做相应处理。然后设置控管规则访问控制,通过控管规则的检查认证,确定socket连接是否允许通过。最后是TCP/IP的封包分析,利用TIP/IP的封包结构分析截获的数据,提取需要的数据。这些封装在DLL里面。EXE模块主要是用户页面的制作。这里介绍与DLL通信的地方。EXE中与DLL直接通信的小模块主要有两个。一个是完成应用程序初始化的类CPropertyApp,它继承自CWinApp,是EXE的入口,其实里面封装了WinMain函数;另一个是主窗口

18、模块CMainFrame,这个主窗口并不是EXE显示出来的那个属性页窗口,而是一个隐藏的窗口,它继承自CMrameWnd,是一个无模式窗口,他隐藏显示,充当接受机,用来接受DLL及其他模块发送过来的消息,然后对消息进行相应的处理。每一个连网的程序连网之前都会建立一个Socket连接。这时钩子程序就会起作用,把截获的底层服务进行“过滤”。及先调用自定义的函数再转给下层服务提供者函数。我就是在这一层实现封包过滤的。把规则与功能写到这一层。这一层的实现是本课题的核心。2 Winsock 2 SPI编程技术Winsock 2是Windows Sockets的2.0版本,在此之前的版本是1.1。与1.1

19、版本相比,2.0版本引入了一种新的叫做SPI的编程接口。利用这种技术可以在Socket中插入一曾层,从而可以完成诸如扩展TCP/IP协议栈,网络安全控制等功能,所以这是一个非常强大而且有用的接口,下面介绍这种编程技术。2.1 Winsock 2 SPI基础Winsock是为上层应用程序提供的一种标准网络接口,上层应用程序不用关心Winsock实现的细节,它为上层应用程序提供透明的服务。Winsock 2 引入的一个新的功能就是打破服务提供者的透明,让开发者可以编写自己的服务提供者接口程序,即SPI程序。SPI以动态链接库的形式存在,它工作在应用层,为上层API调用接口函数。Winsock 2是

20、一个接口,不是一个协议。作为接口,它只能发现和利用底层传输协议完成通信。自己编写的SPI程序安装到系统之后,所有的Winsock请求都会发送到这个程序并由它完成网络调用。由于系统提供的SPI已经可以完成网络传输功能,所以自己编写的SPI没有必要重新编写这部分功能。一般可以直接调用系统函数完成网络传输,这样工作的效果就是“钩子程序。Winsock 2 SPI除了有完成网络传输的传输服务提供者,还有提供友好名称服务的名字空间服务提供者。传输服务提供者能够提供建立通信、传输数据、流量控制和错误控制等服务。名字空间服务提供者把一个网络协议的地址属性和一个或多个用户友好名称关联起来,这样可以起用与协议无

21、关的名字解析方案。2.2 传输服务提供者传输服务提供者又分为基础服务提供者和分层服务提供者。基础服务提供者和分层服务提供者都开放相同的SPI接口,所不同的是基础服务提供者位于提供者的最底层。所以编写基础服务提供者和分层服务提供者基本相同。但安装是却需要将基础服务提供者安装在服务提供者加载顺序链的最底端,而分层服务提供者则根据需要分布在顺序链的中间。3 开发平台与开发工具开发平台如题说明,以Windows平台为主,重点讨论开发工具的选择。根据不同的工程选择不同的开发工具,可以有效地提高工作效率。不同的开发工具各有各的优点同时又各有各的不足,在开发中要扬长避短。目前常用的Windows开发工具有V

22、S 5.0/6.0、VS.net(包括VB、BC、VFP、VJ、C#等一组开发工具)、delphi、C+ Builder,JBuilder、PB等。在这些开发工具里面,VFP和PB一般用来专门开发数据库系统,它们具有灵活的数据库接口。VB和Delphi既可以方便地做出复杂的数据库管理系统,又能轻松地完成操作系统级的任务。最优秀的是很容易做出漂亮的界面。VC和Borland C+着重于系统编程,它们开放接口较多,也最为灵活,而且编译出的程序体积较小,所以比较适合做系统工具类软件。缺点是短时间不容易掌握。其中Borland 使用的VCL类库是为Delphi准备的,并不是真正用C+实现的。VJ、Jb

23、uilder和Java语言主要面向互联网应用。最大的优势是跨平台。本课题为防火墙软件,较多的使用系统接口,而且界面简单。另外,防火墙主要传播渠道是互联网,这就要求体积应尽量的小,安装尽量方便。所以选择VC为开发工具。4 系统设计与模块划分4.1 本课题要实现的具体功能本设计实现的具体功能如下:1. 封包监视(1) 提供封包监视页面。(2) 提供清空监视列表,停止/开始监视及停止/开始滚动功能。2. 控管规则设置(1) 手工添加,删除及修改控管规则。(2) 自学习添加控管规则。(3) 控管规则中目的网络IP地址段的设置。(4) 提供控管规则设置页面。3. 封包过滤(1) DLL给出设置工作模式和

24、设置控管规则的接口函数。工作模式分为3种形式:放行所有,拒绝所有和过滤。(2) DLL根据工作模式和控管规则对过往封包进行过滤。(3) DLL将通过的网络封包通知EXE取走 。4.2 程序工作流程图Winsock 2 SPI是一个DLL程序,它工作在API和DRIVER之间,为上层应用程序提供服务。EXE与DLL构成软件的主题,也是编写软件的主要工作。流程图如图1所示。模块1.1用户界面接口图1防火墙工作流程图4.3 模块划分4.3.1 模块划分原则模块划分是系统分析中非常重要的一部分,下面是模块划分时的基本原则。1. 独立性:让模块直接内的关系减到最少。理想的状态就是模块之间没有关系,但这种

25、情况不符合现实。既然是同一个工程,模块之间自然都会存在一定的联系,只要想办法让模块之间的关系尽量简单就可以了。2. 接口简单化:让模块之间的接口尽量单纯、简单、易用。即让公用函数和公用变量尽量地少。3. 分层处理:吸取Windows操作系统对模块做分层处理的经验。建立一些中间模块,让两端的模块来完成相互调用的透明化。4. 容易合并:容易将划分的模块进行合并。例如将一个工程的各个功能模块分别设计成可执行文件,然后用一个总模块将这些模块关联起来组成一个工程。这种情况下,对模块独立性要求较高,模块之间几乎没有任何关系。5. 可测试性:尽量使每个模块都可以单独进行测试2。上面的5条是参考原则,既然是参

26、考原则就不会完全执行,完全按照一个教条去执行真的很困难。只要在做模块划分的时候能经常记起这些原则,然后稍加注意就OK了。另外,在这5条原则中,第一条是根本,能把这一条做好,下面的一些就容易实现了。在做模块划分时一定要始终贯穿独立性的思想。4.3.2 模块结构根据4.1节的功能定义和4.2节的工作流程图,需要对模块做进一步细化,得出更详细的模块结构。这些模块结构是编程的蓝本,在编写代码的过程中,就要以这些结构为指导。1. 模块1.1:用户界面,4.5节详细说明。2. 模块1.2:EXE的安装模块,。建立CXInstall类,C+源文件Install.h和Install.cpp。安装函数Insta

27、llProvider和卸载函数RemoveProvider3. 模块1.3:EXE读写控管规则模块,建立CAclFile类,C+源文件File.h和File.cpp。读控管规则文件ReadAcl,保存控管规则文件SaveAcl,增加一条控管规则AddAcl和删除一条控管规则DelAcl。4. 模块1.4:EXE设置DLL的控管规则模块,设置控管规则单独的函数,调用模块1.3读写控管规则模块得到控管规则数据,调用DLL的函数FloControl设置DLL的控管规则。5. 模块1.5:EXE设置DLL的工作模式,设置工作模式单独的函数,调用模块1.3读写控管规则模块得到控管规则数据,调用DLL的函

28、数FloControl设置DLL的工作模式。6. 模块2.1:DLL封包过滤模块,有分为3块,2.1.1一组Winsock 2SPI钩子函数C+源文件TcpipDog.h和TcpipDog.cpp;模块2.1.2根据控管规则判断是否可以通行的类CCheckAcl,C+源文件CheckAcl.h和CheckAcl.cpp;模块2.1.3对网络数据包进行分析的类CProtocolInfo,C+源文件ProtocolInfo.h和ProtocolInfo.cpp。 模块2.1.1:服务提供者函数模块,入口函数WSPSartup,发送询问消息到EXE,由EXE提供询问界面函数QueryAccess。截

29、获的8个服务提供者函数。设置工作模式、控管规则等设备工作接口函数FloControl。 模块2.1.2:访问控管模块,通过检查工作模式和控管规则得到是否放行的函数GerAccessInfo。 模块2.1.3:协议解析模块,得到协议信息处理函数GetProtocolInfo 7. 模块2.2:DLL更改控管规则模块,设置DLL控管规则数据SetAcl,设置控管规则m_Aclfile,设置工作模式m_iWorkMode。8. 模块2.3:DLL更改工作模式模块,设置DLL工作模式函数SetWorkMode。4.3.3 模块接口定义模块之间接口有3种方式:1. 函数接口函数接口是最常用而且独立性和封

30、装性最好的接口方式。函数之间通过参数传递进行模块之间的通信,处理过程保持相互独立,函数处理完成把处理结果返回到调用模块。如果每个函数都有单独的接口,那么,函数多了,接口也就多了,也就越来越复杂了。C+利用类的饿概念解决这个问题。类可以将一组函数和变量封装起来,这样就将许许多多的函数转化成一个对象的形式。外部模块使用这个类的实例来引用封装在里面的成员函数个变量。把功能相似、相关的函数分成一组,然后封装在一起,使接口间的关系清晰了很多。类的成员函数和成员变量有公有和私有之分。对于公有函数和变量,外部模块可以直接调用;对于私有函数和变量,外部模块则不能直接调用。利用这种特性,可以把一些只在类里面使用的函数定义为私有函数;把外部模块需要直接调用的函数定义为公有函数。类似于DLL的导出函数(Export),这样,模块之间的直接接触就会进一步减小,独立性更进一步增加。2. 全局变量接口全局变量接口是一种不提倡的方式。虽然它使用起来确实很过瘾。全局变量多了非常容易出问题。任何地方都可能会对全局变量进行赋值,变量的可控性大大降低,不知道什么时候变量的值就被莫名其妙地改掉了。当然,只要不被那些模块执行的先后顺序和循环语句弄昏头,还是可以使用全局变量的。虽然不提倡使用,但是有些地方使用全局变量与是不可避免的,而

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1