説明

受信装置、認証サーバ、方法、及び、プログラム

【課題】 DoS(サービス妨害)攻撃を処理するためには、高い負荷が必要だった。
【解決手段】 端末103は、ポート番号情報を含む接続許可コマンドS203を認証サーバ102から受信し、接続許可コマンドS203を受信した以降、接続要求端末101からの接続要求に対して、受信された接続許可コマンドに含まれるポート番号情報により特定されるポートで、接続を許可する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、受信装置、認証サーバ、方法、及び、プログラムに関する。
【背景技術】
【0002】
従来、クライアントは、ファイアウォールの内側に接続され、PrivateアドレスにNATされていた(特許文献1)。
【0003】
また、ファイアウォールの設定は動的ではなかった。
【特許文献1】特開2002−328887号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
DoS(サービス妨害)攻撃を処理するためには、高い負荷が必要だった。
【課題を解決するための手段】
【0005】
本発明の第1の受信装置は、受信手段と、接続要求装置を認証する認証サーバからポートを特定するポート番号情報を受信すると、接続を許可する条件を変更する変更手段を有することを特徴とする。
【0006】
本発明の第2の受信装置は、受信手段と、接続要求装置を認証する認証サーバから第1の信号を受信すると、その第1の信号の受信の以降、第1の信号に含まれるポート番号情報により特定されるポートで、接続要求装置から受信した第2の信号による接続を許可する許可手段を有することを特徴とする。
【0007】
本発明の第3の受信装置は、続要求装置を認証する認証サーバからポートを特定するポート番号情報が受信されると、受信されたポート番号情報に応じて、接続を制限することを特徴とする。
【0008】
以上の第1、第2、第3の受信装置において、接続要求に含まれるポート番号は、受信装置のアプリケーションを特定する。
【0009】
本発明の認証サーバは、接続要求装置を認証する認証サーバであって、接続要求装置と接続するためのポート番号情報を、受信装置に通知することを特徴とする。
【発明の効果】
【0010】
本発明によれば、大きな負荷なく、サービス妨害攻撃を防止することが可能である。
【発明を実施するための最良の形態】
【0011】
(第1の実施の形態)
図1は第1の実施の形態の概要を示したものである。
【0012】
100はネットワークの一例であるインターネット網を示す。101のインターネット網には接続要求端末(以下端末Aと略する)101がつながっている。また、同様に該インターネット網に認証サーバ102がつながっている。該認証サーバ102は、IDとそのIDに対応したパスワードのペアが格納されているID,パスワードテーブル104を有する。103は被接続端末(以下端末Bと略する)であり、通常は不特定個所からの接続を拒否するように接続ポート開閉装置105を保持している。また、接続許可テーブル106は、接続要求があった際に、該接続ポート開閉装置105により接続を許可するための情報を記憶している。
【0013】
被接続端末103は、本発明の実施の形態における受信装置であり、認証サーバ102は、ネットワーク100を介して受信装置103の設定を行う設定装置である。また、接続要求端末102は、接続要求装置である。
【0014】
図2は接続要求端末101、認証サーバ102、被接続端末103の間でやり取りされるコマンド、接続手順のフローをまとめたものである。
【0015】
接続要求を出す側の接続要求端末101が被接続端末と通信を開始する際に、先ず認証サーバに対して、「認証要求コマンド」S201を発行する。S201のコマンドのフォーマット、パラメータに関しては、後述する。
【0016】
認証サーバ102では、要求されたコマンドS201に対し、認証が通らなかった場合には、接続不許可のレスポンス(NACK)S202を返信する。認証要求コマンドに対して認証が通れば、該認証サーバ102から被接続端末である被接続端末103に対して接続許可要求コマンドS203を発行する。また、同様に認証サーバ102から接続要求端末101に対して接続許可レスポンス(ACK)S204を返信する。このS203とS204の順番は、逆でもよい。また、他の形態では、被接続端末103からレスポンスACKが返されると、認証サーバ102が、接続許可レスポンス(ACK)S204を返す。
【0017】
接続要求端末101では、S204のACKレスポンスを受信すると、被接続端末103に対して接続要求コマンドS205を発行する。
【0018】
被接続端末103は、待機中は、認証サーバ102からの所定のコマンド以外は、無視(あるいは、拒否)するように設定されている。被接続端末103が、待機中において、受信したコマンドを受け付ける条件は、受信したコマンドの発信元IPアドレスが、所定のIPアドレスであった場合である。ある実施例では、受信したコマンドの発信元IPアドレスが、所定のIPアドレスであった場合であり、かつ、受信したコマンドで指定された被接続端末103のポート番号が、所定の番号であった場合である。被接続端末103は、この待機中において、認証サーバ102からの接続許可要求コマンドS203(所定の信号)を受信すると、コマンドに従った条件で接続(接続要求端末101と上位アプリケーションとの接続)を許可する(あるいは、拒否する)。接続許可要求コマンドS203には、被接続端末103が接続要求端末101からの接続要求を受け付けるポート番号を示すポート番号情報が含まれている。
【0019】
このポート番号情報を受け付けた以降、被接続端末103は、対応するポート番号以外を指定した接続要求は、無視(あるいは、拒否)する。すなわち、被接続装置103は、接続許可コマンドS203に含まれるポート番号情報に応じて、接続を許可する条件を変更する。すなわち、接続許可コマンドS203(所定の信号)を受信する前は、認証サーバ102以外からの接続は、拒否し、接続許可コマンドS203を受信した後は、接続許可コマンドS203に含まれるポート番号情報により特定されるポートで接続要求端末101からの接続を許可する。接続要求S205が被接続端末103側で受け入れられると、以後S206で上位アプリケーションの通信が開始される。この上位アプリケーションは、接続要求端末101からの接続要求を受け付けたポート番号とプロトコル種別により特定される。上位アプリケーションの通信S206が終了すると、S207において終了処理コマンドが送信される。被接続端末103は、認証サーバ102からの所定のコマンド以外は、無視(あるいは、拒否)する待機状態に戻る。
【0020】
すなわち、被接続装置(受信装置)103は、接続許可指示コマンドS203に含まれるポート番号情報などに応じて、接続を許可する条件を変更する。接続許可指示コマンドS203を受信した後は、接続許可指示コマンドS203に含まれるポート番号情報により特定されるポートで、接続要求端末101からの接続を許可する。
【0021】
被接続端末(受信装置)103は、認証サーバ(第1の相手)102から接続許可指示コマンド(第1の信号)S203が受信されると、接続要求端末(第2の相手)101と特定のポートとの接続を許可する。例えば、被接続装置101は、接続要求端末(第2の相手)101との接続を許可するポートを示すポート情報を含む接続許可指示コマンド(第1の信号)を認証サーバ(第1の相手)102から受信したことを条件に、ポート情報により示されるポートと接続要求端末(第2の相手)との接続を許可する。
【0022】
また、被接続端末(受信装置)103は、ポート番号情報を含む接続許可指示コマンドS203(第1の信号)を認証サーバ(接続制御装置)102から受信すると、その第1の信号の受信の以降、第1の信号に含まれるポート番号情報により特定されるポートで、接続要求端末(接続要求装置)101から受信した第2の信号(接続要求S205)による接続を許可する。
【0023】
被接続端末(受信装置)103は、ポート番号情報を含む接続許可指示コマンドS203(第1の信号)を認証サーバ(接続制御装置)102から受信すると、その第1の信号の受信の以降に、接続要求端末(接続要求装置)101から受信した第2の信号(接続要求S205)による接続を、第1の信号及び第2の信号に含まれるポート番号情報に基づき、許可する。
【0024】
例えば、被接続装置103は、図3に示すコンピュータ900の構成により、本実施形態での機能を実現する。コンピュータ900は、CPU901と、ROM902と、RAM903と、ハードディスク(HD)907及びフロッピー(登録商標)ディスク(FD)908のディスクコントローラ(DC)905と、ネットワークインタフェースカード(NIC)906とが、システムバス904を介して互いに通信可能に接続された構成としている。そして、ネットワークインタフェースカード906は、図1に示したインターネットネットワーク100を、システムバス904に接続する。
【0025】
CPU901は、ROM902あるいはHD907に記憶されたソフトウェア、あるいはFD908より供給されるソフトウェアを実行することで、システムバス904に接続された各構成部を統括的に制御する。すなわち、CPU901は、以下に説明する処理シーケンスに従った処理プログラムを、ROM902、あるいはHD907、あるいはFD908から読み出して実行することで、本実施形態での動作を実現するための制御を行う。
【0026】
RAM903は、CPU901の主メモリあるいはワークエリア等として機能する。DC905は、ブートプログラム、種々のアプリケーション、編集ファイル、ユーザファイル、ネットワーク管理プログラム、および本実施形態における下記処理プログラム等を記憶するHD907、およびFD908とのアクセスを制御する。NIC906は、インターネット100を通じて、端末101、103等と、相互にデータのやり取りをする。
【0027】
ネットワークインタフェースカード906は、CPU901の制御の元に、通常は不特定個所からの接続を拒否する接続ポート開閉装置105として機能する。また、RAM903あるいはHD907は、接続許可テーブル106を保持する。CPU901は、接続要求があった際に、接続許可テーブル106を参照し、接続許可の判断を行う。
【0028】
CPU901は、接続を許可する許可手段であり、接続許可指示コマンドS203に含まれるポート番号情報などに応じて、接続を許可する条件を変更する。すなわち、ポート番号情報により特定されるポートで、接続要求端末101の接続を許可する。
【0029】
なお、端末101、認証サーバ102も、端末102と同様に、図3にしめすコンピュータ900のように構成可能である。
【0030】
認証サーバ102のRAM903あるいはHD907は、図1に示すID,パスワードテーブル104を保持する。
【0031】
図4は、接続要求端末(端末A)101のソフトウェアのモジュール構成を示したものである。
【0032】
301は最終的に被接続端末(端末B)とデータのやり取りを行うアプリケーションである。該アプリケーションが被接続端末103とやり取りを開始するにあたり、先ず、302の認証サーバ通信モジュールで、図1の認証サーバ102に認証を要求する。この際に接続先の認証サーバ102の情報としてあらかじめ格納されている認証サーバアドレス情報303を用いる。また、認証サーバ102で接続要求端末101を認証するためにあらかじめ格納されている自端末認証情報304を用いる。すなわち、認証要求コマンドS201には、認証サーバアドレス情報303、及び、自端末認証情報304が含まれる。この自端末認証情報304は、接続要求端末101のID、及び、接続要求端末101の不図示のキーボードで入力されたパスワードを含む。通信はすべて共通の通信モジュール305をとおして行われる。
【0033】
本発明の接続要求装置である接続要求端末101は、受信装置である被接続装置103および設定装置である認証サーバ102と、ネットワーク100を介して通信する接続要求装置であって、ネットワーク100を接続する接続手段であるネットワークインタフェースカード906と、受信装置である被接続端末103に接続を要求するポート番号情報を、設定装置である認証サーバ102に送信し、前記ポート番号情報に対応するポート番号を含む接続要求S205を受信装置である被接続装置103に送信する送信手段であるCPU901とを有する。
【0034】
接続要求端末101は、設定装置である認証サーバ102からの応答S204に応じて、前記接続要求S205を、前記受信装置である被接続装置103に送信する。
【0035】
図5は、認証サーバ102のソフトウェアのモジュール構成を示している。
【0036】
接続要求端末101からの認証要求コマンドS201は、通信モジュール401を通して、認証要求通信モジュール402で処理される。この認証のためにID、パスワードテーブル403に記憶されているID及びパスワード、及び、認証要求コマンドS201に含まれている接続要求端末101の自端末認証情報304が使われる。このID、パスワードテーブル403は、図1のID、パスワードテーブル104と同じものである。ここで認証されれば、接続許可指示処理モジュール404により接続許可指示S203を被接続端末103に対して要求する。また、接続許可指示処理モジュール404は、接続許可レスポンス(ACK)S204(あるいは、接続不許可レスポンス(NACK)S202)を、接続要求端末101に送信する。
【0037】
図6は403(104)のID、パスワードテーブルの構成を示したものである。
【0038】
F411はIDフィールドであり、接続要求端末を特定するためのIDが格納されている。F412はF411のIDに対応するパスワードフィールドである。このテーブルは、不図示のキーボードから、RAM903、あるいは、HD907に登録する。
【0039】
本発明の実施の形態の設定装置である認証サーバ102は、ネットワーク100を介して、受信装置である被接続端末103の設定を行う設定装置であって、ネットワーク100を接続する接続手段であるネットワークインタフェースカードと、接続要求側101と接続するためのポート番号情報を、受信装置である被接続端末103に通知する通知手段であるCPU901を有する。
【0040】
認証サーバ102は、接続要求側101からポート番号情報を受信し、接続要求側101から受信したポート番号情報を、受信装置である被接続端末103に通知する。
【0041】
また、他の形態では、認証サーバ102は、ポート番号を決定し、決定したポート番号を表すポート番号情報を、接続要求端末101、および、被接続端末103に通知し、接続要求端末101、および、被接続端末103は、認証サーバ102により決定され、通知されたポート番号情報に基づき、接続の要求、接続の許可の判断を行う。認証サーバ102から接続要求端末101へのポート番号情報の通知は、例えば、ACK(S202)に含める。
【0042】
図7は被接続端末103のソフトウェアのモジュール構成を示している。
【0043】
接続に際して、まず、認証サーバ(第1の相手)102から指示(所定の信号)S203が来るが、この指示S203は、所定のポート番号を含んでいる場合、501の通信モジュールを通して、502の認証サーバ通信モジュールで処理される。この指示S203は、認証サーバ102のアドレス情報を含む。認証サーバ通信モジュール502は、指示が偽造されていないかどうかを503の認証サーバアドレス情報を参照し確認する。
【0044】
503の認証サーバアドレス情報に存在する認証サーバ(第1の相手)からの指示であれば、認証サーバ通信モジュール502は、コマンドS203のフォーマットを解析して504の接続許可テーブルに値をセットする。この接続許可テーブル504にセットされる値は、接続要求端末101からの接続要求S205を許可するための値である。接続要求コマンドS201は、この値を含み、接続要求端末101は、接続要求S205に、この値を含める。その後、接続要求端末101(第2の相手)からダイレクトに接続要求S205があった際には、505の接続許可制御モジュールは、接続許可テーブル504を参照し、接続要求S205に含まれる上記の値が接続許可テーブル504にセットされているか、どうかにより、上位のアプリケーション506に接続要求を渡すか(上位アプリケーション506との接続を許可するか)、通信(上位アプリケーション506との接続)を拒否するかを制御する。この接続許可テーブル504にセットされる値の一例は、被接続端末103のアプリケーションを指定するために用いられるポート番号である。この値は、認証サーバ102が決定し、接続要求端末101、被接続端末102に通知し、接続要求端末101が、この値を接続要求S205に含めるようにしてもよい。
【0045】
接続許可テーブル504には、接続を許可する条件が設定される。認証サーバ通信モジュール502は、接続許可指示コマンドS203に含まれるポート番号情報などにより、接続許可テーブル504に設定されている接続許可条件を書き換える(変更する)。
【0046】
また、正常終了で終了しない場合に、接続許可テーブル504に長時間エントリが残ってしまうことが考えられるので、無通信の状態を監視し該当エントリの無通信状態が一定時間になれば接続許可テーブル504の該当エントリを消去するための無通信監視タイマー507を保持している。
【0047】
図8は被接続端末(端末B)103の接続許可テーブル504の構成を示している。
【0048】
各エントリは認証サーバ102からの接続許可指示コマンドS203により作成され、接続要求端末(端末A)101の終了処理S207、または、無通信監視タイマーモジュール507により削除される。
【0049】
F511は発信元IPアドレスフィールドであり、接続要求端末101のIPアドレスに相当する。F512は発信元ポート番号である。F513は受信ポート番号であり、F514のプロトコル種別とあわせて、上位のアプリケーション506を指し示す識別子となる番号である。F515は無通信監視タイマー507により設定される無通信経過時間であり、この値が一定以上になれば該エントリーを削除する。
【0050】
すなわち、被接続装置(受信装置)101は、受信手段であるネットワークインタフェースカード906と、接続を許可する許可手段でありCPU901を有し、CPU901は、ネットワークインタフェースカード906により受信された接続許可指示コマンドS203に含まれるポート番号情報に応じて、接続を許可する条件を変更する。
【0051】
被接続端末(受信装置)101は、受信手段であるネットワークインタフェースカード906を有し、認証サーバ(第1の相手)102から接続許可指示コマンド(第1の信号)S203が受信されると、接続要求端末(第2の相手)101と所定のポートとの接続を許可する許可手段であるCPU901を有する。例えば、被接続装置101は、接続要求端末(第2の相手)101との接続を許可するポートを示すポート情報を含む接続許可指示コマンド(第1の信号)を認証サーバ(第1の相手)102から受信したことを条件に、ポート情報により示されるポートと接続要求端末(第2の相手)との接続を許可する。
【0052】
また、本発明の実施の形態の受信装置である被接続端末103は、ポート番号情報を受信する受信手段であり、接続ポート開閉装置105であるネットワークインタフェースカード906と、ネットワークインタフェースカード906によりポート番号情報(を含む接続許可指示コマンドS203)を受信した以降、ネットワークインタフェースカード906により受信されたポート番号情報により特定されるポートでの接続を許可する許可手段であるCPU901とを有する。
【0053】
被接続端末103は、ポート番号およびプロトコル種別を指定した接続要求S205に対して、前記接続要求S205により指定されるポート番号と接続許可指示コマンドS203に含まれるポート番号情報の比較に基づいて、ポート番号およびプロトコル種別により特定されるアプリケーション506との接続を許可する。
【0054】
被接続端末103は、ネットワークインタフェースカード906により受信した接続許可指示コマンドS203に含まれるポート番号情報に基づいて、接続許可指示コマンドS203を受信した以降、CPU901により、ネットワークインタフェースカード906により受信された接続要求S205に含まれるポート番号情報に基づいて、接続を許可する。
【0055】
被接続端末103は、接続制御装置である認証サーバ102から接続許可指示コマンドS203を受信し、接続要求装置である接続要求端末101から接続要求S205を受信する。
【0056】
被接続端末103は、ネットワークインタフェースカード906により受信したポート番号情報を、CPU901により接続を許可された通信が終了すると、無効にする。
【0057】
被接続端末103は、ネットワークインタフェースカード906により受信したポート番号情報を、無通信監視タイマー507によりカウントされる所定時間後に、無効にする。
【0058】
被接続端末103は、ネットワークインタフェースカード906により、ポート番号情報とともに、アドレス情報を受信し、CPU901により、ポート番号情報およびアドレス情報に基づいて、接続を許可するか判断する。
【0059】
図9は、接続要求端末101から認証サーバ102に送られる認証要求コマンドS201のフォーマットを示したものである。これは、IPパケットのヘッダーとペイロードからなるものを論理的に示したものである。
【0060】
F601からF604までは、IPパケットのヘッダー部分に含まれる情報である。
【0061】
F601は、認証サーバ102のIPアドレスであり、該サーバ102までパケットを転送するためのあて先として使われる。接続要求端末101は、接続サーバアドレス情報303を、相手先IPアドレスF601として用いる。F602は接続要求端末101のIPアドレスである。また、F603は認証サーバ102の認証要求通信モジュール402に対応したポート番号であり、本実施の形態では1645番ポートとしている。この番号は、認証サーバ102を利用する接続要求端末、被接続端末のすべてで、一意で既知な番号である。ポート番号F603が1645である認証要求コマンドS201は、通信モジュール401を通して、認証要求通信モジュール402で処理される。
【0062】
F604は、接続要求端末101が該認証要求コマンドを発行した際のポート番号である。該ポート番号は、コマンド毎に変化しうるが、本実施の形態では、S201の認証要求コマンドとS205の接続要求では同一ポート番号を使用することにする。
【0063】
F605からF610は、IPパケットのペイロードに相当する部分である。ここでは、TCP,UDPのプロトコルに相当する部分は省略して記述している。
【0064】
F605はコマンド種別であり、認証要求コマンドをあらわす文字列[AuthReq]が格納されている。F606は接続要求端末101に固有のIDである。また、F607は該IDに対応するパスワードの文字列である。接続要求端末101は、自端末認証情報304に含まれているID、パスワードを、ID(F606)、パスワードF607として用いる。F608は接続要求端末101が接続を希望する被接続端末103のIPアドレスである。同様にF609は被接続端末103の接続を希望するアプリケーション506に対応するポート番号、F610はプロトコル種別である。
【0065】
図10は、認証サーバ102から被接続端末103に対して発行される接続許可指示コマンドS203のフォーマットを示している。これは、IPパケットのヘッダーとペイロードからなるものを論理的に示したものである。
【0066】
F701からF704までは、IPパケットのヘッダー部分に含まれる情報である。
【0067】
F701は被接続端末103のIPアドレスであり、該被接続端末103までパケットを転送するためのあて先として使われる。認証サーバ102は、接続要求コマンドS201の接続希望先IP(F608)に含まれていた被接続端末103のIPアドレスを、相手先IPアドレス103として用いる。F702は認証サーバ102のIPアドレスである。また、F703は被接続端末103の認証サーバ通信モジュール502に対応したポート番号であり、本実施の形態では1645番ポートとしている。この番号は、認証サーバ102からの接続許可指示コマンドS203を受け付ける端末すべてで、一意で既知な番号である。ポート番号F703が1645である接続許可指示コマンドS203は、501の通信モジュールを通して、502の認証サーバ通信モジュールで処理される。
【0068】
F704は、認証サーバ102が接続許可指示コマンドS203を発行した際のポート番号である。該ポート番号は、本実施の形態では、S201のコマンド中のF603(認証サーバ102の認証要求通信モジュール402に対応したポート番号)と同一にしている。
【0069】
F705からF709は、IPパケットのペイロードに相当する部分である。ここでは、TCP,UDPのプロトコルに相当する部分は省略して記述している。
【0070】
F705はコマンド種別であり、接続許可指示コマンドをあらわす文字列[PortOpenReq]が格納されている。F707は接続要求端末101のIPアドレスである。認証サーバ102は、認証要求コマンドS201に含まれる接続要求端末101のIPアドレスF602を、接続要求端末101のIPアドレスF707として用いる。また、F707は接続要求端末101が被接続端末103に接続する際に使用する予定のポート番号である。
【0071】
認証サーバ102は、認証要求コマンドS201に含まれる接続要求端末101が該認証要求コマンドを発行した際のポート番号F605を、接続希望元ポート番号F707として用いる。接続要求端末101が被接続端末103に接続する際に使用する予定のポート番号F707としては、接続要求端末101が該認証要求コマンドを発行した際のポート番号F605以外のポート番号を用いることも可能であり、その場合には、接続要求端末101が被接続端末103に接続する際に使用する予定のポート番号を、認証要求コマンドS201に含める。
【0072】
F708は接続要求端末101が接続を希望する被接続端末103のアプリケーション506に対応するポート番号である。認証サーバ102は、認証要求コマンドS201に含まれる被接続端末103の接続を希望するアプリケーション506に対応するポート番号F609を、接続要求端末101が接続を希望する被接続端末103のアプリケーション506に対応するポート番号F708として用いる。F709はプロトコル種別である。認証サーバ102は、認証要求コマンドS201に含まれるプロトコル種別F610を、プロトコル種別F709として用いる。
【0073】
図11は本実施の形態に関わる接続要求を出す接続要求端末101の動作のフローチャートである。このフローチャートは、CPU901が、ROM902、あるいはHD907、あるいはFD908から読み出して実行するプログラムを示す。
【0074】
アプリケーション301から通信の要求があると、まずS801で、認証サーバ102へ接続する。このときに使用する接続先のIPアドレスは認証サーバアドレス情報303に格納されているIPアドレスである。まず、S802で認証サーバ通信モジュール302から認証要求コマンドS201(図9)を発行する。この認証要求コマンドS201は、接続希望先ポート番号F609を含む。接続希望先ポート番号F609は、プロトコル種別F610とともに、被接続端末103のあるアプリケーション506を特定する。
【0075】
S803では認証サーバ102からのレスポンスS202またはS204を待っていてS202の接続不許可レスポンス(NACK)が帰ってきたらS804へ、またS204の接続許可レスポンス(ACK)が帰ってきたらS805へ進む。
【0076】
S804では以後の処理は継続できないので、認証サーバ102と通信を切断し、また、認証要求をだしたアプリケーション301に対して認証サーバ通信モジュール302から接続不許可であった旨を通知して処理を終了する。
【0077】
また、S805では認証サーバ102との通信は切断し、アプリケーション301に対して認証サーバ通信モジュール302から接続許可であったことを通知する。アプリケーション301は接続許可がえられたことにより以後の被接続端末103と接続する。
【0078】
S806では、アプリケーション301から被接続端末103に対して上位レイヤーでの通信開始の接続要求S205を発行する。この接続要求S205は、接続希望先ポート番号、および、プロトコル種別を含む。接続希望先ポート番号は、プロトコル種別とともに、被接続端末103のあるアプリケーション506を特定する。S807では、接続要求S205に対して実際に接続されるまで待機する。この処理は、例えば、TCPのセッション確立のフローや、上位のアプリケーションでの処理である。
【0079】
S808では、アプリケーション301が通信中かどうかで、上位アプリケーション301が通信を終了したことを受けて、通信モジュール305は、被接続端末103との通信を切断する。
【0080】
すなわち、本発明の接続要求装置である接続要求端末101は、図11のプログラムに基づいた処理を実行するCPU901の制御の元に、受信装置である被接続装置103および設定装置である認証サーバ102と、ネットワーク100を介して通信する。具体的には、受信装置である被接続端末103に接続を要求するポート番号情報(を含む認証要求コマンドS201)を、設定装置である認証サーバ102に送信し(S802)、前記ポート番号情報に対応するポート番号を含む接続要求S205を受信装置である被接続装置103に送信する(S806)。接続要求端末101は、設定装置である認証サーバ102からの応答ACKに応じて(S803)、前記接続要求S205を、前記受信装置である被接続装置103に送信する(S806)。
【0081】
図12は本実施の形態に関わる認証サーバ102の動作を示すフローチャートである。このフローチャートは、CPU901が、ROM902、あるいはHD907、あるいはFD908から読み出して実行するプログラムを示す。
【0082】
このサーバ102は、常に端末からの認証要求を待ち受けている。
【0083】
S901で接続要求端末からの認証要求を待ち受ける。実際に接続要求端末101からの接続要求があると、S902で認証要求コマンド201のパラメータF601〜F610を抽出する。
【0084】
S903では、F606のIDをもとにID、パスワードテーブル403からパスワード文字列を抽出しF607の文字列と比較する。S905で文字列を比較して同一であれば認証されたものとみなしS907へ進む。また、ここで文字列が異なれば、認証されなかったものとみなし、S906へ進む。
【0085】
S906では認証されなかったために以後の処理は継続せず、単純に接続要求端末101との通信を切断して処理を終了する。
【0086】
また、S907では被接続端末103に対して接続許可指示コマンドS203を発行する。この接続許可指示コマンドS203は、接続希望先ポート番号F708を含む。接続希望先ポート番号F708は、プロトコル種別F709とともに、被接続端末103のあるアプリケーション506を特定する。認証サーバ102は、認証要求コマンドS201に含まれる接続希望先ポート番号F609、プロトコル種別F610を、接続希望先ポート番号F708、プロトコル種別F709として、接続許可指示コマンドS203に含める。他の形態では、接続希望先ポート番号F609、プロトコル種別F610を、接続要求端末103から認証サーバ102に通知するコマンドを、認証要求コマンドS201とは、別に設ける。S908では接続要求端末101に対して接続許可のレスポンスS204を返信する。S909では接続要求端末101の認証要求処理の切断処理を行う。
【0087】
すなわち、本発明の実施の形態の設定装置である認証サーバ102は、図12のプログラムに基づいた処理を実行するCPU901の制御の元に、ネットワーク100を介して、受信装置である被接続端末103の設定を行う設定装置である。具体的には、接続要求側101と接続するためのポート番号情報(を含む接続許可指示コマンドS203)を、受信装置である被接続端末103に通知する(S907)。本形態では、認証サーバ102は、接続要求側101からポート番号情報(を含む認証要求コマンド201)を受信し(S901)、接続要求側101から受信したポート番号情報を、S907で、受信装置である被接続端末103に通知する。
【0088】
また、他の形態では、認証サーバ102は、ポート番号を決定し、決定したポート番号を表すポート番号情報を、接続要求端末101に通知し、被接続端末103に通知し(S907)、接続要求端末101、および、被接続端末103は、認証サーバ102により決定され、通知されたポート番号情報に基づき、接続の要求、接続の許可の判断を行う。認証サーバ102から接続要求端末101へのポート番号情報の通知は、例えば、S908で送信するACK(S202)に含める。
【0089】
図13は本実施の形態に関わる被接続端末103の動作を示すフローチャートである。このフローチャートは、CPU901が、ROM902、あるいはHD907、あるいはFD908から読み出して実行するプログラムを示す。
【0090】
S1001では、認証サーバ102からの接続のみを待ち受けている。被接続端末103は、グローバルIPを保持していて、種々のサービスを受け付ける能力を保持しているが、通常は通信を受け付けるための接続ポートは、認証サーバ通信モジュール502が、認証サーバ102からの通信を受け付けるための接続ポート(図10のF703に設定されている1645番ポート)しか設定していない。ただし、認証サーバ102は複数あるケースは考えられる。
【0091】
S1001で、接続要求があると、S1002において、接続要求元のIPアドレス(発信元IPアドレス)を抽出する。S1003では、認証サーバ102のアドレスが格納されている認証サーバアドレステーブル503を参照し、比較する。テーブル503の中に接続要求元のIPアドレスが含まれていれば、S1005において認証サーバ102からの指示を受け付けるためにフローS1006に進む。
【0092】
また、S1005で1004の認証サーバアドレステーブルにIPアドレスが含まれない場合には、一般端末からの接続要求としてS1011にすすむ。
【0093】
S1006では、認証サーバ通信モジュール502は、認証サーバ102との接続処理を実施する。S1007で認証サーバ102からの接続許可指示コマンドS203を待つ。相手先ポート番号が1645番ポートである接続許可指示コマンドS203を受信すると、認証サーバ通信モジュール502は、S1008にて接続許可指示パラメータF701〜F709を抽出する。S1009ではS1008で抽出したパラメータから、接続希望元IPアドレスF706、接続希望元ポート番号F707、接続希望先ポート番号F708、プロトコル種別F709を、接続許可テーブル504のフィールドF511〜F514に格納し、切断処理S1018へ進む。無通信監視タイマー507は、カウントを開始する。
【0094】
接続許可指示コマンドS203が受信された後、接続要求S205が受信されるが、被接続端末103は、接続許可指示コマンドS203に含まれ、接続許可テーブル504に格納される接続ポート番号に基づき、接続要求S205により要求される接続を許可するか、判断する。接続許可テーブル504には、接続を許可する条件が設定され、CPU901は、接続許可指示コマンドS203に含まれるポート番号情報(接続希望先ポート番号F708)など(例えば、プロトコル種別F709、接続希望元ポート番号F707)に応じて、接続許可テーブル504に設定されている接続許可条件を変更する。接続希望先ポート番号F708、および、プロトコル識別F709は、被接続端末103のあるアプリケーション506を指定する。
【0095】
一方、S1005で認証サーバ102からの接続で無い場合、S1011で接続要求のパケットの中からパラメータを抽出する。ここで抽出するパラメータは、接続要求元のIPアドレス、プロトコル種別、接続要求元のポート番号、被接続端末103に対して接続を要求するポート番号である。
【0096】
S1012に進み、接続許可テーブル504中のF511のフィールドを参照し、パケットから抽出した接続要求元のIPアドレスが、接続許可されているIPアドレスであるかどうかを判定する。ここで、F511のフィールドのひとつに、接続要求S205中の接続要求元のIPアドレスがあれば、S1013に進み、なければ接続拒否のフローS1017に進む。
【0097】
S1013では、S1012で合致したIPアドレスのエントリの中から、さらに接続要求のパケット中で接続を要求するポート番号が、受信ポート番号フィールドF513にあるかどうかを判定する。図8の例では、発信元IPアドレスが、192.158.1.2であれば、接続要求のパケット中で接続を要求するポート番号が、80であるか、判定する。すなわち、被接続端末(受信装置)103は、ポート番号情報を含む接続許可指示コマンドS203(第1の信号)を認証サーバ(第1の相手)102から受信すると(S1007)、その第1の信号の受信の以降に、接続要求端末(第2の相手)101から受信した第2の信号(接続要求S205)による接続を、第1の信号及び第2の信号に含まれるポート番号情報(第1の信号に含まれるポート番号情報により特定されるポートと、第2の信号に含まれるポート番号情報により特定されるポートとの比較)に基づき、許可する(S1013)。
【0098】
ここで、他の形態では、F514に相当するTCP/UDPのプロトコルの種別、また、F512に相当する発信元のポート番号で接続制限をかける。これに対して、本実施の形態では一番重要度の高い、IPアドレスF511と受信ポート番号F513で判定する。また、受信ポート番号F513のみで、接続制限をかけるようにしてもよい。
【0099】
S1013において接続が許可されると判断されると、S1014にて、実際に接続要求端末101とアプリケーション506を接続させる。このアプリケーション506は、接続を要求するパケットの中から抽出したプロトコル種別と、被接続端末103に対して接続を要求するポート番号により、特定される。プロトコル種別が、TCPで、ポート番号が80ならば、アプリケーション506は、HTTPである。
【0100】
S1015ではアプリケーション506からの終了指示が出るまで待機しており、S1016で上位アプリケーション506が終了すると、接続許可テーブル504から該当するエントリF511〜F515を削除する。また、無通信監視タイマー507は、無通信経過時間F515が所定時間(例えば、1分)になると、該当するエントリF511〜F515を削除する。いずれの場合も、エントリF511〜F515は、無効になり、当該エントリに含まれる情報による接続の許可は、行われなくなる。
【0101】
S1017においては、アプリケーション506に処理を渡す以前に接続拒否する。また、ここの処理においては、単純な接続拒否ではなく、認証サーバ102の認証が取れていない旨のエラーレスポンスを返すことも考えられる。
【0102】
S1018では、すべての該当する通信の接続の切断処理を実施して一連の通信をすべて終了する。
【0103】
すなわち、本発明の実施の形態の受信装置である被接続端末103は、図13のプログラムに基づいた処理を実行するCPU901の制御の元に、接続許可指示コマンドS203に含まれるポート番号情報(F708)に応じて、接続許可テーブル504に設定されている接続許可条件を変更する。認証サーバ(第1の相手)102から接続許可指示コマンド(第1の信号)S203を受信したことを条件に(S1007)、接続要求端末(第2の相手)101と所定のポートとの接続を許可する(S1013)。例えば、被接続装置101は、接続要求端末(第2の相手)101との接続を許可するポートを示すポート情報を含む接続許可指示コマンド(第1の信号)を認証サーバ(第1の相手)102から受信したことを条件に、ポート情報により示されるポートと接続要求端末(第2の相手)との接続を許可する。
【0104】
また、ポート番号情報(を含む接続許可指示コマンドS203)を受信し(S1007)、受信したポート番号情報を元に、接続ポート開閉装置105であるネットワークインタフェースカード906を制御する(S1013)。具体的には、ポート番号情報(を含む接続許可指示コマンドS203)を受信した以降、受信されたポート番号情報に基づいて(S1013)、受信されたポート番号情報により特定される接続を許可する(S1013)。
【0105】
被接続端末103は、ポート番号およびプロトコル種別を指定した接続要求S205に対して、S1013で、前記接続要求S205により指定されるポート番号と接続許可指示コマンドS203に含まれるポート番号情報の比較に基づいて、ポート番号およびプロトコル種別により特定されるアプリケーション506との接続を許可する。
【0106】
被接続端末103は、接続許可指示コマンドS203に含まれるポート番号情報に基づいて、接続許可指示コマンドS203を受信した以降、S1013で、ネットワークインタフェースカード906により受信された接続要求S205に含まれるポート番号情報に基づいて、接続を許可する。
【0107】
被接続端末103は、接続制御装置である認証サーバ102から接続許可指示コマンドS203を受信し、接続要求装置である接続要求端末101から接続要求S205を受信する。
【0108】
被接続端末103は、ネットワークインタフェースカード906により受信したポート番号情報を、接続を許可された通信が終了すると(S1015)、無効にする(S1016)。
【0109】
被接続端末103は、ポート番号情報を、無通信監視タイマー507によりカウントされる所定時間後に、無効にする。
【0110】
被接続端末103は、ポート番号情報とともに、アドレス情報を受信し、CPU901により、ポート番号情報およびアドレス情報に基づいて(S1012、S1013)、接続を許可する。
【0111】
このように、本形態では、接続許可指示コマンドS203により許可されたIPアドレスの接続要求端末101以外は、アプリケーション506に接続しない。本形態では、認証サーバ102から被接続端末103に、接続を許可するポート番号を指定したが、接続を許可するポート番号以外のポート番号を指定するようにしてもよい。また、接続を許可するボート番号自体を指定する代わりに、あるポート番号、例えば、25を指定すると、25の倍数のポート番号での接続が許可されるようにしてもよい。
【0112】
したがって、認証サーバ102のセキュリティ、認証サーバで行う認証のレベル次第でセキュリティレベルを向上させることができる。
【0113】
また、単にDoS攻撃を防御する目的であれば、認証サーバ102でクライアントを認証する行為自体が厳密でなくても、DoS攻撃を仕掛けている端末のIPアドレスがわかれば、IPアドレスのみでの制御という方法も取れる。
【0114】
したがって、不特定多数からの接続を受ける端末において、サービス妨害攻撃を防止することが可能である。
【0115】
また、接続してくる相手の端末の認証を行うことができる。
【0116】
(第1の実施の形態の変形例)
図14は、第1の実施の形態の変形例を、フローで示したものである。図14は、図2のフローの変形例である。
【0117】
本変形例は、端末同士が通信するプロトコルが種々考えられる場合に、より簡便にセキュリティを確保することができるものである。
【0118】
接続要求を出す側の接続要求端末101が被接続端末103と通信を開始する際に、先ず認証サーバ102に対して、「認証要求コマンド」S1201を発行する。
【0119】
S1201のコマンドのフォーマット、パラメータに関しては図9のうちF609、F610は必要としない。
【0120】
認証要求コマンドS1201に対して、接続を許可する場合、該認証サーバ102から被接続端末である端末B103に対して接続許可要求コマンドS1202を発行する。この際のコマンドフォーマットは図10のうちF701〜F706までを含むものである。
【0121】
被接続端末である端末B103は、待機中は、認証サーバ102からの所定のコマンド以外は、無視(あるいは、拒否)するように設定されている。被接続端末103が、待機中において、受信したコマンドを受け付ける条件は、受信したコマンドの発信元IPアドレスが、所定のIPアドレスであった場合である。ある実施例では、受信したコマンドの発信元IPアドレスが、所定のIPアドレスであった場合であり、かつ、受信したコマンドで指定された被接続端末103のポート番号が、所定の番号であった場合である。
【0122】
被接続端末B103は、この待機中において、認証サーバ102からの接続許可要求コマンドS1202を受信すると、S1203にて指定されたIPアドレスからのアクセスはすべてのポート番号に対して許可する設定を行う。
【0123】
具体的には、図8の接続許可テーブルに値をセットする形になるが、まず、S1202のコマンドの中からF706の接続希望元のIPアドレスを抽出して、F511のフィールドへセットする。また、それ以外のフィールドF512、F513、F514は、特に制限を設けないものとする(F512の発信元ポート番号は、すべて許可。F513の受信ポート番号はすべて許可。F514のプロトコルはTCPおよびUDPを許可)。
【0124】
S1204では、接続許可レスポンスS1204を認証サーバ102に返す。
【0125】
S1205では、認証サーバ102は、被接続端末B103から受けたS1204の接続許可レスポンスを接続要求端末A101に対して返信する。
【0126】
接続要求端末101では、S1205の接続許可レスポンスを受信すると、任意のポート番号を使用して、被接続端末102に対して接続要求コマンドS1206を発行する。接続要求コマンドS1206は、接続要求端末101のIPアドレス、及び、接続要求端末101が接続を希望する被接続端末103のポート番号を示すポート番号情報が含まれている。
【0127】
被接続端末103は、すでに接続許可テーブル(図8)に該端末A101のIPアドレスは設定済みであり(S1203)、また、それ以外のパラメータに関してはすべて許可する(すべてのポートへの接続を許可する)設定になっているので、接続要求端末101からの要求S1206(接続要求端末101のIPアドレスを含んでいる)による接続を受け入れられる。S1207では、S1206にて接続されたポート番号を抽出し、接続許可テーブル(図8)にセットし、以後他のポートからの接続は許可しないようにする。このポート番号は、接続要求コマンドS1206に含まれている。このポート番号を含む接続要求S1206受け付けた以降、被接続端末103は、対応するポート番号以外を指定した接続要求は、無視(あるいは、拒否)する。
【0128】
すなわち、接続許可テーブルには、接続を許可する条件が設定されている。接続要求S1206には、ポートを特定するポート番号情報が含まれ、このポート番号情報に応じて、接続許可テーブルの接続許可条件を変更する(このポート番号情報により特定されるポート以外のポートでの接続を制限する)。
【0129】
以後S1208で上位アプリケーションの通信が開始される。この上位アプリケーションは、ポート番号、及び、プロトコル種別により特定される。
【0130】
上位アプリケーションの通信S1208が終了すると、S1209において終了処理コマンドが送信される。被接続端末103は、認証サーバ102からの所定のコマンド以外は、無視(あるいは、拒否)する待機状態に戻る。
【0131】
S1203では、すべてのポートへの接続を許可したが、例えば、端末101と103の両方で既知のポート番号への接続は、許可し、それ以外のポート番号への接続は、許可しないようにしてもよい。たとえば、偶数のポート番号への接続は、許可し、奇数のポート番号への接続は、許可しないようにしてもよい。
【0132】
図15は、被接続端末103のソフトウェアのモジュール構成である。
【0133】
接続に際して、まず、認証サーバ102から指示S1202が来るが、この指示S1202は1501の通信モジュールを通して、1502の認証サーバ通信モジュールで処理される。この指示1202は、所定のポート番号を含み、認証サーバ通信モジュール1502は、指示S1202が所定のポート番号を含んでいれば、このとき指示S1202が偽造されていないかどうかを、1503の認証サーバアドレス情報を参照して確認する。1503の認証サーバアドレス情報に存在する認証サーバからの指示であれば、コマンドS1202のフォーマットを解析して接続要求端末101のIPアドレスの特定を行い、1504の接続許可テーブルに値をセットする。このとき、ポート番号はすべてのポートを許可するものとする。
【0134】
その後、接続要求端末101から接続要求S1206があった際には、1505の接続許可制御モジュールが接続許可テーブル1504を参照し、上位のアプリケーション1506に接続要求を渡すか、通信を拒否するかを制御する。ここでは、接続要求S1206の発信元IPアドレスが接続許可テーブル1504に設定されている発信元IPアドレスと一致すれば、接続要求S1206に含まれるポート番号とプロトコル種別により特定される上位アプリケーション1506に、接続要求端末101を接続する。
【0135】
また、通信が始まった際、1507の通信ポート検知モジュールが、発信元IPアドレスと使用するポート番号を検知して、接続許可テーブル1504のポート番号を一つのみに変更する。すなわち、接続要求S1206の発信元IPアドレスF511に対応するポート番号F513を、接続許可テーブル1504に登録する。以降、接続許可制御モジュール1505は、このポート番号以外での接続要求は、許可しない。接続要求S1206は、接続要求端末101と接続するためのポート番号(例えば、80)を示すポート番号情報を含んでいるが、このポート番号情報を受信した以降、接続制御モジュール1505は、80番以外のポート番号での接続は、許可しない。この接続を許可しないポート番号は、接続要求S1206に含まれるポート番号情報により特定される。
【0136】
ある形態では、この図15のソフトウェア(プログラム)を、CPU901が実行して、本変形例の端末103が、ここで説明するように動作する。このプログラムは、RAM902の所定領域に記憶しておき、CPU901が読出して、実行するようにしてもよい。
【0137】
なお、本変形例では、フローは異なるが、図1、図3の構成に関しては、共通である。
【0138】
本発明の受信装置である被接続装置103は、ポートを特定するポート番号情報(接続要求S1206)を受信する受信手段であるネットワークインタフェース906と、接続を許可する許可手段であるCPU901とを有する。CPU901は、ポート番号情報に応じて、接続を許可する条件を変更する。
【0139】
被接続装置103は、ポート番号情報を受信する受信手段であるネットワークインタフェースボード906と、前記受信手段によりポート番号情報を受信した以降、前記受信手段により受信されたポート番号情報により特定されるポートでの接続を許可する許可手段であるCPU901とを有する。このポート番号情報は、接続要求S1206に含まれ、被接続装置103は、このポート番号情報により特定されるポート以外での接続を制限する。
【0140】
本変形例では、ポートを特定するポート番号情報を含む接続要求S1026をネットワークインタフェースカード906が受信すると、CPU901は、受信したポート番号情報に応じて、接続を許可する条件を変更する(ポート番号情報により特定されるポート以外での接続を制限する)。接続を許可する条件は、接続許可テーブル1504に設定されている。接続要求S1206に含まれるポート番号情報およびプロトコル種別により特定されるアプリケーション1506との接続を許可する。ポート番号情報を受信した以降、ポート番号情報により特定されるポート以外での接続を制限する。
【0141】
(第2の実施の形態)
次に、第2の実施の形態を説明する。
【0142】
図16に、本実施の形態のフローを示す。端末101、103、中継サーバ102A(図1の認証サーバ102に相当する)の構成は、第1の実施の形態における端末101、103、認証サーバ102の構成と共通である。第1、第2の実施の形態では、被接続端末(受信装置)103は、所定のポート番号を指定した接続要求を、ポート番号とプロトコル種別により特定されるアプリケーションと接続する。第1の実施の形態では、被接続端末(受信装置)103は、接続許可指示コマンドS203に含まれるポート番号情報、及び、接続要求端末(装置)101からの接続要求S205に含まれるポート番号に基づき、接続を許可する。第2の実施の形態では、被接続端末(受信装置)103は、ポート番号を決定し、送信要求端末(装置)101は、被接続端末(受信装置)103により決定されたポート番号を含む接続要求S1106を送信する。
【0143】
本形態の端末103は、第1の信号(接続許可レスポンスS1104)を送信し、第2の信号(接続要求S1105)を受信する送受信手段(ネットワークインタフェースカード906)と、第2の信号(接続要求S1105)を受信するためのポート番号情報を決定する決定手段(CPU901)とを有する。前記送受信手段(ネットワークインタフェースカード906)は、前記決定手段(CPU901)が決定したポート番号情報を含む第1の信号(接続許可レスポンスS1104)を送信し、前記決定手段は、決定したポート番号情報に基づいて、第2の信号による接続を許可する。
【0144】
また、CPU901は、第1の相手(中継サーバ102A)から所定の信号(接続許可指示コマンドS1102)が受信されると、第2の相手(接続要求端末101)と特定のポートとの接続を許可する許可手段である。
【0145】
端末103は、第3の信号(接続許可指示コマンドS1102)を受信すると、CPU(決定手段)901により決定されたポート番号情報を含む第1の信号(S1104)を送信する。第3の信号(接続許可指示コマンド)S1102は、中継サーバ(中継装置)102Aから受信し、第2の信号(接続要求)S1105は、端末(接続要求装置)101から受信し、第1の信号(接続許可レスポンス)S1104は、中継サーバ(中継装置)102Aに送信する。
【0146】
本形態の中継サーバ102Aは、ネットワーク100を介して通信装置の設定を行う設定装置であって、被接続側103と接続要求側の通信装置(端末)101の接続に用いるポート番号の情報を、接続要求側の通信装置(端末)101に通知する。被接続側103は、接続要求側の通信装置(端末)101との接続に用いるポート番号を決定し、中継サーバ102Aに通知する。
【0147】
本形態の接続要求端末101は、受信装置(端末)103および設定装置(中継サーバ)102Aとネットワーク100を介して通信する接続要求装置であって、ネットワーク100を接続する接続手段(ネットワークインタフェースカード)906と、受信装置103との接続に用いるポート番号の情報を受信し、前記ポート番号の情報に対応するポート番号を含む接続要求を受信装置103に送信する送受信手段(CPU)901とを有する。CPU901は、設定装置(中継サーバ102A)からの応答S1105に応じて、前記接続要求S1106を前記受信装置103に送信する。
【0148】
中継サーバ102Aは、被接続側103からポート番号情報を受信し、被接続側103から受信したポート番号情報を、接続要求側である接続要求端末101に通知する。
【0149】
また、他の形態では、中継サーバ102Aは、ポート番号を決定し、決定したポート番号を表すポート番号情報を、接続要求端末101、および、被接続端末103に通知し、接続要求端末101、および、被接続端末103は、中継サーバ102Aにより決定され、通知されたポート番号情報に基づき、接続の要求、接続の許可の判断を行う。中継サーバ102Aから被接続端末103へのポート番号情報の通知は、例えば、接続指示コマンドS1102に含める。
【0150】
端末101、103、中継サーバ102Aは、CPU901が、ROM902あるいはHD907に記憶されたソフトウェア、あるいはFD908より供給されるソフトウェアを実行することで、以下のような動作を行う。CPU901は、以下に説明する処理シーケンスに従った処理プログラムを、ROM902、あるいはHD907、あるいはFD908から読み出して実行することで、本実施形態での動作を実現するための制御を行う。
【0151】
本形態は、あらかじめ端末同士が通信するプロトコルがある程度決まっている端末同士の場合に、より簡便にセキュリティを確保することができ、さらに、端末同士が通信を始めるにあたり、中継のサーバ102Aにより通信のセッションの制御が行われるモデルに対して、好適に適用可能な形態である。
【0152】
接続要求を出す側の接続要求端末A101が被接続端末B103と通信を開始する際に、先ず中継サーバ102Aに対して、「接続要求コマンド」S1101を発行する。
【0153】
S1101のコマンドのフォーマット、パラメータに関しては、図9のうち、接続希望先ポート番号F609、プロトコル種別F610は必要としない。
【0154】
接続要求コマンドS1101に対して、接続を許可する場合、該中継サーバ102Aは、被接続端末である端末B103に対して接続許可要求コマンドS1102(第3の信号)を発行する。この際のコマンドフォーマットは図10のうち、F701〜F706までを含むものである。ここで、中継サーバ102Aが、接続要求コマンドS1101に対して、接続を拒否する場合は、省略したが、第1の実施の形態と同様に、接続を拒否する場合は、端末101にNackを返す。
【0155】
被接続端末である端末B103は、S1103にて、動的に(例えば、ランダムに)接続を許可するポート番号を決定し、同時にそのポート番号に対する接続を許可する。
【0156】
具体的には、図8の接続許可テーブルに値をセットするが、まず、S1102のコマンドの中からF706の接続希望元101のIPアドレスを抽出して、F511のフィールドへセットする。また、端末B103内でS1103にて動的に(例えば、ランダムに)決定されたPort番号をF513にセットする。本実施の形態では、それ以外のフィールドF512、F514は、特に制限を設けないものとする(F512の発信元ポート番号は、すべて許可。F514のプロトコルはTCPおよびUDPを許可)。図16の形態では、接続許可コマンドS1102の受信後に、接続ポート番号を決定したが、接続許可コマンドS1102の受信に先立って、ポート番号を決定しておき、接続許可コマンドS1102の受信により、接続許可コマンドS1102に含まれる接続希望元IPアドレスF706と、予め決定しておいたポート番号を、接続許可テーブルのF511とF513に登録してもよい。
【0157】
S1104では、S1103により決定した接続ポート番号を含む接続許可レスポンスS1104(第1の信号)を中継サーバ102Aに返す。この接続ポート番号は、端末101からの接続要求による接続を許可するポートを特定するポート番号情報である。
【0158】
S1105では、中継サーバ102Aは、被接続端末B103から受けたS1104の接続許可レスポンスを接続要求端末A101に対して返信する。この接続許可レスポンスS1105は、S1103で決定された接続ポート番号を含む。図16の形態では、他の形態では、接続許可レスポンスを、端末B103から、中継サーバ102A経由で、端末A101に返したが、端末B103から、直接(中継サーバ102A)を介さずに、端末A101に返す。
【0159】
接続要求端末A101では、S1105の接続許可レスポンスを受信すると、その中の接続許可ポート番号を使用して、被接続端末B103に対して接続要求コマンドS1106を発行する。
【0160】
被接続端末B103側では、すでに接続許可テーブル(図8)に該端末A101のIPアドレスおよび、接続要求コマンドS1106(第2の信号)のポート番号は設定済み(S1103)であり、そのIPアドレス及びポート番号を含む接続要求が来れば、接続を受け入れる(許可する)。接続許可テーブル504にIPアドレスが含まれていても、ポート番号が異なっていれば、その接続は、拒否する。以後S1107で上位アプリケーションの通信が開始される。この上位アプリケーションは、接続要求S1106に含まれるポート番号(S1103で決定されたポート番号)、及び、プロトコル種別により特定される。端末103が、所定のプロトコル(例えば、TCP)を用いる形態、あるいは、接続要求端末毎に使用するプロトコルが決まっている形態(例えば、ある端末が使うプロトコルは、UDPに決まっている)では、プロトコル種別は、予め、RAM903、あるいは、ROM902に登録され、接続要求S1106には、必ずしも、含める必要はない。
【0161】
上位アプリケーションの通信S1107が終了すると、S1108において終了処理コマンドが送信される。端末B103は、接続要求S1106による接続での通信S1107が終了すると、S1103で決定されたポート番号を、接続許可テーブル504から削除する(無効にする)。また、端末B103は、接続許可テーブル504の無通信経過時間が所定時間に達した場合も、無効にする。
【0162】
本形態の端末103は、ポート番号情報を含む接続許可レスポンス(第1の信号)S1104を送信し、接続要求(第2の信号)S1106を受信し、ポート番号情報に基づいて、接続要求(第2の信号)S1106による接続を許可する。
【0163】
図17は、被接続端末103のソフトウェアのモジュール構成である。
【0164】
接続に際して、まず、中継サーバ102Aから指示S1102が来るが、この指示は1401の通信モジュールを通して、1402の認証サーバ通信モジュールで処理される。このとき指示S1102が偽造されていないかどうかを1403の認証サーバアドレス情報を参照し確認する。1403の認証サーバアドレス情報に存在する中継サーバ102Aからの指示S1102であれば、コマンドS1102のフォーマットを解析して接続要求端末のIPアドレスF706の特定を行う。また、1407で通信用のポート番号を決定し、接続要求端末101のIPアドレスと共に1404の接続許可テーブル(F511、F513)に値をセットする。また、1407の通信ポート決定モジュールで決定されたポート番号は、1402の認証サーバ通信モジュールを通して中継サーバ102Aに返信される。
【0165】
その後、接続要求端末101から接続要求S1106があった際には、1405の接続許可制御モジュールが接続許可テーブル1404を参照し上位のアプリケーション1406に接続要求を渡すか(上位アプリケーション1406との接続を許可するか)、通信(上位アプリケーション1406との接続)を拒否するかを制御する。
【0166】
ある形態では、この図17のソフトウェア(プログラム)を、CPU901が実行して、本変形例の端末103が、ここで説明するように動作する。このプログラムは、RAM902の所定領域に記憶しておき、CPU901が読出して、実行するようにしてもよい。
【0167】
なお、本変形例では、フローは異なるが、図1、図3の構成に関しては、共通である。
【0168】
本形態の端末103は、接続許可レスポンス(第1の信号)S1104を送信し、接続要求(第2の信号)S1106を受信する送受信手段(ネットワークインタフェースカード906)と、接続要求(第2の信号)S1106を受信するためのポート番号情報を決定する決定手段(CPU901)とを有する。ネットワークインタフェースカード906は、CPU901が決定したポート番号情報を含む接続許可レスポンス(第1の信号)S1104を送信し、CPU901は、ポート番号情報に基づいて、接続要求(第2の信号)S1106による接続を許可する。すなわち、接続要求S1106が、このポート番号情報により特定されるポートへの接続要求であれば、この接続要求S1106による接続は、許可する。接続要求S1106は、接続希望先ポート番号を含む。なお、端末103は、中継サーバ102Aから接続許可指示コマンド(第3の信号)S1102が受信されると、接続許可レスポンス(第1の信号)S1104を送信する。
【0169】
接続要求(第2の信号)S1106は、接続要求(第2の信号)S1106に含まれているポート番号(とプロトコル種別)に応じたアプリケーション1406に接続される。
【0170】
アプリケーションに固有のものではないランダムなポート番号を、非接続端末103側で指定することにより、特定ポートを狙った攻撃の防止効果を高めることができる。
【0171】
(第2の実施の形態の変形例)
図18は第2の実施の形態の変形例のフローを示したものである。
【0172】
本変形例では、端末同士が通信するプロトコルが種々考えられ、かつひとつのサービスが通信中に同一端末間でさらに別のサービスのセッションを張るような場合を説明する。
【0173】
接続要求を出す側の接続要求端末101が被接続端末103と通信を開始する際に、先ず中継サーバ102Aに対して、「接続中継要求コマンド」S1301を発行する。
【0174】
S1301のコマンドのフォーマット、パラメータに関しては図9のうちF609、F610は必要としない。
【0175】
接続中継要求コマンドS1301に対して、該中継サーバ102Aから被接続端末である端末B103に対して接続許可要求コマンドS1302を発行する。この際のコマンドフォーマットは図10のうちF701〜F706までを含むものである。
【0176】
被接続端末である端末B103は、S1303にて指定されたIPアドレスからのアクセスに対して、予め定められたネゴシエーションポート番号に対して許可する設定を行う。
【0177】
具体的には、図8の接続許可テーブルに値をセットする形になるが、まず、S1302のコマンドの中からF706の接続希望元のIPアドレスを抽出して、F511のフィールドへセットする。また、またF512の発信元ポート番号およびF513の受信ポート番号は、本システムに関わるすべての端末であらかじめ共通に一意決められたネゴシエーション用のポート番号をセットする。F514のプロトコルもあらかじめ決められたプロトコルをセットする。
【0178】
S1304では、接続許可レスポンスS1304を中継サーバ102Aに返す。
【0179】
S1305では、中継サーバ102Aは、被接続端末B103から受けたS1304の接続許可レスポンスを接続要求端末A101に対して返信する。
【0180】
接続要求端末101では、S1305の接続許可レスポンスを受信すると、S1303で記したネゴシエーションポート番号、およびプロトコル(F512−F514に設定した値)を使用して、S1306にて端末B103と以後の上位アプリケーションのためのネゴシエーションを行う。この中で使用するポート番号を端末A101、端末B103双方で決定する。ある例では、端末101が希望するポート番号を端末103に送り、端末103がそのポートでの接続の可否を判断し、判断結果を端末101に通知する。端末103がそのポートでの接続を認めない場合、端末101は、他のポート番号を端末103に送り、それに対する端末103からの返事を待つ。他の例では、端末103が希望するポート番号を端末101に送り、端末101がそのポートでの接続の可否を判断し、判断結果を端末103に通知する。
【0181】
S1307ではS1306で決定した実際の上位のアプリケーションで使用するポート番号、IPアドレスを接続許可テーブルに設定する。具体的にはすでに端末Aとのネゴシエーション用のエントリはS1303で設定済みであるが、さらに追加でひとつのエントリを追加することとする。この中でF511は現在ネゴシエーションしている端末AのIPアドレス、F512、F513,F514はS1306でネゴシエーションして決定したパラメータをセットする。
【0182】
以後S1308で上位アプリケーション1の通信が開始される。
【0183】
この際に、別の上位アプリケーション2を使用したい場合には、S1306,S1307と同様にS1309にて端末A、端末B間でネゴシエーションポートを使用して再度上位アプリケーション2用のネゴシエーションを行い、新しいポート番号を決定し、S1310にてS1307と同様に上位アプリケーション2用の新しいエントリを接続許可テーブル504に追加する。
【0184】
以後S1311で上位アプリケーション2の通信が開始される。
【0185】
上位アプリケーション1の通信S1308が終了すると、S1312において終了処理コマンド1が送信される。
【0186】
上位アプリケーション2の通信S1311が終了すると、S1313において終了処理コマンド2が送信される。
【0187】
図19は、被接続端末103のモジュール構成である。
【0188】
接続に際して、まず、中継サーバ102Aから指示S1302が来るが、この指示S1302は、1601の通信モジュールを通して、1602の認証サーバ通信モジュールで処理される。このとき指示が偽造されていないかどうかを1603の認証サーバアドレス情報を参照し確認する。1603の認証サーバアドレス情報に存在する認証サーバからの指示であれば、コマンドS1302のフォーマットを解析して接続要求端末101のIPアドレスの特定を行い1604の接続許可テーブルに値をセットする。このとき、ポート番号は本システムに関わる端末間ではあらかじめ決められているネゴシエーション用のポート番号とする。
【0189】
その後、接続要求端末101から接続のネゴシエーション要求S1306があった際には、1605の接続許可制御モジュールが接続許可テーブル1604を参照しサービスネゴシエーションモジュール1607に接続要求を渡すか、通信を拒否するかを制御する。
【0190】
サービスネゴシエーションモジュール1607では、実際に接続要求端末との間で使用するポート番号を含む通信のネゴシエーションを行う。
【0191】
このやり取りで決定したポート番号と接続要求端末101のIPアドレスの値を接続許可テーブル1604にセットする。
【0192】
以降、実際のアプリケーションの通信用の接続要求が接続要求端末101側からあると、1605の接続許可制御モジュールが、接続許可テーブル1604を参照し上位のアプリケーション1606に接続要求を渡すか、通信を拒否するかを制御する。
【0193】
また、通信中でも、新規のアプリケーションの通信のために再度ネゴシエーションモジュール1607を通して新しいポート番号を使用できる。
【図面の簡単な説明】
【0194】
【図1】本発明の概要を示した図である。
【図2】接続要求端末、認証サーバ、被接続端末の間でやり取りされるコマンド、接続手順のフローである。
【図3】被接続端末の構成を示したブロック図である。
【図4】接続要求端末(端末A)のモジュール構成を示した図である。
【図5】認証サーバのモジュール構成を示した図である。
【図6】403のテーブルの構成を示した図である。
【図7】被接続端末のモジュール構成を示した図である。
【図8】被接続端末(端末B)103の接続許可テーブルの構成を示した図である。
【図9】接続要求端末101から、認証サーバ102に送られる認証要求コマンドのフォーマットを示した図である。
【図10】認証サーバ102から被接続端末に対して発行される接続許可指示コマンドのフォーマットを示した図である。
【図11】接続要求を出す接続要求端末の動作のフローチャートである。
【図12】認証サーバ102の動作を示すフローチャートである。
【図13】被接続端末103の動作を示すフローチャートである。
【図14】変形例のフローである。
【図15】変形例の端末のモジュール構成を示した図である。
【図16】第2のフローである。
【図17】第2の端末のモジュール構成を示した図である。
【図18】第2のフローの変形例である。
【図19】第2の端末の変形例のモジュール構成を示した図である。
【符号の説明】
【0195】
101 接続要求端末
102 認証サーバ
103 被接続端末

【特許請求の範囲】
【請求項1】
受信手段と、接続要求装置を認証する認証サーバからポートを特定するポート番号情報を受信すると、接続を許可する条件を変更する変更手段を有することを特徴とする受信装置。
【請求項2】
接続要求装置を認証する認証サーバからポートを特定するポート番号情報を受信すると、接続を許可する条件を変更することを特徴とする受信方法。
【請求項3】
接続要求装置を認証する認証サーバからポートを特定するポート番号情報を受信すると、接続を許可する条件を変更することを特徴とする受信プログラム。
【請求項4】
受信手段と、接続要求装置を認証する認証サーバから第1の信号を受信すると、その第1の信号の受信の以降、第1の信号に含まれるポート番号情報により特定されるポートで、接続要求装置から受信した第2の信号による接続を許可する許可手段を有することを特徴とする受信装置。
【請求項5】
接続要求装置を認証する認証サーバから第1の信号を受信すると、その第1の信号の受信の以降、第1の信号に含まれるポート番号情報により特定されるポートで、接続要求装置から受信した第2の信号による接続を許可することを特徴とする受信方法。
【請求項6】
接続要求装置を認証する認証サーバから第1の信号を受信すると、その第1の信号の受信の以降、第1の信号に含まれるポート番号情報により特定されるポートで、接続要求装置から受信した第2の信号による接続を許可することを特徴とする受信プログラム。
【請求項7】
接続要求装置を認証する認証サーバからポートを特定するポート番号情報が受信されると、受信されたポート番号情報に応じて、接続を制限することを特徴とする受信装置。
【請求項8】
接続要求装置を認証する認証サーバからポートを特定するポート番号情報が受信されると、受信されたポート番号情報に応じて、接続を制限することを特徴とする受信方法。
【請求項9】
接続要求装置を認証する認証サーバからポートを特定するポート番号情報が受信されると、受信されたポート番号情報に応じて、接続を制限することを特徴とする受信プログラム。
【請求項10】
接続要求装置を認証する認証サーバであって、接続要求装置と接続するためのポート番号情報を、受信装置に通知することを特徴とする認証サーバ。
【請求項11】
接続要求装置を認証する認証方法であって、接続要求装置と接続するためのポート番号情報を、受信装置に通知することを特徴とする認証方法。
【請求項12】
接続要求装置を認証する認証プログラムであって、接続要求装置と接続するためのポート番号情報を、受信装置に通知することを特徴とする認証プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2006−5947(P2006−5947A)
【公開日】平成18年1月5日(2006.1.5)
【国際特許分類】
【出願番号】特願2005−197560(P2005−197560)
【出願日】平成17年7月6日(2005.7.6)
【分割の表示】特願2003−139028(P2003−139028)の分割
【原出願日】平成15年5月16日(2003.5.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】