(57)【特許請求の範囲】
【請求項１】
自機で生じる振動を検出する第１検出部と、
所定の表示面に画像を表示する表示部と、
前記表示面に積層され、物体の接触を所定方式で検出する第２検出部と、
前記物体の接触によるタッチ操作に基づいて、所定の処理を実行する実行部と、
を含む端末と、
通信をして情報を授受する情報処理装置において、
前記第１検出部の検出結果の時系列を示す振動履歴情報を前記端末から取得する第１取得手段と、
前記タッチ操作の時系列を示す操作履歴情報を前記端末から取得する第２取得手段と、
前記振動履歴情報と前記操作履歴情報とを比較することで、当該操作履歴情報の正当性を判断する第１判断手段と、
を備える情報処理装置。
【請求項２】
自然人による前記タッチ操作に基づく前記端末の振動か否かの判定の指標になる指標情報を管理する管理手段と、
前記指標情報に基づいて、前記振動履歴情報の正当性を判断する第２判断手段と、
をさらに備え、
前記第１判断手段は、前記振動履歴情報の正当性が確認された場合、前記操作履歴情報の正当性の判断の実行を許可し、前記振動履歴情報の正当性が確認されなかった場合、前記操作履歴情報の正当性の判断の実行を禁止する、
請求項１に記載の情報処理装置。
【請求項３】
過去に正当性が確認された１以上の前記振動履歴情報に基づいて、前記指標情報を生成する生成手段を、
さらに備える請求項２に記載の情報処理装置。
【請求項４】
自機で生じる振動を検出する第１検出部と、
所定の表示面に画像を表示する表示部と、
前記表示面に積層され、物体の接触を所定方式で検出する第２検出部と、
前記物体の接触によるタッチ操作に基づいて、所定の処理を実行する実行部と、
を含む端末と、
通信をして情報を授受する情報処理装置が実行する情報処理方法において、
前記第１検出部の検出結果の時系列を示す振動履歴情報を前記端末から取得する第１取得ステップと、
前記タッチ操作の時系列を示す操作履歴情報を前記端末から取得する第２取得ステップと、
前記振動履歴情報と前記操作履歴情報とを比較することで、当該操作履歴情報の正当性を判断する判断ステップと、
を含む情報処理方法。
【請求項５】
自機で生じる振動を検出する第１検出部と、
所定の表示面に画像を表示する表示部と、
前記表示面に積層され、物体の接触を所定方式で検出する第２検出部と、
前記物体の接触によるタッチ操作に基づいて、所定の処理を実行する実行部と、
を含む端末と、
通信をして情報を授受するサーバを制御するコンピューターに、
前記第１検出部の検出結果の時系列を示す振動履歴情報を前記端末から取得する第１取得ステップと、
前記タッチ操作の時系列を示す操作履歴情報を前記端末から取得する第２取得ステップと、
前記振動履歴情報と前記操作履歴情報とを比較することで、当該操作履歴情報の正当性を判断する判断ステップと、
を含む制御処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、スマートフォン等の端末で実行可能なゲームとして、複数のプレイヤーが競い合うランキング機能や、プレイヤー同士の対戦機能、プレイヤーのグループ同士の対戦機能を有するゲームが存在する（例えば特許文献１参照）。
【０００３】
このようなゲームでは、プログラムコード、端末内に保存されたデータ、ネットワークを通じてサーバに送信するデータを改ざんする行為、例えば、操作履歴を改ざんし、あたかも高得点を獲得したかのように偽装する行為、アイテムを不正に獲得する行為、アイテム数を改ざんし、希少なアイテムを大量に獲得する行為等を行う者の存在が問題になる（例えば特許文献２参照）。
なお、以下、これらの行為をまとめて「操作履歴の改ざん行為等」と呼ぶ。また、操作履歴の改ざん行為等を行う者を以下「改ざん者」と呼ぶ。
このような操作履歴の改ざん行為等は、ゲームのみならず情報処理一般にあてはまる問題である。
【０００４】
従来においても、操作履歴の改ざん行為等の対策技術について、各種の手法が提案されている。代表的な手法としては、アプリケーションソフトウェアのバイナリデータへの改ざんを検知する手法や、アプリケーションソフトウェアが読み書きするストレージやメモリ領域の改ざんを検知する手法が存在する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−５８７号公報
【特許文献２】特許４３８５８６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、これらの操作履歴の改ざん行為等の対策技術についての従来の手法では、その改ざん検知の手法が公知となった場合や、検知を行うプログラム・コードそのものが改ざんの対象となった場合に、有効に機能しなかった。
そこで、改ざん検知の手法が公知となった場合や、検知を行うプログラム・コードそのものが改ざんの対象となった場合においても有効に機能する、操作履歴の改ざん行為等の新たな対策技術が要望されている状況である。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、操作履歴の改ざん行為等の新たな対策技術において、改ざん検知の手法が公知となった場合や、検知を行うプログラム・コードそのものが改ざんの対象となった場合においても有効に機能する手法の確立を目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一態様の情報処理装置は、
複数のプレイヤーの夫々の操作を受付けてゲームを実行し得る複数の端末と、サーバとを含む情報処理装置において、
自機で生じる振動を検出する第１検出部と、
所定の表示面に画像を表示する表示部と、
前記表示面に積層され、物体の接触を所定方式で検出する第２検出部と、
前記物体の接触によるタッチ操作に基づいて、所定の処理を実行する実行部と、
を含む端末と、
通信をして情報を授受する情報処理装置において、
前記第１検出部の検出結果の時系列を示す振動履歴情報を前記端末から取得する第１取得手段と、
前記タッチ操作の時系列を示す操作履歴情報を前記端末から取得する第２取得手段と、
前記振動履歴情報と前記操作履歴情報とを比較することで、当該操作履歴情報の正当性を判断するする第１判断手段と、
を備える。
【０００９】
本発明の一態様の情報処理方法及びプログラムは、上述の本発明の一態様の情報処理装置に対応する情報処理方法及びプログラムである。
【発明の効果】
【００１０】
本発明によれば、操作履歴の改ざん行為等の新たな対策技術において、改ざん検知の手法が公知となった場合や、検知を行うプログラム・コードそのものが改ざんの対象となった場合においても有効に機能する手法を確立することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る情報システムの構成を示すブロック図である。
【図２】図１の情報処理装置のうち、本発明の端末の一実施形態としてのプレイヤー端末のハードウェア構成を示すブロック図である。
【図３】図１の情報処理装置のうち、本発明の一実施形態に係るサーバのハードウェア構成を示すブロック図である。
【図４】図２のプレイヤー端末の加速度センサの検出結果のタイミングチャートである。
【図５】プレイヤー端末の操作履歴情報の正当性を、正当性確認済みの振動履歴情報と比較し、検証する図である。
【図６】図２のプレイヤー端末と図３のサーバの機能的構成のうち、操作履歴改ざん検出制御を実行するための機能的構成例を示す機能ブロック図である。
【図７】図６の機能的構成を有するサーバが実行する操作履歴改ざん検出処理の流れの一例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、図面を用いて説明する。
【００１３】
図１は、本発明の一実施形態に係る情報処理システムの構成を示している。
図１に示す情報処理システムは、ｍ人（ｍは１以上の任意の整数値）のプレイヤーの夫々により使用されるプレイヤー端末１−１乃至１−ｍと、サーバ２とを含むシステムである。プレイヤー端末１−１乃至１−ｍの夫々と、サーバ２とは、インターネット等の所定のネットワークＮを介して相互に接続されている。
【００１４】
サーバ２は、プレイヤー端末１−１乃至１−ｍの夫々に対してゲームの実行環境を提供し、プレイヤー端末１−１乃至１−ｍの夫々において実行されるゲームに関する各種各様のサービスを提供する。
プレイヤー端末１−１乃至１−ｍの夫々は、各プレイヤーにより操作されるスマートフォン等で構成され、ゲームの実行等各種処理を実行する。
なお、以下、プレイヤー端末１−１乃至１−ｍの夫々を個々に区別する必要がない場合、これらをまとめて「プレイヤー端末１」と呼ぶ。
【００１５】
図２は、図１の情報処理システムのうち、プレイヤー端末１のハードウェア構成を示すブロック図である。
【００１６】
プレイヤー端末１は、上述した様にスマートフォン等で構成される。
プレイヤー端末１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２３と、バス２４と、入出力インターフェース２５と、タッチ操作入力部２６と、表示部２７と、入力部２８と、記憶部２９と、通信部３０と、振動検出部３１と、ドライブ３２と、を備えている。
【００１７】
ＣＰＵ２１は、ＲＯＭ２２に記録されているプログラム、又は、記憶部２９からＲＡＭ２３にロードされたプログラムに従って各種の処理を実行する。
ＲＡＭ２３には、ＣＰＵ２１が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【００１８】
ＣＰＵ２１、ＲＯＭ２２及びＲＡＭ２３は、バス２４を介して相互に接続されている。このバス２４にはまた、入出力インターフェース２５も接続されている。入出力インターフェース２５には、タッチ操作入力部２６、表示部２７、入力部２８、記憶部２９、通信部３０、振動検出部３１及びドライブ３２が接続されている。
【００１９】
タッチ操作入力部２６は、例えば表示部２７の表示面に積層される静電容量式又は抵抗膜式（感圧式）の位置入力センサにより構成され、タッチ操作がなされた位置の座標を検出する。
ここで、タッチ操作とは、タッチ操作入力部２６に対する物体の接触の操作をいう。タッチ操作入力部２６に対して接触する物体は、例えばプレイヤーの指やタッチペン等である。
表示部２７は、液晶等のディスプレイにより構成され、ゲームに関する画像等、各種画像を表示する。
このように、本実施形態では、タッチ操作入力部２６と表示部２７とにより、タッチパネルが構成されている。
【００２０】
ここで、タッチパネルにおけるタッチ操作の種類としては、例えばタップ、スワイプ及びフリックが存在する。
タップとは、表示面の所定領域に対して物体が接触し、その後、所定領域と同一の領域から物体が離間する操作のことをいう。
また、スワイプ及びフリックとは、表示媒体への物体の接触が開始された第１状態から、表示媒体への接触が維持されて物体の位置が変化する第２状態（タッチ位置が変化する第２状態）を経て、表示媒体への物体の接触が解除される第３状態（物体が表示媒体から離間する第３状態）まで至る一連の操作のことをいう。
詳細については後述するが、プレイヤー端末１のタッチパネルに対してこれらのタッチ操作が行われると、プレイヤー端末１に振動が生ずることとなる。
【００２１】
入力部２８は、各種ハードウェア釦等で構成され、プレイヤーの指示操作に応じて各種情報を入力する。
記憶部２９は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、各種データを記憶する。
通信部３０は、インターネットを含むネットワークＮを介して他の装置（図１の例ではサーバ２や他のプレイヤー端末１）との間で行う通信を制御する。
【００２２】
振動検出部３１は、タッチパネルへのタッチ操作により生じた振動を検出する。例えばプレイヤー端末１がスマートフォンで構成される場合、当該スマートフォンに内蔵される加速度センサにより、振動検出部３１は構成される。
なお、より正確には加速度センサは、ピエゾ抵抗型や静電容量型の検出機構により３軸加速度成分を検出して、その検出結果を表す３軸成分毎の加速度データを出力する。そして、サーバ２等が、当該加速度データに基づいて、プレイヤー端末１の振動を認識する。ただし、本明細書では、このような加速度データは、振動を認識可能であるため、振動の情報の一種として把握する。即ち、本明細書では、振動検出とは、振動そのものを検出することの他、振動を認識可能な情報（例えば加速度）を検出することも含む広義な概念である。
【００２３】
ドライブ３２は、必要に応じて設けられる。ドライブ３２には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア４１が適宜装着される。ドライブ３２によってリムーバブルメディア４１から読み出されたプログラムは、必要に応じて記憶部２９にインストールされる。また、リムーバブルメディア４１は、記憶部２９に記憶されている各種データも、記憶部２９と同様に記憶することができる。
【００２４】
図３は、図１の情報処理システムのうち、本発明の情報処理装置の一実施形態に係るサーバ２のハードウェア構成を示すブロック図である。
【００２５】
サーバ２は、ＣＰＵ５１と、ＲＯＭ５２と、ＲＡＭ５３と、バス５４と、入出力インターフェース５５と、出力部５６と、入力部５７と、記憶部５８と、通信部５９と、ドライブ６０とを備えている。
サーバ２の構成は、プレイヤー端末１の振動検出部３１及びタッチパネルを除いた構成と基本的に同様であるので、ここではその説明は省略する。
【００２６】
このような図２のプレイヤー端末１及び図３のサーバ２の各種ハードウェアと各種ソフトウェアとの協働により、プレイヤー端末１でゲームの実行が可能になる。
即ち、本実施形態の情報処理システムは、マルチバトル等複数のプレイヤーが参加可能なゲームに対する各種制御を実行できる。特に、情報処理システムは、操作履歴の改ざん行為等又はそのおそれを検出する制御（以下、「操作履歴改ざん検出制御」と呼ぶ）として、次のような制御を実行することができる。
【００２７】
即ち、改ざん者の多くは、タッチ操作を行うべき場所とタイミングをコンピュータに判断させ、自然人（プレイヤー）による操作を伴わずに自動的にタッチ操作を行うプログラムを利用し、スマートフォン上のタッチ操作に関する情報を改ざんや偽造をし、操作履歴の改ざん行為等を行っている。従って、改ざん者の操作データは、自然人が物理的に入力した正規のタッチ操作に関する情報とは異なるものとなる。
そこで、自然人が物理的に入力した正規のタッチ操作か否かを検出することができれば、操作履歴の改ざん行為等又はそのおそれを検出することができる。
【００２８】
ここで、プレイヤー端末１のタッチパネルへのタッチ操作が行われるときには、必ず、プレイヤー端末１本体に微細な振動が加えられる。この振動を検出することができれば、自然人が物理的に入力した正規のタッチ操作か否かを検出することが可能になる。
具体的には、プレイヤー端末１がスマートフォンの場合、加速度センサが内蔵されている。この加速度センサの出力値（又はその加工値）の時系列の情報からは、プレイヤー端末１が振動したか否か、振動しているならばどの程度振動しているのかを把握することができる。
また、加速度センサ以外の振動検出部３１がプレイヤー端末１に備えられている場合も、振動検出部３１の検出結果の時系列情報から、プレイヤー端末１が振動したか否か、振動しているならばどの程度振動しているのかを把握することができる。
そこで、以下、加速度センサを含め振動検出部３１の検出結果の時系列情報を、「振動履歴情報」と呼ぶ。
この振動履歴情報を用いることで、自然人が物理的に入力した正規のタッチ操作か否かを検出することが可能になる。その理由は次の通りである。即ち、振動検出部３１が出力する値は、物理現象から観測されるものである。プレイヤー端末１の持ち方、プレイヤー端末１本体のサイズや重さ、プレイヤー端末１に搭載される振動検出部３１の種類等、多様な要因により、振動検出部３１の値が決定される。従って、プログラムを用いて、振動検出部３１の出力値の履歴を正確かつ自動的に再現することは困難である。
なお、以下では、加速度センサの出力結果の時系列情報を、振動履歴情報の一例として適宜用いて説明する。
【００２９】
以上まとめると、本実施形態の操作履歴改ざん検出制御では、次のような制御処理が実行される。即ち、プレイヤー端末１（スマートフォン）は、そのタッチパネルへのタッチ操作が行われる際の振動を、スマートフォンの加速度センサ（振動検出部３１）を用いて検出して、その検出結果の時系列情報を振動履歴情報としてサーバ２に送信する。つまり、サーバ２は、プレイヤー端末１の加速度センサの検出結果の時系列情報を、当該プレイヤー端末１の振動履歴情報として取得する。
また、サーバ２は、当該プレイヤー端末１におけるタッチ操作の履歴を示す情報（以下、「操作履歴情報」と呼ぶ）も取得する。
そして、サーバ２は、操作履歴情報と振動履歴情報とを比較することにより、当該操作履歴情報が、自然人が物理的に入力した正規のタッチ操作に関する情報であるのか、それとも、プログラム等により自動的に生成或いは改ざんされた情報であるのかを識別する。つまり、サーバ２は、改ざんや偽造が容易なタッチ操作に関する操作履歴情報の正当性を、改ざんや偽造が困難な振動履歴情報を用いて、検証することができる。
【００３０】
ここで、自然人が物理的に入力したタッチ操作に起因する加速度センサの検出結果を、プログラム等が模すことは困難であることは上述した通りである。しかしながら、プログラム等が模すことは不可能であるとまでは言い切れない。
そこで本実施形態では、サーバ２は、振動履歴情報が正当か否かを判断する指標となる情報（以下、「指標情報」と呼ぶ）を保持している。本実施形態の指標情報は、自然人が物理的に入力したタッチ操作に起因する加速度センサの検出結果から得られた振動履歴情報に基づいて生成されたものである。
そして、サーバ２は、プレイヤー端末１から送信されてきた振動履歴情報と、この指標情報とを比較することで、当該振動履歴情報の正当性を検証する。
このように、本実施形態では、振動履歴情報と操作履歴情報という異なる２種類の情報源を用いて、振動履歴情報の正当性の確認後に操作履歴情報の正当性を確認するといった２ステップでの正当性の確認を行っている。つまり、サーバ２は、改ざんや偽造が容易なタッチ操作に関する操作履歴情報の正当性を、改ざんや偽造がされていないことが検証された振動履歴情報を用いて、検証することができる。
【００３１】
さらに以下、このような操作履歴改ざん検出制御について、図４及び図５を参照して説明する。
【００３２】
図４は、プレイヤー端末１のタッチパネルへのタップ操作をすることにより生じた振動を、プレイヤー端末１の加速度センサ（振動検出部３１）で検出した場合における、その検出結果のタイミングチャートである。
本実施形態の操作履歴改ざん検出制御を実施するためには、プレイヤー端末１のタッチパネルへのタッチ操作が行われる際の微細な振動を正確に検知する必要がある。このためには、プレイヤー端末１の加速度センサが十分な分解能を有していることが前提となる。この前提が成立するのか否かについて本発明者が検証した結果を示す図が、図４である。
具体的には、図４（Ａ）は実験者がプレイヤー端末１を手で持って３回タップ操作を行った場合のタイミングチャートである。図４（Ｂ）はプレイヤー端末１を机の上に置いた状態で実験者が３回タップ操作を行った場合のタイミングチャートである。
なお、図４の例では、加速度センサの検出結果はアナログ的に連続した曲線として描画されているが、実際には、各軸の加速度の値は１０ミリ秒毎に取得されている。プレイヤー端末１として現在市販されている一般的なスマートフォンが採用された場合、それに内蔵される加速度センサは、１００Ｈｚ（１秒間に１００回）の測定周波数を有するため、１０ｍｓ毎の取得となる。
【００３３】
図４の３つの楕円の枠内に示すように、プレイヤー端末１のタッチパネルへの３回のタップ操作は、プレイヤー端末１の加速度センサの出力レベル（Ａｃｃｅｌｅｒａｔｉｏｎの）変動（振幅変動）として検出ができていることがわかる。
なお、図４（Ａ）及び図４（Ｂ）の末尾（横軸のＳａｍｐｌｅの値が３００以降の波形）において、微細な振幅変動が繰り返されているのは、スクリーンキャプチャ操作のための振動であり、タッチ操作とは無関係である。
【００３４】
プレイヤー端末１を手に持った時のタップ操作をした振動と、プレイヤー端末１を机の上に固定してタップ操作をしたときの振動の最大の違いは、加速度センサの出力レベルの振れ幅である。
具体的には、図４（Ａ）の、プレイヤー端末１を手に持った時の加速度センサの出力レベルの振れ幅は、０ｇａｌ〜２００ｇａｌまでの揺れを示している。一方、図４（Ｂ）の、プレイヤー端末１を机の上に固定してタッチ操作したときの加速度センサの出力レベルの振れ幅は、０ｇａｌ〜５０ｇａｌとなっている。
ここで、１ｇａｌは、1センチメートル毎秒（ｃｍ／ｓ）の加速度の大きさである。なお、プレイヤー端末１を落下させたときに生じる重力加速度はおよそ９８１ｇａｌであり、プレイヤー端末１の加速度センサが極めて微細な加速度の変化をとらえていることがわかる。
【００３５】
以上より、本実施形態の操作履歴改ざん検出制御を実施するための前提、即ち、プレイヤー端末１のタッチパネルへのタッチ操作が行われる際の微細な振動を正確に検知すべく、プレイヤー端末１の加速度センサが十分な分解能を有しているという前提が、成立することが検証された。
【００３６】
図５は、プレイヤー端末１の操作履歴情報の正当性を、正当性確認済みの振動履歴情報と比較し、検証する図である。
プレイヤーＴが、プレイヤー端末１のタッチパネルに３回のタップ操作をした場合における、プレイヤー端末１に内蔵された加速度センサ（振動検出部３１）の検出結果を示すタイミングチャート（即ち振動履歴情報）が右上に示されており、プレイヤー端末１のタップ操作による操作履歴情報が右下に示されている。
【００３７】
振動履歴情報（右上）は、プレイヤー端末１に内蔵された加速度センサから出力される、ｘ軸の加速度、ｙ軸の加速度、ｚ軸の加速度の夫々のタイミングチャートから構成される。図５の例では、図４の例と同様に、振動履歴情報はアナログ的に連続した曲線として描画されているが、実際には、各軸の加速度の値は１０ミリ秒毎に取得されている。プレイヤー端末１として現在市販されている一般的なスマートフォンが採用された場合、それに内蔵される加速度センサ（振動検出部３１）は、１００Ｈｚ（１秒間に１００回）の測定周波数を有するため、１０ｍｓ毎の取得となる。具体的には例えば、振動履歴情報Ａのデータ構造は例えば次式（１）のように定義される。
Ａ：＝｛ｘ１，ｙ１，ｚ１，  ｘ２，ｙ２，ｚ２，  ・・・  ,   ｘｍ，ｙｍ，ｚｍ｝・・・（１）
ここで、加速度センサは一定の周波数で加速度を測定しており、ｘｋ，ｙｋ，ｚｋ（ｋは１〜ｍの整数値）の夫々は、タイミングｋで測定される、ｘ軸の加速度、ｙ軸の加速度、及び、ｚ軸の加速度の夫々を示している。つまり、タイミングｍは、最新の測定結果を示している。
【００３８】
操作履歴情報は、プレイヤーＴがプレイヤー端末１にタッチ操作をしたタイミングを示す情報である。
具体的には、タッチパネルからは、ｘ軸上の位置及びｙ軸上の位置から構成される入力イベントの情報が得られる。このような入力イベントの情報は、プレイヤー端末１のメモリ上、もしくは、二次記憶上に格納される。この入力イベントの情報に対して、時間情報（各入力イベントがいつ発生したのかを示す情報）を含めたものが、操作履歴情報として採用されている。具体的には例えば、操作履歴情報Ｔのデータ構造は例えば次式（２）のように定義される。
Ａ：＝｛ｘ１，ｙ１，ｔ１，  ｘ２，ｙ２，ｔ２，  ・・・  ,   ｘｎ，ｙｎ，ｚｎ｝・・・（２）
ここで、ｘｐ，ｙｐ，ｔｐ（ｐは１〜ｎの整数値）の夫々は、タイミングｐで測定される、ｘ軸の位置、ｙ軸の位置、及び、それらの位置が記録された時刻の夫々を示している。このように、入力イベントの情報の履歴（各要素）は、振動履歴情報と異なり、ユーザが入力したタイミングで記録されるため、時間情報も夫々のイベント毎に記録したものが、操作履歴情報として採用される。
【００３９】
プレイヤー端末１の加速度センサの検出結果を示す振動履歴情報（図５右上）において、１回目のタップ時における波形Ｗ１、２回目のタップ時における波形Ｗ２、及び３回目のタップ時における波形Ｗ３について、加速度センサの出力レベル（Ａｃｃｅｌｅｒａｔｉｏｎの）変動（振幅変動）が明確に示されていることがわかる。なお、波形Ｗ１，Ｗ２，Ｗ３は、上記式（１）の振動履歴情報Ａ内の複数の要素データｘｋ，ｙｋ，ｚｋの集合体である。
また、プレイヤー端末１の操作履歴情報（図５右下）では、１回目のタップを示すイベント情報Ｔ１、２回目のタップを示すイベント情報Ｔ２、及び３回目のタップを示すイベント情報Ｔ３が存在することがわかる。なお、イベント情報Ｔ１，Ｔ２，Ｔ３は、上記式（２）の操作履歴情報Ｔ内の１つの要素データｘｐ，ｙｐ，ｔｐである。
ここで、振動履歴情報Ａ（図５右上）と操作履歴情報Ｔ（図５右下）の時間軸（横軸）は一致している。そして、振動履歴情報Ａにおける波形Ｗ１，Ｗ２，Ｗ３の夫々の発生タイミング（時間軸上の位置）と、操作履歴情報Ｔにおけるイベント情報Ｔ１，Ｔ２，Ｔ３の夫々の発生タイミング（時間軸上の位置）とは略一致していることがわかる。
このように、正当性確認済みの振動履歴情報Ａ（図５右上）と操作履歴情報Ｔ（図５右下）とを比較することで、当該操作履歴情報Ｔの正当性を、当該振動履歴情報Ａから検証できることがわかる。
換言すると、振動履歴情報Ａにおける加速度（振動）の変化が発生したタイミングと、操作履歴情報Ｔにおけるイベントの発生タイミングが略同一に起きていることを確認することで、当該操作履歴情報Ｔで表される各イベントは、自然人が物理的に入力した正規のタッチ操作に基づくものであることを検証することができる。
【００４０】
以上図４及び図５を用いて説明した操作履歴改ざん検出制御を実行すべく、図２のプレイヤー端末１と図３のサーバ２は、図６に示す様な機能的構成を有している。
図６は、プレイヤー端末１とサーバ２の機能的構成のうち、操作履歴改ざん検出制御を実行するための機能的構成例を示す機能ブロック図である。
【００４１】
図６に示すように、プレイヤー端末１のＣＰＵ２１においては、送信制御部１４１と、ゲーム実行部１４２とが機能する。
ゲーム実行部１４２は、所定のゲームを実行する。当該ゲームは、タッチパネルに対するタッチ操作を必要とするものとする。
送信制御部１４１は、振動検出部３１から出力された振動履歴情報を通信部３０から送信することを制御する。また、送信制御部１４１は、タッチパネルに対する操作履歴情報を通信部３０から送信することを制御する。
【００４２】
また、図６に示す様に、サーバ２のＣＰＵにおいては、振動情報取得部１１１と、振動情報正当性判断部１１２と、操作情報取得部１１３と、操作情報正当性判断部１１４と、指標関数生成更新部１２１と、指標関数管理部１２２とが機能する。
サーバ２の記憶部５８においては、指標関数ＤＢ１３１が機能する。
【００４３】
振動情報取得部１１１は、プレイヤー端末１の振動検出部３１の検出結果の時系列を示す振動履歴情報を、通信部５９を介して当該プレイヤー端末１から取得する。
振動情報正当性判断部１１２は、指標関数管理部１２２によって管理されている指標関数に基づいて、振動情報取得部１１１により取得された振動履歴情報の正当性を判断する。
ここで、指標関数とは、振動履歴情報が示す振動が、自然人によるタッチ操作に基づく振動であるか否かの判定結果を示す情報、又は当該判定結果を導き出すことが可能な情報を出力する関数をいう。
従って、このような特性を有する関数であれば、任意のものを指標関数として採用することができる。
例えば、振動履歴情報が示す加速度センサの出力が線形変化していないことを確認するだけの関数を、指標関数として採用してもよい。
また、振動履歴情報は加速度センサの検出結果の時系列情報であるため、過去に自然人が実際にタッチ操作をした際に得られた加速度の特徴量を定義したモデルを用いて得られた関数が、指標関数として採用してもよい。
即ち、自然人によるタッチ操作の振動履歴情報の集合を対象として、サポートベクターマシン（ｓｕｐｐｏｒｔ  ｖｅｃｔｏｒ  ｍａｃｈｉｎｅ）等の教師あり学習を用いるパターン認識モデルや、ランダムフォレスト（ｒａｎｄｏｍ  ｆｏｒｅｓｔ）等の機械学習アルゴリズムを適用して、自然人による振動履歴情報と、機械的に生成もしくは改ざんされた振動履歴情報とを識別する関数を出力させ、この関数を、指標関数として採用してもよい。
つまり、過去に得られた振動履歴情報のうち、正当性が確認された振動履歴情報に基づいて、指標関数が生成されて、指標関数ＤＢ１３１に格納されてもよい。
なお、指標関数の生成手法や生成場所は、特に限定されず、本実施形態では後述するようにサーバ２に設けられる指標関数生成更新部１２１が生成する手法を採用しているが、その他例えば、プレイヤーのプレイヤー端末１から集められた正規、および、不正規の振動履歴情報を、サーバ２側に所謂ビッグデータとして蓄積し、これらの振動履歴ビッグデータ（モーション・ビッグデータ）を対象とした機械学習による分類手法を採用してもよい。  具体的には本実施形態では、振動情報正当性判断部１１２は、振動情報取得部１１１により取得された振動履歴情報が示す各タイミングの加速度センサの値を、指標関数ＤＢ１３１に格納されている指標関数に入力して当該指標関数の出力に基づいて、振動履歴情報が示す各タイミングの加速度センサの値が、自然人がタッチ操作したものとして不自然でないか否かを確認する。つまり、自然人がタッチ操作したものとして不自然でないことが確認された振動履歴情報が、正当性が確認された振動履歴情報である。
【００４４】
操作情報取得部１１３は、プレイヤー端末１のタッチ操作の時系列を示す操作履歴情報を、通信部５９を介して当該プレイヤー端末１から取得する。
操作情報正当性判断部１１４は、操作情報取得部１１３により取得された操作履歴情報と、振動情報正当性判断部１１２で正当性が判断された振動履歴情報とを比較することで、当該操作履歴情報の正当性を判断する。
具体的には、操作情報正当性判断部１１４は、操作履歴情報が示すタッチ操作による入力イベント履歴と、正当性が確認された振動履歴情報が示す各タイミングの加速度センサの値とを比較し、入力イベント履歴が改ざんされていないことを確認する。
より具体的には例えば、操作情報正当性判断部１１４は、タッチ操作をしたときの時間に対応する加速度の変化が、入力履歴イベントと同時に起きていることを確認する関数を用いて、入力イベント履歴が改ざんされていないことを確認することができる。
【００４５】
指標関数生成更新部１２１は、過去に正当性が判断された振動履歴情報を用いて、指標関数を生成又は更新する。
具体的には、指標関数生成更新部１２１は、プレイヤー端末１において自然人のタッチ操作により検出された加速度の特徴量に基づいて、指標関数を生成又は更新する。生成又は更新の手法は、上述した様に特に限定されないが、適切なものに更新できるように、機械学習等を用いる手法を採用すると好適である。
指標関数管理部１２２は、このようにして指標関数生成更新部１２１によって生成又は更新された指標関数を、指標関数ＤＢ１３１に蓄積することで管理する。
【００４６】
以上、操作履歴改ざん検出制御を実現するためのプレイヤー端末１及びサーバ２の機能的構成について説明した。
次に、図７を参照して、このような機能的構成を有するサーバ２が実行する、操作履歴改ざん検出処理の流れを説明する。
図７は、サーバ２の操作履歴改ざん検出処理の流れを説明するフローチャートである。
【００４７】
ステップＳ１において、サーバ２の振動情報取得部１１１は、振動検出部３１の検出の時系列を示す振動履歴情報をプレイヤー端末１から取得する。
ステップＳ２において、操作情報取得部１１３は、タッチ操作の検出の時系列を表す操作履歴情報をプレイヤー端末１から取得する。
ステップＳ３において、振動情報正当性判断部１１２は、ステップＳ１の処理で取得された振動履歴情報の正当性を、指標関数管理部１２２によって管理されている指標関数を用いて判断する。
ステップＳ４において、振動情報正当性判断部１１２は、ステップＳ３の判断結果に基づいて、ステップＳ１の処理で取得された振動履歴情報は正当か否かを判断する。
【００４８】
振動履歴情報が正当でないと判断された場合、即ち、プログラム等による改ざん等が行われた可能性がある振動履歴情報と判断された場合、ステップＳ４においてＮＯであると判断されて、処理はステップＳ７に進む。
ステップＳ７において、振動情報正当性判断部１１２は、リクエストの拒否処理を実行する。ここでいうリクエストとは、操作履歴情報により特定されるタッチ操作の組合せによるコマンドの発行等のリクエストを意味する。その後、処理は、ステップＳ８に進む。なお、ステップＳ８以降の処理については後述する。
【００４９】
これに対して、振動履歴情報が正当であると判断された場合、ステップＳ４においてＹＥＳであると判断されて、処理はステップＳ５に進む。
ステップＳ５において、操作情報正当性判断部１１４は、ステップＳ２の処理で取得された操作履歴情報と、ステップＳ３及びＳ４で正当性が判断された振動履歴情報とを比較する。
ステップＳ６において、操作情報正当性判断部１１４は、操作履歴情報は正当であるか否かを判断する。
【００５０】
操作履歴情報が正当でないと判断された場合、即ち、プログラム等による改ざん等が行われた可能性がある操作履歴情報と判断された場合、ステップＳ６においてＮＯであると判断されて、処理はステップＳ７に進む。
ステップＳ７において、振動情報正当性判断部１１２は、リクエストの拒否処理を実行する。その後、処理は、ステップＳ８に進む。なお、ステップＳ８以降の処理については後述する。
【００５１】
これに対して、操作履歴情報が正当であると判断された場合、ステップＳ６においてＹＥＳであると判断されて、リクエストが受け付けられると、処理はステップＳ８に進む。
ステップＳ８において、サーバ２のＣＰＵ５１は、処理の終了指示が有ったか否かを判断する。ここで、処理の終了指示は、特に限定されないが、本実施形態ではサーバ２の電源遮断が採用されている。つまり、サーバ２において電源が遮断されると、ステップＳ８においてＹＥＳであると判断されて、サーバ２の操作履歴改ざん検出処理は終了になる。
これに対して、サーバ２において電源が遮断されない限り、ステップＳ８においてＮＯであると判断されて処理はステップＳ１に戻され、それ以降の処理が繰り返される。
【００５２】
以上本発明の一実施形態について説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【００５３】
例えば、上述の実施形態は、正規ユーザが自然に入力しており、かつ、改ざん者が容易には入力できないデータを、操作履歴改ざん検出の対象にするものである。
しかしながら、特にこれに限定されず、汎用的なタッチの操作についての操作履歴情報の正当性の検証の用途一般に適用することができる。即ち、ゲームに限定されず、スマートフォン等のタッチ操作の正当性の検証に幅広く適用することができる。
【００５４】
また例えば、上述の実施形態では、説明の便宜上、プレイヤー端末１へのタップの操作履歴情報を一例として用いたが、特にこれに限定されない。
即ち、上述したように、プレイヤー端末１のタッチパネルへのタッチ操作であれば、プレイヤー端末１に何らかの振動が生じる。従って、タップ、スワイプ、フリック等の任意の種類のタッチ操作が任意に組み合わされた操作履歴情報の検証に適用することが容易にできる。
【００５５】
また例えば、上述の実施形態では、振動履歴情報の正当性を検証するための情報として、人間が入力した加速度の特徴量を定義したモデルを用いて得られた指標関数が採用されたが、特にこれに限定されず、自然人によるタッチ操作に基づくプレイヤー端末１の振動か否かの判定の指標になる情報であれば足りる。このような情報を、以下「指標情報」と呼ぶ。即ち、指標関数は指標情報の一例である。
【００５６】
また例えば、図６の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が情報処理装置に備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図６の例に限定されない。また、機能ブロックの存在場所も、図６に特に限定されず、任意でよい。例えば、サーバ２の機能ブロックをプレイヤー端末１等に移譲させてもよいし、逆に端末１の機能ブロックをサーバ２等に移譲させてもよい。
また、１つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【００５７】
各機能ブロックの処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えばサーバの他汎用のスマートフォンやパーソナルコンピュータであってもよい。
【００５８】
このようなプログラムを含む記録媒体は、プレイヤーにプログラムを提供するために装置本体とは別に配布される図示せぬリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でプレイヤーに提供される記録媒体等で構成される。
【００５９】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
【００６０】
換言すると、本発明が適用される情報処理装置は、上述の図１のサーバ２を含め、次のような構成を有する各種各様の実施形態を取ることができる。
即ち、本発明が適用される情報処理装置は、次のような端末（例えば図１のプレイヤー端末１）と通信をして情報を授受する。
即ち、端末は、
自機で生じる振動を検出する第１検出部（例えば図２の振動検出部３１）と、
所定の表示面に画像を表示する表示部（例えば図２の表示部２７）と、
前記表示面に積層され、物体の接触を所定方式で検出する第２検出部（例えば図２のタッチ操作入力部２６）と、
前記物体の接触によるタッチ操作に基づいて、所定の処理を実行する実行部（例えば図６のゲーム実行部１４２）と、
を含む。
また、本発明が適用される情報処理装置は、
前記第１検出部の検出結果の時系列を示す振動履歴情報を前記端末から取得する第１取得手段（例えば図６の振動情報取得部１１１）と、
前記タッチ操作の時系列を示す操作履歴情報を前記端末から取得する第２取得手段（例えば図６の操作情報取得部１１３）と、
前記振動履歴情報と前記操作履歴情報とを比較することで、当該操作履歴情報の正当性を判断する第１判断手段（例えば図６の操作情報正当性判断部１１４）と、
を備える。
【００６１】
このようにして、操作履歴改ざん検出において、改ざん検知の手法が公知となった場合や、検知を行うプログラム・コードそのものが改ざんの対象となった場合においても有効に機能する手法が確立される。
即ち、正規ユーザが自然に入力しており、かつ、改ざん者が容易には入力できないデータとして、物体の接触操作（タッチ操作）により入力されるデータが存在する。このタッチ操作はスマートフォン等では汎用的な操作である。そこで、本発明が適用される情報処理装置は、この汎用的なタッチ操作のイベントの正当性を検証することにより、操作履歴の改ざん行為等（又はそのおそれの行為）を検出する。
ここで、正規ユーザが端末に対して自然にタッチ操作をした場合には、当該端末において振動が生ずる。この場合、第１検出部の検出結果の時系列を示す振動履歴情報は、物理現象から観測されるものであり、プログラムから正確に自動生成することは困難である。従って、本発明が適用される情報処理装置は、上記構成が公開されることによって、改ざん検知の手法が公知となった場合や、端末側において検知を行うプログラム・コードそのものが改ざんの対象となった場合においても、操作履歴の改ざん行為等を有効に検出することができる。
【００６２】
また、前記端末として一般的なスマートフォンが採用されるならば、ユーザのオプトイン操作は必要ない。具体的には、一般的なスマートフォンでは、その向きを検出する機能が、スマートフォンの基本機能として実装されているため、高い分解能を持つ加速度センサが常時起動しており、明示的にオフにすることができない。この加速度センサを前記第１検出部として採用することで、当該端末で実行される全てのアプリケーションソフトウェアに対する情報入力の改ざん検知を容易に行うことができる。
【００６３】
さらにまた、従来技術と異なり、クライアントの端末側を一切変更せずに、サーバとしての情報処理装置側の操作履歴改ざん検出ロジックを改善することができる。例えば、当該端末として新しいスマートフォンの機種が発表されたときに、当該機種固有の振動を加味した操作履歴改ざん検出ロジックを、任意の時点で当該情報処理装置（サーバ）側に追加することができる。さらに、振動履歴情報をビッグデータとしてサーバが保存しておけば、過去のデータに遡って操作履歴改ざん検出を行うことも可能である。
【００６４】
より詳細には、前記情報処理装置を適用することで、スマートフォン等のタッチパネルを有する端末上のアプリケーションソフトウェアの継続的な更新を必要としない、前記情報処理装置側での操作履歴改ざん検出の高精度化が可能になる。
即ち、スマートフォン上で動作するアプリケーションソフトウェアの操作としては、タッチ操作が用いられる。このタッチ操作の情報を改ざんし、アプリケーション上での不正行為、即ち操作履歴の改ざん行為等は従来大きな問題であった。特に、ゲームでは、このタッチ操作の改ざんにより、容易に高得点を記録することや、他プレイヤーとの競争に勝利するという操作履歴の改ざん行為等が、従来大きな問題であった。
このようなタッチ操作の情報を改ざんする操作履歴の改ざん行為等に対して、それを検出する手法は従来から存在する。ただし、従来の手法では、スマートフォン等のタッチパネルを有する端末上のアプリケーションソフトウェアの継続的な更新を必要とするか、又は、サーバ側から遠隔でクライアント上での不正を検出する精度が高くなかった。
具体的には、従来の手法としては、ゲームソフトウェアへの改変をメモリのスキャン等を通じて検出する手法が良く知られている。このような従来の手法を、以下、「クライアント側の改変検知手法」と呼ぶ。クライアント側の改変検知手法は、実行ファイルや操作履歴といった、第三者による偽造が容易なデータを対象としてチートを検出しており、プログラミングに精通したユーザであれば、回避のためのプログラムを作成することが可能である。そのため、クライアント側の改変検知手法を採用した場合、チート手法の変化に合わせて継続的にアプリケーションソフトウェアを更新し続ける必要がある。
また、従来の手法として、クライアントであるゲーム機やスマートフォン等からサーバに送信される、操作情報等のデータの一貫性を検証する、といったネットワーク型のチート検出手法も存在する。しかしながら、ネットワーク型のチート検出手法も、クライアント側の技術よりも、さらに少ない情報に依拠してチート検出を行わなければならないため、回避が容易である。従って、ネットワーク型のチート検出手法は、単独では有効にチートを抑制することが難しく、クライアント側の改変検知手法と併せて使用されることが多い。
また、従来の手法として、生体情報（バイオメトリクス）を用いる手法も存在する。この従来の手法は、偽造が困難なデータを対象としており、不正プログラムが出力したデータと自然人が入力したデータを容易に区別することが可能な手法である。しかしながら、生体情報そのものがセンシティブなプライバシー情報であるため、一般的なアプリケーションソフトウェアの改ざん検知手法として用いることは困難である。
以上のことから、センシティブでない情報源を利用し、不正プログラムが出力したデータと自然人が入力したデータを高精度に識別する改ざん検知手法の実現は、公平なアプリケーションやネットワークサービスの利用環境を実現するうえで、本質的に重要である。これを実現できる手法が、上述した様に、前記情報処理装置を適用する手法である。
【００６５】
また、前記情報処理装置は、
自然人による前記タッチ操作に基づく前記端末の振動か否かの判定の指標になる指標情報を管理する管理手段と（例えば図６の指標関数管理部１２２）、
前記指標情報に基づいて、前記振動履歴情報の正当性を判断する第２判断手段と（例えば図６の振動情報正当性判断部１１２）、
をさらに備え、
前記第１判断手段は、前記振動履歴情報の正当性が確認された場合、前記操作履歴情報の正当性の判断の実行を許可し、前記振動履歴情報の正当性が確認されなかった場合、前記操作履歴情報の正当性の判断の実行を禁止する（例えば図６の振動情報正当性判断部１１２）、
ことができる。
【００６６】
上述した様に、第１検出部の検出結果の時系列を示す振動履歴情報は、物理現象から観測されるものであり、プログラムから正確に自動生成することは困難である。しかしながら、不可能とまでは言い難い。そこで、振動履歴情報の正当性を判断するステップをさらに導入することで、操作履歴の改ざん行為等の不正行為をより確実に検出できるようになる。
【００６７】
ここで、過去に正当性が確認された１以上の前記振動履歴情報に基づいて、前記指標情報を生成する生成手段を（例えば図６の指標関数生成更新部１２１）、
さらに備えることができる。
これにより、指標情報の信頼性が高まり、操作履歴の改ざん行為等の不正行為をより確実に検出できるようになる。
また、過去に正当性が確認された１以上の前記振動履歴情報として、例えば全プレイヤーの振動履歴情報を情報処理装置（サーバ）側に蓄積し、それらを各端末（スマートフォン等）の機種毎に集計することにより、「自然な振動履歴情報の機械学習モデル」、といったモーション・ビッグデータを半自動的に生成することも容易にできる。このモーション・ビッグデータは外部から計測することができないデータであり、操作履歴の改ざん行為等の不正行為をさらに確実に検出できるようになる。
【符号の説明】
【００６８】
１、１−１乃至１−ｍ・・・プレイヤー端末、２・・・サーバ、２１・・・ＣＰＵ、５１・・・ＣＰＵ、１１１・・・振動情報取得部、１１２・・・振動情報正当性判断部、１１３・・・操作情報取得部、１１４・・・操作情報正当性判断部、１２１・・・指標関数生成更新部、１２２・・・指標情報管理部、１３１・・・指標情報ＤＢ
【要約】
【課題】操作履歴の改ざん行為等の新たな対策技術において、改ざん検知の手法が公知となった場合や、検知を行うプログラム・コードそのものが改ざんの対象となった場合においても有効に機能する手法を確立すること。
【解決手段】振動情報取得部１１１は、プレイヤー端末１の振動検出部３１の検出結果の時系列を示す振動履歴情報をプレイヤー端末１から取得する。操作情報取得部１１３は、プレイヤー端末１のタッチ操作入力部２６の検出結果の時系列を示す振動履歴情報をプレイヤー端末１から取得する。操作情報正当性判断部１１４は、操作情報取得部１１３から取得された操作履歴情報と振動情報正当性判断部１１２で正当性が判断された振動履歴情報を比較し、操作履歴情報の正当性を判断する。
【選択図】図６【図１】
0005926435.tif 000002
【図２】
0005926435.tif 000003
【図３】
0005926435.tif 000004
【図４】
0005926435.tif 000005
【図５】
0005926435.tif 000006
【図６】
0005926435.tif 000007
【図７】
0005926435.tif 000008