(57)【要約】【課題】  ファイル保護方法を提供する。【解決手段】  コンピュータによって実現されるサーバのファイル保護方法は、アプリケーションのインストールおよび実行のためのファイルが含まれるパッケージの入力を受ける段階と、パッケージにファイル保護モジュールの動作のための保護ファイルを追加する段階と、保護ファイルが追加されたパッケージを、ネットワークを介して提供する段階と、を含む。保護ファイルが追加されたパッケージを通じてアプリケーションがインストールおよび実行される電子機器で、アプリケーションのサービスコードを通じてアプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、ファイル保護モジュールに含まれる保護命令が呼び出され、呼び出された保護命令を通じて特定のファイルに対する制御および特定のファイルに格納されたデータに対する完全性検証が処理される。【選択図】      図６
2017142792.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実現されるサーバのファイル保護方法であって、
アプリケーションのインストールおよび実行のためのファイルが含まれるパッケージの入力を受ける段階と、
前記パッケージにファイル保護モジュールの動作のための保護ファイルを追加する段階と、
前記保護ファイルが追加されたパッケージを、ネットワークを介して提供する段階と、
を含み、
前記保護ファイルが追加されたパッケージを通じて前記アプリケーションがインストールおよび実行される電子機器で、前記アプリケーションのサービスコードを通じて前記アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、前記ファイル保護モジュールに含まれる保護命令が呼び出され、前記の呼び出された保護命令を通じて前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証が処理される、ファイル保護方法。
【請求項２】
前記特定のファイルに対する制御命令は、前記アプリケーションの開発者に提供されたソフトウェア開発キットを利用して前記ファイル保護モジュールに含まれる保護命令を呼び出すように、前記アプリケーションのサービスコードに含まれる、請求項１に記載のファイル保護方法。
【請求項３】
前記ファイル保護モジュールに含まれる保護命令は、前記特定のファイルに対する制御命令が実行されることによって呼び出され、前記特定のファイルに対する制御を処理し、前記特定のファイルに対して格納されたハッシュ値を比較および更新して完全性を検証する、請求項１に記載のファイル保護方法。
【請求項４】
前記特定のファイルに対する制御命令は、前記特定のファイルに対するオープン命令、読み取り命令、および書き取り命令のうちの少なくとも１つを含み、
前記オープン命令または前記読み取り命令によって呼び出された保護命令は、前記特定のファイルに対するオープンまたは読み取りを処理し、前記オープンまたは前記読み取りが処理された特定のファイルに対するハッシュ値を生成し、前記の生成されたハッシュ値を、前記ファイル保護モジュールによって格納されたハッシュ値と比較して完全性を検証し、
前記書き込み命令によって呼び出された保護命令は、前記特定のファイルに対する書き込み命令を処理し、前記書き込みが処理された特定のファイルに対するハッシュ値を生成し、前記格納されたハッシュ値を前記の生成されたハッシュ値に更新する、請求項１に記載のファイル保護方法。
【請求項５】
前記ファイル保護モジュールは、呼び出しスタックまたはレジスタを通じて前記特定のファイルに対する制御命令を実行するかどうかを確認し、
前記の確認された制御命令の実行が前記保護命令の呼び出しとして見なされて前記保護命令が呼び出され、前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証が処理される、請求項１に記載のファイル保護方法。
【請求項６】
前記アプリケーションに含まれるライブラリファイルの前記特定のファイルに対する制御命令が前記保護命令の呼び出しとして見なされて前記保護命令が呼び出され、前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証が処理される、請求項１に記載のファイル保護方法。
【請求項７】
コンピュータによって実現される電子機器にファイル保護方法を実行させるためのコンピュータプログラムであって、
前記ファイル保護方法は、
前記電子機器にインストールされたアプリケーションを実行する段階と、
前記アプリケーションのサービスコードにしたがってサービスを提供する段階と、
前記アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階と、
前記の呼び出された保護命令を通じて前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階と、
を含み、
前記ファイル保護モジュールは、サーバでアプリケーションのインストールおよび実行のためのファイルが含まれるパッケージに追加されて提供される、コンピュータプログラム。
【請求項８】
前記特定のファイルに対する制御命令は、前記アプリケーションの開発者に提供されたソフトウェア開発キットを利用して前記ファイル保護モジュールに含まれる保護命令を呼び出すように、前記アプリケーションのサービスコードに含まれる、請求項７に記載のコンピュータプログラム。
【請求項９】
前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階は、
前記特定のファイルに対する制御を処理し、前記特定のファイルに対して格納されたハッシュ値の比較および更新によって完全性を検証する、請求項７に記載のコンピュータプログラム。
【請求項１０】
前記特定のファイルに対する制御命令は、前記特定のファイルに対するオープン命令、読み取り命令、および書き取り命令のうちの少なくとも１つを含み、
前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階は、
前記オープン命令または前記読み取り命令によって呼び出された保護命令を通じて前記特定のファイルに対するオープンまたは読み取りを処理し、前記オープンまたは前記読み取りが処理された特定のファイルに対するハッシュ値を生成し、前記の生成されたハッシュ値を、前記ファイル保護モジュールによって格納されたハッシュ値と比較して完全性を検証し、前記書き込み命令によって呼び出された保護命令を通じて前記特定のファイルに対する書き込み命令を処理し、前記書き込みが処理された特定のファイルに対するハッシュ値を生成し、前記格納されたハッシュ値を前記の生成されたハッシュ値に更新する、請求項７に記載のコンピュータプログラム。
【請求項１１】
前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階は、
前記ファイル保護モジュールの制御にしたがい、呼び出しスタックまたはレジスタを通じて前記特定のファイルに対する制御命令を実行するかどうかを確認し、前記の確認された制御命令の実行を前記保護命令の呼び出しとして見なして前記保護命令を呼び出す、請求項７に記載のコンピュータプログラム。
【請求項１２】
前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階は、
前記ファイル保護モジュールの制御にしたがって前記アプリケーションに含まれるライブラリファイルの前記特定のファイルに対する制御命令を前記保護命令の呼び出しとして見なして前記保護命令を呼び出す、請求項７に記載のコンピュータプログラム。
【請求項１３】
コンピュータによって実現される電子機器のファイル保護方法であって、
前記電子機器にインストールされたアプリケーションを実行する段階と、
前記アプリケーションのサービスコードにしたがってサービスを提供する段階と、
前記アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階と、
前記の呼び出された保護命令を通じて前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階と、
を含み、
前記ファイル保護モジュールは、サーバでアプリケーションのインストールおよび実行のためのファイルが含まれるパッケージに追加されて提供される、ファイル保護方法。
【請求項１４】
前記特定のファイルに対する制御命令は、前記アプリケーションの開発者に提供されたソフトウェア開発キットを利用して前記ファイル保護モジュールに含まれる保護命令を呼び出すように、前記アプリケーションのサービスコードに含まれる、請求項１３に記載のファイル保護方法。
【請求項１５】
前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階は、
前記特定のファイルに対する制御を処理し、前記特定のファイルに対して格納されたハッシュ値の比較および更新によって完全性を検証する、請求項１３に記載のファイル保護方法。
【請求項１６】
前記特定のファイルに対する制御命令は、前記特定のファイルに対するオープン命令、読み取り命令、および書き取り命令のうちの少なくとも１つを含み、
前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階は、
前記オープン命令または前記読み取り命令によって呼び出された保護命令を通じて前記特定のファイルに対するオープンまたは読み取りを処理し、前記オープンまたは前記読み取りが処理された特定のファイルに対するハッシュ値を生成し、前記の生成されたハッシュ値を、前記ファイル保護モジュールによって格納されたハッシュ値と比較して完全性を検証し、前記書き込み命令によって呼び出された保護命令を通じて前記特定のファイルに対する書き込み命令を処理し、前記書き込みが処理された特定のファイルに対するハッシュ値を生成し、前記格納されたハッシュ値を前記の生成されたハッシュ値に更新する、請求項１３に記載のファイル保護方法。
【請求項１７】
前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階は、
前記ファイル保護モジュールの制御にしたがい、呼び出しスタックまたはレジスタを通じて前記特定のファイルに対する制御命令を実行するかどうかを確認し、前記の確認された制御命令の実行を前記保護命令の呼び出しとして見なして前記保護命令を呼び出す、請求項１３に記載のファイル保護方法。
【請求項１８】
前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階は、
前記ファイル保護モジュールの制御にしたがって前記アプリケーションに含まれるライブラリファイルの前記特定のファイルに対する制御命令を前記保護命令の呼び出しとして見なして前記保護命令を呼び出す、請求項１３に記載のファイル保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の説明は、ファイル保護方法に関する。
【背景技術】
【０００２】
サーバ−クライアント環境において、クライアントは、クライアントプログラムである特定のアプリケーションを通じてサーバに接続し、接続したサーバからサービスの提供を受けることができる。ここで、サービスと関連する重要なデータファイルは、重要なデータに対する完全性検証（ｉｎｔｅｇｒｉｔｙ  ｖｅｒｉｆｉｃａｔｉｏｎ）や重要なデータに対する操作からの保護のためにサーバに格納されることがある。
【０００３】
例えば、特許文献１には、ユーザデータの完全性検証のために、ユーザデータの暗号文とユーザデータに対するブルームフィルタ（Ｂｌｏｏｍ  ｆｉｌｔｅｒ）とをリモートコンピューティングサービスを提供するサーバのストレージに格納させ、ユーザから自身のユーザデータに対するダウンロード要求があった場合、要求されたユーザデータに対応する暗号文の一部とブルームフィルタの一部とをストレージから呼び出してユーザに送信し、送信された暗号文の一部が送信されたブルームフィルタの一部に属するかを判定することによってダウンロード要求したユーザデータの完全性を検証する構成が開示されている。
【０００４】
しかし、オフラインモードをサポートするゲームのように、重要なデータファイルがクライアントに格納され、持続的に更新されるサービスも存在する。このように重要なデータファイルがクライアントに格納されるサービスに対して持続的にサーバと通信してデータの完全性を検証することは、決して効率的であるとは言えない。これだけでなく、クライアントに格納された重要なデータファイルは、ユーザが容易にアクセスすることができるため、クライアントで該当のファイルを操作することを防ぐには困難がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】韓国登録特許第１０−１０８２９１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
サーバに登録されたアプリケーションのファイルにファイル保護モジュールを追加して電子機器に送信し、電子機器で実行されるアプリケーションのサービスコードを通じて特定のファイルに対するオープン（ｏｐｅｎ）命令、読み取り（ｒｅａｄ）命令、および／または書き込み（ｗｒｉｔｅ）命令が実行される場合にファイル保護モジュールのオープン命令、読み取り命令、および／または書き込み命令を呼び出すことができるようにし、ファイル保護モジュールのオープン命令、読み取り命令、および／または書き込み命令が該当の特定ファイルに対するオープン、読み取り、および／または書き込みを処理すると同時にファイルに対して完全性を検証することによって重要なファイルを保護することができる、ファイル保護方法を提供する。
【課題を解決するための手段】
【０００７】
コンピュータによって実現されるサーバのファイル保護方法であって、アプリケーションのインストールおよび実行のためのファイルが含まれるパッケージの入力を受ける段階と、前記パッケージにファイル保護モジュールの動作のための保護ファイルを追加する段階と、前記保護ファイルが追加されたパッケージを、ネットワークを介して提供する段階と、を含み、前記保護ファイルが追加されたパッケージを通じて前記アプリケーションがインストールおよび実行される電子機器で、前記アプリケーションのサービスコードを通じて前記アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、前記ファイル保護モジュールに含まれる保護命令が呼び出され、前記の呼び出された保護命令を通じて前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証が処理される、ファイル保護方法を提供する。
【０００８】
コンピュータによって実現される電子機器にファイル保護方法を実行させるためのコンピュータプログラムであって、前記ファイル保護方法は、前記電子機器にインストールされたアプリケーションを実行する段階と、前記アプリケーションのサービスコードにしたがってサービスを提供する段階と、前記アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階と、前記の呼び出された保護命令を通じて前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階と、を含み、前記ファイル保護モジュールは、サーバでアプリケーションのインストールおよび実行のためのファイルが含まれるパッケージに追加されて提供される、コンピュータプログラムを提供する。
【０００９】
コンピュータによって実現される電子機器のファイル保護方法であって、前記電子機器にインストールされたアプリケーションを実行する段階と、前記アプリケーションのサービスコードにしたがってサービスを提供する段階と、前記アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階と、前記の呼び出された保護命令を通じて前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階と、を含み、前記ファイル保護モジュールは、サーバでアプリケーションのインストールおよび実行のためのファイルが含まれるパッケージに追加されて提供される、ファイル保護方法を提供する。
【発明の効果】
【００１０】
サーバに登録されたアプリケーションのファイルにファイル保護モジュールを追加して電子機器に送信し、電子機器で実行されるアプリケーションのサービスコードを通じて特定のファイルに対するオープン命令、読み取り命令、および／または書き込み命令が実行される場合にファイル保護モジュールのオープン命令、読み取り命令、および／または書き込み命令を呼び出すことができるようにし、ファイル保護モジュールのオープン命令、読み取り命令、および／または書き込み命令が該当の特定ファイルに対するオープン、読み取り、および／または書き込みを処理すると同時にファイルに対して完全性を検証することにより、重要なファイルを保護することができる。
【００１１】
アプリケーションの開発者が、ファイルの完全性保護のためにアプリケーションに別の保護コードを追加したりサーバで完全性を保護するように別の機能を追加したりする必要なく、アプリケーション本来のサービス開発だけに集中することができるようにする。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【図２】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【図３】本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示した図である。
【図４】本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【図５】本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の例を示した図である。
【図６】本発明の一実施形態における、電子機器が実行することのできる方法の例を示したフローチャートである。
【図７】本発明の一実施形態における、サーバがパッケージに保護ファイルを追加して電子機器に送信する過程の例を示した図である。
【図８】本発明の一実施形態における、ＳＤＫ方式にしたがってファイルを保護する方法の例を示した図である。
【図９】本発明の一実施形態における、フッキングモードにしたがってファイルを保護する方法の例を示した図である。
【発明を実施するための形態】
【００１３】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【００１４】
図１は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図１のネットワーク環境は、複数の電子機器１１０、１２０、１３０、１４０、複数のサーバ１５０、１６０、およびネットワーク１７０を含む例を示している。このような図１は、発明を説明するための一例に過ぎず、電子機器の数やサーバの数が図１のように限定されることはない。
【００１５】
複数の電子機器１１０、１２０、１３０、１４０は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器１１０、１２０、１３０、１４０の例としては、スマートフォン、携帯電話、ナビゲーション、コンピュータ、ノート型パンコン、デジタル放送用端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、タブレットＰＣなどがある。一例として、電子機器１（１１０）は、無線または有線通信方式を利用し、ネットワーク１７０を介して他の電子機器１２０、１３０、１４０および／またはサーバ１５０、１６０と通信してよい。
【００１６】
通信方式が限定されることはなく、ネットワーク１７０が含むことのできる通信網（一例として、移動通信網、有線インターネット、無線インターネット、放送網）を活用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク１７０は、ＰＡＮ（ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＣＡＮ（ｃａｍｐｕｓ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＭＡＮ（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＢＢＮ（ｂｒｏａｄｂａｎｄ  ｎｅｔｗｏｒｋ）、インターネットなどのネットワークのうちの１つ以上の任意のネットワークを含んでもよい。さらに、ネットワーク１７０は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的（ｈｉｅｒａｒｃｈｉｃａｌ）ネットワークなどを含むネットワークトポロジのうちの任意の１つ以上を含んでもよいが、これらに限定されることはない。
【００１７】
サーバ１５０、１６０それぞれは、複数の電子機器１１０、１２０、１３０、１４０とネットワーク１７０を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する１つ以上のコンピュータ装置によって実現されてよい。
【００１８】
一例として、サーバ１５０は、電子機器２（１２０）から登録されたアプリケーションにファイル保護モジュールのためのファイルを追加してよい。ファイル保護モジュールが含まれるアプリケーションは、サーバ１５０や別のサーバ１６０を通じて電子機器１（１１０）に提供されてよく、電子機器１（１１０）は、アプリケーションをインストールおよび実行してアプリケーションが提供するサービスの提供を受けてよく、ファイル保護モジュールを通じて電子機器１（１１０）に格納された重要なデータファイルの保護を受けてよい。
【００１９】
図２は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図２では、１つの電子機器に対する例として電子機器１（１１０）の内部構成について、また、１つのサーバに対する例としてサーバ１５０の内部構成について説明する。他の電子機器１２０、１３０、１４０やサーバ１６０も、同一または類似の内部構成を備えてもよい。
【００２０】
電子機器１１０とサーバ１５０は、メモリ２１１、２２１、プロセッサ２１２、２２２、通信モジュール２１３、２２３、および入力／出力インタフェース２１４、２２４を含んでよい。メモリ２１１、２２１は、コンピュータで読み取り可能な記録媒体であって、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、およびディスクドライブのような永久大容量記憶装置（ｐｅｒｍａｎｅｎｔ  ｍａｓｓ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）を含んでよい。また、メモリ２１１、２２１には、オペレーティングシステムと、少なくとも１つのプログラムコード（一例として、電子機器１１０にインストールされ実行されるブラウザや映像通話のためのアプリケーションなどのためのコード）が格納されてよい。このようなソフトウェア構成要素は、ドライブメカニズム（ｄｒｉｖｅ  ｍｅｃｈａｎｉｓｍ）を利用してメモリ２１１、２２１とは別のコンピュータで読み取り可能な記録媒体からロードされてもよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピー（登録商標）ドライブ、ディスク、テープ、ＤＶＤ／ＣＤ−ＲＯＭドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール２１３、２２３を利用してメモリ２１１、２２１にロードされてもよい。例えば、少なくとも１つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム（一例として、上述したサーバ１６０）がネットワーク１７０を介して提供するファイルによってインストールされるプログラム（一例として、上述したアプリケーション）に基づいてメモリ２１１、２２１にロードされてもよい。
【００２１】
プロセッサ２１２、２２２は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ２１１、２２１または通信モジュール２１３、２２３によって、プロセッサ２１２、２２２に提供されてよい。例えば、プロセッサ２１２、２２２は、メモリ２１１、２２１のような記録装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【００２２】
通信モジュール２１３、２２３は、ネットワーク１７０を介して電子機器１（１１０）とサーバ１５０とが互いに通信するための機能を提供してもよいし、他の電子機器（一例として、電子機器２（１２０））または他のサーバ（一例として、サーバ１６０）と通信するための機能を提供してもよい。一例として、電子機器１（１１０）のプロセッサ２１２がメモリ２１１のような記録装置に格納されたプログラムコードにしたがって生成した要求（一例として、映像通話サービスのための要求）が、通信モジュール２１３の制御にしたがってネットワーク１７０を介してサーバ１５０に伝達されてもよい。これとは逆に、サーバ１５０のプロセッサ２２２の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール２２３とネットワーク１７０を経て電子機器１（１１０）の通信モジュール２１３を通じて電子機器１（１１０）に受信されてもよい。例えば、通信モジュール２１３を通じて受信されたサーバ１５０の制御信号や命令などは、プロセッサ２１２やメモリ２１１に伝達されてもよく、コンテンツやファイルなどは、電子機器１（１１０）がさらに含むことのできる格納媒体に格納されてもよい。
【００２３】
入力／出力インタフェース２１４、２２４は、入力／出力装置２１５とのインタフェースのための手段であってよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、出力装置は、アプリケーションの通信セッションを表示するためのディスプレイのような装置を含んでよい。他の例として、入力／出力インタフェース２１４は、タッチスクリーンのように入力と出力のための機能が１つに統合された装置とのインタフェースのための手段であってもよい。より具体的な例として、電子機器１（１１０）のプロセッサ２１２は、メモリ２１１にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ１５０や電子機器２（１２０）が提供するデータを利用して構成されるサービス画面やコンテンツが入力／出力インタフェース２１４を通じてディスプレイに表示されてもよい。
【００２４】
また、他の実施形態において、電子機器１（１１０）とサーバ１５０は、図２の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術の構成要素を明確に図に示す必要はない。例えば、電子機器１（１１０）は、上述した入力／出力装置２１５のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器１（１１０）がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラ、各種物理的なボタン、タッチパネルを利用したボタン、入力／出力ポート、振動のための振動器などの多様な構成要素が電子機器１（１１０）にさらに含まれるように実現されてもよいことが分かる。
【００２５】
図３は、本発明の一実施形態における、サーバが含むプロセッサを説明するためのブロック図であり、図４は、本発明の一実施形態における、サーバが実行する方法を示したフローチャートである。
【００２６】
図３に示すように、サーバ１５０に含まれるプロセッサ２２２は、構成要素として、入力制御部３１０、保護ファイル追加制御部３２０、およびパッケージ提供制御部３３０を含んでよい。このようなプロセッサ２２２およびプロセッサ２２２の構成要素は、図４のファイル保護方法が含む段階４１０〜４４０を実行するようにサーバ１５０を制御してよい。ここで、プロセッサ２２２およびプロセッサ２２２の構成要素は、メモリ２２１が含むオペレーティングシステムのコードと少なくとも１つのプログラムのコードによる命令を実行するように実現されてよい。また、プロセッサ２２２の構成要素は、サーバ１５０に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ２２２によって実行される互いに異なる機能の表現であってよい。例えば、プロセッサ２２２が上述した制御命令にしたがってパッケージの入力を受けるために動作する機能的表現として入力制御部３１０が使用されてよい。
【００２７】
段階４１０で、プロセッサ２２２は、ファイル保護方法のためのプログラムのファイルに格納されたプログラムコードをメモリ２２１にロードしてよい。例えば、サーバ１５０でプログラムが実行されれば、プロセッサ２２２は、オペレーティングシステムの制御にしたがってプログラムのファイルからプログラムコードをメモリ２２１にロードするようにサーバ１５０を制御してよい。
【００２８】
ここで、プロセッサ２２２が含む入力制御部３１０、保護ファイル追加制御部３２０、およびパッケージ提供制御部３３０それぞれは、メモリ２２１にロードされたプログラムコードのうちの対応する部分の命令を実行して以後の段階４２０〜４４０を実行するためのプロセッサ２２２の機能的表現であってよい。
【００２９】
段階４２０で、入力制御部３１０は、アプリケーションのインストールおよび実行のためのファイルが含まれるパッケージの入力を受けるようにサーバ１５０を制御してよい。例えば、アプリケーションの開発者は、電子機器２（１２０）を利用しネットワーク１７０を介してサーバ１５０に接続してよく、サーバ１５０に前記パッケージをアップロードしてよい。このとき、入力制御部３１０は、サーバ１５０が前記パッケージを受信して格納および登録などの過程を経るようにサーバ１５０を制御してよい。他の例として、アプリケーションの開発者は、パッケージが格納された別の格納媒体を提供し、格納媒体を通じてサーバ１５０にパッケージが入力されてもよい。
【００３０】
段階４３０で、保護ファイル追加制御部３２０は、パッケージにファイル保護モジュールの動作のための保護ファイルを追加するようにサーバ１５０を制御してよい。例えば、ファイル保護モジュールは、電子機器１（１１０）でインストールおよび実行されるアプリケーションによって制御されるファイルのうちの特定のファイルに対する保護機能を提供するためにアプリケーションのパッケージに追加されてよい。特定のファイルに対する保護機能については、以下でさらに詳しく説明する。
【００３１】
段階４４０で、パッケージ提供制御部３３０は、保護ファイルが追加されたパッケージを、ネットワークを介して提供するようにサーバ１５０を制御してよい。保護ファイルが追加されたパッケージは、サーバ１５０から直ぐに電子機器１（１１０）に提供されてもよいし、他のサーバ（一例として、サーバ１６０）を通じて電子機器１（１１０）に提供されてもよい。例えば、サーバ１６０は、多数のアプリケーションを登録および管理し、アプリケーションをユーザに配布するシステムであってよい。この場合、サーバ１５０は、アプリケーションのためのファイル保護モジュールを提供するためのシステムであって、保護ファイルが追加されたパッケージを、開発者を通じてまたは直接、サーバ１６０に送信および登録してもよい。
【００３２】
以下、図５および図６を参照しながら、パッケージを受信した電子機器１（１１０）の観点からのファイル保護方法について説明する。
【００３３】
図５は、本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の例を示した図であり、図６は、本発明の一実施形態における、電子機器が実行することのできる方法の例を示したフローチャートである。
【００３４】
図５に示すように、電子機器１（１１０）に含まれるプロセッサ２１２は、構成要素として、アプリケーション実行制御部５１０、サービス提供制御部５２０、保護命令呼び出し部５３０、およびファイルおよび完全性処理制御部５４０を含んでよい。このようなプロセッサ２１２およびプロセッサ２１２の構成要素は、図６のファイル保護方法が含む段階６１０〜６４０を実行するように電子機器１（１１０）を制御してよい。ここで、プロセッサ２１２およびプロセッサ２１２の構成要素は、メモリ２１１が含むオペレーティングシステムのコードと少なくとも１つのプログラムのコード（一例として、サーバ１５０が提供するファイル保護モジュールを含む保護ファイルが含まれるアプリケーションのパッケージ）による命令を実行するように実現されてよい。また、プロセッサ２１２の構成要素は、電子機器１（１１０）に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ２１２によって実行される互いに異なる機能の表現であってよい。例えば、プロセッサ２１２が上述した制御命令にしたがってアプリケーションを実行するために動作する機能的表現としてアプリケーション実行制御部５１０が使用されてよい。
【００３５】
段階６１０で、アプリケーション実行制御部５１０は、インストールされたアプリケーションを実行するように電子機器１（１１０）を制御してよい。例えば、電子機器１（１１０）でアプリケーションが実行されると、アプリケーション実行制御部５１０は、オペレーティングシステムの制御にしたがってアプリケーションのファイルからプログラムコードをメモリ２１１にロードするように電子機器１（１１０）を制御してよい。
【００３６】
段階６２０で、サービス提供制御部５２０は、アプリケーションのサービスコードにしたがってサービスを提供するように電子機器１（１１０）を制御してよい。例えば、サービス提供制御部５２０は、ゲームアプリケーションの場合、オンラインモードやオフラインモードのゲームサービスを提供するように電子機器１（１１０）を制御してよい。ここで、サービス提供制御部５２０は、オンラインモードの場合、ネットワーク１７０を介してゲームサーバ（図示せず）に接続してゲームサービスのためのデータの提供を受けてよい。
【００３７】
段階６３０で、保護命令呼び出し部５３０は、アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出してよい。アプリケーションによって制御されるファイル（例えば、電子機器１（１１０）に格納され、サービスコードのファイルに対する制御命令にしたがって制御されるファイル）は、電子機器１（１１０）のユーザによって操作される可能性があるため、該当のファイルに格納されたデータの完全性や操作検出などのような保護機能が提供される必要がある。したがって、本実施形態では、特定のファイルに対するサービスコードの制御命令ではファイルを直接制御することができないように、ファイル保護モジュールに含まれる保護命令を呼び出してよい。
【００３８】
段階６４０で、ファイルおよび完全性処理制御部５４０は、呼び出された保護命令を通じて特定のファイルに対する制御および特定のファイルに格納されたデータに対する完全性検証を処理するように電子機器１（１１０）を制御してよい。例えば、ファイル保護モジュールは、特定のファイルに対する完全性コードを格納するように動作してよく、保護命令は、該当のファイルに対する制御を処理した後、ファイルに対する完全性コードを生成して、格納された完全性コードと比較するなどの過程によって、ファイルに格納されたデータに対する完全性検証を処理してファイルの操作を保護してよい。例えば、ファイルおよび完全性処理制御部５４０は、ファイル保護モジュールの制御にしたがい、生成された完全性コードが、格納された完全性コードと同じではない場合、特定のファイルの操作を示すメッセージをサーバ１５０に送信してよく、アプリケーションが実行されないように電子機器１（１１０）を制御してよい。
【００３９】
保護命令の呼び出しを処理するための一例として、ソフトウェア開発キット（ＳＤＫ：Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ）方式が利用されてよい。開発者にはファイル保護のためのＳＤＫが提供されてよく、開発者は、ＳＤＫを利用して特定のファイルに対する制御命令として、ファイル保護モジュールに含まれる保護命令を呼び出す命令をアプリケーションのサービスコードに含ませてよい。この場合、段階６２０のように、サービスコードにしたがってサービスが提供されるとき、サービスコードに含まれる、特定のファイルに対する制御命令は、ファイル保護モジュールに含まれる保護命令を呼び出す命令で置換されているため、ファイル保護モジュールに含まれる保護命令が自動的に呼び出されるようになる。電子機器１（１１０）のユーザがパッケージからファイル保護命令が含まれる保護ファイルを取り除いた場合には、保護命令が呼び出されないため、アプリケーションは正常に動作しなくなる。
【００４０】
保護命令が正常に呼び出されれば、ファイルおよび完全性処理制御部５４０は、保護命令にしたがって特定のファイルに対する制御を処理し、特定のファイルに対して格納されたハッシュ値（上述した完全性コード）を比較および更新して完全性を検証してよい。
【００４１】
より具体的な例として、特定のファイルに対する制御命令は、特定のファイルに対するオープン命令、読み取り命令、および書き込み命令のうちの少なくとも１つを含んでよい。この場合、ファイルおよび完全性処理制御部５４０は、オープン命令または読み取り命令によって呼び出された保護命令にしたがって特定のファイルに対するオープンまたは読み取りを処理し、オープンまたは読み取りが処理された特定のファイルに対するハッシュ値を生成し、生成されたハッシュ値を、ファイル保護モジュールによって格納されたハッシュ値と比較して完全性を検証してよい。ファイルのオープンや読み取りの処理では該当のファイルが変更されないため、ファイルに対して生成されるハッシュ値は、以前に格納されたハッシュ値と同じでなければならない。ハッシュ値が同じではない場合には、該当のファイルが操作された可能性があるため、電子機器１（１１０）は、ファイル保護モジュールの制御にしたがってファイルの操作を示すメッセージをサーバ１５０に送信したりアプリケーションの実行をブロックしたりするなどの手順を進めることにより、アプリケーションのファイルを保護することができる。
【００４２】
また、ファイルおよび完全性処理制御部５４０は、書き込み命令によって呼び出された保護命令にしたがって特定のファイルに対する書き込み命令を処理し、書き込みが処理された特定のファイルに対するハッシュ値を生成し、格納されたハッシュ値を、生成されたハッシュ値に更新してよい。ファイルに対する書き込みが処理されれば該当のファイルは変更されるため、比較のために格納されたハッシュ値も、変更されたファイルに対するハッシュ値に変更されなければならず、ファイルおよび完全性処理制御部５４０は、書き込み命令によって呼び出された保護命令にしたがってファイルに対する書き込みを処理した後、ハッシュ値を更新してよい。
【００４３】
他の実施形態として、別のＳＤＫを提供するのではなく、制御命令にしたがって保護命令を呼び出すことも可能である。例えば、ファイル保護モジュールは、呼び出しスタックまたはレジスタを通じて特定のファイルに対する制御命令を実行するかどうかを確認してもよい。例えば、保護命令呼び出し部５３０は、段階６３０で、ファイル保護モジュールの制御にしたがい、呼び出しスタックまたはレジスタを通じて特定のファイルに対する制御命令を実行するかどうかを確認し、確認された制御命令の実行を保護命令の呼び出しと見なして保護命令を呼び出してもよい。サービスコードで実行された関数と関連して関数を呼び出したアドレスやリターン値が提供されるアドレスなどに関する情報が、呼び出しスタックまたはレジスタを通じて管理されてもよい。保護命令呼び出し部５３０は、ファイル保護モジュールの制御にしたがって呼び出しスタックやレジスタを確認し、特定のファイルに対するオープン命令、読み取り命令、および／または書き込み命令が発生したかどうかを確認してもよい。ここで、保護命令呼び出し部５３０は、確認されたオープン命令、読み取り命令、および／または書き込み命令を保護命令の呼び出しとして見なし（呼び出しスタックやレジスタで確認された制御命令をフッキング（ｈｏｏｋｉｎｇ））、制御命令の代わりに保護命令を呼び出して実行されるようにしてもよい。
【００４４】
さらに他の実施形態として、サービスコードと連携する別のライブラリファイルを通じて特定のファイルに対する制御命令が実行されることも可能である。例えば、別のライブラリファイルは、アプリケーションの開発者やサーバ１５０ではないサードパーティーによって提供されるファイルであってよい。したがって、開発者は、ＳＤＫを通じて制御することができない。ここで、保護命令呼び出し部５３０は、ファイル保護モジュールの制御にしたがってライブラリファイルによる制御命令を保護命令の呼び出しとして見なし（ライブラリファイルによる制御命令をフッキング）、保護命令を呼び出してもよい。例えば、保護命令呼び出し部５３０は、ライブラリファイルによる特定のファイルに対するオープン命令、読み取り命令、および／または書き込み命令すべてを保護命令の呼び出しとして見なしてもよい。
【００４５】
このように、本発明の実施形態によると、サーバに登録されたアプリケーションのファイルにファイル保護モジュールを追加して電子機器に送信し、電子機器で実行されるアプリケーションのサービスコードで特定のファイルに対するオープン命令、読み取り命令、および／または書き込み命令が実行される場合にファイル保護モジュールのオープン命令、読み取り命令、および／または書き込み命令を呼び出すようにし、ファイル保護モジュールのオープン命令、読み取り命令、および／または書き込み命令が該当の特定ファイルに対するオープン、読み取り、および／または書き込みを処理すると同時にファイルに対して完全性を検証することによって重要なファイルを保護することができる。また、アプリケーションの開発者が、ファイルの完全性保護のために、アプリケーションに別の保護コードを追加したりサーバで完全性を保護するように別の機能を追加したりする必要がなく、アプリケーション本来のサービス開発だけに集中することができるようになる。
【００４６】
以下では、ファイル保護方法に関するより具体的な実施形態について説明する。
【００４７】
図７は、本発明の一実施形態における、サーバがパッケージに保護ファイルを追加して電子機器に送信する過程の例を示した図である。図７は、開発者端末７１０、ファイル保護システム７２０、ファイル配布システム７３０、ユーザ端末７４０、サービスシステム７５０をそれぞれ示している。開発者端末７１０は、アプリケーションの開発者が利用する電子機器であってよく、ユーザ端末７４０は、アプリケーションのユーザが利用する電子機器であってよい。ファイル保護システム７２０は、上述したサーバ１５０に対応してよく、ファイル配布システム７３０とサービスシステム７５０もそれぞれ個別サーバであってよい。他の実施形態において、ファイル保護システム７２０とファイル配布システム７３０は、同じ主体によって運営されるシステムであってもよいし、１つのシステムであってもよい。また、サービスシステム７５０は、開発者によって運営されるサーバシステムであってもよいし、開発者とは異なるサードパーティーが提供するサーバ側プログラムに基づいて動作するサーバシステムであってもよい。例えば、サービスシステム７５０は、ゲームアプリケーションを通じてオンラインゲームサービスを提供するゲームサーバであってよい。
【００４８】
１．パッケージ登録過程は、開発者端末７１０が、開発者によって開発されたアプリケーションのパッケージをファイル保護システム７２０に登録する過程であってよい。例えば、開発者端末７１０とファイル保護システム７２０との間のネットワーク（一例として、図１のネットワーク１７０）を介したデータ通信により、パッケージが開発者端末７１０からファイル保護システム７２０に送信されてよい。以後、このようなネットワークを介したデータ通信についての説明は省略する。
【００４９】
２．保護ファイル追加過程は、ファイル保護システム７２０が、登録されたアプリケーションのパッケージに、ファイル保護モジュールが含まれる保護ファイルを追加する過程であってよい。
【００５０】
３．パッケージ登録過程は、ファイル保護システム７２０が、保護ファイルが追加されたパッケージをファイル配布システム７３０に登録する過程であってよい。他の実施形態において、ファイル保護システム７２０は、保護ファイルが追加されたパッケージを開発者端末７１０に提供し、開発者端末７１０が、直接ファイル配布システム７３０に、保護ファイルが追加されたパッケージを登録することも可能である。
【００５１】
４．パッケージ配布過程は、ファイル配布システム７３０が、ユーザ端末７４０の要求に応じて、保護ファイルが追加されたパッケージをユーザ端末７４０に配布する過程であってよい。ユーザ端末７４０では、保護ファイルが追加されたパッケージを通じて、アプリケーションがユーザ端末７４０にインストールされてよい。
【００５２】
５．サービス通信過程は、ユーザ端末７４０が実行するアプリケーションに基づいてサービスシステム７５０と通信してサービスの提供を受ける過程であってよい。
【００５３】
図８は、本発明の一実施形態における、ＳＤＫ方式にしたがってファイルを保護する方法の例を示した図である。図８は、ゲームアプリケーションパッケージ８１０の例であって、ゲームアプリケーションパッケージ８１０がゲームコード８１１、ファイル保護モジュール８１２、および保護ファイル８１３を含む例を示している。図８は、ゲームコードで保護ファイル８１３をオープンするためのオープン命令「ＦＩＬＥ＿ＯＰＥＮ＿１」が実行されることにより、ファイル保護モジュール８１２の保護命令「ＦＩＬＥ＿ＯＰＥＮ＿２」が自動的に呼び出される例を示している。上述したように、ゲームコードの保護ファイル８１３に対する制御命令（ＦＩＬＥ＿ＯＰＥＮ＿１、ＦＩＬＥ＿ＲＥＡＤ＿１、ＦＩＬＥ＿ＷＲＩＴＥ＿１）は、開発者に提供されたＳＤＫに基づいてファイル保護モジュール８１２の保護命令（ＦＩＬＥ＿ＯＰＥＮ＿２、ＦＩＬＥ＿ＲＥＡＤ＿２、ＦＩＬＥ＿ＷＲＩＴＥ＿２）を呼び出すように実現されてよい。呼び出された保護命令「ＦＩＬＥ＿ＯＰＥＮ＿２」にしたがって保護ファイル８１３に対するオープン命令が処理されてよく、保護ファイル８１３に対するハッシュ値が生成されてよい。生成されたハッシュ値は、ファイル保護モジュール８１２によって管理される特定の格納領域である「Ｐｒｏｐｅｒｔｙ」８２０に暗号化されて格納されたハッシュ値と比較され、保護ファイル８１３に格納されたデータの完全性検証に利用されてよい。
【００５４】
これと同様に、ゲームコードで保護ファイル８１３に対する読み取り命令「ＦＩＬＥ＿ＲＥＡＤ＿１」や書き込み命令「ＦＩＬＥ＿ＷＲＩＴＥ＿１」が実行される場合にも、ファイル保護モジュール８１２の保護命令「ＦＩＬＥ＿ＲＥＡＤ＿２」や「ＦＩＬＥ＿ＷＲＩＴＥ＿２」が自動的に呼び出されてよい。保護命令「ＦＩＬＥ＿ＷＲＩＴＥ＿２」にしたがって保護ファイル８１３が変更された場合には、「Ｐｒｏｐｅｒｔｙ」８２０に暗号化されて格納されたハッシュ値を、変更された保護ファイル８１３に対して生成されたハッシュ値に更新してよい。
【００５５】
図８の実施形態では、１つの保護ファイル８１３について説明されているが、複数のファイルが保護ファイルとして設定されてもよく、ゲームコードが制御しようとするすべてのファイルが保護ファイルとして設定されてもよい。ハッシュ値は、個別ファイルごとに生成されて管理されてもよい。また、特定の格納領域である「Ｐｒｏｐｅｒｔｙ」８２０は、ファイル保護モジュール８１２に含まれる領域であってもよいし、メモリ（一例として、図２の電子機器１（１１０）のメモリ２１１）上の別の領域であってもよい。
【００５６】
図９は、本発明の一実施形態における、フッキングモードによってファイルを保護する方法の例を示した図である。図９は、ゲームアプリケーションパッケージ９００の例であって、ゲームアプリケーションパッケージ９００がゲームコード９１０、ファイル保護モジュール９２０、および保護ファイル９３０を含む例を示している。本実施形態では、別途のＳＤＫは提供されない。したがって、ゲームコード９１０のオープン命令「ＦＩＬＥ＿ＯＰＥＮ＿１」は、保護ファイル９３０に対するオープンを処理しようとしてよい。ここで、ファイル保護モジュール９２０は、ゲームコードのオープン命令「ＦＩＬＥ＿ＯＰＥＮ＿１」をフッキングしてファイル保護モジュール９２０の保護命令「ＦＩＬＥ＿ＯＰＥＮ＿２」を呼び出してよい。この場合、ファイル保護モジュール９２０の保護命令「ＦＩＬＥ＿ＯＰＥＮ＿２」は、保護ファイル９３０に対するオープンを処理した後、図８のように、保護ファイル９３０のハッシュ値を生成して、生成されたハッシュ値を、予め格納されたハッシュ値と比較することにより、保護ファイル９３０に格納されたデータに対する完全性を検証してよい。
【００５７】
これと同様に、ファイル保護モジュール９２０は、ゲームコード９１０の読み取り命令「ＦＩＬＥ＿ＲＥＡＤ＿１」や書き込み命令「ＦＩＬＥ＿ＷＲＩＴＥ＿１」もフッキングし、ファイル保護モジュール９２０の保護命令「ＦＩＬＥ＿ＲＥＡＤ＿２」や「ＦＩＬＥ＿ＷＲＩＴＥ＿２」を呼び出してよい。それぞれの場合についても、保護ファイル９３０に対する読み取りと書き込みが処理された後にハッシュ値の比較または更新が処理されてよい。このような命令に対するフッキングは、上述したように、呼び出しスタックまたはレジスタを通じて保護ファイル９３０に対する制御命令（オープン、読み取り、書き取り）を実行するかどうかを確認して処理されてよい。
【００５８】
また、ゲームコードではないライブラリ９４０でも、保護ファイル９３０に対するオープン命令「ＦＩＬＥ＿ＯＰＥＮ＿３」、読み取り命令「ＦＩＬＥ＿ＲＥＡＤ＿３」、および／または書き込み命令「ＦＩＬＥ＿ＷＲＩＴＥ＿３」が発生することがある。ファイル保護モジュール９２０は、ライブラリ９４０での命令もフッキングしてファイル保護モジュール９２０の保護命令を呼び出し、保護ファイル９３０に対するオープン、読み取り、および／または書き込みを代わりに処理してよい。ハッシュ値の比較と更新による完全性検証も、ファイル保護モジュール９２０によって処理されることは勿論である。このとき、命令に対するフッキングは、ライブラリ９４０で発生する保護ファイル９３０に対するすべてのオープン命令、読み取り命令、書き込み命令をフッキングして処理されてもよい。
【００５９】
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム（ＯＳ）および前記ＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでもよい。また、並列プロセッサのような、他の処理構成も可能である。
【００６０】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置、または伝送される信号波に永久的または一時的に具現化されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された方法によって格納されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータで読み取り可能な記録媒体に格納されてもよい。
【００６１】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な記録媒体に記録されてもよい。前記コンピュータで読み取り可能な記録媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでもよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために１つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
【００６２】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【００６３】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【００６４】
１１０、１２０、１３０、１４０：  電子機器
１５０、１６０：  サーバ
１７０：  ネットワーク
【図１】
2017142792.tif 000003
【図２】
2017142792.tif 000004
【図３】
2017142792.tif 000005
【図４】
2017142792.tif 000006
【図５】
2017142792.tif 000007
【図６】
2017142792.tif 000008
【図７】
2017142792.tif 000009
【図８】
2017142792.tif 000010
【図９】
2017142792.tif 000011