TCPIP网络编程,上传下载客户服务端_第1页
TCPIP网络编程,上传下载客户服务端_第2页
TCPIP网络编程,上传下载客户服务端_第3页
TCPIP网络编程,上传下载客户服务端_第4页
TCPIP网络编程,上传下载客户服务端_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要FTP(FileTransferProtocal,文件传输协议)是Internet上最早提供的服务之一,它通过客户端和服务器端的FTP应用程序在Internet上实现远程文件传送,是Internet上实现资源共享的最方便、最基本的手段之一。FTP服务器广泛应用于我们的工作和生活之中,为了能更好的使用FTP服务器,也为了FTP服务器能适用于更广的人群,F可以方便地提供更安全,更稳定,更快速的文件传输服务。关键字: FTP服务器,信息安全,消息号,多线程ABSTRACTFTP (File Transfer Protocol, File Transfer Protocol) is one of

2、the first to provide the service on the Internet, it is through the client and FTP server for remote file transfer application on the Internet, is the sharing of resources on the Internet the most convenient, basic one of the means .At the same time to enable the FTP server to run more stabler, it n

3、eeds to own the guard ability attacktion initiatively in network. Under this background, this article elaborated the design and the realization about Secure FTP Server. Through increasing the information security in the application layer of the FTP server (for example, use encryption and decryption

4、to keep data secrecy, such as uses Hash Algorithm to make data integrity, or use digital signature to guarantees anti-denial nature of the data manipulation) so it can guarantee the data safe from the transmission to the reception,which can increase guard to the network attacktion (for instance, use

5、 news number and connection number to limit the resists flood attacks and so on,which including in replay attack) ,to guarantee the steadiness of FTP server; The use of multithreading mechanism can realize to prompt receive of the client side information and fast processing, in order to full use ser

6、ver hardware resources and guarantee highly effective running rate.This system conforms to the need in current time, and can be suitable to all situations and the crowd, may provide file transfer service conveniently ,safely, stably,and more faster.Key Words: FTP server,information security,message

7、id, multithreading目录TOC o 1-3 h z u HYPERLINK l _Toc420162544 4.2.2 FTP服务 PAGEREF _Toc420162544 h 13 HYPERLINK l _Toc420162545 4.2.3 FTP客服端 PAGEREF _Toc420162545 h 16 HYPERLINK l _Toc420162546 第5章系统设计 PAGEREF _Toc420162546 h 17 HYPERLINK l _Toc420162547 5.1 系统总体设计 PAGEREF _Toc420162547 h 17 HYPERLIN

8、K l _Toc420162548 5.1.1 架构设计 PAGEREF _Toc420162548 h 17 HYPERLINK l _Toc420162549 5.1.2 总体设计 PAGEREF _Toc420162549 h 18 HYPERLINK l _Toc420162550 5.2 系统详细设计 PAGEREF _Toc420162550 h 19 HYPERLINK l _Toc420162551 5.2.1套接字应用于网络通信 PAGEREF _Toc420162551 h 20 HYPERLINK l _Toc420162552 5.2.2 上传子模块设计 PAGEREF

9、 _Toc420162552 h 21 HYPERLINK l _Toc420162553 5.2.3 信息安全处理模块类结构 PAGEREF _Toc420162553 h 22 HYPERLINK l _Toc420162554 第6章数据库设计 PAGEREF _Toc420162554 h 25 HYPERLINK l _Toc420162555 6.1 数据库需求分析 PAGEREF _Toc420162555 h 25 HYPERLINK l _Toc420162556 6.2 数据库关系设计 PAGEREF _Toc420162556 h 25 HYPERLINK l _Toc4

10、20162557 6.3 数据库表概念设计 PAGEREF _Toc420162557 h 26 HYPERLINK l _Toc420162558 第7章系统实现 PAGEREF _Toc420162558 h 29 HYPERLINK l _Toc420162559 7.1开发平台 PAGEREF _Toc420162559 h 29 HYPERLINK l _Toc420162560 7.2模块实现 PAGEREF _Toc420162560 h 29 HYPERLINK l _Toc420162561 第8章测试运行维护 PAGEREF _Toc420162561 h 33 HYPER

11、LINK l _Toc420162562 第9章运行结果 PAGEREF _Toc420162562 h 36 HYPERLINK l _Toc420162563 第10章结束语 PAGEREF _Toc420162563 h 40 HYPERLINK l _Toc420162564 参考文献 PAGEREF _Toc420162564 h 42 HYPERLINK l _Toc420162565 致谢 PAGEREF _Toc420162565 h 43引言选题背景FTP服务基于客户/服务器模式。客户首先登录到服务器主机上,然后就可以象在本地计算机上拷贝文件一样,通过网络从服务器主机传送各种

12、类型的文件到本地计算机。这种从我这里有做好的论文,软件编程,答辩ppt,都是一次过,如果想要的可以直接联系qq676297015, 这个论文我已经打乱,但在安全性方面没有多大的发展,原因在于NWG没有把安全性作为FTP的必要组成部分加以考虑。该项目的愿景就是在现有的FTP技术基础上,为FTP注入信息安全的成分,包括保证通信的安全性,完整性,不可抵抗性等等,同时为了免于网络攻击,也为FTP增加了一些抵御网络攻击的措施。研究目标和意义FTP服务器为Internet上的网络用户或企业用户提供文件传输服务,因此FTP服务器的稳健运行非常重要。服务器的性能与数据(即文件)相关1。试想一个文件的上传下载遇

13、到破坏或遭受攻击,最小的损失就是损耗网络带宽,文件传输失败,更甚之可能导致重要数据丢失,机密信息泄露。这对于服务方或客户方都是绝对不允许的。今天的信息安全技术业已成熟,但在FTP上的应用却微乎其微,市场需要安全的FTP是不争的事实,甚至是刻不容缓,因此应该在当今成熟的信息安全技术之上,架构符合当今时代要求的FTP服务器。由于FTP功能众多,所以安全运行的机制和安全工作体系,在此基础上开发出安全FTP服务器软件,该软件将使用目前各种可靠的安全通信算法来保证通信的安全,将集成有效的反攻击技术来保证FTP服务器的安全可靠运行。明确上传和下载的工作机制,着眼于FTP现存的缺陷开发出既能方便用户上传下载

14、文件,又能保证通信安全,还能方便用户进行安全配置的安全FTP服务器。安全FTP服务器开发成功必将为网络资源的共享提供极大的方便。现在市场上使用的FTP服务器相对来说还是比较稳健的。其主要市场由Rob Beckers开发的Serv-U FTP Server占领。该软件在安全方面已经支持传输层SSL协议,是个人FTP服务器的首选,当然也有很多商业用户。但在普通传输层上构建应用层数据安全将更具有简单的应用平台,具有更大的市场范围。服务器和客户端的数据在传输前后(进入传输层前和离开传输层后)进行信息安全处理,保证在通道上传输的数据满足相应的安全要求。这样一方面比使用安全传输层具有更好的平台适应性和适用

15、性,也具有更大的灵活性,能够满足各类用户的实际需求。多线程机制,可以极大地提高FTP安全分析FTP已有三十多年的发展历史,在这不长的发展时期里,已经具有了一套完整的FTP标准,这FTP服务器集安全策略和防止不可抵赖性、防止重放攻击的一起的FTP服务器还没有。随着网络和信息安全的不断深入发展,FTP安全方面的问题显得非常重要。当今社会在,可用性。主要手段是通过加密,签名来实现。机密性是指保证信息不被非授权访问;完整性是指维护信息的一致性,保证信息不被非授权修改;抗否认性是唯一的固定的HASH值,通过原始消息和散列消息的比对可以确定数据是否被修改,从而实现数据的完整性,常用的散列算法有MD5,SH

16、A等;数据签名体制是保证消息抗否认性的措施,数字签名有基于私钥和公钥机制的两种机制,常用的数字签名方式,需要更高的会话处理能力。FTP与RFCRFC是Reques数据连接通道(data connection)。控制连接负责协商各种指定功能的命令,默认端口是21,数据连接负责传输数据,端口由控制连接协商指定。控制连接在会话开始时建立,会话结束时断开,数据连接在需要时由控制连接建立。控制连接在一个会话中只有一个,数据连接在会话中可以没有,也可以有多个。FTP连接模式:FTP连接模式是指FTP数据连接通道上数据的连接模式。FTP具有两种数据连接模式主动模式(PORT or ACTIVE)和被动模式(

17、PASV)。主动模式有时称“客户端管理”,由客户端开启一个端口,等待服务器来建立连接。被动模式由服务器开启一个端口,等待客户端向服务器建立连接。一般来讲,主动模式比被动模式更安全。FTP数据类型:FTP的RFC设计目标之一是通过设计简单易实现的协议来试图满足大型机、小型机、个人工作站、TAC等用户的需要,因此FTP支持多种数据类型,如ASCII编码,EBCDIC编码等。远程登录:远程登录(Remote Login)指用户通过Internet登录到远程FTP服务器上。Internet上远程登录的主要方式是Telnet,FTP在登录时使用的就是Telnet协议。Anonymous(匿名文件传输)能

18、够使用户与远程主机建立连接并以匿名身份操作远程主机上的文件。FTP服务器软件现在市场上具有多种FTP服务器端或客户端软件产品,这些产品都兼容RFC959最小实现,因此几于不败之地。设计思想研究思路随着信息安全技术的发展,信息安全越来越受到人们的关注。FTP服务器广泛应用于我们的工作和生活之中,为了能更好的使用FTP服务器,也为了FTP服务器能适用于更广的人群,F资源和保证高效的运行速度。该系统符合当前时代的需要,适用于几乎所有场合及人群,可以方便地提供更安全,更稳定,更快速的文件传输服务。FTP用于管理计算机之间的文件传输,在因特网发展的早期时代用FTP传输文件约占整个因特网通信量的三分之一,

19、只是到了1995年,WWW的通信量才首次超过了FTP3。在今天,WWW仍然占据小数据传输的主要市场份额,但对于相对较大的数据的传输FTP的地位不可动摇。该安全FTP服务器是基于RFC959开发的一个通用FTP服务器,同时它集成了信息安全技术:一方面按实际要求可以对数据进行保密性、完整性、抗否认性等方面的处理,另一方面为了抵抗网络攻击,使用了消息号、连接数控制、IP控制策略等技术。主要贡献如下:1、集成信息安全技术:使用加密解密对数据进行保密性保护4,使用散列值对数据进行完整性保护,使用数字签名对数据进行身份认证即抗否认性保证。以上三个方面可进行多方面的组合,对数据进行综合性保护。2、抵御网络攻

20、击:使用消息号抵抗重放攻击,保证在用户名和密码安全的前提下服务器的绝对安全。使用连接数控制,IP接入控制来达到负载平衡,使不同的用户可以获取平均的资源,同时该措施也可以减少网络攻击。3、集成多线程机制:多线程可以更好更有效的使用硬件资源,提高数据处理能力。FTP服务器在接受大量用户接入时,数据处理能力直接关系到其吞吐量。集成多线程即可以提高程序的处理能力,也可以提高用户体验。本文共分为八个主要部分:图,工作流程图,体系结构图,类架构图,类图,IPO图等,分别说明系统的总体设计,系统详细设计。第四部分是系统数据库设计,根据系统分析,采用了数据库关系图和E-R图帮助分析和设计本系统所使用的概念数据

21、库和物理数据库。第五部分是系统实现,主要通过程序流程图对本系统的几个主要的功能模块的实现进行详细的说明。第六部分是系统测试、运行与维护,主要说明该系统的开发在这些方面所做的工作。第当客户端发送请求连接,并且符合要求后,执行相应的操作,具体如图3-1所示。输入登录信息输入登录信息下载上传连接下载上传连接浏览文件浏览文件断开断开结束结束图3-1图3-1界面设计流程图需求分析需求分析FTP服务器和信息安全相关模块。FTP的信息安全扩展功能主要包括加密解密,消息散列,消息签名。具体如图4-1所示。服务器端服务器端客户端应用层消息号附加模块信息安全处理模块客户请求处理模块信息安全解析模块消息号验证模块应

22、用层消息号获取模块信息安全解析模块客户请求构建模块信息安全处理模块消息号附加模块传 输 层回复客户请求图4-1数据流程图客户请求数据流程从客户请求构建模块开始,以远程登录为起点,周而复始,到注销为止。功能说明安全FTP服务器是网络应用系统,系统通过服务器端与客户端之间传递命令消息,服务器端从命令消息中获取操作类型和参数。在对相应的命令作处理后,把处理结果封装成回复消息并返回给客户端。以下为该系统中主要的功能模块,如图4-2所示。配置用户策略配置用户策略配置数据库及初始化配置IP接入策略配置FTP服务信息配置FTP站点标识配置IP资源访问策略安全FTP服务器服务器配置FTP服务FTP客户端文件上

23、传连接服务器文件下载配置安全算法远程登录连接数控制远程登录IP接入控制其他命令接入控制IP重接入控制匿名用户系统用户FTP用户配置加密算法配置散列算法配置签名算法配置安全级别端口协商上传文件下载文件删除文件服务器系统退出命令信息安全配置图4-2功能模块图服务器配置服务器配置是在服务器端对FTP服务进行配置的相关工作的总称。配置数据库及初始化数据库采用工厂模式架构,用户可以根据自己的喜好等选择自己的数据库类型5,并配建立在应用程序中完成。该配置写入配置文件(以下未做注明都视为写入配置文件),该配置立即生效(以下未做注明都视为立即生效)。配置FTP站点标识配置FTP站点标识包括配置服务器FTP服务

24、的服务描述,IP地址,根目录等信息。IP地址和根目录是必须的配置。IP地址为空或“ANY”时为关联本机上所有IP地址。该配置写入数据库,该配置在服务下一次启动时生效。配置FTP服务信息配置FTP服务信息包括FTP日志启用配置,FTP资源访问控制配置(拒绝访问、允许访问、使用IP限制访问、使用用户策略限制访问),FTP安全传输管理(是否使用加密措施、是否使用消息号),FTP匿名允许访问配置,FTP连接控制配置(限制连接数、限制连接超时、使用IP接入控制)等。该相关配置在服务下一次启动时生效。配置用户策略用户策略就是用户管理,包括用户的添加、修改、删除等功能。通过把用户分属到不同的用户组,使用户具

25、有不同的操作权限,从而控制用户的操作能力,保证资源的可控制访问。该配置写入数据库。配置IP接入策略该系统在客户端请求建立连接时,会对客户端IP地址进行检测,如果该地址被服务器端阻止,则不予建立FTP会话。配置接入IP策略就是为了阻止建立FTP会话的客户端IP地址。在配置时,可以阻止一个IP,也可以阻止一个IP地址段。该配置写入数据库。配置IP资源访问策略该系统在客户端访问资源时,对客户IP进行了检测,对于阻止访问资源的IP地址不予资源的访问能力。配置资源访问IP策略就是为了满足该方面的需求。在配置时,可以阻止一个IP,也可以阻止一个IP地址段。该配置写入数据库。FTP服务FTP服务FTP服务是

26、FTP服务器为客户端提供资源服务的功能的集合。接入控制接入控制是在客户端建立TCP连接后对客户端进行的一系列检测,确定是否为该客户连接建立FTP会话。连接数控制为了阻止一些网络攻击,该系统允许用户配置是否使用连接数控制。在使用连接数控制时,客户端连接超过连接数上限时,将暂时不再建立会话。此后的客户端将竞争建立FTP会话。这样可以从一定程度上保证负载均衡。IP接入控制IP接入控制是在客户建立TCP连接后,对客户端的IP进行检测,如果该IP已经被阻止,则关闭TCP连接,不建立FTP会话。该功能是为了阻。当一个IP上的客户试图建立新的会话时,FTP服务器将主动断开TCP连接,不予建立FTP会话。远程

27、登录远程登录是客户端用户通过Internet对服务器资源访问之前的用户验证。该功能通过命令消息传递客户端用户的用户名和密码,服务器接收后提取参数并在服务器端进行登录验证。匿名用户匿名用户是指以“ANONYMOUS”为用户名登录FTP服务器的用户。该类用户能够访问FTP服务器上的公有资源。该类用户无需密码验证,只需向服务器声明用户名即可访问服务器资源。系统用户系统用户是指FTP服务器所在主机的操作系统的用户。这类用户的验证是由操作系统完成的。该类用户具有最高级别的资源访问权限,属于超级用户组成员。FTP用户FTP用户是指由FTP管理员管理的所有用户,这类用户的信息存储在数据库中。由管理员将其分配

28、到不同的权限组,赋予不同的操作权限。信息安全配置该功能模块是在RFC959标准上扩展的信息安全模块。主要用于客户端配置具有自我选择的安全算法及算法属性。配置信息保存在数据库中。配置加密算法加密算法是为了保证数据的保密性而使用的。配置加密算法包括配置对称加密算法(配置命令为CONS)和配置非对称加密算法(配置命令为CONA)。在系统中可使用的对称加密算法包括DES,RC2,Triple-DES/3DES,AES/Rijndael等,非对称算法包括RSA等。配置散列算法配置签名算法配置安全级别安全级别包括明文传输(SN),加密解密级(SE),完整性级(SH),签名级(SD),及相关的组合级别:SH

29、E、SED、SHD、SEHD等。其他命令该类命令主要是RFC959标准命令集中的命令。RFC959标准命令集包括USER、PASS、ACCT、CWD、CDUP、SMNT、REIN、QUIT、PORT、PASV、TYPE、STRU、MODE、RETR、STOR、STOU、APPE、ALLO、REST、RNFR、RNTO、ABOR、DELE、RMD、MKD、PWD、LIST、NLST、SITE、SYST、STAT、HELP、NOOP等三十三个命令。端口协商端口协商是指在服务器与客户端传输数据之前,双方为建立数据连接所做的准备工作。在主动模式下,客户端通过PORT命令和服务器完成端口的协商,客户端把

30、自己的侦听端口告知服务器。在传输数据时,服务器主动连接客户端的侦听端口,建立数据连接,然后传输数据。上传文件上传文件是指客户端把文件保存到服务器上。上传文件先通过控制连接协商数据连接端口,在完成该工作后,客户端通过使用STOR等命令将本地文件上传到服务器。下载文件下载文件是指客户端从服务器获取文件资源。其他除上面涉及到的5个扩展命令及5个标准命令,还有二十多个标准命令,同时在实际使用中,还有一些常用的扩展命令,如SIZE命令用于获取文件的大小。FTP客服端FTP客户端用于从服务器获取文件服务,简单来讲包括文件存储服务和获取文件资源两大类服务。FTP客户端是FTP服务器对应的一部分。客户端主要构

31、建服务器所支持的各命令,将合法的命令发送到服务器,然后获取服务器提供的命令相关操作结果。系统设计系统总体设计FTP服务器端由一个FTP服务器配置的窗体应用程序和一个提供服务的Windows服务组成。前者负责配置FTP服务所需要的各种参数,后者负责为客户提供永久的服务。服务器配置实时写入配置文件或数据库,服务在启动时读取配置文件并以新的服务器参数运行FTP服务。架构设计由于服务器的特殊性需要长期的不间断的运行,所以用Windows服务来承载FTP。但为了达到FTP服务器具有通用性的目的,需要把FTP的一些功能参数化,通过参数的值决定功能的开启与关闭等。同时由于Windows服务环境下运行的FTP

32、服务需要相关的配置或其他操作及管理等,因此FTP服务器还需要能够提供用户交互的窗体应用程序对FTP服务器进行管理,如图5-1所示。服务端服务端图5-1系统架构图图5-1系统架构图安全FTP服务器采用C/S进行顶层架构,服务器端由FTP服务器,配置终端和数据库管理系统组成(如有必要可添加防火墙等以增加安全性)。服务器和客户端通过Internet进行沟通交流。安全FTP服务器由用于配置和管理FTP服务器的一个窗体应用程序和一个对外提供FTP服务的Windows服务组成。窗体应用程序对FTP服务器进行服务器端的相应配置,并保存到配置文件和数据库中。Windows Service接收远程主机的连接,为

33、远程主机上的用户提供文件传输等服务。总体设计安全FTP服务器的数据处理是围绕命令来进行的,一条命令就是一个完整的处理流程。不同的命令决定了不同的功能(即请求的服务)。系统工作流程:该系统服务器端和客户端的工作流程组成一个完整的工作流程环路。如5-2图所示。图图5-2服务器和客户端工作流程图客户端工作流程分为两部分。在建立连接时获取一个消息号或者使用上一次命令请求返回的消息号,每次请求首先构建一个请求消息发送给服务器,然后等待服务器处理完图5-3 用户端用例图套接字应用于网络通信socket在所有的网络操作系统中都是必不可少的,而且在所有的网络应用程序中也是必3、在windows系统中,sock

34、et属于文件系统的一部分,网络通信可以被看作是对文件的读取,使得我们对网络的控制和对文件的控制一样方便,如图5-3所示。进程B进程A网络协议网络协议套接字套接字进程B进程A网络协议网络协议套接字套接字图5-3套接字的功能上传子模块设计定位要上传的文件和保存路径定位要上传的文件和保存路径发送上传文件的请求发送上传文件的请求 请求失败保存文件获取远程文件内容提示出错信息保存文件获取远程文件内容提示出错信息 获取失败图5-4上传文件模块工作流程图从活动图中,我们更能直观的了解该子用例的整个工作流程如下:(1)系统定位上传文件和保存路径。(2)发送上传文件请求。(3)如果请求失败,则提示出错信息,然后

35、结束。(4)如果请求成功,传输本地的文件到服务器。(5)如果文件传输失败,则提示出错信息,然后结束。(6)如果传输文件成功,提示传输成功,然后结束。信息安全处理模块类结构信息安全处理模块使用了一个类作为载体。加密解密,散列及其验证,签名及签名验证的基本实现(业务逻辑层)都集中在该类中,如图5-6、5-7所示。图5-6 信息安全处理模块类结构图5-7 FTP主模块类结构散列是通过Hash实现的,GetHash和VerifyHash是散列和散列验证的实现方法。数据签名的实现方法是SighHash和VerifyDS。ByteToString、StringToByte、Key等为辅助方法。以下为对称加

36、密解密的详细设计及其调用的IPO图(该类中其他模块的设计思路相同):1、配置对称加密解密算法,具体如图5-8所示。1、对称加密解密算法名称1、对称加密解密算法名称2、块大小3、初始化向量4、密钥大小5、密钥向量6、密码模式7、填充模式输入1、用算法名建立一个算法实体2、配置块大小3、配置初始化向量4、配置密钥5、配置密码模式6、配置填充模式1、合法的对称加密解密算法实体处理输出图5-8配置对称加密解密算法IPO图对称算法配置是为了保存客户加密解密算法的相关参数,从而使加密解密具有确定性,达到信息保密性的特性并能获取明文信息。对称算法配置是从必要参数获取一个对称算法实体,从这些参数可以获取一个惟

37、一的对称算法,这样可以保证在不用的时刻,不同的环境下,用相同的加密解密算法对数据进行加密解密。2、对称加密解密,具体如图5-9所示。1、明文/密文字节数组1、明文/密文字节数组2、对称加密解密算法实体输入1、加密/解密1、密文/明文字节数组处理输出图5-9对称加密解密IPO图对称加密把明文经过加密处理变成密文输出。对称加密需要输入加密算法,在解密时需要使用相同的加密算法,即解密算法与加密算法完全相同才能保证获取正确的明文解析。对称解密是对称加密的逆过程,是把密文还原成明文的过程。3、信息安全处理模块的调用,具体如图5-10所示。图5-10图5-10 FTP主模块中ToSecurity方法对信息

38、安全处理模块的调用IPO图1、回复客户端消息的明文字节数组2、关联客户端的对称加密解密算法实体输入1、信息安全处理模块中的加密处理1、回复客户端的密文字节数组处理输出数据库设计在安全FTP服务器中,需要保存大量的信息。采用数据库是较好的解决方案。需要持久化的信息包括用户权限组,用户信息,用户安全配置,客户访问日志,服务器配置日志等。数据库需求分析数据库在该系统将和文件系统一样作为数据的一个主要承载体。数据库主要是记录部分配置信息和日志信息等。数据库关系设计由于系统提供的文件传输服务既要关系到用户,又要关系到服务器的服务,因此数据库中的顶层外键几乎都同时关联到用户表和服务表。如图6-1所示。图6

39、-1 安全FTP服务器系统数据库键关系图数据库表概念设计以下通过E-R图描述涉及到的各张表的概念设计。系统用户权限表用户权限表(TSYSGROUP)记录用户分组。标识各个用户组的用户所拥有的操作权限,默认有对FTP服务器上的资源的读,写,读写,删权限。如图6-2所示。图6-2系统用户权限表图6-2系统用户权限表用户权限表组标识组名权限状态备注FTP服务表FTP服务表(TFTPSERVICE)记录当前FTP服务的记录,如图6-3所示。图6-3 FTP服务表图6-3 FTP服务表FTP服务表服务标识服务描述本地IP本地端口主目录系统用户基本信息表系统用户基本信息表(TSYSUSER)记录用户的基础

40、信息,包括用户标识,用户名,密码,所属用户权限组标识等信息7。客户IP地址表客户IP地址表(TCIPADDRESS)记录接入控制和资源访问控制中拒绝的IP地址和IP地址段。用户密钥表配置安全相关的算法信息。如图6-4所示。图6-4用户密钥表图6-4用户密钥表用户密钥表标识从属服务标识述从属用户标识密码分类密码算法明文块长返回块长密初始化向量密码本模式密码填充模式备注客户日志表客户日志表(TCLIENTLOG)记录客户访问FTP服务器的控制请求信息和服务器回复信息。无论加密,散列,签名都保存接收到的原始信息。服务日志表服务日志表(TSERVICELOG)记录FTP服务器上服务的配置信息的更新情况

41、。为信息安全提供可回溯的历史记录。数据库表物理设计以下为数据库中关键表的物理设计。如表6-1和表6-2所示。表6-1 系统用户权限表字段名数据类型长度约束字段含义IDINTIDENTITY 主键标识SGNAMEBINARY1B非空 唯一权限组名SGPURVIEWVARCHAR1024非空权限SGISLIVETINYINT非空 默认是否存活SGWDATEDATETIME非空 默认写入日期表6-2用户密钥表字段名数据类型长度约束字段含义IDINTIDENTITY主键标识SKFSIDINT非空 外键从属服务标识SKSUIDINT非空 外键从属用户标识SKTYPEVARCHAR10非空密码分类SKAL

42、GOVARCHAR50非空密码算法SKBLOCKLENGTHINT明文块长SKFEEDBACKSIZEINT返回块大小SKKEYVARCHAR5120密钥SKIVVARCHAR5120初始化向量SKMODEVARCHAR50密码本模式SKPADBIT密码填充模式SKISLIVETINYINT非空 默认记录状态SKWDATEDATETIME非空 默认写入时间SKREMARKVARCHAR200备注系统实现该系统要求较高的信息安全处理,倘如自己实现各种安全算法,可能会有各种不可预期的问题。因此采用在应用层封装较好的开发环境不仅能有好的使用平台适宜度,同时可以增加应用程序的开发速度。7.1开发平台在

43、开发环境上,微软的Visual Studio .NET 具有较高的可视化程度9,具有方便的交互性,同时其框架支持当前各种信息安全算法,因此集成开发环境选择VS2010,开7.2模块实现由于选用C+作为开发语言,面向对象的开发思想将步步体现。数据库对象采用工厂模式三层架构封装。层,业务逻辑层,界面显示层封装数据,将各个层面分离,做到便于团队协作开发和项目维护。由于该系统从很大程度上属于网络应用系统,在开发中将各种信息对象化,如FTP服务会话中的服务器信息和客户端信息10。用户登录用户登录包括用户连接和用户验TP服务器,该IP地址是否已经建立过连接(不允许一个IP地址上的多个FTP会话),如果满足

44、则返回消息码220标识连接成功,否则返回426标识连接失败,如图7-1所示。图7-1用户连接图7-1用户连接程序流程图YYIP允许检测建立连接返回消息426关闭连接返回消息220IP重登录检测未登录建立会话处理允许在通过用户连接检测后,将对用户登录信息进行验证。用户登录验证包括以下三种情况:1、匿名用户登录验证首先检测FTP服务器是否允许了匿名登录,允许则进入用户密码验证阶段(空流程),否则验证失败。2、系统用户的验证首先保存用户名,在接收了密码命令后提取密码,然后由操作系统判断用户名和密码的正确性。对于系统用户名和密码正确的则登录验证成功,否则验证失败。3、FTP用户也是先保存用户名,在接收

45、了密码命令后提取密码,然后由FTP系统从数据库中查询用户名和密码进行验证,用户名和密码在数据库中存在则登录验证成功,否则验证失败。无论哪类用户,验证通过的客户端将获得“230”的消息码,并可进入服务请求流程。否则登录失败。连接验证和用户登录验证都通过的用户才能建立FTP会话,才能获取FTP服务器提供的文件传输等服务,否则该连接将被服务器主动断开,客户端连接及获取服务失败。设置对称加密算法设置对称加密算法的命令为CONS,设置对称加密算法是为了在用户安全级别使用了加密时有可用的加密算法使用。设置对称加密算法时用户需要提供对称加密解密算法名及相应的四个算法参数(块大小,初始化向量,密钥大小,密钥)

46、。算法名包括DES、AES等,参数为相应算发支持的块大小和用户自己指定的密钥信息。对于设置成功的用户将获得“200”的消息码,否则设置失败。这种现象一般由以下五个方面的原因导致:1.FTP站点权限设置2.NTFS权限设置3.用户权利设置4.输入完整的用户名5.FTP对用户密码的限制因FTP采用基本验证方式,所以基本验证的用户权利要求也适用于FTP验证。基本验证方式要求访问的用户对目标主机具有从网络访问此计算机和在本地登录两种权限。这两种权限需要在安全策略中设置。在Windows2000中,存在三种安全策略:域安全策略,本地安全策略,域控制器安全策略,它们的优先级为:域控制器安全策略、域安全策略

47、、本地安全策略。在设置安全策略时需注意有效的策略中允许用户从网络访问此计算机和在本地登录两种权限。以下为用户登录验证的程序设计流程如图7-2所示。图7-2 图7-2 用户登录验证的程序设计流程YYY是否匿名用户返回消息331是否OS用户是保存用户名是密码验证OS密码验证返回消息501是否匿名用户是返回消息230YY允许匿名登录允许返回消息501FTP密码验证通过通过Y测试运安全FTP服务器系统具有很强的交互性,在开发中会有很多问题是不能通过想象和经验进行预计和处理的,因此只能通过测试等软件开发手段来发现问题并解决问题。测试该系统的主要进行了以下几个方面的测试:单元测试、功能测试、性能测试、安装

48、/部署测试等11。单元测试为了确保在开发中实现了所有的需求,同时也为了使项目代码满足各种编码规范,在正式测试之前对代码进行了人工排查,对系统进行了静态单元测试代码审查。程序中有齐全的各种注释:各种方法都有功能描述,方法中的功能模块具有功能的相关描述;参数和返回值也有相关的文字描述;除局部变量外都进行了变量的含义注释。方法,变量等都使用了统一的命名规范。本系统的开发完全遵照C+的编码规范,如代码按行进行书写,一行只有一个语句等等,变量使用camelCase(驼峰) 命名规范进行命名。命名空间也使用了规范的命名规则和组织规则。如上这些规范都可以提高代码的可读性和系统的可维护性。通过代码审查可以发现

49、一些显而易见的逻辑错误和功能缺失,这些先期的处理可以为后面的测试节省时间和测试代价12。功能测试功能测试主要是对需求中的各功能要求进行测试性运行,保证系统的正确运行。在测试中,首先进行了用户界面和适用性的测试。使产品更具人性化,人们在使用时更加灵活、舒适,提高软件使用者客户的体验。使用基于功能需求的回归测试对项目进行各个功能的验证。在测试中发现功能缺陷或其他的不足,返回到代码中修改这些不足,然后继续进行测试。直到满足所有功能需求为止。安装/部署测试该系统的设计初衷之一就是具有较好的平台适用性,能满足不同的人群不同的需求。安装部署测试主要就是为了对该方面的需求进行测试。该系统采用VS2010开发

50、,采用的框架是Framework3.5,在安装/部署测试中分别使用了2.0框架发布和3.5框架发布。目标系统使用了Windows XP,Windows 2003,Windows Vista及其部分英文版操作系统。在测试中安全FTP系统都能正确的运行。数据库的选用采用数据工厂架构,在测试中使用了MS SQL 2000和MS SQL 2005进行了该方面需求的测试,通过测试和修改,系统能够正常地运行13,满足了数据库由用户自主选择的需求。系统综合测试在进行了如上的各种测试后,为了确保系统的正确整合,对系统进行了综合测试。采用阿尔法测试对系统进行了综合测试。系统测试将安全FTP系统的所有组成部分综合

51、在一起进行测试,在系统的实际运行环境下进行测试,在用户的直接参与下进行。包括功能集成测试,可靠性与适应性测试,安全性测试,强度测试等等。该步骤是先前各阶段的综合,也是系统的最后开发阶段。系统运行及维护在进行了以上的各种测试后,系统即已基本确保正常运行,于是制作系统安装程序等后期工作及系统的最终发布部署等。安全FTP服务器系统是一个庞大的数据系统:一方面是大量的文件,这些文件是提供FTP服务的基石,这些文件可能是服务器共享出来的文件,也可能是由客户端用户共享出来的文件资源;另一方面的数据是系统运行所需的数据,如配制文件、数据库文件、运行产生的日志文件等,这些都是系统运行宝贵的信息资源。在系统的设

52、计与实现中已经考虑到数据的维护问题,例如运行日志文件的大小限制,在运行日志文件达到一定大小后将产生新的日志文件等等。但这些是不足够的。系统的运行维护很大程度上取决于管理员的有效管理14。为了保证系统的稳定运行,系统管理员要保证物理环境的安全,操作系统的安全,并要实时对系统的安全性进行评估并采用有效的措施防止安全隐患的发生。另一方面管理员要保证系统在遇到灾难性事件后能及时恢复,因此需要定期甚至实时对系统运行数据的备份。运行结果本设计使用的FTPserver,通过在同一网络上的任何一台PC与FTP 服务器连接,进行文件或目录的复制,移动不同类型的 HYPERLINK /view/880.htm 操

53、作系统,对不同类型的文件进行相互传递,搭建的服务器端平台如图9-1所示。图图9-1 HYPERLINK /view/106754.htm FTP服务器 HYPERLINK /view/37.htm 软件FTPserver点击Add创建服务器端的账户,Home为选择服务器端的根目录,allow download为允许下载,allow upload上传功能,allow delete为删除功能,allow create directory为创建目录。点击Save保存服务器的配置信息,再点击按钮启动服务器。因为创建的是服务器端,所以先登陆自己的服务器,为了查看服务器是否能够运行,又配置来了一个客户端,

54、在二台电脑中实现客户端与服务器端之间文件的传输。首先用客户端登陆服务器,与服务器建立连接,然后上传,下载文件,看看服务器端有什么反应,但是有时图图9-2 FTP客户端这时客户端将会显示与服务器连接成功的信息,表示用户可以上传和下载文件,具体如图9-3所示。图图9-3 FTP客户端与服务器端连接由于限制了服务器的端口为21 所以客户端只有通过21才可以登陆服务器。如果服务器端在信息配置时设置了密码,此时客户端也必须输入相同的密码才能进行连接。现在选中到指定的目录,如图9-4所示。图图9-4 文件位置选择找到文件后点击按钮或者右键就能上传,如图9-5所示。图图9-5 文件上传同时我们也可以选择在服

55、务器上下载我们想要的文件,只要选中文件,并且点击按钮或者右键就能对文件进行下载,如图9-6所示。图图9-6 文件下载结束语安全FTP服务器的设计与实现相对来说还是比较顺利的。从最初的RFC959研究到项目的实施并完成也有遇到不少的问题,甚至是知识难点或技术瓶颈,但经过深入的学习研究和细致的思考,问题最终都迎刃而解。该安全FTP服务器在常规FTP服务器的基础之上,增加了数据加密解密可选功能,数据完整性验证可选功能,数据签名可选功能。在这些可选功能上,都提供了多种算法的支持,客户端用户可以根据自己的实际需要和个人喜好方便的选取自己满意的安全算法。为了抵御常见的网络攻击,该FTP服务器使用了连接数控制可选功能,可以从一定程度上防止拒绝服务攻击等洪水攻击造成的服务器假死或合法用户无法访问的问题。使用了强制IP单连接管理,这对于绝大多使用场合来讲,是合情合理的,同时从理论上来讲,单IP地址上(一个客户端)多个控制连接是没有必要的,甚至会阻碍信息传输,单IP单连接管理也可以从一定程度上解决洪水攻击带来的隐患。为了抵御重放攻击,使用了消息号可选机制,可以有效地保证当前收到的消息是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论