SFTP (SSH File Transfer Protocol)
SFTPは、暗号化されたSSH接続を介して安全にファイルを転送するためのプロトコルです。
SFTP、SSH File Transfer Protocolの略称。ファイルを転送するためのプロトコルだ。重要なのは、その通信がSSH(Secure Shell)の上で行われるという点にある。
概要
ファイル転送を安全に行うための仕組み。 旧来のFTP(File Transfer Protocol)は、認証情報(IDやパスワード)や転送データを平文でネットワークに流す。 これは、通信経路を盗聴されれば、全ての内容が丸見えになることを意味する。致命的な欠陥だ。
SFTPは、この問題を解決する。 SSHが提供する暗号化された通信路(セキュアチャネル)を利用して、ファイル転送の全プロセスを保護する。 つまり、通信の開始から終了まで、全てが暗号化されている。
仕組み
SFTPの動作はSSHに依存している。
- クライアントがサーバーのSSHポート(デフォルトはTCP 22番)に接続を要求する。
- SSHのプロトコルに従い、サーバー認証とユーザー認証(パスワード認証や公開鍵認証)が行われる。
- 認証が成功すると、暗号化された通信路が確立される。
- SFTPプロトコルがその通信路の上で起動し、ファイルのアップロード、ダウンロード、削除といった操作が安全に行えるようになる。
FTPが2つのポート(コマンド用とデータ転送用)を使うのに対し、SFTPは単一のポートで全ての通信を完結させる。ファイアウォールの設定がシンプルになるという利点もある。
FTPSとの違い
FTPS(FTP over SSL/TLS)と混同しないこと。
- SFTP: SSHを基盤とする、全く別のプロトコル。
- FTPS: 従来のFTPにSSL/TLSによる暗号化機能を追加したもの。
どちらも通信を暗号化する目的は同じだが、その成り立ちとアーキテクチャが根本的に異なる。 SFTPの方が、単一ポートで動作し、公開鍵認証などSSHの強力な認証機能をそのまま利用できるため、よりモダンでセキュアな選択肢と見なされることが多い。
結論として、機密情報を含むファイルをネットワーク越しに転送する場合、FTPの使用は論外。SFTPのような暗号化されたプロトコルを選択するのが最低限のセキュリティ要件だ。