ファイル転送プロトコルのいろいろ

ファイル転送プロトコルとは

 ファイル転送プロトコルとは、ファイル転送をする際の規約や手順のことである。そもそもプロトコルとはコンピューター同士が通信する際の規格のことを指し、取り決めたルールに従うことでスムーズな通信が実現する。

 ファイル転送を行う際、データ容量が大きいとそのまま送ることができないため、データを分解する。分解されたデータをパケットという。ファイル転送プロトコルは、どのように分解するのか、どのようにパケットを送受信するのか、どのようにデータを復元するのか、ということを決めたルールのことである。

ファイル転送プロトコルの種類

FTP(File Transfer Protocol)

 FTPはインターネット初期の時代に登場したプロトコルで、文字どおりファイル転送プロトコルと呼ばれまている。データファイルのアップロードやダウンロードに利用され、ファイル転送プロトコルの元祖的存在。

 しかし、ユーザ名やパスワードなどの認証情報を暗号化せずに転送するためセキュリティの観点では他の通信と比べ劣っている。そのため、FTPSやSCP、SFTPの利用が推奨されています。

MacOSではセキュリティ上の問題から、FTPコマンドがデフォルトでインストールされなくなった。MacOSではkoujutsunoFTPSコマンドがデフォルトで利用できる。

FTPS(File Transfer Protocol over SSL/TLS)

 FTPSは、FTPのデメリットを改善したファイル転送プロトコルのことである。SSL/TLSによって通信が暗号化され、安全にデータをやり取りできます。SSL/TLSとは、公開鍵暗号と共通鍵暗号という暗号化の技術を利用して安全に通信を行う仕組みのこと。なお、後述するHTTPSもSSL/TLSを用いている。

SCP(Secure Copy Protocol)

 SCPは、SSH(Secure Shell)によって安全にファイル転送を行うプロトコルのことである。SSHとは、ネットワークに接続された端末の遠隔操作をする際、暗号化技術によって安全に通信を行うプロトコルを指す。パスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化できるため、コンピューター間で安心してファイル転送が可能である。

SFTP(SSH File Transfer Protocol)

 SFTPは、SCP同様に、高いセキュリティでファイル転送ができるプロトコルである。SFTPもSSHを用いており、ユーザ名やパスワードなどの認証情報を暗号化してファイル転送できる。

 SFTPとSCPは似ているが、SCPは転送の再開ができない一方で、SFTPは転送を中断しても途中から再開できる。また、一般にSCPの方がSFTPよりも高速とされている。

HTTP(HyperText Transfer Protocol)

 HTTPは通信プロトコルの一種で、Webサイトを閲覧する際に使われる。Webサーバとクライアント間で通信するためのプロトコルであり、HTML(Webページを作成するための言語)で記載されたテキストや画像の転送に必要である。

 Webサイトを閲覧したい人が、Webブラウザから「このサイトを見たい」とWebサーバにリクエストを送信する。Webサーバは、リクエストしてきたブラウザに対して「それではどうぞ」と返答(レスポンス)して、ブラウザ上にWebサイトが表示される。

この通信も暗号化されていないため、現在ではほとんどのウェブサイトにおいてSSL/TSLによって通信が暗号化されるHTTPSが使われている。