(57)【要約】【課題】  従来の通信機器間の通信では、使用可能ポート番号のポートに対するリクエストであれば、不審者からのリクエストであっても受けていた。【解決手段】  本発明の通信ドライバ装置は、送信側と受信側とで同じ内容の許可不用ポート情報と許可要ポート情報とをポート情報記憶部３，７に記憶する。送信側の通信ドライバ４の確認部４２は、ポート情報記憶部３が記憶する許可不要ポート情報のポートを使用して、受信側に許可要ポートの使用許可を確認する。受信側の通信ドライバ８は、送信側より許可の確認がされている許可要ポート情報が、ポート情報記憶部７に記憶されていれば使用を許可する。応答部８３は、許可したポートを開く。また、応答判定部４３は、許可されたポートを開く。通信部４４と通信部８４とは、使用を許可されて開かれた許可要ポートを使用して情報の通信を行い、通信機器間のセキュリティを向上する。【選択図】        図１
2006166062.tif 000002
【特許請求の範囲】
【請求項１】
使用許可の確認をすることなく使用できる少なくとも１つの許可不要ポートと、使用許可が得られてから使用できる少なくとも１つの許可要ポートとを備えた通信機器との通信を制御する通信ドライバ装置であって、
上記許可不要ポートを示す許可不要ポート情報と、上記許可要ポートを示す許可要ポート情報とを記憶するポート情報記憶部を備え、
上記ポート情報記憶部が記憶する許可不要ポート情報が示す許可不要ポートを使用して、上記通信機器に対して上記ポート情報記憶部が記憶する許可要ポートの使用許可を確認し、
上記通信機器から上記許可要ポートの使用許可を得られた場合に、上記許可要ポートを使用して上記通信機器との通信を制御する
ことを特徴とする通信ドライバ装置。
【請求項２】
上記通信ドライバ装置は、
上記ポート情報記憶部が記憶する許可要ポート情報を有する使用確認情報を生成して、生成した使用確認情報を上記ポート情報記憶部が記憶する許可不要ポート情報が示す許可不要ポートを使用して上記通信機器に対して送信して、上記許可要ポートが使用可能か否かを確認する確認部と、
上記確認部が送信した使用確認情報に対する応答情報を、上記通信機器から受信できたか否かを判定する応答判定部と、
上記応答判定部が上記応答情報を受信したことを判定すると、上記許可要ポートを使用して上記通信機器と情報通信を行う通信部と
を備えたことを特徴とする請求項１記載の通信ドライバ装置。
【請求項３】
上記通信部は、上記通信機器との通信を終了することを通知する終了情報を生成して、生成した終了情報を上記許可要ポート情報が示すポートを使用して、上記通信機器へ送信することを特徴とする請求項２記載の通信ドライバ装置。
【請求項４】
上記通信ドライバ装置は、自己を識別する識別情報を記憶する識別情報記憶部を備え、
上記確認部は、上記識別情報記憶部が記憶する識別情報を上記使用確認情報に含めることを特徴とする請求項２記載の通信ドライバ装置。
【請求項５】
上記確認部は、通信に使用したいポートを示すポート情報を入力して、上記ポート情報記憶部を検索して、入力したポート情報と適合する許可要ポート情報が検索できた場合に、上記ポート情報を上記許可要ポート情報として有する上記使用確認情報を生成し、
上記入力したポート情報と適合する許可要ポート情報が検索できなかった場合に、上記使用確認情報を生成しないことを特徴とする請求項２記載の通信ドライバ装置。
【請求項６】
使用許可を与えることなく使用できる少なくとも１つの許可不要ポートと、許可を与えてから使用できる少なくとも１つの許可要ポートとを備えた通信機器と通信する通信ドライバ装置であって、
上記許可不要ポートを示す許可不要ポート情報と、上記許可要ポートを示す許可要ポート情報とを記憶するポート情報記憶部を備え、
上記許可不要ポートを使用して、上記通信機器から通信に使用したいポートの使用許可を確認する使用確認情報を受信して、受信した使用確認情報が示す使用したいポートに適合するポートを上記ポート情報記憶部が記憶する許可要ポート情報から検索して、適合する許可要ポート情報を検索できた場合に、上記使用確認情報に対する応答情報を、上記ポート情報記憶部が記憶する許可不要ポート情報が示す許可不要ポートを使用して上記通信機器に送信する
ことを特徴とする通信ドライバ装置。
【請求項７】
上記通信ドライバ装置は、
上記通信機器から通信に使用したいポートを示すポート情報を有する使用確認情報を、上記許可不要ポートを使用して受信する受信部と、
上記ポート情報記憶部を検索して、上記受信部が受信した使用確認情報のポート情報と適合する許可要ポート情報が検索できた場合に、上記使用確認情報のポート情報が示すポートの使用を許可することを通知する応答情報を生成して、生成した応答情報を上記ポート情報記憶部が記憶する許可不要ポート情報が示す許可不要ポートを使用して上記通信機器に送信し、上記使用確認情報のポート情報と適合する許可要ポート情報が検索できなかった場合に、上記応答情報を生成しない応答部と
を備えたことを特徴とする請求項６記載の通信ドライバ装置。
【請求項８】
上記使用確認情報は、送信元の上記通信機器を識別する識別情報を有し、
上記受信部は、上記識別情報を有する使用確認情報を受信し、
上記通信ドライバ装置は、上記応答部が使用を許可したポート情報と上記識別情報とを対応させて記憶するポート対応情報記憶部を備え、
上記応答部は、使用を許可したポート情報に対して上記識別情報を対応させて上記ポート対応情報記憶部に記憶する
ことを特徴とする請求項７記載の通信ドライバ装置。
【請求項９】
上記通信ドライバ装置は、上記応答部が使用を許可したポートを使用して、上記通信機器と情報を通信する通信部を備え、
上記通信機器と通信する情報は、上記識別情報を有し、
上記通信部は、上記通信機器と通信する情報の有する識別情報と通信に使用されたポートとが、上記ポート対応情報記憶部が記憶するポート情報と識別情報とに一致しない場合、上記情報を破棄することを特徴とする請求項８記載の通信ドライバ装置。
【請求項１０】
上記通信ドライバ装置は、上記応答部が使用を許可したポートを使用して、上記通信機器と情報を通信する通信部を備え、
上記通信部は、上記通信機器から、上記識別情報を有する通信を終了することを通知する終了情報を受信して、受信した終了情報の識別情報と一致する上記ポート対応情報記憶部が記憶する識別情報と識別情報に対応するポート情報とを、上記ポート対応情報記憶部から削除することを特徴とする請求項８記載の通信ドライバ装置。
【請求項１１】
上記許可要ポートと上記許可不要ポートとは、エフェメラルポートであることを特徴とする請求項１，２，６，７のいずれかに記載の通信ドライバ装置。
【請求項１２】
ネットワークを介して通信する通信システムにおいて、
通信を制御する送信側通信ドライバ装置と、受信側に使用の許可を確認することなく使用できる少なくとも１つの許可不要ポートと、受信側に使用を許可された場合に使用できる少なくとも１つの許可要ポートとを備えた送信側通信機器と、
通信を制御する受信側通信ドライバ装置と、送信側に対して使用許可を与えることなく使用できる少なくとも１つの許可不要ポートと、送信側に対して使用を許可した場合に使用できる少なくとも１つの許可要ポートとを備えた受信側通信機器とを備え、
上記送信側通信機器の備える許可不要ポートと、上記受信側通信機器の備える許可不要ポートとは、共通のポートを示し、
上記送信側通信ドライバ装置は、
上記許可不要ポートを示す許可不要ポート情報と、上記許可要ポートを示す許可要ポート情報とを記憶する送信側ポート情報記憶部と、
上記送信側ポート情報記憶部が記憶する許可要ポート情報を有する使用確認情報を生成して、生成した使用確認情報を上記送信側ポート情報記憶部が記憶する許可不要ポート情報が示す許可不要ポートを使用して上記受信側通信機器に対して送信して、上記許可要ポートが使用可能か否かを確認する確認部と、
上記確認部が送信した使用確認情報に対する応答情報を、上記受信側通信機器から上記許可不要ポートを使用して受信できたか否かを判定する応答判定部と、
上記応答判定部が上記応答情報を受信したことを判定すると、上記許可要ポートを使用して上記受信側通信機器と情報通信を行う送信側通信部と
を備え、
上記受信側通信ドライバ装置は、
上記許可不要ポートを示す許可不要ポート情報と、上記許可要ポートを示す許可要ポート情報とを記憶する受信側ポート情報記憶部と、
上記送信側通信機器から通信に使用したいポートを示すポート情報を有する使用確認情報を、上記許可不要ポートを使用して受信する受信部と、
上記受信側ポート情報記憶部を検索して、上記受信部が受信した使用確認情報のポート情報と適合する許可要ポート情報が検索できた場合に、上記使用確認情報のポート情報が示すポートの使用を許可することを通知する応答情報を生成して上記送信側通信機器に送信し、上記使用確認情報のポート情報と適合する許可要ポート情報が検索できなかった場合に、上記応答情報を生成しない応答部と
を備えたことを特徴とする通信システム。
【請求項１３】
上記送信側通信機器は、自己を識別する識別情報を記憶する識別情報記憶部を備え、
上記確認部は、上記識別情報記憶部が記憶する識別情報を上記使用確認情報に含めて上記受信側通信機器に送信し、
上記受信部は、上記識別情報を含む使用確認情報を受信し、
上記受信側通信ドライバ装置は、上記応答部が使用を許可したポート情報と上記識別情報とを対応させて記憶するポート対応情報記憶部を備え、
上記応答部は、上記許可したポート情報に対して上記識別情報を対応させて上記ポート対応情報記憶部に記憶する
ことを特徴とする請求項１２記載の通信システム。
【請求項１４】
上記送信側通信部は、上記受信側通信機器と通信する情報に上記識別情報を含んで送信し、
上記受信側通信ドライバ装置は、上記応答部が使用を許可したポートを使用して、上記送信側通信機器と情報を通信する受信側通信部を備え、
上記受信側通信部は、上記送信側通信機器と通信する情報に含まれた識別情報と通信に使用されたポートとが、上記ポート対応情報記憶部が記憶するポート情報と識別情報とに一致しない場合、上記情報を破棄することを特徴とする請求項１３記載の通信システム。
【請求項１５】
上記送信側通信部は、上記受信側通信機器との通信を終了することを通知する終了情報を生成して、生成した終了情報に上記識別情報を含めて上記許可要ポート情報が示すポートを使用して、上記受信側通信機器へ送信し、
上記受信側通信ドライバ装置は、上記応答部が使用を許可したポートを使用して、上記送信側通信機器と情報を通信する受信側通信部を備え、
上記受信側通信部は、上記送信側通信機器から、上記識別情報を有する通信を終了することを通知する終了情報を受信して、受信した終了情報の識別情報と一致する上記ポート対応情報記憶部が記憶する識別情報と識別情報に対応するポート情報とを、上記ポート対応情報記憶部から削除することを特徴とする請求項１３記載の通信システム。
【請求項１６】
使用許可を確認することなく使用できる少なくとも１つの許可不要ポートと、使用を許可された場合に使用できる少なくとも１つの許可要ポートとを備えた通信機器との通信を制御する通信ドライバ装置の通信制御方法であって、
上記許可不要ポートを示す許可不要ポート情報と、上記許可要ポートを示す許可要ポート情報とを記憶部に記憶するポート情報記憶工程と、
上記ポート情報記憶工程によって記憶された許可要ポート情報を有する使用確認情報を生成して、生成した使用確認情報を上記ポート情報記憶工程によって記憶された許可不要ポート情報が示す許可不要ポートを使用して上記通信機器に対して送信して、上記許可要ポートが使用可能か否かを確認する確認工程と、
上記確認工程によって送信された使用確認情報に対する応答情報を、上記通信機器から受信できたか否かを判定する応答判定工程と、
上記応答判定工程が上記応答情報を受信したことを判定すると、上記許可要ポートを使用して上記通信機器と情報通信を行う送信側通信工程と
を有することを特徴とする通信制御方法。
【請求項１７】
使用許可を与えることなく使用できる少なくとも１つの許可不要ポートと、使用許可を与えてから使用できる少なくとも１つの許可要ポートとを備えた通信機器と通信する通信ドライバ装置の通信制御方法であって、
上記通信制御方法は、
上記許可不要ポートを示す許可不要ポート情報と、上記許可要ポートを示す許可要ポート情報とを記憶部に記憶するポート情報記憶工程と、
上記通信機器から通信に使用したいポートを示すポート情報を有する使用確認情報を、上記ポート情報記憶工程によって記憶された上記許可不要ポート情報が示す許可不要ポートを使用して受信する受信工程と、
上記ポート情報記憶工程によって記憶された記憶部を検索して、上記受信工程によって受信された使用確認情報のポート情報が示すポートと適合するポートを示す許可要ポート情報が検索できた場合に、上記使用確認情報のポート情報が示すポートの使用を許可することを通知する応答情報を生成して、生成した応答情報を上記ポート情報記憶工程によって記憶された上記許可不要ポート情報が示す許可不要ポートを使用して上記通信機器に送信し、適合するポートを示す許可要ポート情報が検索できなかった場合に、上記応答情報を生成しない応答工程と
を有することを特徴とする通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信元と通信先との間で通信のセキュリティ向上を目的として互いに通信可能であることを確認してから通信を開始する通信ドライバ装置、通信システム、通信制御方法に関する。
【背景技術】
【０００２】
図２１に従来の一般的な標準構成である通信機器（コンピュータなど）のネットワーク通信の構成図を示す。
図２１において、送信側コンピュータなどである送信側通信機器１０１は、オペレーティングシステム（以下ＯＳとする）を搭載し、一般的にクライアント機に相当する。受信側コンピュータなどである受信側通信機器１０４は、ＯＳを搭載し、一般的にサーバ機に相当する。通信機器１０１及び通信機器１０４とはそれぞれ、ＯＳ標準定義ファイル１０２、ＯＳ標準定義ファイル１０５を備える。また、通信機器１０１及び通信機器１０４とはそれぞれ、ネットワーク通信を行うＬＡＮドライバ１０３、ＬＡＮドライバ１０６をそれぞれ備える。また、送信側通信機器１０１と受信側通信機器１０４とは、ネットワーク５０５により接続され、互いに通信可能なシステム環境にある。
【０００３】
次に動作を説明する。送信側通信機器１０１が備えるＯＳと受信側通信機器１０４が備えるＯＳとの間でネットワーク通信を行う場合、まず、送信側通信機器１０１が備えるＯＳは、ＯＳ標準定義ファイル１０２に使用してはいけないポート番号が定義されているか否かをチェックする。定義されていなければ、使用しようとしているポート番号を使用可能なポート番号と認識して、ＯＳがそのポート番号に対応するポートを開ける。ここで「ポートを開ける」とは、当該ポートを見張って、ポートへのリクエストが発生したか否かを監視する動作を指すものとする。
【０００４】
送信側通信機器１０１が備えるＯＳは、ＬＡＮドライバ１０３を経由して通信相手である受信側通信機器１０４のＯＳへ通信を試みる。受信側通信機器１０４では、ＬＡＮドライバ１０６がＬＡＮドライバ１０３から送られたポート番号を受け取る。この時、受け取ったポート番号がＯＳ標準定義ファイル１０５に使用禁止定義されていれば、そのポートが開いていないので、ＬＡＮドライバ１０６がＬＡＮドライバ１０３との通信を拒否する。受け取ったポート番号がＯＳ標準定義ファイル１０５に使用禁止定義されていなければ、そのポートはすでに開いているので、ＬＡＮドライバ１０６とＬＡＮドライバ１０３とので通信が可能になる。
【０００５】
このように、ＯＳ標準定義ファイル１０２や１０５に使用してはいけないポート番号を定義することで、外部から不審な通信を制御できる仕組みを提供している。
【０００６】
また、従来のサーバ／クライアントシステムについての発明の「特再表ＷＯ０１／０２５９３４」には、サーバに、Ｉ／Ｏポートを制御するためのデバイスドライバと、該デバイスドライバに対して前記Ｉ／Ｏポートと同一の機能を有するインタフェースを提供し、かつ、前記デバイスドライバからの入出力制御信号をクライアント側に送信し、該クライアント側からのイベントを受信して前記デバイスドライバに通知するための仮想Ｉ／Ｏポートを設けたことが記載されている。また、クライアントに、通信回線を介して前記仮想Ｉ／Ｏポートに接続されるデバイスドライバを設けたことが記載されている。このサーバ／クライアントシステムは、該デバイスドライバによって前記Ｉ／Ｏポートを制御することを特徴とする。
【特許文献１】特再表ＷＯ０１／０２５９３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
次に上記した従来のネットワーク通信の構成における問題点を説明する。ポート番号は、一般的に１〜６５５３５までの値が使用可能であり、実際に使用しているポート番号は、そのうちの極わずかである。この為、ＯＳ標準定義ファイルに使用してはいけないポート番号を定義する事は、非常に手間がかかる。この結果、定義抜けが発生する可能性があり、定義抜けが原因で使用してはいけないポートを使用した通信が可能になってしまう。また、外部から不審な通信が、たまたま使用可能ポート番号であった場合には、通信が出来てしまう可能性がある。この為、外部の不審者に対する通信制御が容易に防げない問題があった。
【０００８】
この発明は、上記した問題点を解決して、以下のことを目的とする。
・送信側と受信側の通信機器とで、互いに使用可能なポートを管理し、送信側から受信側に対して使用可能なポートを使用して、使用したいポートが使用可能であるか否かを確認する。
・使用したいポートが使用可能であることを確認できた場合に、そのポートを開き、使用可能であることを確認できなかった場合には、そのポートは閉めたままにする。こうすることによって、お互いの通信のセキュリティを向上する。
・使用したいポートは、使用可能であることを確認できてから開き、第３者から不正なアクセスを抑止する。
・使用したいポートは、使用可能であることを確認できてから開き、第３者への情報の流出を防ぐ。
【課題を解決するための手段】
【０００９】
この発明に係る通信ドライバ装置は、使用許可の確認をすることなく使用できる少なくとも１つの許可不要ポートと、使用許可が得られてから使用できる少なくとも１つの許可要ポートとを備えた通信機器との通信を制御する通信ドライバ装置であって、上記許可不要ポートを示す許可不要ポート情報と、上記許可要ポートを示す許可要ポート情報とを記憶するポート情報記憶部を備え、上記ポート情報記憶部が記憶する許可不要ポート情報が示す許可不要ポートを使用して、上記通信機器に対して上記ポート情報記憶部が記憶する許可要ポートの使用許可を確認し、上記通信機器から上記許可要ポートの使用許可を得られた場合に、上記許可要ポートを使用して上記通信機器との通信を制御することを特徴とする。
【００１０】
また、上記通信ドライバ装置は、
上記ポート情報記憶部が記憶する許可要ポート情報を有する使用確認情報を生成して、生成した使用確認情報を上記ポート情報記憶部が記憶する許可不要ポート情報が示す許可不要ポートを使用して上記通信機器に対して送信して、上記許可要ポートが使用可能か否かを確認する確認部と、
上記確認部が送信した使用確認情報に対する応答情報を、上記通信機器から受信できたか否かを判定する応答判定部と、
上記応答判定部が上記応答情報を受信したことを判定すると、上記許可要ポートを使用して上記通信機器と情報通信を行う通信部と
を備えたことを特徴とする。
【００１１】
また、上記通信部は、上記通信機器との通信を終了することを通知する終了情報を生成して、生成した終了情報を上記許可要ポート情報が示すポートを使用して、上記通信機器へ送信することを特徴とする。
【００１２】
また、上記通信ドライバ装置は、自己を識別する識別情報を記憶する識別情報記憶部を備え、
上記確認部は、上記識別情報記憶部が記憶する識別情報を上記使用確認情報に含めることを特徴とする。
【００１３】
また、上記確認部は、通信に使用したいポートを示すポート情報を入力して、上記ポート情報記憶部を検索して、入力したポート情報と適合する許可要ポート情報が検索できた場合に、上記ポート情報を上記許可要ポート情報として有する上記使用確認情報を生成し、
上記入力したポート情報と適合する許可要ポート情報が検索できなかった場合に、上記使用確認情報を生成しないことを特徴とする。
【００１４】
また、この発明に係る通信ドライバ装置は、使用許可を与えることなく使用できる少なくとも１つの許可不要ポートと、許可を与えてから使用できる少なくとも１つの許可要ポートとを備えた通信機器と通信する通信ドライバ装置であって、
上記許可不要ポートを示す許可不要ポート情報と、上記許可要ポートを示す許可要ポート情報とを記憶するポート情報記憶部を備え、
上記許可不要ポートを使用して、上記通信機器から通信に使用したいポートの使用許可を確認する使用確認情報を受信して、受信した使用確認情報が示す使用したいポートに適合するポートを上記ポート情報記憶部が記憶する許可要ポート情報から検索して、適合する許可要ポート情報を検索できた場合に、上記使用確認情報に対する応答情報を、上記ポート情報記憶部が記憶する許可不要ポート情報が示す許可不要ポートを使用して上記通信機器に送信する
ことを特徴とする。
【００１５】
また、上記通信ドライバ装置は、
上記通信機器から通信に使用したいポートを示すポート情報を有する使用確認情報を、上記許可不要ポートを使用して受信する受信部と、
上記ポート情報記憶部を検索して、上記受信部が受信した使用確認情報のポート情報と適合する許可要ポート情報が検索できた場合に、上記使用確認情報のポート情報が示すポートの使用を許可することを通知する応答情報を生成して、生成した応答情報を上記ポート情報記憶部が記憶する許可不要ポート情報が示す許可不要ポートを使用して上記通信機器に送信し、上記使用確認情報のポート情報と適合する許可要ポート情報が検索できなかった場合に、上記応答情報を生成しない応答部と
を備えたことを特徴とする。
【００１６】
また、上記使用確認情報は、送信元の上記通信機器を識別する識別情報を有し、
上記受信部は、上記識別情報を有する使用確認情報を受信し、
上記通信ドライバ装置は、上記応答部が使用を許可したポート情報と上記識別情報とを対応させて記憶するポート対応情報記憶部を備え、
上記応答部は、使用を許可したポート情報に対して上記識別情報を対応させて上記ポート対応情報記憶部に記憶する
ことを特徴とする。
【００１７】
また、上記通信ドライバ装置は、上記応答部が使用を許可したポートを使用して、上記通信機器と情報を通信する通信部を備え、
上記通信機器と通信する情報は、上記識別情報を有し、
上記通信部は、上記通信機器と通信する情報の有する識別情報と通信に使用されたポートとが、上記ポート対応情報記憶部が記憶するポート情報と識別情報とに一致しない場合、上記情報を破棄することを特徴とする。
【００１８】
また、上記通信ドライバ装置は、上記応答部が使用を許可したポートを使用して、上記通信機器と情報を通信する通信部を備え、
上記通信部は、上記通信機器から、上記識別情報を有する通信を終了することを通知する終了情報を受信して、受信した終了情報の識別情報と一致する上記ポート対応情報記憶部が記憶する識別情報と識別情報に対応するポート情報とを、上記ポート対応情報記憶部から削除することを特徴とする。
【００１９】
また、上記許可要ポートと上記許可不要ポートとは、エフェメラルポートであることを特徴とする。
【００２０】
また、この発明に係る通信システムは、ネットワークを介して通信する通信システムにおいて、
通信を制御する送信側通信ドライバ装置と、受信側に使用の許可を確認することなく使用できる少なくとも１つの許可不要ポートと、受信側に使用を許可された場合に使用できる少なくとも１つの許可要ポートとを備えた送信側通信機器と、
通信を制御する受信側通信ドライバ装置と、送信側に対して使用許可を与えることなく使用できる少なくとも１つの許可不要ポートと、送信側に対して使用を許可した場合に使用できる少なくとも１つの許可要ポートとを備えた受信側通信機器とを備え、
上記送信側通信機器の備える許可不要ポートと、上記受信側通信機器の備える許可不要ポートとは、共通のポートを示し、
上記送信側通信ドライバ装置は、
上記許可不要ポートを示す許可不要ポート情報と、上記許可要ポートを示す許可要ポート情報とを記憶する送信側ポート情報記憶部と、
上記送信側ポート情報記憶部が記憶する許可要ポート情報を有する使用確認情報を生成して、生成した使用確認情報を上記送信側ポート情報記憶部が記憶する許可不要ポート情報が示す許可不要ポートを使用して上記受信側通信機器に対して送信して、上記許可要ポートが使用可能か否かを確認する確認部と、
上記確認部が送信した使用確認情報に対する応答情報を、上記受信側通信機器から上記許可不要ポートを使用して受信できたか否かを判定する応答判定部と、
上記応答判定部が上記応答情報を受信したことを判定すると、上記許可要ポートを使用して上記受信側通信機器と情報通信を行う送信側通信部と
を備え、
上記受信側通信ドライバ装置は、
上記許可不要ポートを示す許可不要ポート情報と、上記許可要ポートを示す許可要ポート情報とを記憶する受信側ポート情報記憶部と、
上記送信側通信機器から通信に使用したいポートを示すポート情報を有する使用確認情報を、上記許可不要ポートを使用して受信する受信部と、
上記受信側ポート情報記憶部を検索して、上記受信部が受信した使用確認情報のポート情報と適合する許可要ポート情報が検索できた場合に、上記使用確認情報のポート情報が示すポートの使用を許可することを通知する応答情報を生成して上記送信側通信機器に送信し、上記使用確認情報のポート情報と適合する許可要ポート情報が検索できなかった場合に、上記応答情報を生成しない応答部と
を備えたことを特徴とする。
【００２１】
また、上記送信側通信機器は、自己を識別する識別情報を記憶する識別情報記憶部を備え、
上記確認部は、上記識別情報記憶部が記憶する識別情報を上記使用確認情報に含めて上記受信側通信機器に送信し、
上記受信部は、上記識別情報を含む使用確認情報を受信し、
上記受信側通信ドライバ装置は、上記応答部が使用を許可したポート情報と上記識別情報とを対応させて記憶するポート対応情報記憶部を備え、
上記応答部は、上記許可したポート情報に対して上記識別情報を対応させて上記ポート対応情報記憶部に記憶する
ことを特徴とする。
【００２２】
また、上記送信側通信部は、上記受信側通信機器と通信する情報に上記識別情報を含んで送信し、
上記受信側通信ドライバ装置は、上記応答部が使用を許可したポートを使用して、上記送信側通信機器と情報を通信する受信側通信部を備え、
上記受信側通信部は、上記送信側通信機器と通信する情報に含まれた識別情報と通信に使用されたポートとが、上記ポート対応情報記憶部が記憶するポート情報と識別情報とに一致しない場合、上記情報を破棄することを特徴とする。
【００２３】
また、上記送信側通信部は、上記受信側通信機器との通信を終了することを通知する終了情報を生成して、生成した終了情報に上記識別情報を含めて上記許可要ポート情報が示すポートを使用して、上記受信側通信機器へ送信し、
上記受信側通信ドライバ装置は、上記応答部が使用を許可したポートを使用して、上記送信側通信機器と情報を通信する受信側通信部を備え、
上記受信側通信部は、上記送信側通信機器から、上記識別情報を有する通信を終了することを通知する終了情報を受信して、受信した終了情報の識別情報と一致する上記ポート対応情報記憶部が記憶する識別情報と識別情報に対応するポート情報とを、上記ポート対応情報記憶部から削除することを特徴とする。
【００２４】
また、この発明に係る通信制御方法は、使用許可を確認することなく使用できる少なくとも１つの許可不要ポートと、使用を許可された場合に使用できる少なくとも１つの許可要ポートとを備えた通信機器との通信を制御する通信ドライバ装置の通信制御方法であって、
上記許可不要ポートを示す許可不要ポート情報と、上記許可要ポートを示す許可要ポート情報とを記憶部に記憶するポート情報記憶工程と、
上記ポート情報記憶工程によって記憶された許可要ポート情報を有する使用確認情報を生成して、生成した使用確認情報を上記ポート情報記憶工程によって記憶された許可不要ポート情報が示す許可不要ポートを使用して上記通信機器に対して送信して、上記許可要ポートが使用可能か否かを確認する確認工程と、
上記確認工程によって送信された使用確認情報に対する応答情報を、上記通信機器から受信できたか否かを判定する応答判定工程と、
上記応答判定工程が上記応答情報を受信したことを判定すると、上記許可要ポートを使用して上記通信機器と情報通信を行う送信側通信工程と
を有することを特徴とする。
【００２５】
この発明に係る通信制御方法は、使用許可を与えることなく使用できる少なくとも１つの許可不要ポートと、使用許可を与えてから使用できる少なくとも１つの許可要ポートとを備えた通信機器と通信する通信ドライバ装置の通信制御方法であって、
上記通信制御方法は、
上記許可不要ポートを示す許可不要ポート情報と、上記許可要ポートを示す許可要ポート情報とを記憶部に記憶するポート情報記憶工程と、
上記通信機器から通信に使用したいポートを示すポート情報を有する使用確認情報を、上記ポート情報記憶工程によって記憶された上記許可不要ポート情報が示す許可不要ポートを使用して受信する受信工程と、
上記ポート情報記憶工程によって記憶された記憶部を検索して、上記受信工程によって受信された使用確認情報のポート情報が示すポートと適合するポートを示す許可要ポート情報が検索できた場合に、上記使用確認情報のポート情報が示すポートの使用を許可することを通知する応答情報を生成して、生成した応答情報を上記ポート情報記憶工程によって記憶された上記許可不要ポート情報が示す許可不要ポートを使用して上記通信機器に送信し、適合するポートを示す許可要ポート情報が検索できなかった場合に、上記応答情報を生成しない応答工程と
を有することを特徴とする。
【発明の効果】
【００２６】
この発明による通信ドライバ装置は、通信に使用したいポートを、通信相手の通信装置によって使用を許可されるまでは閉じておき（ここでの「閉じておき」とは、ポートに対するリクエストが発生するか否かを監視していない状態を指す。つまり、監視していないポートに対するリクエストを受信しても、受信側の通信装置はリクエストに対して何の処理も行わない。）、使用が許可されたらその使用したいポートを開く（ここでの「開く」とは、ポートに対するリクエストが発生するか否かを監視している状態を指す。つまり、監視中のポートに対するリクエストを受信すると、受信側の通信装置はリクエストに対して何らかの処理を行なう。）。このように特定のポートを開／閉することによって、通信装置間のセキュリティを向上できる効果がある。
【発明を実施するための最良の形態】
【００２７】
実施の形態１．
この実施の形態では、１つのクライアント装置と少なくとも１つのサーバ装置とをネットワークで接続した通信システムを例にして、通信ドライバ装置と通信システムと、通信制御方法について一例を説明する。
【００２８】
図１は、この実施の形態の通信システムの構成と、クライアント装置とサーバ装置それぞれのブロック図を示す図である。図１において、クライアント装置１は通信ドライバ４を備え、サーバ装置５は通信ドライバ８を備える。クライアント装置１とサーバ装置５とは、ローカル・エリア・ネットワーク（以下「ＬＡＮ」という）５０５によって接続されて、互いに通信ドライバ４，８を介して通信を行う。クライアント装置１とサーバ装置５とはそれぞれ、通信機器の一例である。クライアント装置１は、使用許可の確認をすることなく使用できる少なくとも１つの許可不要ポートと、使用許可が得られてから使用できる少なくとも１つの許可要ポートとを有する通信ポート部４０を備える。通信ドライバ４は、確認部４２と、ポート情報記憶部３と、応答判定部４３と、通信部４４とを備える。
【００２９】
また、サーバ装置５は、使用許可の確認をすることなく使用できる少なくとも１つの許可不要ポートと、使用許可が得られてから使用できる少なくとも１つの許可要ポートとを有する通信ポート部８０とを備える。通信ドライバ８は、受信部８２と、ポート情報記憶部７と、応答部８３と、通信部８４とを備える。通信ドライバ４と通信ドライバ８とはそれぞれ、通信ドライバ装置の一例である。クライアント装置１側に「（送信側）」と記載し、サーバ装置５側に「（受信側）」と記載したのは、クライアント装置１からサーバ装置５へアクセスを行うことを想定しているためである。
【００３０】
図２は、この実施の形態における通信システムの外観を示す図である。図２において、クライアント装置１は、システムユニット２００、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）表示装置１４１、キーボード（Ｋ／Ｂ）１４２、マウス１４３、コンパクトディスク装置（ＣＤＤ）１８６、プリンタ装置１８７、スキャナ装置１８８を備え、これらはケーブルで接続されている。
さらに、クライアント装置１は、ＦＡＸ機３１０、電話器３２０とケーブルで接続され、また、ローカルエリアネットワーク（ＬＡＮ）５０５、ウェブサーバ５００を介してインターネット５０１に接続されている。サーバ装置５は、図２に示したクライアント装置１と同様の外観をしているものとする。また、図１に示したクライアント装置１とサーバ装置５とは、ＬＡＮ５０５を介して接続されていたが、図２のようにＬＡＮ５０５とウェブサーバ５００とインターネット５０１を介して接続されていてもかまわない。
【００３１】
図３は、実施の形態１におけるクライアント装置１とサーバ装置５のそれぞれのハードウェア構成図である。
図３において、クライアント装置１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１３７を備えている。ＣＰＵ１３７は、バス１３８を介してＲＯＭ１３９、ＲＡＭ１４０、通信ポート１４４、ＣＲＴ表示装置１４１、Ｋ／Ｂ１４２、マウス１４３、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）１４５、磁気ディスク装置１４６、ＣＤＤ１８６、プリンタ装置１８７、スキャナ装置１８８と接続されている。
ＲＡＭは、揮発性メモリの一例である。ＲＯＭ、ＦＤＤ、ＣＤＤ、磁気ディスク装置、光ディスク装置は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ポート１４４は、ＦＡＸ機３１０、電話器３２０、ＬＡＮ５０５等に接続されている。
例えば、通信ポート１４４、Ｋ／Ｂ１４２、ＦＤＤ１４５などは、情報入力部の一例である。
また、例えば、通信ポート１４４、スキャナ装置１８８、ＣＲＴ表示装置１４１などは、出力部の一例である。
【００３２】
ここで、通信ポート１４４は、ＬＡＮ５０５に限らず、直接、インターネット、或いはＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）に接続されていても構わない。直接、インターネット、或いはＩＳＤＮ等のＷＡＮに接続されている場合、クライアント装置１は、インターネット、或いはＩＳＤＮ等のＷＡＮに接続され、ウェブサーバ５００は不用となる。
磁気ディスク装置１４６には、オペレーティングシステム（ＯＳ）１４７、ウィンドウシステム１４８、プログラム群１４９、ファイル群１５０が記憶されている。プログラム群は、ＣＰＵ１３７、ＯＳ１４７、ウィンドウシステム１４８により実行される。
【００３３】
上記プログラム群１４９には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵにより読み出され実行される。
ファイル群１５０には、以下に述べる実施の形態の説明において、「〜記憶部」、「〜の判定結果」、「〜の検索結果」、「〜の処理結果」として説明するものが、「〜ファイル」として記憶されている。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータの入出力を示し、そのデータの入出力のためにデータは、磁気ディスク装置、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体に記録される。あるいは、信号線やその他の伝送媒体により伝送される。
【００３４】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、ＲＯＭ１３９に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
【００３５】
また、以下に述べる実施の形態を実施するプログラムは、また、磁気ディスク装置、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体による記録装置を用いて記憶されても構わない。
【００３６】
サーバ装置５は、図３に示したクライアント装置１と同様のハードウェア構成をしているものとする。また、通信ポート１４４は、通信ポート部４０，８０に相当する。従来、コンピュータに備えられる通信ポートは、１〜６５５３５まであり、１〜１０２３まで（ウェルノウンポート）は、特定の用途のために使用されることが決められており、１０２４以降（エフェメラルポート）が自由に使用できるポートとして規定されている。この実施の形態、及び、この実施の形態以降の実施の形態のクライアント装置１とサーバ装置５とは、１０２４番以降のポートを許可不要ポート及び許可要ポートとして使用する。
【００３７】
図４は、この実施の形態のポート情報記憶部３，７が記憶する情報の一例を示す図である。図４において、ポート情報記憶部３，７は、許可不要ポートのポート番号「２０００」と、許可要ポートのポート番号「１０２４、１０２６、１０２８・・・」とを記憶する。「許可不要ポート」とは、通信相手先からポートの使用を許可されなくても使用できるポートの番号を示し、「許可要ポート」とは、通信相手先からポートの使用を許可されてからでないと使用することができないポートの番号示す。つまり、許可不要ポートは、常にリクエストの有無を監視され、許可要ポートは、使用許可の確認がされてからそのポートへのリクエストの有無が監視される点が異なる。
【００３８】
図５は、ポート情報記憶部３，７に許可不要ポート情報と許可要ポート情報とを記憶する手順を示すフローチャート図である。送信側、受信側共にポート情報記憶部には同じ内容を設定する。通信システムのユーザは、常に通信ができるようなポート番号を１つ決め、これを「通信が許可されているポート番号（許可不要ポート情報）」として定義する（Ｓ１）。これは送受信対象となる通信機器全て同一の値となる。通信機器間で送受信を行うポート番号や送受信を行う都度必要に応じて使いたいポート番号を、「本当に通信したいポート番号（許可要ポート情報）」として定義する（Ｓ２）。これは通信を行いたい送受信側両方に定義する。上記したＳ１とＳ２とはポート情報記憶工程である。
【００３９】
図６は、送信側の通信ドライバの処理手順を示すフローチャート図である。図７は、受信側の通信ドライバの処理手順を示すフローチャート図である。以下に、クライアント装置１を送信側、サーバ装置５を受信側として、ＴＣＰ／ＩＰ（ｔｒａｎｓｍｉｓｓｉｏｎ  ｃｏｎｔｒｏｌ  ｐｒｏｔｏｃｏｌ／ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ）を使用して装置間の通信を行う手順を、図６，図７のフローチャートに従い説明する。図８に通信に使用するＴＣＰヘッダのデータフォーマットの一例を示す。図８に示すＴＣＰヘッダは、従来からあるＴＣＰヘッダと同様である。以下に説明する処理手順では、図８に示したＴＣＰヘッダを使用する。
【００４０】
図６において、送信側のクライアント装置１の確認部４２は、ＯＳ或いは実行中のアプリケーションプログラムからサーバ装置５との通信を要求する通信要求情報４０１を入力する。確認部４２は、ポート情報記憶部３から「通信が許可されているポート番号（許可不要ポート情報４０２）」を取出す（Ｓ１０）。例えば、許可不要ポート情報４０２は、図４より「２０００」である。次に、確認部４２は、許可不要ポートを使用して受信側のサーバ装置５とのセッションを確立する。例えば、ＴＣＰヘッダの「送信元ポート番号」に「２０００」を設定し、「送信先ポート番号」にも「２０００」を設定し、「ＳＹＮ」に「１」を設定してサーバ装置５へ送信する（Ｓ１１）。この後、サーバ装置５からの応答があり、セッションが確立された後、確認部４２は、受信側に対して「本当に通信したいポート番号（許可要ポート情報）」の使用許可を確認する使用確認情報４０４を生成して、「通信が許可されているポート番号（許可不要ポート情報４０２）」を使って、使用確認情報４０４を受信側のサーバ装置５へ送信する。「本当に通信したいポート番号」は、ＯＳ或いはアプリケーションプログラムから通知されてもいいし、通信ドライバ４がポート情報記憶部３を検索して使用されていない「許可要ポート情報」を取得して「本当に通信したいポート番号」としてもかまわない。ここでは、通信ドライバ４がポート情報記憶部３を検索して使用されていない「許可要ポート情報」（例えば「１０２４」）を取得して、「本当に通信したいポート番号」とする。使用確認情報４０４の一例としては、確認部４２は、ＴＣＰヘッダの「送信元ポート番号」に「２０００」を設定し、「送信先ポート番号」にも「２０００」を設定し、「データ部」に「１０２４」を設定して、使用確認情報４０４を生成する。
【００４１】
通信ドライバ４の応答判定部４３は、「通信が許可されているポート番号（許可不要ポート）」である「２０００」のポートから、使用確認情報４０４に対する応答情報４０５である使用許可を受信できたか受信できなかったかを判定する（Ｓ１４）。例えば、応答判定部４３は、確認部４２が使用確認情報４０４を送信してから予め定めた一定時間の間、サーバ装置５から応答情報４０５が送信されるのを待つ。一定時間経過しても応答情報４０５が送信されなかった場合には、応答判定部４３は、通信ドライバ４の処理を終了する（Ｓ１４，ＮＯ）。
【００４２】
一定時間の間に応答情報４０５が送信された場合は（Ｓ１４，ＹＥＳ）、応答判定部４３が、応答情報４０５を受信する（Ｓ１６）。例えば、応答情報４０５は、ＴＣＰヘッダの「送信元ポート番号」に「２０００」が設定され、「送信先ポート番号」に「２０００」が設定され、「データ部」に「１０２４」のポートの使用を許可する旨を通知する情報が設定されている。
【００４３】
次に、通信部４４が、ポート「１０２４」を開く（Ｓ１８）。ここでの「開く」とは、ポート「１０２４」に対するリクエストの有無の監視を開始することを指す。通信したいポート番号（許可要ポート）を使用して、受信側のサーバ装置５へデータを送信する（Ｓ２０）。データ送信が完了したら、通信したいポート番号のポート（許可要ポート）である「１０２４」のポートを閉じる（Ｓ２２）。ここでの「閉じる」とは、ポート「１０２４」に対するリクエストの有無の監視を停止することを指す。つまり、ポートが閉じられた後、閉じたポートに対してリクエストが発生しても、通信ドライバ（或いは、ＯＳ）はリクエストの処理を行わない。
【００４４】
この後、通信部４４は、許可不要ポート「２０００」を使用して、サーバ装置５へ「通信したいポート番号（許可要ポート）」である「１０２４」のポートの使用終了を通知する（Ｓ２４）。例えば、「ＴＣＰヘッダの「送信元ポート番号」に「２０００」を設定し、「送信先ポート番号」に「２０００」を設定し、「データ部」に「１０２４」のポートの使用を終了する旨を通知する情報を設定して、受信側へ送る情報（送信側からの情報）４０７を生成して、サーバ装置５へ送信する。
【００４５】
ポートの使用終了を通知した後、通信部４４は、許可不要ポートを使用して、サーバ装置５とのセッションを解放する。例えば、ＴＣＰヘッダの「送信元ポート番号」に「２０００」を設定し、「送信先ポート番号」にも「２０００」を設定し、「ＦＩＮ」に「１」を設定してサーバ装置５へ送信する（Ｓ２６）。
【００４６】
このように、上記した手順で、送信側の通信ドライバ４は動作する。なお、上記したＳ１０〜Ｓ１２は確認工程、Ｓ１４〜Ｓ１６は応答判定工程、Ｓ１８〜Ｓ２６は通信工程である。
【００４７】
次に、図６の送信側の処理に対応する受信側の通信ドライバ８の処理手順を説明する。図７において、予め通信ドライバ８は受信部８２よって、ポート情報記憶部７が記憶する許可不要ポートを開けておく（Ｓ３０）。例えば、ポート情報記憶部７は、図４に示した許可不要ポート情報と許可要ポート情報とを記憶しているで、「２０００」のポートを開けておく。ここで「開ける」とは、ポート「２０００」に対するリクエストの有無の監視を開始することを指す。
【００４８】
次に、受信部８２は、送信側の通信ドライバ４から送信されたセッションの接続要求を、「通信が許可されているポート番号（許可不要ポート）」から受信する。接続要求に対して、受信部８２は、「通信が許可されているポート番号（許可不要ポート）」を使用して、応答を返す（Ｓ３３）。例えば、ＴＣＰヘッダの「送信元ポート番号」に「２０００」を設定し、「送信先ポート番号」にも「２０００」を設定し、「ＳＹＮ」及び「ＡＣＫ」にそれぞれ「１」を設定して、送信側の通信ドライバ４に送信する。
【００４９】
セッションが接続された後、受信部８２は、送信側から「通信が許可されているポート（許可不要ポート）」を使って、「通信したいポート番号（許可要ポート情報）」の使用許可を確認する使用確認情報４０４を受取る（Ｓ３５）。
【００５０】
応答部８３は、受取った使用確認情報４０４の有する通信したいポート番号（許可要ポート情報）がポート情報記憶部７に「許可要ポート情報」として定義されているか確認する（Ｓ３７）。定義済みでなければ（Ｓ３９，ＮＯ）、受信を行わずに受信側の通信ドライバ８の処理を終了する。定義済みであれば（Ｓ３９，ＹＥＳ）、応答部８３は、通信したいポート番号（許可要ポート情報）のポートを開ける（Ｓ４１）。例えば、「１０２４」のポートを使用する確認をされたものとする。ここで「開ける」とは、ポート「１０２４」に対するリクエストの有無の監視を開始することを指す。応答部８３は、通信したいポート番号（許可要ポート情報）のポートを開けるとともに、許可要ポートの使用を許可することを送信側に通知する応答情報４０５を生成して、送信側へ送信する。例えば、ＴＣＰヘッダの「送信元ポート番号」に「２０００」を設定して、「送信先ポート番号」に「２０００」を設定して、「データ部」に１０２４のポートの使用を許可する旨を通知する情報を設定して、応答情報４０５を生成する。
【００５１】
応答情報４０５を送信側に通知するとともに、「１０２４」のポートを開けることによって、通信部８４は、通信したいポート番号を使って、送信側のクライアント装置からデータを受信する（Ｓ４３）。また、受信側のサーバ装置からデータを送信する（Ｓ４３）。
【００５２】
データの通信が終了すると、通信部８４は、「通信が許可されているポート（許可不要ポート）であるポート「２０００」を使用して、送信側から通信したいポート（許可要ポート）の使用終了を通知する受信側へ送る情報（送信側からの情報）４０７を受信する（Ｓ４５）。通信部８４は、通信したいポート（許可要ポート）であるポート「１０２４」を閉じる（Ｓ４７）。ここでの「閉じる」とは、ポート「１０２４」に対するリクエストの有無の監視を停止することを指す。つまり、ポートが閉じられた後、閉じたポートに対してリクエストが発生しても、通信ドライバ（或いは、ＯＳ）は発生したリクエストが要求する処理は行わない。
【００５３】
通信部８４は、送信側からセッションを解放する通知を受信して、応答を返す（Ｓ４９）。例えば、ＴＣＰヘッダの「送信元ポート番号」に「２０００」を設定し、「送信先ポート番号」にも「２０００」を設定し、「ＦＩＮ」及び「ＡＣＫ」のそれぞれに「１」を設定してクライアント装置１へ送信する。
【００５４】
このように、上記した手順で、受信側の通信ドライバ８は動作する。なお、上記したＳ３０〜Ｓ３５は受信工程、Ｓ３７〜Ｓ４１は応答工程、Ｓ４３〜Ｓ４９は通信工程である。
【００５５】
以上のように、通信ドライバレベルでネットワークポートを制御する事により、通信時にお互いに使用許可されたポート番号（許可不要ポート）で通信が可能かどうかを受信側に対して確認し、受信側では許可されたポート番号（許可要ポート）であれば、その番号のポートを開けて通信が行えるようにする。受信側では、送信側に対して使用の許可をしていない限りは許可要ポートを閉じているので、セキュリティを保つ事を可能にしている。これにより、通信元と通信先で、お互いに通信可能かどうかを確認することで第三者からのアクセス抑止、第三者へのデータの流出を防ぐことが可能となる。
【００５６】
上記した図６、図７は、ＴＣＰ／ＩＰを使用した場合の処理手順であった。以下に、ＵＤＰ（ｕｓｅｒ  ｄａｔａｇｒａｍ  ｐｒｏｔｏｃｏｌ）を使用した場合の処理手順の違いを説明する。なお、ＵＤＰヘッダは、ＴＣＰヘッダとは異なるデータフォーマットである。図９にＵＤＰヘッダのデータフォーマットの一例を示す。図９に示したＵＤＰヘッダは、従来のデータフォーマットと同様である。ＴＣＰ／ＩＰはコネクション指向のプロトコルであるが、ＵＤＰは、コネクションレス指向のプロトコルである。このため、ＵＤＰを使用する送信側の通信ドライバ４では、図６のＳ１１と、Ｓ２６の処理が不要となる。Ｓ１６も不要であるが、あっても良い。その他の処理は、図６の手順通りに行う。例えば、図６のＳ１２で確認部４２が生成する使用確認情報４０４は、ＵＤＰヘッダの「送信元ポート番号」に「２０００」を設定し、「送信先ポート番号」にも「２０００」を設定し、「データ部」に「１０２４」を設定して生成する。
【００５７】
また、ＵＤＰを使用する受信側の通信ドライバ８では、図７のＳ３３と、Ｓ４９の処理が不要となる。その他の処理は、図７の手順通りに行う。例えば、図７のＳ４１で応答部８３が生成する応答情報４０５は、ＵＤＰヘッダの「送信元ポート番号」に「２０００」を設定して、「送信先ポート番号」に「２０００」を設定して、「データ部」に「１０２４のポートの使用を許可する旨を通知する情報」を設定する。
【００５８】
このように、コネクション指向型のプロトコルを使用した場合と、コネクションレス指向のプロトコルを使用した場合とでは、通信ドライバの主要部分の処理に違いは無い。また、ＴＣＰ／ＩＰ、ＵＤＰを一例として説明したが、他のプロトコルを使用してもかまわない。上記した通信ドライバの処理の主要部分とは、送信側の通信ドライバでは、図６のＳ１０，Ｓ１２，Ｓ１４，Ｓ１６，Ｓ１８，Ｓ２０，Ｓ２２，Ｓ２４の処理であって、それぞれの処理を実行する確認部、応答判定部、通信部と、処理に必要な情報を記憶するポート情報記憶部である。また、受信側の通信ドライバでは、図７のＳ３０，Ｓ３５，Ｓ３７，Ｓ３９，Ｓ４１，Ｓ４３，Ｓ４５，Ｓ４７の処理であって、それぞれの処理を実行する受信部、応答部、通信部と、処理に必要な情報を記憶するポート情報記憶部である。
【００５９】
以上のように、この実施の形態の送信側に備えられた通信ドライバと受信側に備えられた通信ドライバとは、互いに使用可能なポートを管理し、使用可能なポートを使用して、使用したいポートの使用許可を確認する。そして、使用したいポートの使用が許可されたら、そのポートを開き、使用が許可されなかったら、そのポートは閉めたままにする。この結果、お互いの通信のセキュリティを向上できる効果がある。また、使用したいポートは、使用を許可してから開くので、第３者からの不正なアクセスを抑止できる効果がある。また、使用したいポートは、使用を許可してから開くので、第３者への情報の流出を防ぐことができる効果がある。
【００６０】
実施の形態２．
この実施の形態では、１つのクライアント装置と複数のサーバ装置とを備える通信システムの一例を説明する。なお、「ポートを開く」及び「ポートを閉じる」とがそれぞれ指す動作は、実施の形態１で説明した通りである。
【００６１】
図１では、クライアント装置とサーバ装置とはそれぞれ、１台であった。しかし、図１０のように、サーバ装置が複数台であってもかまわない。図１０のサーバ装置５ａ〜５ｄはそれぞれ、図１のサーバ装置５と同様の要素を備え、図１０のクライアント装置１は、図１のクライアント装置１と同様の要素を備えるものとする。また、サーバ装置５ａ〜５ｄの備えるポート情報記憶部７とクライアント装置１が備えるポート情報記憶部３とは、図４に示した情報を記憶するものとする。クライアント装置１を送信側、サーバ装置５ａ〜５ｄを受信側とすると、クライアント装置１はサーバ装置５ａ〜５ｄの内、アクセスしたいサーバ装置との間で、許可不要ポートを使用して許可要ポートの使用許可を確認する。この時、例えばクライアント装置１は、既にサーバ装置５ａから許可要ポート「１０２４」を使用する許可を得ているとすると、「１０２４」のポートは開かれている。このため、サーバ装置５ｂと「１０２４」のポートを使用して通信を行おうとすると、クライアント装置１からサーバ装置５ｂに対しては情報の送信を行えるが、サーバ装置５ｂでは「１０２４」のポートの使用を許可していないので、サーバ装置５ｂ側では「１０２４」のポートは閉じられていて送信された情報を受信できない。このことを防ぐため、クライアント装置１の通信ドライバ４は、以下の機能を備えるものとする。
【００６２】
１つ目は、サーバ装置より使用を許可された許可要ポートを開く場合に、許可要ポート情報とそのポートの使用を許可したサーバ装置を識別する情報とを対応させてファイル群１５０に記憶する。クライアント装置１がサーバ装置５ｂと通信する際に、サーバ装置５ｂから既に使用を許可されたポートがあるかファイル群１５０を検索する。検索して既に使用が許可されたポートがあれば、そのポートを使用してサーバ装置５ｂと通信を行う。使用を許可されたポートが無ければ、まだ開いていない許可要ポートの使用許可をサーバ装置５ｂに対して行う。サーバ装置５ｂとの通信が終了したら、サーバ装置５ｂに使用を許可されたポートを示すポート情報とサーバ装置５ｂの識別情報との組をファイル群１５０から削除する。
【００６３】
２つ目は、クライアント装置からアクセスする可能性のサーバ装置が予め分かっていたら、サーバ装置ごとの許可要ポート情報を決めておく。例えば、ポート情報記憶部３が記憶する許可要ポート情報に対応して、サーバ装置の識別情報を記憶させておく。さらに、許可要ポートが開いているか閉じているかを示すフラグ情報もいっしょに記憶する。クライアント装置の通信ドライバは、サーバ装置と通信を行うとき、ポート情報記憶部を検索して、通信をしようとしているサーバ装置に対応する許可要ポートが開いているか閉じているか確認する。開いていることが確認できたら、使用したい許可要ポートを使用してサーバ装置と通信を行う。通信が終了したら、許可要ポートを閉じて、フラグ情報を閉じている状態を示すように変更する。閉じていることが確認できたら、使用したい許可要ポートの使用許可をサーバ装置に対して確認する。サーバ装置から使用を許可されたらそのポートを開き、対応するフラグ情報を開いている状態を示すように変更する。
【００６４】
以上のように、この実施の形態の通信ドライバは、クライアント装置が１台でサーバ装置が複数台であっても、お互いの通信のセキュリティを向上できる効果がある。また、使用したいポートは、使用を許可してから開くので、第３者からの不正なアクセスを抑止できる効果がある。また、使用したいポートは、使用を許可してから開くので、第３者への情報の流出を防ぐことができる効果がある。
【００６５】
実施の形態３．
この実施の形態では、複数のクライアント装置と１つのサーバ装置とを備える通信システムの一例を説明する。なお、「ポートを開く」及び「ポートを閉じる」とがそれぞれ指す動作は、実施の形態１で説明した通りである。
【００６６】
図１１は、実施の形態３の通信システムの構成を示す図である。図１では、クライアント装置とサーバ装置とはそれぞれ、１台であった。しかし、図１１のように、クライアント装置が複数台であってもかまわない。図１１のクライアント装置１ａ〜１ｃはそれぞれ、図１の通信ドライバ４と同様の要素を備える通信ドライバ４ａ〜４ｃを備えるとともに、自己を識別する識別情報を記憶する識別情報記憶部Ａ〜Ｃを備える。識別情報記憶部は、通信ドライバが備えても、クライアント装置が通信ドライバとは別に備えてもかまわない。図１１の例では、クライアント装置が識別情報記憶部を通信ドライバとは別に備える。また、図１１のサーバ装置は、図１のサーバ装置５と一部異なる要素を備える。
【００６７】
図１２に実施の形態３の受信側通信機器であるサーバ装置のブロック図を示す。図１２において、サーバ装置５ｅは、通信ドライバ８ｅを備える。通信ドライバ８ｅは、ポート対応情報記憶部８５を備える点で、図１の通信ドライバ８と異なる。図１３は、ポート対応情報記憶部８５が記憶するデータの一例を示す図である。図１３に示すように、ポート対応情報記憶部８５は、ポート番号を示すポート情報と、ポートの使用を許可しているクライアント装置を識別する識別情報とを対応させて記憶する。例えば、ポート対応情報８５ａは、クライアント装置１ａに使用を許可しているポート情報を記憶し、ポート対応情報８５ｂは、クライアント装置１ｂに使用を許可しているポート情報を記憶し、ポート対応情報８５ｃは、クライアント装置１ｃに使用を許可しているポート情報を記憶している。クライアント装置の識別情報は、使用確認情報４０４に含まれている。例えば、ＴＣＰ／ＩＰを使用する場合は、ＩＰヘッダに識別情報が含まれている。図１４にＩＰヘッダのデータフォーマットを示す。図１４のＩＰヘッダは、従来のＩＰヘッダと同様である。図１４に示す「送信元ＩＰアドレス」が識別情報である。
【００６８】
ここでは、クライアント装置１ａ〜１ｃを送信側、サーバ装置５ｅを受信側として、送信側と受信側のそれぞれの通信ドライバの処理手順を説明する。図１５は、この実施の形態の送信側の通信ドライバの処理手順を示すフローチャート図である。図１６は、この実施の形態の受信側の通信ドライバの処理手順を示すフローチャート図である。図１６及び図１７の処理のうち実施の形態１で説明した図６、図７の処理と同じ内容のものは、同じステップ番号を付してある。また、クライアント装置１ａ〜１ｃの備えるポート情報記憶部３とサーバ装置５ｅが備えるポート情報記憶部７とは、図４に示した情報を記憶するものとする。また、クライアント装置１ａ〜１ｃとサーバ装置５ｅとは、一例としてＴＣＰ／ＩＰを使用して通信を行うものとする。また、クライアント装置１ａ〜１ｃを代表して、クライアント装置１ａの動作を説明する。
【００６９】
送信側のクライアント装置１ａの確認部４２は、ＯＳ或いは実行中のアプリケーションプログラムからサーバ装置５ｅとの通信を要求する通信要求情報４０１を入力する。確認部４２は、ポート情報記憶部３から「通信が許可されているポート番号（許可不要ポート情報４０２）」を取出す（Ｓ１０）。例えば、許可不要ポート情報４０２は、図４より「２０００」である。次に、確認部４２は、許可不要ポートを使用して受信側のサーバ装置５ｅとのセッションを確立する。例えば、ＴＣＰヘッダの「送信元ポート番号」に「２０００」を設定し、「送信先ポート番号」にも「２０００」を設定し、「ＳＹＮ」に「１」を設定してサーバ装置５へ送信する（Ｓ１１）。この後、サーバ装置５ｅからの応答があり、セッションが確立された後、確認部４２は、受信側に対して「本当に通信したいポート番号（許可要ポート情報）」の使用許可を確認する使用確認情報４０４を生成して、「通信が許可されているポート番号（許可不要ポート情報４０２）」を使って、使用確認情報４０４を受信側のサーバ装置５ｅへ送信する。この時、確認部４２は、識別情報記憶部Ａからクライアント装置１ａの識別情報を取得して、使用確認情報４０４に識別情報を含める（Ｓ４０）。例えば、確認部４２は、ＴＣＰヘッダの「データ部」に使用したい許可要ポート情報を設定するとともに、識別情報を設定する。或いは、図１４に示すようにＩＰヘッダには送信元ＩＰアドレスが設定されるので、サーバ装置５ｅ側では送信元ＩＰアドレスを識別情報として使用すれば、ＴＣＰヘッダのデータ部に設定しなくてもかまわない。
【００７０】
通信ドライバ４ａの応答判定部４３は、「通信が許可されているポート番号（許可不要ポート）」から、使用確認情報４０４に対する応答情報４０５である使用許可を受信できたか受信できなかったかを判定する（Ｓ１４）。一定時間経過しても応答情報４０５が送信されなかった場合には、応答判定部４３は、通信ドライバ４ａの処理を終了する（Ｓ１４，ＮＯ）。また、ＵＤＰの場合は通信ドライバ８ｅから応答情報４０５を送信しなくても良いので、上記した「通信ドライバ４ａの応答判定部４３は、「通信が許可されているポート番号（許可不要ポート）」から、使用確認情報４０４に対する応答情報４０５である使用許可を受信できたか受信できなかったかを判定して（Ｓ１４）、一定時間経過しても応答情報４０５が送信されなかった場合には、応答判定部４３は、通信ドライバ４ａの処理を終了する（Ｓ１４，ＮＯ）。」の処理がなくても良い。
【００７１】
一定時間の間に応答情報４０５が送信された場合は（Ｓ１４，ＹＥＳ）、応答判定部４３が、応答情報４０５を受信する（Ｓ１６）。次に、通信部４４が、使用を許可された許可要ポートを開く（Ｓ１８）。そして、通信したいポート番号（許可要ポート）で、受信側のサーバ装置５へ識別情報を含むデータを送信する（Ｓ４２）。送信するデータには識別情報を含めるが、受信側がＩＰヘッダの有する送信元ＩＰアドレスを識別情報として使用するのであれば、送信するデータに識別情報を含めなくともかまわない。
【００７２】
データ送信が完了したら、通信したいポート番号のポート（許可要ポート）を閉じる（Ｓ２２）。ポートが閉じられた後は、閉じたポートに対してリクエストが発生しても、通信ドライバ（或いは、ＯＳ）はリクエストの有無を監視していないので、リクエストの発生を検知することができず、発生したリクエストが要求する処理は行われない。
【００７３】
この後、通信部４４は、許可不要ポートを使用して、サーバ装置５ｅへ「通信したいポート番号（許可要ポート）」の使用終了を識別情報と共に通知する（Ｓ４４）。例えば、ＴＣＰヘッダの「データ部」に識別情報を含むポートの使用を終了する旨を通知する情報を設定して、受信側へ送る情報（送信側からの情報）４０７を生成して、サーバ装置５ｅへ送信する。或いは、サーバ装置５ｅ側でＩＰヘッダの有する送信元ＩＰアドレスを識別情報として使用するのであれば、「データ部」に識別情報を設定しなくてもかまわない。
【００７４】
ポートの使用終了を通知した後、通信部４４は、許可不要ポートを使用して、サーバ装置５ｅとのセッションを解放する（Ｓ２６）。
【００７５】
このように、上記した手順で、送信側の通信ドライバ４は動作する。なお、上記したＳ１０，Ｓ１１，Ｓ４０は確認工程、Ｓ１４〜Ｓ１６は応答判定工程、Ｓ１８，Ｓ４２，Ｓ２２，Ｓ４４，Ｓ２６は通信工程である。
【００７６】
次に、図１５の送信側の処理に対応する受信側の通信ドライバ８ｅの処理手順を説明する。図１６において、予め通信ドライバ８ｅは受信部８２よって、ポート情報記憶部７が記憶する許可不要ポートを開けておく（Ｓ３０）。
【００７７】
次に、受信部８２は、送信側の通信ドライバ４ａから送信されたセッションの接続要求を、「通信が許可されているポート番号（許可不要ポート）」から受信する。接続要求に対して、受信部８２は、「通信が許可されているポート番号（許可不要ポート）」を使用して、応答を返す（Ｓ３３）。ＵＤＰの場合は、Ｓ３３がなくても良い。
【００７８】
セッションが接続された後、受信部８２は、送信側から「通信が許可されているポート（許可不要ポート）」を使って、通信したいポート番号（許可要ポート情報）の使用許可を確認する使用確認情報４０４を受取る（Ｓ５０）。使用確認情報４０４には、送信元を識別する識別情報が含まれている。
【００７９】
応答部８３は、受取った使用確認情報４０４の有する通信したいポート番号（許可要ポート情報）がポート情報記憶部７に「許可要ポート情報」として定義されているか確認する（Ｓ３７）。定義済みでなければ（Ｓ３９，ＮＯ）、受信を行わずに受信側の通信ドライバ８ｅの処理を終了する。定義済みであれば（Ｓ３９，ＹＥＳ）、応答部８３は、通信したいポート番号（許可要ポート情報）のポートを開けて（Ｓ４１）、さらに、使用を許可する許可要ポート情報と使用確認情報４０４に含まれた識別情報とを組にしてポート対応情報記憶部８５に記憶する（Ｓ５１）。もし、識別情報が使用確認情報４０４に含まれていなければ、ＩＰヘッダの送信元ＩＰアドレスを識別情報としポート対応情報記憶部８５に記憶する。使用を許可した許可要ポート情報と識別情報とを対にして記憶することにより、どのクライアント装置に対してどの許可要ポートの使用を許可しているのか、確認できるようにしている。
【００８０】
また、応答部８３は、通信したいポート番号（許可要ポート情報）のポートを開けるとともに、許可要ポートの使用を許可することを送信側に通知する応答情報４０５を生成して、送信側へ送信する。ＵＤＰの場合は、応答部８３は、通信したいポート番号（許可要ポート情報）のポートを開けた後、「許可要ポートの使用を許可することを送信側に通知する応答情報４０５を生成して、送信側へ送信する。」の処理がなくても良い。
【００８１】
許可要ポートの使用を許可すると、送信側の通信部４４から、識別情報を含む受信側へ送る情報（送信側からの情報）４０７が許可要ポートを使用して送信されるので、受信側の通信部８４は、許可要ポートを使用してこれを受信する（Ｓ５３）。或いは、データの通信が終了したら、通信部８４は、「通信が許可されているポート（許可不要ポート）を使用して、送信側から通信したいポート（許可要ポート）の使用終了を通知するとともに通信を終了するクライアント装置の識別情報を受信側へ送る情報（送信側からの情報）４０７として受信する（Ｓ５３）。
【００８２】
通信部８４は、使用された許可要ポートと識別情報とを基にポート対応情報記憶部８５を検索して、一致する許可要ポートと識別情報とが記憶されているか確認する。一致するものが記憶されていない時は（Ｓ５５，ＮＯ）、処理を終了する。例えば、サーバ装置５ｅを不正にアクセスしようとする第３者が偶然使用を許可しているポートを使用してリクエストを行うと、通信部８４は、第３者が使用しているクライアント装置の識別情報と使用したポート情報とが、ポート対応情報記憶部８５に記憶されているか否かを確認する。ポート対応情報記憶部８５に記憶されているのは、クライアント装置１ａの識別情報と許可要ポート情報との組なので、一致するものは検索できない。この結果、不正にアクセスしようとする第３者からのリクエストは破棄されることになる。
【００８３】
一致するものが記憶されている時は（Ｓ５５，ＹＥＳ）、受信した情報が通信を終了する通知か否かを確認する。終了通知でない時は（Ｓ５７，ＮＯ）、受信した情報が要求するデータ処理を行う（Ｓ５９）。終了通知である時は（Ｓ５７，ＹＥＳ）、通信部８４は、許可要ポートを閉じる（Ｓ４７）。続いて、通信部８４は、送信側からセッションを解放する通知を受信して、応答を返す（Ｓ４９）。ＵＤＰの場合は、Ｓ４９がなくても良い。
【００８４】
セッションを解放した後、通信部８４は、ポート対応情報記憶部８５から、Ｓ４７で閉じた許可要ポートと、対応する識別情報とを削除する（Ｓ６０）。なお、Ｓ６０の処理は、Ｓ４７とＳ４９との間に実行してもかまわない。
【００８５】
このように、クライアント装置の識別情報に対応させて、そのクライアント装置に対して使用を許可したポート番号を記憶して管理することによって、使用を許可していないクライアント装置からのリクエストを排除できる。上記したＳ３０，Ｓ３３，Ｓ５０は受信工程、Ｓ３７〜Ｓ４１，Ｓ５１は応答工程、Ｓ５３〜Ｓ６０，Ｓ４７，Ｓ４９は通信工程である。
【００８６】
上記した図１５、図１６は、ＴＣＰ／ＩＰを使用した場合の処理手順であったが、ＵＤＰ（ｕｓｅｒ  ｄａｔａｇｒａｍ  ｐｒｏｔｏｃｏｌ）を使用してもかまわない。ＵＤＰを使用した場合の処理手順の違いは、ＵＤＰヘッダは、ＴＣＰヘッダとは異なるデータフォーマットである。図９にＵＤＰヘッダのデータフォーマットの一例を示す。図９に示したＵＤＰヘッダを使用する場合は、図１５のＳ１１と、Ｓ１６、Ｓ２６の処理が不要となる。但し、Ｓ１６はあっても良い。その他の処理は、図１５の手順通りに行う。また、ＵＤＰを使用する受信側の通信ドライバ８ｅでは、図１６のＳ３３と、Ｓ４９の処理が不要となる。その他の処理は、図１６の手順通りに行う。
【００８７】
以上のように、この実施の形態の通信ドライバは、クライアント装置が複数であり、サーバ装置が１台であっても、互いに使用可能なポートを管理し、使用可能なポートを使用して、使用したいポートが使用可能であるか否かを確認する。そして、使用したいポートが使用可能であることを確認できた場合にのみ、そのポートを開き、使用可能であることを確認できなかった場合には、そのポートは閉めたままにする。この結果、お互いの通信のセキュリティを向上できる効果がある。また、使用したいポートは、使用を許可してから開くので、第３者からの不正なアクセスを抑止できる効果がある。また、使用したいポートは、使用を許可してから開くので、第３者への情報の流出を防ぐことができる効果がある。
【００８８】
また、ポートはクライアント装置の識別情報に対応させて管理されているので、ポートが開いているだけでなく、使用されたポートがリクエストを行ったクライアント装置に対して使用を許可しているポートであるかを同時に確認するので、許可要ポートが開いているだけではサーバ装置にアクセスできない。このため、第３者からの不正なアクセスを抑止できる効果がある。また、第３者への情報の流出を防ぐことができる効果がある。
【００８９】
実施の形態４．
この実施の形態では、使用したいポート情報をＯＳ或いは、アプリケーションから指示される通信ドライバについて、一例を説明する。
【００９０】
図１７は、この実施の形態の通信システムの構成と、クライアント装置とサーバ装置それぞれのブロック図を示す図である。図１７において、通信要求情報６０１は、ＯＳ或いは、アプリケーションからの通信の要求情報であって、「通信したいポート番号（許可要ポート情報）」を含むものである。図１７のクライアント装置１の他の要素は、図１のクライアント装置１の要素と同じである。また、サーバ装置５は、図１のサーバ装置５の要素と同じである。
【００９１】
図１８は、この実施の形態の送信側の通信ドライバの処理手順を示すフローチャート図である。Ｓ７０、Ｓ７２，Ｓ７４との処理を図６の送信側の通信ドライバの処理手順を示すフローチャートに追加した。この追加した処理以外の処理は、図６と同様である。以下に、追加したＳ７０、Ｓ７２，Ｓ７４との処理を説明する。なお、Ｓ７０、Ｓ７２，Ｓ７４との処理は、図６のＳ１０の処理の前に追加した。
【００９２】
図１８において、クライアント装置１の確認部４２は、ＯＳ、或いは実行中のアプリケーションプログラムから通信要求情報６０１を入力する（Ｓ７０）。この通信要求情報６０１には、通信したい宛先と通信したい内容と通信に使用したいポート番号（許可要ポート情報）とが含まれている。確認部４２は、入力した通信要求情報６０１に含まれる通信に使用したいポート番号（許可要ポート情報）が、ポート情報記憶部３に記憶されているか、ポート情報記憶部３を検索する（Ｓ７２）。検索した結果、記憶されていれば、Ｓ１０以降の処理を行う（Ｓ７４，ＹＥＳ）。記憶されていなければ、処理を終了する（Ｓ７４，ＮＯ）。Ｓ１０以降の処理は、実施の形態１の図６と同様である。
【００９３】
このように、送信側の通信ドライバは、ＯＳやアプリケーションプログラムから通信に使用したいポート番号を受け取ることが可能である。このため、例えばアプリケーションプログラム毎に使用するポート番号を決めておき、そのポート番号を送信側のポート情報記憶部３と受信側のポート情報記憶部７に記憶させておけば、クライアント装置とサーバ装置とは、アプリケーションプログラムに依存したポートを使用して通信を行うことができる効果がある。
【００９４】
実施の形態５．
この実施の形態では、１つのクライアント装置と複数のサーバ装置とを備える通信システムの一例を説明する。なお、「ポートを開く」及び「ポートを閉じる」とがそれぞれ指す動作は、実施の形態１で説明した通りである。
【００９５】
図１０では、通信システムは、１台のクライアント装置と複数のサーバ装置とを備えていた。そして、クライアント装置と複数のサーバ装置それぞれが備えるポート情報記憶部には、図４のように、１つの許可不要ポート情報と複数の許可要ポート情報とを同じ内容で記憶していた。この実施の形態では、それぞれのサーバ装置毎に許可不要ポート情報と許可要ポート情報とを使用する一例を説明する。
【００９６】
図１９は、実施の形態５の通信システムの構成と、クライアント装置とサーバ装置それぞれのブロック図を示す図である。図１９のサーバ装置５ａ〜５ｃはそれぞれ、図１のサーバ装置５と同様の要素を備え、図１９のクライアント装置１は、図１のクライアント装置１と同様の要素を備えるものとする。ただし、クライアント装置のポート情報記憶部３は、図１９に示すようにサーバ装置毎の許可不要ポート情報と、サーバ装置毎の許可要ポート情報とを記憶する。例えば、ポート情報記憶部３は、サーバ装置５ａの「許可不要ポート情報」を「２０００」、「許可要ポート情報」を「１０２４」、サーバ装置５ｂの「許可不要ポート情報」を「２０１０」、「許可要ポート情報」を「１０２６」と記憶する。また、サーバ装置５ａ〜５ｃのそれぞれのポート情報記憶部７ａ，７ｂ，７ｃは、独自の許可不要ポート情報と許可要ポート情報とを記憶する。例えば、サーバ装置５ａのポート情報記憶部７ａの「許可不要ポート情報」は「２０００」であり、「許可要ポート情報」は「１０２４」である。一方、サーバ装置５ｂの「許可不要ポート情報」は「２０１０」であり、「許可要ポート情報」は「１０２６」である。
【００９７】
クライアント装置１を送信側、サーバ装置５ａ〜５ｄを受信側とすると、クライアント装置１はサーバ装置５ａ〜５ｄの内、アクセスしたいサーバ装置との間で、許可不要ポートを使用して許可要ポートの使用許可を確認する。例えばクライアント装置１は、既にサーバ装置５ａから許可要ポート「１０２４」を使用する許可を得ているとしても、サーバ装置５ｂと通信を開始する場合には、許可不要ポート「２０１０」を使用して許可要ポート「１０２６」の使用許可の確認を得なければならない。
【００９８】
以上のように、この実施の形態の通信ドライバは、クライアント装置が１台でサーバ装置が複数台であっても、お互いの通信のセキュリティを向上できる効果がある。また、接続するサーバ装置が追加になった場合には、追加したサーバ装置のポート情報記憶部には、自己が使用する許可要ポート情報と許可不要ポート情報を設定し、他のサーバ装置が使用する許可要ポート情報と許可不要ポート情報とは設定する必要が無い。また、自己以外の他のサーバ装置から自己のサーバ装置のポート情報記憶部に記憶された情報を秘匿することができる。
【００９９】
また、サーバ装置５ａ〜５ｃは、プリンタ装置やファクシミリ装置や電話等の外部装置であってもかまわない。外部装置毎に許可要ポート情報と許可不要ポート情報とを管理することが可能となる。
【０１００】
実施の形態６．
この実施の形態では、複数のクライアント装置と１つのサーバ装置とを備える通信システムの一例を説明する。なお、「ポートを開く」及び「ポートを閉じる」とがそれぞれ指す動作は、実施の形態１で説明した通りである。
【０１０１】
図１１では、通信システムは、１台のクライアント装置と複数のサーバ装置とを備えていた。そして、複数のクライアント装置と１つのサーバ装置それぞれが備えるポート情報記憶部には、図４のように、１つの許可不要ポート情報と複数の許可要ポート情報とを同じ内容で記憶していた。この実施の形態では、それぞれのクライアント装置毎に許可不要ポート情報と許可要ポート情報とを使用する一例を説明する。
【０１０２】
図２０は、実施の形態６の通信システムの構成と、クライアント装置とサーバ装置それぞれのブロック図を示す図である。図２０のクライアント装置１ａ〜１ｃはそれぞれ、図１のクライアント装置１と同様の要素を備え、図２０のサーバ装置５は、図１のサーバ装置５と同様の要素を備えるものとする。ただし、サーバ装置のポート情報記憶部７は、図２０に示すようにクライアント装置毎の許可不要ポート情報と、クライアント装置毎の許可要ポート情報とを記憶する。例えば、ポート情報記憶部７は、クライアント装置１ａの「許可不要ポート情報」を「２０００」、「許可要ポート情報」を「１０２４」、クライアント装置１ｂの「許可不要ポート情報」を「２０１０」、「許可要ポート情報」を「１０２６」と記憶する。また、クライアント装置１ａ〜１ｃのそれぞれのポート情報記憶部３ａ，３ｂ，３ｃは、独自の許可不要ポート情報と許可要ポート情報とを記憶する。例えば、クライアント装置１ａのポート情報記憶部３ａの「許可不要ポート情報」は「２０００」であり、「許可要ポート情報」は「１０２４」である。一方、クライアント装置１ｂの「許可不要ポート情報」は「２０１０」であり、「許可要ポート情報」は「１０２６」である。
【０１０３】
クライアント装置１ａ〜１ｃを送信側、サーバ装置５を受信側とすると、クライアント装置１ａ〜１ｃはそれぞれ、サーバ装置との間で、許可不要ポートを使用して許可要ポートの使用許可を確認する。例えばサーバ装置５は、既にクライアント装置１ａに対して許可要ポート「１０２４」を使用することを許可しているとしても、クライアント装置１ｂと通信を開始する場合には、許可不要ポート「２０１０」を使用して許可要ポート「１０２６」の使用を許可しなければならない。
【０１０４】
以上のように、この実施の形態の通信ドライバは、クライアント装置が複数でサーバ装置が１台であっても、お互いの通信のセキュリティを向上できる効果がある。また、接続するクライアント装置が追加になった場合には、追加したクライアント装置のポート情報記憶部には、自己が使用する許可要ポート情報と許可不要ポート情報を設定し、他のクライアント装置が使用する許可要ポート情報と許可不要ポート情報とは設定する必要が無い。また、自己以外の他のクライアント装置から自己のポート情報記憶部に記憶された情報を秘匿することができる。
【図面の簡単な説明】
【０１０５】
【図１】実施の形態１の通信システムの構成と、クライアント装置とサーバ装置それぞれのブロック図を示す図。
【図２】実施の形態１における通信システムの外観を示す図。
【図３】実施の形態１におけるクライアント装置１とサーバ装置５のそれぞれのハードウェア構成図。
【図４】実施の形態１のポート情報記憶部３，７が記憶する情報の一例を示す図。
【図５】ポート情報記憶部３，７に許可不要ポート情報と許可要ポート情報とを記憶する手順を示すフローチャート図。
【図６】実施の形態１の送信側の通信ドライバの処理手順を示すフローチャート図。
【図７】実施の形態１の受信側の通信ドライバの処理手順を示すフローチャート図。
【図８】ＴＣＰヘッダのデータフォーマットの一例を示す図。
【図９】ＵＤＰヘッダのデータフォーマットの一例を示す図。
【図１０】実施の形態２の通信システムの構成を示す図。
【図１１】実施の形態３の通信システムの構成を示す図。
【図１２】実施の形態３の受信側通信機器であるサーバ装置のブロック図を示す図。
【図１３】実施の形態３のポート対応情報記憶部８５が記憶するデータの一例を示す図。
【図１４】実施の形態３のＩＰヘッダのデータフォーマットを示す図。
【図１５】実施の形態３の送信側の通信ドライバの処理手順を示すフローチャート図。
【図１６】実施の形態３の受信側の通信ドライバの処理手順を示すフローチャート図。
【図１７】実施の形態４の通信システムの構成と、クライアント装置とサーバ装置それぞれのブロック図を示す図。
【図１８】実施の形態４の送信側の通信ドライバの処理手順を示すフローチャート図。
【図１９】実施の形態５の通信システムの構成と、クライアント装置とサーバ装置それぞれのブロック図を示す図。
【図２０】実施の形態６の通信システムの構成と、クライアント装置とサーバ装置それぞれのブロック図を示す図。
【図２１】従来の一般的な標準構成である通信機器（コンピュータなど）のネットワーク通信の構成図。
【符号の説明】
【０１０６】
１，１ａ，１ｂ，１ｃ  クライアント装置、３，３ａ，３ｂ，３ｃ，７，７ａ，７ｂ，７ｃ  ポート情報記憶部、４，８  通信ドライバ、５，５ａ，５ｂ，５ｃ，５ｄ，５ｅ  サーバ装置、４０，８０  通信ポート部、４２  確認部、４３  応答判定部、４４，８４  通信部、８２  受信部、８３  応答部、８５  ポート対応情報記憶部、８５ａ，８５ｂ，８５ｃ  ポート対応情報、１０１  送信側通信機器、１０２，１０５  ＯＳ標準定義ファイル、１０３，１０６  ＬＡＮドライバ、１０４  受信側通信機器、１３７  ＣＰＵ、１３８  バス、１３９  ＲＯＭ、１４０  ＲＡＭ、１４１  ＣＲＴ表示装置、１４２  Ｋ／Ｂ、１４３  マウス、１４４  通信ポート、１４５  ＦＤＤ、１４６  磁気ディスク装置、１４７  ＯＳ、１４８  ウィンドウシステム、１４９  プログラム群、１５０  ファイル群、１８６  ＣＤＤ、１８７  プリンタ装置、１８８  スキャナ装置、２００  システムユニット、３１０  ＦＡＸ機、３２０  電話器、４０１  通信要求情報、４０２  許可不要ポート情報、４０３  許可要ポート情報、４０４  使用確認情報、４０５  応答情報、４０６  判定結果、４０７  受信側へ送る情報（送信側からの情報）、４０８  受信側からの情報（送信側へ送る情報）、５００  ウェブサーバ、５０１  インターネット、５０２  許可要ポート情報、５０４  許可不要ポート情報、５０５  ＬＡＮ、６０１  通信要求情報。
【図１】
2006166062.tif 000003
【図２】
2006166062.tif 000004
【図３】
2006166062.tif 000005
【図４】
2006166062.tif 000006
【図５】
2006166062.tif 000007
【図６】
2006166062.tif 000008
【図７】
2006166062.tif 000009
【図８】
2006166062.tif 000010
【図９】
2006166062.tif 000011
【図１０】
2006166062.tif 000012
【図１１】
2006166062.tif 000013
【図１２】
2006166062.tif 000014
【図１３】
2006166062.tif 000015
【図１４】
2006166062.tif 000016
【図１５】
2006166062.tif 000017
【図１６】
2006166062.tif 000018
【図１７】
2006166062.tif 000019
【図１８】
2006166062.tif 000020
【図１９】
2006166062.tif 000021
【図２０】
2006166062.tif 000022
【図２１】
2006166062.tif 000023