安全FTP服务器的设计与实现.docx
《安全FTP服务器的设计与实现.docx》由会员分享,可在线阅读,更多相关《安全FTP服务器的设计与实现.docx(41页珍藏版)》请在冰豆网上搜索。
安全FTP服务器的设计与实现
四川师范大学本科毕业设计
安全FTP服务器的设计与实现
学生姓名
院系名称
专业名称
班级
学号指导教师
颜国宝计算机科学学院计算机科学与技术2004级1班2004110147冯朝胜
四川师范大学教务处
二○○八年五月
安全FTP服务器的设计与实现
学生姓名:
颜国宝指导教师:
冯朝胜
内容摘要:
随着信息安全技术的发展,信息安全越来越受到人们的关注。
FTP服务器广泛应用于我们的工作和生活之中,为了能更好的使用FTP服务器,也为了FTP服务器能适用于更广的人群,FTP服务器有必要加入信息安全的辅助功能,同时为了能让FTP服务器能更稳定的运行,FTP服务器需要具有对网络攻击的主动防御能力。
在此背景下,本文论述了安全FTP服务器的设计与实现。
通过在FTP服务器中添加应用层的信息安全(如使用加密解密以保护数据的保密性,如使用散列以保护数据的完整性,如使用数字签名以保证数据操作的抗否认性)从而保证数据从传输到接收都是安全的;增加对网络攻击的防范(如使用消息号及连接数限制来抵抗重放攻击等洪水攻击),以保证FTP服务器的稳健度;使用多线程机制实现对客户端信息的及时接收和快速处理,以充分利用服务器硬件资源和保证高效的运行速度。
该系统符合当前时代的需要,适用于几乎所有场合及人群,可以方便地提供更安全,更稳定,更快速的文件传输服务。
关键字:
FTP服务器,信息安全,消息号,多线程
ThedesignandtherealizationaboutSecureFTPServer
Abstract:
Alongwiththedevelopmentofinformationsecuritytechnology,itreceivespeople'sattentionmoreandmore.TheFTPserverwidelyusedinourworkandthelife,inorderthatwecanbetteruseFTPserver,andforthatitcanbesuitablefortheFTPservertoabroadercrowd,theFTPservicehasthenecessitytobejoinedtheauxiliaryfunctionoftheinformationsecurity.AtthesametimetoenabletheFTPservertorunmorestabler,itneedstoowntheguardabilityattacktioninitiativelyinnetwork.Underthisbackground,thisarticleelaboratedthedesignandtherealizationaboutSecureFTPServer.ThroughincreasingtheinformationsecurityintheapplicationlayeroftheFTPserver(forexample,useencryptionanddecryptiontokeepdatasecrecy,suchasusesHashAlgorithmtomakedataintegrity,orusedigitalsignaturetoguaranteesanti-denialnatureofthedatamanipulationsoitcanguaranteethedatasafefromthetransmissiontothe
reception,whichcanincreaseguardtothenetworkattacktion(forinstance,usenewsnumberandconnectionnumbertolimittheresistsfloodattacksandsoon,whichincludinginreplayattack,toguaranteethesteadinessofFTPserver;Theuseofmultithreadingmechanismcanrealizetopromptreceiveoftheclientsideinformationandfastprocessing,inordertofulluseserverhardwareresourcesandguaranteehighlyeffectiverunningrate.Thissystemconformstotheneedincurrenttime,andcanbesuitabletoallsituationsandthecrowd,mayprovidefiletransferserviceconveniently,safely,stably,andmorefaster.Keywords:
FTPserver,informationsecurity,messageid,multithreading
1概述.................................................................1
1.1研究目的和意义...................................................1
1.2研究背景.........................................................2
1.2.1FTP与信息安全...............................................2
1.2.2FTP与RFC....................................................4
1.2.3FTP服务器软件...............................................4
1.3主要贡献.........................................................5
1.4论文结构.........................................................5
2系统分析.............................................................6
2.1需求分析.........................................................6
2.2功能说明.........................................................7
2.2.1服务器配置...................................................7
2.2.2FTP服务.....................................................8
2.2.3FTP客户端..................................................10
3系统设计............................................................10
3.1系统总体设计....................................................11
3.1.1架构设计....................................................11
3.1.2总体设计....................................................11
3.2系统详细设计....................................................13
3.2.1数据结构之枚举..............................................14
3.2.2FTP子模块类结构............................................14
3.2.3信息安全处理模块类结构......................................15
4数据库设计..........................................................17
4.1数据库需求分析..................................................17
4.1.1数据库关系设计..............................................17
4.1.2数据库表概念设计............................................18
4.2数据库表物理设计................................................19
5系统实现............................................................20
5.1开发平台........................................................20
5.2模块实现........................................................20
5.2.1用户登录....................................................20
5.2.2设置对称加密算法............................................22
6测试、运行与维护....................................................23
6.1测试............................................................23
6.1.1单元测试....................................................23
6.1.2功能测试....................................................24
6.1.3安装/部署测试...............................................24
6.1.4系统综合测试................................................24
6.2系统运行及维护..................................................24
7结束语..............................................................25
8致谢................................................................26
参考文献..............................................................26
安全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服务器相对来说还是比较稳健的。
其主要市场由RobBeckers开发的Serv-UFTPServer占领。
该软件在安全方面已经支持传输层SSL协议,是个人FTP服务器的首选,当然也有很多商业用户。
但在普通传输层上构建应用层数据安全将更具有简单的应用平台,具有更大的市场范围。
服务器和客户端的数据在传输前后(进入传输层前和离开传输层后)进行信息安全处理,保证在通道上传输的数据满足相应的安全要求。
这样一方面比使用安全传输层具有更好的平台适应性和适用性,也具有更大的灵活性,能够满足各类用户的实际需求。
多线程机制,可以极大地提高FTP服务器运算处理能力,提高服务器效率,缩短客户端的请求时间和处理等待延迟。
如此可以在相同的硬件环境下承受更多的客户端请求,更快的处理客户端请求,带给客户更好的用户体验。
1.2研究背景
FTP已经有了一段发展历程,建立了一套完善的措施,但在安全性方面没有多大的发展,原因在于NWG没有把安全性作为FTP的必要组成部分加以考虑。
该项目的愿景就是在现有的FTP技术基础上,为FTP注入信息安全的成分,包括保证通信的安全性,完整性,不可抵抗性等等,同时为了免于网络攻击,也为FTP增加了一些抵御网络攻击的措施。
1.2.1FTP与信息安全
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.2FTP与RFC
RFC是RequestForComment的缩写,是请求注解的简称。
所有关于Internet的正式标准都以文档出版,但不是所有的RFC都是正式的标准,很多RFC的目的只是为了提供信息。
RFC每一篇都用一个数字来标识,数字越大说明RFC的内容越新。
FTP协议的请求注解有RFC458,RFC542,RFC607,RFC614,RFC624等等,现行标准是RFC959。
其描述FTP的目标是:
1)促进程序/数据文件的共享;2)鼓励(通过程序)使用远程计算机;3)使用户不必面对不同主机上不同文件系统的差异;4)对数据进行高效可靠的传输。
FTP尽管可以直接在终端上应用,但它主要被设计通过程序来使用。
FTP连接通道:
FTP具有两种通道——控制连接通道(controlconnection)和数据连接通道(dataconnection)。
控制连接负责协商各种指定功能的命令,默认端口是21,数据连接负责传输数据,端口由控制连接协商指定。
控制连接在会话开始时建立,会话结束时断开,数据连接在需要时由控制连接建立。
控制连接在一个会话中只有一个,数据连接在会话中可以没有,也可以有多个