(57)【特許請求の範囲】
【請求項１】
複数種類の記憶媒体を備えた画像形成装置であって、
第一の暗号鍵が予め記録された暗号鍵記憶手段と、
複数の電子ファイルを格納したパッケージファイルの入力を受け付けるデータ入力手段と、
前記パッケージファイルを前記第一の暗号鍵によって復号する第一の復号手段と、
前記パッケージファイルに格納された電子ファイルごとに保存先及び暗号化強度の少なくともいずれか一方を識別するための保護情報を取得する取得手段と、
復号された前記パッケージファイルに格納された複数の電子ファイルのそれぞれについて、前記保護情報に基づく保存先への保存及び前記保護情報に基づく暗号強度による暗号化による保存の少なくともいずれか一方を実行する保存手段とを有することを特徴とする画像形成装置。
【請求項２】
前記第一の暗号鍵は、第二の暗号鍵によって暗号化されて前記暗号鍵記憶手段に記録されており、
前記第二の暗号鍵が記録されたセキュアデバイスと、
前記第二の暗号鍵によって前記第一の暗号鍵を復号する第二の復号手段とを有し、
前記第一の復号手段は、復号された前記第一の暗号鍵によって前記パッケージファイルを復号することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記保護情報において指定されている暗号化強度に応じた暗号鍵を生成する暗号鍵生成手段を有し、
前記保存手段は、前記暗号鍵生成手段によって生成された暗号鍵によって前記電子ファイルを暗号化することを特徴とする請求項1又は２記載の画像形成装置。
【請求項４】
前記暗号鍵生成手段は、前記電子ファイルごとに異なる暗号鍵を生成することを特徴とする請求項３記載の画像形成装置。
【請求項５】
前記電子ファイルの少なくとも一つは、当該画像形成装置とネットワークを介して接続されるコンピュータに保管されているプログラムの実体を呼び出すためのインタフェースを備えたスタブであることを特徴とする請求項１乃至４いずれか一項記載の画像形成装置。
【請求項６】
前記複数種類の記憶媒体は、情報の漏洩に関する安全性が異なることを特徴とする請求項１乃至５いずれか一項記載の画像形成装置。
【請求項７】
複数種類の記憶媒体と第一の暗号鍵が予め記録された暗号鍵記憶手段とを備えた画像形成装置が実行するデータ管理方法であって、
複数の電子ファイルを格納したパッケージファイルの入力を受け付けるデータ入力手順と、
前記暗号鍵記憶手段より前記第一の暗号鍵を取得し、前記パッケージファイルを前記第一の暗号鍵によって復号する第一の復号手順と、
前記パッケージファイルに格納された電子ファイルごとに保存先及び暗号化強度の少なくともいずれか一方を識別するための保護情報を取得する取得手順と、
復号された前記パッケージファイルに格納された複数の電子ファイルのそれぞれについて、前記保護情報に基づく保存先に係る前記記憶媒体への保存及び前記保護情報に基づく暗号強度による暗号化による、いずれかの前記記憶媒体への保存の少なくともいずれか一方を実行する保存手順とを有することを特徴とするデータ管理方法
【請求項８】
前記第一の暗号鍵は、前記画像形成装置が備えるセキュアデバイスに記録された第二の暗号鍵によって暗号化されて前記暗号鍵記憶手段に記録されており、
前記セキュアデバイスより前記第二の暗号鍵を取得し、前記第二の暗号鍵によって前記第一の暗号鍵を復号する第二の復号手順を有し、
前記第一の復号手順は、復号された前記第一の暗号鍵によって前記パッケージファイルを復号することを特徴とする請求項７記載のデータ管理方法
【請求項９】
前記保護情報において指定されている暗号化強度に応じた暗号鍵を生成する暗号鍵生成手順を有し、
前記保存手順は、前記暗号鍵生成手順において生成された暗号鍵によって前記電子ファイルを暗号化することを特徴とする請求項７又は８記載のデータ管理方法
【請求項１０】
前記暗号鍵生成手順は、前記電子ファイルごとに異なる暗号鍵を生成することを特徴とする請求項９記載のデータ管理方法
【請求項１１】
前記電子ファイルの少なくとも一つは、当該画像形成装置とネットワークを介して接続されるコンピュータに保管されているプログラムの実体を呼び出すためのインタフェースを備えたスタブであることを特徴とする請求項７乃至１０いずれか一項記載のデータ管理方法
【請求項１２】
前記複数種類の記憶媒体は、情報の漏洩に関する安全性が異なることを特徴とする請求項７乃至１１いずれか一項記載のデータ管理方法
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及びデータ管理方法に関する。
【背景技術】
【０００２】
近年では、その出荷後にプログラムを追加インストール可能な画像形成装置が提供されている。また、このようなプログラムについても、例えば、画像形成装置のメーカーが運営するＷｅｂサイト等よりネットワークを介してダウンロードが可能とされている。
【０００３】
ネットワークを介してプログラムの流通を可能とすることにより、画像形成装置のユーザは、簡便にプログラムを入手し、当該画像形成装置の機能強化を行うことができる。
【特許文献１】特開２００５−２７５６９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、プログラムの入手者が善意のユーザばかりであるとは限らない。例えば、入手したプログラムを解読し、海賊版の作成等を試みる者が存在するかもしれない。特に、近年、画像形成装置においてもＪａｖａ（登録商標）によるプログラムが実行可能とされているが、Ｊａｖａ（登録商標）の中間コードの解読は他の言語によるプログラムに比べて非常に容易であり、解読を支援するツールも出回っているという実情がある。
【０００５】
本発明は、上記の点に鑑みてなされたものであって、電子データが解読される可能性を適切に低減させることのできる画像形成装置及びデータ管理方法の提供を目的とする。
【課題を解決するための手段】
【０００６】
そこで上記課題を解決するため、本発明は、複数種類の記憶媒体を備えた画像形成装置であって、第一の暗号鍵が予め記録された暗号鍵記憶手段と、複数の電子ファイルを格納したパッケージファイルの入力を受け付けるデータ入力手段と、前記パッケージファイルを前記第一の暗号鍵によって復号する第一の復号手段と、前記パッケージファイルに格納された電子ファイルごとに保存先及び暗号化強度の少なくともいずれか一方を識別するための保護情報を取得する取得手段と、復号された前記パッケージファイルに格納された複数の電子ファイルのそれぞれについて、前記保護情報に基づく保存先への保存及び前記保護情報に基づく暗号強度による暗号化による保存の少なくともいずれか一方を実行する保存手段とを有することを特徴とする。
【０００７】
このような画像形成装置では、電子データが解読される可能性を適切に低減させることができる。
【発明の効果】
【０００８】
本発明によれば、電子データが解読される可能性を適切に低減させることのできる画像形成装置及びデータ管理方法を提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるシステム構成例を示す図である。同図において、配布サーバ１０と一台以上の機器２０とはインターネット又はＬＡＮ（Local Area Network）等のネットワーク３０によって接続されている。
【００１０】
配布サーバ１０は、プログラムパッケージ１１を管理し、機器２０からのダウンロード要求に応じてプログラムパッケージ１１の配布を実行するコンピュータである。配布サーバ１０において、プログラムパッケージ１１全体は、暗号鍵Ｂによって暗号化されている。したがって、ダウンロード時において、プログラムパッケージ１１は暗号化された状態でネットワーク上を流通する。なお、図中においてプログラムパッケージ１１は一つのブロックとして記載されているが、実現する機能の別（アプリケーションの種別）に応じて複数存在し得る。なお、プログラムパッケージ１１は、複数のプログラムファイルが一つのファイルにパッケージ化（書庫化）されたものであり、プログラムの流通単位でもある。Ｊａｖａ（登録商標）を例とすると、一つのプログラムパッケージ１１は、一つのＪＡＲファイルに相当する。
【００１１】
図２は、本発明の実施の形態におけるプログラムパッケージ構成例を示す図である。同図において、プログラムパッケージ１１には、プロファイルデータファイル１１１、プログラムファイル１１２、及びデータファイル１１３等が含まれている。プロファイルデータファイル１１１は、プログラムパッケージ１１に含まれるプログラムファイル１１２及びデータファイル１１３ごとに当該プログラムファイル１１２の保護情報が定義されたファイルである。ここで、保護情報とは、保護対象とされるファイルのセキュリティを確保するために（保護するために）要求される処理内容等を識別するための情報をいう。
【００１２】
プログラムファイル１１２は、プログラムパッケージ１１の実体が格納されたファイルであり、一つのプログラムパッケージ１１１内に複数格納されうる。例えば、Ｊａｖａ（登録商標）を例とするとＣｌａｓｓファイルが相当する。データファイル１１３は、プログラムの設定情報や環境情報等が記録されたファイルであり、一つのプログラムパッケージ内に複数格納される。
【００１３】
図１に戻る。機器２０は、コピー機能、印刷機能、スキャナ機能、及びＦＡＸ機能等を一台の筐体において実現する、一般的に複合機又は融合機と呼ばれる画像形成装置である。機器２０は、配布サーバ１０よりダウンロードされるプログラムパッケージ１１を追加的にインストールし、機能強化等を図ることが可能である。なお、本発明の適用にあたり、機器２０は、必ずしも複合機でなくてもよい。例えば、コピー機、プリンタ、スキャナ、又はファクシミリ等の画像形成装置であってもよい。
【００１４】
図３は、本発明の実施の形態における機器のハードウェア構成例を示す図である。同図において、機器２０は、それぞれバスＢによって接続された、ＲＯＭ２１、ＲＡＭ２２、ＣＰＵ２３、ＴＰＭ（Trusted Platform Module）２４、フラッシュメモリ２５、ＨＤＤ（Hard Disk Drive）２６、操作パネル２７、スキャナ２８、及びプリンタ２９等を備える。
【００１５】
ＲＯＭ２１には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。ＲＡＭ２２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ２３は、ＲＡＭ２２にロードされたプログラムを処理することにより、後述される機能を実現する。ＴＰＭ２４は、セキュアデバイスの一例であり、セキュリティチップとも呼ばれる。ＴＰＭ２４は、各機器２０に対して固有のものであり、機器２０より取り外されてしまうと機器２０の起動はできなくなる。また、ＴＰＭ２４を取り外して他の機器２０又はコンピュータによってＴＰＭ２４の内容を読み込むことはできない。本実施の形態において、ＴＰＭ２４は、暗号鍵Ａを生成し格納する。暗号鍵Ａは、フラッシュメモリ２５に記録されるデータを暗号化するために用いられる。フラッシュメモリ２５の一部の領域又は全体が暗号鍵Ａによって暗号化されてもよい。なお、暗号鍵Ａは、機器２０ごとに固有のＴＰＭ２４によって生成されるため、機器２０ごとに異なるものとなる。
【００１６】
フラッシュメモリ２５は、書き換え可能な不揮発性のメモリ（ＲＯＭ）である。本実施の形態では、暗号鍵Ｂを格納すると共に、プログラムパッケージ１１に含まれるプログラムファイル１１２のインストール先（保存先）の記憶手段として用いられる。暗号鍵Ｂは、図１における暗号鍵Ｂと同一の暗号鍵である。暗号鍵Ｂは、配布サーバ１０よりダウンロードされるプログラムパッケージ１１に含まれるプログラムファイル１１２の復号に用いられる。
【００１７】
ＨＤＤ２６は、いわゆるＨＤＤであり、ダウンロードされたプログラムパッケージ１１に含まれるプログラムファイル１１２を保存するための記憶手段として用いられる。すなわち、本実施の形態では、フラッシュメモリ２５及びＨＤＤ２６が、プログラムファイル１１２の保存先とされる複数種類の記憶媒体に相当する。ＨＤＤ２６は、また、機器２０においてスキャンされた画像データや、ユーザ情報、又はアドレス帳情報等を格納するための記憶領域としても用いられる。なお、ＨＤＤ２６の代わりに、又はＨＤＤ２６と併せてＮＶＲＡＭ（Non-volatile RAM）等を用いても良い。
【００１８】
操作パネル２７は、ユーザからの入力の受け付けや、ユーザに対する情報の通知等を行うめのボタン、液晶パネル等を備えたハードウェアである。スキャナ２８は、原稿より画像データを読み取るためのハードウェアである。プリンタは２８、画像データを印刷用紙に印刷するためのハードウェアである。
【００１９】
図４は、本発明の実施の形態における機器の機能構成例を示す図である。同図において、機器２０は、初期化部２１０及びインストール部２２０等を備える。同図における各部は、プログラムがＣＰＵ２３に実行させる処理によって実現される。初期化部２１０は、機器２０が工場より出荷される前に実行される初期化処理を制御する。初期化処理により、暗号鍵Ａ及びＢが機器２０に格納される。インストール部２２０は、ダウンロード部２２１、フラッシュメモリ復号部２２２、プログラム復号部２２３、保護情報解析部２２４、暗号鍵生成部２２５、及び保存部２２６等より構成され、プログラムパッケージ１１のインストール処理を制御する。
【００２０】
ダウンロード部２２１は、プログラムパッケージ１１を配布サーバ１０よりダウンロード（受信）することにより、インストール（保存）対象とされたプログラムパッケージ１１の入力を受け付ける。フラッシュメモリ復号部２２２は、ＴＰＭ２４に格納されている暗号鍵Ａによって、フラッシュメモリ２５に格納されている暗号鍵Ｂを復号する。プログラム復号部２２３は、フラッシュメモリ復号部２２２によって復号された暗号鍵Ｂによってプログラムパッケージ１１を復号する。
【００２１】
保護情報解析部２２４は、ダウンロードされたプログラムパッケージ１１のプロファイルデータファイル１１１に格納されている保護情報に基づいて、プログラムファイル１１２及びデータファイル１１３ごとに要求される処理内容を判定する。暗号鍵生成部２２５は、保護情報に基づいて暗号化が要求されるプログラムファイル１１２等を暗号化するための暗号鍵をランダムに生成する。保存部２２６は、保護情報に基づいて判定される保存先（フラッシュメモリ２５又はＨＤＤ２６）にプログラムファイル１１２等を保存する。なお、保存部２２６は、保護情報に基づいて暗号化が要求されるプログラムファイル１１２等については、暗号鍵生成部２２５によって生成される暗号鍵によって暗号化した後に保存を行う。
【００２２】
以下、機器２０の処理手順について説明する。図５は、機器の出荷前に実行される処理手順を説明するためのシーケンス図である。
【００２３】
機器２０の工場出荷前において初期化指示が入力されると、初期化部２１０は、ＴＰＭ２４に対して暗号鍵Ａの初期化命令を行う（Ｓ１０１）。ＴＰＭ２４は、ランダムに暗号鍵Ａを生成し、生成された暗号鍵ＡをＴＰＭ２４内に記録（格納）すると共に初期化部２１０に対して出力する（Ｓ１０２）。
【００２４】
続いて、暗号鍵Ｂが入力されると、初期化部２１０は、暗号鍵Ｂをフラッシュメモリ２５に保存する（Ｓ１０３）。続いて、初期化部２１０は、フラッシュメモリ２５全体、又はフラッシュメモリ２５に保存された暗号鍵Ｂを含む一部の領域を暗号鍵Ａを用いて暗号化する（Ｓ１０４）。続いて、初期化部２１０は、出荷時においてインストールされるプログラム（初期プログラム）をＨＤＤ２６に保存する（Ｓ１０５）。
【００２５】
上述した処理より明らかなように、機器２０には、工場出荷時において暗号鍵Ａ及びＢがＴＰＭ２４又はフラッシュメモリ２５に記録されている。また、暗号鍵Ｂは、工場出荷時において暗号鍵Ａによって暗号化されている。
【００２６】
続いて、出荷された機器２０がユーザのオフィス等に設置された後、プログラムパッケージ１１が機器２０にインストールされる際の処理手順について説明する。図６は、インストール部によるインストール処理の処理手順を説明するためのフローチャートである。
【００２７】
例えば、操作パネル２７等を介してプログラムパッケージ１１のインストール指示が入力されると、ダウンロード部２２１は、指定されたプログラムパッケージ１１を配布サーバ１０よりダウンロードする（Ｓ２０１）。なお、プログラムパッケージ１１は、暗号鍵Ｂによって暗号化された状態でダウンロードされる。また、ダウンロード時には、ＳＳＬ（Secure Socket Layer）等の暗号化通信を用いるとよい。
【００２８】
続いて、フラッシュメモリ復号部２２２は、ＴＰＭ２４より暗号鍵Ａを取得し（Ｓ２０２）、暗号鍵Ａによってフラッシュメモリ２５を復号する（Ｓ２０３）。これにより、フラッシュメモリ２５に格納されている暗号鍵Ｂは復号される。
【００２９】
続いて、プログラム復号部２２３は、復号されたフラッシュメモリ２５より暗号鍵Ｂを取得し（Ｓ２０４）、暗号鍵Ｂを用いてプログラムパッケージ１１を復号する（Ｓ２０５）。続いて、プログラム復号部２２３は、例えばｚｉｐ形式等によって圧縮されている又は書庫ファイル化されているプログラムパッケージ１１に格納されているプロファイルデータファイル１１１、プログラムファイル１１２、及びデータファイル１１３を一時的にＲＡＭ２２又はＨＤＤ２６に展開する（Ｓ２０６）。
【００３０】
ステップＳ２０７以降は、展開されたプログラムファイル１１２又はデータファイル１１３ごとに繰り返し実行されるループ処理である。したがって、一つのプログラムファイル１１２又はデータファイル１１３が順番に処理対象とされる。以下、ループ処理において処理対象とされているプログラムファイル１１２又はデータファイル１１３を「カレントファイル」という。
【００３１】
ステップＳ２０７において、保護情報解析部２２４は、プロファイルデータファイル１１１に格納されている保護情報に基づいて、カレントファイルに要求される処理内容を判定する（Ｓ２０７）。
【００３２】
図７は、保護情報の構成例を示す図である。同図に示されるように保護情報１１１ａは、プログラムファイル１１２又はデータファイル１１３ごとに、ファイル名、機密レベル、保存先、及び暗号強度が定義された情報である。機密レベルは、要求されるセキュリティの強度に応じて、「高」、「中」、「低」の３段階に分けられている。保存先は、フラッシュメモリ２５又はＨＤＤ２６が指定される。暗号強度には、ファイルを保存する際の暗号化の強度が指定されている。なお、フラッシュメモリ２５は、ＨＤＤ２６に比べて機器２０からの物理的な取り外しが困難であり、その分安全性が高いと考えられるため、本実施の形態ではよりセキュアな記憶媒体として扱っている。
【００３３】
したがって、ステップＳ２０７において、保護情報解析部２２４は、カレントファイルのファイル名に対応する保護情報（図７の一行分。以下「カレント保護情報」という。）を取得し、ＲＡＭ２２に記録する。
【００３４】
続いて、暗号鍵生成部２２５は、カレント保護情報において暗号化が要求されているか（暗号強度が指定されているか）否かを判定する（Ｓ２０８）。暗号化が要求されている場合（Ｓ２０８でＹｅｓ）、暗号鍵生成部２２５は、カレント保護情報に指定されている暗号強度の暗号鍵を乱数等に基づいてランダムに生成する（Ｓ２０９）。ここで生成される暗号鍵はランダムなものであるため、高い可能性で各ファイルに一意なもの（ファイルごとに異なるもの）となる。従って、一つのファイルに対する暗号鍵が仮に漏洩したとしても、他のファイルに対して影響はない。
【００３５】
続いて、保存部２２６は、暗号鍵生成部２２５によって生成された暗号鍵を用いてカレントファイルを暗号化する（Ｓ２１０）。なお、暗号化の完了後、保存部２２６は、使用した暗号鍵を例えばフラッシュメモリ２５内に、カレントファイルと関連付けて（例えば、ファイル名と関連付けて）保存しておく。そうすることにより、カレントファイルの復号時に、対応する暗号鍵を識別することができる。
【００３６】
一方、カレント保護情報において暗号化が要求されていない場合（Ｓ２０８でＮｏ）、暗号鍵生成部２２５による暗号鍵の生成等は行われない。
【００３７】
続いて、保存部２２６は、カレント保護情報に基づいてカレントファイルの保存先を判定する（Ｓ２１１）。カレント保護情報の保存先が「フラッシュメモリ」である場合、保存部２２６は、カレントファイルをフラッシュメモリ２５に保存し（Ｓ２１２）、フラッシュメモリ２５を暗号鍵Ａで暗号化する（Ｓ２１３）。一方、カレント保護情報の保存先が「ＨＤＤ」である場合、保存部２２６は、カレントファイルをＨＤＤ２６に保存する（Ｓ２１４）。
【００３８】
プログラムパッケージに含まれる全てのファイルについてステップＳ２０７以降の処理が完了すると（Ｓ２１５でＹｅｓ）、インストール処理は終了する。なお、ステップＳ２０６において一時的に展開された各ファイルは、それぞれのファイルの保存後に保存部２２６によって随時削除される。
【００３９】
このように、プログラムパッケージ１１に含まれる各ファイルは、保護情報１１１ａにおいて指定された暗号化強度によって暗号化される。また、保護情報１１１ａにおいて指定された保存先に基づいて、情報の漏洩に関する安全性が異なる記録媒体の中からファイルの保存先が選択される。すなわち、本実施の形態における機器２０では、保存先と暗号化強度（暗号化の要否も含む）との組み合わせによって、ファイルの保護強度を変化させることができる。したがって、ファイルの重要度に応じて柔軟に当該ファイルを保護することができる。
【００４０】
図６の処理によって実行される内容を概念的に示すと次のようになる。図８は、保護情報に基づくプログラムパッケージの機器へのインストールを概念的に示す図である。
【００４１】
図８では、配布サーバ１０よりダウンロードされたプログラムパッケージ１１が鍵Ｂによって復号された後、プロファイルデータファイル１１１、プログラムファイル１１２ａ、１１２ｂ、及び１１２ｃ、並びにデーファファイル１１３ａ及び１１３に展開された例が示されている。
【００４２】
各ファイルは、プロファイルデータファイル１１１に格納された保護情報に基づいて処理される。例えば、プログラムファイル１１２ａは、暗号鍵生成部２２５によって生成された鍵Ｘａによって暗号化され、フラッシュメモリ２５に保存されている。プログラムファイル１１２ｂは、暗号鍵生成部２２５によって生成された鍵Ｘｃによって暗号化され、ＨＤＤ２６に保存されている。プログラムファイル１１２ｃは、平文のままＨＤＤ２６に保存されている。データファイル１１３ａは、暗号鍵生成部２２５によって生成された鍵Ｘｂによって暗号化され、フラッシュメモリ２５に保存されている。データファイル１１３ｂは、平文のままＨＤＤ２６に保存されている。
【００４３】
なお、プロファイルデータファイル１１１は、プログラムパッケージ１１内の外部において管理されていてもよい。例えば、機器１０に予め保存されていてもよいし、ネットワークを介して接続するコンピュータに保存されていてもよい。
【００４４】
また、それぞれのファイルの保護情報を、それぞれのファイル内に記述するようにしてもよい。例えば、プログラムファイル１１２やデータファイル１１３がテキスト形式の場合は、当該ファイル内にコメントとして記述すればよい。また、ファイル名に保護情報を識別するための符号を含めるようにしてもよい。保護情報をそれぞれのファイルに付随さえることにより、プログラムパッケージ１１のパッケージ構成に対する保護情報の独立性を高めることができる。すなわち、ファイルの追加又は削除に応じてプロファイルデータファイル１１１を変更する必要はない。
【００４５】
また、保護情報の定義方法は、ファイル名ごとでなくてもよい。例えば、ファイル名又はファイル内に含まれているキーワードごとに保護情報を定義してもよい。また、他の情報によって各ファイルをグループに分類し、グループごとに保護情報が定義されてもよい。
【００４６】
ところで、プログラムの実体は配布せずに、そのスタブを配布することにより、プログラムの実体を保護するようにしてもよい。図９は、スタブを配布した場合の構成例を示す図である。図９中、図８と同一部分には同一符号を付している。
【００４７】
同図では、プログラムファイル１１２ｃが、スタブ（プログラムのロジック（実体）は実装されておらず、当該ロジックを呼び出すためのインタフェースのみを備えているプログラム）である例が示されている。プログラムの実体は、例えば、機器１０とネットワークを介して接続しているコンピュータであるプログラム実行サーバ４０にプログラムファイル１１２ｒとして保管されている。
【００４８】
このような構成において、例えば、機器２０におけるアプリケーションの一つであるアプリ１１５がプログラムファイル１１２ｃの関数又はメソッドを呼び出すと（Ｓ３０１）、プログラムファイル１１２ｃは、当該関数又はメソッドに対応する関数のＲＰＣ（Remote Procedure Call）による呼び出しをプログラムファイル１１２ｒに対して行う（S３０２）。これにより、プログラムファイル１１２ｒによってアプリ１１５より要求された処理が実行され、その結果がプログラムファイルｒ１１２ｃを介してアプリ１１５に返却される。
【００４９】
当該処理内容についてより詳細に説明する。図１０は、スタブによる処理手順を説明するためのフローチャートである。同図では、図９の構成に基づいて説明する。
【００５０】
機器１０において、プログラムファイル１１２ｃの関数がアプリ１１５より呼び出されると（Ｓ４０１）、プログラムファイル１１２ｃは、プログラム実行サーバ４０に対して接続要求を行う（Ｓ４０２）。
【００５１】
待機中（Ｓ５０１）であったプログラム実行サーバ４０は、プログラムファイル１１２ｃからの接続要求に応じ、機器１０の認証を行う（Ｓ５０２）。なお、当該認証は、例えば、ＳＳＬ（Secure Socket Layer）のクライアント認証等、公知のものを用いればよい。この場合、ステップＳ４０２では、機器１０よりプログラム実行サーバ４０に対して機器１０のクライアント証明書が転送される。
【００５２】
機器１０が認証されない場合（Ｓ５０３でＮｏ）、プログラム実行サーバ４０は、エラーとして機器１０との接続を切断する（Ｓ５０６）。機器１０が認証された場合、プログラム実行サーバ４０は、機器１０との接続を維持する。
【００５３】
続いて、プログラムファイル１１２ｃは、アプリ１５より呼び出された関数に対応する関数のＲＰＣ（Remote Procedure Call）による呼び出しをプログラムファイル１１２ｒに対して行う（Ｓ４０３）。この際、例えば、機器１０からの各リクエストを識別するためのメッセージＩＤ、プログラムファイル１１２ｒを識別するためのプログラムＩＤ、及びＲＰＣに係る関数の引数データがプログラム実行サーバ４０に対して転送される。
【００５４】
プログラム実行サーバ４０では、プログラムファイル１１２ｒが呼び出され、ＲＰＣに係る関数が実行される（Ｓ５０４）。処理が完了すると、プログラムファイル１１２ｒは、メッセージＩＤ、プログラムＩＤ、及び実行結果をプログラムファイル１１２ｃに返信する（Ｓ５０５）。
【００５５】
プログラムファイル１１２ｃは、実行結果を取得すると（Ｓ４０４）、当該実行結果を呼び出し元のアプリ１５に返却する（Ｓ４０５）。
【００５６】
上述したように、本実施の形態によれば、インストール対象とされるプログラムパッケージ１１は暗号化されて流通する。したがって、流通過程において解読される可能性を低減させることができる。特に、Ｊａｖａ（登録商標）の中間コード（ＪＡＲファイル等）は、解読が容易であり、このようなプログラムに対しては、より効果的にソースコードを保護することができる。また、機器２０は、出荷前に予め格納された暗号鍵Ｂによって、インストール対象とされるプログラムパッケージ１１を復号する。したがって、暗号鍵Ｂは流通させる必要がなく、暗号鍵Ｂが盗まれる可能性を低減させることができる。
【００５７】
また、暗号鍵Ｂは、セキュアデバイスに格納された暗号鍵Ａによって暗号化された状態でフラッシュメモリ２５に記録される。したがって、フラッシュメモリ２５が取り出されたとしても、暗号鍵Ｂが解読される可能性を低減させることができる。
【００５８】
なお、フラッシュメモリに比べてよりセキュアなデバイスをフラッシュメモリ２５の代わりに用いても良い。そうすることより、更に、暗号鍵Ｂをセキュアに管理することができる。斯かるデバイスの具体例としては、耐タンパ性を持ったメモリデバイスが挙げられる。すなわち、内部構造や取り扱っているデータ等の解析が困難であったり、外部からの不正なアクセス（分解して解析を試みる等）が有った場合に、デバイスそのものが回路的に破壊されるような、偽造、変造、改竄等を防止する手段が備えられているものである。
【００５９】
なお、フラッシュメモリ２５は、その全体を暗号化及び復号するのではなく、フラッシュメモリ２５に格納されるデータごと（暗号鍵Ｂやプログラムファイル１１２ごと）に、又は一部の領域を暗号化及び復号を行うようにしてもよい。
【００６０】
また、本実施の形態における機器２０は、プロファイルデータファイル１１１の保護情報に応じて保存先を選別する。これにより、保護レベルの高いプファイルについてはよりセキュアに管理することができ、保護レベルの低いファイルについては起動時の性能等を優先させることができる。また、保護する必要がないファイルは比較的安価なデバイスに保存することができるため、高価なデバイスの必要量を低下させることができ、機器２０全体のコストダウンを図ることができる。
【００６１】
また、プログラムパッケージ１１は、必ずしもネットワークを介してダウンロードされなくてもよい。例えば、暗号鍵Ｂによって暗号化されたプログラムパッケージ１１が記録されたＳＤカードやＣＤ−ＲＯＭ等を介してプログラムパッケージ１１のインストールを行っても良い。
【００６２】
また、本実施の形態では、保護対象をプログラムパッケージ１１として説明したが、本発明は、電子データ全般の保護に対して有効である。すなわち、プログラムパッケージ１１を任意の電子データに置き換えて本実施の形態を実現してもよい。
【００６３】
また、セキュアデバイスは、ＴＰＭに限られない。機器２０に取り付けられた状態でのみ正常に機能するもの、又は、取り外されたとしても格納している情報の読み出しが困難なものであれば他のデバイス（例えば、耐タンパ性のあるメモリデバイス）によって代替されてもよい。
【００６４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施の形態におけるシステム構成例を示す図である。
【図２】本発明の実施の形態におけるプログラムパッケージ構成例を示す図である。
【図３】本発明の実施の形態における機器のハードウェア構成例を示す図である。
【図４】本発明の実施の形態における機器の機能構成例を示す図である。
【図５】機器の出荷前に実行される処理手順を説明するためのシーケンス図である。
【図６】インストール部によるインストール処理の処理手順を説明するためのフローチャートである。
【図７】保護情報の構成例を示す図である。
【図８】保護情報に基づくプログラムパッケージの機器へのインストールを概念的に示す図である。
【図９】スタブを配布した場合の構成例を示す図である。
【図１０】スタブによる処理手順を説明するためのフローチャートである。
【符号の説明】
【００６６】
１０        配布サーバ
１１        プログラムパッケージ
１１        プロファイルデータファイル
１２        プログラムファイル
１３        データファイル
２０        機器
２１        ＲＯＭ
２２        ＲＡＭ
２３        ＣＰＵ
２４        ＴＰＭ
２５        フラッシュメモリ
２６        ＨＤＤ
２７        操作パネル
２８        スキャナ
２９        プリンタ
３０        ネットワーク
４０        プログラム実行サーバ
２１０      初期化部
２２０      インストール部
２２１      ダウンロード部
２２２      フラッシュメモリ復号部
２２３      プログラム復号部
２２４      保護情報解析部
２２５      暗号鍵生成部
２２６      保存部
Ｂ          バス
【図１】
0005151531.tif 000002
【図２】
0005151531.tif 000003
【図３】
0005151531.tif 000004
【図４】
0005151531.tif 000005
【図５】
0005151531.tif 000006
【図６】
0005151531.tif 000007
【図７】
0005151531.tif 000008
【図８】
0005151531.tif 000009
【図９】
0005151531.tif 000010
【図１０】
0005151531.tif 000011