FTPS

FTPS是一种对常用的文件传输协议（FTP）添加传输层安全（TLS）和安全套接层（SSL）加密协议支持的扩展协议。

FTPS不應與基於SSH的SSH文件传输协议或是Secure FTP协议相混淆。

背景
在1971年的FTP草案用於科學與研究網路ARPANET。最初只有一小部分軍事用地和大學裡的少數人使用，可以使用網路的人，任何人都可以操作存取，無視於用戶的數據安全和隱私要求。

隨著ARPANET逐漸被所取代，以及之後隨著Internet的普及，上網人口越來越多。用戶端到伺服器端經過的路徑越來越長，未經授權的第三方竊聽數據傳輸的機會也因此增加。

1994年，瀏覽器公司網景開發與發布安全套接层（SSL）的应用层封裝，該協議使應用程序在進行跨網路通信使用私人和安全的方式，防止竊聽、篡改、偽造消息。它可以增加安全性，使用TCP連接，使HTTP經由SSL形成更安全的HTTPS。

SSL最終被應用到FTP，RFC草案發表在1996年底。不久之後，官方IANA進行Port埠號註冊。然而，RFC卻沒有定案，直到2005年。

已知的Linux客户端有curl、lftp、wget（版本1.16以上）等。

使用模式
有兩種不同模式被開發出來，隱式和顯式。

隱式（Implicit）
隐式模式FTPS下不支持协商是否使用加密，所有的连接数据均为加密。客户端必须先使用TLS Client Hello消息向FTPS服务器进行握手来建立加密连接。如果FTPS服务器未收到此类消息，则服务器应断开连接。
为了保持与现有的非FTPS感知客户端的兼容性，隐式FTPS默认在IANA规定的端口990/TCP上监听FTPS控制通道，并在端口989/TCP上监听FTPS数据通道。这使得管理员可以保留端口(控制通道21/TCP与数据通道20/TCP)以兼容原始的FTP。
RFC4217中未定义隐式模式。因此，它被认为是FTP协商TLS/SSL中过时的早期方法。

顯式（Explicit）
显式模式（也称为FTPES），FTPS客户端先与服务器建立明文连接，然后从控制通道明确请求服务端升级为加密连接（Cmd: AUTH TLS）。
控制通道与数据通道默认端口与原始FTP一样。控制通道始终加密，而数据通道是否加密则为可选项。
同时若服务器未限制明文连接，也可以使用未加密的原始FTP进行连接，也就是说服务器在相同的端口上同时提供FTP与FTPS服务。

参考文献 

文件传输协议
网络协议
应用层协议
傳輸層安全協議