説明

ネットワークシステムおよびネットワーク接続確立方法

【課題】ネットワーク環境においてクライアントプログラムの正常動作を確保する。
【解決手段】
ネットワーク10において、ネットワーク端末Bはネットワーク端末Aへ参加要求メッセージM1を送信する。ネットワーク端末Aはチェック処理部25をネットワーク端末Bへ送信する。ネットワーク端末Bは受信したチェック処理部25を起動する。起動されたチェック処理部25は端末の情報を収集しネットワーク端末Aへ送信する。端末の情報を受信したネットワーク端末Aはネットワークの参加の許否を判断し結果を送信する。参加許可の結果を受け取った場合、チェック処理部25はネットワーク端末Bのメイン処理部を起動する。起動されたメイン処理部は参加要求メッセージM2を送信する。参加要求メッセージM2を受信したネットワーク端末Aはネットワーク端末Bを自身の信頼された端末リストに加える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク環境におけるクライアントプログラムの正常動作の確保に関する

【背景技術】
【0002】
ネットワークゲームにおいては、ユーザがクライアントプログラムを改造しゲームを有利
に進めるという不正行為が行われてきた。
【0003】
ウイルスチェックソフトやファイアウォールソフトはユーザーがプログラムの正常動作を
確保するためのものであり、前記の場合のようにユーザ側に悪意がある場合にはプログラ
ム供給者がプログラムの正常動作を確保することには使えない。従来は通信を暗号化する
、クライアントプログラムを難読化するなどの方法により対処して来た。しかしユーザー
のPC上で動かす以上クライアントプログラムを解析され改造される可能性が常にあるという欠点があった。
【0004】
このため供給者側がクライアントプログラムの正しい動作を確保することが困難であった

【発明の開示】
【発明が解決しようとする課題】
【0005】
ユーザーのPC上で動かすプログラムの正常動作を確保する事を課題とする。
【課題を解決するための手段】
【0006】
本発明は、チェック処理部をダウンロードし端末のチェックを行いチェック処理部から端
末のメイン処理を起動することを最も主要な特徴とする。
【0007】
本発明のある態様は、ネットワークシステムに関する。このネットワークシステムは、ピ
アツーピアネットワークへの参加を要求する端末Bと、参加を認証する端末Aとを含む。端末Aは端末Bに対して、端末Aによって生成されたことを確認するためのキーCを含むチェック処理部を端末Bへ送信する。端末Bへ送信されたチェック処理部は端末B上で端末の処理が正常動作可能であることを判断する。チェック処理部は判断結果に応じて、キーCをメイン処理部へ渡しメイン処理を起動する。起動されたメイン処理部はキーCと共に接続要求を端末Aへ送信する。接続要求を受け取った端末AはキーCを用いて自信が送信したチェック処理部によってチェックされたことを確認しその結果に応じて端末Bをネットワークへの参加許可をあたえる。
【0008】
本発明の別の態様は、ネットワークシステムに関する。このネットワークシステムは、ピ
アツーピアネットワークへの参加を要求する端末Bと、参加を認証する端末Aとを含む。端末Aは端末Bに対して、端末Aによって生成されたことを確認するためのキーCを含むチェック処理部を端末Bへ送信する。端末Bへ送信されたチェック処理部は端末B上で端末の処理が正常動作可能であるか判断するための情報Dを生成しキーCと共に端末Aへ送信する。情報DおよびキーCを受け取った端末AはキーCを用いて自信が送信したチェック処理部によって情報Dが生成されたことを確認し、また情報Dをもちいて端末Bが正常動作可能であることを判断する。 端末Bが正常動作可能であると判断されたならばネットワーク参加許可メッセージを送信する。ネットワーク参加許可メッセージを受け取ったチェック処理部はメイン処理を起動する。
【0009】
本発明の別の態様は、前記の処理にタイムアウト期間を設けることができる。タイムアウ
ト処理によりチェック処理部を解析する時間を少なくすし不正処理が行われる危険性を少
なくすることができる。
【発明の効果】
【0010】
本発明によるネットワーク接続確立方法によって接続された端末は正常動作中の端末間の
みで通信することにより不正改造された端末からの通信が混じることはなくなる。
【発明を実施するための最良の形態】
【0011】
図1は、本実施形態におけるネットワークシステムの構成を示す。ネットワークシステム10において、第1のネットワーク端末A、第2のネットワーク端末Bは、それぞれネットワーク11に接続される。ネットワーク11は端末間の通信を確立しデータを端末間でデータを送受信する機能を持つ。ネットワーク11はUDP(User Datagram Protocol)やTCP(Transmission Control Protocol)を用いて通信を確立しデータ交換を行うインターネットのようなIPネットワークでもよい。もくしは電話回線や電波通信を利用した独自のネットワークを構成してもよい。
ネットワークシステム10はネットワーク11上でピアツーピア通信をおこなうピアツーピアネットワークシステムでもよい。またはサーバクライアントシステムのような一対多のネットワークシステムでもよい。その際にインターネットがもつIPブロードキャスト機能をもちいてもよい。または前記のいずれかを組み合わせたネットワークシステムでもよい。
【0012】
図2はネットワーク端末Aの構成を示す機能ブロック図である。図3はネットワーク端末Bの構成を示す機能ブロック図である。
ネットワーク端末A、ネットワーク端末Bは、ハードウエア的には、パーソナルコンピュータなどのCPUをはじめとする素子で実施でき、ソフトウエア的にはIPネットワーク通信機能のあるプログラムによって実現される。
したがって、これらの機能ブロックはハードウエア、ソフトウエアの組み合わせによっていろいろな形で実現できる。
【0013】
本システムがネットワークゲームのためのシステムである場合、各ネットワーク端末はそのゲームのプレイヤー端末である。本システムが分散処理システムである場合、各ネットワーク端末はそれぞれに割り当てられた分散処理を実行する端末である。
【0014】
本図ではネットワークへの参加を要求する端末としてネットワーク端末B、それに応答する端末としてネットワーク端末Aを例示するが、3台以上のネットワーク端末がこのピアツーピアネットワークシステム10に含まれてもよい。
【0015】
ネットワーク端末Aは、通信部21、キーC生成部22、キーD生成部23、キー保存部24、チェック処理部25、認証部26、端末リスト27からなる。
【0016】
通信部21はネットワーク11を介してデータの送受信を行う。
【0017】
キーC生成部22はチェック処理部25を一意に識別するためのキーCを生成する。キーCとしてランダムな文字列をもちいてもよい。キーCとしてランダムなバイト列または情報をもちいてもよい。キーCとしてネットワークへの接続要求があった日付の情報を含んでいてもよい。キーCとしてネットワークへの接続要求のあるたびにインクリメントされる連番をもちいてもよい。キーCとして前記の情報のいずれかまたは組み合わせたものをもちいてもよい。
【0018】
キーD生成部23はネットワークへの接続要求を送信した端末を一意に識別するためのキーDを生成する。キーDとしてネットワークへの接続要求を送信した端末のIP情報をもちいてもよい。キーDとしてネットワークへの接続要求を送信した端末のCPU情報もしくはハードウエア情報を組み合わせたものをもちいてもよい。キーDとしてネットワークへの接続要求があった日付の情報を含んでいてもよい。キーDとしてネットワーク端末を識別するための情報をもちいてもよい。キーDとして前記の情報のいずれかまたは組み合わせたものをもちいてもよい。
【0019】
チェック処理部25はハッシュ計算部251、メイン処理起動部252、キーC保存部253、通信部254からなるチェック処理部25はネットワーク11を通して送受信可能である。
ハッシュ計算部251はネットワーク端末の構成部分のうちソフトウエアで構成された部分についてのハッシュ値を計算する。ハッシュ値の計算にはMD5やSHAやその他のハッシュ値計算アルゴリズムをもちいてもよい。
キーC保存部はチェック処理部25を一意に識別するためのキーCを保存する。
通信部254はネットワーク11を介してデータの送受信を行う。
【0020】
ネットワーク端末Bは、メイン処理部30、通信部31からなる。
本システムがピアツーピア通信によるネットワークゲームのためのシステムである場合、メイン処理部30はネットワークゲームの主たる処理を行う部分である。本システムがピアツーピア通信による分散処理システムである場合、メイン処理部30は当該ネットワーク端末に割り当てられた分散処理を実行する部分である。
【0021】
1つの端末にネットワーク端末Aおよびネットワーク端末Bの両方の機能をもたせてもよい。
【0022】
ネットワーク端末Bはネットワーク端末Aに対してネットワークへの参加要求メッセージM1を送信する。
【0023】
参加要求メッセージM1を受け取ったネットワーク端末Aは、キーC生成部22によってチェック処理部25を一意に識別するためのキーCを生成する。キーCとしてネットワークへの参加要求メッセージM1の情報を含んでもよい。キーCとしてネットワーク端末Bの情報を含んでいてもよい。
続いてキーD生成部23によってネットワークへの接続要求を送信した端末すなわちネットワーク端末Bを一意に識別するためのキーDを生成する。続いてキーCおよびキーDを対にしてキー保存部23へ保存する。続いてキーC保存部253へキーCを保存したチェック処理部25をネットワーク端末Bへ送信する。
【0024】
ランダムな要素もしくは暗号による情報もしくは一意に識別する情報を持たせたチェック処理部25をネットワーク接続要求メッセージM1を受け取るたびに生成し、生成したチェック処理部25のハッシュ値をキーCとしてもよい。キーCが必要となる場合にはチェック処理部25のハッシュ値を計算しキーCとする。この場合キーCをキーC保存部253へ組み込む必要がなくなる。
【0025】
チェック処理部25を受信したネットワーク端末Bはチェック処理部25を起動する。
ネットワーク端末Bへ送信されたチェック処理部25はネットワーク端末Bの構成部分のうちソフトウエアで構成された部分についてのハッシュ値Eを計算する。通信部254はキーCと計算したハッシュ値Eを含む端末情報をネットワーク端末Aへ送信する。
この際、チェック処理部25はネットワーク端末Bのハードウエアが正常であるかチェックをおこなってもよい。またチェック処理部25はネットワーク端末Bが正常であるかチェックをおこなってもよい。
【0026】
端末情報を受信したネットワーク端末Aは受信した端末情報からハッシュ値EおよびキーCをとりだす。
続いて認証部26はハッシュ値Eが正常な端末で算出したハッシュ値に等しければ、端末情報を送信した端末は正常動作可能であると判断する。続いて認証部26は端末情報を送信した端末を一意に識別するためのキーD2を生成し、キー保存部24からキーCに対応するキーDを取りだし、キーDとキーD2が等しいければ、ネットワーク端末A自身によって送信したチェック処理部によってチェック処理が行われたと判断する。
【0027】
端末情報を送信した端末が正常動作可能でありかつネットワーク端末A自身によって送信したチェック処理部によってチェック処理が行われたと判断したら認証結果をネットワーク端末Bのチェック処理部25へ送信する。
【0028】
チェック処理部25はネットワーク接続を許可する認証結果であればメイン処理部30を起動する。
【0029】
起動されたメイン処理部30は参加要求メッセージM2をネットワーク端末Aへ送信する。
【0030】
参加要求メッセージM2を受信したネットワーク端末Aはネットワーク参加要求を受理しネットワーク端末BのID1を端末リスト27に加える。
この際、参加要求メッセージM2を送信した端末を一意に識別するためのキーD3を生成し、キー保存部24から前記受信したキーCに対応するキーDを取りだし、キーDとキーD2が異なっていれば、ネットワーク端末A自身によって送信したチェック処理部によってチェック処理が行われなかったと判断し、ネットワーク参加要求を拒否してもよい。
ID1はネットワーク端末を一意に指定する情報である。ID1としてあらかじめネットワーク端末毎に与えられた一意の情報をもちいてもよい。
またはID1としてネットワーク端末のIP情報をもちいてもよい。またはID1としてネットワーク端末のハードウエアまたはソフトウエア情報をもちいてもよい。または前記のいずれかの組み合わせをもちいてもよい。
端末リストへID1を加える際に日付情報とともに追加してもよい。前記日付情報をもちいて端末リスト中の古くなった情報を削除してもよい。古くなった基準としては半日経過、一日経過、48時間経過または指定された任意の時間経過が考えられる。
この後ネットワーク端末Bに参加要求受理メッセージをネットワーク端末Bへ送ってもよい。
この後ネットワーク端末Bへ端末リスト27を送ってもよい。
ネットワーク端末Bがネットワーク端末Aの機能も有している場合、すなわち図2で示された機能をもネットワーク端末Bが有している場合、ネットワーク端末Bの持つ端末リストを更新してもよい。
正常動作可能であると判断されなければ参加要求拒否メッセージをネットワーク端末Bへ送ってもよい。
【0031】
以後の通信において端末リストに記載されていないネットワーク端末からのデータは信頼できないとして拒否することにより不正改造されたネットワーク端末からの不正なデータの混入を避けることができる。
【0032】
図4は、各ネットワーク端末およびチェック処理部の間で送受信されるデータフローを示す。ネットワーク端末Bがネットワークへの参加要求メッセージM1をネットワーク端末Bへ送信すると(S10)、ネットワーク端末Aはチェック処理部25をネットワーク端末Bへ送信する(S11)。
ネットワーク端末Bはチェック処理部25を起動する(S12)。チェック処理部25はネットワーク端末Bのソフトウエアで構成された部分のハッシュ値Eを計算しチェック処理部自身の識別情報であるキーCとともにネットワーク端末Aへ送信する(S13)。ネットワーク端末Aは受信した情報をもとにネットワーク参加の許可を判断し結果を送信する(S14)。チェック処理部は受信した結果に応じてネットワーク端末Bのメイン処理部を起動する(S15)。起動されたメイン処理部はネットワークへ参加する(S16)。
【0033】
図5は、ネットワーク端末Aにおける処理手順を示すフローチャートである。
ネットワーク端末Bから参加要求メッセージM1が送られてくるまで待機する(S101N)。この際定期的にメッセージを確認して待機してもよい。またメッセージが届いたら次の処理を実行するようにコールバックルーチンを設定してもよい。参加要求メッセージM1を受信したら(S101Y)、キーCを生成(S102)、キーDを生成(S103)しキーCとキーDをキー保存部へ保存する(S104)。続いてキーCをチェック処理部25へ保存してチェック処理部25をネットワーク端末Bへ送信する(S105)。チェック処理部から端末情報が送られてくるまで待機する(S106N)。
この際定期的にメッセージを確認して待機してもよい。またメッセージが届いたら次の処理を実行するようにコールバックルーチンを設定してもよい。端末情報を受信したら(S106Y)、端末が正常動作可能か判断し(S107)、端末が自身で送信したチェック処理部でチェックされたか判断する(S108)。端末が正常動作可能でありかつ端末が自身で送信したチェック処理部でチェックされたと判断されたら認証結果をネットワーク端末Bへ送信する(S109)。参加要求メッセージM2を受信するまで待機する(S110N)。この際定期的にメッセージを確認して待機してもよい。またメッセージが届いたら次の処理を実行するようにコールバックルーチンを設定してもよい。参加要求メッセージM2を受信したらネットワーク参加要求を受理しネットワーク端末BのID1を端末リスト27に加える(S111)。
【0034】
図6は、ネットワーク端末Bにおける処理手順を示すフローチャートである。
参加要求メッセージM1をネットワーク端末Aへ送信する(S201)。ネットワーク端末Aからチェック処理部が送られてくるまで待機する(S202N)。この際定期的に受信データを確認して待機してもよい。またデータが届いたら次の処理を実行するようにコールバックルーチンを設定してもよい。チェック処理部を起動する(S103)。起動されたチェック処理部はネットワーク端末Bの情報を収集する(S204)。この実施例ではネットワーク端末Bの構成部分のうちソフトウエアで構成された部分についてのハッシュ値Eを計算する。収集したデータをネットワーク端末Aへ送信する(S205)。この実施例ではハッシュ値Eおよびチェック処理部を一意に識別する情報であるキーCを送信する。
ネットワーク端末Aより結果が受信されるまで待機する(S206N)。この際にタイムアウト期間を設けて一定時間経過後は認証に失敗したと判断してもよい。この際定期的にメッセージを確認して待機してもよい。またメッセージが届いたら次の処理を実行するようにコールバックルーチンを設定してもよい。認証結果を受信したら(S206Y)、メイン処理部を起動する(S207)。起動されたメイン処理部は参加要求メッセージM2を送信する(S208)。
【0035】
前記実施形態においてデータの送受信に暗号化を施してもよい。
チェック処理部25をネットワーク端末Bへ送信するときに暗号鍵を持たせ、メイン処理部30起動する際に暗号鍵を渡し、以後前記暗号鍵を用いた暗号によって通信してもよい。これによってネットワーク端末Bで暗号鍵を知ることが困難にすることができ通信が傍受または乗っ取られる可能性を低くできる。
【0036】
前記実施形態においてデータの送受信にタイムアウト期間を設けてもよい。タイムアウト期間としてはたとえばコンピュータでは十分対応できるが不正改造するには短すぎる時間として数ナノ秒から数秒程度が考えられる。もしくはネットワークの通信速度に応じて可変としてもよい。
【0037】
前記実施形態において定期的にチェック処理部を実行してもよい。
【0038】
クライアントプログラムが不正改造されていたとしても毎回チェック処理部を送信することによりチェック処理部が改造される可能性を減らすことができる。
またメイン処理部をあらかじめ端末に置いておけるのでメイン処理をおこなうソフトを必要なたびにダウンロードするよりもネットワークの負荷が少なくなるという利点がある。
改造されたプログラムを起動するより起動中のプログラムを変更する事の方がはるかに困難である。このためチェック処理部より起動することにより改造の可能性を減らすことができる。
メモリエリアを変更や通信の乗っ取りなどの対策のため他の不正改造対策との併用が考えられる。
【0039】
別の実施形態ではハッシュ値Eのかわりにネットワーク端末Bのハードウエア情報またはソフトウエア情報をメッセージM2に含めてもよい。もしくはそのいずれかの組み合わせでもよい。この実施形態では、認証部26は送られてきたメッセージM2の情報をもとにネットワーク端末Bが正常動作可能な端末か否かを判断する。
【0040】
また別の実施形態ではチェック処理部25がネットワーク端末B上で情報を収集しネットワーク端末Bが正常動作可能な端末か否かを判断する。この実施形態ではネットワーク端末Bへ送信されたチェック処理部25はネットワーク端末が正常動作可能な端末か判断する。正常動作可能であると判断したならばメイン処理起動部252はキーCをメイン処理部30に渡し、メイン処理部30を起動する。
起動されたメイン処理部30はキーCを含めた参加要求メッセージM2をネットワーク端末Aへ送信する。
参加要求メッセージM2を受信したネットワーク端末Aは受信した参加要求メッセージM2からキーCをとりだす。
続いて認証部26は接続要求メッセージM2を送信した端末を一意に識別するためのキーD2を生成し、キー保存部24からキーCに対応するキーDを取りだし、キーDとキーD2が等しいければ、ネットワーク端末A自身によって送信したチェック処理部によってチェック処理が行われたと判断する。ネットワーク端末A自身によって送信したチェック処理部によってチェック処理が行われたと判断したらネットワーク参加要求を受理しネットワーク端末Bを端末リスト27に加える。
【0041】
また別の実地形態では、参加要求メッセージM1を受け取ったネットワーク端末Aは、キーC生成部22によってチェック処理部25を一意に識別するためのキーCを生成する。
続いてキーD生成部23によってネットワークへの接続要求を送信した端末すなわちネットワーク端末Bを一意に識別するためのキーDを生成する。続いてキーCおよびキーDを対にしてキー保存部23へ保存する。続いてキーC保存部253へキーCを保存したチェック処理部25をネットワーク端末Bへ送信する。
チェック処理部25を受信したネットワーク端末Bはチェック処理部25を起動する。
ネットワーク端末Bへ送信されたチェック処理部25はネットワーク端末Bの構成部分のうちソフトウエアで構成された部分についてのハッシュ値Eを計算する。メイン処理起動部252はキーCと計算したハッシュ値Eをメイン処理部30に渡し、メイン処理部30を起動する。
起動されたメイン処理部30はキーCおよびハッシュ値Eを含めた参加要求メッセージM2をネットワーク端末Aへ送信する。
参加要求メッセージM2を受信したネットワーク端末Aは受信した参加要求メッセージM2からハッシュ値EおよびキーCをとりだす。
続いて認証部26はハッシュ値Eが正常な端末で算出したハッシュ値に等しければ、接続要求メッセージM2を送信した端末は正常動作可能であると判断する。
続いて認証部26は接続要求メッセージM2を送信した端末を一意に識別するためのキーD2を生成し、キー保存部24からキーCに対応するキーDを取りだし、キーDとキーD2が等しいければ、ネットワーク端末A自身によって送信したチェック処理部によってチェック処理が行われたと判断する。
【図面の簡単な説明】
【0042】
【図1】ネットワークシステムの構成を示す図である。
【図2】ネットワーク端末Aの構成を示す機能ブロック図である。
【図3】ネットワーク端末Bの構成を示す機能ブロック図である。
【図4】端末Aおよび端末Bおよびチェック処理部25の間で送受信されるデータフローを示す図である。
【図5】ネットワーク端末Aにおける処理手順を示すフローチャートである。
【図6】ネットワーク端末Bにおける処理手順を示すフローチャートである。

【特許請求の範囲】
【請求項1】
端末でおこなう主処理を実行するメイン処理部を含みネットワークへの参加を要求する端
末Bと、端末が正常動作可能であることを判断するための情報を生成するチェック処理部Cと含み参加を認証する端末Aと、を含み、端末Bがネットワーク接続要求を送信し、端末Aがチェック処理部Cを送信し、チェック処理部Cが端末Bが正常動作可能であるか判断するための情報Dを生成し、チェック処理部Cが情報Dを端末Aへ送信し、端末Aが情報Dをもちいて参加許可の判断をした結果Eを送信し、チェック処理部Cが判断結果Eに応じて前記メイン処理部を起動することを特徴とするネットワークシステム。
【請求項2】
データの送受信にピアツーピアネットワークを用いた請求項1に記載のネットワークシステム。
【請求項3】
端末Bがネットワーク接続要求を送信する工程と、端末Aがチェック処理部Cを送信する工程と、チェック処理部Cが端末Bが正常動作可能であるか判断するための情報Dを生成する工程と、チェック処理部Cが情報Dを端末Aへ送信する工程と、端末Aが情報Dから参加許可の判断結果Eを送信する工程と、チェック処理部Cが判断結果Eに応じて前記メイン処理部を起動する工程を有することを特徴とするネットワーク接続確立方法。
【請求項4】
データの送受信にピアツーピアネットワークを用いた請求項3に記載のネットワーク接続確立方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2009−146107(P2009−146107A)
【公開日】平成21年7月2日(2009.7.2)
【国際特許分類】
【出願番号】特願2007−321886(P2007−321886)
【出願日】平成19年12月13日(2007.12.13)
【出願人】(307040956)
【Fターム(参考)】