FTPS
TCP/IP群 |
---|
アプリケーション層 |
|
トランスポート層 |
カテゴリ |
インターネット層 |
カテゴリ |
リンク層 |
カテゴリ |
FTPS (File Transfer Protocol over SSL/TLS) は、FTPで送受信するデータをTLSまたはSSLで暗号化する通信プロトコル。IETFにより、RFC 2228 や RFC 4217 で標準化されている。
既定のWell-known Portは、990/tcp。
SFTP (SSH File Transfer Protocol) はSSHの上でFTPとは別個のプロトコルにてファイル転送を実現するコマンドである。そのためSFTPはSSHのポートを使い既定のWell-known Portは22/tcpであり、FTPSとは全くの別物である。
概要
[編集]FTPの認証で送信されるユーザ名とパスワードの電文は、暗号化されていない状態(クリアテキスト)であるため、第三者に盗聴・侵入される危険性がある。FTPSはその危険性を回避するために制定された。
暗号化の種類
[編集]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版まで掲載されていたが、第8版で削除されており、正式なRFCには掲載されていない。
SFTPと比較したメリット、デメリット
[編集]SFTPと比較したFTPSのメリットとして、ASCII/BINARY モードのサポートやフォルダ単位での転送がある。
デメリットとしては、サーバー運用側でSSL証明書の購入コストがかかることであるが、これについてはワイルドカード証明書で登録すれば、自社SSLサイト(HTTPS)と共通の証明書を利用可能。
利用するアプリケーション
[編集]FTPSを利用できるアプリケーションには、以下のものが存在する。アルファベット順に列挙する。
対応クライアント
[編集]- Core FTP
- CuteFTP
- Cyberduck
- FFFTP
- FileZilla
- FireFTP (Firefoxのアドオン)
- FlashFXP
- FTP Voyager
- gFTP
- lftp
- NextFTP
- Secure FTP
- SmartFTP
- Ultimate FTP
- WinSCP
対応サーバー
[編集]- Apache FtpServer
- Bftpd
- Cerberus FTP Server
- CrossFTP Server
- DrFTPD
- edtFTPD
- FileZilla Server
- Independent FTP Daemon
- ProFTPD
- Pure-FTPd
- vsftpd
- War FTP Daemon
- Internet Information Services (IIS7以降)