(57)【要約】【課題】  コンピュータネットワークにおけるコネクション型の通信方式において、より安全性の高いネットワークアクセス制御を実現する。【解決手段】  クライアントがサーバにコネクションと確立すると、サーバはクライアントにワンタイム情報を含むチャレンジデータを送信する。クライアントはチャレンジデータ中のワンタイム情報を共有機密情報保持部に保持された固有乱数情報と結合させ、ハッシュ関数を用いて処理し認証情報を形成し、クライアントは認証情報を含んだレスポンス情報をサーバに送信する。サーバはワンタイム情報と共有機密情報保持部に保持された固有乱数情報とを結合させ、ハッシュ関数を用いて処理した期待認証情報を形成し、レスポンス情報に含まれる認証情報と期待認証情報とを対比し、両者が同じであった場合には、サーバはクライアントとのコネクションを承認する。【選択図】  図１
2006180245.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された通信クライアントと通信サーバとの間におけるコネクション型の通信方式に用いられるネットワークアクセス制御システムであって、
前記通信サーバは、
前記通信クライアントとのコネクションを確立する通信管理手段と、
乱数情報を含むチャレンジデータを生成し前記チャレンジデータを前記通信クライアントに送信するとともに、前記通信クライアントから認証情報を一部に含むレスポンスデータを受信し、前記認証情報と前記乱数情報を用いて生成した引数のハッシュ値とが一致する場合に前記コネクションを承認するサーバ側認証手段と、
前記コネクションの確立後前記コネクションの承認までの間、前記通信サーバと前記通信クライアントとの間における前記コネクションの承認のために用いるデータ以外のデータの交信を遮断するパケットフィルタ手段と
を備え、
前記通信クライアントは
前記チャレンジデータの前記乱数情報を抽出し前記乱数情報を含む引数のハッシュ値である前記認証情報を生成し前記認証情報を含むレスポンスデータを生成して前記通信サーバに送信するクライアント側認証手段を備えた
ことを特徴とするネットワークアクセス制御システム。
【請求項２】
前記サーバ側認証手段は、
乱数情報を含む前記チャレンジデータを生成するチャレンジデータ生成手段と、
前記乱数情報を用いて前記引数を生成するデータ結合手段と、
前記引数のハッシュ値としての期待認証情報を生成するハッシュ処理手段と、
前記レスポンスデータに含まれる前記認証情報と前記期待認証情報とを対比する比較手段と、
前記比較手段による対比の結果、前記認証情報と前記期待認証情報とが一致する場合に前記コネクションを承認するコネクション承認手段と
を有し、
前記クライアント側認証手段は、
前記通信サーバから受信した前記チャレンジデータに含まれる前記乱数情報を抽出し前記乱数情報を含む引数を生成するデータ結合手段と、
前記引数をハッシュ関数によって処理しハッシュ値としての認証情報を生成するハッシュ処理手段と、
前記認証情報を含むレスポンスデータを生成して前記レスポンスデータを前記通信サーバに送信するレスポンスデータ生成手段と
を有する
ことを特徴とする請求項１に記載のネットワークアクセス制御システム。
【請求項３】
前記通信サーバおよび前記通信クライアントは同一の乱数情報である固有乱数情報を保持する共有機密情報保持手段をそれぞれ備え、前記通信サーバの前記データ結合手段および前記通信クライアントの前記データ結合手段は前記乱数情報と前記固有乱数情報とを結合して前記引数を生成する
ことを特徴とする請求項２に記載のネットワークアクセス制御システム。
【請求項４】
ネットワークを介して接続された通信クライアントと通信サーバとの間におけるコネクション型の通信方式に用いられるネットワークアクセス制御方法であって、
前記通信サーバが前記通信クライアントとのコネクションを確立するステップと、
前記通信サーバが乱数情報を含むチャレンジデータを生成し前記通信クライアントに送信するステップと、
前記通信クライアントが前記チャレンジデータから前記乱数情報を抽出し前記乱数情報を用いて生成した引数をハッシュ関数で処理した認証情報を生成するステップと、
前記通信クライアントが前記認証情報を含むレスポンスデータを生成し前記通信サーバに送信するステップと、
前記通信サーバが前記乱数情報を用いて生成した引数をハッシュ関数で処理した期待認証情報を生成するステップと、
前記通信サーバが前記レスポンスデータに含まれる前記認証情報と前記期待認証情報とを照合するステップと
前記照合の結果前記認証情報と前記期待認証情報とが一致した場合には前記通信サーバは前記コネクションを承認するステップと含んでいることを特徴とするネットワークアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワークにおけるコネクション型の通信方式に関するものであり、特に、コネクション型の通信方式においてセキュリティを確保するためのアクセス制御技術に関するものである。
【背景技術】
【０００２】
従来、インターネット上でのセキュリティを確保するため、特定ユーザの端末等に対しデータ持ち出しやデータ改ざん等各種損害を与える意図を持つ悪意の第三者（以下単に「悪意の第三者」と称する。）が特定のLAN構内などに侵入することを防止するアクセス制御技術が必要とされている。LAN構内へのアクセスの制限は、通信経路上にあるファイアウォールやルータなどのアクセス制御機器に搭載されたアクセス制御技術を利用することでも実現できる。
【０００３】
しかし、アクセス制御機器によるアクセス制御は、経路制御機能で予め定められたアクセス制御リストの設定に基づいて動作しており、アクセス制御リストに未設定の相手からのアクセス要求は許可されない。
【０００４】
一方、インターネットに接続している異なる家庭内ネットワークにあるパーソナルコンピュータ等の端末（以下単に「端末」と称する。）同士で対戦型のネットワークゲームを行う場合など、アクセス制御リストに設定された相手以外との交信が一時的に必要になるケースも増加している。
【０００５】
従来、アクセス制御を行いながら特定端末からのアクセスを許可するために、端末とインターネットとの間にアクセス制御機器を設置し、通常はインターネットを介した端末間の通信はユーザ認証のための通信以外は禁止する設定とし、端末がデータ転送を行うときは、端末間でユーザ認証を行い、ユーザ認証が成功した場合にアクセス制御機器の特定のポート番号を開放し、データ送信側の端末に対し開放されたポート番号のポートについてコネクションを確立する技術が知られている（たとえば、特許文献１参照）。
【０００６】
また、家庭内ネットワークとインターネットと接続しているルータの設定を動的に変更するプロトコルが標準規格として開示されている。このプロトコルにおいては、家庭内の端末がインターネット上のサーバと接続する前にルータに端末認証をしてもらい、接続先であるサーバのホストアドレスやポート番号などを確認して通信転送許可の設定を行ったのちに、データの交信が開始される（たとえば、非特許文献１参照）。
【特許文献１】特開２０００−３４９８２１号公報  （第９頁、第７図）
【非特許文献１】Matthew Schmitz, Ulhas Warrier, Prakash Iyer著「WANIPConnection」UPnP Forum 出版、２００１年１１月１２日、ｐ．７−２８
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上記特許文献１や上記非特許文献１に記載された方式においては、アクセス制御の設定を変更する際、ユーザ認証が行われてからコネクションが確立されるまでにタイムラグが生じている。したがって、たとえばユーザ認証が行われてからコネクションが確立するまでの間に、サーバが突然ダウンしてしまったり、ネットワークの障害によりサーバへの経路が無くなったりすると、アクセス制御機器のポートが開放されたまま放置されてしまう。ポートが開放されたまま放置されると、悪意の第三者がサーバを偽ってコネクションを確立しようとする攻撃をアクセス制御機器の開放されたままのポートに対して行った場合、悪意の第三者のLAN構内への侵入を許してしまう。
【０００８】
本発明は上記課題に鑑みてなされたものであり、本発明の目的は、コネクション型の通信方式において、任意の相手とのデータ交信を可能としつつ、アクセスコネクション確立時のセキュリティホールの発生を防止し、安全性の高いアクセス制御を実現するネットワークアクセス制御システムおよびネットワークアクセス制御方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題は、ネットワークを介して接続された通信クライアントと通信サーバとの間におけるコネクション型の通信方式に用いられるネットワークアクセス制御システムであって、前記通信サーバは、前記通信クライアントとのコネクションを確立する通信管理手段と、乱数情報を含むチャレンジデータを生成し前記チャレンジデータを前記通信クライアントに送信するとともに、前記通信クライアントから認証情報を一部に含むレスポンスデータを受信し、前記認証情報と前記乱数情報を用いて生成した引数のハッシュ値とが一致する場合に前記コネクションを承認するサーバ側認証手段と、前記コネクションの確立後前記コネクションの承認までの間、前記通信サーバと前記通信クライアントとの間における前記コネクションの承認のために用いるデータ以外のデータの交信を遮断するパケットフィルタ手段とを備え、前記通信クライアントは前記チャレンジデータの前記乱数情報を抽出し前記乱数情報を含む引数のハッシュ値である前記認証情報を生成し前記認証情報を含むレスポンスデータを生成して前記通信サーバに送信するクライアント側認証手段を備えたネットワークアクセス制御システムによって達成される。
【００１０】
上記ネットワークアクセス制御システムや、上記ネットワークアクセスシステムを用いたネットワークアクセス制御方法によれば、通信サーバは、通信管理手段において通信クライアントとのコネクションを確立してからサーバ側認証手段において通信クライアントの認証を行うため、通信サーバのポートが開放されたまま放置されることがなく、悪意の第三者による通信サーバへの不正侵入を防止できる。
【００１１】
上記ネットワークアクセス制御システムや、上記ネットワークアクセスシステムを用いたネットワークアクセス制御方法によれば、通信サーバのサーバ側認証手段は自ら生成した乱数情報をチャレンジデータにより通信クライアントに送信し、通信クライアントのクライアント認証手段はチャレンジデータの乱数情報をハッシュ関数で処理したハッシュ値としての認証情報を形成して認証情報をレスポンスデータにより通信サーバに送信し、通信サーバのサーバ側認証手段が乱数情報をハッシュ関数で処理したハッシュ値とレスポンスデータに含まれる認証情報との一致状況によってコネクションを承認することにより、特定の通信クライアントとのコネクションの確立と承認を、高いセキュリティレベルを確保しながら確実に行うことができる。
【００１２】
なお、本明細書においては、通信サーバと通信クライアントとの間でコネクションが確立してからコネクション通信サーバがコネクションの確立先である通信クライアントが自らがコネクションを希望した真正な相手であるか否かを確認するための手続きを「認証」と称し、コネクションを確立した通信クライアントが真正な相手であることの確認が完了した状態を「承認」と称する。
【発明の効果】
【００１３】
本発明によれば、コネクション型の通信方式において、特定の相手とのデータ交信を可能としつつ、コネクション確立時のセキュリティホールの発生を防止して、安全性が高くコネクション型の通信を実現できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施形態を、図面を参照して説明する。同一番号は同様の部品・要素を示す。なお、以下に示す実施の形態は発明の一例示であり、かかる実施の形態のみに本発明が限定されることを示すものではない。
【００１５】
図１に本発明の一実施の形態に係るネットワークアクセス制御システムのネットワーク構成図を示す。
【００１６】
本発明に係るネットワークアクセス制御システム１００は、通信クライアント１０１と、通信サーバ１０２と、ネットワーク１０３とを備えている。なお、本発明に係るアクセス制御システム１００を構成する通信クライアント１０１および通信サーバ１０２の一方または双方はネットワーク１０３に複数接続されていてもよいが、本明細書においては、説明の簡単のため通信クライアント１０１と通信サーバ１０２とが各１台であるものとする。
【００１７】
通信クライアント１０１は、デスクトップPCやノートPCやPDA(Personal Digital Assistant)などのコンピュータ端末や、携帯電話などの各種無線通信機器であり、ネットワーク１０３を介して他の通信ノードと通信するアプリケーションを有している。
【００１８】
通信サーバ１０２は、デスクトップPCやノートPCなどのコンピュータ端末であり、モデムなどネットワーク１０３を介して他の通信ノードと通信するためのアプリケーションを有している。
【００１９】
通信サーバ１０２はアクセス制御機能を有し、通信クライアント１０１や通信クライアント１０１以外のコンピュータ端末や無線通信端末がネットワーク１０３を介して通信サーバ１０２に通信を求めてきた場合、通信を求めてきた通信クライアント１０１やコンピュータ端末や無線通信端末の認証を行い、認証の結果通信を許可した通信クライアント１０１やコンピュータ端末や無線通信端末とのみ通信を行う。
【００２０】
ネットワーク１０３は、公衆回線網やインターネット網や携帯電話網などで構成される広域通信網であり、アクセス制御システム１００を構成する通信クライアント１０１および通信サーバ１０２以外のコンピュータ端末や無線通信端末などの相互間の通信にも用いられる。
【００２１】
図２に本実施の形態に係るアクセス制御システム１００に用いる通信サーバ１０２のハードウェア構成図を示す。
【００２２】
通信サーバ１０２は、ＣＰＵ２０１と、メモリ２０２と、通信部２０３と、入力部２０４と、出力部２０５と、記憶手段２０９と、バス２１０を備えている。
【００２３】
ＣＰＵ２０１は、各種データの計算・加工を行なう中枢部分であり、入力部２０４に入力されたデータや記憶手段２０９に記憶されたデータを受け取り、演算処理や加工処理を行った上で、出力部２０５や記憶手段２０９に出力する。また、ＣＰＵ２０１は、通信サーバ１０２を構成する各構成要素の制御を行う。
【００２４】
メモリ２０２は半導体メモリを利用した主記憶装置(メインメモリ)であり、ＣＰＵ２０１と直接データの通信を行う。入力部２０４に入力されたデータや記憶手段２０９から読み出されてＣＰＵ２０１に送られるデータや、ＣＰＵ２０１で演算処理や加工処理されて出力部２０５や記憶手段２０９に送られるデータは、一旦メモリ２０２にロードされてからＣＰＵ２０１や出力部２０５や記憶手段２０９に送られる。
【００２５】
通信部２０３は、RS-232CやUSB(Universal Serial Bus)やネットワークアダプタなどコンピュータ通信用の各種ハードウェアインターフェースであり、MODEM(Modulator-Demodulator)などコンピュータ信号とネットワーク１０３の回線信号とを相互変換するための各種機器も含まれる。
【００２６】
入力部２０４は、キーボード、マウス、ペン入力、音声入力、ボタン、ジョグダイヤル、十字キーなどのコンピュータ入力デバイスとコンピュータ入力デバイスによって入力された命令処理やデータ入力をコンピュータ内部で通信される信号に変換する入力変換手段とを有する入力用ユーザインターフェースであり、利用者による命令処理やデータの入力などに用いられる。
【００２７】
出力部２０５は、ディスプレイやスピーカなどの画像・音声出力デバイスとコンピュータ内部で通信される信号を画像データ（文字データ含む）や音声データに変換する出力変換手段を持ち、利用者による命令処理やデータの入力の結果確認などに用いられる。
【００２８】
記憶手段２０９は、データやプログラムを記憶する外部記憶装置であり、ハードディスクやフロッピーディスク、ＭＯ、ＣＤ-Ｒ、磁気テープなどによって形成され、データやプログラムを長期にわたって記録し保存する。記憶手段２０９には、通信管理プログラム２０６Ａと共有機密情報２０８Ａとサーバ側認証プログラム３０１Ａとパケットフィルタプログラム３０２Ａとコネクション管理テーブル３０３Ａとが記録されている。
【００２９】
バス２１０はデータ交信路であり、ＣＰＵ２０１、メモリ２０２、通信部２０３、入力部２０４、出力部２０５、記憶手段２０９をそれぞれ交信可能に接続する。
【００３０】
図３は、本実施の形態に係るアクセス制御システム１００に用いる通信サーバ１０２の機能ブロック図である。通信サーバ１０２は、通信管理部２０６と、共有機密情報保持部２０８と、サーバ側認証部３０１と、パケットフィルタ部３０２と、コネクション管理部３０３とを備えている。図３に示す通信管理部２０６は図２に示す通信管理プログラム２０６Ａを、図３に示すサーバ側認証部３０１は図２に示すサーバ側認証プログラム３０１Ａを、図３に示すパケットフィルタ部３０２は図２に示すパケットフィルタプログラム３０２Ａを、それぞれ図２に示すＣＰＵ２０１で演算処理することにより機能を実現する。図３に示す共有機密情報保持部２０８は図２に示す共有機密情報２０８Ａのデータに基づいて、図３に示すコネクション管理部３０３は図２に示すコネクション管理テーブル３０３Ａのデータに基づいて、それぞれ形成されている。
【００３１】
図３に示す通信管理部２０６は、通信クライアント１０１のアプリケーションとの間でコネクションを確立し、データ通信を行う。通信管理部２０６は、本発明を実施する際の通信クライアント１０１とのデータ通信においては、インターネットの標準プロトコルであるTCPを用い、通信クライアント１０１との間でTCPのデータ通信の際に必要なコネクションを確立し、データ通信を行う。
【００３２】
共有機密情報保持部２０８は、特定の通信クライアント１０１との間でだけ共有して、他の端末へは公開しない機密情報である共有機密情報を記録し保持している。
【００３３】
共有機密情報は、通信サーバ１０２と通信クライアント１０１との間で共有する、固有値としての乱数情報（以下「固有乱数情報」と称する。）と一方向性関数とから成る。固有乱数情報は、アルファベットなどの文字や○×△などの記号やアラビア数字などのランダムな配列を元に形成した、通信サーバ１０２と通信クライアント１０１との通信において不変の値である。一方向性関数は、与えられた原文である引数から固定長の疑似乱数としての値（以下「ハッシュ値」と称する。）を生成するハッシュ関数の一種であって、結果としてのハッシュ値から原文である引数を求めることが計算量的に困難な固有の関数である。
【００３４】
サーバ側認証部３０１は、通信サーバ１０２と通信クライアント１０１とのコネクションが確立したのちに、確立したコネクションを承認するための処理を行う。
【００３５】
サーバ側認証部３０１は、乱数生成部３０１ａと、チャレンジデータ生成部３０１ｂと、データ結合部３０１ｃと、ハッシュ処理部３０１ｄと、比較部３０１ｅと、コネクション承認部３０１ｆと、コネクション確認部３０１ｇとを有している。
【００３６】
乱数生成部３０１ａは、通信クライアント１０１から通信サーバ１０２に対してコネクションの確立要求があると、アルファベットなどの文字や○×△などの記号やアラビア数字などをランダムに配列した一時的乱数情報を生成する。乱数生成部３０１ａが生成する乱数情報は、通信クライアント１０１からのコネクションの確立要求のたびごとに異なる一時的な値である。
【００３７】
チャレンジデータ生成部３０１ｂは、通信サーバ１０２が通信クライアント１０１とのコネクションの認証のために通信クライアント１０１に送信するチャレンジデータを生成する。
【００３８】
図４にチャレンジデータの模式を表す図を示す。チャレンジデータ７００は、送信元アドレス７０１と、受信先アドレス７０２と、ワンタイム情報７０３とを有している。
【００３９】
送信元アドレス７０１は、チャレンジデータ７００の送信元である通信サーバ１０２のＩＰアドレスおよびコネクションの確立によって設定された通信サーバ１０２側のＴＣＰポート番号を結合して形成されている。
【００４０】
受信先アドレス７０２は、チャレンジデータ７００の受信先であるコネクション確立を要求した通信クライアント１０１のＩＰアドレスおよびコネクションの確立によって通信クライアント１０１に設定された通信クライアント１０１側のＴＣＰポート番号を結合して形成されている。
【００４１】
ワンタイム情報７０３は、乱数生成部３０１ａが生成した乱数情報である。乱数生成部３０１ａは通信クライアント１０１からのコネクション確立要求のたびに異なる値の乱数情報を生成するので、ワンタイム情報７０３を形成する乱数情報はチャレンジデータ７００ごとに異なる値となる。
【００４２】
図３に戻り、サーバ側認証部３０１のコネクション確認部３０１ｇは、コネクション管理部３０３と交信しコネクションの確立・承認状況を確認する。
【００４３】
データ結合部３０１ｃは、乱数生成部３０１ａが生成した一時的乱数情報と共有機密情報保持部２０８に保持された固有乱数情報とを結合して引数を生成する。
【００４４】
ハッシュ処理部３０１ｄは、データ結合部３０１ｃが生成した引数を共有機密情報保持部２０８に保持されたハッシュ関数によって処理し、ハッシュ値として、通信クライアント１０１から送信されるレスポンスデータに含まれる認証情報と同一値であることが期待される値である期待認証情報を生成する。ハッシュ処理部３０１ｄによって用いられるハッシュ関数としては、たとえばMD5やSHA1などの一方向性関数が挙げられる。
【００４５】
比較部３０１ｅは、通信クライアント１０１から送信されたレスポンスデータに含まれる認証情報とハッシュ処理部３０１ｄが生成した期待認証情報とを比較し、認証情報と期待認証情報が同一の値であるか否かを確認する。
【００４６】
コネクション承認部３０１ｆは、比較部３０１ｅにおいて認証情報と期待認証情報が同一の値であることが確認された場合にコネクションを承認する。
【００４７】
パケットフィルタ部３０２は、通信クライアント１０１との間で通信パケットを交信し、通信クライアント１０１と確立したコネクション上を通信されるデータのアクセス制御を行う。ここで、通信パケットとは、データ通信する際の通信単位である。通信パケットには、送信元ホストアドレスやポート番号、受信先の送信元ホストアドレスやポート番号、通信種別（コネクション確立要求やコネクション切断要求、データ転送など）の情報と通信データが含まれている。
【００４８】
図３に示すとおり、パケットフィルタ部３０２は記録部３０２ａとポート番号・ＴＣＰヘッダ情報照合部３０２ｂとを有している。
【００４９】
記録部３０２ａはポート番号とＴＣＰヘッダ情報を記録するデータメモリであり、確立したコネクションのポート番号や、コネクションの認証の際に用いられる特定のポート番号や特定のＴＣＰヘッダ情報などを記録する。
【００５０】
ポート番号・ＴＣＰヘッダ情報照合部３０２ｂは、交信されるデータを通過させるか否かを判断するために、記録部３０２ａに記憶された情報と交信されるデータ中に含まれるポート番号やＴＣＰヘッダ情報とを照合する。
【００５１】
コネクション管理部３０３は、通信クライアント１０１との間で確立しているコネクションの状態を管理するデータを記録するデータテーブルを格納している。
【００５２】
図５にコネクション管理部３０３が格納するコネクション管理テーブルの模式を表す図を示す。
【００５３】
図５に示すコネクション管理テーブル３０３ａは、左の列から順に、項番格納部４０１、接続元アドレス格納部４０２、接続先アドレス格納部４０３、承認状況格納部４０４、乱数情報格納部４０５が形成されている。１行ごとのデータは、通信クライアント１０１から通信サーバ１０２に対して行われたコネクション確立要求ごとのデータを示している。
【００５４】
項番格納部４０１には、通し番号がコネクション確立要求ごとのデータに対して付与された通し番号が、コネクション確立要求のあった順に格納される。
【００５５】
接続元アドレス格納部４０２には、通信サーバ１０２のＩＰアドレスおよびコネクションの確立によって設定された通信サーバ１０２側のＴＣＰポート番号を結合して形成したデータを格納する。
【００５６】
接続先アドレス格納部４０３には、コネクション確立を要求した通信クライアント１０１のＩＰアドレスおよびコネクションの確立によって設定された通信クライアント１０１側のＴＣＰポート番号を結合して形成されている。
【００５７】
承認状況格納部４０４には、通信クライアント１０１に対するコネクションの認証の結果コネクションが承認されたか否かの結果データを格納する。「○」が格納されている行のコネクションは承認済みであり、「×」が格納されている行のコネクションは確立後未承認の状態である。
【００５８】
乱数情報格納部４０５には、通信サーバ１０２からコネクション確立要求があった際に乱数生成部３０１ａが生成した乱数情報が格納される。
【００５９】
コネクション管理テーブル３０３ａ内のデータの記入、修正、削除はイベントドリブン方式で行われ、通信サーバ１０２からコネクション確立要求があるたびに行単位でデータが記入され、コネクションが承認されると承認状況格納部４０４のデータが「×」から「○」に修正され、コネクションが終了すると行単位でデータが消去される。
【００６０】
図６に本実施の形態に係る通信クライアント１０１のハードウェア構成図を示す。通信クライアント１０１は、図２に示す通信サーバ１０２のハードウェア構成と同じく、ＣＰＵ２０１と、メモリ２０２と、通信部２０３と、記憶手段２０９と、バス２１０を備えている。
【００６１】
記憶手段２０９には、通信管理プログラム２０６Ａとクライアント側認証プログラム２０７Ａと共有機密情報２０８Ａとが記録されている。
【００６２】
図７は、本実施の形態に係る通信クライアント１０１の機能を示すブロック図である。通信クライアント１０１は、通信管理部２０６と、クライアント側認証部２０７と、共有機密情報保持部２０８とを備えている。図７に示す通信管理部２０６は図６に示す通信管理プログラム２０６Ａを、図７に示すクライアント側認証部２０７は図６に示すクライアント側認証プログラム２０７Ａを、図６に示すＣＰＵ２０１で演算処理することによりそれぞれ機能を実現する。図７に示す共有機密情報保持部２０８は図６に示す共有機密情報２０８Ａのデータに基づいて実現される。
【００６３】
図７において、クライアント側認証部２０７は、コネクション情報記憶部２０７ａと、コネクション情報確認部２０７ｂと、データ結合部２０７ｃと、ハッシュ処理部２０７ｄと、レスポンスデータ生成部２０７ｅとを備えている。
【００６４】
コネクション情報記憶部２０７ａはデータを一時的に保存する記憶手段であり、確立されたコネクションや承認されたコネクションについての情報が記憶されている。
【００６５】
コネクション情報確認部２０７ｂはクライアント側認証部２０７が受信したデータとコネクション情報記憶部２０７ａに記憶されたコネクション情報との一致状況を確認するための構成であり、通信サーバ１０２からチャレンジデータを受信すると、コネクション情報記憶部２０７ａに記憶されたコネクション情報との照合を行う。このチャレンジデータは図４に示すチャレンジデータ７００であり、以下チャレンジデータの構成および符号は図４に示すものを用いる。図７に戻り、コネクション情報確認部２０７ｂにおける照合の結果、受信したチャレンジデータ７００はコネクションが確立しかつ未承認のデータであることが確認された場合、コネクション情報確認部２０７ｂはチャレンジデータ７００をデータ結合部２０７ｃおよびレスポンスデータ生成部２０７ｅに送信する。
【００６６】
データ結合部２０７ｃは、コネクション情報確認部２０７ｂからチャレンジデータ７００を受信すると、チャレンジデータ７００中のワンタイム情報７０３を取り出し、また、共有機密情報保持部２０８に保持された固有乱数情報を取得し、ワンタイム情報（一時的乱数情報）７０３と、通信サーバ１０２との間で共有された固有乱数情報とを結合して引数を生成する。
【００６７】
ハッシュ処理部２０７ｄは、データ結合部２０７ｃが生成した引数を、共有機密情報保持部２０８に保持されたハッシュ関数によって処理してハッシュ値を生成する。ハッシュ処理部２０７ｄによって用いられるハッシュ関数は、図３に示すハッシュ処理部３０１ｄにおいて用いられるハッシュ関数と同じものである。
【００６８】
図７において、レスポンスデータ生成部２０７ｅは、通信クライアント１０１が通信サーバ１０２とのコネクションの認証のために通信サーバ１０２に送信するレスポンスデータを生成する。
【００６９】
図８にレスポンスデータの模式を表す図を示す。レスポンスデータ８００は、送信元アドレス８０１、受信先アドレス８０２、認証情報８０３を有している。
【００７０】
送信元アドレス８０１は、レスポンスデータ８００の送信元であるコネクション確立を要求した通信クライアント１０１のＩＰアドレスおよびコネクションの確立によって設定された通信クライアント１０１側のＴＣＰポート番号を結合して形成されている。
【００７１】
受信先アドレス８０２は、レスポンスデータ８００の受信先である通信サーバ１０２のＩＰアドレスおよびコネクションの確立によって通信サーバ１０２に設定された通信サーバ１０２側のＴＣＰポート番号を結合して形成されている。
【００７２】
認証情報８０３は、ハッシュ処理部２０７ｄが生成したハッシュ値によって形成されている。
【００７３】
図９は本実施の形態に係るネットワークアクセス制御システム１００における、全体の動作を示すフローチャートである。以下図９に基づいて本実施の形態に係るネットワークアクセス制御システム１００の全体の動作を説明する。
【００７４】
通信クライアント１０１の通信管理部２０６は、通信サーバ１０２の通信管理部２０６との間でコネクションを確立する。（Ｓ５０１）
【００７５】
通信クライアント１０１と通信サーバ１０２との間でコネクションが確立すると、通信サーバ１０２のパケットフィルタ部３０２は、ステップＳ５０１で確立したコネクションを流れる通信パケットの転送を一時的に遮断する（Ｓ５０２）。
【００７６】
確立したコネクションにおいて通信パケットの転送が一時的に拒否された状態で、通信サーバ１０２のサーバ側認証部３０１が、通信クライアント１０１のクライアント側認証部２０７と通信を行い、クライアントの承認処理を行う（Ｓ５０３）。具体的には、通信サーバ１０２側で図１０および図１１の各ステップに示す処理が行われ、通信クライアント１０１側で図１２の各ステップに示す処理が行われる。
【００７７】
通信サーバ１０２が通信クライアント１０１を承認すると、通信サーバ１０２のパケットフィルタ部３０２が、ステップＳ５０３で承認されたコネクションに対して通信パケットの転送が許可されて、通信管理部２０６におけるパケット転送の遮断が解除される（Ｓ５０４）。
【００７８】
なお、ステップＳ５０３において通信サーバ１０２が通信クライアント１０１を承認できない場合には、ただちに処理が終了される。
【００７９】
図１０は、本実施の形態に係るネットワークアクセス制御システム１００の通信サーバ１０２における、パケットフィルタ部３０２の動作手順を示すフローチャートである。以下、図１０に基づいてパケットフィルタ部３０２の動作手順を説明する。
【００８０】
パケットフィルタ部３０２は、通信クライアント１０１の通信管理部２０６からの通信パケットを受信する（Ｓ１００１）。
【００８１】
パケットフィルタ部３０２のポート番号・ＴＣＰヘッダ情報照合部３０２ｂは記録部３０２ａに記憶されたデータとの照合を行い、ステップＳ１００１で受信した通信パケットがサーバ側認証部３０１やクライアント側認証部２０７の利用する特別なポート番号を利用しているかを確認する（Ｓ１００２）。記録部３０２ａとの照合の結果、ポート番号・ＴＣＰヘッダ情報照合部３０２ｂが、通信パケットがコネクション認証に用いる特別なポート番号を利用するものであることを確認した場合には、通信パケットは通信サーバ１０２のサーバ側認証部３０１に転送される（Ｓ１００３）。通信パケットが特別なポート番号であった場合、サーバ側認証部３０１は、図１１に示すステップＳ９０１からステップＳ９０９に示す処理を行う（Ｓ１００３）。
【００８２】
図１０に示すステップＳ１００２において、通信パケットがコネクション認証に用いる特別なポート番号を利用しないことが確認された場合には、通信パケットの通信種別の確認を行う（Ｓ１００４）。
【００８３】
ステップＳ１００４において、通信パケットがコネクション確立要求のパケットであることが確認できた場合には、パケットフィルタ部３０２は、通信パケットの送信元ホストアドレスやポート番号、受信先ホストアドレスやポート番号をコネクション管理テーブル３０３に追加登録する（Ｓ１００５）。この場合、図５に示すコネクション管理テーブル３０３ａの承認状況４０４には「×」が示され、乱数情報４０５は空欄のままとなる。
【００８４】
図１０のステップ１００４において、通信パケットがコネクション切断要求のパケットであることが確認できた場合には、パケットフィルタ部３０２は、図５に示すコネクション管理テーブル３０３ａのうち、通信パケットの送信元ホストアドレスやポート番号、受信先ホストアドレスやポート番号と接続元アドレス４０２と接続先アドレス４０３が一致するコネクション情報を削除する（Ｓ１００６）。
【００８５】
図１０のステップＳ１００４において、通信パケットがコネクション確認要求のパケットでもコネクション切断要求のパケットでもないことが確認できた場合には、パケットフィルタ部３０２は、図５に示すコネクション管理テーブル３０３ａにおいて、通信パケットの送信元ホストアドレスやポート番号、受信先ホストアドレスやポート番号とコネクション管理テーブル３０３の接続元アドレス４０２と接続先アドレス４０３が一致するコネクション情報があるか否かを確認する（Ｓ１００７）。ステップＳ１００７における確認の結果、一致するコネクション情報がない場合には通信パケットは破棄される（Ｓ１００８）。
【００８６】
ステップＳ１００５において通信パケットがコネクション確立要求のパケットであることが確認できた場合、およびステップＳ１００６において通信パケットがコネクション切断要求のパケットであることが確認できた場合、およびステップＳ１００７において通信パケットの送信元ホストアドレスやポート番号、受信先ホストアドレスやポート番号とコネクション管理テーブル３０３の接続元アドレス４０２と接続先アドレス４０３が一致しているコネクション情報がある場合には、通信パケットは通信サーバ１０２のサーバ側認証部３０１に処理のために転送される（Ｓ１００３）。
【００８７】
図１１は、本実施の形態に係るネットワークアクセス制御システム１００の通信サーバ１０２における、サーバ側認証部３０１の動作手順を示すフローチャートである。以下、図９に基づいてサーバ側認証部３０１の動作手順を説明する。
【００８８】
サーバ側認証部３０１は、通信パケットの受信を受けて、コネクション管理テーブル３０３ａに承認されていない（つまり図５のコネクション管理テーブル３０３ａにおいて承認状況４０４が「×」になっている）コネクション情報があるかを確認する（Ｓ９０１）。承認されていないコネクション情報が存在しなければ、一定期間の処理待ちが行われた（Ｓ９１０）のち、再びステップＳ９０１に戻り承認されていないコネクション情報を確認する。
【００８９】
ステップＳ９０１において、承認されていないコネクション情報の存在が確認された場合クライアント側認証部２０７の特別なポート番号（コネクションの認証のみに用いられるポートのポート番号）に対してコネクションの確立が行われる（Ｓ９０２）。
【００９０】
サーバ側認証部３０１の乱数生成部３０１ａは乱数情報を生成し、生成された乱数情報をもとにチャレンジデータ生成部３０１ｂはチャレンジデータ７００を作成する（Ｓ９０３）。乱数生成部３０１ａが生成した乱数情報は、コネクション管理テーブル３０３ａの対応するコネクション情報における乱数情報４０５に登録される。
【００９１】
チャレンジデータ生成部３０１ｂが作成したチャレンジデータ７００は、ステップＳ９０２で確立したコネクションを利用して、クライアント側認証部２０７に送信される（Ｓ９０４）。
【００９２】
通信クライアント１０１においては、チャレンジデータ７００を受信し、レスポンスデータ８００を作成し、通信サーバにレスポンスデータ８００を送信する。通信サーバ１０２はステップＳ９０２で確立したコネクションを利用して通信クライアント１０１からデータを受信すると（Ｓ９０５）、通信サーバ１０２のコネクション確認部３０１ｇはコネクション管理部３０３のコネクション管理テーブル３０３ａとレスポンスデータ８００との照合を行って、受信したデータがエラー通知でないか（すなわちレスポンスデータか否か）を確認する（Ｓ９０６）。受信したデータがエラーであればステップ９０１に戻り、処理を繰り返す。
【００９３】
ステップＳ９０６における確認の結果、受信したデータがレスポンスデータであってエラー通知がないことが確認された場合、サーバ側認証部３０１のデータ結合部３０１ｃはコネクション管理テーブル３０３ａよりレスポンスデータ８００に対応するコネクション情報の乱数情報４０５を取得するとともに共有機密情報保持部２０８から固有乱数情報を取得し、乱数情報４０５と固有乱数情報とを結合して引数を生成する。ハッシュ処理部３０１ｄは引数を共有機密情報保持部２０８から取得したハッシュ関数によって処理し期待認証情報を形成する（Ｓ９０７）。比較部３０１ｅはハッシュ処理部３０１ｄから取得した期待認証情報とレスポンスデータ８００に含まれた認証情報とをを比較する。（Ｓ９０８）両者が同じであれば、コネクション承認部３０１ｆにおいてコネクションを承認するとともに、コネクション管理テーブル３０３ａにおけるコネクション情報の承認状況４０４を「○」にする（Ｓ９０９）。ステップＳ９０８において期待認証情報と認証情報とが一致しなかった場合にはステップＳ９０１に戻り、処理が最初から繰り返される。
【００９４】
図１２は、本実施の形態に係るネットワークアクセス制御システム１００の通信クライアント１０１における、クライアント側認証部２０７の動作手順を示すフローチャートである。以下、図６に基づいてクライアント側認証部２０７の動作手順を説明する。
【００９５】
通信サーバ１０２のサーバ側認証部３０１において、特別なポート番号に対するコネクションが確立すると（Ｓ６０１）、通信クライアント１０１は、通信サーバ１０２のサーバ側認証部３０１からチャレンジデータ７００を受信する（Ｓ６０２）。
【００９６】
チャレンジデータ８００を受信すると、クライアント側認証部２０７のコネクション情報確認部２０７ｂは、コネクション情報記憶部２０７ａに記憶されたコネクション情報とチャレンジデータ８００の送信元アドレス７０１と受信先アドレス７０２で特定されるコネクションが一致するか否かを確認する。（Ｓ６０３）
【００９７】
ステップＳ６０３でコネクションの確立が確認された場合、データ結合部２０７ｃがチャレンジデータ７００に含まれるワンタイム情報７０３と共有機密情報保持部２０８から取得した固有乱数情報とを結合して引数を生成し、ハッシュ処理部２０７ｄにおいて、引数を共有機密情報保持部２０８から取得したハッシュ関数で処理してハッシュ値を形成する。レスポンスデータ形成部２０７ｅは、チャレンジデータ７００の送信元アドレス７０１と受信先アドレス７０２との格納位置を入れ替えて、チャレンジデータ７００の受信先アドレス７０２を送信元アドレス８０１、チャレンジデータ７００の送信元アドレス７０１を受信先アドレス８０２とし、ハッシュ処理部２０７ｃが生成したハッシュ値を認証情報８０３としたレスポンスデータ８００を作成する（Ｓ６０４）。
【００９８】
クライアント側認証部２０７は、ステップＳ６０４で作成されたレスポンスデータをサーバ側認証部３０１に送信し（Ｓ６０５）、処理を終了する。
【００９９】
ステップＳ６０３でコネクションの確立が確認できなかった場合には、サーバ側認証部３０１にエラーを通知し（Ｓ６０６）、処理を終了する。
【０１００】
以上、本実施の形態に係るネットワークアクセス制御システム１００においては、通信サーバ１０２は、通信管理部２０６において通信クライアント１０１とのコネクションを確立してからサーバ側認証部３０１において通信クライアント１０１の認証を行うため、通信サーバ１０１のポートが開放されたまま放置されることがなく、悪意の第三者による通信サーバ１０２への不正侵入を防止できる。
【０１０１】
本実施の形態に係るネットワークアクセス制御システム１００においては、通信サーバ１０２のサーバ側認証部３０１は自ら生成した乱数情報をチャレンジデータ７００により通信クライアント１０１に送信し、通信クライアント１０１のクライアント認証手段２０７はチャレンジデータ７００の乱数情報をハッシュ関数で処理したハッシュ値としての認証情報を形成して認証情報をレスポンスデータ８００により通信サーバ１０２に送信し、通信サーバ１０２のサーバ側認証部３０１が乱数情報をハッシュ関数で処理したハッシュ値としての期待認証情報とレスポンスデータ８００に含まれる認証情報との一致状況によってコネクションを承認することにより、特定の通信クライアント１０１とのコネクションの確立と承認を、高いセキュリティレベルを確保しながら確実に行うことができる。
【０１０２】
本実施の形態に係るネットワークアクセス制御システム１００においては、通信サーバ１０２および通信クライアント１０１が生成する引数は、乱数情報に共有機密情報保持部２０８が保持する共通の固有乱数情報を付加して形成することにより、コネクションの承認に用いられるデータの機密性が高くなり、コネクションの承認におけるセキュリティレベルが一層高くなる。
【図面の簡単な説明】
【０１０３】
【図１】本発明の一実施の形態に係るネットワークアクセス制御システムのネットワーク構成図である。
【図２】同上ネットワークアクセス制御システムに用いる通信サーバのハードウェア構成図である。
【図３】同上ネットワークアクセス制御システムに用いる通信サーバの機能ブロック図である。
【図４】同上ネットワークアクセス制御システムにおけるチャレンジデータの模式を表す図である。
【図５】同上ネットワークアクセス制御システムにおけるコネクション管理テーブルの模式を表す図である。
【図６】同上ネットワークアクセス制御システムに用いる通信クライアントのハードウェア構成図である。
【図７】同上ネットワークアクセス制御システムに用いる通信クライアントの機能ブロック図である。
【図８】同上ネットワークアクセス制御システムにおけるレスポンスデータの模式を表す図である。
【図９】同上ネットワークアクセス制御システムにおける、全体の動作を示すフローチャートである。
【図１０】同上ネットワークアクセス制御システムの通信サーバにおける、パケットフィルタ部の動作手順を示すフローチャートである。
【図１１】同上ネットワークアクセス制御システムの通信サーバにおける、サーバ側認証部の動作手順を示すフローチャートである。
【図１２】同上ネットワークアクセス制御システムの通信クライアントにおける、クライアント側認証部の動作手順を示すフローチャートである。
【符号の説明】
【０１０４】
１００・・・ネットワークアクセス制御システム、１０１・・・通信クライアント、１０２・・・通信サーバ、１０３・・・ネットワーク、３０１・・・サーバ側認証部、３０２・・・パケットフィルタ部、３０１ｂ・・・チャレンジデータ生成部、３０１ｃ・・・データ結合部、３０１ｄ・・・ハッシュ処理部、３０１ｅ・・・比較部、３０１ｆ・・・コネクション承認部、２０７ｃ・・・データ結合部、２０７ｄ・・・ハッシュ処理部、２０７ｅ・・・レスポンスデータ生成部、７００・・・チャレンジデータ、７０３・・・ワンタイム情報（乱数情報）、８００・・・レスポンスデータ、８０３・・・認証情報
【図１】
2006180245.tif 000003
【図２】
2006180245.tif 000004
【図３】
2006180245.tif 000005
【図４】
2006180245.tif 000006
【図５】
2006180245.tif 000007
【図６】
2006180245.tif 000008
【図７】
2006180245.tif 000009
【図８】
2006180245.tif 000010
【図９】
2006180245.tif 000011
【図１０】
2006180245.tif 000012
【図１１】
2006180245.tif 000013
【図１２】
2006180245.tif 000014