JP4274184B2 - 通信システム、および通信方法 - Google Patents

通信システム、および通信方法 Download PDF

Info

Publication number
JP4274184B2
JP4274184B2 JP2006020716A JP2006020716A JP4274184B2 JP 4274184 B2 JP4274184 B2 JP 4274184B2 JP 2006020716 A JP2006020716 A JP 2006020716A JP 2006020716 A JP2006020716 A JP 2006020716A JP 4274184 B2 JP4274184 B2 JP 4274184B2
Authority
JP
Japan
Prior art keywords
client
server
port number
communication
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006020716A
Other languages
English (en)
Other versions
JP2007200209A (ja
Inventor
信之 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2006020716A priority Critical patent/JP4274184B2/ja
Publication of JP2007200209A publication Critical patent/JP2007200209A/ja
Application granted granted Critical
Publication of JP4274184B2 publication Critical patent/JP4274184B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は,通信システム,サーバ,通信方法,およびコンピュータプログラムに関する。詳細には,1以上のアプリケーションプログラムを備えるサーバと,サーバのアプリケーションプログラムとの間でTCP/IPプロトコルにより通信を行うクライアントとを備える通信システム,その通信システムに用いられるサーバ,通信方法,およびコンピュータプログラムに関する。
従来,TCP/IPプロトコルによるサーバ・クライアント間の通信では,サーバ内で通信を行うアプリケーションプログラム(以後,アプリケーションとも称する。)には各々固定のポート番号が付与されており,クライアントは,既知の固定のポート番号を用いてサーバ内のアプリケーションと通信接続を行っていた。特に,HTTPサーバ,TELNETサーバ,FTPサーバなどの広く使われているアプリケーションに付与される固定のポート番号は,RFC(Request for Comments)1060に規定されており,ウェルノウン(well known)ポート番号と呼ばれる。
ウェルノウンポート番号は公にされており,誰でもその情報を入手することができる。そのため,誰でも,コンピュータに対してウェルノウンポート番号を通じてポートスキャンすることにより,コンピュータ上で動作しているアプリケーションの一覧を得ることができる。また,誰でも,IPアドレススイープすることにより,目的のアプリケーションが動作しているコンピュータの一覧を得ることができる。また,これらのアプリケーションは,デフォルトの設定ではバージョン番号も容易に知られてしまう。
従って,例えばあるアプリケーションに脆弱性が発見された場合,ポートスキャンやIPアドレススイープにより,そのアプリケーションが動作しているコンピュータが第三者に特定されてしまう。そして,その第三者により該コンピュータに不正にアクセス,侵入されてデータが改ざんされたり,他のコンピュータへの攻撃のための踏み台とされるなどの被害が発生していた。さらに最近では,第三者によるこのような不正行為が自動化されたワーム(Worm)と呼ばれるプログラムが大量に作成されており,膨大な数のコンピュータがワームに感染した状態でインターネットに接続されている可能性がある。
そこで,ウェルノウンポート番号を使用しないでサーバ・クライアント間で通信を行う方法が提供されている(例えば,特許文献1参照)。本方法では,サーバとクライアントが,予め定められた共通のポート番号決定方式により各々ポート番号を導出して使用することにより,ウェルノウンポート番号を使用しないでサーバ・クライアント間で通信接続を行うことを可能にしている。
特開2004−265122号公報
しかし,上記方法は,サーバとクライアントが互いに同じポート番号決定方式を用いて利用する方式であり,VPNの一方式である。つまり,通信を前提としたサーバとクライアントに独自方式を実装し,同期させることで初めて動作するものであるため,不特定多数のコンピュータへの適用には適さない。上記方法では,サーバ側で使用されるポート番号をクライアント側で導出することができるため,不特定多数のコンピュータに広く上記方法が適用されてしまえば,第三者はそのポート番号を用いてサーバに不正にアクセスすることが可能となり,上記方法によるセキュリティの保護が意味をなさなくなるという問題点があった。
そこで,本発明は,このような問題に鑑みてなされたもので,その目的とするところは,TCP/IPプロトコルによるサーバ・クライアント間の通信におけるセキュリティを向上させ,かつ,不特定多数のコンピュータに適用することの可能な,新規かつ改良された通信システム,および通信方法を提供することにある。
上記課題を解決するために,本発明のある観点によれば,1以上のアプリケーションプログラムを備えるサーバと,アプリケーションプログラムとの間でTCP/IPプロトコルにより通信を行うクライアントと,を備える通信システムが提供される。本通信システムにおいて,サーバは,クライアントから,1以上のアプリケーションプログラムのいずれかを一意に特定するプログラム識別子を受信するサーバ受信部と;受信部により受信されたプログラム識別子により特定されるアプリケーションプログラムに,ポート番号を動的に付与するサーバ側ポート番号付与部と;サーバ側ポート番号付与部により付与されたポート番号を,サーバ側ポート番号として,クライアントに送信するサーバ送信部と;を備える。
クライアントは,通信を行いたいアプリケーションプログラムのプログラム識別子をサーバに送信するクライアント送信部と;サーバからサーバ側ポート番号を受信するクライアント受信部と;を備え,クライアントは,クライアント受信部により受信されたサーバ側ポート番号を用いてサーバのアプリケーションプログラムと通信を行う。
上記発明によれば,サーバのアプリケーションとクライアントとの間の通信が,サーバにより動的に付与されたポート番号を用いて行われる。従って,ウェルノウンポート番号を用いていないため,ウェルノウンポート番号を通じて不正にアプリケーションにアクセスされることを防止できる。また,ポート番号がサーバにより動的に決定されるため,サーバからの通知を得ない限り,クライアントはポート番号を知り得ない。従って,クライアントが既知のポート番号を通じてサーバのアプリケーションに不正にアクセスすることを防止し,通信のセキュリティを向上させることができる。
上記サーバは,ポート番号を付与したアプリケーションプログラムがクライアントと通信を行う際のクライアント側のポート番号を指定するクライアント側ポート番号指定部をさらに備え,サーバ送信部は,クライアント側ポート番号指定部により指定されたポート番号を,クライアント側ポート番号として,クライアントに送信するようにしてもよい。かかる構成によれば,サーバがクライアント側のポート番号も指定するため,アプリケーションとの通信相手をクライアント側のポート番号単位で制御でき,さらにセキュリティを向上させることができる。
上記課題を解決するために,本発明の別の観点によれば,1以上のアプリケーションプログラムを備えるサーバと,アプリケーションプログラムとの間でTCP/IPプロトコルにより通信を行うクライアントと,を備える通信システムにおいて,サーバが,アプリケーションプログラムへのアクセスの手順を定めている手順定義テーブルと;手順定義テーブルに定められているアクセスの手順に基づいて,アプリケーションプログラムとクライアントとの通信を許可するか否かを判断する通信可否判断部と;通信可否判断部により通信を許可された場合に,クライアントに指定されたアプリケーションプログラムにクライアントとの通信を開始させる通信開始部と;
を備える通信システムが提供される。
通信可否判断部は,クライアントが,予め定められている手順に従ってサーバにアクセスした場合に,該クライアントとアプリケーションプログラムとの通信を許可するよう,通信の許可/不許可を決定するようにしてもよい。
上記発明によれば,サーバは,クライアントが,予め定められた手順によりサーバにアクセスした場合にのみ,そのクライアントとの通信を許可する。そのため,第三者によるサーバ内のアプリケーションへのアクセスを制限することができ,通信のセキュリティを向上させることができる。
上記通信システムにおいて,サーバは,アプリケーションプログラムに動的にポート番号を付与するサーバ側ポート番号付与部と;サーバ側ポート番号付与部により付与されたポート番号を,サーバ側ポート番号として,クライアントに送信するサーバ送信部と;をさらに備えてもよく,その場合,通信開始部は,通信可否判断部により通信を許可された場合に,サーバ側ポート番号付与部をしてクライアントに指定されたアプリケーションプログラムにポート番号を付与せしめ,サーバ送信部をして該ポート番号をクライアントに送信せしめるようにしてもよい。かかる構成によれば,サーバがアプリケーションのポート番号を動的に決定する。従って,ウェルノウンポート番号を用いていないため,ウェルノウンポート番号を通じて不正にアプリケーションにアクセスされることを防止できる。また,ポート番号がサーバにより動的に決定されるため,サーバからの通知を得ない限り,クライアントはポート番号を知り得ない。従って,クライアントが既知のポート番号を通じてサーバのアプリケーションに不正にアクセスすることを防止し,通信のセキュリティをさらに向上させることができる。
上記通信システムにおいて,サーバは,クライアントから,1以上のアプリケーションプログラムのいずれかを一意に特定するプログラム識別子を受信するサーバ受信部をさらに備えてもよく,その場合,通信開始部は,通信可否判断部により通信を許可された場合に,サーバ受信部をしてクライアントからプログラム識別子を受信せしめ,受信したプログラム識別子により特定されるアプリケーションプログラムをクライアントに指定されたアプリケーションプログラムとするようにしてもよい。かかる構成によれば,アクセス手順を,サーバの各アプリケーションプログラムに共通に定めることができる。
上記手順定義テーブルには,1以上のアプリケーションプログラム毎に,相異なるアクセスの手順が定められていてもよく,その場合,通信開始部は,通信可否判断部によりアプリケーションとの通信を許可されたクライアントによって実行されたアクセスの手順に応じて,クライアントに指定されたアプリケーションを特定するようにしてもよい。かかる構成によれば,アプリケーションプログラムごとに相異なる手順が定められるので,1つのアクセス手順が漏洩した場合であっても,他のアプリケーションプログラムに対する不正なアクセスを防止することができる。
上記手順定義テーブルには,1以上のアプリケーションプログラム毎に相異なり,かつ,アプリケーションの利用態様毎に相異なるアクセスの手順が定められていてもよく,その場合,通信開始部は,通信可否判断部によりアプリケーションとの通信を許可されたクライアントによって実行されたアクセスの手順に応じて,クライアントに指定されたアプリケーションおよび利用態様を特定するようにしてもよい。かかる構成によれば,アプリケーションごと,かつその利用態様ごとに異なる手順が定められるので,1つのアクセス手順が漏洩した場合であっても,他の利用態様によるアプリケーションプログラムや,他のアプリケーションプログラムに対する不正なアクセスを防止することができる。
上記利用態様には,アプリケーションプログラムにより実行されるクライアントの認証方式,および,クライアントがアプリケーションプログラムを介して接続できるネットワークの種類のいずれかまたは双方を含むようにしてもよい。
上記アクセスの手順は,サーバがクライアントから受信するポート番号と,ポート番号の受信の順序との組み合わせであってもよい。
また,上記通信システムにおいて,サーバが,手順定義テーブルに定められているアクセスの手順を,所定のタイミングで更新するアクセス手順更新部をさらに備えていてもよい。かかる構成によれば,アクセス手順が更新されるため,一度アクセス手順が漏洩した場合であっても,更新後においては,漏洩したアクセス手順でのアクセスは無効となる。
上記通信システムは,アクセスの手順を所定のタイミングで生成し,生成したアクセスの手順をアクセス手順記憶部に保存しているアクセス手順生成サーバを備えてもよく,その場合,サーバのアクセス手順更新部は,所定のタイミングでアクセス手順生成サーバからアクセスの手順を取得し,取得したアクセスの手順により手順定義テーブルを更新するようにしてもよい。
上記課題を解決するために,本発明の別の観点によれば,1以上のアプリケーションプログラムを備え,アプリケーションプログラムとクライアントとのTCP/IPプロトコルによる通信を制御するサーバが提供される。本サーバは,アプリケーションプログラムへのアクセスの手順を定めている手順定義テーブルと;手順定義テーブルに定められているアクセスの手順に基づいて,アプリケーションプログラムとクライアントとの通信を許可するか否かを判断する通信可否判断部と;通信可否判断部により通信を許可された場合に,クライアントに指定されたアプリケーションプログラムにクライアントとの通信を開始させる通信開始部と;を備える。
上記課題を解決するために,本発明の別の観点によれば,コンピュータに上記のサーバとして機能させるコンピュータプログラムが提供される。コンピュータプログラムは,コンピュータが備える記憶装置に格納され,コンピュータが備えるCPUに読み込まれて実行されることにより,そのコンピュータを上記のサーバとして機能させる。また,コンピュータプログラムが記録された,コンピュータで読み取り可能な記録媒体も提供される。記録媒体は,例えば,磁気ディスク,光ディスクなどである。
上記課題を解決するために,本発明の別の観点によれば,上記いずれかの通信システムにより実行される通信方法が提供される。
以上説明したように本発明によれば,TCP/IPプロトコルによるサーバ・クライアント間の通信におけるセキュリティを向上させ,かつ,不特定多数のコンピュータに適用することの可能な,新規かつ改良された通信システム,および通信方法を提供することができる。

以下に添付図面を参照しながら,本発明の好適な実施の形態について詳細に説明する。なお,本明細書及び図面において,実質的に同一の機能構成を有する構成要素については,同一の符号を付することにより重複説明を省略する。
(第1実施形態)
まず,図1に基づいて,第1実施形態にかかる通信システムの概要について説明する。本実施形態にかかる通信システム100は,1以上のアプリケーションプログラム(以後,アプリケーションとも称する。)を備えるサーバ104と,サーバ104が備えるアプリケーションとの間でTCP/IPプロトコルにより通信を行うクライアント102を含んで構成される。クライアント102は複数であってもよい。
クライアント102およびサーバ104は,通信機能を備えるコンピュータである。サーバ104は,クライアント102からの要求に応じて,サーバ104が有するアプリケーションを起動し,そのアプリケーションとクライアント102との間で通信をさせて,クライアント102が求めるサービスを提供する。サーバ104のアプリケーションとクライアント102とが通信を行う際には,サーバ104がアプリケーションを識別できるように,各アプリケーションに固有のポート番号が割り当てられる。クライアント102は,このポート番号を用いてサーバ104内の特定のアプリケーションと通信を行うことができる。
従来は,サーバとクライアントは,ウェルノウンポート番号と称される,アプリケーション毎に固定の既知のポート番号により通信を行っていた。本実施形態では,クライアント102が従来のようにウェルノウンポート番号を指定してサーバ104にアクセスしても,サーバ104はアプリケーションとの通信を開始させない。本実施形態では,サーバ104が各アプリケーションに動的にポート番号を付与し,そのポート番号を用いてサーバ・クライアント間で通信を行うことにより,第三者にポート番号を知られることを防止して,通信のセキュリティを向上させている。以下に,通信システム100について詳細に説明する。
まず,図1に基づいて,クライアント102とサーバ104の機能構成について説明する。クライアント102は,入力部110,クライアント送信部112,およびクライアント受信部114を主に備える。サーバ104は,サーバ受信部120,サーバ送信部122,サーバ側ポート番号付与部124,および通信情報記憶部128を主に備える。以下では,クライアント102とサーバ104の各機能について,データの流れに沿って説明する。
クライアント102の入力部110は,クライアント102が備えるマウスやキーボード等の入力手段などを介して,利用したいサービスの識別子を入力する。サービスの識別子は,サーバ104のアプリケーションを一意に特定する識別子と対応しており,以後,プログラム識別子と称する。入力部110は,入力したプログラム識別子をクライアント送信部112に提供する。
クライアント送信部112は,通信相手であるサーバ104に対し,利用したいサービスについて問い合わせる。詳細には,クライアント送信部112は,サービスの問い合わせを行うプロトコルにより,入力部110から取得したプログラム識別子によって特定されるサービスの問い合わせを行う。サービスの問い合わせを行うプロトコルとしては,例えば,ICMPを利用することができる。その場合,クライアント送信部112は,入力部110から取得したプログラム識別子を,ICMPによりサーバ104に送信する。
サーバ受信部120は,クライアント102から,1以上のアプリケーションプログラムのいずれかを一意に特定するプログラム識別子を受信する。詳細には,サーバ受信部120は,クライアント102から,ICMPにより送信されるプログラム識別子を受信する。サーバ受信部120は,受信したプログラム識別子をサーバ側ポート番号付与部124に提供する。
サーバ側ポート番号付与部124は,サーバ受信部120から取得したプログラム識別子により特定されるアプリケーションに,ポート番号を動的に付与する。サーバ側ポート番号付与部124による動的なポート番号の付与方法は,例えば,使用可能な空きポート番号を小さい番号から順に付与する方法,使用可能な空きポート番号をランダムに付与する方法,付与時の日時などから所定の計算式により算出したポート番号を付与する方法などが考えられる。なお,ポート番号を動的に決定する方法は,上記には限られず,様々な公知の方法を用いることができる。サーバ側ポート番号付与部124は,アプリケーションに付与したポート番号と,そのアプリケーションのプログラム識別子を送信したクライアント102を一意に特定する識別子を関連づけて,通信情報記憶部128に格納する。また,サーバ側ポート番号付与部124は,付与したポート番号をサーバ送信部122に提供する。
通信情報記憶部128は,RAMやハードディスク等のメモリを含んで構成され,クライアント102の識別子と,サーバ104内のアプリケーションに付与されたポート番号とを関連づけて記憶する。図2に,通信情報記憶部128に記憶される情報の一例を示した。図2に示すように,通信情報記憶部128には,ID1280,クライアント識別子1282,およびサーバ側ポート番号1284が関連づけて記憶されている。
ID1280は,クライアント識別子とサーバ側ポート番号との組み合わせに各々付与される番号である。クライアント識別子1282は,クライアント102を一意に特定する識別子であり,例えば,クライアント102のIPアドレスとすることができる。サーバ側ポート番号1284は,サーバ104内のアプリケーションに付与されたポート番号である。詳細には,同一のIDにより関連づけられているクライアント識別子1282によって特定されるクライアント102と通信を行うアプリケーションに割り当てられたポート番号である。
サーバ104は,クライアント102から,そのクライアント102の通信相手であるアプリケーションのポート番号を含むデータを受信すると,通信情報記憶部128を参照し,データの送信元であるクライアント102のIPアドレスと,受信したデータに含まれるポート番号とが通信情報記憶部128において関連づけられている場合に,クライアント102と,ポート番号により特定されるアプリケーションとの通信を取り次ぐことができる。なお,通信情報記憶部128には,サーバ側ポート番号により特定されるアプリケーションの識別子がさらに関連づけられて記憶されていてもよい。
図1に戻る。サーバ送信部122は,サーバ側ポート番号付与部124から取得したポート番号を,クライアント102に送信する。詳細には,サーバ送信部122は,クライアント102からのサービスの問い合わせに対する応答として,ポート番号をクライアント102に送信する。例えば,サーバ送信部122は,ポート番号を,ICMPの応答によりクライアント102に送信する。
クライアント受信部114は,サーバ104からポート番号を受信する。その後,クライアント102は,クライアント受信部114が受信したポート番号を用いてサーバ104にアクセスすることにより,サーバ104においてそのポート番号が付与されたアプリケーションと通信を行うことができる。
上記構成の通信システム100により実行される通信方法について,図3を参照して説明する。
図3に示すように,まず,クライアント102が,サーバ104に対して,利用したいサービスの問い合わせを行う(S100)。詳細には,クライアント102が,ICMP等の,サービスの問い合わせを行うプロトコルで,利用したいサービスの識別子をサーバ104に送信する。サーバ104は,問い合わせを受けて,該当サービスをサーバ104が提供していれば,そのサービスに対応するアプリケーションにポート番号を動的に割り当てる(S102)。詳細には,サーバ104は,クライアント102から受信したデータに含まれるプログラム識別子により特定されるアプリケーションをサーバ104が有していれば,そのアプリケーションにポート番号を動的に割り当てる。続いて,サーバ104は,アプリケーションに割り当てたポート番号と,サービスの問い合わせ元であるクライアント102の識別子とを関連づけて,通信情報記憶部128に格納する(S104)。そして,サーバ104は,S102で割り当てたポート番号を,クライアント102に送信する(S106)。
クライアント102は,ポート番号を受信後,受信したポート番号を用いて,サーバ104に接続を要求する(S108)。サーバ104は,要求を受けて,プロトコル,アプリケーション毎の接続シーケンスを実行する(S110)。詳細には,サーバ104は,通信情報記憶部128に基づいて,クライアント102から受信したデータに含まれるポート番号により識別されるアプリケーションを起動する。その後,起動したアプリケーションが,クライアント102との間で通信接続を行い,通信を実行する。
上記構成によれば,サーバ104は,クライアント102からサービスの問い合わせを受けて,そのサービスに応じたアプリケーションに動的にポート番号を割り当てる。そしてサーバ104は,問い合わせに対する応答として,アプリケーションに割り当てたポート番号をクライアント102に送信する。そのポート番号を用いることにより,クライアント102は,サーバ104内の所望のアプリケーションと通信を行うことができる。このように,ポート番号がサーバ104によって動的に割り当てられるため,ポート番号を第三者に知られることを防止できる。
また,ポートスキャンに関しては,従来は全ポートに対してパケットを送信し,各ポートの反応を見るという一括処理が可能であったが,上記構成では,逐一サービスを指定して確認するという処理が必要となる。そのため,サーバ104は,同じクライアント102からの同時アクセス数を制限することが容易であり,ポートスキャンに要する時間を引き延ばすことができる。また,一般的に,大量のサービスを順番に要求するクライアントは正常な動作ではないといえることから,容易に不正なクライアントを発見できるという利点もある。
また,IPアドレススイープに関しては,個々のサーバ104にとっては正常なアクセスであるが,ISPやIDSなど,サーバ104の上位装置では,同じ送信元からの大量のICMPトラフィックが観測できるため,不正に気づきやすいという利点がある。
(変形例1)
本実施形態において,サーバ104がクライアント側のポート番号も指定することにより,さらにセキュリティを向上させることができる。その場合,図1に示すように,サーバ104に,クライアント側ポート番号指定部126が備えられる。クライアント側ポート番号指定部126は,サーバ側ポート番号付与部124から,クライアント識別子と,サーバ側ポート番号付与部がアプリケーションに付与したサーバ側のポート番号とを取得する。そしてクライアント側ポート番号指定部126は,クライアント識別子により特定されるクライアント102と,サーバ側ポート番号により特定されるアプリケーションとが通信を行う場合に,クライアント102に使用させるクライアント102側のポート番号を指定する。
クライアント側ポート番号指定部126は,クライアント識別子,サーバ側のポート番号,および指定したクライアント側のポート番号を関連づけて,通信情報記憶部128に格納する。また,クライアント側ポート番号指定部126は,指定したクライアント側のポート番号をサーバ送信部122に提供する。サーバ送信部122は,クライアント側ポート番号指定部126から取得したクライアント側のポート番号と,サーバ側ポート番号不要部124から取得したサーバ側のポート番号とを,クライアント102に送信する。
通信情報記憶部128には,図2に示すように,上述のデータに加えて,クライアント側ポート番号1286が記憶される。クライアント側ポート番号1286は,サーバ側ポート番号1284により特定されるサーバ104内のアプリケーションが,クライアント識別子1282により識別されるクライアントと通信を行う場合の,クライアント102により使用されるクライアント側のポート番号である。なお,サーバ104は,クライアント102のポート番号を「Any」と指定して,いずれのポート番号からの通信でも受け付けるようにすることもできる。
サーバ104は,クライアント102から,そのクライアント102の通信相手であるアプリケーションのポート番号を含むデータを受信すると,通信情報記憶部128を参照し,データの送信元であるクライアント102のIPアドレスと,クライアント102が使用しているクライアント側のポート番号と,受信したデータに含まれるサーバ側のポート番号とが通信情報記憶部128において関連づけられている場合に,クライアント102と,ポート番号により特定されるアプリケーションとの通信を取り次ぐことができる。
サーバ104がクライアント側のポート番号も指定する場合の,通信システム100における通信方法を図4を参照して説明する。
図4に示すように,まず,クライアント102が,サーバ104に対して,利用したいサービスの問い合わせを行う(S200)。サーバ104は,問い合わせを受けて,該当サービスをサーバ104が提供していれば,そのサービスに対応するアプリケーションにポート番号を動的に割り当てる(S202)。また,サーバ104は,クライアント側のポート番号を指定する(S204)。続いて,サーバ104は,アプリケーションに割り当てたポート番号と,サービスの問い合わせ元であるクライアント102の識別子と,指定したクライアント側のポート番号とを関連づけて,通信情報記憶部128に格納する(S206)。そして,サーバ104は,S202で割り当てたサーバ側のポート番号と,S204で指定したクライアント側のポート番号とを,クライアント102に送信する(S208)。
クライアント102は,サーバ側のポート番号とクライアント側のポート番号を受信後,受信した2つのポート番号を用いて,サーバ104に接続を要求する(S210)。サーバ104は,要求を受けて,プロトコル,アプリケーション毎の接続シーケンスを実行する(S212)。
上記構成によれば,サーバ104は,サーバ104内のアプリケーションと通信を行うクライアント102のポート番号も指定できる。そのため,サーバ104は,同一クライアント102からのアプリケーションへの接続要求であっても,指定したクライアント側のポート番号を用いている場合のみ,クライアント102とアプリケーションとの通信接続を許可することができ,サーバ・クライアント間の通信におけるセキュリティをより向上させることができる。
(第2実施形態)
次に,第2実施形態にかかる通信システム200について説明する。まず,図5に基づいて,本実施形態にかかる通信システムの概要について説明する。本実施形態にかかる通信システム200は,1以上のアプリケーションを備えるサーバ204と,サーバ204が備えるアプリケーションとの間でTCP/IPプロトコルにより通信を行うクライアント202を含んで構成される。クライアント202は複数であってもよい。
クライアント202およびサーバ204は,通信機能を備えるコンピュータである。サーバ204は,クライアント202からの要求に応じて,サーバ204が有するアプリケーションを起動し,そのアプリケーションとクライアント202との間で通信をさせて,クライアント202が求めるサービスを提供する。サーバ204のアプリケーションとクライアント202とが通信を行う際には,サーバ204がアプリケーションを識別できるように,各アプリケーションに固有のポート番号が割り当てられる。クライアント202は,このポート番号を用いてサーバ204内の特定のアプリケーションと通信を行うことができる。
本実施形態でも,第1実施形態と同様に,クライアント202が従来のようにウェルノウンポート番号を指定してサーバ204にアクセスしても,サーバ204はアプリケーションとの通信を開始させない。第1実施形態では,サーバがクライアントからサービスの問い合わせを受けて,そのサービスに対応するアプリケーションに動的にポート番号を付与し,そのポート番号を用いてサーバ・クライアント間での通信を行った。本実施形態では,サーバ204が,サーバ204内のアプリケーションとの通信を許可するか否かを,予め定められた手順に従ってクライアント202がサーバ204にアクセスしたか否かにより判断する。クライアント202が,予め定められた手順に従ってサーバ204にアクセスした場合にのみ,クライアント202にサーバ204内のアプリケーションとの通信を可能にすることにより,第三者によるサーバ204内のアプリケーションへの不正なアクセスを防止し,通信のセキュリティを向上させている。以下に,通信システム200について詳細に説明する。
図5に基づいて,クライアント202とサーバ204の機能構成について説明する。クライアント202は,入力部210,クライアント送信部212,およびクライアント手順定義テーブル記憶部216を主に備える。サーバ204は,サーバ受信部220,通信可否判断部230,サーバ定義手順テーブル記憶部232,および通信開始部234を主に備える。以下では,クライアント202とサーバ204の各機能について,データの流れに沿って説明する。
クライアント202の入力部210は,クライアント202が備えるマウスやキーボード等の入力手段などを介して,利用したいサービスの識別子を入力する。サービスの識別子は,サーバ204のアプリケーションを一意に特定する識別子と対応しており,以後,プログラム識別子と称する。入力部210は,入力したプログラム識別子をクライアント送信部212に提供する。
クライアント送信部212は,利用したいサービスに応じて,予め定められている手順でサーバ204にアクセスを行う。詳細には,クライアント送信部212は,クライアント手順定義テーブル記憶部216に記憶されているアクセスの手順を参照して,アプリケーションごとに予め定められているアクセスの手順に従って,サーバ204にアクセスする。クライアント手順定義テーブル記憶部216には,サーバ204内のアプリケーション毎にアクセスの手順を定めた手順定義テーブルが記憶されている。クライアント手順定義テーブル記憶部216に記憶される手順定義テーブルは,サーバ204のサーバ手順定義テーブル記憶部232に記憶される手順定義テーブルと同一,または一部である。ここで,図6を参照して,手順定義テーブルについて説明する。
図6に示すように,手順定義テーブルには,アプリケーション2320と,アクセス手順2322が関連づけられている。アプリケーション2320には,サーバ204が保有する,またはサーバ204が保有可能なアプリケーションの識別子であるプログラム識別子が格納される。アクセス手順2322には,プログラム識別子により特定されるアプリケーションとの通信接続がサーバ204により許可されるための,サーバ204へのアクセスの手順が格納されている。本実施形態では,アクセスの手順を,接続要求の接続先と,その順番とする。詳細には,プロトコルとポート番号の種類と,その順番とする。
具体的には,図6の例によれば,クライアント202がサーバ204内のhttpサーバアプリケーションと通信を行うためには,クライアント202は,まずTCPでポート番号80を指定してサーバ204に接続要求をし,次にTCPでポート番号80を指定してサーバ204に接続要求をし,次に,TCPでポート番号80を指定してサーバ204に接続要求をする。つまり,クライアント202がサーバ204内のhttpサーバアプリケーションと通信を行うためのアクセス手順は,TCPでポート番号80を指定した接続要求を連続して3回行うこととなる。図6に示すように,FTP,TELNET等の他のアプリケーションにも,各アプリケーションに固有のアクセス手順が定められている。
図5に戻り,クライアント送信部212の説明を続ける。クライアント送信部212は,入力部210から取得したプログラム識別子を,クライアント手順定義テーブル記憶部216から検索し,該当するプログラム識別子に関連づけられているアクセス手順を参照する。そして,そのアクセス手順に従って,サーバ204に接続要求を行い,アクセスする。
サーバ受信部220は,クライアント202からのアクセスを受け付ける。詳細には,サーバ受信部220は,クライアント202からの接続要求を受信して,受信した接続要求を,受信した順序に従って通信可否判断部230に提供する。
通信可否判断部230は,手順定義テーブルに定められているアクセスの手順に基づいて,クライアント202がアクセスの手順に従ってサーバ204にアクセスした場合に,そのクライアント202とアプリケーションとの通信を許可するよう,アプリケーションとクライアント202との通信を許可するか否かを判断する。詳細には,通信可否判断部230は,サーバ受信部220が取得した接続要求の種類とその順番を,サーバ手順定義テーブル記憶部232に記憶される手順定義テーブルから検索する。該当するアクセス手順が手順定義テーブルに定められていた場合には,サーバ204は,そのアクセス手順に関連づけられているプログラム識別子により特定されるアプリケーションと,クライアント202との通信を許可し,そのアプリケーションのプログラム識別子を通信開始部234に通知する。一方,該当するアクセス手順が手順定義テーブルに定められていない場合には,サーバ204は,クライアント202がサーバ204内のいずれのアプリケーションとも通信を行うことを許可せず,サーバ204はクライアント202からの接続要求に対する応答を行わない。または,サーバ204は,通信不許可の通知をクライアント202に対して行うようにしてもよい。
通信開始部234は,通信可否判断部230により通信を許可された場合に,クライアント202に指定されたアプリケーションにクライアント202との通信を開始させる。詳細には,通信開始部234は,通信可否判断部230からプログラム識別子を取得し,そのプログラム識別子により特定されるアプリケーションを起動させる。そして,通信開始部234は,そのアプリケーションのウェルノウンポートを開いて,ウェルノウンポートを介したアプリケーションとクライアント202との通信を開始させる。以後,クライアント202は,ウェルノウンポートを介して,サーバ204内の所望のアプリケーションと通信を行い,サービスの提供を受けることができる。
上記構成による通信システム200により実行される通信方法を,図7を参照して説明する。まず,クライアント202が,利用したいサービスのアクセス手順を手順定義テーブルから参照する(S300)。次に,クライアント202は,参照した手順に従って,サーバ204にアクセスする(S302)。
サーバ204は,クライアント202からのアクセスを受けると,手順定義テーブルに基づいて,クライアント202からのアクセスの手順が,予め定められた手順であるかを照合し,通信を許可するか否かを判断する(S304)。サーバ204は,通信を許可する場合には,クライアント202から要求されたアプリケーションのウェルノウンポートを開いて,クライアント202に対して応答を行う(S306)。
上記構成によれば,サーバ204は,アプリケーションごとに予め定められた手順によりクライアント202からアクセスされた場合にのみ,クライアント202とアプリケーションとの通信を許可する。そのため,サーバ204内のアプリケーションとクライアント202間の通信にアプリケーションのウェルノウンポートを使用する場合でも,アクセス手順を知っているクライアント202しかアプリケーションにアクセスすることができない。そのため,サーバ204内のアプリケーションへの不正なアクセスを防止し,セキュリティを向上させることができる。また,アプリケーションごとに異なるアクセスの手順を定めることによって,1つのアクセス手順が漏洩した場合であっても,他のアプリケーションへの不正なアクセスを防止することができる。
また,ポートスキャンやIPアドレススイープに関しては,上記構成では,第三者がアクセスの手順を知っている場合であっても,サーバ204が提供しているサービス(サーバ204が有しているアプリケーション)の一覧を得るためには,各サービスについてアクセスの手順を実行してみなくてはならず,非常に多くの処理が必要となる。従って,スクリプト化し難く,また,管理者にポートスキャン等を気づかれやすいため,第三者によりポートスキャンやIPアドレススイープが容易に行われることを防止できるという利点がある。
また,VPNのような暗号化通信を行うアプリケーションを考えた場合,独自の仕様で接続要求を実行させることができ,VPN通信を行っているサーバかどうかを外部からは分からないようにすることができるという利点がある。なお,VPNサービスへの接続には,従来どおりの認証方式が利用可能であり,セキュリティがさらに向上する。
(変形例1)
本実施形態において,サーバ204は,上記のようにアプリケーションのウェルノウンポートを用いるのではなく,第1実施形態のように動的にポート番号をアプリケーションに付与するようにしてもよい。また,サーバ204は,クライアント側のポート番号を指定するようにしてもよい。その場合,図5に示したように,サーバ204に,サーバ側ポート番号付与部224,クライアント側ポート番号指定部226,通信情報記憶部228,およびサーバ送信部222が備えられ,クライアント202にクライアント受信部214が備えられる。サーバ側ポート番号付与部224,クライアント側ポート番号指定部226,通信情報記憶部228,およびサーバ送信部222,およびクライアント受信部214は,第1実施形態にかかるサーバ側ポート番号付与部124,クライアント側ポート番号指定部126,通信情報記憶部128,およびサーバ送信部122,およびクライアント受信部114と同様の機能を有するため,説明を省略する。
サーバ204がサーバ側のポート番号を動的に付与する場合の通信方法を図8を参照して説明する。まず,クライアント202が,利用したいサービスのアクセス手順を手順定義テーブルから参照する(S400)。次に,クライアント202は,参照した手順に従って,サーバ204にアクセスする(S402)。
サーバ204は,クライアント202からのアクセスを受けると,手順定義テーブルに基づいて,クライアント202からのアクセスの手順が,予め定められた手順であるかを照合し,通信を許可するか否かを判断する(S404)。サーバ204は,通信を許可する場合には,要求されたアプリケーションに動的にポート番号を割り当て(S406),クライアント202の識別子とポート番号とを関連づけて通信情報記憶部228に記憶する(S408)。次に,サーバ204は,S406で割り当てたポート番号をクライアント202に送信する(S410)。
クライアント202は,ポート番号を受信後,受信したポート番号を用いて,サーバ204に接続を要求する(S412)。サーバ204は,要求を受けて,プロトコル,アプリケーション毎の接続シーケンスを実行する(S414)。
上記通信方法によるサーバ204・クライアント202間での具体的なデータの流れを図9に示した。図9では,クライアント202が,図6に示した手順定義テーブルに基づいて,サーバ204内のftpサーバアプリケーションとの通信接続をサーバ204に要求する場合の,サーバ204・クライアント202間のデータの流れを示している。
クライアント202は,アクセスの手順に従って,まず,ICMPのechoコマンドをサーバ204に送信する(S430)。次に,クライアント202は,TCPでポート番号80を指定してサーバ204に接続要求を行う(S432)。次に,クライアント202は,UDPでポート番号999を指定してサーバ204に接続要求を行う(S434)。次に,クライアント202は,TCPでポート番号2を指定してサーバ204に接続要求を行う(S436)。
サーバ204は,クライアント202がftpサーバアプリケーションへの予め定められた手順によりアクセスを行ったため,通信を許可し,ftpアプリケーションにポート番号nを動的に割り当てる(S438)。
サーバ204は,S438で割り当てたポート番号nをクライアント202に送信する(S440)。クライアント202は,受信したポート番号nを指定して接続要求を行い(S442),クライアント202とサーバ204内のftpアプリケーションとの間の通信接続が確立する(S444)。
上記構成によれば,ポート番号をサーバ204が動的に決定するため,第三者にポート番号を知られることを防止でき,セキュリティをさらに向上させることができる。
(変形例2)
上記第2実施形態で,アクセス手順を,アプリケーションの利用態様ごとに設定するようにしてもよい。詳細には,例えば,同じアプリケーションへのアクセスでも,クライアント202とアプリケーション間で実施する認証方式ごとに,異なるアクセス手順を手順定義テーブルに設定してもよい。また,例えば,同じアプリケーションへのアクセスでも,アプリケーションが実行する処理の内容ごとに,異なるアクセス手順を手順定義テーブルに設定してもよい。
本変形例における手順定義テーブルの一例を図10に示した。図10に示すように,手順定義テーブルには,アプリケーション2320,アクセス手順2322,および利用態様2324が関連づけられている。アプリケーション2320およびアクセス手順2322は図6と同様である。利用態様2324には,アクセス手順2322に格納されている手順によりクライアント202がサーバ204にアクセスした場合に,該当するアプリケーションをクライアント202に利用させる際の利用態様が格納されている。図10に示すように,本変形例では,1つのアプリケーションに対して複数のアクセス手順が定められている。利用態様として,認証方式の違いや,アプリケーションに実行させる処理の内容,例えば,クライアント202がアプリケーションを介して接続できるネットワークの種類などを挙げることができる。
具体的には例えば,同じsshサーバアプリケーションに対してクライアント202が通信接続を要求する場合であっても,sshとクライアント202間でパスワード認証を行う場合には,sshとクライアント202間で証明書認証を行う場合よりも,長くて複雑な手順を定めることができる。このように,認証方式によりアクセス手順を変えれば,認証方式の安全性を補うことができる。
また,同じsquidサーバプリケーションに対してクライアント202が通信接続を要求する場合であっても,squidが,クライアント202によるインターネットへのアクセスとイントラネットへのアクセスとの双方を中継する場合には,squidがクライアント202によるインターネットへのアクセスのみを中継する場合よりも,長くて複雑な手順を定めることができる。
本変形例における通信方法を,図11を参照して説明する。まず,クライアント202は,利用したいサービスと,その利用態様に応じて,アクセス手順を手順定義テーブルから参照する(S500)。続いて,クライアント202は,参照したアクセスの手順に従って,サーバ204にアクセスする(S502)。
サーバ204は,クライアント202からのアクセスを受けると,手順定義テーブルに基づいて,クライアント202からのアクセスの手順が,予め定められた手順であるかを照合し,通信を許可するか否かを判断する(S504)。サーバ204は,クライアントからのアクセスの手順によって,通信の可否とともに,通信を要求されているアプリケーションとその利用態様を認識する(S506)。そして,サーバ204は,通信を許可する場合には,クライアント202から要求されたアプリケーションのウェルノウンポートを開いて,クライアント202に対して応答を行う(S508)。
上記通信方法によるサーバ204・クライアント202間での具体的なデータの流れを図12に示した。図12では,クライアント202が,図10に示した手順定義テーブルに基づいて,サーバ204内のsquidサーバアプリケーションと通信接続し,かつ,そのsquidサーバアプリケーションに,インターネットへのアクセス中継を要望する場合の,サーバ204・クライアント202間のデータの流れを示している。
クライアント202は,アクセスの手順に従って,まずUDPでポート番号55を指定してサーバ204に接続を要求する(S530)。次に,クライアント202は,TCPでポート番号880を指定してサーバ204に接続を要求する(S532)。次に,クライアント202は,ICMPをサーバ204に送信する(S534)。次に,クライアント202は,TCPでポート番号3128を指定してサーバ204に接続を要求する(S536)。
サーバ204は,クライアント202がsquidサーバアプリケーションへの予め定められた手順によりアクセスを行ったため,通信を許可し,かつ,アクセスの手順によってクライアント202から要求されているsquidの利用態様を認識する。
サーバ204は,squidサーバアプリケーションのウェルノウンポートを開いて,クライアント202に通信OKの応答を送信し(S540),クライアント202とサーバ204内のsquidサーバアプリケーションとの間の通信接続が確立する(S542)。以後,クライアント202は,インターネットにアクセス可能なsquidサーバアプリケーションを利用できる状態となり,クライアント202は,サーバ204内のsquidサーバアプリケーションによる中継を経て,インターネットにアクセスすることができる。この場合,サーバ204内のsquidサーバアプリケーションは,クライアント202によるインターネットへのアクセスのみを中継し,イントラネットへのアクセスの中継は行わない。
上記構成によれば,利用態様ごとに異なるアクセス手順を設定することで,サーバ204はより細かくアクセス制限を行うことができ,セキュリティをさらに向上させることができる。なお,本変形例において,サーバ204がアプリケーションに動的にポート番号を付与するようにしてもよい。
(変形例3)
上記実施形態では,アプリケーションごとに異なるアクセス手順を定めたが,全アプリケーションに共通のアクセス手順を定めるようにしてもよい。その場合,クライアント202は,まず,定められた手順に従ってサーバ204にアクセスし,サーバ204がそのクライアント202との通信の可否を判断する。その後,通信を許可する場合に,サーバ204がクライアント202に対して利用したいアプリケーションを問い合わせ,その問い合わせに応じてクライアント202がアプリケーションの識別子をサーバ204に送信するようにしてもよい。
本変形例による通信方法を,図13を参照して説明する。まず,クライアント202が,全サービスに共通のアクセス手順を手順定義テーブルから参照する(S600)。クライアント202は,参照したアクセス手順に従って,サーバ204にアクセスする(S602)。サーバ204は,クライアント202からのアクセスを受けて,手順定義テーブルに基づき,そのクライアント202との通信を許可するか否かを判断する(S604)。通信を許可する場合には,サーバ204は,クライアント202に,利用したいサービスを問い合わせる(S606)。なお,通信を許可しない場合には,サーバ204は応答を行わない。
クライアント202は,サーバ204からの問い合わせを受けて,利用したいサービスの識別子をサーバ204に送信する(S608)。サーバ204は,受信した識別子により特定されるアプリケーションに,動的にポート番号を割り当て(S610),クライアント202の識別子とポート番号とを関連づけて通信情報記憶部228に記憶する(S612)。次に,サーバ204は,S610で割り当てたポート番号をクライアント202に送信する(S614)。
クライアント202は,ポート番号を受信後,受信したポート番号を用いて,サーバ204に接続を要求する(S616)。サーバ204は,要求を受けて,プロトコル,アプリケーション毎の接続シーケンスを実行する(S618)。
上記通信方法によるサーバ204・クライアント202間での具体的なデータの流れを図14に示した。図14は,クライアント202が,サーバ204内のsquidサーバアプリケーションとの接続を要求する場合の,サーバ204とクライアント202間でのデータの流れを示している。
クライアント202は,全サービスに共通のアクセスの手順に従って,まずICMPのechoをサーバ204に送信する(S630)。次に,クライアント202は,TCPでポート番号80を指定してサーバ204に接続を要求する(S632)。
サーバ204は,予め定められた手順でクライアント202からアクセスされたため,そのクライアント202との通信を許可し,サービスの問い合わせを行う(S634)。クライアント202は,問い合わせに応じて,利用したいサービスの識別子(ここでは,squidサーバアプリケーションのウェルノウンポートとする)をサーバ204に送信する(S636)。
サーバ204は,squidサーバアプリケーションに動的にポート番号nを割り当て(S638),割り当てたポート番号nをクライアント202に送信する(S640)。クライアント202は,受信したポート番号nを指定して接続要求を行い(S642),クライアント202とサーバ204内のsquidアプリケーションとの間の通信接続が確立する(S644)。
(第3実施形態)
次に,第3実施形態にかかる通信システム300について説明する。本実施形態にかかる通信システム300は,第2実施形態の通信システム200における,アクセス手順を用いたクライアント・サーバ間の通信方法を採用し,そのアクセス手順を所定のタイミングで更新するようにした。アクセス手順を更新することにより,一度,第三者にアクセス手順が漏洩してしまっても,その後アクセス手順を更新して,該第三者によるサーバへの不正なアクセスを防止することができ,セキュリティをさらに向上させることができる。以後,第2実施形態との相違点を中心に説明する。
まず,図15に基づいて,通信システム300の全体構成について説明する。通信システム300は,クライアント302と,サーバ304と,アクセス手順生成サーバ306とを主に備える。
アクセス手順生成サーバ306は,クライアント302とサーバ304との間で使用される,アクセスの手順を生成する。アクセス手順生成サーバ306は,クライアント302およびサーバ304と通信網を介して接続されており,クライアント302やサーバ304からの要求に応じて生成したアクセスの手順を提供する。なお,アクセス手順生成サーバ306は,1日ごと,1週間ごと等の所定の間隔や,毎日0時0分等の所定の時期,または新しいアクセス手順を生成するたびごと等に,クライアント302およびサーバ304に強制的にアクセス手順を送信してもよい。
次に,図15に基づいて,アクセス手順生成サーバ306,クライアント302,およびサーバ304の機能構成について説明する。なお,第2実施形態にかかるクライアント202およびサーバ204と同様の機能を有するものについては,同一の符号を付与しており,説明を省略する。
アクセス手順生成サーバ306は,アクセス手順を生成するアクセス手順生成部340と,生成したアクセス手順を保存するアクセス手順記憶部342を主に備える。アクセス手順生成部340は,所定間隔ごとや,所定の時期等に,アクセス手順を生成し,生成したアクセス手順をアクセス手順記憶部342に格納する。アクセス手順記憶部342は,RAMやハードディスク等のメモリを含んで構成され,アクセス手順を記憶する。なお,アクセス手順記憶部342は,最新のアクセス手順のみを記憶していてもよいし,複数のバージョンのアクセス手順を,そのバージョンが分かるように記憶していてもよい。
クライアント302のクライアント手順更新部318は,所定のタイミングでアクセス手順生成サーバ306にアクセスし,最新のアクセス手順を取得する。クライアント手順更新部318は,取得した最新のアクセス手順により,クライアント手順定義テーブル記憶部216に記憶されている手順定義テーブルを更新する。なお,クライアント手順更新部318は,最新のアクセス手順を手順定義テーブルに追加するようにしてもよい。その場合,クライアント手順定義テーブル記憶部216の手順定義テーブルには,複数のバージョンのアクセス手順が,そのバージョンがわかるように格納されることとなる。
クライアント送信部312は,第2実施形態にかかるクライアント送信部212とほぼ同様の機能を有するが,アクセス手順を手順定義テーブルから参照する前に,クライアントアクセス手順更新部318に最新のアクセス手順を取得させて手順定義テーブルを更新させる点で,クライアント送信部212と相違する。この場合,クライアントアクセス手順更新部318がアクセス手順生成サーバ306からアクセス手順を取得する所定のタイミングは,クライアント送信部312に要求されたタイミングとなる。なお,所定のタイミングは,所定間隔毎,所定時期等,任意に設定可能である。
サーバアクセス手順更新部336は,所定のタイミングでアクセス手順生成サーバ306にアクセスし,最新のアクセス手順を取得する。サーバアクセス手順更新部336は,取得したアクセス手順により,サーバ手順定義テーブル記憶部232に記憶されている手順定義テーブルを更新する。所定のタイミングは,所定間隔ごと,所定時期等,任意に設定可能である。
上記構成の通信システム300における,クライアント302とサーバ304との通信方法を,手順定義テーブルの更新を伴う部分を中心に説明する。図16は,クライアント302とサーバ304とが有する手順定義テーブルのバージョンが同じであった場合の通信方法を示す。図17と図18は,クライアント302がサーバ304にアクセスした際に,クライアント302とサーバ304とが有する手順定義テーブルのバージョンが異なった場合の通信方法を示す。特に,図17は,サーバ304の手順定義テーブルは最新バージョンであるが,クライアント302の手順定義テーブルが更新されておらず旧バージョンであった場合を示す。図18は,クライアント302の手順定義テーブルは最新バージョンであるが,サーバ304の手順定義テーブルが更新されておらず旧バージョンであった場合を示す。
まず,図16を参照して説明する。サーバ304は,定期的にアクセス手順生成サーバ306にアクセス手順を要求する(S700)。アクセス手順生成サーバ306は,サーバ304からの要求に応じて,アクセス手順記憶部342に記憶されている最新のアクセス手順をサーバ304に送信する(S702)。サーバ304は,アクセス手順生成サーバ306からアクセス手順を受信し,受信したアクセス手順により手順定義テーブルを更新する(S704)。
一方,クライアント302は,サーバ304のアプリケーションと通信を行いたい場合,まず利用したいサービスのアクセス手順をアクセス手順生成サーバ306に要求する(S706)。アクセス手順生成サーバ306は,クライアント302からの要求に応じて,アクセス手順記憶部342に記憶されている最新のアクセス手順をクライアント302に送信する(S708)。クライアント302は,アクセス手順生成サーバ306からアクセス手順を受信し,受信したアクセス手順により手順定義テーブルを更新する(S710)。その後,クライアント302は,アクセス手順に従って,サーバ304にアクセスする(S712)。
サーバ304は,手順定義テーブルに基づいて,通信可否を判断する(S714)。サーバ304は,通信を許可する場合には,要求されたアプリケーションのウェルノウンポートを開いて,クライアント302に応答する(S716)。なお,S714以降は,第2実施形態と同様であり,サーバ304は,ウェルノウンポートを開いてクライアント302に応答する以外に,アプリケーションに動的にポート番号を割り当てて,ポート番号をクライアント302に通知するようにしてもよい。
次に,図17を参照して説明する。サーバ304は,定期的にアクセス手順生成サーバ306にアクセス手順を要求する(S730)。アクセス手順生成サーバ306は,サーバ304からの要求に応じて,アクセス手順記憶部342に記憶されている最新のアクセス手順をサーバ304に送信する(S732)。サーバ304は,アクセス手順生成サーバ306からアクセス手順を受信し,受信したアクセス手順により手順定義テーブルを更新する(S734)。
一方,クライアント302は,本例では,予め手順定義テーブルを更新することなく,利用したいサービスのアクセス手順を手順定義テーブルから参照し(S736),参照した手順に従ってサーバ304にアクセスを行う(S738)。サーバ304は,手順定義テーブル714に基づいて,通信可否を判断する(S740)。
本例の場合,S736でクライアント302が参照する手順定義テーブルと,S740でサーバ304が参照する手順定義テーブルとは,バージョンが異なっている。そのため,クライアント302により実行されたアクセス手順は,サーバ304が参照した手順定義テーブルには定められていないため,照合に失敗し,サーバは通信不許可の判断を行う。サーバ304は,通信不許可の通知を行う(S742)。なお,サーバ304は,何も応答を行わなくてもよい。
クライアント302は,通信不許可の通知を受けて,(またはサーバ304からの応答が無いことを認識して),利用したいサービスのアクセス手順をアクセス手順生成サーバ306に要求する(S744)。
アクセス手順生成サーバ306は,クライアント302からの要求に応じて,アクセス手順記憶部342に記憶されている最新のアクセス手順をクライアント302に送信する(S746)。クライアント302は,アクセス手順生成サーバ306からアクセス手順を受信し,受信したアクセス手順により手順定義テーブルを更新する(S748)。その後,クライアント302は,更新されたアクセス手順に従って,再度,サーバ304にアクセスする(S750)。サーバ304は,手順定義テーブルに基づいて,通信可否を判断する(S752)。今回は,S750でクライアント302が参照する手順定義テーブルと,S752でサーバ304が参照する手順定義テーブルとは,バージョンが同じであるため,照合に成功し,サーバ304は通信を許可する。
次に,図18を参照して説明する。クライアント302は,サーバ304のアプリケーションと通信を行いたい場合,まず利用したいサービスのアクセス手順をアクセス手順生成サーバ306に要求する(S770)。アクセス手順生成サーバ306は,クライアント302からの要求に応じて,アクセス手順記憶部342に記憶されている最新のアクセス手順をクライアント302に送信する(S772)。クライアント302は,アクセス手順生成サーバ306からアクセス手順を受信し,受信したアクセス手順を手順定義テーブルに追加する(S774)。その後,クライアント302は,最新のアクセス手順に従って,サーバ304にアクセスする(S776)。サーバ304は,手順定義テーブルに基づいて,通信可否を判断する(S778)。
本例では,サーバ304が手順定義テーブルを更新していないか,定期的に更新してはいても,更新のタイミングがクライアント302によるS774での更新よりも後であるため,S776でクライアント302が参照する手順定義テーブルと,S778でサーバ304が参照する手順定義テーブルとは,バージョンが異なっている。そのため,サーバ304は,アクセス手順の照合に失敗し,通信を不許可と判断する。サーバ304は,通信不許可の通知をクライアント302に行う(S780)。または,サーバ304は,何の応答も返さないようにしてもよい。
クライアント302は,通信不許可の通知を受けて,(またはサーバ304からの応答が無いことを認識して),サーバ304の手順定義テーブルが最新でないことを認識する。そして,クライアント302は,手順定義テーブルに保存されている旧バージョンのアクセス手順を参照し,参照したアクセス手順に従って,再度,サーバ304にアクセスする(S782)。サーバ304は,手順定義テーブルに基づいて,通信可否を判断する(S784)。今回は,同バージョンのアクセス手順によりアクセスされたため,サーバ304は,照合に成功し,通信を許可する(S784)。
本実施形態にかかる通信システム300によれば,サーバ304がサーバ304内のアプリケーションとクライアント302との通信を許可するか否かを判断する基となるアクセス手順が,所定のタイミングで順次更新される。そのため,アクセス手順が第三者に漏洩した場合でも,アクセス手順が更新される所定のタイミング以降は,漏洩したアクセス手順によるサーバ304へのアクセスは無効となる。従って,第三者によるサーバ304内のアプリケーションへの不正なアクセスを防止することができ,セキュリティを向上させることができる。
上記各実施形態および各変形例によれば,既存のTCP/IPとの互換性を保ちつつ,より高いセキュリティを実現することができる。
以上,添付図面を参照しながら本発明の好適な実施形態について説明したが,本発明は係る例に限定されないことは言うまでもない。当業者であれば,特許請求の範囲に記載された範疇内において,各種の変更例または修正例に想到し得ることは明らかであり,それらについても当然に本発明の技術的範囲に属するものと了解される。
本発明の第1の実施形態における通信システムを示すブロック図である。 同実施の形態における通信情報記憶部の記憶内容を示す説明図である。 同実施の形態におけるサーバ・クライアント間の通信方法を示すフローチャートである。 同実施の形態の変形例におけるサーバ・クライアント間の通信方法を示すフローチャートである。 本発明の第2の実施形態における通信システムを示すブロック図である。 同実施の形態における手順定義テーブルを示す説明図である。 同実施の形態におけるサーバ・クライアント間の通信方法を示すフローチャートである。 同実施の形態の変形例1におけるサーバ・クライアント間の通信方法を示すフローチャートである。 同実施の形態の変形例1における通信方法の具体例を示すフローチャートである。 同実施の形態の変形例2における手順定義テーブルを示す説明図である。 同実施の形態の変形例2におけるサーバ・クライアント間の通信方法を示すフローチャートである。 同実施の形態の変形例2における通信方法の具体例を示すフローチャートである。 同実施の形態の変形例3におけるサーバ・クライアント間の通信方法を示すフローチャートである。 同実施の形態の変形例3における通信方法の具体例を示すフローチャートである。 本発明の第3の実施形態における通信システムを示すブロック図である。 同実施の形態におけるサーバ・クライアント間の通信方法を示すフローチャートである。 同実施の形態におけるサーバ・クライアント間の通信方法を示すフローチャートである。 同実施の形態におけるサーバ・クライアント間の通信方法を示すフローチャートである。
符号の説明
100,200,300 通信システム
102,202,302 クライアント
104,204,304 サーバ
306 アクセス手順生成サーバ
112,212,312 クライアント送信部
114,214 クライアント受信部
120,220 サーバ受信部
122,222 サーバ送信部
124,224 サーバ側ポート番号付与部
126,226 クライアント側ポート番号指定部
128,228 通信情報記憶部
216 クライアント手順定義テーブル記憶部
230 通信可否判断部
232 サーバ手順定義テーブル記憶部
234 通信開始部
340 アクセス手順生成部
342 アクセス手順記憶部
318 クライアントアクセス手順更新部
336 サーバアクセス手順更新部

Claims (12)

  1. 1以上のアプリケーションプログラムを備えるサーバと、前記アプリケーションプログラムとの間でTCP/IPプロトコルにより通信を行うクライアントと、を備える通信システムにおいて:
    前記サーバは、
    前記クライアントから、前記1以上のアプリケーションプログラムのいずれかを一意に特定するプログラム識別子を受信するサーバ受信部と;
    前記サーバ受信部により受信された前記プログラム識別子により特定されるアプリケーションプログラムにポート番号を動的に付与し、当該アプリケーションプログラムに付与したポート番号と当該プログラム識別子を送信したクライアントを一意に特定するクライアント識別子とを関連付けて記録するサーバ側ポート番号付与部と;
    前記サーバ側ポート番号付与部により付与された前記ポート番号を、サーバ側ポート番号として、前記クライアントに送信するサーバ送信部と;
    を備え、
    前記クライアントは、
    通信を行いたい前記アプリケーションプログラムの前記プログラム識別子を前記サーバに送信するクライアント送信部と;
    前記サーバから前記サーバ側ポート番号を受信するクライアント受信部と;
    を備え、
    前記クライアントは、前記クライアント送信部によるプログラム識別子の送信に応じて前記サーバから送信され、前記クライアント受信部により受信された前記サーバ側ポート番号を用いて当該プログラム識別子により特定される前記サーバのアプリケーションプログラムと通信を行うことを特徴とする、通信システム。
  2. 前記サーバは、
    前記ポート番号を付与したアプリケーションプログラムが前記クライアントと通信を行う際の前記クライアント側のポート番号を指定するクライアント側ポート番号指定部をさらに備え、
    前記サーバ送信部は、前記クライアント側ポート番号指定部により指定された前記ポート番号を、クライアント側ポート番号として、前記クライアントに送信することを特徴とする、請求項1に記載の通信システム。
  3. 前記サーバは、
    前記アプリケーションプログラムへのアクセスの手順を定めている手順定義テーブルと;
    前記手順定義テーブルに定められている前記アクセスの手順に基づいて、前記アプリケーションプログラムと前記クライアントとの通信を許可するか否かを判断する通信可否判断部と;
    前記通信可否判断部により通信を許可された場合に、前記クライアントに指定されたアプリケーションプログラムに前記クライアントとの通信を開始させる通信開始部と;
    を備えることを特徴とする、請求項1に記載の通信システム。
  4. 前記通信開始部は、前記通信可否判断部により通信を許可された場合に、前記サーバ側ポート番号付与部をして前記クライアントに指定されたアプリケーションプログラムにポート番号を付与せしめ、前記サーバ送信部をして該ポート番号を前記クライアントに送信せしめることを特徴とする、請求項3に記載の通信システム。
  5. 前記通信開始部は、前記通信可否判断部により通信を許可された場合に、前記サーバ受信部をして前記クライアントから前記プログラム識別子を受信せしめ、受信した前記プログラム識別子により特定される前記アプリケーションプログラムを前記クライアントに指定されたアプリケーションプログラムとすることを特徴とする、請求項3または4に記載の通信システム。
  6. 前記手順定義テーブルには、1以上の前記アプリケーションプログラム毎に、相異なるアクセスの手順が定められており、
    前記通信開始部は、前記通信可否判断部により前記アプリケーションとの通信を許可された前記クライアントによって実行された前記アクセスの手順に応じて、前記クライアントに指定された前記アプリケーションを特定することを特徴とする、請求項3または4に記載の通信システム。
  7. 前記手順定義テーブルには、1以上の前記アプリケーションプログラム毎に相異なり、かつ、前記アプリケーションの利用態様毎に相異なるアクセスの手順が定められており、
    前記通信開始部は、前記通信可否判断部により前記アプリケーションとの通信を許可された前記クライアントによって実行された前記アクセスの手順に応じて、前記クライアントに指定された前記アプリケーションおよび前記利用態様を特定することを特徴とする、請求項3または4に記載の通信システム。
  8. 前記利用態様には、前記アプリケーションプログラムにより実行される前記クライアントの認証方式、および、前記クライアントが前記アプリケーションプログラムを介して接続できるネットワークの種類のいずれかまたは双方を含むことを特徴とする、請求項7に記載の通信システム。
  9. 前記アクセスの手順は、前記サーバが前記クライアントから受信するポート番号と、前記ポート番号の受信の順序との組み合わせであることを特徴とする、請求項3〜8のいずれか1項に記載の通信システム。
  10. 前記サーバが、
    前記手順定義テーブルに定められている前記アクセスの手順を、所定のタイミングで更新するアクセス手順更新部をさらに備えることを特徴とする、請求項3〜9のいずれか1項に記載の通信システム。
  11. 前記アクセスの手順を所定のタイミングで生成し、生成した前記アクセスの手順をアクセス手順記憶部に保存しているアクセス手順生成サーバを備え、
    前記サーバの前記アクセス手順更新部は、前記所定のタイミングで前記アクセス手順生成サーバから前記アクセスの手順を取得し、取得した前記アクセスの手順により前記手順定義テーブルを更新することを特徴とする、請求項10に記載の通信システム。
  12. 1以上のアプリケーションプログラムを備えるサーバと、前記アプリケーションプログラムとの間でTCP/IPプロトコルにより通信を行うクライアントとにより実行される通信方法において:
    前記クライアントが、通信を行いたい前記アプリケーションプログラムを一意に識別するプログラム識別子を前記サーバに送信するステップと;
    前記サーバが、前記クライアントから、前記プログラム識別子を受信するステップと;
    前記サーバが、受信した前記プログラム識別子により特定されるアプリケーションプログラムにポート番号を動的に付与し、当該アプリケーションプログラムに付与したポート番号と当該プログラム識別子を送信したクライアントを一意に特定するクライアント識別子とを関連付けて記録するステップと;
    前記サーバが、付与した前記ポート番号を、前記クライアントに送信するステップと;
    前記クライアントが、前記サーバから前記ポート番号を受信するステップと;
    を含み、前記クライアントは、前記クライアント送信部によるプログラム識別子の送信に応じて前記サーバから送信され、当該サーバから受信した前記ポート番号を用いて当該プログラム識別子により特定される前記サーバのアプリケーションプログラムと通信を行うことを特徴とする、通信方法。
JP2006020716A 2006-01-30 2006-01-30 通信システム、および通信方法 Expired - Fee Related JP4274184B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006020716A JP4274184B2 (ja) 2006-01-30 2006-01-30 通信システム、および通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006020716A JP4274184B2 (ja) 2006-01-30 2006-01-30 通信システム、および通信方法

Publications (2)

Publication Number Publication Date
JP2007200209A JP2007200209A (ja) 2007-08-09
JP4274184B2 true JP4274184B2 (ja) 2009-06-03

Family

ID=38454733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006020716A Expired - Fee Related JP4274184B2 (ja) 2006-01-30 2006-01-30 通信システム、および通信方法

Country Status (1)

Country Link
JP (1) JP4274184B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4710947B2 (ja) 2008-09-29 2011-06-29 ブラザー工業株式会社 通信システム及び通信制御プログラム
JP4980335B2 (ja) * 2008-11-28 2012-07-18 日本電信電話株式会社 通信システム、通信装置、通信方法、又はプログラム
JP5018800B2 (ja) * 2009-02-10 2012-09-05 ブラザー工業株式会社 データ受信端末とコンピュータプログラム
JP2010231674A (ja) 2009-03-28 2010-10-14 Brother Ind Ltd サイト情報登録プログラムおよびこのサイト情報登録プログラムを実行するコンピュータ
WO2012001755A1 (ja) 2010-07-02 2012-01-05 株式会社ソニー・コンピュータエンタテインメント 情報処理システム、情報処理装置および情報処理方法
US8886773B2 (en) 2010-08-14 2014-11-11 The Nielsen Company (Us), Llc Systems, methods, and apparatus to monitor mobile internet activity
US8910259B2 (en) 2010-08-14 2014-12-09 The Nielsen Company (Us), Llc Systems, methods, and apparatus to monitor mobile internet activity
JP5659802B2 (ja) * 2011-01-12 2015-01-28 日本電気株式会社 通信端末およびその送受信方法ならびにその端末を含む通信システム
JP5267605B2 (ja) * 2011-03-23 2013-08-21 ブラザー工業株式会社 通信システム及び通信制御プログラム
US9124920B2 (en) 2011-06-29 2015-09-01 The Nielson Company (Us), Llc Methods, apparatus, and articles of manufacture to identify media presentation devices
US8594617B2 (en) * 2011-06-30 2013-11-26 The Nielsen Company (Us), Llc Systems, methods, and apparatus to monitor mobile internet activity
US10356579B2 (en) 2013-03-15 2019-07-16 The Nielsen Company (Us), Llc Methods and apparatus to credit usage of mobile devices
US9301173B2 (en) 2013-03-15 2016-03-29 The Nielsen Company (Us), Llc Methods and apparatus to credit internet usage
JP5833611B2 (ja) * 2013-09-24 2015-12-16 株式会社ソニー・コンピュータエンタテインメント 通信管理装置、端末、通信管理システム、通信管理方法、プログラム及び情報記憶媒体
WO2016021180A1 (ja) * 2014-08-07 2016-02-11 日本電気株式会社 通信端末装置及びその送受信方法、並びにコンピュータ・プログラムが格納された記録媒体
US9762688B2 (en) 2014-10-31 2017-09-12 The Nielsen Company (Us), Llc Methods and apparatus to improve usage crediting in mobile devices
US11423420B2 (en) 2015-02-06 2022-08-23 The Nielsen Company (Us), Llc Methods and apparatus to credit media presentations for online media distributions
WO2017001342A1 (de) 2015-06-30 2017-01-05 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum freischalten externer computersysteme in einer computernetz-infrastruktur, verteiltes rechnernetz mit einer solchen computernetz-infrastruktur sowie computerprogramm-produkt
JP6502901B2 (ja) * 2016-08-09 2019-04-17 日本電信電話株式会社 通信制御システム及び通信制御方法

Also Published As

Publication number Publication date
JP2007200209A (ja) 2007-08-09

Similar Documents

Publication Publication Date Title
JP4274184B2 (ja) 通信システム、および通信方法
US9722966B2 (en) DNS-based determining whether a device is inside a network
JP4708688B2 (ja) コンテンツに対するアクセスを管理する方法及びシステム
JP4553947B2 (ja) 解析装置、解析方法、コンピュータプログラム、及び記録媒体
US7489783B2 (en) Digital certificate management system, digital certificate management apparatus, digital certificate management method, update procedure determination method and program
RU2385488C2 (ru) Протокол разрешения имен для проводного соединения равноправных устройств и используемая в нем структура данных формата сообщения
US7778193B2 (en) Residential network setting method, home gateway apparatus, home gateway program, and recording medium
US7516328B2 (en) Contents transmission/reception scheme with function for limiting recipients
US7526641B2 (en) IPsec communication method, communication control apparatus, and network camera
RU2412480C2 (ru) Система и способ установления того, что сервер и корреспондент имеют согласованную защищенную почту
KR100954370B1 (ko) 소프트웨어 실행 관리 장치 및 그 방법
JPWO2007100045A1 (ja) 通信制御装置、通信制御システム、通信制御方法、および通信制御用プログラム
JP2006302292A (ja) 動的認証方法、動的認証システム、制御プログラム、および、物理キー
US20040030891A1 (en) Information processing system, information processing apparatus and method, recording medium, and program
JP2007004605A (ja) 通信システム、クライアント、サーバおよびプログラム
JP2007143049A (ja) 認証方法および情報処理装置
WO2012083075A2 (en) Determining whether a device is inside a network
JP4127497B2 (ja) ディジタル・サービス・システム
US20020095578A1 (en) System, method, and program for ensuring originality
JP2007193462A (ja) 個人情報を保護した通信セッション確立仲介システムおよび方法
EP1115049A2 (en) Secure data transmission over a client-server network
US20050021469A1 (en) System and method for securing content copyright
JP4068877B2 (ja) ディジタル・コンテンツ・システム
JP2004078280A (ja) リモートアクセス仲介システム及び方法
JP4066719B2 (ja) 位置情報を提供する位置情報サーバとその利用者端末

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090210

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090223

R150 Certificate of patent or registration of utility model

Ref document number: 4274184

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130313

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140313

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees