網絡與信息安全概論 丁力
FTP的安全問題
摘要
文件傳輸協議(File Transfer Protocol,FTP)是一個被廣泛應用的協議,它使得
我們能夠在網絡上方便地傳輸文件。早期FTP并沒有涉及安全問題,隨著互連網
應用的快速增長,人們對安全的要求也不斷提高。本文在介紹了FTP協議的基本
特征后,從兩個方面探討了FTP安全問題的解決方案:協議在安全功能方面擴
展;協議自身的安全問題以及用戶如何防范之。
1. 簡介
1.1 FTP的一些特性
早期對FTP的定義指出,FTP是一個ARPA計算機網絡上主機間文件傳輸的用戶級協
議。其主要功能是方便主機間的文件傳輸,并且允許在其他主機上進行方便的存
儲和文件處理。[BA72]而現在FTP的應用范圍則是Inte.net。
根據FTP STD 9定義,FTP的目標包括:[PR85]
1) 促進文件(程序或數據)的共享
2) 支持間接或隱式地使用遠程計算機
3) 幫助用戶避開主機上不同的
4) 可靠并有效地傳輸數據
關于FTP的一些其他性質包括:FTP可以被用戶在終端使用,但通常是給程序使用
的。FTP中主要采用了傳輸控制協議(Transmission Control Protocol,TCP)[PJ81],
和Telnet 協議[PJ83]。
1.2 重要歷史事件[PR85]
1971年,第一個FTP的RFC(RFC 114)由A.K. Bhushan在1971年提出,同時由MIT與
Harvard實驗實現。
1972年,RFC 172 提供了主機間文件傳輸的一個用戶級協議。
1973年2月,在長期討論(RFC 265,RFC 294,RFC 354,RFC 385,RFC 430)
后,出現了一個官方文檔RFC 454。
1973年8月,出現了一個修訂后的新官方文檔 RFC 542。確立了FTP的功能、目標
和基本模型。當時數據傳輸協議采用NCP。
1980年,由于底層協議從NCP改變為TCP,RFC 765 定義了采用TCP的FTP。
1985年,一個作用持續至今的官方文檔RFC 959(STD 9)出臺。
1.3 FTP模型[PR85]
就模型而言,從1973年以來并沒有什么變化。下圖是FTP使用模型:
-------------
|/---------|
|| User || --------
||Interface|---| User |
|----^----/| --------
---------- | | |
|/------| FTP Commands |/----V----|
||Server|----------------| User ||
|| PI || FTP Replies || PI ||
|--^---/| |----^----/|
| | | | | |
-------- |/--V---| Data |/----V----| --------
| File |---|Server|----------------| User |---| File |
|System| || DTP || Connection || DTP || |System|
-------- |------/| |---------/| --------
---------- -------------
Server-FTP USER-FTP
注: 1. data connection 可以雙向使用(雙工)
2. data connection 不需要一直存在.
圖一 FTP使用模型
術語
User PI(user-protocol interpreter): 用戶協議解釋器
Server PI(Server-protocol interpreter): 服務協議解釋器
control connection:控制連接
Data connection:數據連接
FTP Commands:FTP命令。描述Data connection的參數,文件操作類型
FTP Replies:FTP命令
在圖一描述的模型中,User PI創建control connection。control connection
遵從Telnet協議。在用戶初始化階段,標準FTP命令被User PI生成并通過
control connection 傳到服務器處理。Server PI將相應的標準FTP應答通過
control connection回傳給User PI。數據傳輸由Data connection完成。
User DTP 在特定端口監聽,由Server DTP 用指定參數初始化連接。
另一種情形是用戶希望在兩臺非本地的主機上傳遞文件。用戶與兩個服務器建立
control connection,安排兩個服務器間的文件傳輸。下圖描述了這樣的模型。
Control ------------ Control
---------->| User-FTP |<-----------
| | User-PI | |
| | "C" | |
V ------------ V
-------------- --------------
| Server-FTP | Data Connection | Server-FTP |
| "A" |----------------------| "B" |
-------------- Port (A) Port (B) --------------
圖二 服務器間交互娘