JP6343869B2 - 携帯端末装置及び復号処理プログラム - Google Patents

携帯端末装置及び復号処理プログラム Download PDF

Info

Publication number
JP6343869B2
JP6343869B2 JP2013030868A JP2013030868A JP6343869B2 JP 6343869 B2 JP6343869 B2 JP 6343869B2 JP 2013030868 A JP2013030868 A JP 2013030868A JP 2013030868 A JP2013030868 A JP 2013030868A JP 6343869 B2 JP6343869 B2 JP 6343869B2
Authority
JP
Japan
Prior art keywords
program
core
application software
encrypted
ram
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.)
Expired - Fee Related
Application number
JP2013030868A
Other languages
English (en)
Other versions
JP2014160383A (ja
Inventor
尚棋 國重
尚棋 國重
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.)
Toppan Inc
Original Assignee
Toppan Inc
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 Toppan Inc filed Critical Toppan Inc
Priority to JP2013030868A priority Critical patent/JP6343869B2/ja
Publication of JP2014160383A publication Critical patent/JP2014160383A/ja
Application granted granted Critical
Publication of JP6343869B2 publication Critical patent/JP6343869B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、アプリケーションソフトウェアを実行する携帯端末装置であって、その携帯端末装置用のアプリケーションソフトウェアが外部から解析され改ざんされることを防止する機能を持つ携帯端末装置、及び、暗号化したアプリケーションソフトウェアを携帯端末装置で復号化させる復号処理プログラムに関する。
近年、携帯端末装置は、スマートホン、電子タブレット等と様々な形態のものが普及してきており、これら様々な携帯端末装置において多様なアプリケーションソフトウェアが利用されている。特に、これらの携帯端末装置を用いてユーザがさまざまな動画像や音声を楽しむアプリケーションソフトウェアが広く普及している。携帯端末装置を動画像、音声の再生装置として使うことは、固定的な携帯端末装置のハードウェアを必要としないため、手軽に動画像、音声の再生が楽しめるという利点がある。
しかしながら画像/音声のデータを通信回線を通じて携帯端末装置に配布する場合に、それら画像/音声の著作権をいかにして保護するかという課題がある。特許文献1などでは、それらの画像や音楽の著作物のデータを、不正コピーから保護するために暗号化して、携帯端末装置上で動作するアプリケーションソフトウェアでその暗号化データを復号化させていた。しかし、そのアプリケーションソフトウェアのプログラムが不正に解析されて不正に改造されてしまうと、著作物の不正コピーが可能になってしまう問題があった。
また、その他の種類のアプリケーションソフトウェアについても同様にそのプログラムが不正に解析されて不正に改造される可能性がある弱点があり、携帯端末装置を通じた高度な情報サービスの適用の妨げになっていた。
この問題を解決するために、特許文献2などでは、ソフトウェアも暗号化することで、ソフトウェアが解読、改竄されることを防止する技術が開示されている。この技術は耐タンパソフトウェア技術と呼ばれている(DavidAucsmith et.al;“Tamper Resistant Software:An Implementation”,Proceedingof the 1996 Intel Software Developer's Conference)。
耐タンパソフトウェア技術は、アプリケーションソフトウェアのうち保護を要する部分を実行開始時には暗号化しておき、その部分を実行する前に復号化し、実行終了後に再び暗号化することにより、逆アセンブラ、デバッガなどの解析ツールによる解析を困難にする技術である。
特開平9−307545号公報 特開2004−280678号公報
上述した耐タンパソフトウェア技術は、高度なソフトウェアのセキュリティ技術であるが、スマートホン、電子タブレット等の携帯端末装置の利用者に、操作性の高い利便性を与えつつ種々のアプリケーションソフトウェアを供給する場合に、ソフトウェアの難読化機能が過剰であると、アプリケーションソフトウェアの流通の利便性を損なうという問題
があった。
本発明は、このような実情を鑑みて提案されたものであり、処理を簡易化した利便性の高い方法で、アプリケーションソフトウェアを難読化しセキュリティを高めて供給することで、アプリケーションソフトウェアの流通の利便性を高めることを目的とする。
本発明は、上記課題を解決するために、アプリケーションソフトウェアを不揮発性メモリに記憶しRAMにプログラムを展開して実行する携帯端末装置であって、コア部分が複数のプログラムに分割されて公開鍵と対になる秘密鍵によって暗号化されたアプリケーションソフトウェアを受け取り、復号処理プログラムを実行することによって前記アプリケーションソフトウェアの前記コア部分の複数のプログラムを前記公開鍵を用いて順次に復号化して、前記RAMの同じ記憶領域に以前のプログラムに上書きして書き込んで実行する処理を繰り返すことで前記アプリケーションソフトウェアのコア部分を実行し、不揮発性メモリはフラッシュメモリであり、かつ、前記公開鍵を通信ネットワークを介して認証局から受信する通信手段を備え、前記コア部分が複数のプログラムに分割されて、該分割された部分のハッシュ値と合わせて暗号化され、前記復号処理プログラムが、該暗号化された部分をプログラムとハッシュ値とに復号化し、次に前記復号化されたプログラムのハッシュ値を計算し該ハッシュ値を前記復号化されたハッシュ値と照合し、前記復号処理プログラムが、前記RAMの同じ記憶領域に以前のプログラムに上書きして書き込んで実行する処理を繰り返す、動的リンク機能を有し、前記動的リンク機能は、暗号化した各コア部分のプログラムに組み込んだことを特徴とする携帯端末装置である。
これにより、本発明の携帯端末装置は、不揮発性メモリに記憶したアプリケーションソフトウェアのコア部分が暗号化されているのでクラッカーに解読されず、また、復号化したコア部分の複数のプログラムがRAM上の同じ記憶領域に順次に上書きされて実行されるので、RAM上に短時間しか存在しないので、クラッカーによりアプリケーションソフトウェアが解読されて改ざんされる恐れを少なくし高いセキュリティでアプリケーションソフトウェアを利用することができる。
これにより、本発明の携帯端末装置は、認証局から公開鍵を受信して、改ざんされたアプリケーションソフトウェアが不正な公開鍵を用いて暗号化されて正規なアプリケーションソフトウェアに偽装して流通されることを防止できる。
これにより、本発明の携帯端末装置は、不正に改ざんされたアプリケーションソフトウェアを発見し正規のアプリケーションソフトウェアのみを用いることができる。
また、本発明は、上記の携帯端末装置であって、前記アプリケーションソフトウェアが、前記復号処理プログラムと前記公開鍵を含むアプリケーションソフトウェアであることを特徴とする携帯端末装置である。
また、本発明は、携帯端末装置において不揮発性メモリに記憶したアプリケーションソフトウェアのプログラムをRAMに展開して実行する復号処理プログラムであって、前記アプリケーションソフトウェアのコア部分が複数のプログラムに分割されて公開鍵と対になる秘密鍵によって暗号化されており、コア部分の暗号化された前記複数のプログラムを前記公開鍵を用いて順次に復号化して、前記RAMの同じ記憶領域に以前のプログラムに上書きして書き込んで実行する処理を繰り返し、前記不揮発性メモリはフラッシュメモリであり、かつ、前記公開鍵を通信ネットワークを介して認証局から受信する通信手段を備え、前記コア部分が複数のプログラムに分割されて、該分割された部分のハッシュ値と合わせて暗号化され、前記復号処理プログラムが、該暗号化された部分をプログラムとハッシュ値とに復号化し、次に前記復号化されたプログラムのハッシュ値を計算し該ハッシュ値を前記復号化されたハッシュ値と照合し、前記復号処理プログラムが、前記RAMの同じ記憶領域に以前のプログラムに上書きして書き込んで実行する処理を繰り返す、動的リンク機能を有し、前記動的リンク機能は、暗号化した各コア部分のプログラムに組み込んだことを特徴とする復号処理プログラムである。
本発明は、携帯端末装置が不揮発性メモリに記憶したアプリケーションソフトウェアのコア部分が暗号化されているので、アプリケーションソフトウェアがクラッカーに解読されず、また、コアモジュールが復号化されてRAM上に展開されるが、その複合化されたプログラムがRAM上の同じ記憶領域に頻繁に上書きされるので、RAM上にコアモジュールのプログラムが短時間しか存在しないので、クラッカーによりアプリケーションソフトウェアの解読を困難にし、その改ざんの恐れを少なくし携帯端末装置において高いセキュリティでアプリケーションソフトウェアを利用できる。それにより、利便性が高く、アプリケーションソフトウェアの流通を促進できる効果がある。
第1の実施形態の情報処理システムの構成を示すブロック図である。 (a)第1の実施形態の情報処理システムにおけるアプリ供給装置の構成を示すブロック図である。(b)第1の実施形態の情報処理システムにおける携帯端末装置の構成を示すブロック図である。 第1の実施形態のアプリ供給装置が作成するアプリケーションソフトウェアのデータ構造を示す図である。 第1の実施形態の情報処理システムにおいて携帯端末装置が、アプリケーションソフトウェアのデータをRAMの記憶領域上へ展開するデータの流れを示すブロック図である。 第1の実施形態の情報処理システムにおけるアプリ供給装置の動作及び携帯端末装置の動作を示すフローチャートである。
以下、本発明の実施の形態について説明する。
[第1の実施形態]
図1は、第1の実施形態による情報処理システム1の構成を示すブロック図である。情報処理システム1は、アプリ供給装置10と、携帯端末装置20と、通信ネットワーク100を備えている。通信ネットワーク100には認証局200が接続している。図2に、情報処理システム1におけるアプリ供給装置10と携帯端末装置20の構成を示す。
(アプリ供給装置)
図2(a)に、アプリ供給装置10の構成を示す。アプリ供給装置10は、CPU(Central Processing Unit)で構成した制御手段11、ROM12(Read Only Memory)、RAM(Ramdom Access Memory)13、バス14、インターフェイス(I/F)15、通信部16、入出力部17、ディスプレイ18、磁気ディスク19を備えている。
制御手段11、ROM12、RAM13、インターフェイス15は、バス14によって
相互に接続する。通信部16、入出力部17、ディスプレイ18及び磁気ディスク19は、インターフェイス15によってバス14に接続する。ROM12は、不揮発性の読み出し専用メモリである。ROM12には、オペレーティングシステム(以下、「OS」という。)などの基本ソフトウェアが記憶されている。
制御手段11は、ROM12に記憶されているOSや、磁気ディスク19から読み出されてRAM13に展開されたプログラムに従って、各種の処理を実行する。RAM13は、記憶しているデータの書き換えが可能な揮発性のメモリであって、制御手段11が各種の処理を実行する上において必要なプログラムなどを記憶する。
インターフェイス15は、通信部16、入出力部17、ディスプレイ18及び磁気ディスク19の間における情報の入出力を管理する。インターフェイス15は、バス14を介して、制御手段11、ROM12及びRAM13との間でデータを交換する。通信部16は、通信ネットワーク100を介して認証局200や携帯端末装置20との間の通信を媒介する。通信ネットワーク100は無線通信に限られず、有線通信回線も通信ネットワーク100に含まれる。
入出力部17は、例えばキーボードやポインティングデバイスなどであり、ユーザの操作に応じて、ユーザからの各種の指令、その他必要な情報などを入力する。ディスプレイ18は、例えばLCD(液晶表示装置)であり、文字や画像など各種情報を表示する。磁気ディスク19には、暗号化/復号化プログラム(例えば暗号化処理ルーチン及び復号処理ルーチンなど)、アプリケーションソフトウェアD10のプログラム、鍵Ko、各鍵の属性情報、プログラムの実行に必要なデータが記憶されている。
アプリ供給装置10は、携帯端末装置20に提供するアプリケーションソフトウェアD10のプログラムを、図3のデータ構造のように、そのプログラムのコア部分と、残りのプログラム部分とに分割する。プログラムのコア部分とは、アプリケーションソフトウェアD10のプログラムにおいて重要な処理を行うプログラム部分や、解読を防ぎたい重要なデータである。次に、そのプログラムのコア部分を、更に複数の、コアの分割プログラム部分Cに分割し、各プログラム部分を以下のようにして個別に暗号化することで、例えば、暗号化されたコアモジュールD11、D12、D13、D14のデータを作成する。
アプリ供給装置10は、複数個作成したコアの分割プログラム部分Cを、個別に、秘密鍵Kgを用いて暗号化して暗号化データE(C,Ko)を作成する。すなわち、第1のコアの分割プログラム部分Cの暗号化データE(C,Ko)である暗号化されたコアモジュールD11と、第2のコアの分割プログラム部分Cの暗号化データE(C,Ko)である暗号化されたコアモジュールD12と、第3のコアの分割プログラム部分Cの暗号化されたコアモジュールD13と、第4のコアの分割プログラム部分Cの暗号化されたコアモジュールD14を作成する。
そして、アプリ供給装置10は、暗号化されたコアモジュールD11、D12、D13、D14と、アプリケーションソフトウェアD10の残りのプログラム部分の、アプリの非コアプログラムD15と、復号処理プログラムD16のデータを合わせてアプリケーションソフトウェアD10のデータを作成し携帯端末装置20に渡す。
(携帯端末装置)
図2(b)に、携帯端末装置20の構成を示す。携帯端末装置20は、制御手段21とRAM22とROM23と不揮発性メモリ24とインターフェイス25をバス26に接続して備え、インターフェイス25に通信部27と無線LAN通信部28とUSB入出力部29を接続して備える。不揮発性メモリ24は、フラッシュメモリで構成することができ
る。また、不揮発性メモリ24には、その他に、携帯端末装置20に内蔵されるハードディスクや、可搬媒体の形態のROM、ハードディスク、フレキシブルディスク、光磁気ディスク、CD−ROM等の記憶媒体を用いることもできる。
制御手段21は、ROM23に記憶されているOSや、不揮発性メモリ24から読み出されたアプリケーションソフトウェアD10がRAM22上にリンクして展開されたプログラムに従って、各種の処理を実行する。RAM22は、記憶しているデータの書き換えが可能な揮発性のメモリであって、制御手段21が各種の処理を実行する上において必要なプログラムなどを記憶する。
インターフェイス25は、バス26を介して、制御手段21、ROM23及びRAM22との間でデータを交換する。通信部27は、通信ネットワーク100を介して、アプリ供給装置10および認証局200との間の無線通信を媒介する。
ROM23には、例えば制御手段21の制御プログラム(例えば、復号処理ルーチンなど)が記憶されている。不揮発性メモリ24には、制御手段21が実行するプログラム、プログラムの実行に必要なデータ、複数のファイル、認証用又はセキュアメッセージング(SM)用の鍵Ko及びその属性情報(鍵Koの暗号アルゴリズム、鍵サイズなど)が記憶されている。
携帯端末装置20は、複数のアプリ供給装置10がプログラムのコア部分を暗号化したアプリケーションソフトウェアD10に対応することが可能であり、各アプリ供給装置10が暗号化したアプリケーションソフトウェアD10毎に、認証局200から、そのアプリ供給装置10のID番号に対して発行された公開鍵証明書を受信し、その公開鍵証明書に収められたアプリ供給装置10の公開鍵KoをRAM22に記憶する。すなわち、携帯端末装置20は、複数のアプリ供給装置10毎に、複数の鍵Koを取得してRAM22に記憶する。
(インストール用のアプリケーションソフトウェアのデータ構造)
図3に、アプリ供給装置10が作成して携帯端末装置20にインストールするアプリケーションソフトウェアD10のデータ構造を示す。このアプリケーションソフトウェアD10は、アプリ供給装置10から携帯端末装置20に送付され、携帯端末装置20の不揮発性メモリ24に記憶させる。
インストール用のアプリケーションソフトウェアD10は、アプリ供給装置10が、重要な処理を行うコア部分を複数のコアモジュールD11、D12、D13、D14に分解して、個々のコアモジュール毎に暗号化したコアモジュールを作成する。
そして、暗号化したコアモジュールを、平文の、アプリの非コアプログラムD15と合わせ、更に、復号処理プログラムD16を加えて、インストール用のアプリケーションソフトウェアD10のデータを構成する。復号処理プログラムD16は、暗号化したコアモジュールD11、D12、D13、D14を複合化し、更にプログラムをリンクするプログラムである。こうして、暗号化された複数のコアモジュールD11、D12、D13、D14と復号処理プログラムD16をセットにして、アプリの非コアプログラムD15と合わせて1つのアプリケーションソフトウェアD10を構成する。
アプリケーションソフトウェアD10をこのデータ構造にすることで、アプリケーションソフトウェアD10を解析しようとするクラッカーが、携帯端末装置20の不揮発性メモリ24からアプリケーションソフトウェアD10を読み出しても、そのプログラムが暗号化されているので解読できない効果がある。
また、携帯端末装置20は、復号処理プログラムD16を実行することで、図4のように、アプリケーションソフトウェアD10の暗号化されたコアモジュールD11、D12、D13、D14の1つを、復号化して携帯端末装置20のRAM22上のアプリのコア領域22aに以前のプログラムに上書きして展開する。
そして、復号処理プログラムD16が、携帯端末装置20に、その上書きしたプログラムを実行させた上で、次の、暗号化されたコアモジュールを復号化して、再びアプリのコア領域22aに先のプログラムに上書きして展開する。
こうして、携帯端末装置20は、復号処理プログラムD16のプログラムに従って、RAM22上の同じアプリのコア領域22aに、次々とコアモジュールのプログラムを上書きする動的リンク処理を行う。
なお、この復号処理プログラムD16のプログラムの、コアモジュールのプログラムをアプリのコア領域22aへ上書きさせる動的リンク機能は、暗号化した各コアモジュールD11、D12、D13、D14内のプログラムに組み込んだ形で実装しても良い。
すなわち、復号化された各コアモジュールに、次のコアモジュールのプログラムを、RAM22上のアプリのコア領域22aへ上書きする処理を行う動的リンク機能を持たせる。それにより、次のコアモジュールのプログラムをアプリのコア領域22aに上書きして展開して、先のプログラムの実行後に、アプリのコア領域22aへ上書きした次のプログラムの実行を開始する。次に、次のコアモジュールのプログラムを、その同じアプリのコア領域22aに上書きする。そうして、順次に複数のプログラムをRAM22上の同じアプリのコア領域22aに上書きして実行させる。
以上のように、次に実行するプログラムをリンクする機能を、各コアモジュールのプログラム内に組み込んでも良い。
複数の暗号化したコアモジュールD11、D12、D13、D14は、アプリ供給装置10が作成する。すなわち、アプリ供給装置10が、公開鍵暗号方式を利用して、アプリケーションソフトウェアD10のプログラムのコア部分を複数に分割して、各部分毎に暗号化してコアモジュールD11、D12、D13、D14を作成する。
そして、携帯端末装置20は、復号処理プログラムD16を実行することで、インストール用のアプリケーションソフトウェアD10のコアモジュールD11、D12、D13、D14を、アプリケーションソフトウェアD10の動作に応じて動的に復号化して、先に実行したプログラムが書き込まれていたRAM22上のアプリのコア領域22aに、次のコアモジュールのプログラムを上書きし、そのように上書きしたプログラムを実行する。
(情報処理システム全体の動作の概要)
以下に、本実施形態の情報処理システム1全体の動作の概要を説明する。
(電子署名の公開鍵の登録)
先ず、アプリ供給装置10が予め、鍵生成アルゴリズムを実行して電子署名の公開鍵Koおよび秘密鍵Kgを生成する。そして、その公開鍵Koを第三者機関を介して公開する。
(インストール用のアプリケーションソフトウェアを暗号化して作成)
アプリ供給装置10は、アプリケーションソフトウェアD10のプログラムを、図3の
ブロック図のように、そのプログラムのコア部分と、残りのプログラム部分の、アプリの非コアプログラムD15に分割する。次に、そのプログラムのコア部分は、複数のコアモジュールに分割し、その各々のコアの分割プログラム部分Cを、秘密鍵Kgを用いて暗号化して暗号化データE(C,Ko)を作成する。各コアの分割プログラム部分Cの暗号化データE(C,Ko)をコアモジュールD11、D12、D13、D14とする。
そして、アプリ供給装置10は、アプリケーションソフトウェアD10として、そのコアモジュールD11、D12、D13、D14と、公開鍵Koを含む復号処理プログラムD16と、アプリの非コアプログラムD15とを合わせたデータを作成し携帯端末装置20に送付する。
(インストール用のアプリケーションソフトウェアの復号化)
図4に、携帯端末装置20において、アプリケーションソフトウェアD10を不揮発性メモリ24に格納した後に、そのプログラムをRAM22上へ展開して実行する動作を行うデータの流れを示す。特に、コアモジュールD1、D2、D3、D4は、それらを復号化処理して、RAM22の同じ記憶領域のアプリのコア領域に順次に上書きして実行する。
携帯端末装置20は、アプリ供給装置10から送付されたアプリケーションソフトウェアD10を不揮発性メモリ24に記憶する。アプリケーションソフトウェアD10は、公開鍵Koを含む復号処理プログラムD16と、暗号化された複数のコアモジュールD11、D12、D13、D14と、そのアプリケーションソフトウェアD10の残りのアプリの非コアプログラムD15から成る。そして、携帯端末装置20がそのアプリケーションソフトウェアD10を実行する際に、その機能の実行が必要になったプログラムのデータを、必要な都度RAM22上に展開して記憶する。
特に、暗号化したデータであるコアモジュールD1、D2、D3、D4は、それを復号化したコアの分割プログラム部分CはRAM22上のアプリのコア領域22aにのみ記憶する。そして、1つのコアの分割プログラム部分Cのプログラムの実行を終えたら、次の各コアの分割プログラム部分Cの暗号化データE(C,Ko)を公開鍵Koを用いて復号してコアの分割プログラム部分Cを作成し、そのコアの分割プログラム部分Cを、先に実行したコアの分割プログラム部分Cを記憶していたRAM22上の同じアプリのコア領域22aに上書きする。それにより、先のモジュールのプログラムの記憶を消去する。
このように、複数の復号化したコアの分割プログラム部分Cを同じRAM22上のアプリのコア領域22aに上書きして展開することで、アプリケーションソフトウェアD10のセキュリティを高くすることができる効果がある。
また、アプリケーションソフトウェアD10のプログラムのコア部分を複数のコアの分割プログラム部分Cに分割して、RAM22上の同じ領域であるアプリのコア領域22aに上書きして実行するので、プログラムを実行するためにRAM22を占有する記憶領域を小さくできRAM22の記憶容量を節約できる効果がある。そして、携帯端末装置20のRAM22の記憶領域の容量にかかわらず、長い大きなコア部分のプログラムを実行させることができる効果がある。
以下、図5のフローチャートを参照して、本実施形態の情報処理システム1のアプリ供給装置10動作と携帯端末装置20の動作を説明する。
(アプリ供給装置の動作)
図5に、アプリ供給装置10において、制御手段11がアプリケーションソフトウェア
D10のプログラムのコア部分を複数のモジュールに分解して、それぞれを暗号化する暗号化処理ルーチンのフローチャートを示す。
(アプリケーションソフトウェアの暗号化処理)
暗号化処理ルーチンは、アプリケーションソフトウェアD10のプログラムのコア部分を分解した複数のモジュールの1つであるコアの分割プログラム部分Cを暗号化する。図5には、更に、携帯端末装置20の制御手段21が暗号化データE(C,Ko)を復号化処理する復号処理ルーチンのフローチャートも示す。
(ステップS1:プログラムのモジュール分割処理)
アプリ供給装置10の制御手段11は、アプリケーションソフトウェアD10のプログラムを、図3のブロック図のように、プログラムのコア部分と、残りのプログラム部分とに分割し、更に、そのコア部分を複数のコアの分割プログラム部分Cに分割する。
(ステップS2:暗号化処理)
次に、制御手段11が、コア部分を複数に分割した各コアの分割プログラム部分C毎に、以下の暗号化処理を行う。すなわち、制御手段11が、署名生成アルゴリズムの最初のプログラムで、例えばSHA−1関数などの一方向ハッシュ関数で、コアの分割プログラム部分Cの不可逆変換処理を行いハッシュ値H1を計算する。次に、制御手段11が、署名生成アルゴリズムの次のプログラムで、秘密鍵Kgを用いてコアの分割プログラム部分Cとそのハッシュ値を暗号化して暗号化データE(C,Ko)を作成する。
こうして、複数に分割した各コアの分割プログラム部分Cから暗号化データE(C,Ko)を作成する。作成した各暗号化データE(C,Ko)を、コアモジュールD11、D12、D13、D14とする。コアモジュールD11、D12、D13、D14の全てを作成した場合は、ステップS3へ進む。
(ステップS3)
制御手段11は、公開鍵Koを含む復号処理プログラムD16と、アプリケーションソフトウェアのコア部分の暗号化されたコアモジュールD11、D12、D13、D14と、アプリの非コアプログラムD15とで構成したアプリケーションソフトウェアD10のデータを作成し、携帯端末装置20に送付する。
アプリケーションソフトウェアD10をアプリ供給装置10から携帯端末装置20へ送付する方法の1つとして、Webサーバから通信ネットワーク100を介する通信により、ユーザの携帯端末装置20へデータを送信することができる。携帯端末装置20は、通信部27や無線LAN通信部28でそのデータを受信する。また、USBメモリや、不揮発性メモリ24等の物理的媒体にアプリケーションソフトウェアD10のデータを記憶させて携帯端末装置20に送付することができる。すなわち、USBメモリを携帯端末装置20のUSB入出力部29で読み込ませたり、不揮発性メモリ24を携帯端末装置20に直接に実装することもできる。
(携帯端末装置の動作)
図5に、携帯端末装置20において、制御手段21が暗号化されたアプリケーションソフトウェアD10を復号化してRAM22上に展開してプログラムを実行する手順のフローチャートを示す。
(ステップS31)
携帯端末装置20の制御手段21は、認証局200から、アプリ供給装置10のID番号に対して発行された公開鍵証明書を受信し、公開鍵証明書に収められた公開鍵KoをR
AM22に記憶する。この動作は、次のステップS32の、アプリケーションソフトウェアD10の取り込みの後に行っても良い。
(ステップS32)
次に、制御手段21は、アプリ供給装置10から送信されたアプリケーションソフトウェアD10を不揮発性メモリ24に記憶する。すなわち、アプリケーションソフトウェアD10の、公開鍵Koを含む復号処理プログラムD16と、アプリケーションソフトウェアのコア部分の暗号化されたコアモジュールD11、D12、D13、D14と、アプリの非コアプログラムD15のデータを不揮発性メモリ24に記憶する。
(ステップS33)
次に、制御手段21は、復号処理プログラムD16が含む公開鍵Koの正当性を、認証局200から受け取った公開鍵証明書から読み出してRAM22に記憶した公開鍵Koと照合して検証する。その認証ができない場合、そのアプリケーションソフトウェアD10の実行を中止する。認証が正常に行えた場合は、ステップS34へ進む。
(ステップS34)
制御手段21は、ユーザからの、アプリケーションソフトウェアD10の動作開始指令を受けて、以下のようにして、アプリケーションソフトウェアD10のプログラムを動作させる。先ず、制御手段21は、不揮発性メモリ24から、実行すべきアプリケーションソフトウェアD10の、アプリの非コアプログラムD15を読み出して、RAM22上のアプリの非コア領域22bに動的に展開する。
(ステップS35)
次に、制御手段21が、アプリの非コアプログラムD15のプログラムを実行する。そのプログラムの実行中にコアモジュールを実行する必要が生じた際に、ステップS36以降の復号化処理ルーチンを実行する。
(ステップS36:復号化処理ルーチン)
制御手段21は、コアモジュールの実行要求が生じた際に、復号処理プログラムD16のプログラムをRAM22上のアプリの非コア領域22bに動的に展開して動作させる。
復号処理プログラムD16のプログラムは、暗号化されたコアモジュールD11、D12、D13、D14のうちで該当するモジュールを不揮発性メモリ24から読出し、その暗号化データE(C,Ko)を以下のようにして復号化する。
復号処理プログラムD16のプログラムは、その暗号化データE(C,Ko)を、RAM22に記憶した公開鍵Koを用いて復号化して、コアの分割プログラム部分Cとハッシュ値H1とを得る。得られたハッシュ値H1は制御手段21のレジスタに記憶する。そして、コアの分割プログラム部分Cは、RAM22上の、先に実行していたコアモジュールのプログラムと同じ領域のアプリのコア領域22aに上書きして記憶する。次に、ステップS37へ進む。
こうして、先にコアの分割プログラム部分Cを記憶していたRAM22上のアプリのコア領域22aに、次のコアの分割プログラム部分Cを上書きすることで、RAM22から、先に記憶していたコアの分割プログラム部分Cを抹消する。
(ステップS37)
次に、制御手段21は、アプリのコア領域22aに展開したコアの分割プログラム部分Cにハッシュ関数を作用させてハッシュ値H2を計算する。そして、そのハッシュ値H2
を、先に復号化したハッシュ値H1と照合する。ハッシュ値H1とH2が一致すれば、コアの分割プログラム部分Cの改ざんが無いと判定し、ステップS38に進む。ハッシュ値H1とH2が一致しなければ、そのアプリケーションソフトウェアD10の実行を中止してステップS31に戻る。
(ステップS38)
次に、制御手段21は、RAM22上のアプリのコア領域22aに展開しておいたコアの分割プログラム部分Cのプログラムを実行する。そのプログラムの実行後に、ステップS36に戻り、復号処理プログラムD16を実行して、次に実行すべき、コアモジュールD11、D12、D13、D14のいずれかを不揮発性メモリ24から読出す。
そして、その読み出したモジュールの暗号化データE(C,Ko)を、公開鍵Koを用いて復号化して、コアの分割プログラム部分Cと、そのハッシュ値H1とを得、コアの分割プログラム部分Cを、RAM22上の、先に実行していたコアモジュールのプログラムと同じ領域のアプリのコア領域22aに上書きして記憶する。そして、次のステップS37に進む。
こうして、制御手段21が、ステップS36からステップS38までの動作を繰り返し、コアモジュールD11、D12、D13、D14の最後のモジュールまで、復号化処理ルーチンをを実行することで、暗号化されたコアモジュールD11、D12、D13、D14を復号化したプログラムを、RAM22上の同じ記憶領域であるアプリのコア領域22aに、次々と上書きすることで、直前のコアモジュールのプログラムをアプリのコア領域22aから抹消する。
このようにコアモジュールD11、D12、D13、D14を順次に復号化してRAM22上の同じ記憶領域に上書きして以前のデータを抹消するので、実行させるために復号化させたコアモジュールD11、D12、D13、D14のデータがRAM22に存在する時間は、1つのコアモジュールの実行開始時の複合化の時から、次のコアモジュールの実行開始時の複合化の時までの間の短い時間のみである。こうすることで、アプリケーションソフトウェアD10を解析しようとするクラッカーによるプログラムの解析を極めて難しくできる効果がある。
以上のように、第1の実施形態に係る情報処理システム1において、アプリ供給装置10は、秘密鍵Kgを用いてアプリケーションソフトウェアD10のコア部分を複数のコアの分割プログラム部分Cに分割して、それぞれのコアの分割プログラム部分Cを暗号化データE(C,Ko)に変換し、その暗号化データE(C,Ko)のコアモジュールD11、D12、D13、D14と、アプリの非コアプログラムD15と、公開鍵Koと、復号処理プログラムD16を合わせたデータからなるアプリケーションソフトウェアD10を携帯端末装置20へ送付する。
一方、携帯端末装置20では、制御手段21が、アプリ供給装置10から受信したアプリケーションソフトウェアD10を不揮発性メモリ24に記憶する。
そして、制御手段21は、ユーザからの、アプリケーションソフトウェアD10の動作開始指令を受けて、アプリケーションソフトウェアD10のプログラムを動的にRAM上に展開して実行する。アプリケーションソフトウェアD10の、コアの分割プログラム部分Cのプログラムの実行が必要になった場合に、復号処理プログラムD16を実行して、該当するコアモジュールD11、D12、D13、D14の暗号化データE(C,Ko)を、公開鍵Koを用いて復号化する。
その復号化したコアの分割プログラム部分Cは、RAM22上のアプリのコア領域22aに同じ記憶領域に次々と上書きして直前のコアモジュールのプログラムをRAM22から抹消する。そして、アプリのコア領域22aのコアの分割プログラム部分Cのプログラムを実行する。
こうして、携帯端末装置20のRAM22上のアプリのコア領域22aに展開したコアの分割プログラム部分Cのプログラムは、そのアプリケーションソフトウェアD10の動作に必要な期間のみRAM22上に存在する。
なお、そのアプリケーションソフトウェアD10の動作が停止(一時停止動作を含む)した場合に、RAM22上のアプリのコア領域22aからコアの分割プログラム部分Cを消去するモジュールデータ読出し限定手段も設ける。このモジュールデータ読出し限定手段が、非常時にアプリのコア領域22aからデータを消去することで、RAM22上のアプリのコア領域22aに記憶されているコアの分割プログラム部分Cは、非常時にも、そのデータのオーナーであるアプリケーションソフトウェアD10以外の外部のプログラムから読み取ることができない効果がある。
このように、本実施形態は、アプリケーションソフトウェアD10の流通の利便性を高めるとともに、携帯端末装置20が、クラッカーによる盗聴及び鍵の漏洩を防ぐ高いセキュリティ品質で、改ざんされていない正しいアプリケーションソフトウェアD10を注意深く判別して実行することができるので、アプリケーションソフトウェアD10の流通を促進できる効果がある。
[第2の実施形態]
本発明の第2の実施形態として、復号処理プログラムD16は外部ライブラリソフトウェアとして、アプリケーションソフトウェアD10とは別にして携帯端末装置20に送付し、復号処理プログラムD16を含まないアプリケーションソフトウェアD10を、復号処理プログラムD16とは別に携帯端末装置20に送付することができる。そうして、外部ライブラリソフトウェアとした復号処理プログラムD16を複数のアプリケーションソフトウェアD10に共有させて実行させる。それ以外は、第1の実施形態と同様に構成する。
(変形例1)
第2の実施形態の変形例1として、公開鍵Koは、外部ライブラリソフトウェアとした復号処理プログラムD16に含ませず、携帯端末装置20は、公開鍵Koを、各アプリ供給装置10が暗号化したアプリケーションソフトウェアD10毎に、認証局200から取得してRAM22に記憶して用いるようにしても良い。
各アプリ供給装置10は、アプリケーションソフトウェアD10のコア部分をコアの分割プログラム部分Cに分割して、それぞれのコアの分割プログラム部分Cを、公開鍵Koに対応する秘密鍵Kgを用いて暗号化データE(C,Ko)に変換し、コアモジュールD11、D12、D13、D14として、アプリの非コアプログラムD15と合わせたデータからなるアプリケーションソフトウェアD10を携帯端末装置20へ送付する。
携帯端末装置20は、制御手段21が、外部ライブラリソフトウェアとした復号処理プログラムD16を実行し、復号化すべきアプリケーションソフトウェアD10のコアモジュールD11、D12、D13、D14に対応する公開鍵KoをRAM22から読み出して、コアモジュールD11、D12、D13、D14を順次に復号化してRAM22上のアプリのコア領域22aに上書きして展開する。
こうして、携帯端末装置20の制御手段21が、外部ライブラリソフトウェアの復号処理プログラムD16を読み込んで、そのプログラムを実行させて、一方、各アプリケーションソフトウェアD10毎に対応付けられた公開鍵Koを別途取得して、その公開鍵Koを用いてコアモジュールD11、D12、D13、D14を順次に復号化してRAM22上のアプリのコア領域22aに上書きして展開する。
これにより、異なるアプリ供給装置10が作成したアプリケーションソフトウェアD10を、共通の復号処理プログラムD16を共用する一方、アプリ供給装置10毎に、異なる秘密鍵Kgで暗号化したアプリケーションソフトウェアD10のコアモジュールD11、D12、D13、D14を、それらの秘密鍵Kgに対応した異なる公開鍵Koで復号化して実行させることができる。
1・・・情報処理システム
10・・・アプリ供給装置
11・・・制御手段
12・・・ROM
13・・・RAM
14・・・バス
15・・・インターフェイス
16・・・通信部
17・・・入出力部
18・・・ディスプレイ
19・・・磁気ディスク
20・・・携帯端末装置
21・・・制御手段
22・・・RAM
22a・・・アプリのコア領域
22b・・・アプリの非コア領域
23・・・ROM
24・・・不揮発性メモリ
25・・・インターフェイス
26・・・バス
27・・・通信部
28・・・無線LAN通信部
29・・・USB入出力部
100・・・通信ネットワーク
200・・・認証局
C・・・コアの分割プログラム部分
D10・・・アプリケーションソフトウェア
D11、D12、D13、D14・・・暗号化されたコアモジュール
D15・・・アプリの非コアプログラム
D16・・・復号処理プログラム
E(C,Ko)・・・暗号化データ
Kg・・・秘密鍵
Ko・・・公開鍵

Claims (3)

  1. アプリケーションソフトウェアを不揮発性メモリに記憶しRAMにプログラムを展開して実行する携帯端末装置であって、コア部分が複数のプログラムに分割されて公開鍵と対になる秘密鍵によって暗号化されたアプリケーションソフトウェアを受け取り、復号処理プログラムを実行することによって前記アプリケーションソフトウェアの前記コア部分の複数のプログラムを前記公開鍵を用いて順次に復号化して、前記RAMの同じ記憶領域に以前のプログラムに上書きして書き込んで実行する処理を繰り返すことで前記アプリケーションソフトウェアのコア部分を実行し、不揮発性メモリはフラッシュメモリであり、かつ、前記公開鍵を通信ネットワークを介して認証局から受信する通信手段を備え、前記コア部分が複数のプログラムに分割されて、該分割された部分のハッシュ値と合わせて暗号化され、前記復号処理プログラムが、該暗号化された部分をプログラムとハッシュ値とに復号化し、次に前記復号化されたプログラムのハッシュ値を計算し該ハッシュ値を前記復号化されたハッシュ値と照合し、前記復号処理プログラムが、前記RAMの同じ記憶領域に以前のプログラムに上書きして書き込んで実行する処理を繰り返す、動的リンク機能を有し、前記動的リンク機能は、暗号化した各コア部分のプログラムに組み込んだことを特徴とする携帯端末装置。
  2. 請求項1に記載の携帯端末装置であって、前記アプリケーションソフトウェアが、前記復号処理プログラムと前記公開鍵を含むアプリケーションソフトウェアであることを特徴とする携帯端末装置。
  3. 携帯端末装置において不揮発性メモリに記憶したアプリケーションソフトウェアのプログラムをRAMに展開して実行する復号処理プログラムであって、前記アプリケーションソフトウェアのコア部分が複数のプログラムに分割されて公開鍵と対になる秘密鍵によって暗号化されており、コア部分の暗号化された前記複数のプログラムを前記公開鍵を用いて順次に復号化して、前記RAMの同じ記憶領域に以前のプログラムに上書きして書き込んで実行する処理を繰り返し、前記不揮発性メモリはフラッシュメモリであり、かつ、前記公開鍵を通信ネットワークを介して認証局から受信する通信手段を備え、前記コア部分が複数のプログラムに分割されて、該分割された部分のハッシュ値と合わせて暗号化され、前記復号処理プログラムが、該暗号化された部分をプログラムとハッシュ値とに復号化し、次に前記復号化されたプログラムのハッシュ値を計算し該ハッシュ値を前記復号化されたハッシュ値と照合し、前記復号処理プログラムが、前記RAMの同じ記憶領域に以前のプログラムに上書きして書き込んで実行する処理を繰り返す、動的リンク機能を有し、前記動的リンク機能は、暗号化した各コア部分のプログラムに組み込んだことを特徴とする復号処理プログラム。
JP2013030868A 2013-02-20 2013-02-20 携帯端末装置及び復号処理プログラム Expired - Fee Related JP6343869B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013030868A JP6343869B2 (ja) 2013-02-20 2013-02-20 携帯端末装置及び復号処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013030868A JP6343869B2 (ja) 2013-02-20 2013-02-20 携帯端末装置及び復号処理プログラム

Publications (2)

Publication Number Publication Date
JP2014160383A JP2014160383A (ja) 2014-09-04
JP6343869B2 true JP6343869B2 (ja) 2018-06-20

Family

ID=51612030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013030868A Expired - Fee Related JP6343869B2 (ja) 2013-02-20 2013-02-20 携帯端末装置及び復号処理プログラム

Country Status (1)

Country Link
JP (1) JP6343869B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101566142B1 (ko) * 2014-10-21 2015-11-06 숭실대학교산학협력단 사용자 단말기 및 그것을 이용한 응용 프로그램의 핵심코드 보호 방법
KR101823226B1 (ko) * 2016-02-11 2018-01-29 라인 가부시키가이샤 코드 보호 방법 및 시스템
US10257189B2 (en) * 2016-05-24 2019-04-09 Microsoft Technology Licensing, Llc Using hardware based secure isolated region to prevent piracy and cheating on electronic devices
CN106055937B (zh) * 2016-05-25 2018-11-09 深圳创维数字技术有限公司 一种软件静态数据的加密方法及系统
JP6810334B2 (ja) * 2016-06-17 2021-01-06 富士通株式会社 プロファイルデータ配信制御装置、プロファイルデータ配信制御方法およびプロファイルデータ配信制御プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4475894B2 (ja) * 2002-08-01 2010-06-09 パナソニック株式会社 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法
JP4147472B2 (ja) * 2003-02-28 2008-09-10 日本電気株式会社 コンピュータプログラムの編集システム及びその方法
JP2006221629A (ja) * 2005-02-07 2006-08-24 Sony Computer Entertainment Inc プロセッサのリソース管理によるコンテンツ制御方法および装置
JP2009271884A (ja) * 2008-05-12 2009-11-19 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
JP2010205116A (ja) * 2009-03-05 2010-09-16 Fujitsu Semiconductor Ltd 情報処理装置、情報処理方法および情報処理システム
JP2010217975A (ja) * 2009-03-13 2010-09-30 Nec System Technologies Ltd 情報処理装置、アプリケーションプログラム、及びアプリケーションプログラムの実行方法
JP4897066B2 (ja) * 2010-03-29 2012-03-14 株式会社ハイパーテック 暗号化プログラム復号方法及び暗号化プログラム復号プログラム

Also Published As

Publication number Publication date
JP2014160383A (ja) 2014-09-04

Similar Documents

Publication Publication Date Title
CN101802833B (zh) 向在应用执行环境中运行的应用提供本地存储服务
US20040039932A1 (en) Apparatus, system and method for securing digital documents in a digital appliance
US20080025503A1 (en) Security method using self-generated encryption key, and security apparatus using the same
JP2006080636A (ja) 情報処理装置
WO2005031580A1 (ja) 情報処理装置、情報処理システム及びプログラム
JPWO2004109972A1 (ja) ライセンス受信用ユーザ端末
JP6343869B2 (ja) 携帯端末装置及び復号処理プログラム
JP2002251326A (ja) 耐タンパ計算機システム
JP2002229861A (ja) 著作権保護機能つき記録装置
JP2005316284A (ja) 携帯端末とデータ保護システム
JP5354001B2 (ja) 情報処理装置、情報処理システム及びプログラム
JP6146476B2 (ja) 情報処理装置及び情報処理方法
US8438112B2 (en) Host device, portable storage device, and method for updating meta information regarding right objects stored in portable storage device
JP3597704B2 (ja) Icカードおよび記録媒体
JPH09282155A (ja) 暗号認証機能の装備方法
JP6357091B2 (ja) 情報処理装置、及びコンピュータプログラム
JP2002244989A (ja) デバイスドライバ作動方法
JP2008287488A (ja) データ分散保存装置
CN116594567A (zh) 信息管理方法、装置和电子设备
JP2007199978A (ja) 情報処理装置、携帯端末装置及び情報処理実行制御方法
JP2002368735A (ja) マスタ用ic装置、マスタ用ic装置のためのバックアップ用ic装置、マスタ用ic装置にダミー鍵を与えるダミー鍵格納装置、マスタ用ic装置とバックアップ用ic装置とのための補助装置、及び二つ以上の補助装置を用いた鍵バックアップシステム
JP2006172351A (ja) リムーバブルメディア利用によるコンテンツの使用期限管理方法及びシステム
JP2007011643A (ja) デジタルコンテンツ配信システムおよびトークンデバイス
JP2009284231A (ja) 鍵生成装置、鍵生成方法及び鍵生成プログラム、並びに、電子機器
JP4109805B2 (ja) コンテンツ管理方法及び記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171003

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180424

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180507

R150 Certificate of patent or registration of utility model

Ref document number: 6343869

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees