




免費預覽已結束,剩余25頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
四川師范大學本科畢業(yè)設計安全FTP服務器的設計與實現(xiàn)學生姓名顏國寶院系名稱計算機科學學院專業(yè)名稱計算機科學與技術班 級2004級1班學 號2004110147指導教師馮朝勝四川師范大學教務處二八年五月安全FTP服務器的設計與實現(xiàn)學生姓名:顏國寶 指導教師:馮朝勝內容摘要:隨著信息安全技術的發(fā)展,信息安全越來越受到人們的關注。FTP服務器廣泛應用于我們的工作和生活之中,為了能更好的使用FTP服務器,也為了FTP服務器能適用于更廣的人群,F(xiàn)TP服務器有必要加入信息安全的輔助功能,同時為了能讓FTP服務器能更穩(wěn)定的運行,F(xiàn)TP服務器需要具有對網絡攻擊的主動防御能力。在此背景下,本文論述了安全FTP服務器的設計與實現(xiàn)。通過在FTP服務器中添加應用層的信息安全(如使用加密解密以保護數(shù)據(jù)的保密性,如使用散列以保護數(shù)據(jù)的完整性,如使用數(shù)字簽名以保證數(shù)據(jù)操作的抗否認性)從而保證數(shù)據(jù)從傳輸?shù)浇邮斩际前踩?;增加對網絡攻擊的防范(如使用消息號及連接數(shù)限制來抵抗重放攻擊等洪水攻擊),以保證FTP服務器的穩(wěn)健度;使用多線程機制實現(xiàn)對客戶端信息的及時接收和快速處理,以充分利用服務器硬件資源和保證高效的運行速度。該系統(tǒng)符合當前時代的需要,適用于幾乎所有場合及人群,可以方便地提供更安全,更穩(wěn)定,更快速的文件傳輸服務。關鍵字: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 系統(tǒng)分析62.1 需求分析62.2 功能說明72.2.1 服務器配置72.2.2 FTP服務82.2.3 FTP客戶端103 系統(tǒng)設計103.1 系統(tǒng)總體設計113.1.1 架構設計113.1.2 總體設計113.2 系統(tǒng)詳細設計133.2.1 數(shù)據(jù)結構之枚舉143.2.2 FTP子模塊類結構143.2.3 信息安全處理模塊類結構154 數(shù)據(jù)庫設計174.1 數(shù)據(jù)庫需求分析174.1.1 數(shù)據(jù)庫關系設計174.1.2 數(shù)據(jù)庫表概念設計184.2 數(shù)據(jù)庫表物理設計195 系統(tǒng)實現(xiàn)205.1 開發(fā)平臺205.2 模塊實現(xiàn)205.2.1 用戶登錄205.2.2 設置對稱加密算法226 測試、運行與維護236.1 測試236.1.1 單元測試236.1.2 功能測試246.1.3 安裝/部署測試246.1.4 系統(tǒng)綜合測試246.2 系統(tǒng)運行及維護247 結束語258 致謝26參考文獻2627安全FTP服務器的設計與實現(xiàn)1 概述隨著信息安全技術的發(fā)展,信息安全越來越受到人們的關注。FTP服務器廣泛應用于我們的工作和生活之中,為了能更好的使用FTP服務器,也為了FTP服務器能適用于更廣的人群,F(xiàn)TP服務器有必要加入信息安全的輔助功能,同時為了能讓FTP服務器能更穩(wěn)定的運行,F(xiàn)TP服務器需要具有對網絡攻擊的主動防御能力。在此背景下,本文論述了安全FTP服務器的設計與實現(xiàn)。通過在FTP服務器中添加應用層的信息安全(如使用加密解密以保護數(shù)據(jù)的保密性,如使用散列以保護數(shù)據(jù)的完整性,如使用數(shù)字簽名以保證數(shù)據(jù)操作的抗否認性)從而保證數(shù)據(jù)從傳輸?shù)浇邮斩际前踩模辉黾訉W絡攻擊的防范(如使用消息號及連接數(shù)限制來抵抗重放攻擊等洪水攻擊),以保證FTP服務器的穩(wěn)健度;使用多線程機制實現(xiàn)對客戶端信息的及時接收和快速處理,以充分利用服務器硬件資源和保證高效的運行速度。該系統(tǒng)符合當前時代的需要,適用于幾乎所有場合及人群,可以方便地提供更安全,更穩(wěn)定,更快速的文件傳輸服務。FTP用于管理計算機之間的文件傳輸,在因特網發(fā)展的早期時代用FTP傳輸文件約占整個因特網通信量的三分之一,只是到了1995年,WWW的通信量才首次超過了FTP。在今天,WWW仍然占據(jù)小數(shù)據(jù)傳輸?shù)闹饕袌龇蓊~,但對于相對較大的數(shù)據(jù)的傳輸FTP的地位不可動搖?,F(xiàn)有FTP幾乎都沒有任何安全保障。現(xiàn)有FTP都是基于RFC959標準,有統(tǒng)一的架構模式和兼容的體系標準,這樣可以在服務器端和客戶端選用不同的開發(fā)商開發(fā)的產品架構FTP系統(tǒng)。但RFC959標準最大的弱點就是沒有任何安全保障。當通信的數(shù)據(jù)在傳輸過程中,或通信內容被人截獲,或通信內容被人篡改,或通信內容被人偽造等等,在如此種種的情況下,通信被人攻擊都無法被接收者識別,數(shù)據(jù)的安全性受到極大的威脅,數(shù)據(jù)的通信將變的毫無意義,甚至適得其反,這將極大的損壞通信雙方甚至多方的利益,因此集成信息安全成分是大勢所趨。1.1 研究目的和意義FTP服務器為Internet上的網絡用戶或企業(yè)用戶提供文件傳輸服務,因此FTP服務器的穩(wěn)健運行非常重要。服務器的性能與數(shù)據(jù)(即文件)相關。試想一個文件的上傳下載遇到破壞或遭受攻擊,最小的損失就是損耗網絡帶寬,文件傳輸失敗,更甚之可能導致重要數(shù)據(jù)丟失,機密信息泄露。這對于服務方或客戶方都是絕對不允許的。今天的信息安全技術業(yè)已成熟,但在FTP上的應用卻微乎其微,市場需要安全的FTP是不爭的事實,甚至是刻不容緩,因此應該在當今成熟的信息安全技術之上,架構符合當今時代要求的FTP服務器。由于FTP功能眾多,所以FTP一直都是相當流行的。正因為如此,F(xiàn)TP服務器的缺陷所帶來的問題和所造成的經濟損失是不可估量的。本項目從FTP當今所存在的缺陷出發(fā),通過對數(shù)據(jù)進行加密傳輸,極大的保障了數(shù)據(jù)傳輸過程的保密性;對數(shù)據(jù)進行散列碼應用,防止數(shù)據(jù)在傳送過程中被修改;通過進行身份認證和數(shù)字簽名可以避免對文件操作行為的抵賴;通過使用消息號來防止重放攻擊總之,通過本項目的研究,提出了一種FTP服務器安全運行的機制和安全工作體系,在此基礎上開發(fā)出安全FTP服務器軟件,該軟件將使用目前各種可靠的安全通信算法來保證通信的安全,將集成有效的反攻擊技術來保證FTP服務器的安全可靠運行。明確上傳和下載的工作機制,著眼于FTP現(xiàn)存的缺陷開發(fā)出既能方便用戶上傳下載文件,又能保證通信安全,還能方便用戶進行安全配置的安全FTP服務器。安全FTP服務器開發(fā)成功必將為網絡資源的共享提供極大的方便?,F(xiàn)在市場上使用的FTP服務器相對來說還是比較穩(wěn)健的。其主要市場由Rob Beckers開發(fā)的Serv-U FTP Server占領。該軟件在安全方面已經支持傳輸層SSL協(xié)議,是個人FTP服務器的首選,當然也有很多商業(yè)用戶。但在普通傳輸層上構建應用層數(shù)據(jù)安全將更具有簡單的應用平臺,具有更大的市場范圍。服務器和客戶端的數(shù)據(jù)在傳輸前后(進入傳輸層前和離開傳輸層后)進行信息安全處理,保證在通道上傳輸?shù)臄?shù)據(jù)滿足相應的安全要求。這樣一方面比使用安全傳輸層具有更好的平臺適應性和適用性,也具有更大的靈活性,能夠滿足各類用戶的實際需求。多線程機制,可以極大地提高FTP服務器運算處理能力,提高服務器效率,縮短客戶端的請求時間和處理等待延遲。如此可以在相同的硬件環(huán)境下承受更多的客戶端請求,更快的處理客戶端請求,帶給客戶更好的用戶體驗。1.2 研究背景FTP已經有了一段發(fā)展歷程,建立了一套完善的措施,但在安全性方面沒有多大的發(fā)展,原因在于NWG沒有把安全性作為FTP的必要組成部分加以考慮。該項目的愿景就是在現(xiàn)有的FTP技術基礎上,為FTP注入信息安全的成分,包括保證通信的安全性,完整性,不可抵抗性等等,同時為了免于網絡攻擊,也為FTP增加了一些抵御網絡攻擊的措施。1.2.1 FTP與信息安全FTP已有三十多年的發(fā)展歷史,在這不長的發(fā)展時期里,已經具有了一套完整的FTP標準,這套標準還在不斷發(fā)展之中。在這期間也出現(xiàn)了不少的FTP軟件產品,客戶端軟件居多,服務器端軟件相對來說要少一些。FTP在信息安全方面也有一定的實踐和發(fā)展,例如對SSL的支持,但至今還沒有形成任何標準。上傳下載文件是互聯(lián)網提供給用戶的兩個極其重要的功能,用戶通過上傳文件能夠實現(xiàn)文件更新和共享,通過下載功能用戶能夠獲取需要的資源,而文件的上傳和下載都離不開文件傳輸服務器即FTP服務器。鑒于FTP的重要性和使用的頻繁性,針對FTP服務器的攻擊越來越多,對FTP服務器的安全運行造成巨大威脅和破壞。FTP服務器自身具有安全缺陷,基于它進行的數(shù)據(jù)傳送通常是采用明文形式,這就使得機要數(shù)據(jù)的傳送毫無保密可言。FTP傳輸?shù)氖敲魑?,這也意味著只要利用一個抓包或攔包工具就可以非常輕松地攔截到FTP用戶的登錄名與密碼,具有嚴重的安全隱患,特別是對于非常重要的FTP站點來說,登錄用戶名和密碼泄露就意味著整臺主機可能會受影響。隨著Internet的發(fā)展,針對FTP的入侵事件不斷發(fā)生,現(xiàn)有的防火墻、IDS等設備都不能有效防止入侵者篡改FTP服務器上的信息。為了保證數(shù)據(jù)傳輸?shù)陌踩?,許多公司都在自己的FTP服務器上加載了相關安全協(xié)議,比如說微軟,就在IIS中提供了SSL協(xié)議。該協(xié)議要求FTP服務器用戶先申請一個X.509v3公鑰數(shù)字證書,申請成功后將證書存于服務器上或其它可信第三方。用戶在上傳或下載之前,用戶首先要獲取服務器的數(shù)字公鑰證書。得到證書后,客戶端生成會話密鑰并將會話密鑰用公鑰加密后傳送給服務器,服務器使用私鑰解密加密的會話密鑰。在此之后,客戶端和服務器就使用會話密鑰來加密要傳送的數(shù)據(jù)。盡管可以通過加載SSL協(xié)議來保證數(shù)據(jù)通信的安全,然而,用戶卻沒有辦法按照實際安全需求來進行安全設置,同時“第三方”也限制了該機制的使用場合?,F(xiàn)存的FTP對上傳下載的管理存在很多問題,如沒有對相關操作進行日志記錄,從而造成抵賴性的發(fā)生。不可抵賴性包括對自己行為的不可抵賴及對行為發(fā)生的時間的不可抵賴?,F(xiàn)存FTP根本沒有防止不法分子對FTP的重放攻擊。移動節(jié)點使用經過認證的注冊請求消息在很大程度上增強了系統(tǒng)的安全性能,但是并不能防止重放攻擊。因為一個攻擊者可以將一個有效的注冊請求消息保存起來,然后等待一段時間后再重新發(fā)送這個消息來注冊一個偽造的轉交地址,從而達到重放攻擊的目的。FTP服務器除可以提供多用戶同時下載的功能外,還可以讓用戶上傳文件,在上傳和下載的同時,并發(fā)性沖突是FTP服務器常見的一個問題,還可以使用FTP遠程執(zhí)行命令,由于FTP一般需要帳戶和密碼,而且對于不同的帳戶可提供不同的權限,由于這么多的功能,所以FTP一直還是相當流行的。目前,國內外關于FTP服務器集安全策略和防止不可抵賴性、防止重放攻擊的一起的FTP服務器還沒有。隨著網絡和信息安全的不斷深入發(fā)展,F(xiàn)TP安全方面的問題顯得非常重要。當今社會在各個領域安全是必不可少的一項關鍵技術。信息安全的目標是保護信息的機密性,完整性,抗否認性,可用性。主要手段是通過加密,簽名來實現(xiàn)。機密性是指保證信息不被非授權訪問;完整性是指維護信息的一致性,保證信息不被非授權修改;抗否認性是保障用戶無法在事后否認曾經對信息進行的操作行為;可用性是指保障信息資源時刻提供服務的特性。密碼體制分為對稱密碼體制和非對稱密碼體制(即公鑰密碼體制),對稱密碼體制中主要有數(shù)據(jù)加密標準(DES),DES變形,高級加密標準(AES)等,非對稱密碼體制有RSA等,總的來說,對稱加密速度比非對稱加密要快,密碼體制可以保證數(shù)據(jù)的機密性;消息認證主要是保證數(shù)據(jù)完整性的措施,消息認證通過消息散列來實現(xiàn),散列是單向不可逆的操作,對于同一數(shù)據(jù)能產生唯一的固定的HASH值,通過原始消息和散列消息的比對可以確定數(shù)據(jù)是否被修改,從而實現(xiàn)數(shù)據(jù)的完整性,常用的散列算法有MD5,SHA等;數(shù)據(jù)簽名體制是保證消息抗否認性的措施,數(shù)字簽名有基于私鑰和公鑰機制的兩種機制,常用的數(shù)字簽名方式有基于RSA的簽名和DSS簽名等。RFC959是1985年發(fā)布的,當時并沒有把FTP安全性方面作為必要組成加以考慮。但在今天成熟的信息安全的技術基礎上,可以方便地把信息安全成分加入FTP。另一方面,網絡攻擊也有可能導致數(shù)據(jù)安全受到威脅。因此要做到真正的信息安全,也要對網絡攻擊進行必要的防范和預處理。重放攻擊就是網絡攻擊中的一種。重放攻擊就是攻擊者發(fā)送一個目的主機已接收過的包,來達到欺騙系統(tǒng)的目的,跳過或欺騙身份認證過程。無論是使用時間戳還是其他措施,預防重放攻擊的思路就是使用消息號。時間戳需要消息驗證雙方保證時間同步,因此使用常規(guī)的消息號是更好的替代方案。接受方只需判斷所接受的消息的消息號是否是期望值,從而抵抗消息重放。綜上所述:FTP服務器需要信息安全保障,需要具有抵御網絡攻擊的能力,需要更高的會話處理能力。1.2.2 FTP與RFCRFC是Request For Comment的縮寫,是請求注解的簡稱。所有關于Internet的正式標準都以文檔出版,但不是所有的RFC都是正式的標準,很多RFC的目的只是為了提供信息。RFC每一篇都用一個數(shù)字來標識,數(shù)字越大說明RFC 的內容越新。FTP協(xié)議的請求注解有RFC458,RFC542,RFC607,RFC614,RFC624等等,現(xiàn)行標準是RFC959。其描述FTP的目標是:1)促進程序/數(shù)據(jù)文件的共享;2)鼓勵(通過程序)使用遠程計算機;3)使用戶不必面對不同主機上不同文件系統(tǒng)的差異;4)對數(shù)據(jù)進行高效可靠的傳輸。FTP盡管可以直接在終端上應用,但它主要被設計通過程序來使用。FTP連接通道:FTP具有兩種通道控制連接通道(control connection)和數(shù)據(jù)連接通道(data connection)??刂七B接負責協(xié)商各種指定功能的命令,默認端口是21,數(shù)據(jù)連接負責傳輸數(shù)據(jù),端口由控制連接協(xié)商指定??刂七B接在會話開始時建立,會話結束時斷開,數(shù)據(jù)連接在需要時由控制連接建立??刂七B接在一個會話中只有一個,數(shù)據(jù)連接在會話中可以沒有,也可以有多個。FTP連接模式:FTP連接模式是指FTP數(shù)據(jù)連接通道上數(shù)據(jù)的連接模式。FTP具有兩種數(shù)據(jù)連接模式主動模式(PORT or ACTIVE)和被動模式(PASV)。主動模式有時稱“客戶端管理”,由客戶端開啟一個端口,等待服務器來建立連接。被動模式由服務器開啟一個端口,等待客戶端向服務器建立連接。一般來講,主動模式比被動模式更安全。FTP數(shù)據(jù)類型:FTP的RFC設計目標之一是通過設計簡單易實現(xiàn)的協(xié)議來試圖滿足大型機、小型機、個人工作站、TAC等用戶的需要,因此FTP支持多種數(shù)據(jù)類型,如ASCII編碼,EBCDIC編碼等。遠程登錄:遠程登錄(Remote Login)指用戶通過Internet登錄到遠程FTP服務器上。Internet上遠程登錄的主要方式是Telnet,F(xiàn)TP在登錄時使用的就是Telnet協(xié)議。Anonymous(匿名文件傳輸)能夠使用戶與遠程主機建立連接并以匿名身份操作遠程主機上的文件。1.2.3 FTP服務器軟件現(xiàn)在市場上具有多種FTP服務器端或客戶端軟件產品,這些產品都兼容RFC959最小實現(xiàn),因此幾乎可以實現(xiàn)RFC959的設計目標。一個好的通用的FTP服務器軟件應該完全實現(xiàn)RFC959的設計目標,同時應該根據(jù)當今時代的需要,融入信息安全等多方面的因素。即要做到兼容已經存在的FTP軟件產品,也要在今后的FTP發(fā)展中立于不敗之地。1.3 主要貢獻網絡上有一些FTP產品下載,但幾乎都沒有涉及到信息安全方面,因此只適合在不具有信息安全要求的場合使用,而基于傳輸層安全協(xié)議(如SSL)的FTP軟件需要復雜的配置??偠灾粋€集成應用層信息安全、網絡安全于一體的FTP軟件是市場需求驅動的必然結果。該安全FTP服務器是基于RFC959開發(fā)的一個通用FTP服務器,同時它集成了信息安全技術:一方面按實際要求可以對數(shù)據(jù)進行保密性、完整性、抗否認性等方面的處理,另一方面為了抵抗網絡攻擊,使用了消息號、連接數(shù)控制、IP控制策略等技術。主要貢獻如下:1、集成信息安全技術:使用加密解密對數(shù)據(jù)進行保密性保護,使用散列值對數(shù)據(jù)進行完整性保護,使用數(shù)字簽名對數(shù)據(jù)進行身份認證即抗否認性保證。以上三個方面可進行多方面的組合,對數(shù)據(jù)進行綜合性保護。2、抵御網絡攻擊:使用消息號抵抗重放攻擊,保證在用戶名和密碼安全的前提下服務器的絕對安全。使用連接數(shù)控制,IP接入控制來達到負載平衡,使不同的用戶可以獲取平均的資源,同時該措施也可以減少網絡攻擊。3、集成多線程機制:多線程可以更好更有效的使用硬件資源,提高數(shù)據(jù)處理能力。FTP服務器在接受大量用戶接入時,數(shù)據(jù)處理能力直接關系到其吞吐量。集成多線程即可以提高程序的處理能力,也可以提高用戶體驗。1.4 論文結構本文共分為八個主要部分:第一部分是概述,這部分主要說明了安全FTP服務器系統(tǒng)研究的必要性和重要性,即主要從市場和技術兩個角度說明為什么要開發(fā)這個系統(tǒng),開發(fā)出這個系統(tǒng)能解決什么問題以及通過研究和開發(fā)要達到的目標等。第二部分是安全FTP服務器的系統(tǒng)分析,在分析客戶需求的前提下,通過使用數(shù)據(jù)流程圖和功能模塊圖等說明本系統(tǒng)包括的主要功能。第三部分是系統(tǒng)設計,在系統(tǒng)分析的基礎上,結合系統(tǒng)架構圖,工作流程圖,體系結構圖,類架構圖,類圖,IPO圖等,分別說明系統(tǒng)的總體設計,系統(tǒng)詳細設計。第四部分是系統(tǒng)數(shù)據(jù)庫設計,根據(jù)系統(tǒng)分析,采用了數(shù)據(jù)庫關系圖和E-R圖幫助分析和設計本系統(tǒng)所使用的概念數(shù)據(jù)庫和物理數(shù)據(jù)庫。第五部分是系統(tǒng)實現(xiàn),主要通過程序流程圖對本系統(tǒng)的幾個主要的功能模塊的實現(xiàn)進行詳細的說明。第六部分是系統(tǒng)測試、運行與維護,主要說明該系統(tǒng)的開發(fā)在這些方面所做的工作。第七部分是總結篇,對該系統(tǒng)進行了綜述性的評述,并提出了系統(tǒng)可能存在的不足及解決方案。最后是該系統(tǒng)的設計和實現(xiàn)中所參考的各種有價值的資料列表。2 系統(tǒng)分析安全FTP服務器歸根到底是一個FTP服務器軟件,因此它首先具有FTP服務器所具有的基本功能,其次具有保護信息安全的各種策略,同時具有預防網絡攻擊的能力等。2.1 需求分析FTP服務器的基本功能是在RFC959中規(guī)定的,這也是和其他FTP軟件兼容的前提。FTP的基本功能概括的講,包括用戶遠程登錄,文件上傳下載等系列操作。每一個操作都是一組相關命令的集合,一個命令包括一個完整的請求回復流程。安全FTP服務器的設計在原有FTP模型上增加了消息號相關模塊和信息安全相關模塊。FTP的信息安全擴展功能主要包括加密解密,消息散列,消息簽名。服務器端客戶端應用層消息號附加模塊信息安全處理模塊客戶請求處理模塊信息安全解析模塊消息號驗證模塊應用層消息號獲取模塊信息安全解析模塊客戶請求構建模塊信息安全處理模塊消息號附加模塊傳 輸 層回復客戶請求圖2-1數(shù)據(jù)流程圖客戶請求數(shù)據(jù)流程從客戶請求構建模塊開始,以遠程登錄為起點,周而復始,到注銷為止。2.2 功能說明安全FTP服務器是網絡應用系統(tǒng),系統(tǒng)通過服務器端與客戶端之間傳遞命令消息,服務器端從命令消息中獲取操作類型和參數(shù)。在對相應的命令作處理后,把處理結果封裝成回復消息并返回給客戶端。以下為該系統(tǒng)中主要的功能模塊。配置用戶策略配置數(shù)據(jù)庫及初始化配置IP接入策略配置FTP服務信息配置FTP站點標識配置IP資源訪問策略安全FTP服務器服務器配置FTP服務FTP客戶端文件上傳連接服務器文件下載配置安全算法遠程登錄連接數(shù)控制遠程登錄IP接入控制其他命令接入控制IP重接入控制匿名用戶系統(tǒng)用戶FTP用戶配置加密算法配置散列算法配置簽名算法配置安全級別端口協(xié)商上傳文件下載文件刪除文件服務器系統(tǒng)退出命令信息安全配置圖2-2功能模塊圖2.2.1 服務器配置服務器配置是在服務器端對FTP服務進行配置的相關工作的總稱。配置數(shù)據(jù)庫及初始化數(shù)據(jù)庫采用工廠模式架構,用戶可以根據(jù)自己的喜好等選擇自己的數(shù)據(jù)庫類型,并配置相關的數(shù)據(jù)庫訪問連接字符串。同時初始化數(shù)據(jù)庫,建立數(shù)據(jù)庫及表,建立系統(tǒng)運行所需的基礎數(shù)據(jù)。數(shù)據(jù)庫通過配置文件實現(xiàn)數(shù)據(jù)庫工廠模式架構。數(shù)據(jù)庫及表的建立在應用程序中完成。該配置寫入配置文件(以下未做注明都視為寫入配置文件),該配置立即生效(以下未做注明都視為立即生效)。配置FTP站點標識配置FTP站點標識包括配置服務器FTP服務的服務描述,IP地址,根目錄等信息。IP地址和根目錄是必須的配置。IP地址為空或“ANY”時為關聯(lián)本機上所有IP地址。該配置寫入數(shù)據(jù)庫,該配置在服務下一次啟動時生效。配置FTP服務信息配置FTP服務信息包括FTP日志啟用配置,F(xiàn)TP資源訪問控制配置(拒絕訪問、允許訪問、使用IP限制訪問、使用用戶策略限制訪問),F(xiàn)TP安全傳輸管理(是否使用加密措施、是否使用消息號),F(xiàn)TP匿名允許訪問配置,F(xiàn)TP連接控制配置(限制連接數(shù)、限制連接超時、使用IP接入控制)等。該相關配置在服務下一次啟動時生效。配置用戶策略用戶策略就是用戶管理,包括用戶的添加、修改、刪除等功能。通過把用戶分屬到不同的用戶組,使用戶具有不同的操作權限,從而控制用戶的操作能力,保證資源的可控制訪問。該配置寫入數(shù)據(jù)庫。配置IP接入策略該系統(tǒng)在客戶端請求建立連接時,會對客戶端IP地址進行檢測,如果該地址被服務器端阻止,則不予建立FTP會話。配置接入IP策略就是為了阻止建立FTP會話的客戶端IP地址。在配置時,可以阻止一個IP,也可以阻止一個IP地址段。該配置寫入數(shù)據(jù)庫。配置IP資源訪問策略該系統(tǒng)在客戶端訪問資源時,對客戶IP進行了檢測,對于阻止訪問資源的IP地址不予資源的訪問能力。配置資源訪問IP策略就是為了滿足該方面的需求。在配置時,可以阻止一個IP,也可以阻止一個IP地址段。該配置寫入數(shù)據(jù)庫。2.2.2 FTP服務FTP服務是FTP服務器為客戶端提供資源服務的功能的集合。 接入控制接入控制是在客戶端建立TCP連接后對客戶端進行的一系列檢測,確定是否為該客戶連接建立FTP會話。連接數(shù)控制為了阻止一些網絡攻擊,該系統(tǒng)允許用戶配置是否使用連接數(shù)控制。在使用連接數(shù)控制時,客戶端連接超過連接數(shù)上限時,將暫時不再建立會話。此后的客戶端將競爭建立FTP會話。這樣可以從一定程度上保證負載均衡。IP接入控制IP接入控制是在客戶建立TCP連接后,對客戶端的IP進行檢測,如果該IP已經被阻止,則關閉TCP連接,不建立FTP會話。該功能是為了阻止已確認的惡意IP地址,或為了實現(xiàn)區(qū)域阻止等。IP重接入控制該功能是指一個IP只能建立一個FTP會話,這樣做是基于負載平衡考慮的。當一個IP上的客戶試圖建立新的會話時,F(xiàn)TP服務器將主動斷開TCP連接,不予建立FTP會話。 遠程登錄遠程登錄是客戶端用戶通過Internet對服務器資源訪問之前的用戶驗證。該功能通過命令消息傳遞客戶端用戶的用戶名和密碼,服務器接收后提取參數(shù)并在服務器端進行登錄驗證。匿名用戶匿名用戶是指以“ANONYMOUS”為用戶名登錄FTP服務器的用戶。該類用戶能夠訪問FTP服務器上的公有資源。該類用戶無需密碼驗證,只需向服務器聲明用戶名即可訪問服務器資源。系統(tǒng)用戶系統(tǒng)用戶是指FTP服務器所在主機的操作系統(tǒng)的用戶。這類用戶的驗證是由操作系統(tǒng)完成的。該類用戶具有最高級別的資源訪問權限,屬于超級用戶組成員。FTP用戶FTP用戶是指由FTP管理員管理的所有用戶,這類用戶的信息存儲在數(shù)據(jù)庫中。由管理員將其分配到不同的權限組,賦予不同的操作權限。 信息安全配置該功能模塊是在RFC959標準上擴展的信息安全模塊。主要用于客戶端配置具有自我選擇的安全算法及算法屬性。配置信息保存在數(shù)據(jù)庫中。配置加密算法加密算法是為了保證數(shù)據(jù)的保密性而使用的。配置加密算法包括配置對稱加密算法(配置命令為CONS)和配置非對稱加密算法(配置命令為CONA)。在系統(tǒng)中可使用的對稱加密算法包括DES,RC2,Triple-DES/3DES,AES/Rijndael等,非對稱算法包括RSA等。配置散列算法散列算法是為了保證數(shù)據(jù)的完整性。發(fā)送方將消息散列值附加到消息之后,接收方對接收的消息進行散列驗證以確定消息是否為原始未修改的消息??膳渲玫纳⒘兴惴ò∕D5,SHA128,SHA256,SHA384,SHA512等。配置簽名算法配置簽名算法是為了使用數(shù)字簽名機制,可配置的簽名算法有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等三十三個命令。端口協(xié)商端口協(xié)商是指在服務器與客戶端傳輸數(shù)據(jù)之前,雙方為建立數(shù)據(jù)連接所做的準備工作。在主動模式下,客戶端通過PORT命令和服務器完成端口的協(xié)商,客戶端把自己的偵聽端口告知服務器。在傳輸數(shù)據(jù)時,服務器主動連接客戶端的偵聽端口,建立數(shù)據(jù)連接,然后傳輸數(shù)據(jù)。上傳文件上傳文件是指客戶端把文件保存到服務器上。上傳文件先通過控制連接協(xié)商數(shù)據(jù)連接端口,在完成該工作后,客戶端通過使用STOR等命令將本地文件上傳到服務器。下載文件下載文件是指客戶端從服務器獲取文件資源。其他除上面涉及到的5個擴展命令及5個標準命令,還有二十多個標準命令,同時在實際使用中,還有一些常用的擴展命令,如SIZE命令用于獲取文件的大小。2.2.3 FTP客戶端FTP客戶端用于從服務器獲取文件服務,簡單來講包括文件存儲服務和獲取文件資源兩大類服務。FTP客戶端是FTP服務器對應的一部分??蛻舳酥饕獦嫿ǚ掌魉С值母髅?,將合法的命令發(fā)送到服務器,然后獲取服務器提供的命令相關的服務。3 系統(tǒng)設計安全FTP服務器系統(tǒng)采用客戶端/服務器模式進行頂層架構,在服務器端用Windows服務提供持續(xù)的服務,客戶端采用窗體應用程序與服務器進行交互。3.1 系統(tǒng)總體設計FTP服務器端由一個FTP服務器配置的窗體應用程序和一個提供服務的Windows服務組成。前者負責配置FTP服務所需要的各種參數(shù),后者負責為客戶提供永久的服務。服務器配置實時寫入配置文件或數(shù)據(jù)庫,服務在啟動時讀取配置文件并以新的服務器參數(shù)運行FTP服務。3.1.1 架構設計圖3-1系統(tǒng)架構圖服務端由于服務器的特殊性需要長期的不間斷的運行,所以用Windows服務來承載FTP。但為了達到FTP服務器具有通用性的目的,需要把FTP的一些功能參數(shù)化,通過參數(shù)的值決定功能的開啟與關閉等。同時由于Windows服務環(huán)境下運行的FTP服務需要相關的配置或其他操作及管理等,因此FTP服務器還需要能夠提供用戶交互的窗體應用程序對FTP服務器進行管理。安全FTP服務器采用C/S進行頂層架構,服務器端由FTP服務器,配置終端和數(shù)據(jù)庫管理系統(tǒng)組成(如有必要可添加防火墻等以增加安全性)。服務器和客戶端通過Internet進行溝通交流。安全FTP服務器由用于配置和管理FTP服務器的一個窗體應用程序和一個對外提供FTP服務的Windows服務組成。窗體應用程序對FTP服務器進行服務器端的相應配置,并保存到配置文件和數(shù)據(jù)庫中。Windows Service接收遠程主機的連接,為遠程主機上的用戶提供文件傳輸?shù)确铡?.1.2 總體設計安全FTP服務器的數(shù)據(jù)處理是圍繞命令來進行的,一條命令就是一個完整的處理流程。不同的命令決定了不同的功能(即請求的服務)。 系統(tǒng)工作流程該系統(tǒng)服務器端和客戶端的工作流程組成一個完整的工作流程環(huán)路。如下圖所示:消息接受圖3-2服務端工作流程客戶消息號驗證安全解析命令處理回復消息號附加安全處理回復構建提供服務服務器端接收客戶端的請求,并對客戶段的請求進行處理,每一條命令都將進行一個完整的服務器端工作流程。請求構建圖3-3客戶端工作流程服務端安全處理消息號附加發(fā)送請求本地化處理安全解析消息號獲取接受回復獲取服務客戶端工作流程分為兩部分。在建立連接時獲取一個消息號或者使用上一次命令請求返回的消息號,每次請求首先構建一個請求消息發(fā)送給服務器,然后等待服務器處理完后接收服務器的處理結果并獲取服務進行所需的相關本地處理。 系統(tǒng)體系結構安全FTP服務器的功能模塊已在需求分析中給出?,F(xiàn)將各功能進行細化,進行進一步的模塊劃分,得出系統(tǒng)的體系結構圖。安全FTP服務器體系由外部數(shù)據(jù)和內部數(shù)據(jù)組成。系統(tǒng)外部數(shù)據(jù)主要由外部文件和數(shù)據(jù)庫組成。系統(tǒng)內部數(shù)據(jù)由FTP服務器,客戶端程序組成。外部數(shù)據(jù)包括以下三大類:1、應用程序配置文件:該類文件保存可執(zhí)行文件的必要配置信息。如數(shù)據(jù)庫類型,數(shù)據(jù)庫連接字符串等。2、服務配置信息:該類配置文件保存FTP服務的相關配置信息,如使用日志,允許匿名登錄等。3、FTP系統(tǒng)運行日志:該類文件用于記錄系統(tǒng)的客戶端與服務器交互日志,數(shù)據(jù)庫訪問異常日志,系統(tǒng)運行異常日志等。數(shù)據(jù)庫文件包括常用信息等各種表,諸如服務信息,用戶信息,服務配置日志,客戶端訪問日志等。內部數(shù)據(jù)包括FTP配置程序,F(xiàn)TP服務程序,F(xiàn)TP客戶端等。系統(tǒng)的體系結構如下圖所示:FTP客戶端外部文件外 部 數(shù) 據(jù)數(shù)據(jù)庫FTP 服 務 器FTP配置程序FTP服務程序程序配置服務配置程序配置服務配置運行日志運行日志配置數(shù)據(jù)庫類型連接服務器消息號獲取安全級別配置安全算法配置消息號附加遠程登錄退出FTP會話文件上傳功能組文件下載功能組初始化數(shù)據(jù)庫配置服務標識服務安裝卸載管理服務起停管理配置服務信息配置用戶策略配置IP接入策略配置IP訪問策略(見圖 3-5)圖3-4安全FTP服務器系統(tǒng)體系結構圖內 部 數(shù) 據(jù)安 全 FTP 服 務 器FTP 服 務 器IP重接入控制FTP用戶登錄配置散列算法端口協(xié)商空操作連接用戶列表控制IP阻止接入控制系統(tǒng)用戶登錄配置非對稱加密算法配置安全級別下載文件退出系統(tǒng)連接數(shù)控制匿名用戶登錄配置對稱加密算法(CONFS)配置簽名算法上傳文件服務器系統(tǒng)圖3-5 FTP服務器(FTP服務)體系結構圖3.2 系統(tǒng)詳細設計安全FTP服務器是一個基于COMMAND的網絡應用系統(tǒng),幾乎每一條命令就是一個完整的流程,多個流程組成一個完整的服務。為了便于系統(tǒng)的維護,對系統(tǒng)中的各種常量進行了枚舉封裝,如數(shù)據(jù)類型,對這些相關的枚舉進行進一步封裝,把相關的操作進行模塊化處理。在項目中大量的參數(shù)或信息都進行了類封裝,如會話中的客戶端信息和服務器端信息,這也充分體現(xiàn)了面向對象開發(fā)的特性。3.2.1 數(shù)據(jù)結構之枚舉圖3-6 枚舉結構為了便于系統(tǒng)開發(fā)中代碼的可讀性,為了提高系統(tǒng)代碼的可維護性,將常用的可窮舉的數(shù)據(jù)類型封裝成枚舉。以上為該項目中所需的枚舉。使用枚舉可以從枚舉值的名字知道其含義,同時如果需要改變一個枚舉值關聯(lián)的封裝數(shù)據(jù),可以很方便的修改枚舉而不用從源代碼中一處處的修改,提高了開發(fā)效率。1、DTPMode:該枚舉是FTP中數(shù)據(jù)連接建立方式的枚舉,即FTP工作模式的封裝枚舉:ACTIVE主動模式、PASSIVE被動模式、ALL同時支持主動模式和被動模式。2、FTPDataStracture:FTP傳輸中文件結構,包括File、Record、Page。3、FTPDataType:數(shù)據(jù)編碼格式。包括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服務器中的主模塊、核心模塊。在該模塊中,實現(xiàn)了基于RFC959的FTP框架,并擴展了該框架增加了信息安全處理,消息號等等附加功能。1、FTPServer:該類由多個部分類(partial class)組成,是FTP服務器的核心類,所有功能的最終體現(xiàn)都在這個類里。該類為每一個FTP服務開啟一個監(jiān)聽線程、為每一個成功建立會話的客戶端建立一個文件傳輸服務線程、為每一個COMMAND建立一個或多個命令處理線程。2、FTPUtility:FTP功能實現(xiàn)的輔助工具類,實現(xiàn)各種常用的輔助方法。3、FTPDTPMode:對枚舉DTPMode的進一步封裝。4、FTPSessionS:會話中FTP服務器端的會話信息。與服務關聯(lián)。5、FTPSessiobC:會話中FTP客戶端的會話信息。與服務和用戶關聯(lián)。6、FTPDataType:對枚舉FTPDataType的進一步封裝。7、FTPDataStructure:對枚舉FTPDataStructure業(yè)務邏輯層的進一步封裝。8、FTPTransmissonMode:對枚舉FTPTransmissonMode的進一步封裝。3.2.3 信息安全處理模塊類結構 圖3-8 信息安全處理模塊類結構 圖3-9 FTP主模塊類結構信息安全處理模塊使用了一個類作為載體。加密解密,散列及其驗證,簽名及簽名驗證的基本實現(xiàn)(業(yè)務邏輯層)都集中在該類中。該類由FTPServer(FTP主模塊)等和FTP主模塊相關的類調用。加密解密包括對稱加密解密和非對稱加密解密兩種。SymmetricDecrypto和SymmetricEncrypto方法是對稱加密解密的方法,AsymmetricDecrypto和AsymmetricEncrypto是非對稱加密解密的方法。散列是通過Hash實現(xiàn)的,GetHash和VerifyHash是散列和散列驗證的實現(xiàn)方法。數(shù)據(jù)簽名的實現(xiàn)方法是SighHash和VerifyDS。ByteToString、StringToByte、Key等為輔助方法。以下為對稱加密解密的詳細設計及其調用的IPO圖(該類中其他模塊的設計思路相同):1、配置對稱加密解密算法1、對稱加密解密算法名稱2、塊大小3、初始化向量4、密鑰大小5、密鑰向量6、密碼模式7、填充模式輸入1、用算法名建立一個算法實體2、配置塊大小3、配置初始化向量4、配置密鑰5、配置密碼模式6、配置填充模式1、合法的對稱加密解密算法實體處理輸出圖3-10配置對稱加密解密算法IPO圖對稱算法配置是為了保存客戶加密解密算法的相關參數(shù),從而使加密解密具有確定性,達到信息保密性的特性并能獲取明文信息。對稱算法配置是從必要參數(shù)獲取一個對稱算法實體,從這些參數(shù)可以獲取一個惟一的對稱算法,這樣可以保證在不用的時刻,不同的環(huán)境下,用相同的加密解密算法對數(shù)據(jù)進行加密解密。2、對稱加密解密1、明文/密文字節(jié)數(shù)組2、對稱加密解密算法實體輸入1、加密/解密1、密文/明文字節(jié)數(shù)組處理輸出圖3-11對稱加密解密IPO圖對稱加密把明文經過加密處理變成密文輸出。對稱加密需要輸入加密算法,在解密時需要使用相同的加密算法,即解密算法與加密算法完全相同才能保證獲取正確的明文解析。對稱解密是對稱加密的逆過程,是把密文還原成明文的過程。3、信息安全處理模塊的調用1、回復客戶端消息的明文字節(jié)數(shù)組2、關聯(lián)客戶端的對稱加密解密算法實體輸入1、信息安全處理模塊中的加密處理1、回復客戶端的密文字節(jié)數(shù)組處理輸出圖3-12 FTP主模塊中ToSecurity方法對信息安全處理模塊的調用IPO圖4 數(shù)據(jù)庫設計在安全FTP服務器中,需要保存大量的信息。采用數(shù)據(jù)庫是較好的解決方案。需要持久化的信息包括用戶權限組,用戶信息,用戶安全配置,客戶訪問日志,服務
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論