(58)【調査した分野】(Int.Cl.,DB名)
応用プログラム提供サーバから応用プログラムをダウンロードされて設置する過程で、前記応用プログラムの一般コードを受信し、前記応用プログラム提供サーバから核心コードを受信して保存した周辺機器とペアリング連結を行うペアリング部と、
前記応用プログラムを実行する過程で、前記ペアリングされた周辺機器が前記核心コードの暗号化及び復号を行うように、ユーザ端末機固有情報を前記周辺機器に伝送する通信部と、
前記周辺機器に実行呼び出しメッセージを伝送し、前記周辺機器から前記核心コードの実行結果を伝達される制御部と、を含むユーザ端末機。
【背景技術】
【0002】
スマートフォンユーザは、第3者が開発してグーグル(Google)プレイのようなデジタルオープンマーケットにアップロードしたアプリケーション及びコンテンツをダウンロードされて駆動させることによって、多様なサービスを利用可能になった。これにより、スマートフォンに多くのデータが蓄積される。蓄積されたデータのうちには、敏感または重要な情報も含まれており、このようなデータを保護しようとするスマートフォン関連保安技術が開発されている。
【0003】
スマートフォン内に保存された金融及び個人情報を含む各種データは、フィッシング(phishing)、ファーミング(pharming)、スミッシング(smishing)だけではなく、偽造・変造されたアプリケーションを通じて奪取されうる。攻撃者は、アプリケーションを逆工学してデコンパイルされたソースコードを抽出した後、悪性コードを挿入して偽造・変造されたアプリケーションを生成するか、強制に抽出したソースコードを不法的に使って経済的に利得を得たりする。
【0004】
特に、アンドロイドアプリケーションは、アイフォーン(iPhone)アプリケーションとは異なって、比較的容易にソースコードを抽出して分析し、アプリケーションの不法複製及び偽造・変造で悪性コードを挿入するハッキング攻撃の主要対象になっている。
【0005】
アプリケーションの不法複製及び偽造・変造を遮断するために、多様なソース難読化技法及びグーグルのLVL(Licensing Verification Library)が提示されてアプリケーションの分析にかかる時間を増加させるか、逆工学を難しくした。
【0006】
しかし、逆工学の難易度を増加させる方法で逆工学攻撃を防御するものではなく、アプリケーションのソースコードを抽出または分析することができないように保護する方法についての技術を用いて、根本的な側面でアプリケーション及びユーザの情報を保護する技術が必要である。
【0007】
本発明の背景となる技術は、特許文献1に開示されている。
【発明を実施するための形態】
【0018】
以下、添付した図面を参照して、本発明の実施形態について当業者が容易に実施できるように詳しく説明する。しかし、本発明は、さまざまな異なる形態として具現され、ここで説明する実施形態に限定されるものではない。そして、図面で本発明を明確に説明するために、説明と関係のない部分は省略し、明細書全体を通じて類似した部分については、類似した図面符号を付する。
【0019】
以下、添付図面を参照しながら、本発明による望ましい実施形態を詳しく説明する。
【0020】
図1は、本発明の実施形態による核心コード保護システムを示す構成図である。
図1のように、本発明の実施形態による核心コード保護システムは、応用プログラム提供サーバ100、ユーザ端末機200及び周辺機器300を含む。
【0021】
図1に示したように、応用プログラム提供サーバ100、ユーザ端末機200及び周辺機器300は、ネットワーク(network)を通じて連結される。すなわち、
図1のように、ネットワークを通じて、ユーザ端末機200は、応用プログラム提供サーバ100及び周辺機器300と連結され、周辺機器300は、応用プログラム提供サーバ100とネットワークとを通じて連結される。
【0022】
ここで、ネットワークは、ユーザ端末及びサーバのようなそれぞれのノード相互間に情報交換が可能な連結構造を意味するものであって、このようなネットワークの一例は、インターネット(Internet)、LAN(Local Area Network)、Wireless LAN(Wireless Local Area Network)、WAN(Wide Area Network)、PAN(Personal Area Network)、3G、4G、Wi−Fiなどが含まれるが、これに限定されるものではない。
【0023】
特に、ユーザ端末機200と周辺機器300は、ブルートゥース(Bluetooth)、ジグビー(ZigBee)、赤外線通信モジュール(IrDA、Infrared Data Association)などを用いて無線連結され、有線で連結されても良い。
【0024】
まず、応用プログラム提供サーバ100は、応用プログラムファイルを核心コードと一般コードとに分離する。そして、分離された核心コード及び一般コードをそれぞれ周辺機器300及びユーザ端末機200に伝達する。
【0025】
応用プログラム提供サーバ100は、応用プログラムパッケージからデコンパイルされた実行ファイルを通じて核心コードを設定することができる。そして、応用プログラム提供サーバ100は、応用プログラムファイルのうちから核心コードを除去して一般コードを生成する。この際、一般コードと核心コードは、それぞれユーザ端末機200と周辺機器300とに設けられて実行可能なファイル形態であり得る。
【0026】
本発明の実施形態による応用プログラム提供サーバ100は、金融、ニュース、ショッピング、ゲームなど多種の応用プログラム一般コード及び核心コードを保存し、ユーザ端末機200及び周辺機器300が、このような応用プログラムの一般コード及び核心コードを応用プログラム提供サーバ100からダウンロードされて設置可能にする。ここで、応用プログラム提供サーバ100は、モバイルアプリケーションマーケットであり、例えば、グーグルプレイやアップル(Apple)のアプリストアのような各種モバイルアプリケーションマーケットが応用プログラム提供サーバ100に該当する。
【0027】
次いで、ユーザ端末機200は、応用プログラム提供サーバ100から応用プログラムの一般コードを受信してユーザ端末機200に設置する。そして、応用プログラムの最初実行時に、ユーザ端末機200は、ペアリングされた周辺機器300にユーザ端末機固有情報を伝送して周辺機器300が核心コードをユーザ端末機固有情報に暗号化する。そして、応用プログラムが再実行される時、ユーザ端末機200は、周辺機器300から核心コードの実行結果を受信して応用プログラムの実行に適用するか、出力する。
【0028】
ここで、ユーザ端末機200は、応用プログラムを設置して実行する端末機であって、スマートフォン、スマートパッド、携帯電話、ノート型パソコン、タブレットPC、PDA(Personal Digital Assistant)などが該当する。特に、スマートフォンまたはスマートパッドの場合、応用プログラムは、機器上にアプリケーションで提供することができる。
【0029】
ここで、アプリケーションは、端末上の応用プログラムを意味し、例えば、モバイル端末(スマートフォン)で実行されるアプリ(app)を含む。ユーザは、アプリ(app)をモバイルコンテンツを自在に売買する仮想の市場であるモバイルアプリケーションマーケットでダウンロードされて、スマートフォンなどのユーザ端末機200に設置することができる。
【0030】
最後に、周辺機器300は、応用プログラム提供サーバ100から応用プログラムの核心コードを受信して保存する。そして、ペアリングされたユーザ端末機200からユーザ端末機固有情報を受信して核心コードを暗号化し、ユーザ端末機200に設けられた応用プログラムが再実行されて、ユーザ端末機200からユーザ端末機固有情報及び実行呼び出しメッセージを受信すれば、ユーザ端末機固有情報を用いて復号した核心コードを実行し、核心コードの実行結果をユーザ端末機200に伝送する。
【0031】
この際、周辺機器300は、核心コードの実行結果を周辺機器300の出力部(図示せず)を通じて画面に表示するか、音で出力することができる。
【0032】
ここで、周辺機器300は、ユーザ端末機200及び応用プログラム提供サーバ100と通信し、応用プログラムの核心コードを受信して保存し、応用プログラムの核心コードを実行する中央処理装置を含む電気機器である。周辺機器300は、スマートウォッチ、スマートメガネ、スマートバンドなどのウェアラブル機器であり得る。
【0033】
また、活動追跡機、モバイルフォトプリンター、ホームモニタリング装置、おもちゃ、医療機器などのアプリアクセサリー(Appcessory)を周辺機器300として使うことができる。ここで、アプリアクセサリーは、ユーザ端末機200であるスマートフォンがアプリケーションと連動されてスマートフォンの機能を拡張させるアクセサリーを意味する。
【0034】
図2は、本発明の実施形態によるユーザ端末機の構成を示すブロック図である。
【0035】
図2のように、本発明の実施形態によるユーザ端末機200は、ペアリング部210、通信部220、制御部230及び画面表示部240を含む。
【0036】
まず、ペアリング部210は、応用プログラム提供サーバ100及び周辺機器300と通信する。特に、ペアリング部210は、応用プログラム提供サーバ100とWi−Fi、3G、4G、LTE、ワイブロなどの無線通信方式を通じて通信し、周辺機器300とはブルートゥース、ジグビー、赤外線通信モジュールなどの近距離通信または有線を通じて通信することができる。
【0037】
また、ペアリング部210は、応用プログラム提供サーバ100から応用プログラムの一般コードを受信してユーザ端末機200に当該応用プログラムを設置し、応用プログラム提供サーバ100から応用プログラムの核心コードファイルを受信した周辺機器300とペアリングを行う。
【0038】
次いで、通信部220は、周辺機器300にユーザ端末機固有情報を伝送する。ここで、ユーザ端末機固有情報は、ユーザ端末機200の国際モバイル機器識別情報(IMEI)を含みうる。そして、通信部220は、ブルートゥース、ジグビー、赤外線通信モジュールなどの近距離通信または有線を通じて周辺機器300にユーザ端末機固有情報を伝送しうる。
【0039】
そして、制御部230は、一般コードを実行する過程で呼び出そうとする核心コードの情報を含めた実行呼び出しメッセージを周辺機器300に伝送し、周辺機器300から当該応用プログラムの核心コード実行結果を受信する。この際、制御部230は、ブルートゥース、ジグビー、赤外線通信モジュールなどの近距離通信または有線を通じて実行呼び出しメッセージを伝送するか、核心コード実行結果を受信することができる。
【0040】
最後に、画面表示部240は、周辺機器300から受信した核心コードの実行結果を画面上に出力する。また、画面表示部240は、ユーザが視覚、聴覚、触覚などで認知できるように実行結果を出力することもできる。
【0041】
図3は、本発明の実施形態による周辺機器の構成を示すブロック図である。
【0042】
図3に示したように、周辺機器300は、通信部310と暗復号部320及びコード実行部330とを含む。
【0043】
まず、通信部310は、応用プログラム提供サーバ100及びユーザ端末機200と通信を行う。特に、通信部310は、ユーザ端末機200とブルートゥース、ジグビー、赤外線通信モジュールなどの近距離通信または有線を通じて通信することができる。
【0044】
また、通信部310は、応用プログラム提供サーバ100から受信した応用プログラムの核心コードを周辺機器300に設置する。そして、通信部310は、応用プログラムが実行される時、ユーザ端末機200からユーザ端末機固有情報と実行呼び出しメッセージとを受信する。
【0045】
次いで、暗復号部320は、応用プログラムが最初実行されて核心コードを暗号化する段階でユーザ端末機200から受信したユーザ端末機固有情報を用いて核心コードを暗号化して保存する。そして、応用プログラムが再実行されれば、暗復号部320は、ユーザ端末機200から受信したユーザ端末機固有情報を用いて暗号化された核心コードを復号する。
【0046】
最後に、コード実行部330は、ユーザ端末機200から実行呼び出しメッセージを受信すれば、核心コードをローディングして核心コードを実行する。そして、核心コードの実行結果をユーザ端末機200に伝送する。
【0047】
以下、
図4を通じて本発明の実施形態による周辺機器を用いて核心コードを保護する方法についてさらに詳細に説明する。
【0048】
図4は、本発明の実施形態による周辺機器を用いて核心コードを保護する方法を説明するフローチャートである。
【0049】
図4に示したように、周辺機器を用いて核心コードを保護する方法において、S410段階ないしS430段階は、応用プログラム分離及び伝達段階を意味し、S440段階及びS450段階は、核心コード暗号化段階を意味し、S460段階ないしS490段階は、応用プログラム実行段階を意味する。説明の便宜上、大きく3つの段階に分けて説明した。
【0050】
まず、応用プログラム提供サーバ100は、S410段階ないしS430段階を通じて応用プログラムを分離及び伝達段階を行う。
【0051】
応用プログラム提供サーバ100は、応用プログラムファイルを核心コードと核心コードが除去された一般コードとに分離する(ステップS410)。応用プログラム提供サーバ100は、応用プログラムパッケージからデコンパイルされた実行ファイルを通じて核心コードを設定する。そして、応用プログラム提供サーバ100は、応用プログラムファイルのうちから核心コードを削除して一般コードを生成する。
【0052】
そして、応用プログラム提供サーバ100は、分離された核心コードを周辺機器300に伝送して保存させる(ステップS420)。この際、応用プログラム提供サーバ100は、周辺機器300に核心コードを伝達する過程でWi−Fi、3G、4G、LTE、ワイブロなどの無線通信方式を通じて通信し、保安を強化するために、近距離通信または有線を通じて核心コードを伝達することができる。
【0053】
また、ユーザがユーザ端末機200を通じて応用プログラム提供サーバ100に接続すれば、応用プログラム提供サーバ100は、一般コードをユーザ端末機200にダウンロード方式で伝送する(ステップS430)。ユーザ端末機200は、3G、4G、Wi−Fiなどのネットワークを用いて設置しようとする応用プログラムの一般コードをダウンロードされて設置することができる。
【0054】
応用プログラム分離及び伝達段階が行われた後、ユーザからユーザ端末機200に設けられた応用プログラムの最初実行要請を入力されれば、後述するS440段階及びS450段階を通じて核心コードの暗号化を行う。一方、ユーザから応用プログラムの再実行要請を入力されれば、後述するS460段階ないしS510段階を通じて応用プログラムを実行する。
【0055】
ユーザ端末機200に設けられた応用プログラムの最初実行を入力された場合、核心コードの暗号化を行う前に、ユーザ端末機200は、周辺機器300とペアリング連結を行う。ユーザ端末機200は、核心コードが保存された状態で配布または販売された周辺機器300とペアリング連結を行う。また、ユーザ端末機200は、ユーザが既存に所有した周辺機器300が応用プログラム提供サーバ100から核心コードを受信して保存すれば、当該周辺機器300とペアリング連結を行うこともできる。
【0056】
説明の便宜上、ユーザ端末機200と周辺機器300のペアリング連結が核心コード暗号化段階で行われると説明したが、これに限定せず、ユーザ端末機200と周辺機器300は、応用プログラム分離及び伝達段階でペアリングを通じて連結されうる。
【0057】
ユーザ端末機200が周辺機器300とのペアリング連結を完了してからは、ユーザ端末機200は、周辺機器300にユーザ端末機固有情報を伝送する(ステップS440)。ここで、ユーザ端末機固有情報は、ユーザ端末機200の国際モバイル機器識別情報(IMEI)を含みうる。
【0058】
国際モバイル機器識別コード(IMEI)は、携帯電話ごとに付与される固有識別番号である。世界移動通信社業者連合(GSMA)のガイドラインによって携帯電話製造会社は、製造した携帯電話を出庫する時、それぞれの携帯電話に国際モバイル機器識別コード(IMEI)を付与する。国際モバイル機器識別コード(IMEI)は、承認コード8桁、モデル一連番号6桁、検証用数字1桁など総15桁で構成され、国際モバイル機器識別コード(IMEI)を管理する方式によってホワイトリスト制度とブラックリスト制度とに分けられる。そして、国際モバイル機器識別情報(IMEI)は、主に紛失端末機及び盗難端末機に対する通話遮断を目的として管理される。
【0059】
また、ユーザ端末機200は、暗号化させようとする応用プログラムの識別情報もS440段階でユーザ端末機固有情報と共に周辺機器300に伝送しうる。周辺機器300は、複数の応用プログラムの核心コードを保存しており、周辺機器300は、ユーザ端末機200から受信した応用プログラムの識別情報を用いて応用プログラムの核心コードを区別することができる。
【0060】
そして、周辺機器300は、S420段階で受信して保存した応用プログラムの核心コードを暗号化する(ステップS450)。周辺機器300は、S440段階で受信したユーザ端末機固有情報を用いて当該応用プログラムの識別情報に対応する応用プログラムを暗号化する。
【0061】
説明の便宜上、周辺機器300が、ユーザ端末機200から受信したユーザ端末機固有情報を用いて核心コードを暗号化するものと説明した。しかし、これに限定せず、応用プログラム提供サーバ100が、ユーザ端末機200からユーザ端末機固有情報を受信して核心コードを暗号化した後、暗号化された核心コードをS420段階を通じて周辺機器300に伝送しうる。応用プログラム提供サーバ100が核心コードを暗号化する場合、S440段階及びS450段階は省略される。
【0062】
本発明の実施形態による核心コード保護システムは、核心コードを暗号化するか、該暗号化された核心コードを復号するキーで国際モバイル機器識別情報(IMEI)を用いる。周辺機器300は、国際モバイル機器識別情報(IMEI)を用いて核心コードを暗号化または復号することによって、周辺機器300に保存した暗号化された核心コードをユーザ端末機200に従属させる。
【0063】
次いで、ユーザ端末機200と周辺機器300は、S460段階ないしS500段階を通じて再実行を要請された応用プログラムの実行段階を行う。
【0064】
ユーザ端末機200は、ユーザ端末機固有情報を周辺機器300に伝送する(ステップS460)。この際、ユーザ端末機固有情報は、国際モバイル機器識別コード(IMEI)を含み、ユーザ端末機200は、ユーザ端末機固有情報と共にユーザから実行を要請された応用プログラムの識別情報を周辺機器300に伝送しうる。
【0065】
そして、周辺機器300は、受信した応用プログラムの識別情報に対応する暗号化された核心コードを受信したユーザ端末機固有情報を用いて復号する(ステップS470)。S450段階でユーザ端末機固有情報を用いて暗号化された核心コードは、S440段階でユーザ端末機固有情報を伝送したユーザ端末機200に従属される。したがって、他のユーザ端末機は、暗号化された核心コードファイルが保存された周辺機器300を習得しても、当該核心コードファイルを復号することができない。
【0066】
次いで、ユーザ端末機200は、実行呼び出しメッセージを周辺機器300に伝送する(ステップS480)。説明の便宜上、S480段階で、ユーザ端末機200が実行呼び出しメッセージを周辺機器300に伝送するものと説明したが、これに限定せず、ユーザ端末機200は、S460段階で周辺機器300にユーザ端末機固有情報を伝送する時、実行呼び出しメッセージを共に伝送しうる。
【0067】
ここで、実行呼び出しメッセージは、周辺機器300に保存された応用プログラムの核心コードを実行するように要請するメッセージであり、当該応用プログラムの識別情報と実行を呼び出すファイルまたは関数の情報とを含む。
【0068】
次いで、周辺機器300は、復号した核心コードのうちからユーザ端末機200から受信した実行呼び出しメッセージに対応する核心コードを実行する(ステップS490)。
【0069】
S480段階で、ユーザ端末機200が、周辺機器に伝送した実行呼び出しメッセージに実行を呼び出す特定関数の名前が含まれている場合、周辺機器300は、当該関数をローディングして実行する。
【0070】
応用プログラム分離及び伝達段階で、応用プログラム提供サーバ100がS430段階を通じてユーザ端末機200に伝達した一般コードは、メインルーチン(Main Routine)形態であり、周辺機器300がS420段階を通じて応用プログラム提供サーバ100から受信して保存した核心コードは、サブルーチン(Sub Routine)であり得る。
【0071】
ユーザ端末機200が、ユーザの応用プログラム実行要請に応じて一般コードを実行すれば、メインルーチンである一般コードは、サブルーチンである核心コードを呼び出して周辺機器300がS470段階で復号した核心コードファイルを実行することができる。すなわち、ユーザ端末機200は、一般コードを実行することによって、周辺機器300に実行呼び出しメッセージを伝送して周辺機器300に保存された核心コードを実行させることができる。
【0072】
そして、周辺機器300は、応用プログラムの核心コードの実行結果をユーザ端末機200に伝送し(ステップS500)、ユーザ端末機200は、受信した核心コードの実行結果を画面上に表示する(ステップS510)。
【0073】
説明の便宜上、ユーザ端末機200が、周辺機器300から受信した核心コードの実行結果を表示するものと説明したが、周辺機器300が出力部(図示せず)を含む場合、周辺機器300は、S500段階及びS510段階を省略し、周辺機器300が直接核心コードの実行結果を出力部を通じて出力することができる。
【0074】
この場合、周辺機器300が、ユーザ端末機200に核心コードの実行結果を伝送せず、ユーザが周辺機器300から出力された内容を確認し、ユーザ端末機200に出力された内容を入力して応用プログラムを実行することができる。
【0075】
このように、本発明の実施形態によるユーザ端末機及び該ユーザ端末機の周辺機器を用いた核心コード保護方法を用いることによって、核心コードをユーザ端末機とペアリングされた周辺機器に保存し、周辺機器の中央処理装置が核心コードを実行して、核心コードがユーザ端末機に露出されないので、応用プログラムの逆工学分析抵抗性を増加させることができる。
【0076】
また、ユーザ端末機固有情報を用いて暗号化した核心コードを周辺機器に保存して、ユーザ端末機または周辺機器のうちの何れか1つを紛失しても、拾得者が当該応用プログラムを実行することができなくて、応用プログラムの不正使用を防止することができる。
【0077】
以上、本発明の望ましい実施形態について詳細に説明したが、本発明の権利範囲は、これに限定されるものではなく、次の特許請求の範囲で定義している本発明の基本概念を用いた当業者の多様な変形及び改良形態も、本発明の権利範囲に属するものである。