JP2017142792A - ファイル保護方法 - Google Patents

ファイル保護方法 Download PDF

Info

Publication number
JP2017142792A
JP2017142792A JP2017018262A JP2017018262A JP2017142792A JP 2017142792 A JP2017142792 A JP 2017142792A JP 2017018262 A JP2017018262 A JP 2017018262A JP 2017018262 A JP2017018262 A JP 2017018262A JP 2017142792 A JP2017142792 A JP 2017142792A
Authority
JP
Japan
Prior art keywords
file
protection
instruction
application
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017018262A
Other languages
English (en)
Inventor
ソンボム アン
Sungbeom Ahn
ソンボム アン
サンフン チョン
Sanghun Jeon
サンフン チョン
ミョンジュ チョン
Myungju Chung
ミョンジュ チョン
ドンピル ソ
Dongpil Seo
ドンピル ソ
ソンヨル イム
Seong Yeol Lim
ソンヨル イム
ワンジン オ
Wang Jin Oh
ワンジン オ
グァンヒ ハン
Kwang-Hee Han
グァンヒ ハン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Z Intermediate Global Corp
Original Assignee
Line Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Line Corp filed Critical Line Corp
Publication of JP2017142792A publication Critical patent/JP2017142792A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • User Interface Of Digital Computer (AREA)
  • Power Engineering (AREA)

Abstract

【課題】 ファイル保護方法を提供する。
【解決手段】 コンピュータによって実現されるサーバのファイル保護方法は、アプリケーションのインストールおよび実行のためのファイルが含まれるパッケージの入力を受ける段階と、パッケージにファイル保護モジュールの動作のための保護ファイルを追加する段階と、保護ファイルが追加されたパッケージを、ネットワークを介して提供する段階と、を含む。保護ファイルが追加されたパッケージを通じてアプリケーションがインストールおよび実行される電子機器で、アプリケーションのサービスコードを通じてアプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、ファイル保護モジュールに含まれる保護命令が呼び出され、呼び出された保護命令を通じて特定のファイルに対する制御および特定のファイルに格納されたデータに対する完全性検証が処理される。
【選択図】 図6

Description

以下の説明は、ファイル保護方法に関する。
サーバ−クライアント環境において、クライアントは、クライアントプログラムである特定のアプリケーションを通じてサーバに接続し、接続したサーバからサービスの提供を受けることができる。ここで、サービスと関連する重要なデータファイルは、重要なデータに対する完全性検証(integrity verification)や重要なデータに対する操作からの保護のためにサーバに格納されることがある。
例えば、特許文献1には、ユーザデータの完全性検証のために、ユーザデータの暗号文とユーザデータに対するブルームフィルタ(Bloom filter)とをリモートコンピューティングサービスを提供するサーバのストレージに格納させ、ユーザから自身のユーザデータに対するダウンロード要求があった場合、要求されたユーザデータに対応する暗号文の一部とブルームフィルタの一部とをストレージから呼び出してユーザに送信し、送信された暗号文の一部が送信されたブルームフィルタの一部に属するかを判定することによってダウンロード要求したユーザデータの完全性を検証する構成が開示されている。
しかし、オフラインモードをサポートするゲームのように、重要なデータファイルがクライアントに格納され、持続的に更新されるサービスも存在する。このように重要なデータファイルがクライアントに格納されるサービスに対して持続的にサーバと通信してデータの完全性を検証することは、決して効率的であるとは言えない。これだけでなく、クライアントに格納された重要なデータファイルは、ユーザが容易にアクセスすることができるため、クライアントで該当のファイルを操作することを防ぐには困難がある。
韓国登録特許第10−1082917号公報
サーバに登録されたアプリケーションのファイルにファイル保護モジュールを追加して電子機器に送信し、電子機器で実行されるアプリケーションのサービスコードを通じて特定のファイルに対するオープン(open)命令、読み取り(read)命令、および/または書き込み(write)命令が実行される場合にファイル保護モジュールのオープン命令、読み取り命令、および/または書き込み命令を呼び出すことができるようにし、ファイル保護モジュールのオープン命令、読み取り命令、および/または書き込み命令が該当の特定ファイルに対するオープン、読み取り、および/または書き込みを処理すると同時にファイルに対して完全性を検証することによって重要なファイルを保護することができる、ファイル保護方法を提供する。
コンピュータによって実現されるサーバのファイル保護方法であって、アプリケーションのインストールおよび実行のためのファイルが含まれるパッケージの入力を受ける段階と、前記パッケージにファイル保護モジュールの動作のための保護ファイルを追加する段階と、前記保護ファイルが追加されたパッケージを、ネットワークを介して提供する段階と、を含み、前記保護ファイルが追加されたパッケージを通じて前記アプリケーションがインストールおよび実行される電子機器で、前記アプリケーションのサービスコードを通じて前記アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、前記ファイル保護モジュールに含まれる保護命令が呼び出され、前記の呼び出された保護命令を通じて前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証が処理される、ファイル保護方法を提供する。
コンピュータによって実現される電子機器にファイル保護方法を実行させるためのコンピュータプログラムであって、前記ファイル保護方法は、前記電子機器にインストールされたアプリケーションを実行する段階と、前記アプリケーションのサービスコードにしたがってサービスを提供する段階と、前記アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階と、前記の呼び出された保護命令を通じて前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階と、を含み、前記ファイル保護モジュールは、サーバでアプリケーションのインストールおよび実行のためのファイルが含まれるパッケージに追加されて提供される、コンピュータプログラムを提供する。
コンピュータによって実現される電子機器のファイル保護方法であって、前記電子機器にインストールされたアプリケーションを実行する段階と、前記アプリケーションのサービスコードにしたがってサービスを提供する段階と、前記アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階と、前記の呼び出された保護命令を通じて前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階と、を含み、前記ファイル保護モジュールは、サーバでアプリケーションのインストールおよび実行のためのファイルが含まれるパッケージに追加されて提供される、ファイル保護方法を提供する。
サーバに登録されたアプリケーションのファイルにファイル保護モジュールを追加して電子機器に送信し、電子機器で実行されるアプリケーションのサービスコードを通じて特定のファイルに対するオープン命令、読み取り命令、および/または書き込み命令が実行される場合にファイル保護モジュールのオープン命令、読み取り命令、および/または書き込み命令を呼び出すことができるようにし、ファイル保護モジュールのオープン命令、読み取り命令、および/または書き込み命令が該当の特定ファイルに対するオープン、読み取り、および/または書き込みを処理すると同時にファイルに対して完全性を検証することにより、重要なファイルを保護することができる。
アプリケーションの開発者が、ファイルの完全性保護のためにアプリケーションに別の保護コードを追加したりサーバで完全性を保護するように別の機能を追加したりする必要なく、アプリケーション本来のサービス開発だけに集中することができるようにする。
本発明の一実施形態における、ネットワーク環境の例を示した図である。 本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。 本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示した図である。 本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。 本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の例を示した図である。 本発明の一実施形態における、電子機器が実行することのできる方法の例を示したフローチャートである。 本発明の一実施形態における、サーバがパッケージに保護ファイルを追加して電子機器に送信する過程の例を示した図である。 本発明の一実施形態における、SDK方式にしたがってファイルを保護する方法の例を示した図である。 本発明の一実施形態における、フッキングモードにしたがってファイルを保護する方法の例を示した図である。
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明を説明するための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、コンピュータ、ノート型パンコン、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットPCなどがある。一例として、電子機器1(110)は、無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信してよい。
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を活用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでもよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的(hierarchical)ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。
一例として、サーバ150は、電子機器2(120)から登録されたアプリケーションにファイル保護モジュールのためのファイルを追加してよい。ファイル保護モジュールが含まれるアプリケーションは、サーバ150や別のサーバ160を通じて電子機器1(110)に提供されてよく、電子機器1(110)は、アプリケーションをインストールおよび実行してアプリケーションが提供するサービスの提供を受けてよく、ファイル保護モジュールを通じて電子機器1(110)に格納された重要なデータファイルの保護を受けてよい。
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図2では、1つの電子機器に対する例として電子機器1(110)の内部構成について、また、1つのサーバに対する例としてサーバ150の内部構成について説明する。他の電子機器120、130、140やサーバ160も、同一または類似の内部構成を備えてもよい。
電子機器110とサーバ150は、メモリ211、221、プロセッサ212、222、通信モジュール213、223、および入力/出力インタフェース214、224を含んでよい。メモリ211、221は、コンピュータで読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永久大容量記憶装置(permanent mass storage device)を含んでよい。また、メモリ211、221には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、電子機器110にインストールされ実行されるブラウザや映像通話のためのアプリケーションなどのためのコード)が格納されてよい。このようなソフトウェア構成要素は、ドライブメカニズム(drive mechanism)を利用してメモリ211、221とは別のコンピュータで読み取り可能な記録媒体からロードされてもよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD−ROMドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール213、223を利用してメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ160)がネットワーク170を介して提供するファイルによってインストールされるプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされてもよい。
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記録装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
通信モジュール213、223は、ネットワーク170を介して電子機器1(110)とサーバ150とが互いに通信するための機能を提供してもよいし、他の電子機器(一例として、電子機器2(120))または他のサーバ(一例として、サーバ160)と通信するための機能を提供してもよい。一例として、電子機器1(110)のプロセッサ212がメモリ211のような記録装置に格納されたプログラムコードにしたがって生成した要求(一例として、映像通話サービスのための要求)が、通信モジュール213の制御にしたがってネットワーク170を介してサーバ150に伝達されてもよい。これとは逆に、サーバ150のプロセッサ222の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール223とネットワーク170を経て電子機器1(110)の通信モジュール213を通じて電子機器1(110)に受信されてもよい。例えば、通信モジュール213を通じて受信されたサーバ150の制御信号や命令などは、プロセッサ212やメモリ211に伝達されてもよく、コンテンツやファイルなどは、電子機器1(110)がさらに含むことのできる格納媒体に格納されてもよい。
入力/出力インタフェース214、224は、入力/出力装置215とのインタフェースのための手段であってよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、出力装置は、アプリケーションの通信セッションを表示するためのディスプレイのような装置を含んでよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。より具体的な例として、電子機器1(110)のプロセッサ212は、メモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器2(120)が提供するデータを利用して構成されるサービス画面やコンテンツが入力/出力インタフェース214を通じてディスプレイに表示されてもよい。
また、他の実施形態において、電子機器1(110)とサーバ150は、図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術の構成要素を明確に図に示す必要はない。例えば、電子機器1(110)は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器1(110)がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラ、各種物理的なボタン、タッチパネルを利用したボタン、入力/出力ポート、振動のための振動器などの多様な構成要素が電子機器1(110)にさらに含まれるように実現されてもよいことが分かる。
図3は、本発明の一実施形態における、サーバが含むプロセッサを説明するためのブロック図であり、図4は、本発明の一実施形態における、サーバが実行する方法を示したフローチャートである。
図3に示すように、サーバ150に含まれるプロセッサ222は、構成要素として、入力制御部310、保護ファイル追加制御部320、およびパッケージ提供制御部330を含んでよい。このようなプロセッサ222およびプロセッサ222の構成要素は、図4のファイル保護方法が含む段階410〜440を実行するようにサーバ150を制御してよい。ここで、プロセッサ222およびプロセッサ222の構成要素は、メモリ221が含むオペレーティングシステムのコードと少なくとも1つのプログラムのコードによる命令を実行するように実現されてよい。また、プロセッサ222の構成要素は、サーバ150に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ222によって実行される互いに異なる機能の表現であってよい。例えば、プロセッサ222が上述した制御命令にしたがってパッケージの入力を受けるために動作する機能的表現として入力制御部310が使用されてよい。
段階410で、プロセッサ222は、ファイル保護方法のためのプログラムのファイルに格納されたプログラムコードをメモリ221にロードしてよい。例えば、サーバ150でプログラムが実行されれば、プロセッサ222は、オペレーティングシステムの制御にしたがってプログラムのファイルからプログラムコードをメモリ221にロードするようにサーバ150を制御してよい。
ここで、プロセッサ222が含む入力制御部310、保護ファイル追加制御部320、およびパッケージ提供制御部330それぞれは、メモリ221にロードされたプログラムコードのうちの対応する部分の命令を実行して以後の段階420〜440を実行するためのプロセッサ222の機能的表現であってよい。
段階420で、入力制御部310は、アプリケーションのインストールおよび実行のためのファイルが含まれるパッケージの入力を受けるようにサーバ150を制御してよい。例えば、アプリケーションの開発者は、電子機器2(120)を利用しネットワーク170を介してサーバ150に接続してよく、サーバ150に前記パッケージをアップロードしてよい。このとき、入力制御部310は、サーバ150が前記パッケージを受信して格納および登録などの過程を経るようにサーバ150を制御してよい。他の例として、アプリケーションの開発者は、パッケージが格納された別の格納媒体を提供し、格納媒体を通じてサーバ150にパッケージが入力されてもよい。
段階430で、保護ファイル追加制御部320は、パッケージにファイル保護モジュールの動作のための保護ファイルを追加するようにサーバ150を制御してよい。例えば、ファイル保護モジュールは、電子機器1(110)でインストールおよび実行されるアプリケーションによって制御されるファイルのうちの特定のファイルに対する保護機能を提供するためにアプリケーションのパッケージに追加されてよい。特定のファイルに対する保護機能については、以下でさらに詳しく説明する。
段階440で、パッケージ提供制御部330は、保護ファイルが追加されたパッケージを、ネットワークを介して提供するようにサーバ150を制御してよい。保護ファイルが追加されたパッケージは、サーバ150から直ぐに電子機器1(110)に提供されてもよいし、他のサーバ(一例として、サーバ160)を通じて電子機器1(110)に提供されてもよい。例えば、サーバ160は、多数のアプリケーションを登録および管理し、アプリケーションをユーザに配布するシステムであってよい。この場合、サーバ150は、アプリケーションのためのファイル保護モジュールを提供するためのシステムであって、保護ファイルが追加されたパッケージを、開発者を通じてまたは直接、サーバ160に送信および登録してもよい。
以下、図5および図6を参照しながら、パッケージを受信した電子機器1(110)の観点からのファイル保護方法について説明する。
図5は、本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の例を示した図であり、図6は、本発明の一実施形態における、電子機器が実行することのできる方法の例を示したフローチャートである。
図5に示すように、電子機器1(110)に含まれるプロセッサ212は、構成要素として、アプリケーション実行制御部510、サービス提供制御部520、保護命令呼び出し部530、およびファイルおよび完全性処理制御部540を含んでよい。このようなプロセッサ212およびプロセッサ212の構成要素は、図6のファイル保護方法が含む段階610〜640を実行するように電子機器1(110)を制御してよい。ここで、プロセッサ212およびプロセッサ212の構成要素は、メモリ211が含むオペレーティングシステムのコードと少なくとも1つのプログラムのコード(一例として、サーバ150が提供するファイル保護モジュールを含む保護ファイルが含まれるアプリケーションのパッケージ)による命令を実行するように実現されてよい。また、プロセッサ212の構成要素は、電子機器1(110)に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ212によって実行される互いに異なる機能の表現であってよい。例えば、プロセッサ212が上述した制御命令にしたがってアプリケーションを実行するために動作する機能的表現としてアプリケーション実行制御部510が使用されてよい。
段階610で、アプリケーション実行制御部510は、インストールされたアプリケーションを実行するように電子機器1(110)を制御してよい。例えば、電子機器1(110)でアプリケーションが実行されると、アプリケーション実行制御部510は、オペレーティングシステムの制御にしたがってアプリケーションのファイルからプログラムコードをメモリ211にロードするように電子機器1(110)を制御してよい。
段階620で、サービス提供制御部520は、アプリケーションのサービスコードにしたがってサービスを提供するように電子機器1(110)を制御してよい。例えば、サービス提供制御部520は、ゲームアプリケーションの場合、オンラインモードやオフラインモードのゲームサービスを提供するように電子機器1(110)を制御してよい。ここで、サービス提供制御部520は、オンラインモードの場合、ネットワーク170を介してゲームサーバ(図示せず)に接続してゲームサービスのためのデータの提供を受けてよい。
段階630で、保護命令呼び出し部530は、アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出してよい。アプリケーションによって制御されるファイル(例えば、電子機器1(110)に格納され、サービスコードのファイルに対する制御命令にしたがって制御されるファイル)は、電子機器1(110)のユーザによって操作される可能性があるため、該当のファイルに格納されたデータの完全性や操作検出などのような保護機能が提供される必要がある。したがって、本実施形態では、特定のファイルに対するサービスコードの制御命令ではファイルを直接制御することができないように、ファイル保護モジュールに含まれる保護命令を呼び出してよい。
段階640で、ファイルおよび完全性処理制御部540は、呼び出された保護命令を通じて特定のファイルに対する制御および特定のファイルに格納されたデータに対する完全性検証を処理するように電子機器1(110)を制御してよい。例えば、ファイル保護モジュールは、特定のファイルに対する完全性コードを格納するように動作してよく、保護命令は、該当のファイルに対する制御を処理した後、ファイルに対する完全性コードを生成して、格納された完全性コードと比較するなどの過程によって、ファイルに格納されたデータに対する完全性検証を処理してファイルの操作を保護してよい。例えば、ファイルおよび完全性処理制御部540は、ファイル保護モジュールの制御にしたがい、生成された完全性コードが、格納された完全性コードと同じではない場合、特定のファイルの操作を示すメッセージをサーバ150に送信してよく、アプリケーションが実行されないように電子機器1(110)を制御してよい。
保護命令の呼び出しを処理するための一例として、ソフトウェア開発キット(SDK:Software Development Kit)方式が利用されてよい。開発者にはファイル保護のためのSDKが提供されてよく、開発者は、SDKを利用して特定のファイルに対する制御命令として、ファイル保護モジュールに含まれる保護命令を呼び出す命令をアプリケーションのサービスコードに含ませてよい。この場合、段階620のように、サービスコードにしたがってサービスが提供されるとき、サービスコードに含まれる、特定のファイルに対する制御命令は、ファイル保護モジュールに含まれる保護命令を呼び出す命令で置換されているため、ファイル保護モジュールに含まれる保護命令が自動的に呼び出されるようになる。電子機器1(110)のユーザがパッケージからファイル保護命令が含まれる保護ファイルを取り除いた場合には、保護命令が呼び出されないため、アプリケーションは正常に動作しなくなる。
保護命令が正常に呼び出されれば、ファイルおよび完全性処理制御部540は、保護命令にしたがって特定のファイルに対する制御を処理し、特定のファイルに対して格納されたハッシュ値(上述した完全性コード)を比較および更新して完全性を検証してよい。
より具体的な例として、特定のファイルに対する制御命令は、特定のファイルに対するオープン命令、読み取り命令、および書き込み命令のうちの少なくとも1つを含んでよい。この場合、ファイルおよび完全性処理制御部540は、オープン命令または読み取り命令によって呼び出された保護命令にしたがって特定のファイルに対するオープンまたは読み取りを処理し、オープンまたは読み取りが処理された特定のファイルに対するハッシュ値を生成し、生成されたハッシュ値を、ファイル保護モジュールによって格納されたハッシュ値と比較して完全性を検証してよい。ファイルのオープンや読み取りの処理では該当のファイルが変更されないため、ファイルに対して生成されるハッシュ値は、以前に格納されたハッシュ値と同じでなければならない。ハッシュ値が同じではない場合には、該当のファイルが操作された可能性があるため、電子機器1(110)は、ファイル保護モジュールの制御にしたがってファイルの操作を示すメッセージをサーバ150に送信したりアプリケーションの実行をブロックしたりするなどの手順を進めることにより、アプリケーションのファイルを保護することができる。
また、ファイルおよび完全性処理制御部540は、書き込み命令によって呼び出された保護命令にしたがって特定のファイルに対する書き込み命令を処理し、書き込みが処理された特定のファイルに対するハッシュ値を生成し、格納されたハッシュ値を、生成されたハッシュ値に更新してよい。ファイルに対する書き込みが処理されれば該当のファイルは変更されるため、比較のために格納されたハッシュ値も、変更されたファイルに対するハッシュ値に変更されなければならず、ファイルおよび完全性処理制御部540は、書き込み命令によって呼び出された保護命令にしたがってファイルに対する書き込みを処理した後、ハッシュ値を更新してよい。
他の実施形態として、別のSDKを提供するのではなく、制御命令にしたがって保護命令を呼び出すことも可能である。例えば、ファイル保護モジュールは、呼び出しスタックまたはレジスタを通じて特定のファイルに対する制御命令を実行するかどうかを確認してもよい。例えば、保護命令呼び出し部530は、段階630で、ファイル保護モジュールの制御にしたがい、呼び出しスタックまたはレジスタを通じて特定のファイルに対する制御命令を実行するかどうかを確認し、確認された制御命令の実行を保護命令の呼び出しと見なして保護命令を呼び出してもよい。サービスコードで実行された関数と関連して関数を呼び出したアドレスやリターン値が提供されるアドレスなどに関する情報が、呼び出しスタックまたはレジスタを通じて管理されてもよい。保護命令呼び出し部530は、ファイル保護モジュールの制御にしたがって呼び出しスタックやレジスタを確認し、特定のファイルに対するオープン命令、読み取り命令、および/または書き込み命令が発生したかどうかを確認してもよい。ここで、保護命令呼び出し部530は、確認されたオープン命令、読み取り命令、および/または書き込み命令を保護命令の呼び出しとして見なし(呼び出しスタックやレジスタで確認された制御命令をフッキング(hooking))、制御命令の代わりに保護命令を呼び出して実行されるようにしてもよい。
さらに他の実施形態として、サービスコードと連携する別のライブラリファイルを通じて特定のファイルに対する制御命令が実行されることも可能である。例えば、別のライブラリファイルは、アプリケーションの開発者やサーバ150ではないサードパーティーによって提供されるファイルであってよい。したがって、開発者は、SDKを通じて制御することができない。ここで、保護命令呼び出し部530は、ファイル保護モジュールの制御にしたがってライブラリファイルによる制御命令を保護命令の呼び出しとして見なし(ライブラリファイルによる制御命令をフッキング)、保護命令を呼び出してもよい。例えば、保護命令呼び出し部530は、ライブラリファイルによる特定のファイルに対するオープン命令、読み取り命令、および/または書き込み命令すべてを保護命令の呼び出しとして見なしてもよい。
このように、本発明の実施形態によると、サーバに登録されたアプリケーションのファイルにファイル保護モジュールを追加して電子機器に送信し、電子機器で実行されるアプリケーションのサービスコードで特定のファイルに対するオープン命令、読み取り命令、および/または書き込み命令が実行される場合にファイル保護モジュールのオープン命令、読み取り命令、および/または書き込み命令を呼び出すようにし、ファイル保護モジュールのオープン命令、読み取り命令、および/または書き込み命令が該当の特定ファイルに対するオープン、読み取り、および/または書き込みを処理すると同時にファイルに対して完全性を検証することによって重要なファイルを保護することができる。また、アプリケーションの開発者が、ファイルの完全性保護のために、アプリケーションに別の保護コードを追加したりサーバで完全性を保護するように別の機能を追加したりする必要がなく、アプリケーション本来のサービス開発だけに集中することができるようになる。
以下では、ファイル保護方法に関するより具体的な実施形態について説明する。
図7は、本発明の一実施形態における、サーバがパッケージに保護ファイルを追加して電子機器に送信する過程の例を示した図である。図7は、開発者端末710、ファイル保護システム720、ファイル配布システム730、ユーザ端末740、サービスシステム750をそれぞれ示している。開発者端末710は、アプリケーションの開発者が利用する電子機器であってよく、ユーザ端末740は、アプリケーションのユーザが利用する電子機器であってよい。ファイル保護システム720は、上述したサーバ150に対応してよく、ファイル配布システム730とサービスシステム750もそれぞれ個別サーバであってよい。他の実施形態において、ファイル保護システム720とファイル配布システム730は、同じ主体によって運営されるシステムであってもよいし、1つのシステムであってもよい。また、サービスシステム750は、開発者によって運営されるサーバシステムであってもよいし、開発者とは異なるサードパーティーが提供するサーバ側プログラムに基づいて動作するサーバシステムであってもよい。例えば、サービスシステム750は、ゲームアプリケーションを通じてオンラインゲームサービスを提供するゲームサーバであってよい。
1.パッケージ登録過程は、開発者端末710が、開発者によって開発されたアプリケーションのパッケージをファイル保護システム720に登録する過程であってよい。例えば、開発者端末710とファイル保護システム720との間のネットワーク(一例として、図1のネットワーク170)を介したデータ通信により、パッケージが開発者端末710からファイル保護システム720に送信されてよい。以後、このようなネットワークを介したデータ通信についての説明は省略する。
2.保護ファイル追加過程は、ファイル保護システム720が、登録されたアプリケーションのパッケージに、ファイル保護モジュールが含まれる保護ファイルを追加する過程であってよい。
3.パッケージ登録過程は、ファイル保護システム720が、保護ファイルが追加されたパッケージをファイル配布システム730に登録する過程であってよい。他の実施形態において、ファイル保護システム720は、保護ファイルが追加されたパッケージを開発者端末710に提供し、開発者端末710が、直接ファイル配布システム730に、保護ファイルが追加されたパッケージを登録することも可能である。
4.パッケージ配布過程は、ファイル配布システム730が、ユーザ端末740の要求に応じて、保護ファイルが追加されたパッケージをユーザ端末740に配布する過程であってよい。ユーザ端末740では、保護ファイルが追加されたパッケージを通じて、アプリケーションがユーザ端末740にインストールされてよい。
5.サービス通信過程は、ユーザ端末740が実行するアプリケーションに基づいてサービスシステム750と通信してサービスの提供を受ける過程であってよい。
図8は、本発明の一実施形態における、SDK方式にしたがってファイルを保護する方法の例を示した図である。図8は、ゲームアプリケーションパッケージ810の例であって、ゲームアプリケーションパッケージ810がゲームコード811、ファイル保護モジュール812、および保護ファイル813を含む例を示している。図8は、ゲームコードで保護ファイル813をオープンするためのオープン命令「FILE_OPEN_1」が実行されることにより、ファイル保護モジュール812の保護命令「FILE_OPEN_2」が自動的に呼び出される例を示している。上述したように、ゲームコードの保護ファイル813に対する制御命令(FILE_OPEN_1、FILE_READ_1、FILE_WRITE_1)は、開発者に提供されたSDKに基づいてファイル保護モジュール812の保護命令(FILE_OPEN_2、FILE_READ_2、FILE_WRITE_2)を呼び出すように実現されてよい。呼び出された保護命令「FILE_OPEN_2」にしたがって保護ファイル813に対するオープン命令が処理されてよく、保護ファイル813に対するハッシュ値が生成されてよい。生成されたハッシュ値は、ファイル保護モジュール812によって管理される特定の格納領域である「Property」820に暗号化されて格納されたハッシュ値と比較され、保護ファイル813に格納されたデータの完全性検証に利用されてよい。
これと同様に、ゲームコードで保護ファイル813に対する読み取り命令「FILE_READ_1」や書き込み命令「FILE_WRITE_1」が実行される場合にも、ファイル保護モジュール812の保護命令「FILE_READ_2」や「FILE_WRITE_2」が自動的に呼び出されてよい。保護命令「FILE_WRITE_2」にしたがって保護ファイル813が変更された場合には、「Property」820に暗号化されて格納されたハッシュ値を、変更された保護ファイル813に対して生成されたハッシュ値に更新してよい。
図8の実施形態では、1つの保護ファイル813について説明されているが、複数のファイルが保護ファイルとして設定されてもよく、ゲームコードが制御しようとするすべてのファイルが保護ファイルとして設定されてもよい。ハッシュ値は、個別ファイルごとに生成されて管理されてもよい。また、特定の格納領域である「Property」820は、ファイル保護モジュール812に含まれる領域であってもよいし、メモリ(一例として、図2の電子機器1(110)のメモリ211)上の別の領域であってもよい。
図9は、本発明の一実施形態における、フッキングモードによってファイルを保護する方法の例を示した図である。図9は、ゲームアプリケーションパッケージ900の例であって、ゲームアプリケーションパッケージ900がゲームコード910、ファイル保護モジュール920、および保護ファイル930を含む例を示している。本実施形態では、別途のSDKは提供されない。したがって、ゲームコード910のオープン命令「FILE_OPEN_1」は、保護ファイル930に対するオープンを処理しようとしてよい。ここで、ファイル保護モジュール920は、ゲームコードのオープン命令「FILE_OPEN_1」をフッキングしてファイル保護モジュール920の保護命令「FILE_OPEN_2」を呼び出してよい。この場合、ファイル保護モジュール920の保護命令「FILE_OPEN_2」は、保護ファイル930に対するオープンを処理した後、図8のように、保護ファイル930のハッシュ値を生成して、生成されたハッシュ値を、予め格納されたハッシュ値と比較することにより、保護ファイル930に格納されたデータに対する完全性を検証してよい。
これと同様に、ファイル保護モジュール920は、ゲームコード910の読み取り命令「FILE_READ_1」や書き込み命令「FILE_WRITE_1」もフッキングし、ファイル保護モジュール920の保護命令「FILE_READ_2」や「FILE_WRITE_2」を呼び出してよい。それぞれの場合についても、保護ファイル930に対する読み取りと書き込みが処理された後にハッシュ値の比較または更新が処理されてよい。このような命令に対するフッキングは、上述したように、呼び出しスタックまたはレジスタを通じて保護ファイル930に対する制御命令(オープン、読み取り、書き取り)を実行するかどうかを確認して処理されてよい。
また、ゲームコードではないライブラリ940でも、保護ファイル930に対するオープン命令「FILE_OPEN_3」、読み取り命令「FILE_READ_3」、および/または書き込み命令「FILE_WRITE_3」が発生することがある。ファイル保護モジュール920は、ライブラリ940での命令もフッキングしてファイル保護モジュール920の保護命令を呼び出し、保護ファイル930に対するオープン、読み取り、および/または書き込みを代わりに処理してよい。ハッシュ値の比較と更新による完全性検証も、ファイル保護モジュール920によって処理されることは勿論である。このとき、命令に対するフッキングは、ライブラリ940で発生する保護ファイル930に対するすべてのオープン命令、読み取り命令、書き込み命令をフッキングして処理されてもよい。
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)および前記OS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素(processing element)および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでもよい。また、並列プロセッサのような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置、または伝送される信号波に永久的または一時的に具現化されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された方法によって格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータで読み取り可能な記録媒体に格納されてもよい。
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な記録媒体に記録されてもよい。前記コンピュータで読み取り可能な記録媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでもよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD−ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために1つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
110、120、130、140: 電子機器
150、160: サーバ
170: ネットワーク

Claims (18)

  1. コンピュータによって実現されるサーバのファイル保護方法であって、
    アプリケーションのインストールおよび実行のためのファイルが含まれるパッケージの入力を受ける段階と、
    前記パッケージにファイル保護モジュールの動作のための保護ファイルを追加する段階と、
    前記保護ファイルが追加されたパッケージを、ネットワークを介して提供する段階と、
    を含み、
    前記保護ファイルが追加されたパッケージを通じて前記アプリケーションがインストールおよび実行される電子機器で、前記アプリケーションのサービスコードを通じて前記アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、前記ファイル保護モジュールに含まれる保護命令が呼び出され、前記の呼び出された保護命令を通じて前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証が処理される、ファイル保護方法。
  2. 前記特定のファイルに対する制御命令は、前記アプリケーションの開発者に提供されたソフトウェア開発キットを利用して前記ファイル保護モジュールに含まれる保護命令を呼び出すように、前記アプリケーションのサービスコードに含まれる、請求項1に記載のファイル保護方法。
  3. 前記ファイル保護モジュールに含まれる保護命令は、前記特定のファイルに対する制御命令が実行されることによって呼び出され、前記特定のファイルに対する制御を処理し、前記特定のファイルに対して格納されたハッシュ値を比較および更新して完全性を検証する、請求項1に記載のファイル保護方法。
  4. 前記特定のファイルに対する制御命令は、前記特定のファイルに対するオープン命令、読み取り命令、および書き取り命令のうちの少なくとも1つを含み、
    前記オープン命令または前記読み取り命令によって呼び出された保護命令は、前記特定のファイルに対するオープンまたは読み取りを処理し、前記オープンまたは前記読み取りが処理された特定のファイルに対するハッシュ値を生成し、前記の生成されたハッシュ値を、前記ファイル保護モジュールによって格納されたハッシュ値と比較して完全性を検証し、
    前記書き込み命令によって呼び出された保護命令は、前記特定のファイルに対する書き込み命令を処理し、前記書き込みが処理された特定のファイルに対するハッシュ値を生成し、前記格納されたハッシュ値を前記の生成されたハッシュ値に更新する、請求項1に記載のファイル保護方法。
  5. 前記ファイル保護モジュールは、呼び出しスタックまたはレジスタを通じて前記特定のファイルに対する制御命令を実行するかどうかを確認し、
    前記の確認された制御命令の実行が前記保護命令の呼び出しとして見なされて前記保護命令が呼び出され、前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証が処理される、請求項1に記載のファイル保護方法。
  6. 前記アプリケーションに含まれるライブラリファイルの前記特定のファイルに対する制御命令が前記保護命令の呼び出しとして見なされて前記保護命令が呼び出され、前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証が処理される、請求項1に記載のファイル保護方法。
  7. コンピュータによって実現される電子機器にファイル保護方法を実行させるためのコンピュータプログラムであって、
    前記ファイル保護方法は、
    前記電子機器にインストールされたアプリケーションを実行する段階と、
    前記アプリケーションのサービスコードにしたがってサービスを提供する段階と、
    前記アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階と、
    前記の呼び出された保護命令を通じて前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階と、
    を含み、
    前記ファイル保護モジュールは、サーバでアプリケーションのインストールおよび実行のためのファイルが含まれるパッケージに追加されて提供される、コンピュータプログラム。
  8. 前記特定のファイルに対する制御命令は、前記アプリケーションの開発者に提供されたソフトウェア開発キットを利用して前記ファイル保護モジュールに含まれる保護命令を呼び出すように、前記アプリケーションのサービスコードに含まれる、請求項7に記載のコンピュータプログラム。
  9. 前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階は、
    前記特定のファイルに対する制御を処理し、前記特定のファイルに対して格納されたハッシュ値の比較および更新によって完全性を検証する、請求項7に記載のコンピュータプログラム。
  10. 前記特定のファイルに対する制御命令は、前記特定のファイルに対するオープン命令、読み取り命令、および書き取り命令のうちの少なくとも1つを含み、
    前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階は、
    前記オープン命令または前記読み取り命令によって呼び出された保護命令を通じて前記特定のファイルに対するオープンまたは読み取りを処理し、前記オープンまたは前記読み取りが処理された特定のファイルに対するハッシュ値を生成し、前記の生成されたハッシュ値を、前記ファイル保護モジュールによって格納されたハッシュ値と比較して完全性を検証し、前記書き込み命令によって呼び出された保護命令を通じて前記特定のファイルに対する書き込み命令を処理し、前記書き込みが処理された特定のファイルに対するハッシュ値を生成し、前記格納されたハッシュ値を前記の生成されたハッシュ値に更新する、請求項7に記載のコンピュータプログラム。
  11. 前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階は、
    前記ファイル保護モジュールの制御にしたがい、呼び出しスタックまたはレジスタを通じて前記特定のファイルに対する制御命令を実行するかどうかを確認し、前記の確認された制御命令の実行を前記保護命令の呼び出しとして見なして前記保護命令を呼び出す、請求項7に記載のコンピュータプログラム。
  12. 前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階は、
    前記ファイル保護モジュールの制御にしたがって前記アプリケーションに含まれるライブラリファイルの前記特定のファイルに対する制御命令を前記保護命令の呼び出しとして見なして前記保護命令を呼び出す、請求項7に記載のコンピュータプログラム。
  13. コンピュータによって実現される電子機器のファイル保護方法であって、
    前記電子機器にインストールされたアプリケーションを実行する段階と、
    前記アプリケーションのサービスコードにしたがってサービスを提供する段階と、
    前記アプリケーションによって制御される特定のファイルに対する制御命令が実行される場合、前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階と、
    前記の呼び出された保護命令を通じて前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階と、
    を含み、
    前記ファイル保護モジュールは、サーバでアプリケーションのインストールおよび実行のためのファイルが含まれるパッケージに追加されて提供される、ファイル保護方法。
  14. 前記特定のファイルに対する制御命令は、前記アプリケーションの開発者に提供されたソフトウェア開発キットを利用して前記ファイル保護モジュールに含まれる保護命令を呼び出すように、前記アプリケーションのサービスコードに含まれる、請求項13に記載のファイル保護方法。
  15. 前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階は、
    前記特定のファイルに対する制御を処理し、前記特定のファイルに対して格納されたハッシュ値の比較および更新によって完全性を検証する、請求項13に記載のファイル保護方法。
  16. 前記特定のファイルに対する制御命令は、前記特定のファイルに対するオープン命令、読み取り命令、および書き取り命令のうちの少なくとも1つを含み、
    前記特定のファイルに対する制御および前記特定のファイルに格納されたデータに対する完全性検証を処理する段階は、
    前記オープン命令または前記読み取り命令によって呼び出された保護命令を通じて前記特定のファイルに対するオープンまたは読み取りを処理し、前記オープンまたは前記読み取りが処理された特定のファイルに対するハッシュ値を生成し、前記の生成されたハッシュ値を、前記ファイル保護モジュールによって格納されたハッシュ値と比較して完全性を検証し、前記書き込み命令によって呼び出された保護命令を通じて前記特定のファイルに対する書き込み命令を処理し、前記書き込みが処理された特定のファイルに対するハッシュ値を生成し、前記格納されたハッシュ値を前記の生成されたハッシュ値に更新する、請求項13に記載のファイル保護方法。
  17. 前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階は、
    前記ファイル保護モジュールの制御にしたがい、呼び出しスタックまたはレジスタを通じて前記特定のファイルに対する制御命令を実行するかどうかを確認し、前記の確認された制御命令の実行を前記保護命令の呼び出しとして見なして前記保護命令を呼び出す、請求項13に記載のファイル保護方法。
  18. 前記アプリケーションに含まれるファイル保護モジュールに含まれる保護命令を呼び出す段階は、
    前記ファイル保護モジュールの制御にしたがって前記アプリケーションに含まれるライブラリファイルの前記特定のファイルに対する制御命令を前記保護命令の呼び出しとして見なして前記保護命令を呼び出す、請求項13に記載のファイル保護方法。
JP2017018262A 2016-02-11 2017-02-03 ファイル保護方法 Pending JP2017142792A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2016-0015908 2016-02-11
KR1020160015908A KR101814897B1 (ko) 2016-02-11 2016-02-11 파일 보호 방법 및 시스템

Publications (1)

Publication Number Publication Date
JP2017142792A true JP2017142792A (ja) 2017-08-17

Family

ID=59561848

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017018262A Pending JP2017142792A (ja) 2016-02-11 2017-02-03 ファイル保護方法

Country Status (3)

Country Link
US (1) US10205732B2 (ja)
JP (1) JP2017142792A (ja)
KR (1) KR101814897B1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102488149B1 (ko) * 2018-01-08 2023-01-16 삼성전자주식회사 디스플레이장치 및 그 제어방법
JP7195796B2 (ja) * 2018-07-23 2022-12-26 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
KR102537788B1 (ko) * 2018-11-28 2023-05-30 삼성전자주식회사 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법
KR20210154017A (ko) * 2020-06-11 2021-12-20 라인플러스 주식회사 클래스 분산 및 순차적 메모리 적재를 이용한 파일 보호 방법 및 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657470A (en) * 1994-11-09 1997-08-12 Ybm Technologies, Inc. Personal computer hard disk protection system
US7392541B2 (en) * 2001-05-17 2008-06-24 Vir2Us, Inc. Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
SG176317A1 (en) * 2003-02-21 2011-12-29 Research In Motion Ltd System and method of multiple-level control of electronic devices
US7814554B1 (en) * 2003-11-06 2010-10-12 Gary Dean Ragner Dynamic associative storage security for long-term memory storage devices
US20100005531A1 (en) * 2004-12-23 2010-01-07 Kenneth Largman Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features
US8108905B2 (en) * 2006-10-26 2012-01-31 International Business Machines Corporation System and method for an isolated process to control address translation
KR101082917B1 (ko) 2009-09-14 2011-11-11 고려대학교 산학협력단 원격 컴퓨팅 환경에서 사용자 데이터의 무결성 검증 방법 및 그 시스템
US8813246B2 (en) * 2012-04-23 2014-08-19 Inside Secure Method for playing digital contents protected with a DRM (digital right management) scheme and corresponding system
KR20150035249A (ko) 2013-09-27 2015-04-06 삼성전자주식회사 어플리케이션 패키지를 저장하는 기록 매체, 어플리케이션 패키지 생성 방법 및 장치, 어플리케이션 패키지 실행 방법 및 장치
US10033702B2 (en) * 2015-08-05 2018-07-24 Intralinks, Inc. Systems and methods of secure data exchange

Also Published As

Publication number Publication date
US20170237567A1 (en) 2017-08-17
KR20170094736A (ko) 2017-08-21
US10205732B2 (en) 2019-02-12
KR101814897B1 (ko) 2018-01-04

Similar Documents

Publication Publication Date Title
JP7231681B2 (ja) パッケージファイルに対する機能拡張方法およびシステム
JP5543010B1 (ja) 所定のサーバに対してログインを要求するログイン要求装置及び方法、並びにこれらに用いられるプログラム
JP2017142792A (ja) ファイル保護方法
CN105308559A (zh) 动态配置对于动作统一资源标识符的用户体验
CN109213613B (zh) 图像信息的传输方法、装置、存储介质及电子设备
JP6127241B2 (ja) デバイスへのアプリケーションのフルフィルメント
KR101745808B1 (ko) 서버측 로직의 모듈화를 위한 모듈 처리 방법 및 시스템
WO2023123850A1 (zh) 一种固件可信根的实现方法、装置、设备和可读存储介质
KR101832594B1 (ko) 중간 언어 파일의 로딩 속도 개선을 위한 방법 및 시스템
US9471299B1 (en) Updating code within an application
KR101823226B1 (ko) 코드 보호 방법 및 시스템
JP2017062782A (ja) オーバーレイ制御方法およびシステム
JP2019003629A (ja) チートアプリケーション識別方法およびシステム
US20180088930A1 (en) Updating code within an application
KR20180004065A (ko) 파일 보호 방법 및 시스템
JP2017220236A (ja) クライアント改ざん判断システムおよび方法
JP2021197180A (ja) クラス分散およびシーケンシャルメモリ格納を利用したファイル保護方法およびシステム
JP7015120B2 (ja) アプリケーションパッケージを提供する方法およびシステム、アプリケーションを実行する方法およびシステム
KR20210000398A (ko) 난독화 해제 방법 및 장치
CN111310175A (zh) 基于插件化的iOS应用安全监测与防护方法及装置
KR20180048518A (ko) 패키지 파일에 대한 기능 확장 방법 및 시스템
JP6257085B2 (ja) 所定のサーバに対してログインを要求するログイン要求装置及び方法、並びにこれらに用いられるプログラム
US20220215381A1 (en) Methods, systems, and non-transitory computer-readable record media for prompt transfer of cryptocurrency
KR20210008469A (ko) 네이티브 라이브러리를 보호하는 방법 및 시스템
JP2021530014A (ja) プログラム保護のためのJavaデバッガ遮断方法およびシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210216

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20210414

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20210412

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210803

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20231027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20231030