Previous Topic

Next Topic

Book Contents

Book Index

SSH - プロトコルに関する検討

このセクションでは、SSH と SSH/FTP の各プロトコルを比較するとともに、FTP over SSL との対比を示します。

SSH/FTP は「SFTP」と呼ばれることがよくあります。名前は似ていますが、SFTP は、FTPS として知られる FTP over SSL とはまったく異なるプロトコルです。

標準

SSH が RFC 4251 に文書化されたインターネット標準化への提唱であるのに対し、SSH/FTP は現在、インターネット標準化への「草稿」段階 (RFC 前) にあります。SSL (この用語には、TLS として知られる最新版のセキュアソケットレイヤーが含まれることが多い) は、RFC 2246 に文書化された標準化への提唱であり、FTP は RFC 959 に文書化された正式なインターネット標準です。

SSH プロトコル全体としては、SSH1 と SSH2 という 2 つのメジャーバージョンがあります。MOVEit Transfer SSH は、より一般的な SSH2 プロトコルのみサポートします。SSH2 プロトコルは既に定着していますが、SSH/FTP プロトコルには、以前のバージョンと互換性のないものも含め、大規模なリビジョンが依然として加えられています。この状況は、SSH/FTP プロトコルがまだ「RFC」段階に達していないという事実を反映したものです。

SSH ファイル送信プロトコルには、バージョン 1、2、3、4 があります。このガイドの執筆時点では、最新バージョンはバージョン 4 であり、それを実装済みのクライアントまたはサーバーの存在は確認されていません。MOVEit Transfer SSH はバージョン 3 のプロトコルを実装しています。

コマンド構造

SSH/FTP セッションは、コマンドと応答の一連のパケットで構成されています。各パケットは、整数のコマンドコードと応答コードを含む、構造化バイナリ情報からなります。コマンドは、Open()、Read()、Write()、Close() などのファイルシステム I/O ルーチンに対応します。例えば、ファイルをダウンロードする場合、SSH/FTP クライアントは、Open コマンド 1 つ、多数の Read コマンド、Close コマンド 1 つを順に実行してファイルを開く必要があります。

それとは対照的に、FTP と FTP over SSL は、CR LF で区切られた ASCII コマンドを使用します。例えば、ファイルをダウンロードする場合、クライアントは「PORT」または「PASV」コマンドを送信してデータ接続を確立してから、「RETR」コマンドを送信してファイル名を指定します。

ポート番号とファイアウォール

SSH は、あらゆるタイプの接続に単一の TCP ポート番号 (通常はポート 22) を使用します。一方、SSL は用途ごとに異なるポート番号を使用します。例えば、ポート 443 は一般的に HTTP over SSL に使用され、ポート 990 は FTP over SSL のバージョンの 1 つに使用されます。さらに、FTP では、ファイル送信のたびに新しいポートで新しい接続が確立されるため、ファイル送信時に複数のポート番号が必要となります。

ポート 22 はあらゆる SSH サービスで使用されるため、複数の SSH サーバー製品を同じコンピューター上で実行することは多少困難です。ただし、MOVEit Transfer を実行しているシステムの場合、これが問題となることはめったにありません。さらに重要なこととして、ポート 22 は SFTP に必要な唯一のポートであるという意味で (個別のデータポートは不要)、SSH/FTP は FTP over SSL よりも「ファイアウォールフレンドリー」なプロトコルであると言えます。

暗号化と証明書

SSH と SSL はいずれも、公開キー暗号方式を使用してセッションキーを交換します。交換したセッションキーは、ネットワーク経由で転送されるコマンドとデータを暗号化するために使用されます。SSH によって使用されるアルゴリズムのセキュリティは、SSL によって使用されるものと似ています。ただし、SSH は証明機関 (CA) の概念をサポートしていません。

SSL には証明書が必要です。証明書は通常、www.thawte.com などの証明機関から購入されます。証明書は、サーバーが本物であることを保証します。SSH では、各サーバーが独自の公開キーを作成するという、SSL とは異なるアプローチを採用しています。SSH サーバーが本物であることを保証する、信頼された証明機関はありません。この不足を補うため、各 SSH クライアントは、接続したことのある各サーバーの公開キーを記憶するようになっています。2 回目以降の接続試行の際にサーバーが前回と異なる公開キーを提示した場合、SSH クライアントは、SSH サーバーが元のサーバーを偽装した敵対的サーバーである可能性があることをユーザーに警告します。

これらの相違点のため、FTP over SSL (FTPS) サーバーには、SSH/FTP (SFTP) サーバーよりも管理しにくいという側面があります。ただし、より高度な認証方法のおかげで、FTPS サーバーの方が多少安全性に優れています。