デジタルテクノロジーがすっかり馴染んだ現代社会において、私たちは常に何かしらのファイルをサーバーへアップロードしたり、サーバーからダウンロードしたりしながらビジネスを円滑に進めています。これらファイルの保管場所は、社内のファイルサーバーであったり、最近ではクラウドストレージを利用するなど実にさまざまです。
そこで今回ご紹介するのは、「ファイル転送プロトコル」についてです。ファイルの転送(アップロード・ダウンロード)には特定のプロトコル(規格)が使われており、それぞれ特徴が異なります。普段は意識することが無いファイル転送プロトコルについて、ぜひこの機会に知っていただければと思います。
ファイル転送プロトコルって何?なぜ必要?
スマートフォンに保存されている1枚の画像を誰かに送信する時、皆さんはどのように送信されるとイメージしていますか?恐らく図のように、画像がそのまま転送されていると思っているかもしれません。
しかし実際は違います。例えばその画像が1GBだとすると、そのままのサイズで転送することはできないため複数のデータに分解した上で転送します(分解されたデータを「パケット」)と言います)。パケットの最大サイズが1,500バイトとすると、1GBの約100万分の1のサイズです。つまり、1GBの画像を転送するには最低でも100万個のパケットに分解しなければ転送できないというわけです。
つまり、ファイル転送プロトコルとは、どのようにデータを分解し、どのようにパケットを受け渡し、どのようにパケットを組み立ててデータを復元するかと言う「約束ごと」なのです。
ファイル転送プロトコルの種類(FTP、FTPS、SFTP、SCP)
それでは、今回の主題であるファイル転送プロトコルの種類について解説していきます。
FTP(File Transfer Protocol)
FTPはインターネット黎明期から存在するファイル転送プロトコルであり、直訳そのまま「ファイル転送プロトコル」となります。現代のプロトコルの原点とも言えるもので、多くはこのFTPをベースに規格化されています。各種データファイルのアップロード・ダウンロードで使用されるプロトコルです。
ただし、現在ではリスクの高いファイル転送プロトコルとして、一部の用途を除いては利用されていません。FTPは利用者のユーザー名やパスワードなどの認証情報といった通信に関する一切の情報を暗号化しないため、第三者に転送したファイルを盗聴される危険性があります。そのため、現在では後述するFTPS・SFTP・SCPの利用が推奨されています。
FTPS(File Transfer Protocol over SSL/TLS)
FTPの「第三者に転送したファイルが盗聴される危険性がある」という弱点をカバーしたのがFTPSというファイル転送プロトコルです。「over SSL/TLS」の部分は、暗号化通信によって転送したファイルの内容を保護することを意味しています。
SSL(Secure Sockets Layer)とTLS(Transport Layer Security)はファイル転送の途中で第三者による盗聴を防ぐために、「公開鍵暗号」や「共通鍵暗号」などの技術を組み合わせて安全なファイル転送を可能にします。SSL/TLSはそれぞれ同じ枠組みの中にあり、SSLがバージョンアップを重ねてTLSに至ったものの、SSLが一般化したことから現在ではSSL/TLSと表記されることが多くなっています。
ちなみに閲覧中のウェブサイトがSSL/TLSに対応しているかどうかは簡単に確認でき、ウェブサイトURLの冒頭が「https://」となっていれば暗号化通信に対応しています。逆に「http://」になっている場合は暗号化されていない通信を採用しているので、第三者による盗聴の危険性があります。
SFTP(SSH File Transfer Protocol)
FTPによって転送されるファイルを「SSH(Secure Shell)」によって暗号化するファイル転送プロトコルです。SSHというのは遠隔にあるサーバーをデバイスから操作する際に転送される情報を暗号化するもので、FTPSと並びセキュリティ確保が期待できます。例えばWindowsサーバーではCygwinやWinSCPがインストールされており、SFTPを利用する環境が用意されています。
SCP(Secure Copy Protocol)
SFTPと同様にSSHによる暗号化通信が採用されているので、セキュリティ面で信頼性の高いファイル転送プロトコルです。違いはSFTPに比べて通信速度が高速ということです。SCPを利用する場合はUNIX系のシェルが備えられている必要がありますが、ウェブサーバーを構築する際はほとんどにシェルが搭載されているので、環境を意識することは少ないでしょう。
HTTP(HyperText Transfer Protocol)
FTP、FTPS、SFTP、SCPとは異なりますが、インターネット上の通信プロトコルとして重要なHTTPについてもご紹介します。
HTTPはインターネット上でウェブサーバーとそれを利用するクライアント(ウェブブラウザ)で通信するためのプロトコルであり、インターネットを構成する上で欠かせない要素の1つです。HTMLと呼ばれる言語で記述された情報をやり取りします。ウェブサイトを閲覧したい人がウェブブラウザからウェブサーバーにリクエストを送信し、それに対してレスポンスを返すことでウェブサイトが表示されます。
HTTPS(HyperText Transfer Protocol over SSL/TLS)
HTTPにSSL/TSLを採用した通信プロトコルです。インターネットの拡大に伴いサイバー攻撃が増加し、ファイルサーバーとクライアント間のデータが盗聴されるケースが多くなってきたことをきっかけに、SSL/TSLに対応したHTTPが主流になりました。SSL/TLSに対応していないウェブサイトは危険性が高いため、閲覧には注意が必要です。
クラウドストレージでも利用されています
少し技術的でしたが、知っているようで意外と知らないファイル転送プロトコルについてご紹介しました。ここで紹介したプロトコルは、皆さんの大切なデータを預かるBoxでも使われていますが、ブラウザ経由やアプリケーション経由でBoxを活用する場合には、これらのプロトコルを意識する必要はありません。ちなみにBoxでは、データの一括移行など大量のファイルを操作する必要がある場合、BusinessまたはEnterpriseをご利用のお客様向けにFTP/FTPS機能を提供しています。また、Boxは、さらなるセキュリティ強化のための保管時および転送時のFIPS 140-2認定済みAES 256ビット暗号化などもご用意しており、安心してご利用いただけます。
- トピックス:
- ファイルサーバー
- 関連トピックス:
- ファイルサーバー