(57)【特許請求の範囲】
【請求項１】
応用プログラムの核心コードを保護するためのユーザ端末機において、
前記応用プログラムの伝達段階において、応用プログラム提供サーバから前記応用プログラムの一般コードファイルを受信し、前記応用プログラムの核心コード認証時に、前記応用プログラムの識別情報を、前記応用プログラム提供サーバから伝送された前記応用プログラムの核心コードファイルを保存している周辺機器に伝送し、前記周辺機器から前記核心コードファイルを受信する通信部と、
前記受信した核心コードファイルを暗号化して、前記周辺機器に伝送し、前記応用プログラムが実行される時、前記周辺機器に保存された、前記暗号化された核心コードファイルを、前記周辺機器から受信して復号する暗復号部と、
復号された前記核心コードファイルと前記ユーザ端末機に設けられた前記応用プログラムの一般コードファイルとを用いて、前記応用プログラムを実行する実行部と、を含むユーザ端末機。
【請求項２】
前記暗復号部は、
ユーザ端末機固有情報を用いて前記核心コードファイルを暗号化するか、前記暗号化された核心コードファイルを復号し、
前記ユーザ端末機固有情報は、国際モバイル機器識別情報（ＩＭＥＩ）、ＡＮＤＲＯＩＤ＿ＩＤ、シリアル番号、携帯電話番号、モデル番号、ＭＡＣアドレスのうちの少なくとも１つを含む請求項１に記載のユーザ端末機。
【請求項３】
前記周辺機器は、
前記応用プログラム提供サーバから前記核心コードファイルを受信して保存し、
前記応用プログラム提供サーバは、
前記応用プログラムの設置ファイルから核心コードを分離して、前記核心コードファイルを生成し、該生成された前記核心コードファイルを前記周辺機器に伝送し、前記核心コードが分離された前記一般コードファイルを前記ユーザ端末機に伝送する請求項１に記載のユーザ端末機。
【請求項４】
前記核心コードファイルは、
ユーザによって選択されるか、前記応用プログラム提供サーバのプラットフォームであらかじめ定義した関数または客体を用いて選択される請求項１に記載のユーザ端末機。
【請求項５】
ユーザ端末機に設けられた応用プログラムの核心コードを保護するための方法において、
前記ユーザ端末機は、前記応用プログラムの伝達段階において、応用プログラム提供サーバから前記応用プログラムの一般コードファイルを受信し、前記応用プログラムの核心コード認証時に、前記応用プログラムの識別情報を、前記応用プログラム提供サーバから伝送された前記応用プログラムの核心コードファイルを保存している周辺機器に伝送し、前記周辺機器から前記核心コードファイルを受信する段階と、
前記受信した核心コードファイルを暗号化して、前記周辺機器に伝送する段階と、
前記応用プログラムが実行される時、前記周辺機器に保存された、前記暗号化された核心コードファイルを、前記周辺機器から受信して復号する段階と、
復号された前記核心コードファイルと前記ユーザ端末機に設けられた前記応用プログラムの一般コードファイルとを用いて、前記応用プログラムを実行する段階と、を含む核心コード保護方法。
【請求項６】
前記ユーザ端末機は、
ユーザ端末機固有情報を用いて前記核心コードファイルを暗号化するか、前記暗号化された核心コードファイルを復号し、
前記ユーザ端末機固有情報は、国際モバイル機器識別情報（ＩＭＥＩ）、ＡＮＤＲＯＩＤ＿ＩＤ、シリアル番号、携帯電話番号、モデル番号、ＭＡＣアドレスのうちの少なくとも１つを含む請求項５に記載の核心コード保護方法。
【請求項７】
前記周辺機器は、
前記応用プログラム提供サーバから前記核心コードファイルを受信して保存し、
前記応用プログラム提供サーバは、
前記応用プログラムの設置ファイルから核心コードを分離して、前記核心コードファイルを生成し、該生成された前記核心コードファイルを前記周辺機器に伝送し、前記核心コードが分離された前記一般コードファイルを前記ユーザ端末機に伝送する請求項５に記載の核心コード保護方法。
【請求項８】
前記核心コードファイルは、
ユーザによって選択されるか、前記応用プログラム提供サーバのプラットフォームであらかじめ定義した関数または客体を用いて選択される請求項５に記載の核心コード保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ端末機及びそれを用いた応用プログラムの核心コード保護方法に係り、より詳細には、逆工学攻撃から応用プログラムの核心コードを保護することができるユーザ端末機及びそれを用いた応用プログラムの核心コード保護方法に関する。
【背景技術】
【０００２】
スマートフォンユーザは、第３者が開発してグーグル（Ｇｏｏｇｌｅ）プレイのようなデジタルオープンマーケットにアップロードしたアプリケーション及びコンテンツをダウンロードされて駆動させることによって、多様なサービスを利用可能になった。これにより、スマートフォンに多くのデータが蓄積される。蓄積されたデータのうちには、敏感または重要な情報も含まれており、このようなデータを保護しようとするスマートフォン関連保安技術が開発されている。
【０００３】
スマートフォン内に保存された金融及び個人情報を含む各種データは、フィッシング（ｐｈｉｓｈｉｎｇ）、ファーミング（ｐｈａｒｍｉｎｇ）、スミッシング（ｓｍｉｓｈｉｎｇ）だけではなく、偽造・変造されたアプリケーションを通じて奪取されうる。攻撃者は、アプリケーションを逆工学してデコンパイルされたソースコードを抽出した後、悪性コードを挿入して偽造・変造されたアプリケーションを生成するか、強制に抽出したソースコードを不法的に使って経済的に利得を得たりする。
【０００４】
特に、アンドロイドアプリケーションは、アイフォーン（ｉＰｈｏｎｅ）アプリケーションとは異なって、比較的容易にソースコードを抽出して分析し、アプリケーションの不法複製及び偽造・変造で悪性コードを挿入するハッキング攻撃の主要対象になっている。
【０００５】
アプリケーションの不法複製及び偽造・変造を遮断するために、多様なソース難読化技法及びグーグルのＬＶＬ（Ｌｉｃｅｎｓｉｎｇ  Ｖｅｒｉｆｉｃａｔｉｏｎ  Ｌｉｂｒａｒｙ）が提示されてアプリケーションの分析にかかる時間を増加させるか、逆工学を難しくした。
【０００６】
しかし、逆工学の難易度を増加させる方法で逆工学攻撃を防御するものではなく、アプリケーションのソースコードを抽出または分析することができないように保護する方法についての技術を用いて、根本的な側面でアプリケーション及びユーザの情報を保護する技術が必要である。
【０００７】
本発明の背景となる技術は、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】韓国登録特許第１０−１３２８０１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、ユーザ端末機及びそれを用いた応用プログラムの核心コード保護方法に係り、より詳細には、逆工学攻撃から応用プログラムの核心コードを保護することができるユーザ端末機及びそれを用いた応用プログラムの核心コード保護方法を提供するところにその目的がある。
【課題を解決するための手段】
【００１０】
このような技術的課題を果たすための本発明の実施形態による応用プログラムの核心コードを保護するためのユーザ端末機は、前記応用プログラムの核心コード認証時に、前記応用プログラムの核心コードファイルを保存している周辺機器から前記核心コードファイルを受信する通信部と、前記受信した核心コードファイルを暗号化して、前記周辺機器に伝送し、前記応用プログラムが実行される時、前記周辺機器から前記暗号化された核心コードファイルを受信して復号する暗復号部と、復号された前記核心コードファイルと前記ユーザ端末機に設けられた前記応用プログラムの一般コードファイルとを用いて、前記応用プログラムを実行する実行部と、を含む。
【００１１】
また、前記暗復号部は、ユーザ端末機固有情報を用いて前記核心コードファイルを暗号化するか、前記暗号化された核心コードファイルを復号し、前記ユーザ端末機固有情報は、国際モバイル機器識別情報（ＩＭＥＩ；Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｍｏｂｉｌｅ  Ｅｑｕｉｐｍｅｎｔ  Ｉｄｅｎｔｉｔｙ）、ＡＮＤＲＯＩＤ＿ＩＤ、シリアル番号、携帯電話番号、モデル番号、ＭＡＣアドレスのうちの少なくとも１つを含みうる。
【００１２】
また、前記周辺機器は、応用プログラム提供サーバから前記核心コードファイルを受信して保存し、前記応用プログラム提供サーバは、前記応用プログラムの設置ファイルから核心コードを分離して、前記核心コードファイルを生成し、該生成された前記核心コードファイルを前記周辺機器に伝送し、前記核心コードが分離された前記一般コードファイルを前記ユーザ端末機に伝送しうる。
【００１３】
また、前記核心コードファイルは、ユーザによって選択されるか、前記応用プログラム提供サーバのプラットフォームであらかじめ定義した関数または客体を用いて選択されうる。
【００１４】
本発明の他の実施形態によるユーザ端末機に設けられた応用プログラムの核心コードを保護するための方法は、前記ユーザ端末機が、前記応用プログラムの核心コード認証時に、前記応用プログラムの核心コードファイルを保存している周辺機器から前記核心コードファイルを受信する段階と、前記受信した核心コードファイルを暗号化して、前記周辺機器に伝送する段階と、前記応用プログラムが実行される時、前記周辺機器から前記暗号化された核心コードファイルを受信して復号する段階と、復号された前記核心コードファイルと前記ユーザ端末機に設けられた前記応用プログラムの一般コードファイルとを用いて、前記応用プログラムを実行する段階と、を含む。
【発明の効果】
【００１５】
本発明によれば、応用プログラムの一般コードファイルと核心コードファイルとを、ユーザ端末機及びユーザ端末機と通信可能な周辺機器に、それぞれ保存して、応用プログラムの核心コードを逆工学攻撃から保護することができる。
【００１６】
また、ユーザ端末機固有情報を用いて暗号化した核心コードを周辺機器に保存して、ユーザ端末機または周辺機器のうちの何れか１つを紛失しても、拾得者が当該応用プログラムを実行できなくすることによって、応用プログラムの不正使用を防止することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態による応用プログラムの核心コード保護システムを示す構成図である。
【図２】本発明の実施形態によるユーザ端末機の構成を示すブロック図である。
【図３】本発明の実施形態による周辺機器の構成を示すブロック図である。
【図４】本発明の実施形態による応用プログラムの核心コードを保護する方法を説明するフローチャートである。
【発明を実施するための形態】
【００１８】
以下、添付した図面を参照して、本発明の実施形態について当業者が容易に実施できるように詳しく説明する。しかし、本発明は、さまざまな異なる形態として具現され、ここで説明する実施形態に限定されるものではない。そして、図面で本発明を明確に説明するために、説明と関係のない部分は省略し、明細書全体を通じて類似した部分については、類似した図面符号を付する。
【００１９】
以下、添付図面を参照しながら、本発明による望ましい実施形態を詳しく説明する。
【００２０】
図１は、本発明の実施形態による応用プログラムの核心コード保護システムを示す構成図である。図１のように、本発明の実施形態による核心コード保護システムは、応用プログラム提供サーバ１００、ユーザ端末機２００及び周辺機器３００を含む。
【００２１】
図１に示したように、応用プログラム提供サーバ１００、ユーザ端末機２００及び周辺機器３００は、ネットワーク（ｎｅｔｗｏｒｋ）を通じて連結される。すなわち、図１のように、ネットワークを通じて、ユーザ端末機２００は、応用プログラム提供サーバ１００及び周辺機器３００と連結され、周辺機器３００は、応用プログラム提供サーバ１００とネットワークとを通じて連結される。
【００２２】
ここで、ネットワークは、ユーザ端末及びサーバのようなそれぞれのノード相互間に情報交換が可能な連結構造を意味するものであって、このようなネットワークの一例は、インターネット（Ｉｎｔｅｒｎｅｔ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｗｉｒｅｌｅｓｓ  ＬＡＮ（Ｗｉｒｅｌｅｓｓ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、３Ｇ、４Ｇ、Ｗｉ−Ｆｉなどが含まれるが、これに限定されるものではない。
【００２３】
特に、ユーザ端末機２００と周辺機器３００は、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ）、ジグビー（ＺｉｇＢｅｅ）、赤外線通信モジュール（ＩｒＤＡ、Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）などを用いて無線連結され、有線で連結されても良い。
【００２４】
まず、応用プログラム提供サーバ１００は、応用プログラムの核心コードファイル及び一般コードファイルをそれぞれ周辺機器３００及びユーザ端末機２００に伝送して当該応用プログラムファイルを配布する。
【００２５】
本発明の実施形態による応用プログラム提供サーバ１００は、金融、ニュース、ショッピング、ゲームなど多種の応用プログラム一般コードファイル及び核心コードファイルを保存し、ユーザ端末機２００及び周辺機器３００が、このような応用プログラムの一般コードファイル及び核心コードファイルを応用プログラム提供サーバ１００からダウンロードされて設置可能にする。ここで、応用プログラム提供サーバ１００は、モバイルアプリケーションマーケットであり、例えば、グーグルプレイやアップル（Ａｐｐｌｅ）のアプリストアのような各種モバイルアプリケーションマーケットまたは開発者サーバが応用プログラム提供サーバ１００に該当する。
【００２６】
次いで、ユーザ端末機２００は、応用プログラム提供サーバ１００から応用プログラムの一般コードファイルを受信して設置する。そして、応用プログラムの最初実行を入力されるか、応用プログラムの核心コード認証を要請されれば、ユーザ端末機２００は、周辺機器３００から受信した核心コードファイルを暗号化し、生成した暗号化された核心コードファイルを周辺機器３００に伝送する。
【００２７】
ここで、ユーザ端末機２００は、応用プログラムを設置して実行する端末機であって、スマートフォン、スマートパッド、携帯電話、ノート型パソコン、タブレットＰＣ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）などが該当する。特に、スマートフォンまたはスマートパッドの場合、応用プログラムは、機器上にアプリケーションで提供することができる。
【００２８】
ここで、アプリケーションは、端末上の応用プログラムを意味し、例えば、モバイル端末（スマートフォン）で実行されるアプリ（ａｐｐ）を含む。ユーザは、アプリ（ａｐｐ）をモバイルコンテンツを自在に売買する仮想の市場であるモバイルアプリケーションマーケットでダウンロードされて、スマートフォンなどのユーザ端末機２００に設置することができる。
【００２９】
そして、応用プログラムが再実行される時、ユーザ端末機２００は、周辺機器３００から応用暗号化された核心コードファイルを受信して復号し、該復号された核心コードファイルと一般コードファイルとを用いて当該応用プログラムを実行させる。
【００３０】
最後に、周辺機器３００は、応用プログラム提供サーバ１００から応用プログラムの核心コードを受信して保存するか、応用プログラムの開発者によって応用プログラムの核心コードファイルを保存する。
【００３１】
そして、周辺機器３００は、保存した核心コードファイルをユーザ端末機２００に伝送し、ユーザ端末機２００から暗号化された核心コードファイルを受信して保存する。また、周辺機器３００は、ユーザ端末機に設けられた応用プログラムが実行される時、ユーザ端末機２００に当該応用プログラムの暗号化された核心コードファイルを伝送する。
【００３２】
ここで、周辺機器３００は、ユーザ端末機２００及び応用プログラム提供サーバ１００と通信し、応用プログラムの核心コードファイルを受信して保存することができる電気機器である。周辺機器３００は、スマートウォッチ、スマートメガネ、スマートバンドなどのウェアラブル機器であり、通信が可能な外付けハード、ＵＳＢ、ＯＴＧなどの記録媒体であり得る。
【００３３】
また、活動追跡機、モバイルフォトプリンター、ホームモニタリング装置、おもちゃ、医療機器などのアプリアクセサリー（Ａｐｐｃｅｓｓｏｒｙ）を周辺機器３００として使うことができる。ここで、アプリアクセサリーは、ユーザ端末機２００であるスマートフォンがアプリケーションと連動されてスマートフォンの機能を拡張させるアクセサリーを意味する。
【００３４】
図２は、本発明の実施形態によるユーザ端末機の構成を示すブロック図である。
【００３５】
図２のように、本発明の実施形態によるユーザ端末機２００は、通信部２１０、暗復号部２２０、実行部２３０を含む。
【００３６】
まず、通信部２１０は、応用プログラム提供サーバ１００及び周辺機器３００と通信する。特に、通信部２１０は、応用プログラム提供サーバ１００とＷｉ−Ｆｉ、３Ｇ、４Ｇ、ＬＴＥ、ワイブロなどの無線通信方式を通じて通信し、周辺機器３００とブルートゥース、ジグビー、赤外線通信モジュールなどの近距離通信または有線を通じて通信することができる。
【００３７】
通信部２１０は、応用プログラム提供サーバ１００から応用プログラムの一般コードファイルを受信してユーザ端末機２００に当該応用プログラムを設置する。
【００３８】
そして、通信部２１０は、応用プログラムの核心コードファイルを保存した周辺機器３００と通信を行う。
【００３９】
ユーザから応用プログラムの最初実行を入力されるか、応用プログラムの核心コード認証を要請されれば、通信部２１０は、ペアリングされた周辺機器３００から核心コードファイルを受信し、暗復号部２２０が暗号化した暗号化された核心コードファイルを周辺機器３００に伝送する。
【００４０】
また、通信部２１０は、当該応用プログラムが再実行されれば、周辺機器３００に暗号化された核心コードファイルを要請するメッセージを伝送し、周辺機器３００から暗号化された核心コードファイルを受信する。
【００４１】
次いで、暗復号部２２０は、周辺機器３００から受信した核心コードファイルを暗号化する。そして、応用プログラム再実行時に、周辺機器３００から受信した暗号化された核心コードファイルを復号して、当該応用プログラムの核心コードファイルを獲得する。この際、暗復号部２２０は、ユーザ端末機固有情報を用いて暗号化または復号し、ここで、ユーザ端末機固有情報は、国際モバイル機器識別コード（ＩＭＥＩ）、ＡＮＤＲＯＩＤ＿ＩＤ、シリアル番号、携帯電話番号、モデル番号、ＭＡＣアドレスを含むが、これに限定されるものではない。
【００４２】
最後に、実行部２３０は、保存された応用プログラムの一般コードと暗号化された核心コードファイルを復号して、獲得した核心コードファイルを用いて当該応用プログラムを実行させる。
【００４３】
図３は、本発明の実施形態による周辺機器の構成を示すブロック図である。
【００４４】
図３に示したように、周辺機器３００は、通信部３１０と保存部３２０とを含む。
【００４５】
まず、通信部３１０は、応用プログラム提供サーバ１００及びユーザ端末機２００と通信を行う。通信部３１０は、応用プログラム分離及び伝達段階で、応用プログラム提供サーバ１００から応用プログラムの核心コードファイルを受信する。
【００４６】
そして、通信部３１０は、ユーザ端末機２００に設けられた応用プログラムが最初実行されるか、応用プログラムの核心コード認証を要請されれば、ユーザ端末機２００に核心コードファイルを伝送し、ユーザ端末機２００から暗号化された核心コードファイルを受信する。
【００４７】
また、通信部３１０は、ユーザ端末機２００に設けられた応用プログラムが再実行される時、ユーザ端末機２００から暗号化された核心コード要請メッセージを受信し、ユーザ端末機２００に暗号化された核心コードファイルを伝送する。
【００４８】
次いで、保存部３２０は、応用プログラム提供サーバ１００または開発者から受信した応用プログラムの核心コードファイルを保存し、ユーザ端末機２００から受信した暗号化された核心コードファイルを保存する。
【００４９】
以下、図４を通じて本発明の実施形態による応用プログラムの核心コードを保護する方法についてさらに詳細に説明する。
【００５０】
図４は、本発明の実施形態による応用プログラムの核心コードを保護する方法を説明するフローチャートである。
【００５１】
図４に示したように、応用プログラムの核心コードを保護する方法において、Ｓ４１０段階ないしＳ４３０段階は、応用プログラム分離及び伝達段階を意味し、Ｓ４４０段階ないしＳ４７０段階は、核心コード認証段階を意味し、Ｓ４８０段階ないしＳ５１０段階は、応用プログラム実行段階を意味する。説明の便宜上、大きく３つの段階に分けて説明した。
【００５２】
まず、応用プログラム提供サーバ１００は、Ｓ４１０段階ないしＳ４３０段階を通じて応用プログラム分離及び伝達段階を行う。
【００５３】
応用プログラム分離及び伝達段階に先立って、応用プログラム提供サーバ１００は、応用プログラムファイルを分離する（ステップＳ４１０）。すなわち、応用プログラム提供サーバ１００は、応用プログラムパッケージからデコンパイルされた実行ファイルを通じて核心コードを設定して核心コードファイルを生成する。そして、応用プログラム提供サーバ１００は、応用プログラムファイルのうちから核心コードを削除して一般コードのみでなされた一般コードファイルを生成する。
【００５４】
そして、応用プログラム提供サーバ１００は、分離された核心コードファイルを周辺機器３００に伝送して保存させる（ステップＳ４２０）。この際、応用プログラム提供サーバ１００は、周辺機器３００に核心コードファイルを伝達する過程で保安を強化するために、近距離通信または有線を通じて核心コードファイルを伝達することができる。
【００５５】
説明の便宜上、応用プログラム提供サーバ１００が応用プログラムファイルを分離し、周辺機器３００が応用プログラム提供サーバ１００から応用プログラムの核心コードファイルを受信して保存するものと説明したが、これに限定せず、開発者が応用プログラムの核心コードを直接周辺機器３００に保存させて核心コードファイルを配布することができる。
【００５６】
また、ユーザがユーザ端末機２００を通じて応用プログラム提供サーバ１００に接続すれば、応用プログラム提供サーバ１００は、一般コードファイルをユーザ端末機２００にダウンロード方式で伝送する（ステップＳ４３０）。ユーザ端末機２００は、３Ｇ、４Ｇ、Ｗｉ−Ｆｉなどのネットワークを用いて設置しようとする応用プログラムの一般コードファイルをダウンロードされて設置することができる。
【００５７】
次いで、ユーザ端末機２００と周辺機器３００は、Ｓ４４０段階ないしＳ４８０段階を通じて核心コード認証を行う。
【００５８】
核心コード認証に先立って、ユーザ端末機２００は、周辺機器３００とペアリング連結を行う。説明の便宜上、ユーザ端末機２００と周辺機器３００のペアリング連結が核心コード認証段階で行われると説明したが、これに限定せず、ユーザ端末機２００と周辺機器３００は、核心コード認証段階前であっても、ペアリングを通じて連結されうる。
【００５９】
次いで、ユーザ端末機２００は、ペアリングされた周辺機器３００に応用プログラムの識別情報を伝送する（ステップＳ４４０）。周辺機器３００は、受信した応用プログラム識別情報を用いて周辺機器３００に保存された複数の応用プログラムのうちからユーザ端末機２００が核心コード認証を行うとする応用プログラムを区別可能にする。
【００６０】
そして、周辺機器３００は、応用プログラムの識別情報に対応する応用プログラムの核心コードファイルをユーザ端末機２００に伝送する（ステップＳ４５０）。この際、周辺機器３００は、ユーザ端末機２００と有線または近距離無線通信を用いて核心コードファイルを伝送しうる。
【００６１】
ユーザ端末機２００は、受信した核心コードファイルを暗号化する（ステップＳ４６０）。ユーザ端末機２００は、ユーザ端末機固有情報を抽出し、該抽出した情報を用いて核心コードファイルを暗号化し、ここで、ユーザ端末機固有情報は、国際モバイル機器識別コード（ＩＭＥＩ）、ＡＮＤＲＯＩＤ＿ＩＤ、シリアル番号、携帯電話番号、モデル番号、ＭＡＣアドレス含むが、これに限定されるものではない。
【００６２】
国際モバイル機器識別コード（ＩＭＥＩ）は、携帯電話ごとに付与される固有識別番号である。世界移動通信社業者連合（ＧＳＭＡ）のガイドラインによって携帯電話製造会社は、製造した携帯電話を出庫する時、それぞれの携帯電話に国際モバイル機器識別コード（ＩＭＥＩ）を付与する。国際モバイル機器識別コード（ＩＭＥＩ）は、承認コード８桁、モデル一連番号６桁、検証用数字１桁など総１５桁で構成され、国際モバイル機器識別情報（ＩＭＥＩ）は、紛失端末機及び盗難端末機に対する通話遮断を目的として管理される。
【００６３】
そして、本発明の実施形態による応用プログラムの核心コード保護システムは、ユーザ端末機２００が最初ブーティングされる時、生成されて保存される６４ビットの固有値であるＡＮＤＲＯＩＤ＿ＩＤ、ユーザ端末機２００が生産される時、割り当てられたシリアルナンバー、ユーザ端末機２００のモデル番号、携帯電話番号などをユーザ端末機固有情報として活用することができる。また  Ｗｉ−Ｆｉ、ブルートゥースを使うユーザ端末機２００のＭＡＣアドレスをユーザ端末機固有情報として使うことができる。
【００６４】
すなわち、ユーザ端末機２００は、ユーザ端末機固有情報を用いて暗号化した核心コードファイルを周辺機器３００に保存させ、応用プログラム実行時に、周辺機器３００から受信した暗号化された核心コードファイルをユーザ端末機固有情報として復号して、当該応用プログラムを実行する。
【００６５】
そして、ユーザ端末機２００は、暗号化された核心コードファイルを周辺機器３００に伝送し（ステップＳ４７０）、周辺機器３００は、受信した暗号化された核心コードファイルを保存する（ステップＳ４８０）。
【００６６】
ユーザ端末機固有情報として暗号化された核心コードファイルは、ユーザ端末機２００に従属される。すなわち、暗号化された核心コードファイルは、当該核心コードファイルを暗号化したユーザ端末機２００のみ復号して応用プログラムを実行し、他のユーザ端末機が周辺機器３００に保存された暗号化された核心コードファイルを獲得しても、他のユーザ端末機は、当該核心コードファイルを復号することができない。
【００６７】
次いで、ユーザ端末機２００に設けられた応用プログラムが実行されれば、ユーザ端末機２００と周辺機器３００は、Ｓ４９０段階ないしＳ５２０段階を通じて応用プログラム実行段階を行う。また、Ｓ４９０段階を行う前に、ユーザ端末機２００は、ユーザ端末機２００と応用プログラムの核心コードファイルが保存された周辺機器３００とが存在するか否かを先に確認することができる。
【００６８】
ユーザ端末機２００は、周辺機器３００に暗号化された核心コード要請メッセージを伝送する（ステップＳ４９０）。この際、暗号化された核心コード要請メッセージは、再実行された応用プログラムの識別情報を含みうる。
【００６９】
そして、周辺機器３００は、Ｓ４８０段階で保存された応用プログラムの暗号化された核心コードファイルをユーザ端末機２００に伝送する（ステップＳ５００）。
【００７０】
次いで、ユーザ端末機２００は、ユーザ端末機固有情報を抽出し、受信した暗号化された核心コードファイルをユーザ端末機固有情報を用いて復号する（ステップＳ５１０）。
【００７１】
最後に、ユーザ端末機２００は、復号した核心コードファイルとユーザ端末機２００が保存している一般コードファイルとを結合して当該応用プログラムを実行する（ステップＳ５２０）。
【００７２】
ユーザ端末機２００に設けられた一般コードファイルは、メインルーチン（Ｍａｉｎ  Ｒｏｕｔｉｎｅ）形態であり、周辺機器３００に保存された核心コードファイルは、サブルーチン（Ｓｕｂ  Ｒｏｕｔｉｎｅ）であり得る。ユーザ端末機２００が一般コードファイルを実行すれば、一般コードファイルは、サブルーチン呼び出しを呼び出してＳ５１０段階で復号した核心コードファイルを実行させる。これを通じて、ユーザ端末機２００は、当該応用プログラムを実行することができる。
【００７３】
このように、本発明の実施形態によれば、応用プログラムの一般コードファイルと核心コードファイルとを、ユーザ端末機及びユーザ端末機と通信可能な周辺機器に、それぞれ保存して、応用プログラムの核心コードを逆工学攻撃から保護することができる。
【００７４】
また、ユーザ端末機固有情報を用いて暗号化した核心コードを周辺機器に保存して、ユーザ端末機または周辺機器のうちの何れか１つを紛失しても、拾得者が当該応用プログラムを実行することができないので、応用プログラムの不正使用を防止することができる。
【００７５】
以上、本発明の望ましい実施形態について詳細に説明したが、本発明の権利範囲は、これに限定されるものではなく、次の特許請求の範囲で定義している本発明の基本概念を用いた当業者の多様な変形及び改良形態も、本発明の権利範囲に属するものである。
【産業上の利用可能性】
【００７６】
本発明は、ユーザ端末機及びそれを用いた応用プログラムの核心コード保護方法関連の技術分野に適用可能である。
【符号の説明】
【００７７】
１００：応用プログラム提供サーバ
２００：ユーザ端末機
２１０：通信部
２２０：暗復号部
２３０：実行部
３００：周辺機器
３１０：通信部
３２０：保存部
【図１】
0006318246.tif 000002
【図２】
0006318246.tif 000003
【図３】
0006318246.tif 000004
【図４】
0006318246.tif 000005