ftp

FTPS、SFTPの違いって?

More than 5 years have passed since last update.


FTPS、SFTPの違いって?



  • FTPS : FTPの通信をSSL/TLSで暗号化 → FTPの拡張


  • SFTP : SSHの通信を使って、FTPを行う → SSHで動作するアプリケーション


FTPについておさらい

ファイルを転送するための通信プロトコル

FileTransferProtocol

コマンドの送受信と、ファイルの送受信で使用するポートが異なる


  • 20 : FTPデータ転送ポート

  • 21 : FTP制御ポート


セキュリティの問題


  • ユーザ名やパスワードが暗号化されていない

  • 通信内容も暗号化されていない

  • 他にも色々セキュリティ的な不具合が多い

なので、通信を暗号化するために出来たのが、FTPSと、SFTP


FTPS

FTPで送受信するデータをSSLまたはTLSで暗号化するプロトコル

File Transfer Protocol over SSL/TLS

SSL/TSLセッションで通信を行う

HTTPSのFTP版とでも言うべき?


RFC


  • RFC 2228 - FTP Security Extensions

  • RFC 4217 - Securing FTP with TLS


使用ポート


  • 989 : FTPデータ転送ポート

  • 990 : FTP制御ポート


SFTP

SSHを介してファイル転送を行うプロトコル

SSH File Transfer Protocol

SSHログインをした後に、FTP風のコマンドでファイルの受け渡しを行う

なので内部的には、最初にSSHで接続を行っている

SSH で接続するので、別途 FTP サーバを建てる必要はなく

OpenSSH ならば、sshd_config に設定を追加するだけで、SFTPサーバとすることができる


RFCは無いの?

SFTPと違ってプロトコルではなく、SSH上で動くアプリケーションにすぎないので、無いらしい

RFC for Sftp?


使用ポート

22(SSH と同じ)


参考

SSL/TSL、SSH については、以下を参照

公開鍵暗号について理解が足りていなかったのでメモ - かせいさんとこ