LAMP通販サイトオープン
LAMP通販サイトオープン
2018.12.17

FTP、FTPS、SFTP、SCPの違いってなんなんだ?

ZIMA

ども! LIGでWebディレクターをやっていますZIMAです。

先日、上司から「FTP、FTPS、SFTP、SCPの違いについてZIMAは説明できる?」と聞かれました。

「いやいや、待ってくださいよ。そんなの僕だって〜わっかりま……(あれ?FTP、FTPSは理解しているつもりだけど、SFTP、SCPについては、謎だ!)」

と、返答の途中で答えられないことに気が付いたのです。

そこで今回はその、「FTP、FTPS、SFTP、SCPの違い」について調べてみましたので、その結果をご報告したいと思います。

FTPとは

FTP(File Transfer Protocol)
直訳すると、サーバーへファイルをトランスファーするためのプロトコルのことをいいます。
聞きなれない言葉の意味を翻訳すると、下記の通り。

  • Transfer(トランスファー)は「転送
  • Protocol(プロトコル)は「規約

つまり、サーバーへ「ファイルを転送するための規約」という意味です。

具体的な用途としては、HPの表示に必要なファイルをPCからサーバーへアップロードしたり、逆に保存していたファイルをダウンロードする際に利用されています。情報をアップロードする際は「FFFTP」「FileZilla」などのFTPソフトが必要になります。

ただ、FTPは利用者の認証情報(ユーザー名、パスワード)やファイルなど、通信する一切の情報を暗号化せずに転送します。そのため、過去にコンピューターウイルスの標的にされたこともあるのです。現在ではFTPではなく、FTPS、SFTP、SCPなど情報を暗号化するプロトコルが推奨されています。

続いては、そのFTPS、SFTP、SCPの3つの違いをご説明します。

FTPSとは

FTPS(File Transfer Protocol over SSL/TLS)
FTPの脆弱性をカバーするために、転送される情報を「SSL/TLS」を利用して暗号化するプロトコルのことです。

「SSL/TLS」とは

公開鍵暗号共通鍵暗号という暗号化技術の組み合わせで、暗号化された安全な通信を確保する仕組みです。

SSLTLSは、大枠は同じ仕組みのものです。SSLがバージョンアップを重ねたことでTLSが誕生しましたが、SSLのネームバリューもあり「SSL/TLS」と並列で表記されることが多いようです。

SSL/TLSを利用しているかどうかは、アドレスバーにて「https」や「鍵マーク」の表示の有無で見分けがつきます。

暗号化のために必要な「SSLサーバ証明書」は「認証局」から発行されています。主な認証局にシマンテック、GMOグローバルサイン、ジオトラストなどがあります。

SFTP

SFTP(SSH File Transfer Protocol)
FTPで転送される情報を「SSH(Secure Shell)」を利用して暗号化するプロトコルのことです。

「SSH」とは

リモートにあるサーバを端末から操作する際、通信される一切の情報を暗号化するプロトコルのことです。

SSH」は「OpenSSH」ソフトなどで使用ができ、Linuxではデフォルトでインストールされています。Windowsでも「Cygwin」や「WinSCP」、Gitに同梱されている「Git Bash」で使用ができます。いずれにせよ「SSH」が利用できる環境が必要になります。

こちらの「SFTP」と似たプロトコルがあるのですが、それが次項にて説明する「SCP」です。

SCP

SCP(Secure Copy Protocol)
サーバと通信を行うためのプロトコルのご紹介、こちらの「SCP」が最後の4つ目です。

SFTP」と同様に「SSH」を利用しているためセキュリティ面で安全性の高いプロトコルといえます。「SFTP」に比べて通信速度は速いといわれているのですが、この「SCP」を利用する場合はサーバにUNIX系のシェルが備えられている必要があります。Webサーバを作ろうとするとほとんどのサーバにはシェルは入っているので意識することはあまりないかもしれませんが、「SFTP」でしかファイル送信ができない、というようなシーンがあるかもしれません。

まとめ

知っているようで知らなかったFTP、FTPS、SFTP、SCPの違いについて、僕も非常に勉強になりました。

この記事がみなさんのお力になれたら幸いです!

ではまた!