「FTP・FTPS・SFTPの違い」 SSL・SSHにはハイブリッド暗号方式が使われている

Security

今までなんとなく使っていたFTP。前回紹介した「FTPの仕組み」を書きながら仕組みがわかってくると普通のFTPはセキュリティ面で不安要素が多い事がわかりました。

FTPは古くからあるプロトコルのため、第三者による盗聴 (ファイルを覗き見る行為) への対策が施されていません。

FTPの脆弱性対策のためにFTPのセキュリティを向上させたSFTP、そしてFTPSというプロトコルがあるようですが、どんな技術なのか比較しながら見ていきましょう。

SPONSORED LINK

FTP・FTPS・SFTPの違い

cd4430c42c4ad489e3a9d85c7969124d_s

FTPS・SFTPが安全だという事はわかりましたが普通のFTPと比べて一体何がどう違うのか?FTPS、SFTPの違いは何なのか?

それぞれを比較してみました。まずはFTPからおさらいしてみましょう。

FTP (File Transfer Protocol)

FTPとは日本語に訳すとファイル転送プロトコル、意味はそのままでファイル転送専用のプロトコルです。

クライアント側 (自分のパソコン) からFTPサーバーへファイルをアップロードしたり、逆にクライアント側へファイルをFTPサーバーからダウンロードしたりする事ができます。

FTPはHTTPより古くから使用されているプロトコルのためセキュリティの面であまり考慮されていません。通信されるデータが平文のままで暗号化されていないのです。

もちろんFTPサーバーに入るために用いる「ユーザー名」「パスワード」も平文になります。そのため第三者に侵入・盗聴される可能性が高まるのです。そこでそんな危険性への対策のために作られたのがFTPS・SFTPでした。

FTPS (File Transfer Protocol over SSL/TLS)

FTPSはHTTPSと同じSSL/TLSの暗号化・認証が使われています。FTPの脆弱性を補うために作られました。いわばFTPの拡張版ですね。

後述するSFTPと比較してSが前に来るか、Sが後ろに来るかの違いというだけで名称はほぼ似てますよね。だたこのSの意味略を戻すと全く意味が違います。

  • FTPS = SSL/TLS
  • SFTP = SSH

セキュアな通信を保つために必要不可欠な要素が「暗号化」そして「認証」この2つです。「暗号化」するのはもちろんですが、この「認証」の部分の仕組みがしっかりしていないと、なりすまし、改ざん、盗聴のリスクが高くなります。

SSL/TLSはその2つの要素を兼ね備えています。SSL/TLSについてだいたいこんな仕組みです、という入門的な基礎知識を「SSL/TLSの仕組みを理解する」で紹介しています。

SSLではハイブリッド方式という暗号化+認証技術が複雑に組み合わさって使われています。

「ハイブリッド暗号方式」=「共通鍵暗号方式」+「公開鍵暗号方式」

ssl-tls3

「FTPS」2種類のモード・ファイル転送で使うポート

FTPSには「Explicit」・「Implicit」と2種類の暗号化モードがあります。これらの英単語は暗号化の動作に対しての意味という事になるでしょう。

ただし、レンタルサーバーはFTPSに対応しているからといってこれら2つの機能に対応しているわけではないようです。対応はサーバーによりけりです。

  • Explicit (エクスプリシット / 明示的な・はっきりと)

FTPサーバーに接続後、クライアント側でAUTHコマンドを実行すると通信が暗号化されます。FTPに代わってFTPSが21番ポートを使いFTPES (FTP over Explicit SSL) とも呼びます。

  • Implicit (インプリシット / 暗黙的な・含まれている)

FTPサーバーに接続した時点で暗号化がされます。990番ポートを使います。

SFTP (SSH File Transfer Protocol)

SSHで暗号化されて作られた通信路を通って安全にデータを送受信する事ができるというプロトコルです。linuxではsshコマンドとして機能するようです。

FTPとは違う通信なので22番ポートを使ってファイル転送を行います。

SSHとは?

SSHはSecure Shellの略です。こちらもSSLと同じく「共通鍵暗号方式」と「公開鍵暗号方式」を組み合わせた「ハイブリッド暗号方式」に加え、認証機能もついているので安全に通信をする事ができます。

SSHで暗号化された通路をファイルデータが通るというイメージです。

FTPS・SFTPへの対応確認

この二つの暗号化・認証技術は、残念ながら全てのFTPソフト環境において使えるわけではありません。利用するFTPソフトとレンタルサーバー両方で対応してなくてはならないのです。
ただこれには安心して下さい、主要なFTPソフト・レンタルサーバーにおいてほぼどちらかは対応しているようです。ちなみに私がサーバー移転する予定のwpXはSFTPには非対応ですがFTPSには対応しているようです。

初耳のサーバーだったのですがWordPress専用クラウドサーバーのSove WPはwpXと比べると月額やや割高感がありますがSFTPに対応しています。

主要サーバーはFTPSならほぼ対応しているようです。SFTPはサーバーによりけりなので新規契約時は要確認です。

ソフトの方は・・

主要なところでFFFTP、FileZilla、WinSCPとMacならCyberduckとありますが、FTPSならほとんどのFTPクライアントで対応しています。Cyberduckだけ「FTPS/Implicit」のみ対応していません。(FTPS/Explicit対応)

ソフトは決める目安として使用しているレンタルサーバーとFTPS・SFTPの対応が一致しているかチェックしておきたいところです。

この記事のまとめ

前回、今回とデータの暗号化についてまとめてみました。今まで特に気にはしていなかったですが、こうして記事にしてみると、サーバー操作する時は通常のFTPではなくできる限りFTPS・SFTPを使わなくてはという思いになりました。

でも、私の場合サーバー操作する機会ってサーバー移転とかでもないと普段それほどないですけどね。

関連記事




この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitterでめちゃログをフォローしよう!