FTPS
此條目需要擴充。 (2013年9月2日) |
此條目需要精通或熟悉電腦科學的編者參與及協助編輯。 (2013年9月2日) |
FTPS是一種對常用的檔案傳輸協定(FTP)添加傳輸層安全(TLS)和安全通訊協定(SSL)加密協定支援的擴充協定。
FTPS不應與基於SSH的SSH檔案傳輸協定或是Secure FTP協定相混淆。
背景
[編輯]在1971年的FTP草案用於科學與研究網絡ARPANET。[1]最初只有一小部分軍事用地和大學裏的少數人使用,可以使用網絡的人,任何人都可以操作存取,無視於用戶的數據安全和私隱要求。
隨着ARPANET逐漸被National Science Foundation Network所取代,以及之後隨着Internet的普及,上網人口越來越多。用戶端到伺服器端經過的路徑越來越長,未經授權的第三方竊聽數據傳輸的機會也因此增加。
1994年,瀏覽器公司網景開發與發佈安全通訊協定(SSL)的應用層封裝[2],該協定使應用程式在進行跨網絡通訊使用私人和安全的方式,防止竊聽、篡改、偽造訊息。它可以增加安全性,使用TCP連接,使HTTP經由SSL形成更安全的HTTPS。
SSL最終被應用到FTP,RFC草案發表在1996年底。[3]不久之後,官方IANA進行Port埠號註冊。然而,RFC卻沒有定案,直到2005年。[4]
已知的Linux客戶端有curl、lftp、wget(版本1.16以上)等。
使用模式
[編輯]有兩種不同模式被開發出來,隱式和顯式。
隱式(Implicit)
[編輯]隱式模式FTPS下不支援協商是否使用加密,所有的連接數據均為加密。客戶端必須先使用TLS Client Hello訊息向FTPS伺服器進行握手來建立加密連接。如果FTPS伺服器未收到此類訊息,則伺服器應斷開連接。 為了保持與現有的非FTPS感知客戶端的相容性,隱式FTPS預設在IANA規定的埠990/TCP上監聽FTPS控制通道,並在埠989/TCP上監聽FTPS數據通道[5]。這使得管理員可以保留埠(控制通道21/TCP與數據通道20/TCP)以相容原始的FTP。 RFC4217中未定義隱式模式。因此,它被認為是FTP協商TLS/SSL中過時的早期方法。
顯式(Explicit)
[編輯]顯式模式(也稱為FTPES),FTPS客戶端先與伺服器建立明文連接,然後從控制通道明確請求伺服器端升級為加密連接(Cmd: AUTH TLS)。 控制通道與數據通道預設埠與原始FTP一樣。控制通道始終加密,而數據通道是否加密則為可選項。 同時若伺服器未限制明文連接,也可以使用未加密的原始FTP進行連接,也就是說伺服器在相同的埠上同時提供FTP與FTPS服務。
參考文獻
[編輯]- ^ RFC-265: File Transfer Protocol (FTP). [2013-09-02]. (原始內容存檔於2017-07-08).
- ^ The SSL Protocol, Feb. 9th, 1995. [2013-09-02]. (原始內容存檔於2013-05-28).
- ^ RFC draft, Secure FTP Over SSL, revision 1996-11-26. [2013-09-02]. (原始內容存檔於2014-05-27).
- ^ RFC-4217: Securing FTP with TLS. [2013-09-02]. (原始內容存檔於2013-09-10).
- ^ Service Name and Transport Protocol Port Number Registry. [2019-08-18]. (原始內容存檔於2018-01-26).