説明

セキュア媒体

【課題】アプリケーションプログラムの不正使用を確実に防止しながら正当な利用が容易にできるようにする。
【解決手段】CPUとセキュア領域を有するメモリとを備えたセキュア媒体において、保護プログラムと非保護プログラムとからなるアプリケーションプログラムの前記保護プログラムをセキュア領域に格納し前記非保護プログラムをセキュア領域とは別のメモリの領域に格納し、前記非保護プログラムはコンピュータにインストールされて実行され、前記保護プログラムは、セキュア媒体のCPUに、前記非保護プログラムを実行しているコンピュータからコマンドを受信させて、このコマンドで命じられる処理を実行させて、その処理結果をコンピュータに返信させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュア媒体に関する。
【背景技術】
【0002】
従来から、アプリケーションプログラムは、ディスク媒体によりユーザに配布している。
【0003】
しかしながら、ディスク媒体によりユーザに配布するアプリケーションプログラムは、ディスクを丸ごとコピーすれば、全く同じものを作れてしまい、違法コピーをなくすことが不可能である。
【0004】
また従来から、ドングルにより使用制限を行うアプリケーションプログラムがある。
【0005】
しかしながら、ドングルにより使用制限を行うアプリケーションプログラムは、アプリケーションプログラムとドングルとを個別に配布する必要がある。
【0006】
また、ドングルにより使用制限を行うアプリケーションプログラムを、リバースエンジニアリングすることで、ドングルによる認証を回避するようにアプリケーションプログラムが改変される可能性がある。
【0007】
また従来から、ICカードと、このICカードによる使用制限を行うパソコン用のアプリケーションとを個別にユーザに配布することが行われている。
【0008】
しかしながら、ICカード等のセキュア媒体をパソコンで使用する場合、それを操作するためのアプリケーションプログラムを別途インストールする必要がある。
【0009】
また従来から、プログラムを、保護が必要な部分(保護コード)とそれ以外の通常コードにあらかじめ分割して用意し、各々を保護環境と通常環境という一つのPC上の独立した2つの計算機環境で連係動作させる技術がある(例えば特許文献1又は2参照)。
【0010】
しかしながら、保護コードと通常コードとに分割されたアプリケーションプログラムは、インストール後はプログラムコードは解析から守られるが、プログラム配布段階、インストール段階ではプログラムを解析される恐れがある。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2002−251326号公報
【特許文献2】特開2006−164184号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明は斯かる背景技術に鑑みてなされたもので、アプリケーションプログラムの不正使用を確実に防止しながら正当な利用が容易にできるようにすることを課題とする。
【課題を解決するための手段】
【0013】
本発明において上記課題を解決するために、まず請求項1の発明では、
CPUとセキュア領域を有するメモリとを備え、保護プログラムと非保護プログラムとからなるアプリケーションプログラムの保護プログラムをセキュア領域に格納し非保護プログラムをセキュア領域とは別のメモリの領域に格納しているセキュア媒体であって、
非保護プログラムは、コンピュータにインストールされて実行され、
保護プログラムは、セキュア媒体のCPUに、非保護プログラムを実行しているコンピュータからコマンドを受信させて、このコマンドで命じられる処理を実行させて、その処理結果をコンピュータに返信させることを特徴とするセキュア媒体としたものである。
【0014】
また請求項2の発明では、
非保護プログラムは、バイナリーデータでセキュア領域に格納され、
保護プログラムは、セキュア媒体のCPUに、インストーラープログラムを実行しているコンピュータからバイナリーデータ取得コマンドを受信させて、非保護プログラムのバイナリーデータをセキュア領域から読み出させて、コンピュータに返信させることを特徴とする請求項1記載のセキュア媒体としたものである。
【発明の効果】
【0015】
請求項1の発明は、セキュア媒体を購入するだけでアプリケーションプログラムを利用できるけれども、アプリケーションプログラムによる処理の一部を、セキュア媒体から外に出ることのない保護プログラムが受け持つために、保護プログラムの秘密が保たれると同時に、セキュア媒体がなければアプリケーションプログラムを利用できないので、アプリケーションプログラムの不正使用を確実に防止しながら正当な利用が容易にできるという効果がある。
【0016】
請求項2の発明は、非保護プログラムを汎用のインストーラープログラムで容易にインストールできるという効果がある。
【図面の簡単な説明】
【0017】
【図1】本発明に係るシステムにおけるハードウエア構成例を示す図。
【図2】本発明に係るシステムにおけるプログラム構成例を示す図。
【図3】本発明に係るシステムにおけるプログラム相互の作用を示す図。
【図4】本発明に係るシステムにおけるプログラム相互の作用を示す図。
【図5】非保護プログラムのソースコードの例と、この例の非保護プログラムからのコマンドで呼び出されると、このコマンドが命ずる処理を実行して、この結果を返す保護プログラムの部分のソースコードの例とを示す図。
【図6】アプリケーションプログラムをインストールする処理の流れを示すフローチャート。
【図7】アプリケーションプログラムを実行する処理の流れを示すフローチャート。
【図8】数式欄に計算式を入力したときの様子を示す図。
【図9】計算ボタンを押したときの様子を示す図。
【発明を実施するための形態】
【0018】
以下に、本発明の一実施形態を説明する。
【0019】
本発明に係るシステムは、図1に示すように、セキュア媒体と、パソコンとを備える。
【0020】
パソコンは、CPU、セキュア媒体リーダライタ、表示装置、入力装置、主記憶装置、補助記憶装置などを備える。図2に示すように、補助記憶装置には、インストーラープログラムがインストールされて、CPUによって実行可能である。
【0021】
セキュア媒体は、CPU、I/F、メモリなどを備え、耐タンパ性を有する。
【0022】
I/Fは、通信インターフェースとも呼ばれ、セキュア媒体がセキュア媒体リーダライタに装着された場合に、電力とクロックの供給を受けるとともに、セキュア媒体リーダライタとCPUとの間の通信を仲介するインターフェースである。
【0023】
メモリは、通常の読み出し専用記憶装置であるROMや電気的に内容の書き換えが可能なRAMなどが該当し、セキュア媒体リーダライタからデータの読み出しが可能な領域と不可能な領域とに分かれている。セキュア媒体リーダライタからデータの読み出しが不可能な領域は、セキュア領域とも呼ばれる。
【0024】
本発明に係るアプリケーションプログラムは、非保護プログラムと、保護プログラムとからなり、図2に示すように、保護プログラムは、メモリのセキュア領域にインストールされてセキュア媒体のCPUによってのみ実行可能であり、非保護プログラムは、メモリのセキュア領域とは別の領域にバイナリデータとして保存されている。
【0025】
保護プログラムは、図3に示すように、インストーラープログラムからバイナリーデータ取得コマンドで呼び出されると、非保護プログラムのバイナリーデータを読み出して返す。そして、インストーラープログラムは、パソコンの補助記憶装置に非保護プログラムをインストールする。
【0026】
また保護プログラムは、図4に示すように、パソコンにインストールされた非保護プログラムからのコマンドで呼び出されると、このコマンドが命ずる処理を実行して、この結果を、この非保護プログラムに返す。
【0027】
すなわち、保護プログラムは、インストーラープログラムからバイナリーデータ取得コマンドで呼び出されると、非保護プログラムのバイナリーデータを読み出して返す部分と、非保護プログラムからのコマンドで呼び出されると、このコマンドが命ずる処理を実行して、この結果を返す部分とからなる。
【0028】
図5に、非保護プログラムのソースコードの例と、この例の非保護プログラムからのコマンドで呼び出されると、このコマンドが命ずる処理を実行して、この結果を返す保護プログラムの部分のソースコードの例とを示す。これらのソースコードは、C言語で記述されている。
【0029】
以下に、アプリケーションプログラムをインストールする処理の流れを、図6のフローチャートに従って説明する。
【0030】
S(STEP)1;
パソコンのCPUは、インストーラープログラムによって、パソコンのセキュア媒体リーダライタを介して、バイナリーデータ取得コマンドを、セキュア媒体に送信する。
【0031】
S(STEP)2;
セキュア媒体のCPUは、保護プログラムによって、セキュア媒体のI/Fを介して、バイナリーデータ取得コマンドを受信すると、セキュア媒体のメモリから非保護プログラムのバイナリーデータを読み出して、セキュア媒体のI/Fを介して、パソコンに送信する。
【0032】
S(STEP)3;
パソコンのCPUは、インストーラープログラムによって、パソコンのセキュア媒体リーダライタを介して、非保護プログラムのバイナリーデータを受信すると、この非保護プログラムを、パソコンの補助記憶装置に、インストールする。
【0033】
以下に、アプリケーションプログラムを実行する処理の流れを、図7のフローチャートに従って説明する。
【0034】
S(STEP)1;
パソコンのCPUは、非保護プログラムに記述されている処理を順に行い、コマンドの送信が指示されている箇所に達すると、パソコンのセキュア媒体リーダライタを介して、コマンドを、セキュア媒体に送信する。
【0035】
S(STEP)2;
セキュア媒体のCPUは、保護プログラムによって、セキュア媒体のI/Fを介して、コマンドを受信すると、このコマンドが命じる処理を行い、その処理の結果を、セキュア媒体のI/Fを介して、パソコンに送信する。
【0036】
S(STEP)3;
パソコンのCPUは、非保護プログラムによって、パソコンのセキュア媒体リーダライタを介して、その処理の結果を受信し、以後、非保護プログラムに記述されている残りの順に処理を行い、コマンドの送信が指示されている箇所に再度達した場合には、STEP1〜3と同様の処理を繰り返す。
【実施例1】
【0037】
以下、本発明の実施例1を具体的に説明する。
【0038】
実施例1では、セキュア媒体は、ICカードであり、それに伴って、セキュア媒体リーダライタは、ICカードリーダライタとなる。
【0039】
実施例1では、アプリケーションプログラムは、電卓アプリケーションプログラムであり、図8示すように、数式欄に計算式をキーボードから入力し、計算ボタンをマウスで押すと、図9に示すように、結果欄に計算結果が表示されるものである。
【0040】
ここで、非保護プログラムは、数式入力機能と、ICカード通信機能と、計算結果表示機能とを有する。
【0041】
また、保護プログラムは、数式受信機能と、数式演算機能と、計算結果送信機能と、バイナリーデータ読み出し送信機能とを有する。
【0042】
また、インストーラープログラムは、ICカード通信機能と、パソコンへのプログラムインストール機能とを有する。
【0043】
以下に、アプリケーションプログラムのインストールについて説明する。
【0044】
まず、パソコンのICカードリーダライタに装着されると、パソコンのCPUは、インストーラープログラムのICカード通信機能によって、ICカードから、ICカードのメモリのセキュア領域とは別の領域に保存されている非保護プログラムバイナリーデータを、パソコンの主記憶装置にロードする。このとき、パソコンのCPUは、ICカードのメモリのセキュア領域に保存されている保護プログラムのバイナリーデータ読み出し送信機能を利用して、非保護プログラムバイナリーデータを読み出す。パソコンのCPUは、インストーラープログラムのパソコンへのプログラムインストール機能によって、ICカードからロードした保護プログラムのバイナリーデータを、パソコンの補助記憶装置にインストールする。
【0045】
ここで、電卓アプリケーションプログラムによるシステムの動作を、123+456=579の計算を行う場合を例に取って説明する。この計算は、以下の(1)〜(3)の順に処理が行われる。
【0046】
(1)数式欄にキーボードで“123+456”と入力する(図8参照)。
(2)計算ボタンをマウスでクリックする。
(3)結果欄に計算結果である“579”が表示される(図9参照)。
【0047】
以下に、非保護プログラムによるパソコンの動作を説明する。
【0048】
まず、上記(1)では、パソコンのCPUは、非保護プログラムの数式入力機能によって、ユーザーからのキーボードによる数式の入力を受け付け、数式欄に入力された数式をディスプレイに表示する。
【0049】
次に、上記(2)では、パソコンのCPUは、入力された数式データを“123+456”を、非保護プログラムのICカード通信機能によって、ICカードリーダライタを介して、ICカードに送信する。このとき、送信するデータは、非保護プログラムと保護プログラムとの間で予め決められたフォーマットで送信する。例えば、“123+456”とデータを一度に送信する、また例えば、“123”,“+”,“456”と複数回に分けて送信する等がある。
【0050】
次に、パソコンのCPUは、数式データの送信が終了すると、非保護プログラムのICカード通信機能によって、ICカードから、ICカードリーダライタを介して、計算結果を受信する。このとき、受信するデータは、非保護プログラムと保護プログラムとの間で予め決められたフォーマットで受信する。例えば計算結果を数字“579”として受信する、また例えば文字“579”として受信する等がある。
【0051】
最後に、上記(3)では、パソコンのCPUは、非保護プログラムの計算結果表示機能によって、ICカードから受信した計算結果をディスプレイに表示する。
【0052】
以下に、保護プログラムによるICカードの動作を説明する。
【0053】
まず、上記(1)のとき、ICカードのCPUは、パソコンからのデータの受信待ち状態となっている。
【0054】
次に、ICカードのCPUは、保護プログラムの数式受信機能によって、パソコンからの数式データ“123+456”を、I/Fを介して受信する。
【0055】
次に、ICカードのCPUは、保護プログラムの数式演算機能によって、受信した数式
データに基づいて計算を行い、保護プログラムの計算結果送信機能によって、計算結果を、I/Fを介してパソコンに送信する。
【0056】
最後に、上記(3)のとき、ICカードのCPUは、パソコンからのデータの受信待ち状態となっている。
【0057】
このように、保護プログラムは、全ての段階において、ICカード内から外部には出ないため、保護プログラムの解析を行うことは不可能である。
【0058】
また、電卓アプリケーションプログラムのコア技術である数式演算機能を保護プログラムに含めることで、非保護プログラムを、いくら解析、改変しても、電卓アプリケーションプログラムを、不正に使用、又はコピーすることは不可能である。
【実施例2】
【0059】
実施例2は、オープンソースプログラム(プログラムのソースコードが公開されているプログラム)に独自の技術を組み込んだアプリケーションプログラムを開発する場合、オープンソース部分を非保護プログラム、独自技術部分を保護プログラムとするものである。
【0060】
このようにすることで、コア技術である独自の技術を保護することができる。

【特許請求の範囲】
【請求項1】
CPUとセキュア領域を有するメモリとを備え、保護プログラムと非保護プログラムとからなるアプリケーションプログラムの保護プログラムをセキュア領域に格納し非保護プログラムをセキュア領域とは別のメモリの領域に格納しているセキュア媒体であって、
非保護プログラムは、コンピュータにインストールされて実行され、
保護プログラムは、セキュア媒体のCPUに、非保護プログラムを実行しているコンピュータからコマンドを受信させて、このコマンドで命じられる処理を実行させて、その処理結果をコンピュータに返信させることを特徴とするセキュア媒体。
【請求項2】
非保護プログラムは、バイナリーデータでセキュア領域に格納され、
保護プログラムは、セキュア媒体のCPUに、インストーラープログラムを実行しているコンピュータからバイナリーデータ取得コマンドを受信させて、非保護プログラムのバイナリーデータをセキュア領域から読み出させて、コンピュータに返信させることを特徴とする請求項1記載のセキュア媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−257302(P2010−257302A)
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2009−107717(P2009−107717)
【出願日】平成21年4月27日(2009.4.27)
【出願人】(000003193)凸版印刷株式会社 (10,630)
【Fターム(参考)】