檔案傳輸協定 File Transfer Protocol, FTP)
是網際網路上傳輸檔案的協定,建立在主從架構 (client-server architecture) 上,FTP 使用 SSL/TLS 和 SSH 加密來確保資料安全。FTP 伺服器使用簡單的登入機制提供使用者存取檔案。雖然我們可以用 HTTP 傳輸檔案,對於大型檔案 FTP 是比較好的選擇。
FTP 的客戶端包括 3 個元件:使用者介面(user interface)、客戶端控制程序(clienet control process)、客戶端資料傳輸程序(client data tranfer process)。伺服器端包括 2 個元件:伺服器控制程序(server control process)、伺服器資料傳輸程序(server data transfer process)。控制連結(control connection)建立在控制程序(control process)之間。 資料連結(data connection)建立在資料傳輸程序(data transfer process)之間。
source:https://www.geeksforgeeks.org/file-transfer-protocol-ftp-in-application-layer/
指令和資料傳輸分離使 FTP 更有效率。控制連結使用簡單的通訊規則,因為它一次只需要傳送一行的指令或回應。資料連結則需要較複雜的規則,因為它需要傳送各種不同型態的資料檔案。
FTP 支援兩種運作模式:
主動模式:控制連結由 FTP 客戶端建立後,伺服器建立資料連結,開始向客戶端傳送資料。
被動模式:客戶端建立從客戶端到伺服器的控制連結和資料連結。
source:Ethical Hacking and Countermeasures by EC-Council P.3605
FTP 設計時,安全性並不是重要議題。FPT 需要密碼,但密碼是以純文字傳送,容易被駭客攔截和冒用,資料傳輸也是以不安全的純文字方式傳送。
安全檔案傳輸協定 Secure File Transfer Protocol, SFTP)
SFTP 是安全版本的 FTP,是透過SSH 2.0 的擴充提供安全檔案傳輸能力。
source:Ethical Hacking and Countermeasures by EC-Council P.3606
**(Trivial File Transfer Protocol, TFTP)