基于Windows平台的个人防火墙设计.doc

上传人:b****1 文档编号:236147 上传时间:2022-10-07 格式:DOC 页数:30 大小:282.50KB
下载 相关 举报
基于Windows平台的个人防火墙设计.doc_第1页
第1页 / 共30页
基于Windows平台的个人防火墙设计.doc_第2页
第2页 / 共30页
基于Windows平台的个人防火墙设计.doc_第3页
第3页 / 共30页
基于Windows平台的个人防火墙设计.doc_第4页
第4页 / 共30页
基于Windows平台的个人防火墙设计.doc_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

基于Windows平台的个人防火墙设计.doc

《基于Windows平台的个人防火墙设计.doc》由会员分享,可在线阅读,更多相关《基于Windows平台的个人防火墙设计.doc(30页珍藏版)》请在冰豆网上搜索。

基于Windows平台的个人防火墙设计.doc

分类号:

TP311.1UDC:

D10621-408-(2007)5914-0

密级:

公开编号:

2003032050

成都信息工程学院

学位论文

基于Windows平台下的个人防火墙设计

论文作者姓名:

李涵

申请学位专业:

网络工程

申请学位类别:

工学学士

指导教师姓名(职称):

刘嘉勇(教授)

论文提交日期:

2007年6月5日

第1页共28页

基于Windows平台下的个人防火墙设计

摘要

网络安全问题长期威胁着网络终端用户,需要有有效的安全工具解决这个问题,个人防火墙就是其中的一种常用的安全工具。

为了实现个人防火墙软件,选用VC++6.0开发工具。

软件系统主要包括两项工程,一是核心模块设计,即DLL工程,实现了封包截获、管制动作和协议封包的解析任务,主要利用Winsock2SPI技术实现网络封包截获,之后利用控管规则对过往封包进行合法性检查和过滤,方法是首先利用Winsock2SPI技术建立winsock钩子,用它来截获winsock的调用,然后作出相应动作处理,动作处理需通过控管规则的检查后,确定socket连接是否允许通过,其中控管规则由用户层设置;二是用户模块设计,即EXE工程,实现用户界面和负责与DLL模块的通信,提供了3个主要界面,即封包监视、控管规则、控管规则设置。

最后通过测试和应用,基本解决了终端用户的网络连接安全问题。

关键词:

过滤;动态连接库;Winsock2SPI;网络封包;协议封包

TheDesignofthePersonalFirewallBasedonWindows

Abstract

Theterminalusersofnetworkarealwaysthreatenbytheproblemsofsecurityofnetwork,soweneedaeffectivetooltosolvethisproblem.Thepersonalfirewallisoneofthecommontoolsofsecurity.VC++isselectedtoimplementthepersonalfirewall.Thesystemhastwoprojectsmainly.OneoftheprojectsisthedesignofcoremodulewhichcanbecalledtheprojectofDLL.Thisprojectimplementsbehaviorsofmanagementandtheanalysisofpacketsofprotocols.ThetechnologyofWinsock2SPIisusedtocaptureofpakcetsofnetwork.Afterthat,thenthecheckingandfilteringofthepacketsaredoneusingtherulesofcontrolandmanagement.Atthebeginning,thecontrolrulesbuilduptheHookofwinsockwhichisusedtocapturethetranferofwinsock,andthenitimplementsrelativebehaviors.Thelinkofsocketwillbeornotgetthroughcheckingbytherulesofcontrolandmanagement.Therulesofcontrolandmanagementaresetbythelayerofuser.Then,weshoulddesignthemoduleofuserwhichcanbecalledtheprojectofexe.ItimplementstheinterfaceofuserandthemoduleofcommunicationwithDLL.Itprovidesthreemaininterfaces,theyarethewatchingoffilteringpacket,therulesofcontrolandmanagementandthesettingofrulesofcontrolandmanagement.Finally,ithassolvedtherequirementofsecurityofterminalusersafterthefinaltestingandapplication.

Keywords:

Filter;DLL;Winsock2SPI;Networkpackets;Protocolpackets

目录

论文总页数:

25页

1 引言 1

1.1 课题背景与意义 1

1.2 设计实现的主体功能 1

1.3 本课题的研究方法 1

2 WINSOCK2SPI编程技术 2

2.1 WINSOCK2SPI基础 2

2.2 传输服务提供者 2

3 开发平台与开发工具 2

4 系统设计与模块划分 3

4.1 本课题要实现的具体功能 3

4.2 程序工作流程图 3

4.3 模块划分 4

4.3.1 模块划分原则 4

4.3.2 模块结构 4

4.3.3 模块接口定义 5

4.4 控管规则文件结构设计 6

4.4.1 控管规则文件需要存储的内容 7

4.4.2 控管规则文件结构 8

4.5 界面设计 8

4.5.1 制定界面风格 8

4.5.2 界面设计文档 8

4.6 编码规则 12

5 核心功能的代码实现 12

5.1 DLL的封包截获 12

5.2 DLL的访问控管 16

5.2.1 对服务提供者函数做管制的函数 16

5.2.2 封包处理函数 17

5.2.3 管制函数 17

5.2.4 设置函数 20

6 测试 21

结论 22

参考文献 22

致谢 24

声明 25

1引言

1.1课题背景与意义

目前,随着网络向各个领域的扩展,网络安全的重要性日益被人们所认知。

ISP提供商担心网络被攻击,因为这种事情发生太频繁;使用网上交易的用户担心帐户密码被盗,因为窃取密码的工具比比皆是;软件公司担心源代码泄露,就连微软也没逃脱厄运。

种种现象都表明网络安全越来越重要,这种事情随时都可能发生在我们自己身上。

这也正是网络安全快速发展的原因。

所以防火墙和防病毒软件格外的重要,也被现在的人们强烈的需要。

1.2设计实现的主体功能

现在防火墙的花样与种类繁多,让人眼花缭乱。

但是防火墙的主要功能是防止外部网络的攻击以达到保护主机的目的。

我认为哪些未知的网络IP可能对主机产生攻击可能我们都不知道。

只要试验过才知道。

所以现在防火墙一般与防病毒软件配合使用。

这样才能安全的保护主机。

实现的主要的核心功能如下定义:

1.根据应用程序访问规则可对应用程序连网动作进行过滤;

2.对应用程序访问规则具有自学习功能;

3.可实时监控、监视网络活动。

1.3本课题的研究方法

本课题由两大模块构成,分别为DLL模块和EXE模块。

首先利用Winsock2SPI技术建立winsock钩子用来截获winsock调用从而拦截TCP/IP封包,并做相应处理。

然后设置控管规则访问控制,通过控管规则的检查认证,确定socket连接是否允许通过。

最后是TCP/IP的封包分析,利用TIP/IP的封包结构分析截获的数据,提取需要的数据。

这些封装在DLL里面。

EXE模块主要是用户页面的制作。

这里介绍与DLL通信的地方。

EXE中与DLL直接通信的小模块主要有两个。

一个是完成应用程序初始化的类CPropertyApp,它继承自CWinApp,是EXE的入口,其实里面封装了WinMain函数;另一个是主窗口模块CMainFrame,这个主窗口并不是EXE显示出来的那个属性页窗口,而是一个隐藏的窗口,它继承自CMrameWnd,是一个无模式窗口,他隐藏显示,充当接受机,用来接受DLL及其他模块发送过来的消息,然后对消息进行相应的处理。

每一个连网的程序连网之前都会建立一个Socket连接。

这时钩子程序就会起作用,把截获的底层服务进行“过滤”。

及先调用自定义的函数再转给下层服务提供者函数。

我就是在这一层实现封包过滤的。

把规则与功能写到这一层。

这一层的实现是本课题的核心。

2WINSOCK2SPI编程技术

Winsock2是WindowsSockets的2.0版本,在此之前的版本是1.1。

与1.1版本相比,2.0版本引入了一种新的叫做SPI的编程接口。

利用这种技术可以在Socket中插入一曾层,从而可以完成诸如扩展TCP/IP协议栈,网络安全控制等功能,所以这是一个非常强大而且有用的接口,下面介绍这种编程技术。

2.1WINSOCK2SPI基础

Winsock是为上层应用程序提供的一种标准网络接口,上层应用程序不用关心Winsock实现的细节,它为上层应用程序提供透明的服务。

Winsock2引入的一个新的功能就是打破服务提供者的透明,让开发者可以编写自己的服务提供者接口程序,即SPI程序。

SPI以动态链接库的形式存在,它工作在应用层,为上层API调用接口函数。

Winsock2是一个接口,不是一个协议。

作为接口,它只能发现和利用底层传输协议完成通信。

自己编写的SPI程序安装到系统之后,所有的Winsock请求都会发送到这个程序并由它完成网络调用。

由于系统提供的SPI已经可以完成网络传输功能,所以自己编写的SPI没有必要重新编写这部分功能。

一般可以直接调用系统函数完成网络传输,这样工作的效果就是“钩子程序。

Winsock2SPI除了有完成网络传输的传输服务提供者,还有提供友好名称服务的名字空间服务提供者。

传输服务提供者能够提供建立通信、传输数据、流量控制和错误控制等服务。

名字空间服务提供者把一个网络协议的地址属性和一个或多个用户友好名称关联起来,这样可以起用与协议无关的名字解析方案。

2.2传输服务提供者

传输服务提供者又分为基础服务提供者和分层服务提供者。

基础服务提供者和分层服务提供者都开放相同的SPI接口,所不同的是基础服务提供者位于提供者的最底层。

所以编写基础服务提供者和分层服务提供者基本相同。

但安装是却需要将基础服务提供者安装在服务提供者加载顺序链的最底端,而分层服务提供者则根据需要分布在顺序链的中间。

3开发平台与开发工具

开发平台如题说明,以Windows平台为主,重点讨论开发工具的选择。

根据不同的工程选择不同的开发工具,可以有效地提高工作效率。

不同的开发工具各有各的优点同时又各有各的不足,在开发中要扬长避短。

目前常用的Windows开发工具有VS5.0/6.0、VS.net(包括VB、BC、VFP、VJ、C#等一组开发工具)、delphi、C++Builder,JBuilder、PB等。

在这些开发工具里面,VFP和PB一般用来专门开发数据库系统,它们具有灵活的数据库接口。

VB和Delphi既可以方便地做出复杂的数据库管理系统,又能轻松地完成操作系统级的任务。

最优秀的是很容易做出漂亮

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

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

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