安全FTP服务器的设计与实现.doc_第1页
安全FTP服务器的设计与实现.doc_第2页
安全FTP服务器的设计与实现.doc_第3页
安全FTP服务器的设计与实现.doc_第4页
安全FTP服务器的设计与实现.doc_第5页
免费预览已结束,剩余25页可下载查看

下载本文档

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

文档简介

四川师范大学本科毕业设计安全FTP服务器的设计与实现学生姓名颜国宝院系名称计算机科学学院专业名称计算机科学与技术班 级2004级1班学 号2004110147指导教师冯朝胜四川师范大学教务处二八年五月安全FTP服务器的设计与实现学生姓名:颜国宝 指导教师:冯朝胜内容摘要:随着信息安全技术的发展,信息安全越来越受到人们的关注。FTP服务器广泛应用于我们的工作和生活之中,为了能更好的使用FTP服务器,也为了FTP服务器能适用于更广的人群,FTP服务器有必要加入信息安全的辅助功能,同时为了能让FTP服务器能更稳定的运行,FTP服务器需要具有对网络攻击的主动防御能力。在此背景下,本文论述了安全FTP服务器的设计与实现。通过在FTP服务器中添加应用层的信息安全(如使用加密解密以保护数据的保密性,如使用散列以保护数据的完整性,如使用数字签名以保证数据操作的抗否认性)从而保证数据从传输到接收都是安全的;增加对网络攻击的防范(如使用消息号及连接数限制来抵抗重放攻击等洪水攻击),以保证FTP服务器的稳健度;使用多线程机制实现对客户端信息的及时接收和快速处理,以充分利用服务器硬件资源和保证高效的运行速度。该系统符合当前时代的需要,适用于几乎所有场合及人群,可以方便地提供更安全,更稳定,更快速的文件传输服务。关键字:FTP服务器,信息安全,消息号,多线程The design and the realization about Secure FTP ServerAbstract:Along with the development of information security technology, it receives peoples attention more and more. The FTP server widely used in our work and the life, in order that we can better use FTP server, and for that it can be suitable for the FTP server to a broader crowd, the FTP service has the necessity to be joined the auxiliary function of the information security. At the same time to enable the FTP server to run more stabler, it needs 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 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 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 server 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.Keywords:FTP server,information security,message id, multithreading目 录1 概述11.1 研究目的和意义11.2 研究背景21.2.1 FTP与信息安全21.2.2 FTP与RFC41.2.3 FTP服务器软件41.3 主要贡献51.4 论文结构52 系统分析62.1 需求分析62.2 功能说明72.2.1 服务器配置72.2.2 FTP服务82.2.3 FTP客户端103 系统设计103.1 系统总体设计113.1.1 架构设计113.1.2 总体设计113.2 系统详细设计133.2.1 数据结构之枚举143.2.2 FTP子模块类结构143.2.3 信息安全处理模块类结构154 数据库设计174.1 数据库需求分析174.1.1 数据库关系设计174.1.2 数据库表概念设计184.2 数据库表物理设计195 系统实现205.1 开发平台205.2 模块实现205.2.1 用户登录205.2.2 设置对称加密算法226 测试、运行与维护236.1 测试236.1.1 单元测试236.1.2 功能测试246.1.3 安装/部署测试246.1.4 系统综合测试246.2 系统运行及维护247 结束语258 致谢26参考文献2627安全FTP服务器的设计与实现1 概述随着信息安全技术的发展,信息安全越来越受到人们的关注。FTP服务器广泛应用于我们的工作和生活之中,为了能更好的使用FTP服务器,也为了FTP服务器能适用于更广的人群,FTP服务器有必要加入信息安全的辅助功能,同时为了能让FTP服务器能更稳定的运行,FTP服务器需要具有对网络攻击的主动防御能力。在此背景下,本文论述了安全FTP服务器的设计与实现。通过在FTP服务器中添加应用层的信息安全(如使用加密解密以保护数据的保密性,如使用散列以保护数据的完整性,如使用数字签名以保证数据操作的抗否认性)从而保证数据从传输到接收都是安全的;增加对网络攻击的防范(如使用消息号及连接数限制来抵抗重放攻击等洪水攻击),以保证FTP服务器的稳健度;使用多线程机制实现对客户端信息的及时接收和快速处理,以充分利用服务器硬件资源和保证高效的运行速度。该系统符合当前时代的需要,适用于几乎所有场合及人群,可以方便地提供更安全,更稳定,更快速的文件传输服务。FTP用于管理计算机之间的文件传输,在因特网发展的早期时代用FTP传输文件约占整个因特网通信量的三分之一,只是到了1995年,WWW的通信量才首次超过了FTP。在今天,WWW仍然占据小数据传输的主要市场份额,但对于相对较大的数据的传输FTP的地位不可动摇。现有FTP几乎都没有任何安全保障。现有FTP都是基于RFC959标准,有统一的架构模式和兼容的体系标准,这样可以在服务器端和客户端选用不同的开发商开发的产品架构FTP系统。但RFC959标准最大的弱点就是没有任何安全保障。当通信的数据在传输过程中,或通信内容被人截获,或通信内容被人篡改,或通信内容被人伪造等等,在如此种种的情况下,通信被人攻击都无法被接收者识别,数据的安全性受到极大的威胁,数据的通信将变的毫无意义,甚至适得其反,这将极大的损坏通信双方甚至多方的利益,因此集成信息安全成分是大势所趋。1.1 研究目的和意义FTP服务器为Internet上的网络用户或企业用户提供文件传输服务,因此FTP服务器的稳健运行非常重要。服务器的性能与数据(即文件)相关。试想一个文件的上传下载遇到破坏或遭受攻击,最小的损失就是损耗网络带宽,文件传输失败,更甚之可能导致重要数据丢失,机密信息泄露。这对于服务方或客户方都是绝对不允许的。今天的信息安全技术业已成熟,但在FTP上的应用却微乎其微,市场需要安全的FTP是不争的事实,甚至是刻不容缓,因此应该在当今成熟的信息安全技术之上,架构符合当今时代要求的FTP服务器。由于FTP功能众多,所以FTP一直都是相当流行的。正因为如此,FTP服务器的缺陷所带来的问题和所造成的经济损失是不可估量的。本项目从FTP当今所存在的缺陷出发,通过对数据进行加密传输,极大的保障了数据传输过程的保密性;对数据进行散列码应用,防止数据在传送过程中被修改;通过进行身份认证和数字签名可以避免对文件操作行为的抵赖;通过使用消息号来防止重放攻击总之,通过本项目的研究,提出了一种FTP服务器安全运行的机制和安全工作体系,在此基础上开发出安全FTP服务器软件,该软件将使用目前各种可靠的安全通信算法来保证通信的安全,将集成有效的反攻击技术来保证FTP服务器的安全可靠运行。明确上传和下载的工作机制,着眼于FTP现存的缺陷开发出既能方便用户上传下载文件,又能保证通信安全,还能方便用户进行安全配置的安全FTP服务器。安全FTP服务器开发成功必将为网络资源的共享提供极大的方便。现在市场上使用的FTP服务器相对来说还是比较稳健的。其主要市场由Rob Beckers开发的Serv-U FTP Server占领。该软件在安全方面已经支持传输层SSL协议,是个人FTP服务器的首选,当然也有很多商业用户。但在普通传输层上构建应用层数据安全将更具有简单的应用平台,具有更大的市场范围。服务器和客户端的数据在传输前后(进入传输层前和离开传输层后)进行信息安全处理,保证在通道上传输的数据满足相应的安全要求。这样一方面比使用安全传输层具有更好的平台适应性和适用性,也具有更大的灵活性,能够满足各类用户的实际需求。多线程机制,可以极大地提高FTP服务器运算处理能力,提高服务器效率,缩短客户端的请求时间和处理等待延迟。如此可以在相同的硬件环境下承受更多的客户端请求,更快的处理客户端请求,带给客户更好的用户体验。1.2 研究背景FTP已经有了一段发展历程,建立了一套完善的措施,但在安全性方面没有多大的发展,原因在于NWG没有把安全性作为FTP的必要组成部分加以考虑。该项目的愿景就是在现有的FTP技术基础上,为FTP注入信息安全的成分,包括保证通信的安全性,完整性,不可抵抗性等等,同时为了免于网络攻击,也为FTP增加了一些抵御网络攻击的措施。1.2.1 FTP与信息安全FTP已有三十多年的发展历史,在这不长的发展时期里,已经具有了一套完整的FTP标准,这套标准还在不断发展之中。在这期间也出现了不少的FTP软件产品,客户端软件居多,服务器端软件相对来说要少一些。FTP在信息安全方面也有一定的实践和发展,例如对SSL的支持,但至今还没有形成任何标准。上传下载文件是互联网提供给用户的两个极其重要的功能,用户通过上传文件能够实现文件更新和共享,通过下载功能用户能够获取需要的资源,而文件的上传和下载都离不开文件传输服务器即FTP服务器。鉴于FTP的重要性和使用的频繁性,针对FTP服务器的攻击越来越多,对FTP服务器的安全运行造成巨大威胁和破坏。FTP服务器自身具有安全缺陷,基于它进行的数据传送通常是采用明文形式,这就使得机要数据的传送毫无保密可言。FTP传输的是明文,这也意味着只要利用一个抓包或拦包工具就可以非常轻松地拦截到FTP用户的登录名与密码,具有严重的安全隐患,特别是对于非常重要的FTP站点来说,登录用户名和密码泄露就意味着整台主机可能会受影响。随着Internet的发展,针对FTP的入侵事件不断发生,现有的防火墙、IDS等设备都不能有效防止入侵者篡改FTP服务器上的信息。为了保证数据传输的安全性,许多公司都在自己的FTP服务器上加载了相关安全协议,比如说微软,就在IIS中提供了SSL协议。该协议要求FTP服务器用户先申请一个X.509v3公钥数字证书,申请成功后将证书存于服务器上或其它可信第三方。用户在上传或下载之前,用户首先要获取服务器的数字公钥证书。得到证书后,客户端生成会话密钥并将会话密钥用公钥加密后传送给服务器,服务器使用私钥解密加密的会话密钥。在此之后,客户端和服务器就使用会话密钥来加密要传送的数据。尽管可以通过加载SSL协议来保证数据通信的安全,然而,用户却没有办法按照实际安全需求来进行安全设置,同时“第三方”也限制了该机制的使用场合。现存的FTP对上传下载的管理存在很多问题,如没有对相关操作进行日志记录,从而造成抵赖性的发生。不可抵赖性包括对自己行为的不可抵赖及对行为发生的时间的不可抵赖。现存FTP根本没有防止不法分子对FTP的重放攻击。移动节点使用经过认证的注册请求消息在很大程度上增强了系统的安全性能,但是并不能防止重放攻击。因为一个攻击者可以将一个有效的注册请求消息保存起来,然后等待一段时间后再重新发送这个消息来注册一个伪造的转交地址,从而达到重放攻击的目的。FTP服务器除可以提供多用户同时下载的功能外,还可以让用户上传文件,在上传和下载的同时,并发性冲突是FTP服务器常见的一个问题,还可以使用FTP远程执行命令,由于FTP一般需要帐户和密码,而且对于不同的帐户可提供不同的权限,由于这么多的功能,所以FTP一直还是相当流行的。目前,国内外关于FTP服务器集安全策略和防止不可抵赖性、防止重放攻击的一起的FTP服务器还没有。随着网络和信息安全的不断深入发展,FTP安全方面的问题显得非常重要。当今社会在各个领域安全是必不可少的一项关键技术。信息安全的目标是保护信息的机密性,完整性,抗否认性,可用性。主要手段是通过加密,签名来实现。机密性是指保证信息不被非授权访问;完整性是指维护信息的一致性,保证信息不被非授权修改;抗否认性是保障用户无法在事后否认曾经对信息进行的操作行为;可用性是指保障信息资源时刻提供服务的特性。密码体制分为对称密码体制和非对称密码体制(即公钥密码体制),对称密码体制中主要有数据加密标准(DES),DES变形,高级加密标准(AES)等,非对称密码体制有RSA等,总的来说,对称加密速度比非对称加密要快,密码体制可以保证数据的机密性;消息认证主要是保证数据完整性的措施,消息认证通过消息散列来实现,散列是单向不可逆的操作,对于同一数据能产生唯一的固定的HASH值,通过原始消息和散列消息的比对可以确定数据是否被修改,从而实现数据的完整性,常用的散列算法有MD5,SHA等;数据签名体制是保证消息抗否认性的措施,数字签名有基于私钥和公钥机制的两种机制,常用的数字签名方式有基于RSA的签名和DSS签名等。RFC959是1985年发布的,当时并没有把FTP安全性方面作为必要组成加以考虑。但在今天成熟的信息安全的技术基础上,可以方便地把信息安全成分加入FTP。另一方面,网络攻击也有可能导致数据安全受到威胁。因此要做到真正的信息安全,也要对网络攻击进行必要的防范和预处理。重放攻击就是网络攻击中的一种。重放攻击就是攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,跳过或欺骗身份认证过程。无论是使用时间戳还是其他措施,预防重放攻击的思路就是使用消息号。时间戳需要消息验证双方保证时间同步,因此使用常规的消息号是更好的替代方案。接受方只需判断所接受的消息的消息号是否是期望值,从而抵抗消息重放。综上所述:FTP服务器需要信息安全保障,需要具有抵御网络攻击的能力,需要更高的会话处理能力。1.2.2 FTP与RFCRFC是Request For Comment的缩写,是请求注解的简称。所有关于Internet的正式标准都以文档出版,但不是所有的RFC都是正式的标准,很多RFC的目的只是为了提供信息。RFC每一篇都用一个数字来标识,数字越大说明RFC 的内容越新。FTP协议的请求注解有RFC458,RFC542,RFC607,RFC614,RFC624等等,现行标准是RFC959。其描述FTP的目标是:1)促进程序/数据文件的共享;2)鼓励(通过程序)使用远程计算机;3)使用户不必面对不同主机上不同文件系统的差异;4)对数据进行高效可靠的传输。FTP尽管可以直接在终端上应用,但它主要被设计通过程序来使用。FTP连接通道:FTP具有两种通道控制连接通道(control connection)和数据连接通道(data connection)。控制连接负责协商各种指定功能的命令,默认端口是21,数据连接负责传输数据,端口由控制连接协商指定。控制连接在会话开始时建立,会话结束时断开,数据连接在需要时由控制连接建立。控制连接在一个会话中只有一个,数据连接在会话中可以没有,也可以有多个。FTP连接模式:FTP连接模式是指FTP数据连接通道上数据的连接模式。FTP具有两种数据连接模式主动模式(PORT or ACTIVE)和被动模式(PASV)。主动模式有时称“客户端管理”,由客户端开启一个端口,等待服务器来建立连接。被动模式由服务器开启一个端口,等待客户端向服务器建立连接。一般来讲,主动模式比被动模式更安全。FTP数据类型:FTP的RFC设计目标之一是通过设计简单易实现的协议来试图满足大型机、小型机、个人工作站、TAC等用户的需要,因此FTP支持多种数据类型,如ASCII编码,EBCDIC编码等。远程登录:远程登录(Remote Login)指用户通过Internet登录到远程FTP服务器上。Internet上远程登录的主要方式是Telnet,FTP在登录时使用的就是Telnet协议。Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份操作远程主机上的文件。1.2.3 FTP服务器软件现在市场上具有多种FTP服务器端或客户端软件产品,这些产品都兼容RFC959最小实现,因此几乎可以实现RFC959的设计目标。一个好的通用的FTP服务器软件应该完全实现RFC959的设计目标,同时应该根据当今时代的需要,融入信息安全等多方面的因素。即要做到兼容已经存在的FTP软件产品,也要在今后的FTP发展中立于不败之地。1.3 主要贡献网络上有一些FTP产品下载,但几乎都没有涉及到信息安全方面,因此只适合在不具有信息安全要求的场合使用,而基于传输层安全协议(如SSL)的FTP软件需要复杂的配置。总而言之,一个集成应用层信息安全、网络安全于一体的FTP软件是市场需求驱动的必然结果。该安全FTP服务器是基于RFC959开发的一个通用FTP服务器,同时它集成了信息安全技术:一方面按实际要求可以对数据进行保密性、完整性、抗否认性等方面的处理,另一方面为了抵抗网络攻击,使用了消息号、连接数控制、IP控制策略等技术。主要贡献如下:1、集成信息安全技术:使用加密解密对数据进行保密性保护,使用散列值对数据进行完整性保护,使用数字签名对数据进行身份认证即抗否认性保证。以上三个方面可进行多方面的组合,对数据进行综合性保护。2、抵御网络攻击:使用消息号抵抗重放攻击,保证在用户名和密码安全的前提下服务器的绝对安全。使用连接数控制,IP接入控制来达到负载平衡,使不同的用户可以获取平均的资源,同时该措施也可以减少网络攻击。3、集成多线程机制:多线程可以更好更有效的使用硬件资源,提高数据处理能力。FTP服务器在接受大量用户接入时,数据处理能力直接关系到其吞吐量。集成多线程即可以提高程序的处理能力,也可以提高用户体验。1.4 论文结构本文共分为八个主要部分:第一部分是概述,这部分主要说明了安全FTP服务器系统研究的必要性和重要性,即主要从市场和技术两个角度说明为什么要开发这个系统,开发出这个系统能解决什么问题以及通过研究和开发要达到的目标等。第二部分是安全FTP服务器的系统分析,在分析客户需求的前提下,通过使用数据流程图和功能模块图等说明本系统包括的主要功能。第三部分是系统设计,在系统分析的基础上,结合系统架构图,工作流程图,体系结构图,类架构图,类图,IPO图等,分别说明系统的总体设计,系统详细设计。第四部分是系统数据库设计,根据系统分析,采用了数据库关系图和E-R图帮助分析和设计本系统所使用的概念数据库和物理数据库。第五部分是系统实现,主要通过程序流程图对本系统的几个主要的功能模块的实现进行详细的说明。第六部分是系统测试、运行与维护,主要说明该系统的开发在这些方面所做的工作。第七部分是总结篇,对该系统进行了综述性的评述,并提出了系统可能存在的不足及解决方案。最后是该系统的设计和实现中所参考的各种有价值的资料列表。2 系统分析安全FTP服务器归根到底是一个FTP服务器软件,因此它首先具有FTP服务器所具有的基本功能,其次具有保护信息安全的各种策略,同时具有预防网络攻击的能力等。2.1 需求分析FTP服务器的基本功能是在RFC959中规定的,这也是和其他FTP软件兼容的前提。FTP的基本功能概括的讲,包括用户远程登录,文件上传下载等系列操作。每一个操作都是一组相关命令的集合,一个命令包括一个完整的请求回复流程。安全FTP服务器的设计在原有FTP模型上增加了消息号相关模块和信息安全相关模块。FTP的信息安全扩展功能主要包括加密解密,消息散列,消息签名。服务器端客户端应用层消息号附加模块信息安全处理模块客户请求处理模块信息安全解析模块消息号验证模块应用层消息号获取模块信息安全解析模块客户请求构建模块信息安全处理模块消息号附加模块传 输 层回复客户请求图2-1数据流程图客户请求数据流程从客户请求构建模块开始,以远程登录为起点,周而复始,到注销为止。2.2 功能说明安全FTP服务器是网络应用系统,系统通过服务器端与客户端之间传递命令消息,服务器端从命令消息中获取操作类型和参数。在对相应的命令作处理后,把处理结果封装成回复消息并返回给客户端。以下为该系统中主要的功能模块。配置用户策略配置数据库及初始化配置IP接入策略配置FTP服务信息配置FTP站点标识配置IP资源访问策略安全FTP服务器服务器配置FTP服务FTP客户端文件上传连接服务器文件下载配置安全算法远程登录连接数控制远程登录IP接入控制其他命令接入控制IP重接入控制匿名用户系统用户FTP用户配置加密算法配置散列算法配置签名算法配置安全级别端口协商上传文件下载文件删除文件服务器系统退出命令信息安全配置图2-2功能模块图2.2.1 服务器配置服务器配置是在服务器端对FTP服务进行配置的相关工作的总称。配置数据库及初始化数据库采用工厂模式架构,用户可以根据自己的喜好等选择自己的数据库类型,并配置相关的数据库访问连接字符串。同时初始化数据库,建立数据库及表,建立系统运行所需的基础数据。数据库通过配置文件实现数据库工厂模式架构。数据库及表的建立在应用程序中完成。该配置写入配置文件(以下未做注明都视为写入配置文件),该配置立即生效(以下未做注明都视为立即生效)。配置FTP站点标识配置FTP站点标识包括配置服务器FTP服务的服务描述,IP地址,根目录等信息。IP地址和根目录是必须的配置。IP地址为空或“ANY”时为关联本机上所有IP地址。该配置写入数据库,该配置在服务下一次启动时生效。配置FTP服务信息配置FTP服务信息包括FTP日志启用配置,FTP资源访问控制配置(拒绝访问、允许访问、使用IP限制访问、使用用户策略限制访问),FTP安全传输管理(是否使用加密措施、是否使用消息号),FTP匿名允许访问配置,FTP连接控制配置(限制连接数、限制连接超时、使用IP接入控制)等。该相关配置在服务下一次启动时生效。配置用户策略用户策略就是用户管理,包括用户的添加、修改、删除等功能。通过把用户分属到不同的用户组,使用户具有不同的操作权限,从而控制用户的操作能力,保证资源的可控制访问。该配置写入数据库。配置IP接入策略该系统在客户端请求建立连接时,会对客户端IP地址进行检测,如果该地址被服务器端阻止,则不予建立FTP会话。配置接入IP策略就是为了阻止建立FTP会话的客户端IP地址。在配置时,可以阻止一个IP,也可以阻止一个IP地址段。该配置写入数据库。配置IP资源访问策略该系统在客户端访问资源时,对客户IP进行了检测,对于阻止访问资源的IP地址不予资源的访问能力。配置资源访问IP策略就是为了满足该方面的需求。在配置时,可以阻止一个IP,也可以阻止一个IP地址段。该配置写入数据库。2.2.2 FTP服务FTP服务是FTP服务器为客户端提供资源服务的功能的集合。 接入控制接入控制是在客户端建立TCP连接后对客户端进行的一系列检测,确定是否为该客户连接建立FTP会话。连接数控制为了阻止一些网络攻击,该系统允许用户配置是否使用连接数控制。在使用连接数控制时,客户端连接超过连接数上限时,将暂时不再建立会话。此后的客户端将竞争建立FTP会话。这样可以从一定程度上保证负载均衡。IP接入控制IP接入控制是在客户建立TCP连接后,对客户端的IP进行检测,如果该IP已经被阻止,则关闭TCP连接,不建立FTP会话。该功能是为了阻止已确认的恶意IP地址,或为了实现区域阻止等。IP重接入控制该功能是指一个IP只能建立一个FTP会话,这样做是基于负载平衡考虑的。当一个IP上的客户试图建立新的会话时,FTP服务器将主动断开TCP连接,不予建立FTP会话。 远程登录远程登录是客户端用户通过Internet对服务器资源访问之前的用户验证。该功能通过命令消息传递客户端用户的用户名和密码,服务器接收后提取参数并在服务器端进行登录验证。匿名用户匿名用户是指以“ANONYMOUS”为用户名登录FTP服务器的用户。该类用户能够访问FTP服务器上的公有资源。该类用户无需密码验证,只需向服务器声明用户名即可访问服务器资源。系统用户系统用户是指FTP服务器所在主机的操作系统的用户。这类用户的验证是由操作系统完成的。该类用户具有最高级别的资源访问权限,属于超级用户组成员。FTP用户FTP用户是指由FTP管理员管理的所有用户,这类用户的信息存储在数据库中。由管理员将其分配到不同的权限组,赋予不同的操作权限。 信息安全配置该功能模块是在RFC959标准上扩展的信息安全模块。主要用于客户端配置具有自我选择的安全算法及算法属性。配置信息保存在数据库中。配置加密算法加密算法是为了保证数据的保密性而使用的。配置加密算法包括配置对称加密算法(配置命令为CONS)和配置非对称加密算法(配置命令为CONA)。在系统中可使用的对称加密算法包括DES,RC2,Triple-DES/3DES,AES/Rijndael等,非对称算法包括RSA等。配置散列算法散列算法是为了保证数据的完整性。发送方将消息散列值附加到消息之后,接收方对接收的消息进行散列验证以确定消息是否为原始未修改的消息。可配置的散列算法包括MD5,SHA128,SHA256,SHA384,SHA512等。配置签名算法配置签名算法是为了使用数字签名机制,可配置的签名算法有DSA算法和基于RSA的公钥签名。配置安全级别安全级别包括明文传输(SN),加密解密级(SE),完整性级(SH),签名级(SD),及相关的组合级别:SHE、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命令和服务器完成端口的协商,客户端把自己的侦听端口告知服务器。在传输数据时,服务器主动连接客户端的侦听端口,建立数据连接,然后传输数据。上传文件上传文件是指客户端把文件保存到服务器上。上传文件先通过控制连接协商数据连接端口,在完成该工作后,客户端通过使用STOR等命令将本地文件上传到服务器。下载文件下载文件是指客户端从服务器获取文件资源。其他除上面涉及到的5个扩展命令及5个标准命令,还有二十多个标准命令,同时在实际使用中,还有一些常用的扩展命令,如SIZE命令用于获取文件的大小。2.2.3 FTP客户端FTP客户端用于从服务器获取文件服务,简单来讲包括文件存储服务和获取文件资源两大类服务。FTP客户端是FTP服务器对应的一部分。客户端主要构建服务器所支持的各命令,将合法的命令发送到服务器,然后获取服务器提供的命令相关的服务。3 系统设计安全FTP服务器系统采用客户端/服务器模式进行顶层架构,在服务器端用Windows服务提供持续的服务,客户端采用窗体应用程序与服务器进行交互。3.1 系统总体设计FTP服务器端由一个FTP服务器配置的窗体应用程序和一个提供服务的Windows服务组成。前者负责配置FTP服务所需要的各种参数,后者负责为客户提供永久的服务。服务器配置实时写入配置文件或数据库,服务在启动时读取配置文件并以新的服务器参数运行FTP服务。3.1.1 架构设计图3-1系统架构图服务端由于服务器的特殊性需要长期的不间断的运行,所以用Windows服务来承载FTP。但为了达到FTP服务器具有通用性的目的,需要把FTP的一些功能参数化,通过参数的值决定功能的开启与关闭等。同时由于Windows服务环境下运行的FTP服务需要相关的配置或其他操作及管理等,因此FTP服务器还需要能够提供用户交互的窗体应用程序对FTP服务器进行管理。安全FTP服务器采用C/S进行顶层架构,服务器端由FTP服务器,配置终端和数据库管理系统组成(如有必要可添加防火墙等以增加安全性)。服务器和客户端通过Internet进行沟通交流。安全FTP服务器由用于配置和管理FTP服务器的一个窗体应用程序和一个对外提供FTP服务的Windows服务组成。窗体应用程序对FTP服务器进行服务器端的相应配置,并保存到配置文件和数据库中。Windows Service接收远程主机的连接,为远程主机上的用户提供文件传输等服务。3.1.2 总体设计安全FTP服务器的数据处理是围绕命令来进行的,一条命令就是一个完整的处理流程。不同的命令决定了不同的功能(即请求的服务)。 系统工作流程该系统服务器端和客户端的工作流程组成一个完整的工作流程环路。如下图所示:消息接受图3-2服务端工作流程客户消息号验证安全解析命令处理回复消息号附加安全处理回复构建提供服务服务器端接收客户端的请求,并对客户段的请求进行处理,每一条命令都将进行一个完整的服务器端工作流程。请求构建图3-3客户端工作流程服务端安全处理消息号附加发送请求本地化处理安全解析消息号获取接受回复获取服务客户端工作流程分为两部分。在建立连接时获取一个消息号或者使用上一次命令请求返回的消息号,每次请求首先构建一个请求消息发送给服务器,然后等待服务器处理完后接收服务器的处理结果并获取服务进行所需的相关本地处理。 系统体系结构安全FTP服务器的功能模块已在需求分析中给出。现将各功能进行细化,进行进一步的模块划分,得出系统的体系结构图。安全FTP服务器体系由外部数据和内部数据组成。系统外部数据主要由外部文件和数据库组成。系统内部数据由FTP服务器,客户端程序组成。外部数据包括以下三大类:1、应用程序配置文件:该类文件保存可执行文件的必要配置信息。如数据库类型,数据库连接字符串等。2、服务配置信息:该类配置文件保存FTP服务的相关配置信息,如使用日志,允许匿名登录等。3、FTP系统运行日志:该类文件用于记录系统的客户端与服务器交互日志,数据库访问异常日志,系统运行异常日志等。数据库文件包括常用信息等各种表,诸如服务信息,用户信息,服务配置日志,客户端访问日志等。内部数据包括FTP配置程序,FTP服务程序,FTP客户端等。系统的体系结构如下图所示:FTP客户端外部文件外 部 数 据数据库FTP 服 务 器FTP配置程序FTP服务程序程序配置服务配置程序配置服务配置运行日志运行日志配置数据库类型连接服务器消息号获取安全级别配置安全算法配置消息号附加远程登录退出FTP会话文件上传功能组文件下载功能组初始化数据库配置服务标识服务安装卸载管理服务起停管理配置服务信息配置用户策略配置IP接入策略配置IP访问策略(见图 3-5)图3-4安全FTP服务器系统体系结构图内 部 数 据安 全 FTP 服 务 器FTP 服 务 器IP重接入控制FTP用户登录配置散列算法端口协商空操作连接用户列表控制IP阻止接入控制系统用户登录配置非对称加密算法配置安全级别下载文件退出系统连接数控制匿名用户登录配置对称加密算法(CONFS)配置签名算法上传文件服务器系统图3-5 FTP服务器(FTP服务)体系结构图3.2 系统详细设计安全FTP服务器是一个基于COMMAND的网络应用系统,几乎每一条命令就是一个完整的流程,多个流程组成一个完整的服务。为了便于系统的维护,对系统中的各种常量进行了枚举封装,如数据类型,对这些相关的枚举进行进一步封装,把相关的操作进行模块化处理。在项目中大量的参数或信息都进行了类封装,如会话中的客户端信息和服务器端信息,这也充分体现了面向对象开发的特性。3.2.1 数据结构之枚举图3-6 枚举结构为了便于系统开发中代码的可读性,为了提高系统代码的可维护性,将常用的可穷举的数据类型封装成枚举。以上为该项目中所需的枚举。使用枚举可以从枚举值的名字知道其含义,同时如果需要改变一个枚举值关联的封装数据,可以很方便的修改枚举而不用从源代码中一处处的修改,提高了开发效率。1、DTPMode:该枚举是FTP中数据连接建立方式的枚举,即FTP工作模式的封装枚举:ACTIVE主动模式、PASSIVE被动模式、ALL同时支持主动模式和被动模式。2、FTPDataStracture:FTP传输中文件结构,包括File、Record、Page。3、FTPDataType:数据编码格式。包括ACDII、ENCDIC、IMAGE、LOCAL。4、SecurityLevel:该枚举用于标识用户所自定义的安全级别需求。NONE无信息安全处理的明文传输、SE需要保密性处理、SH需要保证完整性处理、SD需要支持抗否认性处理、SEH需要保密性和完整性处理、SED需要保密性和抗否认性处理、SHD需要完整性和抗否认性处理、SEHD需要保密性完整性及抗否认性处理。5、Purview:权限枚举。NONE、SUPPER、READ、READWRITE、READWRITEDELETE。6、FTPTransmissionMode:FTP传输模式枚举。STREAM、BLOCK、COMPRESSED。3.2.2 FTP子模块类结构图3-7 FTP子模块类结构FTP子模块是安全FTP服务器中的主模块、核心模块。在该模块中,实现了基于RFC959的FTP框架,并扩展了该框架增加了信息安全处理,消息号等等附加功能。1、FTPServer:该类由多个部分类(partial class)组成,是FTP服务器的核心类,所有功能的最终体现都在这个类里。该类为每一个FTP服务开启一个监听线程、为每一个成功建立会话的客户端建立一个文件传输服务线程、为每一个COMMAND建立一个或多个命令处理线程。2、FTPUtility:FTP功能实现的辅助工具类,实现各种常用的辅助方法。3、FTPDTPMode:对枚举DTPMode的进一步封装。4、FTPSessionS:会话中FTP服务器端的会话信息。与服务关联。5、FTPSessiobC:会话中FTP客户端的会话信息。与服务和用户关联。6、FTPDataType:对枚举FTPDataType的进一步封装。7、FTPDataStructure:对枚举FTPDataStructure业务逻辑层的进一步封装。8、FTPTransmissonMode:对枚举FTPTransmissonMode的进一步封装。3.2.3 信息安全处理模块类结构 图3-8 信息安全处理模块类结构 图3-9 FTP主模块类结构信息安全处理模块使用了一个类作为载体。加密解密,散列及其验证,签名及签名验证的基本实现(业务逻辑层)都集中在该类中。该类由FTPServer(FTP主模块)等和FTP主模块相关的类调用。加密解密包括对称加密解密和非对称加密解密两种。SymmetricDecrypto和SymmetricEncrypto方法是对称加密解密的方法,AsymmetricDecrypto和AsymmetricEncrypto是非对称加密解密的方法。散列是通过Hash实现的,GetHash和VerifyHash是散列和散列验证的实现方法。数据签名的实现方法是SighHash和VerifyDS。ByteToString、StringToByte、Key等为辅助方法。以下为对称加密解密的详细设计及其调用的IPO图(该类中其他模块的设计思路相同):1、配置对称加密解密算法1、对称加密解密算法名称2、块大小3、初始化向量4、密钥大小5、密钥向量6、密码模式7、填充模式输入1、用算法名建立一个算法实体2、配置块大小3、配置初始化向量4、配置密钥5、配置密码模式6、配置填充模式1、合法的对称加密解密算法实体处理输出图3-10配置对称加密解密算法IPO图对称算法配置是为了保存客户加密解密算法的相关参数,从而使加密解密具有确定性,达到信息保密性的特性并能获取明文信息。对称算法配置是从必要参数获取一个对称算法实体,从这些参数可以获取一个惟一的对称算法,这样可以保证在不用的时刻,不同的环境下,用相同的加密解密算法对数据进行加密解密。2、对称加密解密1、明文/密文字节数组2、对称加密解密算法实体输入1、加密/解密1、密文/明文字节数组处理输出图3-11对称加密解密IPO图对称加密把明文经过加密处理变成密文输出。对称加密需要输入加密算法,在解密时需要使用相同的加密算法,即解密算法与加密算法完全相同才能保证获取正确的明文解析。对称解密是对称加密的逆过程,是把密文还原成明文的过程。3、信息安全处理模块的调用1、回复客户端消息的明文字节数组2、关联客户端的对称加密解密算法实体输入1、信息安全处理模块中的加密处理1、回复客户端的密文字节数组处理输出图3-12 FTP主模块中ToSecurity方法对信息安全处理模块的调用IPO图4 数据库设计在安全FTP服务器中,需要保存大量的信息。采用数据库是较好的解决方案。需要持久化的信息包括用户权限组,用户信息,用户安全配置,客户访问日志,服务

温馨提示

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

评论

0/150

提交评论