FTPとは?

Web上で提供されている各種のサービスの中には、一方的に、データを受け取るだけのサービスも存在します。

例えば、インターネットを経由して、写真や動画などのデータを、ひたすらダウンロードするサービスです。

このようなサービスでは、データを、確実に受け取ることを目的とした、独自の通信規格によって運用されています。

インターネットの利用が開始された、初期の時代から存在しているサービスであり、通常はファイルを保存しているサーバーと、そのファイルのダウンロードを求めるクライアントの間で利用されています。

 

このサービスを支える通信プロトコルが「FTP(File Transfer Protocol)」と呼ばれているものです。

しかし、長く利用されてきた歴史があるのと同時にほぼ無防備な状態で通信を行うため、セキュリティ対策を担当する他の規格を併用して、セキュリティレベルをアップした「FTPS」「SFTP」などの通信規格を利用する形態に変わりつつあります。

 

FTPとは?

Webサイトを構成している各種のデータファイルをその作成者のパソコンなどの通信端末から、インターネットを経由してWebサイトのデータを保存しているサーバーへアップロードする際に利用する通信プロトコルです。

また、このようにして、インターネット上に公開されているWebサイトを、単に閲覧するだけではなく、そのコンテンツとして、公開されている各種のファイル(動画、音楽、プログラム、OSなどのアップデータ等々)を、ファイルの取得を希望する人の通信端末にダウンロードする際にも利用する通信プロトコルです。

インターネットの利用が開始された当初には、現在のように、その仕組みを悪利用する人が、これほど大量に登場することが想定されていませんでした。

そのため、このFTPのように、初期から利用されているプロトコルのほとんどが、有効なセキュリティ対策の手段を持っていません。

このプロトコルにおいても、ユーザー名や、パスワードなどの、認証に使用する情報も含めてそのままの状態で転送されています。

最近では、このFTPに、通信の暗号化を行う別のプロトコルの機能を併用した、新しいタイプのデータ転送用プロトコルが利用されています。

 

FTPの機能とは?

サーバーと、クライアントの間で、データを転送するためには、両者の間で接続を確立する必要があります。

この規格では、クライアントが、制御用のデータなどをやり取りするために、サーバーと接続すると、今度はデータを転送するために別の通信路を確保します。

その転送用の通信路において、クライアントからサーバーに対して、自分のIPアドレスとポート番号を通知します。

それに対して、サーバーが、指定されたIPアドレスと、ポート番号に対する接続動作を行います(アクティブモード、ポートモードと呼ばれる方法です。)。

この方法では、毎回、異なるポート番号を利用するため、クライアント側で、セキュリティ対策として利用されている「ファイアーウォール」などの影響によって接続できない可能性があります。

 

その場合は、最初に、サーバー側が、クライアントに対して、転送に利用するポート番号を通知します。

クライアント側では、サーバーから通知されたポート番号に対して、接続動作を試みます(パッシブモード)。

このモードを利用する限りは、最初に、指定されたポートに対して、接続動作を行ったクライアント側の端末内のファイアーウォールが転送を拒否することがありません。

本来は、FTP転送には、認証動作が必要です。しかし、そのような動作を不要とするFTPサーバーもありますので、その際は、自動的に、適当な組み合わせの認証情報(ユーザー名、パスワード)を使用して形式的に認証動作を行っています。

 

FTPのこれからも現役のプロトコル

セキュリティ対策として、別の通信プロトコルの力を借りながらも、まだまだ現役で頑張っていくと思われる、このデータ転送プロトコルです。

現役で活躍している同期の通信プロトコルは他にも存在しています。

その同期のメンバーを含めて、セキュリティ上の問題を解決する必要に、迫られている、ということは、インターネットの利用が開始された時点で、セキュリティ対策に対する関心がいかに薄いものであったかを表しているかのようです。

 

当時、インターネットを利用したバラ色の未来を想像できる人は沢山いたと思います。

しかし、その陰の部分まで、想像することは困難だったのでしょうか?

陰と、陽の両面を想定しなければ、新技術の開発による問題の発生を防ぐことは非常に困難と思われます。