(57)【特許請求の範囲】
【請求項１】
サーバと、当該サーバと通信可能に接続されるクライアント端末と、を備え、当該クライアント端末上で実行される所定のプログラムを介してユーザに所定のサービスを提供するシステムであって、
前記システムは、前記所定のプログラムを介して前記サーバにログインしたログインユーザに対する前記所定のサービスの提供を、前記サーバと前記クライアント端末との間の所定の通信によって実現し、
前記クライアント端末は、前記所定のプログラムの専用領域に鍵情報を記憶する端末側記憶装置を有し、
前記サーバは、ユーザ毎の前記鍵情報を記憶するサーバ側記憶装置を有し、
前記所定の通信は、
前記クライアント端末が、前記サーバに送信するリクエストと前記端末側記憶装置に記憶されている前記鍵情報とに基づいて所定の生成ルールに従って署名情報を生成し、当該生成した署名情報を付加した前記リクエストを前記サーバに対して送信するステップと、
前記サーバが、前記クライアント端末からの前記リクエストに応答し、当該リクエストと前記サーバ用記憶装置に記憶されている前記ログインユーザの前記鍵情報とに基づいて前記所定の生成ルールに従って署名情報を生成し、当該生成した署名情報と前記リクエストに付加された前記署名情報との比較に基づいて当該リクエストの正当性を確認するステップと、
前記サーバが、前記リクエストと前記サーバ側記憶装置に記憶されている前記ログインユーザの前記鍵情報とに基づいて所定の更新ルールに従って当該ログインユーザの前記鍵情報を更新するステップと、
前記サーバが、前記リクエストに対するレスポンスを前記クライアント端末に対して送信するステップと、
前記クライアント端末が、前記リクエストに対する前記サーバからの前記レスポンスに応答し、当該リクエストと前記端末側記憶装置に記憶されている前記鍵情報とに基づいて前記所定の更新ルールに従って当該鍵情報を更新するステップと、を含む、
システム。
【請求項２】
請求項１に記載のシステムであって、
前記サーバ側記憶装置は、前記ユーザ毎の鍵情報として、現在の鍵情報である第１の鍵情報と、当該現在の鍵情報に更新される前の前回の鍵情報である第２の鍵情報とを記憶し、
前記正当性を確認するステップは、前記リクエスト及び前記ログインユーザの前記第１の鍵情報とに基づいて生成された第１の署名情報と前記リクエストに付加された前記署名情報との比較、並びに、前記リクエスト及び前記ログインユーザの前記第２の鍵情報とに基づいて生成された第２の署名情報と前記リクエストに付加された前記署名情報との比較に基づいて当該リクエストの正当性を確認することを含む、
システム。
【請求項３】
前記所定の更新ルールは、前記所定の生成ルールに従って生成された前記署名情報を新たな鍵情報として前記鍵情報を更新するルールである請求項１又は２に記載のシステム。
【請求項４】
請求項１ないし３いずれかに記載のシステムであって、
前記所定の通信は、ＨＴＴＰに従う通信であり、
前記リクエストはＨＴＴＰリクエストであり、
前記レスポンスはＨＴＴＰレスポンスである、
システム。
【請求項５】
前記端末側記憶装置の前記所定のプログラムの前記専用領域は、不揮発性の領域である請求項１ないし４いずれかに記載のシステム。
【請求項６】
前記端末側記憶装置の前記所定のプログラムの前記専用領域は、当該所定のプログラム以外の他のプログラムによるアクセスが制限されている領域である請求項１ないし５いずれかに記載のシステム。
【請求項７】
前記所定のルールは、ＨＭＡＣ方式に従うルールである請求項１ないし６いずれかに記載のシステム。
【請求項８】
サーバと通信可能に接続されるクライアント端末上で実行される所定のプログラムを介してユーザに所定のサービスを提供する方法であって、
前記方法は、前記所定のプログラムを介して前記サーバにログインしたログインユーザに対する前記所定のサービスの提供を、前記サーバと前記クライアント端末との間の所定の通信によって実現し、
前記クライアント端末は、前記所定のプログラムの専用領域に鍵情報を記憶する端末側記憶装置を有し、
前記サーバは、ユーザ毎の前記鍵情報を記憶するサーバ側記憶装置を有し、
前記所定の通信は、
前記クライアント端末が、前記サーバに送信するリクエストと前記端末側記憶装置に記憶されている前記鍵情報とに基づいて所定の生成ルールに従って署名情報を生成し、当該生成した署名情報を付加した前記リクエストを前記サーバに対して送信するステップと、
前記サーバが、前記クライアント端末からの前記リクエストに応答し、当該リクエストと前記サーバ用記憶装置に記憶されている前記ログインユーザの前記鍵情報とに基づいて前記所定の生成ルールに従って署名情報を生成し、当該生成した署名情報と前記リクエストに付加された前記署名情報との比較に基づいて当該リクエストの正当性を確認するステップと、
前記サーバが、前記リクエストと前記サーバ側記憶装置に記憶されている前記ログインユーザの前記鍵情報とに基づいて所定の更新ルールに従って当該ログインユーザの前記鍵情報を更新するステップと、
前記サーバが、前記リクエストに対するレスポンスを前記クライアント端末に対して送信するステップと、
前記クライアント端末が、前記リクエストに対する前記サーバからの前記レスポンスに応答し、当該リクエストと前記端末側記憶装置に記憶されている前記鍵情報とに基づいて前記所定の更新ルールに従って当該鍵情報を更新するステップと、を含む、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザに所定のサービスを提供するシステム及び方法に関し、詳しくは、サーバと、当該サーバと通信可能に接続されるクライアント端末と、を備え、当該クライアント端末上で実行される所定のプログラムを介してユーザに所定のサービスを提供するシステム、及びこうした方法に関する。
【背景技術】
【０００２】
従来より、オンラインゲーム等のインターネットサービスを提供するシステムにおいて、改変されたクライアントソフトウェア（以下、「チート用クライアント」と言うことがある。）を用いた不正行為が問題となっている。例えば、オンラインゲームを提供するシステムにおいて、不正行為を目的とするユーザが、ゲームで用いられるアイテム又はキャラクタ等に関するデータをユーザにとって過剰に有利となるように変更するチート用クライアントを作成し、このチート用クライアントを用いて不正にゲームを進行させる行為が問題となっている。また、こうした不正行為を目的とするユーザは、典型的には、例えば、このユーザが保有する正規のユーザＩＤを用いてチート用クライアントを介してアイテム又はキャラクタ等に関するデータを変更し、その後、同一のユーザＩＤを用いて通常のクライアントソフトウェアを介してゲームをプレイする。こうした不正行為を防止するために、例えば、オンラインゲームで使用されるゲームデータをチェックすることにより、正規の範囲外の数値を含むデータ、又は、禁止文字列を含むデータ等の不正データを検出するゲームプログラムが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−０６１４２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した不正データを検出する手法では、オンラインゲームで使用されるゲームデータ自体を適宜チェックする必要があるから、ゲームプログラムの実行に過大な負荷が生じ、オンラインゲームのパフォーマンスを悪化させてしまう恐れがある。従って、ゲームデータ自体をチェックすることなしに、改変されたソフトウェアを用いた不正な通信を抑制することが望まれる。
【０００５】
本発明の実施形態は、ゲームデータ自体をチェックすることなしに、改変されたソフトウェア等を用いた不正な通信を抑制することを目的の一つとする。本発明の他の目的は、本明細書全体を参照することにより明らかとなる。
【課題を解決するための手段】
【０００６】
本発明の一実施形態に係るシステムは、サーバと、当該サーバと通信可能に接続されるクライアント端末と、を備え、当該クライアント端末上で実行される所定のプログラムを介してユーザに所定のサービスを提供するシステムであって、前記システムは、前記所定のプログラムを介して前記サーバにログインしたログインユーザに対する前記所定のサービスの提供を、前記サーバと前記クライアント端末との間の所定の通信によって実現し、前記クライアント端末は、前記所定のプログラムの専用領域に鍵情報を記憶する端末側記憶装置を有し、前記サーバは、ユーザ毎の前記鍵情報を記憶するサーバ側記憶装置を有し、前記所定の通信は、前記クライアント端末が、前記サーバに送信するリクエストと前記端末側記憶装置に記憶されている前記鍵情報とに基づいて所定の生成ルールに従って署名情報を生成し、当該生成した署名情報を付加した前記リクエストを前記サーバに対して送信するステップと、前記サーバが、前記クライアント端末からの前記リクエストに応答し、当該リクエストと前記サーバ用記憶装置に記憶されている前記ログインユーザの前記鍵情報とに基づいて前記所定の生成ルールに従って署名情報を生成し、当該生成した署名情報と前記リクエストに付加された前記署名情報との比較に基づいて当該リクエストの正当性を確認するステップと、前記サーバが、前記リクエストと前記サーバ側記憶装置に記憶されている前記ログインユーザの前記鍵情報とに基づいて所定の更新ルールに従って当該ログインユーザの前記鍵情報を更新するステップと、前記サーバが、前記リクエストに対するレスポンスを前記クライアント端末に対して送信するステップと、前記クライアント端末が、前記リクエストに対する前記サーバからの前記レスポンスに応答し、当該リクエストと前記端末側記憶装置に記憶されている前記鍵情報とに基づいて前記所定の更新ルールに従って当該鍵情報を更新するステップと、を含む。
【０００７】
本発明の一実施形態に係る方法は、サーバと通信可能に接続されるクライアント端末上で実行される所定のプログラムを介してユーザに所定のサービスを提供する方法であって、前記方法は、前記所定のプログラムを介して前記サーバにログインしたログインユーザに対する前記所定のサービスの提供を、前記サーバと前記クライアント端末との間の所定の通信によって実現し、前記クライアント端末は、前記所定のプログラムの専用領域に鍵情報を記憶する端末側記憶装置を有し、前記サーバは、ユーザ毎の前記鍵情報を記憶するサーバ側記憶装置を有し、前記所定の通信は、前記クライアント端末が、リクエストと前記端末側記憶装置に記憶されている前記鍵情報とに基づいて所定の生成ルールに従って署名情報を生成し、当該生成した署名情報を付加した前記リクエストを前記サーバに対して送信するステップと、前記サーバが、前記クライアント端末からの前記リクエストに応答し、当該リクエストと前記サーバ用記憶装置に記憶されている前記ログインユーザの前記鍵情報とに基づいて前記所定の生成ルールに従って署名情報を生成し、当該生成した署名情報と前記リクエストに付加された前記署名情報との比較に基づいて当該リクエストの正当性を確認するステップと、前記サーバが、前記リクエストと前記サーバ側記憶装置に記憶されている前記ログインユーザの前記鍵情報とに基づいて所定の更新ルールに従って当該ログインユーザの前記鍵情報を更新するステップと、前記サーバが、前記リクエストに対するレスポンスを前記クライアント端末に対して送信するステップと、前記クライアント端末が、前記リクエストに対する前記サーバからの前記レスポンスに応答し、当該リクエストと前記端末側記憶装置に記憶されている前記鍵情報とに基づいて前記所定の更新ルールに従って当該鍵情報を更新するステップと、を含む。
【発明の効果】
【０００８】
本発明の様々な実施形態によって、ゲームデータ自体をチェックすることなしに、改変されたソフトウェア等を用いた不正行為を抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係るシステム１の構成を概略的に示すブロック図。
【図２】一実施形態におけるシステム１の機能を概略的に示すブロック図。
【図３】一実施形態におけるユーザ毎鍵情報管理テーブルにおいて管理される情報の一例を示す図。
【図４】一実施形態における端末装置３０とサーバ１０との間の通信の様子の一例を示すシーケンス図。
【図５】一実施形態における端末装置３０とサーバ１０との間の通信の様子の具体例を示すシーケンス図。
【図６】一実施形態における端末装置３０とサーバ１０との間の通信の様子の具体例を示すシーケンス図。
【発明を実施するための形態】
【００１０】
図１は、本発明の一実施形態に係るシステム１の構成を概略的に示す構成図である。一実施形態に係るシステム１は、図示するように、サーバ１０と、このサーバ１０とインターネット等の通信網２０を介して通信可能に接続された複数の端末装置（クライアント端末）３０とを備える。一実施形態におけるシステム１は、オンラインゲーム、電子書籍、動画コンテンツ、及び音楽コンテンツ等の様々なデジタルコンテンツの提供サービス、テキストチャット（ミニメール）、サークル、アバター、日記、伝言板、及び挨拶等の様々なユーザ間のコミュニケーション機能を実現するコミュニケーションプラットフォーム（ＳＮＳプラットフォーム）サービス、並びに電子商取引サービス等の様々なインターネットサービスを、端末装置３０のユーザに対して提供する。
【００１１】
サーバ１０は、一般的なコンピュータとして構成されており、図１に示すとおり、ＣＰＵ（コンピュータプロセッサ）１１と、メインメモリ１２と、ユーザＩ／Ｆ１３と、通信Ｉ／Ｆ１４と、ストレージ１５と、ディスクドライブ１６とを含み、これらの各構成要素がバス１７を介して互いに電気的に接続されている。ＣＰＵ１１は、ストレージ１５からオペレーティングシステムやその他の様々なプログラムをメインメモリ１２にロードし、このロードしたプログラムに含まれる命令を実行する。メインメモリ１２は、ＣＰＵ１１が実行するプログラムを格納するために用いられ、例えば、ＤＲＡＭ等によって構成される。なお、一実施形態におけるサーバ１０は、それぞれ上述したようなハードウェア構成を有する複数のコンピュータを用いて構成され得る。
【００１２】
ユーザＩ／Ｆ１３は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、ＣＰＵ１１の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信Ｉ／Ｆ１４は、ハードウェア、ファームウェア、又はＴＣＰ／ＩＰドライバやＰＰＰドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網２０を介して端末装置３０と通信可能に構成される。
【００１３】
ストレージ１５は、例えば磁気ディスクドライブで構成され、各種サービスの提供を制御するための制御用プログラム等の様々なプログラムが記憶される。また、ストレージ１５には、各種サービスの提供において用いられる各種データも記憶され得る。ストレージ１５に記憶され得る各種データは、サーバ１０と通信可能に接続されるサーバ１０とは物理的に別体のデータベースサーバ等に格納されてもよい。ディスクドライブ１６は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ等の各種の記憶メディアに格納されたデータを読み込み、又は、これらの記憶メディアにデータを書き込む。
【００１４】
一実施形態において、サーバ１０は、階層構造の複数のウェブページから成るウェブサイトを管理するウェブサーバとしても機能し、こうしたウェブサイトを介して上述した様々なインターネットサービスを端末装置３０に対して提供し得る。ストレージ１５には、このウェブページに対応するＨＴＭＬデータも記憶され得る。ＨＴＭＬデータは、様々な画像データが関連付けられ、又、ＪａｖａＳｃｒｉｐｔ（登録商標）等のスクリプト言語等で記述された様々なプログラムが埋め込まれ得る。
【００１５】
また、一実施形態において、サーバ１０は、端末装置３０においてウェブブラウザ以外の実行環境上で実行されるアプリケーションを介して上述した様々なインターネットサービスを端末装置３０に対して提供し得る。ストレージ１５には、こうしたアプリケーションも記憶され得る。このアプリケーションは、例えば、Ｏｂｊｅｃｔｉｖｅ−ＣやＪａｖａ（登録商標）等のプログラミング言語を用いて作成される。ストレージ１５に記憶されたアプリケーションは、配信要求に応じて端末装置３０に配信される。なお、端末装置３０は、こうしたアプリケーションを、サーバ１０以外の他のサーバ（アプリマーケットを提供するサーバ）等からダウンロードすることもできる。
【００１６】
このように、サーバ１０は、各種サービスを提供するためのウェブサイトを管理し、当該ウェブサイトを構成するウェブページ（ＨＴＭＬデータ）を端末装置３０からの要求に応答して配信することにより、端末装置３０のユーザに対して各種サービスを提供することができる。また、上述したように、サーバ１０は、このようなウェブページ（ウェブブラウザ）を用いたサービスの提供とは代替的に、又は、これに加えて、端末装置３０において実行されるアプリケーションとの通信に基づいて各種サービスを提供することができる。いずれの態様でサービスを提供するにしても、サーバ１０は、各種サービスの提供に必要な各種データ（画面表示に必要なデータを含む）を端末装置３０との間で送受信することができる。また、サーバ１０は、各ユーザを識別する識別情報（例えば、ユーザＩＤ）毎にサービスの提供に必要な各種データを記憶することによって、ユーザ毎にサービスの提供状況（例えば、ゲームの進行状況等）を管理することができる。詳細な説明は省略するが、サーバ１０は、サービスの提供の開始時におけるユーザの認証処理（ログイン処理）やサービスの提供に応じて発生する課金処理等を行う機能を有することもできる。
【００１７】
一実施形態における端末装置３０は、サーバ１０が提供するウェブサイトのウェブページをウェブブラウザ上で表示すると共にアプリケーションを実行するための実行環境を実装した任意の情報処理装置であり、パーソナルコンピュータ、スマートフォン、携帯電話、タブレット端末、ウェアラブルデバイス、及びゲーム専用端末等が含まれ得る。
【００１８】
端末装置３０は、一般的なコンピュータとして構成されており、図１に示すとおり、ＣＰＵ（コンピュータプロセッサ）３１と、メインメモリ３２と、ユーザＩ／Ｆ３３と、通信Ｉ／Ｆ３４と、ストレージ３５と、を含み、これらの各構成要素がバス３６を介して互いに電気的に接続されている。
【００１９】
ＣＰＵ３１は、ストレージ３５からオペレーティングシステムやその他の様々なプログラムをメインメモリ３２にロードし、このロードしたプログラムに含まれる命令を実行する。メインメモリ３２は、ＣＰＵ３１が実行するプログラムを格納するために用いられ、例えば、ＤＲＡＭ等によって構成される。
【００２０】
ユーザＩ／Ｆ３３は、例えば、ユーザの入力を受け付けるタッチパネル、キーボード、ボタン及びマウス等の情報入力装置と、ＣＰＵ３１の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。また、通信Ｉ／Ｆ３４は、ハードウェア、ファームウェア、又は、ＴＣＰ／ＩＰドライバやＰＰＰドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網２０を介してサーバ１０と通信可能に構成される。
【００２１】
ストレージ３５は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムが記憶される。また、ストレージ３５は、サーバ１０等から受信した様々なアプリケーションが記憶され得る。
【００２２】
端末装置３０は、例えば、ＨＴＭＬ形式のファイル（ＨＴＭＬデータ）を解釈して画面表示するためのウェブブラウザを備えており、このウェブブラウザの機能によりサーバ１０から取得したＨＴＭＬデータを解釈して、受信したＨＴＭＬデータに対応するウェブページを表示することができる。また、端末装置３０のウェブブラウザには、ＨＴＭＬデータに関連付けられた様々な形式のファイルを実行可能なプラグインソフトが組み込まれ得る。
【００２３】
端末装置３０のユーザがサーバ１０によって提供される各種サービスを受ける際には、例えば、ＨＴＭＬデータやアプリケーションによって指示されたアニメーションや操作用アイコン等が端末装置３０に画面表示される。ユーザは、端末装置３０のタッチパネル等を用いて各種指示を入力することができる。ユーザから入力された指示は、端末装置３０のウェブブラウザやＮｇＣｏｒｅ（商標）等のアプリケーション実行環境の機能を介してサーバ１０に伝達される。
【００２４】
次に、一実施形態におけるシステム１が有する機能について説明する。図２は、一実施形態におけるシステム１が有する機能を示すブロック図である。一実施形態におけるシステム１は、上述した様々なインターネットサービスをユーザに提供し得るが、ここでは、特定のオンラインゲームの提供サービスに関連する機能を中心に説明する。一実施形態におけるシステム１が備えるサーバ１０は、図示するように、様々な情報を記憶する情報記憶部４１と、特定のオンラインゲームの進行を制御するゲーム進行制御部４２と、端末装置３０からのＨＴＴＰリクエストに応答し、このＨＴＴＰリクエストと情報記憶部４１に記憶されているログインユーザの鍵情報とに基づいて所定の生成ルールに従って署名情報を生成し、この生成した署名情報とＨＴＴＰリクエストに付加された署名情報との比較に基づいてＨＴＴＰリクエストの正当性を確認する正当性確認部４３と、ＨＴＴＰリクエストと情報記憶部４１に記憶されているログインユーザの鍵情報とに基づいて所定の更新ルールに従ってログインユーザの鍵情報を更新する鍵情報更新部４４と、ＨＴＴＰリクエストに対するＨＴＴＰレスポンスを端末装置３０に対して送信するレスポンス送信部４５と、を有する。これらの機能は、ＣＰＵ１１やメインメモリ１２、ストレージ１５に記憶されている各種プログラムやテーブルなどが協働して動作することによって実現され、例えば、ロードしたプログラムに含まれる命令をＣＰＵ１１が実行することによって実現される。
【００２５】
一実施形態におけるサーバ１０の情報記憶部４１は、ストレージ１５等によって構成され、ユーザ毎の鍵情報を管理するユーザ毎鍵情報管理テーブル４１ａを有する。図３は、一実施形態におけるユーザ毎鍵情報管理テーブル４１ａにおいて管理される情報の一例を示す。ユーザ毎鍵情報管理テーブル４１ａは、図示するように、個別のユーザを識別する「ユーザＩＤ」に対応付けて、このユーザに対応する「現在の鍵情報」（第１の鍵情報）、このユーザに対応する「前回の鍵情報」（第２の鍵情報）、等の情報を管理する。ここで「前回の鍵情報」は、「現在の鍵情報」に更新される前の鍵情報である。即ち、一実施形態におけるサーバ１０は、ユーザ毎の鍵情報を二世代管理する。また、鍵情報は、初期値として予め定められた既定値が設定され、その後、特定のオンラインゲームをユーザに提供するときのサーバ１０と端末装置３０との間の通信の実行に従って更新される。鍵情報が更新される動作の詳細は後述する。
【００２６】
一実施形態における端末装置３０は、図２に示すように、様々な情報を記憶する情報記憶部５１と、特定のオンラインゲームの進行を制御するゲーム進行制御部５２と、サーバ１０に送信するＨＴＴＰリクエストと情報記憶部５１に記憶されている鍵情報とに基づいて所定の生成ルールに従って署名情報を生成し、この生成した署名情報を付加したＨＴＴＰリクエストをサーバ１０に対して送信するリクエスト送信部５３と、ＨＴＴＰリクエストに対するサーバ１０からのＨＴＴＰレスポンスに応答し、このＨＴＴＰリクエストと情報記憶部５１に記憶されている鍵情報とに基づいてこの鍵情報を更新する鍵情報更新部５４と、を有する。これらの機能は、ＣＰＵ３１やメインメモリ３２、ストレージ３５に記憶されている各種プログラムやテーブルなどが協働して動作することによって実現され、例えば、ロードしたプログラムに含まれる命令をＣＰＵ３１が実行することによって実現される。
【００２７】
一実施形態における端末装置３０の情報記憶部５１は、ストレージ３５等によって構成され、ゲームアプリケーション（所定のプログラム）５１ａが記憶（インストール）されている。このゲームアプリケーション５１ａは、端末装置３０のユーザが特定のオンラインゲームをプレイするためのアプリケーションであり、ユーザによる指示に応じてサーバ１０又はアプリマーケット等からダウンロードされ得る。このゲームアプリケーション５１ａは、端末装置３０上で実行されることに応じて、上述した各機能（具体的には、ゲーム進行制御部５２、リクエスト送信部５３、鍵情報更新部５４に対応する機能）を端末装置３０に実現させる。
【００２８】
また、一実施形態における情報記憶部５１は、鍵情報を格納する鍵情報格納領域５１ｂを有する。一実施形態において、この鍵情報格納領域５１ｂは、上述したゲームアプリケーション５１ａの専用領域として構成されている。具体的には、鍵情報格納領域５１ｂは、ゲームアプリケーション５１ａによって管理され、ゲームアプリケーション５１ａ以外の他のプログラムによるアクセスが制限されている。例えば、鍵情報格納領域５１ｂに記憶されている情報は、ゲームアプリケーション５１ａを介したアクセスのみが許容され、他のアプリケーションからのアクセスは許容されない。また、一実施形態において、鍵情報格納領域５１ｂは、ＥＥＰＲＯＭ又はフラッシュメモリ等によって実現される不揮発性の領域として構成され、端末装置３０の再起動等が行われても、記憶されている情報は維持される。
【００２９】
ここで、鍵情報格納領域５１ｂに格納される鍵情報は、一実施形態において、例えば、ゲームアプリケーション５１ａのインストール時、又は、ゲームアプリケーション５１ａを介してプレイする特定のオンラインゲームに対するユーザ登録時等に設定され、初期値として予め定められた既定値が設定され、その後、オンラインゲームをユーザに提供するときのサーバ１０と端末装置３０との間の通信の実行に従って更新される。鍵情報が更新される動作の詳細は後述する。また、鍵情報格納領域５１ｂに格納される鍵情報の初期値は、サーバ１０のユーザ毎鍵情報管理テーブル４１ａにおいて管理される鍵情報の初期値と同一の値が設定される。
【００３０】
次に、こうして構成された一実施形態におけるシステム１の動作について説明する。一実施形態におけるシステム１は、上述したように、端末装置３０上で実行されるゲームアプリケーション５１ａを介してサーバ１０にログインしたログインユーザにオンラインゲームを提供し、このオンラインゲームの提供は、サーバ１０と端末装置３０との間の通信（所定の通信）によって実現される。具体的には、一実施形態において、サーバ１０のゲーム進行制御部４２と端末装置３０のゲーム進行制御部５２とが協働し、オンラインゲームの進行のために必要な様々なデータがサーバ１０と端末装置３０との間で送受信され、例えば、サーバ１０のゲーム進行制御部４２の機能によってオンラインゲームの進行に応じた画面データ（例えば、ＨＴＭＬデータ又はその他の制御データ等）が端末装置３０に送信され、端末装置３０のゲーム進行制御部５２の機能によって受信した画面データに基づく画面表示が行われる。こうしたデータの送受信は、一実施形態では、ＨＴＴＰに従うＨＴＴＰ通信によって実現される。
【００３１】
図４は、システム１がログインユーザにオンラインゲームを提供する間に、端末装置３０とサーバ１０との間で実行される通信の様子を示すシーケンス図である。端末装置３０とサーバ１０との間の通信は、まず、図４に示すように、端末装置３０が、サーバ１０に送信するＨＴＴＰリクエストを生成する（ステップＳ１００）。このステップは、端末装置３０のリクエスト送信部５３の機能に対応する。ＨＴＴＰリクエストは、例えば、リクエストライン（例えば、メソッド、リクエストＵＲＩ、及びプロトコルバージョンから成る）、ヘッダ、及びボディから成る。
【００３２】
次に、端末装置３０が、生成したＨＴＴＰリクエストと鍵情報格納領域５１ｂに格納されている鍵情報とに基づいて署名情報を生成する（ステップＳ１１０）。このステップは、端末装置３０のリクエスト送信部５３の機能に対応する。署名情報は、例えば、ＨＭＡＣ方式に従うルールに従って生成され、より具体的には、ステップＳ１００において生成されたＨＴＴＰリクエスト及び鍵情報に、予め定められたハッシュ関数を適用することによって生成される。
【００３３】
そして、端末装置３０が、生成された署名情報を付加したＨＴＴＰリクエストをサーバ１０に対して送信する（ステップＳ１２０）。このステップは、端末装置３０のリクエスト送信部５３の機能に対応する。
【００３４】
次に、サーバ１０が、端末装置３０からのＨＴＴＰリクエストに応答し、このＨＴＴＰリクエストとユーザ毎鍵情報管理テーブル４１ａに記憶されているログインユーザの鍵情報とに基づいて署名情報を生成する（ステップＳ１３０）。このステップは、サーバ１０の正当性確認部４３の機能に対応する。署名情報は、ステップＳ１１０において端末装置３０が署名情報を生成するときの生成ルールと同じルールに従って生成され、例えば、ＨＭＡＣ方式に従って、ＨＴＴＰリクエスト及び鍵情報に、予め定められたハッシュ関数（端末装置３０が署名情報を生成するときに用いるハッシュ関数と同一のハッシュ関数）を適用することによって生成される。ここで、ログインユーザの鍵情報は、端末装置３０のユーザが、ゲームアプリケーション５１ａを介してサーバ１０にログインしたときに用いた「ユーザＩＤ」に対応する鍵情報である。
【００３５】
そして、サーバ１０が、生成した署名情報と、端末装置３０からのＨＴＴＰリクエストに付加された署名情報との比較に基づいて、このＨＴＴＰリクエストの正当性を確認する（ステップＳ１４０）。このステップは、サーバ１０の正当性確認部４３の機能に対応する。具体的には、生成した署名情報とＨＴＴＰリクエストに付加された署名情報とが一致する場合には、このＨＴＴＰリクエストが正当であると確認され、生成した署名情報とＨＴＴＰリクエストに付加された署名情報とが一致しない（異なる）場合には、このＨＴＴＰリクエストが正当であると確認されない（不正なＨＴＴＰリクエストであると判断される）。
【００３６】
ここで、上述したように、ユーザ毎鍵情報管理テーブル４１ａには、ユーザ毎の鍵情報として、現在の鍵情報に加え、前回の鍵情報が管理されており、ステップＳ１３０−Ｓ１４０における署名情報の生成及び署名情報の比較に基づくＨＴＴＰリクエストの正当性の確認は、現在の鍵情報に加え、前回の鍵情報に基づいて行われ得る。例えば、ログインユーザの現在の鍵情報に基づいて生成された署名情報とＨＴＴＰリクエストに付加された署名情報との比較に基づいてＨＴＴＰリクエストが正当であると確認されない場合には、ログインユーザの前回の鍵情報に基づいて生成された署名情報とＨＴＴＰリクエストに付加された署名情報との比較に基づくＨＴＴＰリクエストの正当性の確認が実行される。
【００３７】
また、一実施形態において、ＨＴＴＰリクエストが正当であると確認されない場合（具体的には、生成した署名情報とＨＴＴＰリクエストに付加された署名情報とが一致しない場合）に、サーバ１０が、様々な処理を実行するように構成され得る。例えば、ＨＴＴＰリクエストが正当であると確認されない場合に、サーバ１０が、端末装置３０との間の通信を中断する処理を実行したり、端末装置３０（ゲームアプリケーション５１ａ）に対してエラーメッセージを送信する処理を実行し得る。また、ＨＴＴＰリクエストが正当であると確認されないことを、ログインユーザを特定可能な情報（例えば、ユーザＩＤ）と共に情報記憶部４１（ストレージ１５等）に記録する処理を実行し得る。この場合、ＨＴＴＰリクエストが正当であると確認されないことを記録する一方で、端末装置３０との間の通信及びオンラインゲームの提供自体を継続するようにしても良い。
【００３８】
サーバ１０がＨＴＴＰリクエストの正当性を確認すると、次に、サーバ１０が、ＨＴＴＰリクエストとユーザ毎鍵情報管理テーブル４１ａに記憶されているログインユーザの鍵情報とに基づいて所定の更新ルールに従ってこのログインユーザの鍵情報を更新する（ステップＳ１５０）。このステップは、サーバ１０の鍵情報更新部４４の機能に対応する。一実施形態では、鍵情報を更新するための更新ルールは、署名情報を生成するための上述した生成ルールと同一のルールとなっている。具体的には、一実施形態における鍵情報の更新ルールは、例えば、上述したＨＭＡＣ方式に従って、ＨＴＴＰリクエスト及び鍵情報にハッシュ関数を適用することによって生成される値を新たな鍵情報とするというルールである。従って、言い換えると、一実施形態における鍵情報の更新ルールは、上述した生成ルールに従って生成された署名情報が新たな鍵情報となるように鍵情報を更新するというルールである。また、上述したように、ユーザ毎鍵情報管理テーブル４１ａは、現在の鍵情報に加え、前回の鍵情報を管理するから、ステップＳ１５０においては、「現在の鍵情報」が「前回の鍵情報」に設定されると共に上述した新たな鍵情報が「現在の鍵情報」に設定される。
【００３９】
次に、サーバ１０が、ＨＴＴＰリクエストに対するＨＴＴＰレスポンスを生成して端末装置３０に対して送信する（ステップＳ１６０）。このステップは、サーバ１０のレスポンス送信部４５の機能に対応する。ＨＴＴＰレスポンスは、例えば、ステータスライン（例えば、プロトコルバージョン、ステータスコード、及びテキストフレーズから成る）、ヘッダ、及びボディから成る。
【００４０】
そして、端末装置３０が、ＨＴＴＰリクエストに対するサーバ１０からのＨＴＴＰレスポンスに応答し、このＨＴＴＰリクエスト（ＨＴＴＰレスポンスの元となるＨＴＴＰリクエスト）と鍵情報格納領域５１ｂに格納されている鍵情報とに基づいて所定の更新ルールに従ってこの鍵情報を更新する（ステップＳ１７０）。このステップは、端末装置３０の鍵情報更新部５４の機能に対応する。鍵情報は、ステップＳ１５０においてサーバ１０が鍵情報を更新するときの更新ルールと同じルールに従って更新される。例えば、鍵情報は、上述したＨＭＡＣ方式に従って、ＨＴＴＰリクエスト及び鍵情報にハッシュ関数を適用することによって生成された値を新たな鍵情報とするというルールに従って更新され、言い換えると、上述した生成ルールに従って生成された署名情報が新たな鍵情報となるように鍵情報が更新される。
【００４１】
一実施形態では、上述した通信（ステップＳ１００−Ｓ１７０）が、ログインユーザにオンラインゲームを提供する間、サーバ１０と端末装置３０との間で繰り返し実行される。次に、こうした通信の具体例を、図５を参照しつつ説明する。図５の例では、鍵情報の初期値として「ｋｅｙ０」という既定値が設定されているものとし、具体的には、端末装置３０側の鍵情報格納領域５１ｂにおいて管理される鍵情報ｓｉｇ＿ｋｅｙ、サーバ１０側のユーザ毎鍵情報管理テーブル４１ａにおいて管理される現在の鍵情報ｓｉｇ＿ｋｅｙ＿ｎ及び前回の鍵情報ｓｉｇ＿ｋｅｙ＿ｏに、それぞれ初期値として「ｋｅｙ０」という既定値が設定されているものとする。
【００４２】
図５の具体例では、まず、端末装置３０からサーバ１０に対してＨＴＴＰリクエスト１が送信される（ステップＳ２００）。このＨＴＴＰリクエスト１には署名情報Ｓｉｇが付加されており、この署名情報Ｓｉｇには、ＨＴＴＰリクエスト「ｍｓｇ１」及び鍵情報「ｋｅｙ０」（初期値）に対して予め定められたハッシュ関数「ＳＨＡ」を適用した「ＳＨＡ（ｍｓｇ１，ｋｅｙ０）」という値が設定されている。
【００４３】
そして、サーバ１０によって、端末装置３０から受信したＨＴＴＰリクエスト１の正当性が確認される（ステップ２１０）。ここでは、端末装置３０側の鍵情報ｓｉｇ＿ｋｅｙとサーバ１０側の鍵情報（ｓｉｇ＿ｋｅｙ＿ｎ及びｓｉｇ＿ｋｅｙ＿ｏ）が一致している（共に「ｋｅｙ０」である）から、サーバ１０側で生成される署名情報「ＳＨＡ（ｍｓｇ１，ｋｅｙ０）」は、ＨＴＴＰリクエスト１に付加された上述した署名情報Ｓｉｇの値と一致し、ＨＴＴＰリクエスト１が正当であることが確認される。
【００４４】
次に、サーバ１０によって、生成した署名情報「ＳＨＡ（ｍｓｇ１，ｋｅｙ０）」となるように現在の鍵情報ｓｉｇ＿ｋｅｙ＿ｎが更新され（ステップＳ２２０）、サーバ１０から端末装置３０に対してＨＴＴＰレスポンス１が送信される（ステップＳ２３０）。
【００４５】
そして、ＨＴＴＰレスポンス１を受信した端末装置３０によって、ＨＴＴＰリクエスト１に付加された署名情報Ｓｉｇ「ＳＨＡ（ｍｓｇ１，ｋｅｙ０）」となるように鍵情報ｓｉｇ＿ｋｅｙが更新され（ステップＳ２４０）、端末装置３０からサーバ１０に対して次のＨＴＴＰリクエスト２が送信される（ステップＳ２５０）。このＨＴＴＰリクエスト２に付加される署名情報Ｓｉｇには、ＨＴＴＰリクエスト「ｍｓｇ２」及び鍵情報「ＳＨＡ（ｍｓｇ１，ｋｅｙ０）」に対してハッシュ関数「ＳＨＡ」を適用した「ＳＨＡ（ｍｓｇ２，ＳＨＡ（ｍｓｇ１，ｋｅｙ０））」という値が設定されている。
【００４６】
次に、サーバ１０によって、端末装置３０から受信したＨＴＴＰリクエスト２の正当性が確認される（ステップ２６０）。ここでは、端末装置３０側の鍵情報ｓｉｇ＿ｋｅｙとサーバ１０側の現在の鍵情報ｓｉｇ＿ｋｅｙ＿ｎが一致している（共に「ＳＨＡ（ｍｓｇ１，ｋｅｙ０）」である）から、サーバ１０側で生成される署名情報は、ＨＴＴＰリクエスト２に付加された上述した署名情報Ｓｉｇの値と一致し、ＨＴＴＰリクエスト２が正当であることが確認される。
【００４７】
そして、サーバ１０によって、現在の鍵情報ｓｉｇ＿ｋｅｙ＿ｎの値となるように前回の鍵情報ｓｉｇ＿ｋｅｙ＿ｏが更新されると共に、生成した署名情報「ＳＨＡ（ｍｓｇ２，ＳＨＡ（ｍｓｇ１，ｋｅｙ０））」となるように現在の鍵情報ｓｉｇ＿ｋｅｙ＿ｎが更新され（ステップＳ２７０）、サーバ１０から端末装置３０に対してＨＴＴＰレスポンス２が送信される（ステップＳ２８０）。
【００４８】
次に、ＨＴＴＰレスポンス２を受信した端末装置３０によって、ＨＴＴＰリクエスト２に付加された署名情報Ｓｉｇ「ＳＨＡ（ｍｓｇ２，ＳＨＡ（ｍｓｇ１，ｋｅｙ０））」となるように鍵情報ｓｉｇ＿ｋｅｙが更新される（ステップＳ２９０）。そして、上述したステップＳ２５０−Ｓ２８０と同様に、端末装置３０からサーバ１０に対してＨＴＴＰリクエスト３が送信されると共に、サーバ１０から端末装置３０に対して、ＨＴＴＰリクエスト３に対するＨＴＴＰレスポンス３が送信される（ステップＳ３００−Ｓ３３０）。
【００４９】
ここで、ステップＳ３３０においてサーバ１０から端末装置３０に対して送信されたＨＴＴＰレスポンス３が、何らかの理由で端末装置３０に到達しない場合には、端末装置３０からサーバ１０に対して、ＨＴＴＰリクエスト３が再送される（ステップＳ３４０）。
【００５０】
そして、サーバ１０によって、端末装置３０から再び受信したＨＴＴＰリクエスト３の正当性が確認される（ステップ３５０）。ここでは、端末装置３０側の鍵情報ｓｉｇ＿ｋｅｙとサーバ１０側の現在の鍵情報ｓｉｇ＿ｋｅｙ＿ｎとは一致していないものの、鍵情報ｓｉｇ＿ｋｅｙと前回の鍵情報ｓｉｇ＿ｋｅｙ＿ｏとは一致しているから、サーバ１０側で前回の鍵情報ｓｉｇ＿ｋｅｙ＿ｏに基づいて生成される署名情報は、ＨＴＴＰリクエスト３に付加された署名情報Ｓｉｇ「ＳＨＡ（ｍｓｇ３，ＳＨＡ（ｍｓｇ２，ＳＨＡ（ｍｓｇ１，ｋｅｙ０）））」と一致し、ＨＴＴＰリクエスト３が正当であることが確認される。このように、一実施形態では、サーバ１０側で、ログインユーザ毎の鍵情報として、現在の鍵情報（ｓｉｇ＿ｋｅｙ＿ｎ）に加え、前回の鍵情報（ｓｉｇ＿ｋｅｙ＿ｏ）を管理するから、ＨＴＴＰリクエストの再送が必要となった場合等においても、ＨＴＴＰリクエストの正当性を適切に確認することができる。
【００５１】
ここで、ステップＳ３５０のように、ログインユーザの現在の鍵情報に基づいて生成された署名情報とＨＴＴＰリクエストに付加された署名情報との比較に基づいてＨＴＴＰリクエストが正当であると確認されず、ログインユーザの前回の鍵情報に基づいて生成された署名情報とＨＴＴＰリクエストに付加された署名情報との比較に基づいてＨＴＴＰリクエストが正当であると確認される場合には、サーバ１０側での鍵情報の更新はスキップされ、ＨＴＴＰリクエスト３に対するＨＴＴＰレスポンス３が送信される（ステップＳ３６０）。そして、端末装置３０によって、ＨＴＴＰリクエスト３に付加された署名情報Ｓｉｇ「ＳＨＡ（ｍｓｇ３，ＳＨＡ（ｍｓｇ２，ＳＨＡ（ｍｓｇ１，ｋｅｙ０）））」となるように鍵情報ｓｉｇ＿ｋｅｙが更新される（ステップＳ３７０）。
【００５２】
ここで、端末装置３０のユーザが、ゲームアプリケーション５１ａを介してサーバ１０にログインしたときのユーザＩＤと同じユーザＩＤを用いて、ゲームアプリケーション５１ａを改変したチート用クライアントを介してサーバ１０にログインし、サーバ１０との通信を試みた場合の動作について、図６を参照しつつ説明する。図６の例では、正規の（改変されていない）ゲームアプリケーション５１ａを介した端末装置３０とサーバ１０との間の通信によって、ＨＴＴＰリクエスト１及びＨＴＴＰレスポンス１の送受信、並びに、ＨＴＴＰリクエスト２及びＨＴＴＰレスポンス２の送受信が実行され、端末装置３０側の鍵情報ｓｉｇ＿ｋｅｙには「ｋｅｙ３」が設定され、サーバ１０側の現在の鍵情報ｓｉｇ＿ｋｅｙ＿ｎには「ｋｅｙ３」が設定されると共に前回の鍵情報ｓｉｇ＿ｋｅｙ＿ｎには「ｋｅｙ２」が設定されている（ステップＳ４００−Ｓ４７０）。そして、この状態において、チート用クライアントが実行されている端末装置（チート用端末）からサーバ１０に対してＨＴＴＰリクエストが送信されると（ステップＳ４８０）、このＨＴＴＰリクエストに付加される署名情報Ｓｉｇは、サーバ１０側の鍵情報（「ｋｅｙ３」及び「ｋｅｙ２」）とは異なる鍵情報（例えば、初期値「ｋｅｙ０」）に基づいて生成されたものであるから、サーバ１０によって生成される署名情報とは一致しない。従って、チート用端末からサーバ１０に送信されたＨＴＴＰリクエストは正当であると確認されず、不正なＨＴＴＰリクエストであると判定される（ステップＳ４９０）。このように、一実施形態のシステム１は、ユーザが、同一のユーザＩＤを用いて（同じログインユーザで）、正規のゲームアプリケーション５１ａを介してサーバ１０との通信を実行しつつ、チート用クライアントを介してサーバ１０との通信を実行するのを抑制することができる。
【００５３】
また、上述したチート用クライアントは、正規のゲームアプリケーション５１ａが実行されている端末装置３０上においても実行され得るが、この場合であっても、鍵情報格納領域５１ｂはゲームアプリケーション５１ａの専用領域として構成されており、チート用クライアントは鍵情報格納領域５１ｂから鍵情報を取得することができないから、チート用クライアントを介してサーバ１０に送信されるＨＴＴＰリクエストは、図６の例と同様に、正当であると確認されず、不正なＨＴＴＰリクエストであると判定される。
【００５４】
また、鍵情報格納領域５１ｂは、不揮発性の領域として構成され、端末装置３０の再起動等が行われても記憶されている（更新された）鍵情報は維持されるから、例えば、端末装置３０の再起動等が行われた直後であっても、チート用クライアントを介してサーバ１０に送信されるＨＴＴＰリクエストは、図６の例と同様に、正当であると確認されず、不正なＨＴＴＰリクエストであると判定される。
【００５５】
以上説明した実施形態におけるシステム１は、ゲームアプリケーション５１ａ（所定のプログラム）を介してサーバ１０にログインしたログインユーザに対するオンラインゲーム（所定のサービス）の提供を、サーバ１０と端末装置３０との間のＨＴＴＰ通信によって実現し、このＨＴＴＰ通信は、端末装置３０が、ＨＴＴＰリクエストと、ゲームアプリケーション５１ａの専用領域である鍵情報格納領域５１ｂに格納されている鍵情報とに基づいて所定の生成ルールに従って署名情報を生成し、生成した署名情報を付加したＨＴＴＰリクエストをサーバに対して送信するステップと、サーバ１０が、端末装置３０からのＨＴＴＰリクエストに応答し、このＨＴＴＰリクエスト及びユーザ毎鍵情報管理テーブル４１ａに記憶されているログインユーザの鍵情報に基づいて上述した所定の生成ルールに従って署名情報を生成し、この生成した署名情報とＨＴＴＰリクエストに付加された署名情報との比較に基づいてＨＴＴＰリクエストの正当性を確認するステップと、サーバ１０が、ＨＴＴＰリクエストとユーザ毎鍵情報管理テーブル４１ａに記憶されているログインユーザの鍵情報とに基づいて所定の更新ルールに従ってこのログインユーザの鍵情報を更新するステップと、サーバ１０が、ＨＴＴＰリクエストに対するＨＴＴＰレスポンスを端末装置３０に対して送信するステップと、端末装置３０が、ＨＴＴＰリクエストに対するサーバ１０からのＨＴＴＰレスポンスに応答し、このＨＴＴＰリクエストと鍵情報格納領域５１ｂに格納されている鍵情報とに基づいて上述した所定の更新ルールに従ってこの鍵情報を更新するステップと、を含む。このように、一実施形態におけるシステム１は、ユーザ毎の鍵情報に基づいて生成される署名情報の比較に基づいてＨＴＴＰリクエストの正当性を確認し、この鍵情報は、ＨＴＴＰ通信におけるＨＴＴＰリクエスト（の内容）に基づいて更新されると共にゲームアプリケーション５１ａの専用領域に格納されているから、ゲームアプリケーション５１ａ以外の他のプログラム（例えば、チート用クライアント）が、更新される鍵情報を取得するのを抑制すると共に、同一のユーザＩＤを用いて（同じログインユーザで）、ゲームアプリケーション５１ａ以外の他のプログラムを介してサーバ１０との間で通信を実行することを抑制することができる。このように、上述した実施形態は、ゲームデータ自体をチェックすることなしに、改変されたソフトウェア等を用いた不正な通信を抑制することができる。
【００５６】
上述した実施形態では、鍵情報を更新するための更新ルールを、署名情報を生成するための生成ルールと同一のルールとした（鍵情報に基づいて生成された署名情報が新たな鍵情報となるように鍵情報を更新するようにした）が、鍵情報を更新するための更新ルールと署名情報を生成するための生成ルールとは、必ずしも同一のルールとする必要はない。
【００５７】
上述した実施形態では、サーバ１０と端末装置３０との間の通信は、ＨＴＴＰに従うＨＴＴＰ通信によって実現されるものとしたが、本発明の実施形態は、ＨＴＴＰ以外の様々なリクエスト−レスポンス型のプロトコルに従う通信に適用することが可能である。
【００５８】
上述した実施形態では、ゲームアプリケーション５１ａを介して特定のオンラインゲームを提供する場合について説明したが、本発明の実施形態は、オンラインゲーム以外の様々なサービスを提供する場合に適用することが可能である。
【００５９】
本明細書で説明された処理及び手順は、実施形態中で明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。より具体的には、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明される処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
【００６０】
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び／又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
【００６１】
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。
【符号の説明】
【００６２】
１  システム
１０  サーバ
２０  通信網
３０  端末装置
４１  情報記憶部
４１ａ  ユーザ毎鍵情報管理テーブル
４２  ゲーム進行制御部
４３  正当性確認部
４４  鍵情報更新部
４５  レスポンス送信部
５１  情報記憶部
５１ａ  ゲームアプリケーション
５１ｂ  鍵情報格納領域
５２  ゲーム進行制御部
５３  リクエスト送信部
５４  鍵情報更新部
【要約】
【課題】  ゲームデータ自体をチェックすることなしに、改変されたソフトウェア等を用いた不正な通信を抑制する。
【解決手段】  一実施形態に係るシステムは、ログインユーザに対するオンラインゲームの提供をサーバと端末装置との間のＨＴＴＰ通信によって実現し、このＨＴＴＰ通信は、端末装置がＨＴＴＰリクエストと端末側の鍵情報とに基づいて生成した署名情報が付加されたＨＴＴＰリクエストを送信し、サーバがＨＴＴＰリクエスト及びサーバ側のログインユーザの鍵情報に基づいて生成した署名情報とＨＴＴＰリクエストに付加された署名情報との比較に基づいてＨＴＴＰリクエストの正当性を確認し、サーバがＨＴＴＰリクエストとサーバ側の鍵情報とに基づいてこの鍵情報を更新し、サーバがＨＴＴＰレスポンスを送信し、端末装置がＨＴＴＰリクエストと端末側の鍵情報とに基づいてこの鍵情報を更新することを含む。
【選択図】  図４【図１】
0005838248.tif 000002
【図２】
0005838248.tif 000003
【図３】
0005838248.tif 000004
【図４】
0005838248.tif 000005
【図５】
0005838248.tif 000006
【図６】
0005838248.tif 000007