(57)【特許請求の範囲】
【請求項１】
処理用パラメータを用いて前記処理用パラメータの変更を伴う演算処理を行うパラメータ変更手段と、
前記パラメータ変更手段において前記処理用パラメータが変更される際に、前記処理用パラメータに素数での除算による余りを求める演算を施した値を持つ検算用パラメータに対して前記パラメータ変更手段における前記演算処理を施したうえで、さらに前記素数での除算による余りを求める演算を施した新たな検算用パラメータを求める検算用パラメータ演算手段と、
前記処理用パラメータに対して前記素数での除算による余りを求める演算を施した値と、前記新たな検算用パラメータと、を比較して前記処理用パラメータが改竄されたか否かを判定する判定手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記素数は、複数の異なる素数の群からランダムに選択されることを特徴とする情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記処理用パラメータをそれぞれ異なる素数で除算した余りの値を持つ複数の前記検算用パラメータを用いて、
前記判定手段は、前記処理用パラメータを前記異なる素数のそれぞれで除算した余りの値と、前記検算用パラメータのそれぞれと、を比較して前記処理用パラメータが改竄されたか否かを判定することを特徴とする情報処理装置。
【請求項４】
請求項１〜３のいずれか１項に記載の情報処理装置であって、
前記処理用パラメータが参照される毎に前記検算用パラメータ演算手段及び前記判定手段による処理を実行し、前記処理用パラメータが改竄されたか否かを判定することを特徴とする情報処理装置。
【請求項５】
コンピュータを、
処理用パラメータを用いて前記処理用パラメータの変更を伴う演算処理を行うパラメータ変更手段と、
前記パラメータ変更手段において前記処理用パラメータが変更される際に、前記処理用パラメータに素数での除算による余りを求める演算を施した値を持つ検算用パラメータに対して前記パラメータ変更手段における前記演算処理施したうえで、さらに前記素数での除算による余りを求める演算を施した新たな検算用パラメータを求める検算用パラメータ演算手段と、
前記処理用パラメータに対して前記素数での除算による余りを求める演算を施した値と、前記新たな検算用パラメータと、を比較して前記処理用パラメータが改竄されたか否かを判定する判定手段と、
して機能させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
インターネット等の情報通信網を介して提供されるソーシャルゲーム等のサービスにおいて、サービスで利用されるデータ（パラメータ）をクライアント側で不正に改竄する行為（いわゆる、チート行為）が問題となっている。その対策として、重要なデータ（パラメータ）については排他的論理和（ＸＯＲ）を用いる等の難読化の技術が適用されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ところで、サービスにおいてデータ（パラメータ）を変更する処理を行う際、難読化されたデータ（パラメータ）を一旦元の値に戻したうえで変更処理が施される。この場合、レジスタ等に難読化されていない元の値が格納されるため、このレジスタの値を読み出すことによって攻撃者にデータ（パラメータ）の値が知られて改竄されるおそれがある。このようなデータ（パラメータ）の改竄が行われたか否かを検出する技術が望まれている。
【０００４】
従来のチェックサムによる改竄検出方法等では、レジスタの値が改竄された場合には改竄後のレジスタの値から検査用の値が生成されることになり、レジスタに格納された値の改竄の検出には有効でなかった。
【０００５】
そこで、本発明は、コンピュータを用いたサービスにおいてデータ（パラメータ）の改竄を検出することを可能とする情報処理装置及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の１つの態様は、処理用パラメータを用いて前記処理用パラメータの変更を伴う演算処理を行うパラメータ変更手段と、前記パラメータ変更手段において前記処理用パラメータが変更される際に、前記処理用パラメータに所定の演算を施した値を持つ検算用パラメータに対して前記パラメータ変更手段における演算処理に対応する演算処理を行う検算用パラメータ演算手段と、前記処理用パラメータに対して前記所定の演算を施した値と、前記検算用パラメータと、を比較して前記処理用パラメータが改竄されたか否かを判定する判定手段と、を備えることを特徴とする情報処理装置である。
【０００７】
本発明の別の態様は、コンピュータを、処理用パラメータを用いて前記処理用パラメータの変更を伴う演算処理を行うパラメータ変更手段と、前記パラメータ変更手段において前記処理用パラメータが変更される際に、前記処理用パラメータに所定の演算を施した値を持つ検算用パラメータに対して前記パラメータ変更手段における演算処理に対応する演算処理を行う検算用パラメータ演算手段と、前記処理用パラメータに対して前記所定の演算を施した値と、前記検算用パラメータと、を比較して前記処理用パラメータが改竄されたか否かを判定する判定手段と、して機能させることを特徴とする情報処理プログラムである。
【０００８】
ここで、前記所定の演算は、素数での除算による余りを求める演算であることが好適である。また、前記素数は、複数の異なる素数の群からランダムに選択されることが好適である。
【０００９】
また、前記処理用パラメータをそれぞれ異なる素数で除算した余りの値を持つ複数の前記検算用パラメータを用いて、前記判定手段は、前記処理用パラメータを前記異なる素数のそれぞれで除算した余りの値と、前記検算用パラメータのそれぞれと、を比較して前記処理用パラメータが改竄されたか否かを判定することが好適である。
【００１０】
また、前記処理用パラメータが参照される毎に前記検算用パラメータ演算手段及び前記判定手段による処理を実行し、前記処理用パラメータが改竄されたか否かを判定することが好適である。
【発明の効果】
【００１１】
本発明によれば、コンピュータを用いたサービスにおいてデータ（パラメータ）の改竄を検出することを可能とし、データ（パラメータ）の改竄を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態における情報処理システムの構成を示す図である。
【図２】本発明の実施の形態におけるサーバの構成を示す図である。
【図３】本発明の実施の形態におけるクライアントの構成を示す図である。
【図４】本発明の実施の形態におけるパラメータの改竄検出方法を示すフローチャートである。
【発明を実施するための形態】
【００１３】
本発明の実施の形態における情報処理システム１００は、図１に示すように、サーバ１０２及びクライアント１０４を含んで構成される。サーバ１０２とクライアント１０４は、インターネット等の情報通信網１０６を介して情報交換可能に接続される。本実施の形態では、サーバ１０２からプログラムやデータ（パラメータ）を送信し、クライアント１０４にてこれらの情報を受信して電子ゲームを進行させる態様について説明する。ただし、本発明の適用範囲はこれに限定されるものではなく、データ（パラメータ）の値を変更する処理を含むものであればよい。
【００１４】
サーバ１０２は、図２に示すように、処理部１０、記憶部１２、入力部１４、出力部１６及び通信部１８を含んで構成される。処理部１０は、ＣＰＵ等の演算処理を行う手段を含む。処理部１０は、記憶部１２に記憶されているゲーム提供プログラムを実行することによって、本実施の形態における情報処理システム１００においてクライアント１０４に電子ゲームを提供するための機能を実現する。記憶部１２は、半導体メモリやメモリカード等の記憶手段を含む。記憶部１２は、処理部１０とアクセス可能に接続され、ゲーム提供プログラム、その処理に必要な情報を記憶する。入力部１４は、情報を入力する手段を含む。入力部１４は、例えば、管理者からの入力を受けるキーボード、タッチパネル、ボタン等を備える。出力部１６は、管理者から入力情報を受け付けるためのユーザインターフェース画面（ＵＩ）等のサーバ１０２での処理結果を出力する手段を含む。出力部１６は、例えば、管理者に対して画像を呈示するディスプレイを備える。通信部１８は、情報通信網１０６を介して、クライアント１０４との情報の通信を行うインターフェースを含んで構成される。通信部１８による通信は有線及び無線を問わない。
【００１５】
クライアント１０４は、図３に示すように、処理部２０、記憶部２２、入力部２４、出力部２６及び通信部２８を含んで構成される。処理部２０は、ＣＰＵ等の演算処理を行う手段を含む。処理部２０は、記憶部２２に記憶されているクライアントプログラムを実行することによって、本実施の形態における電子ゲームを進行させる情報処理装置としての機能を実現する。例えば、クライアントプログラムは、クライアント１０４においてウェブブラウザの機能を利用してクライアント１０４から提供されるデータ（ゲームのパラメータ等）を用いて電子ゲームにおける処理を実現する。記憶部２２は、半導体メモリやメモリカード等の記憶手段を含む。記憶部２２は、処理部２０とアクセス可能に接続され、クライアントプログラム、その処理に必要な情報を記憶する。入力部２４は、情報を入力する手段を含む。入力部２４は、例えば、ユーザからの入力を受けるキーボード、タッチパネル、ボタン等を備える。出力部２６は、ユーザから入力情報を受け付けるためのユーザインターフェース画面（ＵＩ）や投稿された情報を呈示する画面等のクライアント１０４での処理に必要な情報を出力する手段を含む。出力部２６は、例えば、ユーザに対して画像を呈示するディスプレイを備える。通信部２８は、情報通信網１０６を介して、サーバ１０２との情報の通信を行うインターフェースを含んで構成される。通信部２８による通信は有線及び無線を問わない。
【００１６】
クライアント１０４は、例えば、パーソナルコンピュータ、タブレット端末、スマートフォン端末、携帯電話等とすることができる。
【００１７】
電子ゲームでは、クライアント１０４におけるプレイヤによるプレイの状況に応じてゲームで使用されるデータ（パラメータ）が変更される処理が行われる。例えば、クライアント１０４はサーバ１０２へ変更された情報を送信する。サーバ１０２は、変更された情報を記憶部１２に記憶して管理する。
【００１８】
以下、図４のフローチャートを参照して、クライアント１０４におけるデータ（以下、パラメータと記述する）の変更処理及び改竄検出処理について説明する。クライアント１０４で使用されるデータは、上述のように、サーバ１０２からクライアント１０４へ予め送信されているものとする。
【００１９】
なお、処理用パラメータは、クライアント１０４において実行されるアプリケーションで使用されるパラメータである。例えば、クライアント１０４で実行される電子ゲームに登場するキャラクタの特性を示すパラメータ（例えばヒットポイントＨＰ、マジックポイントＭＰ等）である。
【００２０】
また、検算用パラメータは、ステップＳ１０において変更される処理用パラメータが改竄されているか否かを検出するために用いられるパラメータであり、処理用パラメータに対して所定の演算を施して得られる値をもつ。所定の演算は、例えば、処理用パラメータに対して素数での除算を施した余りを求める演算とすることができる。検算用パラメータは、予め準備されて、クライアント１０４の記憶部２２に記憶されている。
【００２１】
例えば、サーバ１０２の記憶部１２に複数の素数の群を予め登録しておき、そのうち１つをランダムに選択して処理用パラメータをその素数で除算した余りを検算用パラメータとする。そして、サーバ１０２からクライアント１０４へ処理用パラメータ、検算用パラメータ及び選択された素数を送信する。クライアント１０４は、サーバ１０２から受信した処理用パラメータを用いてアプリケーションの処理を行うと共に、検算用パラメータ及び受信した素数を用いて処理用パラメータが不正に改竄されているか否かを判定する。
【００２２】
具体例として、処理用パラメータの値が１３０であり、選択された素数が７である場合、処理用パラメータを選択された素数で除した余りは４となる。したがって、検算用パラメータは４とされる。そこで、ステップＳ１０の前にサーバ１０２からクライアント１０４へ処理用パラメータとして１３０、検算用パラメータとして４及び選択された素数として７が送信される。
【００２３】
ステップＳ１０では、クライアント１０４において処理用パラメータの変更処理が行われる。当該ステップでの処理によって、クライアント１０４はパラメータ変更手段として機能する。処理部２０は、記憶部１２に予め記憶されている電子ゲームに関する処理用パラメータを読み出し、入力部１４によるプレイヤの操作等に応じて処理用パラメータの値を変更する処理を行う。例えば、電子ゲームの進行に伴ってキャラクタの処理用パラメータ（例えばヒットポイントＨＰ、マジックポイントＭＰ等）を増減させる。
【００２４】
このとき、処理用パラメータの値は処理部２０のレジスタ等に一旦記憶されたうえで変更処理が行われる。例えば、処理用パラメータが出力部２６であるディスプレイ上に表示されていた場合、レジスタの値と表示されている値とを比較することによってどのレジスタに処理用パラメータが格納されているのか比較的容易に知られる可能性がある。そのため、処理用パラメータを格納しているレジスタが特定され、その値が不正に改竄されるおそれがある。
【００２５】
ステップＳ１２では、クライアント１０４において検算用パラメータの変更処理が行われる。当該ステップでの処理によって、クライアント１０４は検算用パラメータ演算手段として機能する。処理部２０は、ステップＳ１０において処理用パラメータに施された変更に対応する変更処理を検算用パラメータにも施す。
【００２６】
例えば、検算用パラメータが処理用パラメータに対して素数で除算した余りである場合、ステップＳ１０における処理用パラメータの増減値が検算用パラメータにそのまま加算される。具体例として、ステップＳ１０において処理用パラメータの値が１３０から５増加されて１３５にされたとすると、検算用パラメータの値は４から５増加されて９になり、さらに選択された素数７によって除算された余りの２とされる。
【００２７】
このとき、検算用パラメータの値は処理部２０のレジスタ等に一旦記憶されたうえで演算処理が行われる。ただし、検算用パラメータは出力部２６であるディスプレイ上に表示されるものではなく、処理用パラメータにどのような演算を施して検算用パラメータの値が得られるのかも容易に知られるものではない。したがって、どのレジスタに検算用パラメータが格納されているのか知られる可能性は低く、検算用パラメータが改竄されるおそれは低い。
【００２８】
ステップＳ１４では、処理用パラメータが改竄されているか否かが判定される。当該ステップでの処理によって、クライアント１０４は判定手段として機能する。処理部２０は、検算用パラメータに施された所定の演算を処理用パラメータにも施し、得られた値と検算用パラメータと比較することによって処理用パラメータが改竄されているか否かを判定する。
【００２９】
例えば、検算用パラメータの値を求める所定の演算が選択された素数による除算の余りを求める演算である場合、処理用パラメータに対して当該所定の演算を施した値と検算用パラメータの値を比較する。具体例として、ステップＳ１０において処理用パラメータの値が１３５にされ、選択された素数が７である場合、処理用パラメータを選択された素数で除算した余りは２となる。したがって、処理用パラメータに不正な改竄がされていない場合には、処理用パラメータに所定の演算を施した値と検算用パラメータの値とが一致する。一方、処理用パラメータが改竄された場合、例えば１３５から２３５に改竄された場合、選択された素数で除算した余りは４となる。したがって、処理用パラメータに不正な改竄がされた場合には、処理用パラメータに所定の演算を施した値と検算用パラメータの値とが一致しない。
【００３０】
このように、処理用パラメータに所定の演算を施した値と検算用パラメータの値とを比較し、一致する場合には処理用パラメータは改竄されていないと判定し、一致しない場合には処理用パラメータは改竄されていると判定する。
【００３１】
なお、素数での除算の余りを所定の演算として採用する場合、処理用パラメータが改竄されたときにその値が素数の整数倍になる毎に処理用パラメータに所定の演算を施した値と検算用パラメータの値とが一致する。したがって、処理用パラメータに所定の演算を施した値と検算用パラメータの値とが一致したとしても必ずしも処理用パラメータが改竄されていないとはいえない。そこで、複数の異なる素数のそれぞれを用いて処理用パラメータを除算した余りの値のそれぞれを検算用パラメータとしてもよい。この場合、複数の検算用パラメータを用いて、処理用パラメータに対して複数の素数のそれぞれで除算した余りの値と比較して、すべての値が一致するか否かによって改竄が行われたか否かを判定すればよい。
【００３２】
従来のチェックサムによる改竄検出方法等とは異なり、本実施の形態における処理では、レジスタの値が改竄される前に検算用パラメータが生成される。すなわち、検算用パラメータが生成される時点を除いて処理用パラメータから検算用パラメータを生成する処理が行われず、処理用パラメータが改竄されたとしても検算用パラメータは改竄の影響を受けないので、改竄をより確実に検出することが可能となる。
【００３３】
また、本実施の形態では、処理用パラメータが変更される毎に判定処理を実行するものとしたが、これに限定されるものではなく、処理用パラメータが２回以上変更された場合に実行するようにしてもよい。
【００３４】
また、検算用パラメータを算出するための所定の演算は素数による除算の余りのみに限定されるものではない。例えば、検算用パラメータを処理用パラメータを所定数倍した値とし、処理用パラメータに増減があった場合には検算用パラメータに当該増減の値を所定数倍した値を加算するようにしてもよい。
【００３５】
なお、本実施の形態では電子ゲームシステムを例に説明したが、本発明の適用範囲はこれに限定されるものではなく、パラメータ等のデータを利用する情報処理装置であれば適用することができる。
【符号の説明】
【００３６】
１０  処理部、１２  記憶部、１４  入力部、１６  出力部、１８  通信部、２０  処理部、２２  記憶部、２４  入力部、２６  出力部、２８  通信部、１００  情報処理システム、１０２  サーバ、１０４  クライアント、１０６  情報通信網。
【要約】      （修正有）【課題】コンピュータを用いたサービスにおいてパラメータの改竄を検出し、パラメータの改竄を抑制する情報処理装置及び情報処理プログラムを提供する。【解決手段】クライアントは予めサーバから処理用パラメータと、処理用パラメータに対して所定の演算を施した値を持つ検算用パラメータを記憶している。クライアントにおいて、処理用パラメータの変更を伴う演算処理を行い、処理用パラメータが変更される際に、検算用パラメータに対しても対応する演算処理を行い、処理用パラメータに対して所定の演算を施した値と、検算用パラメータと、を比較することにより処理用パラメータが改竄されたか否かを判定する。【選択図】図４【図１】
0006049920.tif 000002
【図２】
0006049920.tif 000003
【図３】
0006049920.tif 000004
【図４】
0006049920.tif 000005