(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について、図面を用いて説明する。
【0013】
図1は、本発明の一実施形態に係る情報処理システムの構成を示している。
図1に示す情報処理システムは、m人(mは1以上の任意の整数値)のプレイヤーの夫々により使用されるプレイヤー端末1−1乃至1−mと、サーバ2とを含むシステムである。プレイヤー端末1−1乃至1−mの夫々と、サーバ2とは、インターネット等の所定のネットワークNを介して相互に接続されている。
【0014】
サーバ2は、プレイヤー端末1−1乃至1−mの夫々に対してゲームの実行環境を提供し、プレイヤー端末1−1乃至1−mの夫々において実行されるゲームに関する各種各様のサービスを提供する。
プレイヤー端末1−1乃至1−mの夫々は、各プレイヤーにより操作されるスマートフォン等で構成され、ゲームの実行等各種処理を実行する。
なお、以下、プレイヤー端末1−1乃至1−mの夫々を個々に区別する必要がない場合、これらをまとめて「プレイヤー端末1」と呼ぶ。
【0015】
図2は、
図1の情報処理システムのうち、プレイヤー端末1のハードウェア構成を示すブロック図である。
【0016】
プレイヤー端末1は、上述した様にスマートフォン等で構成される。
プレイヤー端末1は、CPU(Central Processing Unit)21と、ROM(Read Only Memory)22と、RAM(Random Access Memory)23と、バス24と、入出力インターフェース25と、タッチ操作入力部26と、表示部27と、入力部28と、記憶部29と、通信部30と、振動検出部31と、ドライブ32と、を備えている。
【0017】
CPU21は、ROM22に記録されているプログラム、又は、記憶部29からRAM23にロードされたプログラムに従って各種の処理を実行する。
RAM23には、CPU21が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【0018】
CPU21、ROM22及びRAM23は、バス24を介して相互に接続されている。このバス24にはまた、入出力インターフェース25も接続されている。入出力インターフェース25には、タッチ操作入力部26、表示部27、入力部28、記憶部29、通信部30、振動検出部31及びドライブ32が接続されている。
【0019】
タッチ操作入力部26は、例えば表示部27の表示面に積層される静電容量式又は抵抗膜式(感圧式)の位置入力センサにより構成され、タッチ操作がなされた位置の座標を検出する。
ここで、タッチ操作とは、タッチ操作入力部26に対する物体の接触の操作をいう。タッチ操作入力部26に対して接触する物体は、例えばプレイヤーの指やタッチペン等である。
表示部27は、液晶等のディスプレイにより構成され、ゲームに関する画像等、各種画像を表示する。
このように、本実施形態では、タッチ操作入力部26と表示部27とにより、タッチパネルが構成されている。
【0020】
ここで、タッチパネルにおけるタッチ操作の種類としては、例えばタップ、スワイプ及びフリックが存在する。
タップとは、表示面の所定領域に対して物体が接触し、その後、所定領域と同一の領域から物体が離間する操作のことをいう。
また、スワイプ及びフリックとは、表示媒体への物体の接触が開始された第1状態から、表示媒体への接触が維持されて物体の位置が変化する第2状態(タッチ位置が変化する第2状態)を経て、表示媒体への物体の接触が解除される第3状態(物体が表示媒体から離間する第3状態)まで至る一連の操作のことをいう。
詳細については後述するが、プレイヤー端末1のタッチパネルに対してこれらのタッチ操作が行われると、プレイヤー端末1に振動が生ずることとなる。
【0021】
入力部28は、各種ハードウェア釦等で構成され、プレイヤーの指示操作に応じて各種情報を入力する。
記憶部29は、DRAM(Dynamic Random Access Memory)等で構成され、各種データを記憶する。
通信部30は、インターネットを含むネットワークNを介して他の装置(
図1の例ではサーバ2や他のプレイヤー端末1)との間で行う通信を制御する。
【0022】
振動検出部31は、タッチパネルへのタッチ操作により生じた振動を検出する。例えばプレイヤー端末1がスマートフォンで構成される場合、当該スマートフォンに内蔵される加速度センサにより、振動検出部31は構成される。
なお、より正確には加速度センサは、ピエゾ抵抗型や静電容量型の検出機構により3軸加速度成分を検出して、その検出結果を表す3軸成分毎の加速度データを出力する。そして、サーバ2等が、当該加速度データに基づいて、プレイヤー端末1の振動を認識する。ただし、本明細書では、このような加速度データは、振動を認識可能であるため、振動の情報の一種として把握する。即ち、本明細書では、振動検出とは、振動そのものを検出することの他、振動を認識可能な情報(例えば加速度)を検出することも含む広義な概念である。
【0023】
ドライブ32は、必要に応じて設けられる。ドライブ32には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア41が適宜装着される。ドライブ32によってリムーバブルメディア41から読み出されたプログラムは、必要に応じて記憶部29にインストールされる。また、リムーバブルメディア41は、記憶部29に記憶されている各種データも、記憶部29と同様に記憶することができる。
【0024】
図3は、
図1の情報処理システムのうち、本発明の情報処理装置の一実施形態に係るサーバ2のハードウェア構成を示すブロック図である。
【0025】
サーバ2は、CPU51と、ROM52と、RAM53と、バス54と、入出力インターフェース55と、出力部56と、入力部57と、記憶部58と、通信部59と、ドライブ60とを備えている。
サーバ2の構成は、プレイヤー端末1の振動検出部31及びタッチパネルを除いた構成と基本的に同様であるので、ここではその説明は省略する。
【0026】
このような
図2のプレイヤー端末1及び
図3のサーバ2の各種ハードウェアと各種ソフトウェアとの協働により、プレイヤー端末1でゲームの実行が可能になる。
即ち、本実施形態の情報処理システムは、マルチバトル等複数のプレイヤーが参加可能なゲームに対する各種制御を実行できる。特に、情報処理システムは、操作履歴の改ざん行為等又はそのおそれを検出する制御(以下、「操作履歴改ざん検出制御」と呼ぶ)として、次のような制御を実行することができる。
【0027】
即ち、改ざん者の多くは、タッチ操作を行うべき場所とタイミングをコンピュータに判断させ、自然人(プレイヤー)による操作を伴わずに自動的にタッチ操作を行うプログラムを利用し、スマートフォン上のタッチ操作に関する情報を改ざんや偽造をし、操作履歴の改ざん行為等を行っている。従って、改ざん者の操作データは、自然人が物理的に入力した正規のタッチ操作に関する情報とは異なるものとなる。
そこで、自然人が物理的に入力した正規のタッチ操作か否かを検出することができれば、操作履歴の改ざん行為等又はそのおそれを検出することができる。
【0028】
ここで、プレイヤー端末1のタッチパネルへのタッチ操作が行われるときには、必ず、プレイヤー端末1本体に微細な振動が加えられる。この振動を検出することができれば、自然人が物理的に入力した正規のタッチ操作か否かを検出することが可能になる。
具体的には、プレイヤー端末1がスマートフォンの場合、加速度センサが内蔵されている。この加速度センサの出力値(又はその加工値)の時系列の情報からは、プレイヤー端末1が振動したか否か、振動しているならばどの程度振動しているのかを把握することができる。
また、加速度センサ以外の振動検出部31がプレイヤー端末1に備えられている場合も、振動検出部31の検出結果の時系列情報から、プレイヤー端末1が振動したか否か、振動しているならばどの程度振動しているのかを把握することができる。
そこで、以下、加速度センサを含め振動検出部31の検出結果の時系列情報を、「振動履歴情報」と呼ぶ。
この振動履歴情報を用いることで、自然人が物理的に入力した正規のタッチ操作か否かを検出することが可能になる。その理由は次の通りである。即ち、振動検出部31が出力する値は、物理現象から観測されるものである。プレイヤー端末1の持ち方、プレイヤー端末1本体のサイズや重さ、プレイヤー端末1に搭載される振動検出部31の種類等、多様な要因により、振動検出部31の値が決定される。従って、プログラムを用いて、振動検出部31の出力値の履歴を正確かつ自動的に再現することは困難である。
なお、以下では、加速度センサの出力結果の時系列情報を、振動履歴情報の一例として適宜用いて説明する。
【0029】
以上まとめると、本実施形態の操作履歴改ざん検出制御では、次のような制御処理が実行される。即ち、プレイヤー端末1(スマートフォン)は、そのタッチパネルへのタッチ操作が行われる際の振動を、スマートフォンの加速度センサ(振動検出部31)を用いて検出して、その検出結果の時系列情報を振動履歴情報としてサーバ2に送信する。つまり、サーバ2は、プレイヤー端末1の加速度センサの検出結果の時系列情報を、当該プレイヤー端末1の振動履歴情報として取得する。
また、サーバ2は、当該プレイヤー端末1におけるタッチ操作の履歴を示す情報(以下、「操作履歴情報」と呼ぶ)も取得する。
そして、サーバ2は、操作履歴情報と振動履歴情報とを比較することにより、当該操作履歴情報が、自然人が物理的に入力した正規のタッチ操作に関する情報であるのか、それとも、プログラム等により自動的に生成或いは改ざんされた情報であるのかを識別する。つまり、サーバ2は、改ざんや偽造が容易なタッチ操作に関する操作履歴情報の正当性を、改ざんや偽造が困難な振動履歴情報を用いて、検証することができる。
【0030】
ここで、自然人が物理的に入力したタッチ操作に起因する加速度センサの検出結果を、プログラム等が模すことは困難であることは上述した通りである。しかしながら、プログラム等が模すことは不可能であるとまでは言い切れない。
そこで本実施形態では、サーバ2は、振動履歴情報が正当か否かを判断する指標となる情報(以下、「指標情報」と呼ぶ)を保持している。本実施形態の指標情報は、自然人が物理的に入力したタッチ操作に起因する加速度センサの検出結果から得られた振動履歴情報に基づいて生成されたものである。
そして、サーバ2は、プレイヤー端末1から送信されてきた振動履歴情報と、この指標情報とを比較することで、当該振動履歴情報の正当性を検証する。
このように、本実施形態では、振動履歴情報と操作履歴情報という異なる2種類の情報源を用いて、振動履歴情報の正当性の確認後に操作履歴情報の正当性を確認するといった2ステップでの正当性の確認を行っている。つまり、サーバ2は、改ざんや偽造が容易なタッチ操作に関する操作履歴情報の正当性を、改ざんや偽造がされていないことが検証された振動履歴情報を用いて、検証することができる。
【0031】
さらに以下、このような操作履歴改ざん検出制御について、
図4及び
図5を参照して説明する。
【0032】
図4は、プレイヤー端末1のタッチパネルへのタップ操作をすることにより生じた振動を、プレイヤー端末1の加速度センサ(振動検出部31)で検出した場合における、その検出結果のタイミングチャートである。
本実施形態の操作履歴改ざん検出制御を実施するためには、プレイヤー端末1のタッチパネルへのタッチ操作が行われる際の微細な振動を正確に検知する必要がある。このためには、プレイヤー端末1の加速度センサが十分な分解能を有していることが前提となる。この前提が成立するのか否かについて本発明者が検証した結果を示す図が、
図4である。
具体的には、
図4(A)は実験者がプレイヤー端末1を手で持って3回タップ操作を行った場合のタイミングチャートである。
図4(B)はプレイヤー端末1を机の上に置いた状態で実験者が3回タップ操作を行った場合のタイミングチャートである。
なお、
図4の例では、加速度センサの検出結果はアナログ的に連続した曲線として描画されているが、実際には、各軸の加速度の値は10ミリ秒毎に取得されている。プレイヤー端末1として現在市販されている一般的なスマートフォンが採用された場合、それに内蔵される加速度センサは、100Hz(1秒間に100回)の測定周波数を有するため、10ms毎の取得となる。
【0033】
図4の3つの楕円の枠内に示すように、プレイヤー端末1のタッチパネルへの3回のタップ操作は、プレイヤー端末1の加速度センサの出力レベル(Accelerationの)変動(振幅変動)として検出ができていることがわかる。
なお、
図4(A)及び
図4(B)の末尾(横軸のSampleの値が300以降の波形)において、微細な振幅変動が繰り返されているのは、スクリーンキャプチャ操作のための振動であり、タッチ操作とは無関係である。
【0034】
プレイヤー端末1を手に持った時のタップ操作をした振動と、プレイヤー端末1を机の上に固定してタップ操作をしたときの振動の最大の違いは、加速度センサの出力レベルの振れ幅である。
具体的には、
図4(A)の、プレイヤー端末1を手に持った時の加速度センサの出力レベルの振れ幅は、0gal〜200galまでの揺れを示している。一方、
図4(B)の、プレイヤー端末1を机の上に固定してタッチ操作したときの加速度センサの出力レベルの振れ幅は、0gal〜50galとなっている。
ここで、1galは、1センチメートル毎秒(cm/s)の加速度の大きさである。なお、プレイヤー端末1を落下させたときに生じる重力加速度はおよそ981galであり、プレイヤー端末1の加速度センサが極めて微細な加速度の変化をとらえていることがわかる。
【0035】
以上より、本実施形態の操作履歴改ざん検出制御を実施するための前提、即ち、プレイヤー端末1のタッチパネルへのタッチ操作が行われる際の微細な振動を正確に検知すべく、プレイヤー端末1の加速度センサが十分な分解能を有しているという前提が、成立することが検証された。
【0036】
図5は、プレイヤー端末1の操作履歴情報の正当性を、正当性確認済みの振動履歴情報と比較し、検証する図である。
プレイヤーTが、プレイヤー端末1のタッチパネルに3回のタップ操作をした場合における、プレイヤー端末1に内蔵された加速度センサ(振動検出部31)の検出結果を示すタイミングチャート(即ち振動履歴情報)が右上に示されており、プレイヤー端末1のタップ操作による操作履歴情報が右下に示されている。
【0037】
振動履歴情報(右上)は、プレイヤー端末1に内蔵された加速度センサから出力される、x軸の加速度、y軸の加速度、z軸の加速度の夫々のタイミングチャートから構成される。
図5の例では、
図4の例と同様に、振動履歴情報はアナログ的に連続した曲線として描画されているが、実際には、各軸の加速度の値は10ミリ秒毎に取得されている。プレイヤー端末1として現在市販されている一般的なスマートフォンが採用された場合、それに内蔵される加速度センサ(振動検出部31)は、100Hz(1秒間に100回)の測定周波数を有するため、10ms毎の取得となる。具体的には例えば、振動履歴情報Aのデータ構造は例えば次式(1)のように定義される。
A:={x1,y1,z1, x2,y2,z2, ・・・ , xm,ym,zm}・・・(1)
ここで、加速度センサは一定の周波数で加速度を測定しており、xk,yk,zk(kは1〜mの整数値)の夫々は、タイミングkで測定される、x軸の加速度、y軸の加速度、及び、z軸の加速度の夫々を示している。つまり、タイミングmは、最新の測定結果を示している。
【0038】
操作履歴情報は、プレイヤーTがプレイヤー端末1にタッチ操作をしたタイミングを示す情報である。
具体的には、タッチパネルからは、x軸上の位置及びy軸上の位置から構成される入力イベントの情報が得られる。このような入力イベントの情報は、プレイヤー端末1のメモリ上、もしくは、二次記憶上に格納される。この入力イベントの情報に対して、時間情報(各入力イベントがいつ発生したのかを示す情報)を含めたものが、操作履歴情報として採用されている。具体的には例えば、操作履歴情報Tのデータ構造は例えば次式(2)のように定義される。
A:={x1,y1,t1, x2,y2,t2, ・・・ , xn,yn,zn}・・・(2)
ここで、xp,yp,tp(pは1〜nの整数値)の夫々は、タイミングpで測定される、x軸の位置、y軸の位置、及び、それらの位置が記録された時刻の夫々を示している。このように、入力イベントの情報の履歴(各要素)は、振動履歴情報と異なり、ユーザが入力したタイミングで記録されるため、時間情報も夫々のイベント毎に記録したものが、操作履歴情報として採用される。
【0039】
プレイヤー端末1の加速度センサの検出結果を示す振動履歴情報(
図5右上)において、1回目のタップ時における波形W1、2回目のタップ時における波形W2、及び3回目のタップ時における波形W3について、加速度センサの出力レベル(Accelerationの)変動(振幅変動)が明確に示されていることがわかる。なお、波形W1,W2,W3は、上記式(1)の振動履歴情報A内の複数の要素データxk,yk,zkの集合体である。
また、プレイヤー端末1の操作履歴情報(
図5右下)では、1回目のタップを示すイベント情報T1、2回目のタップを示すイベント情報T2、及び3回目のタップを示すイベント情報T3が存在することがわかる。なお、イベント情報T1,T2,T3は、上記式(2)の操作履歴情報T内の1つの要素データxp,yp,tpである。
ここで、振動履歴情報A(
図5右上)と操作履歴情報T(
図5右下)の時間軸(横軸)は一致している。そして、振動履歴情報Aにおける波形W1,W2,W3の夫々の発生タイミング(時間軸上の位置)と、操作履歴情報Tにおけるイベント情報T1,T2,T3の夫々の発生タイミング(時間軸上の位置)とは略一致していることがわかる。
このように、正当性確認済みの振動履歴情報A(
図5右上)と操作履歴情報T(
図5右下)とを比較することで、当該操作履歴情報Tの正当性を、当該振動履歴情報Aから検証できることがわかる。
換言すると、振動履歴情報Aにおける加速度(振動)の変化が発生したタイミングと、操作履歴情報Tにおけるイベントの発生タイミングが略同一に起きていることを確認することで、当該操作履歴情報Tで表される各イベントは、自然人が物理的に入力した正規のタッチ操作に基づくものであることを検証することができる。
【0040】
以上
図4及び
図5を用いて説明した操作履歴改ざん検出制御を実行すべく、
図2のプレイヤー端末1と
図3のサーバ2は、
図6に示す様な機能的構成を有している。
図6は、プレイヤー端末1とサーバ2の機能的構成のうち、操作履歴改ざん検出制御を実行するための機能的構成例を示す機能ブロック図である。
【0041】
図6に示すように、プレイヤー端末1のCPU21においては、送信制御部141と、ゲーム実行部142とが機能する。
ゲーム実行部142は、所定のゲームを実行する。当該ゲームは、タッチパネルに対するタッチ操作を必要とするものとする。
送信制御部141は、振動検出部31から出力された振動履歴情報を通信部30から送信することを制御する。また、送信制御部141は、タッチパネルに対する操作履歴情報を通信部30から送信することを制御する。
【0042】
また、
図6に示す様に、サーバ2のCPUにおいては、振動情報取得部111と、振動情報正当性判断部112と、操作情報取得部113と、操作情報正当性判断部114と、指標関数生成更新部121と、指標関数管理部122とが機能する。
サーバ2の記憶部58においては、指標関数DB131が機能する。
【0043】
振動情報取得部111は、プレイヤー端末1の振動検出部31の検出結果の時系列を示す振動履歴情報を、通信部59を介して当該プレイヤー端末1から取得する。
振動情報正当性判断部112は、指標関数管理部122によって管理されている指標関数に基づいて、振動情報取得部111により取得された振動履歴情報の正当性を判断する。
ここで、指標関数とは、振動履歴情報が示す振動が、自然人によるタッチ操作に基づく振動であるか否かの判定結果を示す情報、又は当該判定結果を導き出すことが可能な情報を出力する関数をいう。
従って、このような特性を有する関数であれば、任意のものを指標関数として採用することができる。
例えば、振動履歴情報が示す加速度センサの出力が線形変化していないことを確認するだけの関数を、指標関数として採用してもよい。
また、振動履歴情報は加速度センサの検出結果の時系列情報であるため、過去に自然人が実際にタッチ操作をした際に得られた加速度の特徴量を定義したモデルを用いて得られた関数が、指標関数として採用してもよい。
即ち、自然人によるタッチ操作の振動履歴情報の集合を対象として、サポートベクターマシン(support vector machine)等の教師あり学習を用いるパターン認識モデルや、ランダムフォレスト(random forest)等の機械学習アルゴリズムを適用して、自然人による振動履歴情報と、機械的に生成もしくは改ざんされた振動履歴情報とを識別する関数を出力させ、この関数を、指標関数として採用してもよい。
つまり、過去に得られた振動履歴情報のうち、正当性が確認された振動履歴情報に基づいて、指標関数が生成されて、指標関数DB131に格納されてもよい。
なお、指標関数の生成手法や生成場所は、特に限定されず、本実施形態では後述するようにサーバ2に設けられる指標関数生成更新部121が生成する手法を採用しているが、その他例えば、プレイヤーのプレイヤー端末1から集められた正規、および、不正規の振動履歴情報を、サーバ2側に所謂ビッグデータとして蓄積し、これらの振動履歴ビッグデータ(モーション・ビッグデータ)を対象とした機械学習による分類手法を採用してもよい。 具体的には本実施形態では、振動情報正当性判断部112は、振動情報取得部111により取得された振動履歴情報が示す各タイミングの加速度センサの値を、指標関数DB131に格納されている指標関数に入力して当該指標関数の出力に基づいて、振動履歴情報が示す各タイミングの加速度センサの値が、自然人がタッチ操作したものとして不自然でないか否かを確認する。つまり、自然人がタッチ操作したものとして不自然でないことが確認された振動履歴情報が、正当性が確認された振動履歴情報である。
【0044】
操作情報取得部113は、プレイヤー端末1のタッチ操作の時系列を示す操作履歴情報を、通信部59を介して当該プレイヤー端末1から取得する。
操作情報正当性判断部114は、操作情報取得部113により取得された操作履歴情報と、振動情報正当性判断部112で正当性が判断された振動履歴情報とを比較することで、当該操作履歴情報の正当性を判断する。
具体的には、操作情報正当性判断部114は、操作履歴情報が示すタッチ操作による入力イベント履歴と、正当性が確認された振動履歴情報が示す各タイミングの加速度センサの値とを比較し、入力イベント履歴が改ざんされていないことを確認する。
より具体的には例えば、操作情報正当性判断部114は、タッチ操作をしたときの時間に対応する加速度の変化が、入力履歴イベントと同時に起きていることを確認する関数を用いて、入力イベント履歴が改ざんされていないことを確認することができる。
【0045】
指標関数生成更新部121は、過去に正当性が判断された振動履歴情報を用いて、指標関数を生成又は更新する。
具体的には、指標関数生成更新部121は、プレイヤー端末1において自然人のタッチ操作により検出された加速度の特徴量に基づいて、指標関数を生成又は更新する。生成又は更新の手法は、上述した様に特に限定されないが、適切なものに更新できるように、機械学習等を用いる手法を採用すると好適である。
指標関数管理部122は、このようにして指標関数生成更新部121によって生成又は更新された指標関数を、指標関数DB131に蓄積することで管理する。
【0046】
以上、操作履歴改ざん検出制御を実現するためのプレイヤー端末1及びサーバ2の機能的構成について説明した。
次に、
図7を参照して、このような機能的構成を有するサーバ2が実行する、操作履歴改ざん検出処理の流れを説明する。
図7は、サーバ2の操作履歴改ざん検出処理の流れを説明するフローチャートである。
【0047】
ステップS1において、サーバ2の振動情報取得部111は、振動検出部31の検出の時系列を示す振動履歴情報をプレイヤー端末1から取得する。
ステップS2において、操作情報取得部113は、タッチ操作の検出の時系列を表す操作履歴情報をプレイヤー端末1から取得する。
ステップS3において、振動情報正当性判断部112は、ステップS1の処理で取得された振動履歴情報の正当性を、指標関数管理部122によって管理されている指標関数を用いて判断する。
ステップS4において、振動情報正当性判断部112は、ステップS3の判断結果に基づいて、ステップS1の処理で取得された振動履歴情報は正当か否かを判断する。
【0048】
振動履歴情報が正当でないと判断された場合、即ち、プログラム等による改ざん等が行われた可能性がある振動履歴情報と判断された場合、ステップS4においてNOであると判断されて、処理はステップS7に進む。
ステップS7において、振動情報正当性判断部112は、リクエストの拒否処理を実行する。ここでいうリクエストとは、操作履歴情報により特定されるタッチ操作の組合せによるコマンドの発行等のリクエストを意味する。その後、処理は、ステップS8に進む。なお、ステップS8以降の処理については後述する。
【0049】
これに対して、振動履歴情報が正当であると判断された場合、ステップS4においてYESであると判断されて、処理はステップS5に進む。
ステップS5において、操作情報正当性判断部114は、ステップS2の処理で取得された操作履歴情報と、ステップS3及びS4で正当性が判断された振動履歴情報とを比較する。
ステップS6において、操作情報正当性判断部114は、操作履歴情報は正当であるか否かを判断する。
【0050】
操作履歴情報が正当でないと判断された場合、即ち、プログラム等による改ざん等が行われた可能性がある操作履歴情報と判断された場合、ステップS6においてNOであると判断されて、処理はステップS7に進む。
ステップS7において、振動情報正当性判断部112は、リクエストの拒否処理を実行する。その後、処理は、ステップS8に進む。なお、ステップS8以降の処理については後述する。
【0051】
これに対して、操作履歴情報が正当であると判断された場合、ステップS6においてYESであると判断されて、リクエストが受け付けられると、処理はステップS8に進む。
ステップS8において、サーバ2のCPU51は、処理の終了指示が有ったか否かを判断する。ここで、処理の終了指示は、特に限定されないが、本実施形態ではサーバ2の電源遮断が採用されている。つまり、サーバ2において電源が遮断されると、ステップS8においてYESであると判断されて、サーバ2の操作履歴改ざん検出処理は終了になる。
これに対して、サーバ2において電源が遮断されない限り、ステップS8においてNOであると判断されて処理はステップS1に戻され、それ以降の処理が繰り返される。
【0052】
以上本発明の一実施形態について説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【0053】
例えば、上述の実施形態は、正規ユーザが自然に入力しており、かつ、改ざん者が容易には入力できないデータを、操作履歴改ざん検出の対象にするものである。
しかしながら、特にこれに限定されず、汎用的なタッチの操作についての操作履歴情報の正当性の検証の用途一般に適用することができる。即ち、ゲームに限定されず、スマートフォン等のタッチ操作の正当性の検証に幅広く適用することができる。
【0054】
また例えば、上述の実施形態では、説明の便宜上、プレイヤー端末1へのタップの操作履歴情報を一例として用いたが、特にこれに限定されない。
即ち、上述したように、プレイヤー端末1のタッチパネルへのタッチ操作であれば、プレイヤー端末1に何らかの振動が生じる。従って、タップ、スワイプ、フリック等の任意の種類のタッチ操作が任意に組み合わされた操作履歴情報の検証に適用することが容易にできる。
【0055】
また例えば、上述の実施形態では、振動履歴情報の正当性を検証するための情報として、人間が入力した加速度の特徴量を定義したモデルを用いて得られた指標関数が採用されたが、特にこれに限定されず、自然人によるタッチ操作に基づくプレイヤー端末1の振動か否かの判定の指標になる情報であれば足りる。このような情報を、以下「指標情報」と呼ぶ。即ち、指標関数は指標情報の一例である。
【0056】
また例えば、
図6の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が情報処理装置に備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に
図6の例に限定されない。また、機能ブロックの存在場所も、
図6に特に限定されず、任意でよい。例えば、サーバ2の機能ブロックをプレイヤー端末1等に移譲させてもよいし、逆に端末1の機能ブロックをサーバ2等に移譲させてもよい。
また、1つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【0057】
各機能ブロックの処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えばサーバの他汎用のスマートフォンやパーソナルコンピュータであってもよい。
【0058】
このようなプログラムを含む記録媒体は、プレイヤーにプログラムを提供するために装置本体とは別に配布される図示せぬリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でプレイヤーに提供される記録媒体等で構成される。
【0059】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
【0060】
換言すると、本発明が適用される情報処理装置は、上述の
図1のサーバ2を含め、次のような構成を有する各種各様の実施形態を取ることができる。
即ち、本発明が適用される情報処理装置は、次のような端末(例えば
図1のプレイヤー端末1)と通信をして情報を授受する。
即ち、端末は、
自機で生じる振動を検出する第1検出部(例えば
図2の振動検出部31)と、
所定の表示面に画像を表示する表示部(例えば
図2の表示部27)と、
前記表示面に積層され、物体の接触を所定方式で検出する第2検出部(例えば
図2のタッチ操作入力部26)と、
前記物体の接触によるタッチ操作に基づいて、所定の処理を実行する実行部(例えば
図6のゲーム実行部142)と、
を含む。
また、本発明が適用される情報処理装置は、
前記第1検出部の検出結果の時系列を示す振動履歴情報を前記端末から取得する第1取得手段(例えば
図6の振動情報取得部111)と、
前記タッチ操作の時系列を示す操作履歴情報を前記端末から取得する第2取得手段(例えば
図6の操作情報取得部113)と、
前記振動履歴情報と前記操作履歴情報とを比較することで、当該操作履歴情報の正当性を判断する第1判断手段(例えば
図6の操作情報正当性判断部114)と、
を備える。
【0061】
このようにして、操作履歴改ざん検出において、改ざん検知の手法が公知となった場合や、検知を行うプログラム・コードそのものが改ざんの対象となった場合においても有効に機能する手法が確立される。
即ち、正規ユーザが自然に入力しており、かつ、改ざん者が容易には入力できないデータとして、物体の接触操作(タッチ操作)により入力されるデータが存在する。このタッチ操作はスマートフォン等では汎用的な操作である。そこで、本発明が適用される情報処理装置は、この汎用的なタッチ操作のイベントの正当性を検証することにより、操作履歴の改ざん行為等(又はそのおそれの行為)を検出する。
ここで、正規ユーザが端末に対して自然にタッチ操作をした場合には、当該端末において振動が生ずる。この場合、第1検出部の検出結果の時系列を示す振動履歴情報は、物理現象から観測されるものであり、プログラムから正確に自動生成することは困難である。従って、本発明が適用される情報処理装置は、上記構成が公開されることによって、改ざん検知の手法が公知となった場合や、端末側において検知を行うプログラム・コードそのものが改ざんの対象となった場合においても、操作履歴の改ざん行為等を有効に検出することができる。
【0062】
また、前記端末として一般的なスマートフォンが採用されるならば、ユーザのオプトイン操作は必要ない。具体的には、一般的なスマートフォンでは、その向きを検出する機能が、スマートフォンの基本機能として実装されているため、高い分解能を持つ加速度センサが常時起動しており、明示的にオフにすることができない。この加速度センサを前記第1検出部として採用することで、当該端末で実行される全てのアプリケーションソフトウェアに対する情報入力の改ざん検知を容易に行うことができる。
【0063】
さらにまた、従来技術と異なり、クライアントの端末側を一切変更せずに、サーバとしての情報処理装置側の操作履歴改ざん検出ロジックを改善することができる。例えば、当該端末として新しいスマートフォンの機種が発表されたときに、当該機種固有の振動を加味した操作履歴改ざん検出ロジックを、任意の時点で当該情報処理装置(サーバ)側に追加することができる。さらに、振動履歴情報をビッグデータとしてサーバが保存しておけば、過去のデータに遡って操作履歴改ざん検出を行うことも可能である。
【0064】
より詳細には、前記情報処理装置を適用することで、スマートフォン等のタッチパネルを有する端末上のアプリケーションソフトウェアの継続的な更新を必要としない、前記情報処理装置側での操作履歴改ざん検出の高精度化が可能になる。
即ち、スマートフォン上で動作するアプリケーションソフトウェアの操作としては、タッチ操作が用いられる。このタッチ操作の情報を改ざんし、アプリケーション上での不正行為、即ち操作履歴の改ざん行為等は従来大きな問題であった。特に、ゲームでは、このタッチ操作の改ざんにより、容易に高得点を記録することや、他プレイヤーとの競争に勝利するという操作履歴の改ざん行為等が、従来大きな問題であった。
このようなタッチ操作の情報を改ざんする操作履歴の改ざん行為等に対して、それを検出する手法は従来から存在する。ただし、従来の手法では、スマートフォン等のタッチパネルを有する端末上のアプリケーションソフトウェアの継続的な更新を必要とするか、又は、サーバ側から遠隔でクライアント上での不正を検出する精度が高くなかった。
具体的には、従来の手法としては、ゲームソフトウェアへの改変をメモリのスキャン等を通じて検出する手法が良く知られている。このような従来の手法を、以下、「クライアント側の改変検知手法」と呼ぶ。クライアント側の改変検知手法は、実行ファイルや操作履歴といった、第三者による偽造が容易なデータを対象としてチートを検出しており、プログラミングに精通したユーザであれば、回避のためのプログラムを作成することが可能である。そのため、クライアント側の改変検知手法を採用した場合、チート手法の変化に合わせて継続的にアプリケーションソフトウェアを更新し続ける必要がある。
また、従来の手法として、クライアントであるゲーム機やスマートフォン等からサーバに送信される、操作情報等のデータの一貫性を検証する、といったネットワーク型のチート検出手法も存在する。しかしながら、ネットワーク型のチート検出手法も、クライアント側の技術よりも、さらに少ない情報に依拠してチート検出を行わなければならないため、回避が容易である。従って、ネットワーク型のチート検出手法は、単独では有効にチートを抑制することが難しく、クライアント側の改変検知手法と併せて使用されることが多い。
また、従来の手法として、生体情報(バイオメトリクス)を用いる手法も存在する。この従来の手法は、偽造が困難なデータを対象としており、不正プログラムが出力したデータと自然人が入力したデータを容易に区別することが可能な手法である。しかしながら、生体情報そのものがセンシティブなプライバシー情報であるため、一般的なアプリケーションソフトウェアの改ざん検知手法として用いることは困難である。
以上のことから、センシティブでない情報源を利用し、不正プログラムが出力したデータと自然人が入力したデータを高精度に識別する改ざん検知手法の実現は、公平なアプリケーションやネットワークサービスの利用環境を実現するうえで、本質的に重要である。これを実現できる手法が、上述した様に、前記情報処理装置を適用する手法である。
【0065】
また、前記情報処理装置は、
自然人による前記タッチ操作に基づく前記端末の振動か否かの判定の指標になる指標情報を管理する管理手段と(例えば
図6の指標関数管理部122)、
前記指標情報に基づいて、前記振動履歴情報の正当性を判断する第2判断手段と(例えば
図6の振動情報正当性判断部112)、
をさらに備え、
前記第1判断手段は、前記振動履歴情報の正当性が確認された場合、前記操作履歴情報の正当性の判断の実行を許可し、前記振動履歴情報の正当性が確認されなかった場合、前記操作履歴情報の正当性の判断の実行を禁止する(例えば
図6の振動情報正当性判断部112)、
ことができる。
【0066】
上述した様に、第1検出部の検出結果の時系列を示す振動履歴情報は、物理現象から観測されるものであり、プログラムから正確に自動生成することは困難である。しかしながら、不可能とまでは言い難い。そこで、振動履歴情報の正当性を判断するステップをさらに導入することで、操作履歴の改ざん行為等の不正行為をより確実に検出できるようになる。
【0067】
ここで、過去に正当性が確認された1以上の前記振動履歴情報に基づいて、前記指標情報を生成する生成手段を(例えば
図6の指標関数生成更新部121)、
さらに備えることができる。
これにより、指標情報の信頼性が高まり、操作履歴の改ざん行為等の不正行為をより確実に検出できるようになる。
また、過去に正当性が確認された1以上の前記振動履歴情報として、例えば全プレイヤーの振動履歴情報を情報処理装置(サーバ)側に蓄積し、それらを各端末(スマートフォン等)の機種毎に集計することにより、「自然な振動履歴情報の機械学習モデル」、といったモーション・ビッグデータを半自動的に生成することも容易にできる。このモーション・ビッグデータは外部から計測することができないデータであり、操作履歴の改ざん行為等の不正行為をさらに確実に検出できるようになる。
【課題】操作履歴の改ざん行為等の新たな対策技術において、改ざん検知の手法が公知となった場合や、検知を行うプログラム・コードそのものが改ざんの対象となった場合においても有効に機能する手法を確立すること。
【解決手段】振動情報取得部111は、プレイヤー端末1の振動検出部31の検出結果の時系列を示す振動履歴情報をプレイヤー端末1から取得する。操作情報取得部113は、プレイヤー端末1のタッチ操作入力部26の検出結果の時系列を示す振動履歴情報をプレイヤー端末1から取得する。操作情報正当性判断部114は、操作情報取得部113から取得された操作履歴情報と振動情報正当性判断部112で正当性が判断された振動履歴情報を比較し、操作履歴情報の正当性を判断する。