FTPS (File Transfer Protocol over SSL/TLS) は、FTPで送受信するデータをTLSまたはSSLで暗号化する通信プロトコル。IETFにより、RFC 2228 や RFC 4217 で標準化されている。

既定のWell-known Portは、990/tcp[1]。

SFTP (SSH File Transfer Protocol) はSSHの上でFTPとは別個のプロトコルにてファイル転送を実現するコマンドである。そのためSFTPはSSHのポートを使い既定のWell-known Portは22/tcpであり、FTPSとは全くの別物である。

概要

FTPの認証で送信されるユーザ名とパスワードの電文は、暗号化されていない状態(クリアテキスト)であるため、第三者に盗聴・侵入される危険性がある。FTPSはその危険性を回避するために制定された。

FTP は、1971年にARPANET用に策定された。 当時、ARPANETへのアクセスは軍事機関や大学に限られ、セキュリティ対策は不要だった[2]。

ARPANETがNSFNETを経てインターネットへと発展するにつれ、データの送受信がより広範になり、盗聴のリスクも増加した。

1994年、NetscapeはSSLを開発し、安全な通信を実現した。 これは特にHTTPと組み合わせてHTTPSとして利用された[3]。

SSLはFTPにも適用され、1996年にドラフト版RFCが公開された[4]。 その後、公式のIANAポートが登録され、2005年にRFCとして正式に発表された[5]。

暗号化の種類

FTPSには、認証コマンド(AUTHコマンド)実行後に暗号化通信を開始するExplicitモードと、FTPSサーバ接続開始時点から暗号化通信を開始するImplicitモードの2種類が存在する。このExplicitモードは特にFTPESとも呼ばれる。

Explicit(明示的)モード

いわゆるSTARTTLSに相当する。

サーバの21/tcpポートに接続した後にクライアントがAUTHコマンドを実行して、使用するプロトコル(SSLまたはTLS)のネゴシエーションをおこない、適合したプロトコルでのハンドシェイク完了後に暗号化された通信がおこなわれる。 つまりExplicitモードの場合、クライアントがAUTHコマンドを実行しなければ通常のFTPとして機能する。

Implicit(暗黙的)モード

サーバの990/tcpポートに接続した直後にSSLまたはTLSによるハンドシェイクがおこなわれる。 Implicitモードで動作するサーバに接続する場合、クライアントはサーバが採用している暗号化プロトコルに適合したFTPSクライアントソフトを使用する必要がある。 また、データ転送チャネル(PORTまたはPASVコマンドで作成されるチャネル)での通信を暗号化する場合、PROTコマンドを用いて保護レベルをP (Private) に設定する必要がある。

なお、ImplicitモードはRFC 4217がドラフトだった頃に第7版[6]まで掲載されていたが、第8版[7]で削除されており、正式なRFCには掲載されていない。

SFTPと比較したメリット、デメリット

SFTPと比較したFTPSのメリットとして、ASCII/BINARY モードのサポートやフォルダ単位での転送がある。

デメリットとしては、サーバー運用側でSSL証明書の購入コストがかかることであるが、これについてはワイルドカード証明書で登録すれば、自社SSLサイト(HTTPS)と共通の証明書を利用可能。

利用するアプリケーション

FTPSを利用できるアプリケーションには、以下のものが存在する。アルファベット順に列挙する。

対応クライアント

対応サーバー

脚注

  1. ↑ “FTPSのポート:ファイル転送で使われるポート番号” (英語) (2023年3月15日). 2025年3月3日閲覧。
  2. ↑ “Information on RFC 0265 » RFC Editor”. doi:10.17487/rfc0265. 2025年3月3日閲覧。
  3. ↑ “The SSL 0.2 Protocol”. mozilla.org (1995年2月9日). 2001年6月14日時点のオリジナルよりアーカイブ。2025年3月3日閲覧。
  4. ↑ Paul Ford-Hutchinson; Tim Hudson; Eric Murray (26 November 1996). Secure FTP Over SSL (英語). I-D draft-murray-auth-ftp-ssl-00。
  5. ↑ Ford-Hutchinson, Paul (2005-10). Securing FTP with TLS. doi:10.17487/rfc4217.
  6. ↑ Ford-Hutchinson, Paul (2001-04-05). Securing FTP with TLS. SSL 7 2025年3月3日閲覧。.
  7. ↑ Ford-Hutchinson, Paul (2001-10-03). Securing FTP with TLS. SSL 8 2025年3月3日閲覧。.

外部リンク

⌬ Phoenix Mesh CID: 未登録 IPFS未登録 📡 0ピア N=1 CRITICAL PQS C53