FTPとSFTPの違い 完全ガイド

FTPとSFTPは名前が似ているため同じもののバリエーションのように思われがちですが、まったく異なる土台の上に成り立っています。

FTPは平文で、2つの経路を使ってファイルを転送する

FTP(File Transfer Protocol)はコマンド用の制御コネクションと、実際のファイル転送用のデータコネクションを別々に使い、初期設定ではログイン情報を含むすべてを暗号化せずに送信します。

SFTPはFTPの拡張ではなく、まったく別のプロトコル

SFTP(SSH File Transfer Protocol)は、リモートサーバーへの安全なログインにも使われるSSHの上に構築されたもので、FTPに暗号化を後付けしたものではなく、最初から新たに設計されたプロトコルです。

「SFTP=FTP+SSL」は広く見られる誤った略式表現

これはSFTPとFTPSを混同したものです。SFTPはFTPもSSLもまったく使用せず、完全にSSHの上で動作します。名前が似ていることが、この混同が続いている主な理由です。

FTPに実際に暗号化を追加したプロトコルはFTPS

FTPS(FTP Secure)は標準的なFTPにTLS/SSLによる暗号化を重ねたもので、FTP本来の2経路構造をそのまま維持しています。名前は似ていますが、SFTPとは実際には別のプロトコルです。

SFTPはFTPやFTPSよりファイアウォールとの相性が良い

FTPやFTPSはデータ転送用に動的に決まる複数のポートを含む複数のポートを使うため、ファイアウォールの特別な設定が必要になることが多いです。SFTPは通常1つのポート(SSHと同じ22番)だけを使うため、安全にファイアウォールを通過させる設定がはるかに簡単です。

現在の実用上のデフォルトはSFTP

機密性のあるデータの転送やインターネット経由の転送では、SFTP(または代替としてFTPS)を使うのが標準的な推奨です。平文のFTPが許容できるのは、完全に信頼された分離された内部ネットワークで、機密性のないファイルを転送する場合に限られるのが一般的です。

名前の似方がこれほど混乱を招く理由

FTP、FTPS、SFTPはいずれも名前に「FTP」を含み、システム間でファイルを転送するという大まかな目的は共通していますが、それぞれ異なる下層プロトコルと異なるセキュリティモデルの上に成り立っています。これらを同じプロトコルの単なるバリエーションだと思い込むのは、ネットワークの基礎でよくある勘違いの一つです。

「安全」が実際に守ってくれるもの

SFTPとFTPSはどちらも通信経路上のデータを暗号化し、ネットワークを移動している最中にログイン情報やファイルの内容が第三者に傍受されるのを防ぎます。どちらのプロトコルも、ファイルが宛先に届いた後にどう扱われるかまでは単体では制御できず、それはサーバー自体のアクセス制御やセキュリティ運用に委ねられます。

よくある質問

FTPは今でも使われていますか?

機密データを扱う用途では以前ほど一般的ではなくなっていますが、特定のレガシーシステム、内部の信頼されたネットワーク、暗号化よりも古いソフトウェアとの互換性が重視されるケースでは今も見られます。

SFTPとFTPSは同じポートを使いますか?

いいえ。SFTPは通常SSHと共有するポート22番を使い、FTPSは通常制御用にポート21番、加えて標準的なFTPと同様にデータ用の追加ポートを使います。