Note to Self

公開する緊張感で、読み返した時に??にならない自分用メモです

FTPS SFTP 概要

FTPSとSFTPどちらにしようか迷ったので、ザックリまとめてみた。

 

■FTPS [File Transfer Protocol over SSL/TLS]
FTPの通信をSSL/TLS暗号化(SSL/TLSセッションで通信を行う)
FTP脆弱性をカバーするために、転送される情報を「SSL/TLS」を利用して暗号化するプロトコル

FTP同様、コマント゛チャネルとデータチャネル2つの接続を使用する
両方の接続を暗号化するか、データチャネルのみを暗号化するかの選択が可能

ユーザID認証:証明書&パスワード
ユーザID・パスワード・証明書、またはその両方を使用して接続を認証
FTPSサーバに接続するとき、FTPSクライアントは、まずサーバの証明書が信頼できるかどうかを確認
 
[証明書が信頼されるケース]
 ・既知の認証局(CA)によって署名されている場合
 ・自己証明され、信頼できるキーストアに公開証明書のコピーがある場合

[使用ポート]
 FTPデータ転送ポート:989
 FTP制御ポート:990


SSL/TLS
公開鍵暗号共通鍵暗号という暗号化技術の組み合わせで、暗号化された安全な通信を確保する仕組み
SSLがバージョンアップを重ねTLS
SSLサーバ証明書認証局(CA)から発行されている


■SFTP [SSH file Transfer Protocol]
SSHの通信を使って、ファイル転送(FTP)を行う。SSHで動作するアプリケーション
最初にSSHで接続し、ログイン後はFTP風のコマンドでファイルの受け渡しを行う
SSH接続するため、別途FTPサーバを建てる必要はない
OpenSSHなら、sshd_configに設定を追加するだけで、SFTPサーバとすることができる

ユーザID認証:キー認証&パスワード
1つの接続のみを使用し、認証情報と転送するデータファイルを暗号化

[接続認証方法]
 ・FTP同様、ユーザIDとパスワードを使用。ただし、資格情報は暗号化されている
 ・SSHキー 
   最初にSSH秘密鍵と公開鍵を生成
   SSH公開鍵を送信し、サーバにロードしてアカウントに関連付ける
   SFTPサーバに接続すると、クライアントソフトウェアは公開キーをサーバに送信して認証を行う
   公開鍵が秘密鍵と一致し、指定されたユーザまたはパスワードが一致する場合、認証が成功

[使用ポート]
 SSHと同じ:22


SSH
リモートにあるサーバを端末から操作する際、通信される一切の情報を暗号化するプロトコル
「OpenSSH」ソフトなどで使用ができ、Linuxはデフォルトでインストールされている
Windowsでは「Cygwin」「WinSCP」、Gitに同梱されている「GitBash」で使用可能

※補足
ファイアウォールの使いやすさからはSFTP
複数チャネルを利用するFTPSはファイアウォール内のポート範囲を開く必要がありネットワークのセキュリティリスクとなる