(57)【特許請求の範囲】
【請求項１】
保護対象の情報の取得要求に応じ、前記取得要求元のプログラムファイルを特定し、該プログラムファイルのハッシュ値を生成するハッシュ値生成手段と、
前記ハッシュ値を用いて暗号化されている前記情報を前記ハッシュ値を用いて復号し、復号された該情報を前記取得要求元に返却する復号手段とを有し、
前記保護対象の情報は、共通鍵である情報保護装置。
【請求項２】
所定のプログラムファイルのハッシュ値によって暗号化された保護対象の情報の取得を要求する取得要求に応じ、前記取得要求元のプログラムファイルを特定し、特定した該プログラムファイルのハッシュ値を生成するハッシュ値生成手段と、
前記所定のプログラムファイルのハッシュ値を用いて暗号化されている前記情報を前記特定したプログラムファイルのハッシュ値を用いて復号し、復号が成功した場合に復号された該情報を前記取得要求元に返却し、復号が失敗した場合にエラーを返却する復号手段とを有し、
前記保護対象の情報は、共通鍵である情報保護装置。
【請求項３】
前記取得要求元は、前記復号手段より返却された前記共通鍵を用いて、ネットワークを介して転送する情報を暗号化する請求項１又は２記載の情報保護装置。
【請求項４】
前記取得要求元は、前記復号手段より返却された前記共通鍵を用いて、ネットワークを介して受信される情報を復号する請求項１乃至３いずれか一項記載の情報保護装置。
【請求項５】
コンピュータに、
記憶部に記憶されている保護対象の情報の取得要求に応じ、前記取得要求元に関して記憶部に記憶されているプログラムファイルを特定し、該プログラムファイルのハッシュ値を生成するハッシュ値生成手順と、
前記ハッシュ値を用いて暗号化されている前記情報を前記ハッシュ値を用いて復号し、復号された該情報を前記取得要求元に返却する復号手順とを実行させ、
前記保護対象の情報は、共通鍵である情報保護プログラム。
【請求項６】
コンピュータに、
所定のプログラムファイルのハッシュ値によって暗号化されて記憶部に記憶された保護対象の情報の取得を要求する取得要求に応じ、前記取得要求元に関して記憶部に記憶されているプログラムファイルを特定し、特定した該プログラムファイルのハッシュ値を生成するハッシュ値生成手順と、
前記所定のプログラムファイルのハッシュ値を用いて暗号化されている前記情報を前記特定したプログラムファイルのハッシュ値を用いて復号し、復号が成功した場合に復号された該情報を前記取得要求元に返却し、復号が失敗した場合にエラーを返却する復号手順とを実行させ、
前記保護対象の情報は、共通鍵である情報保護プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報保護装置及び情報保護プログラムに関する。
【背景技術】
【０００２】
近年、ＩＴ化が進み、各種情報がコンピュータプログラムによって処理され、ネットワーク上を流通している。斯かる情報の中には個人情報や企業内の営業秘密等のように、機密度が非常に高く、特定の者以外への公開が許容されない情報（以下、このような情報を「機密情報」で総称する。）もある。従来、機密情報については、暗号化技術等によって保護されてきた。
【０００３】
なお、機密情報等を暗号化するための暗号鍵（特に、共通鍵暗号方式における暗号鍵や公開鍵暗号方式における秘密鍵）自体も、外部への公開は許容されない。したがって、暗号鍵も、機密情報の一つであるといえる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、機密情報を扱うプログラム自体が改竄されたり、成りすまされたりした場合、機密情報の安全性は保証されなくなる。特に、近年では、ネットワーク等を介して容易にプログラムがダウンロード可能となっている。このようなプログラムは、機密度の高い環境で保護されているプログラムに比べると相対的に改竄等が容易であると考えられ、機密情報の取り扱いには適していない。しかし、ネットワーク上を流通するプログラムのように容易に入手可能なプログラムによって機密情報が扱えると便利な場合もある。そうすると、機密情報自体が安全に保護されうる仕組みが必要となる。
【０００５】
本発明は、上記の点に鑑みてなされたものであって、保護対象の情報を適切に保護することのできる情報保護装置及び情報保護プログラムの提供を目的とする。
【課題を解決するための手段】
【０００６】
そこで上記課題を解決するため、本発明は、保護対象の情報の取得要求に応じ、前記取得要求元のプログラムファイルを特定し、該プログラムファイルのハッシュ値を生成するハッシュ値生成手段と、前記ハッシュ値を用いて暗号化されている前記情報を前記ハッシュ値を用いて復号し、復号された該情報を前記取得要求元に返却する復号手段とを有する。
【０００７】
このような情報保護装置では、保護対象の情報を適切に保護することができる。
【発明の効果】
【０００８】
保護対象の情報を適切に保護することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態における共通鍵保護プログラムの構成例を示す図である。
【図２】共通鍵保護プログラムの作成方法を説明するための図である。
【図３】共通鍵がアプリケーションに提供される仕組みを説明するための図である。
【図４】共通鍵取得用関数の処理手順を説明するための図である。
【図５】複数のアプリケーションの共通鍵を保護する共通鍵保護プログラムの構成例を示す図である。
【図６】本発明の実施の形態における情報処理システムの構成例を示す図である。
【図７】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図８】本発明の実施の形態におけるユーザ端末のハードウェア構成例を示す図である。
【図９】ウィジェット、ウィジェットマネージャ、及びプロバイダアプリの機能構成例を示す図である。
【図１０】ウィジェットマネージャ及びスキャンウィジェットの起動時の処理手順を説明するためのシーケンス図である。
【図１１】ユーザ管理テーブルの構成例を示す図である。
【図１２】スキャンウィジェットのウィジェット情報の例を示す図である。
【図１３】スキャンウィジェット実行時の処理手順を説明するためのシーケンス図である。
【図１４】ユーザ選択画面の表示例を示す図である。
【図１５】ウィジェットマネージャからプロバイダアプリに送信されるスキャンウィジェットのウィジェット情報の構成例を示す図である。
【図１６】ウィジェット選択画面の表示例を示す図である。
【図１７】ウィジェットマネージャによる共通鍵保護プログラムの第一の利用形態を説明するためのシーケンス図である。
【図１８】ウィジェットマネージャによる共通鍵保護プログラムの第二の利用形態を説明するためのシーケンス図である。
【図１９】ウィジェットマネージャによる共通鍵保護プログラムの第三の利用形態を説明するためのシーケンス図である。
【図２０】ウィジェットマネージャによる共通鍵保護プログラムの利用形態の概要を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における共通鍵保護プログラムの構成例を示す図である。同図において、共通鍵保護プログラム９０は、例えば、ＤＬＬ（Dynamic Link Library）等の一つのプログラムモジュールであり、共通鍵９１及び共通鍵取得用関数９２等を含む。
【００１１】
共通鍵９１は、共通鍵暗号方式において用いられる暗号鍵であり、本実施の形態において、保護対象の情報に相当する。共通鍵９１は、暗号化された状態で共通鍵保護プログラム９０に格納されている。同図において、共通鍵９１は楕円によって示されているが、当該楕円を囲む、ハッチングが施された矩形は、共通鍵９１が暗号化されていることを示す。
【００１２】
共通鍵取得用関数９２は、当該関数の呼び出し元（共通鍵９１の取得要求元）が正当なプログラムであれば、共通鍵９１を復号し、復号された共通鍵９１を当該プログラム返却する。呼び出し元が不正なプログラムであれば、共通鍵９１は返却されない。なお、呼び出し元が正当であるか否かとは、呼び出し元が共通鍵９１の正当な利用者であるか否かをいう。
【００１３】
同図において、共通鍵取得用関数９２は、ハッシュ値生成部９２１及び復号部９２２等を含む。ハッシュ値生成部９２１は、呼び出し元のプログラムのファイルのハッシュ値を生成する。復号部９２２は、生成されたハッシュ値によって（ハッシュ値を用いて）暗号化されている共通鍵９１を復号する。
【００１４】
図２は、共通鍵保護プログラムの作成方法を説明するための図である。同図において、アプリケーション９５は、保護対象の共通鍵９１の正当な利用者であるアプリケーションプログラムである。すなわち、共通鍵９１の利用は、アプリケーション９５に限定される。
【００１５】
まず、アプリケーション９５のプログラムファイル（例えば、ＥＸＥファイル等の実行ファイル）のハッシュ値が所定のハッシュ関数によって生成される（Ｓ１１）。続いて、共通鍵９１が、当該ハッシュ値によって（当該ハッシュ値を用いて）暗号化される（Ｓ１２）。続いて、暗号化された共通鍵９１と、共通鍵取得用関数９２とを含むプログラムモジュール（すなわち、共通鍵保護プログラム９０）が生成される（Ｓ１３）。
【００１６】
なお、図２に示される手順は、所定のプログラムによって実行されてもよいし、ユーザの操作が途中に介在することによって実現されてもよい。
【００１７】
図３は、共通鍵がアプリケーションに提供される仕組みを説明するための図である。
【００１８】
アプリケーション９５は、共通鍵９１を利用する場合、共通鍵取得用関数９２を呼び出す（Ｓ２１）。共通鍵取得用関数９２の呼び出しは、共通鍵保護プログラム９０に対する共通鍵９１の取得要求に相当する。呼び出された共通鍵取得用関数９２のハッシュ値生成部９２１は、呼び出し元のアプリケーション９５のプログラムファイルを特定し、当該実行ファイルのハッシュ値を所定のハッシュ関数を用いて生成する（Ｓ２２）。当該所定のハッシュ関数は、図２における、所定のハッシュ関数と同じである。なお、呼び出し元のアプリケーション９５のプログラムファイルの特定は、共通鍵取得用関数９２内において能動的に行われる必要がある。具体的には、当該プログラムファイルのファイルパス名は、引数等によって外部から（呼び出し元から）与えられるのではなく、共通鍵取得用関数９２が、呼び出し元以外のソフトウェア（例えば、ＯＳ（Operating System）等）に問い合わせることによって、取得される必要がある。引数によってファイルパス名が与えられる場合、呼び出し元は、正当なアプリケーション９５のファイルパス名を引数に指定することで、容易にアプリケーション９５に成りすますことが可能だからである。ＤＬＬ内の関数であれば、呼び出し元のアプリケーション９５の実行ファイルのファイルパス名を公知の方法で取得することができる。例えば、ＧｅｔＭｏｄｕｌｅＦｉｌｅＮａｍｅという関数を呼び出すことによって、当該ファイルパス名を取得することが可能である。したがって、ハッシュ値生成部９２１は、当該ファイルパス名に基づいてプログラムファイルにアクセスすればよい。但し、共通鍵保護プログラム９０の実装形態は、ＤＬＬに限定されない。呼び出し元を特定可能な仕組みが実現可能であれば、使用するプログラム言語や実行環境等に応じて、適当な実装形態を選択すればよい。
【００１９】
続いて、共通鍵取得用関数９２の復号部９２２は、ハッシュ値生成部９２１によって生成されたハッシュ値によって暗号化された共通鍵９１を復号する（Ｓ２３）。ここで、当該ハッシュ値が、暗号化された共通鍵９１生成時のハッシュ値と同じであれば、復号は成功する。すなわち、共通鍵取得用関数９２の呼び出し元が、共通鍵９１の利用を許可されたアプリケーション９５であれば、復号は成功する。復号に成功した場合、復号部９２２は、復号された共通鍵９１を呼び出し元のアプリケーション９５に返却（出力）する（Ｓ２４）。
【００２０】
図３において説明した内容について、共通鍵取得用関数９２の処理手順に焦点を当てて説明する。図４は、共通鍵取得用関数の処理手順を説明するための図である。
【００２１】
同図には、正当なアプリケーション９５と、アプリケーション９５が改竄されたアプリケーション９５ａとのそれぞれより、共通鍵９１の取得要求が受け付けられた場合の処理手順が示されている。
【００２２】
共通鍵９１の取得要求に応じ（Ｓ３１又はＳ３１ａ）、共通鍵取得用関数９２のハッシュ値生成部９２１は、呼び出し元（取得要求元）のプログラムファイルを特定する（Ｓ３２）。続いて、ハッシュ値生成部９２１は、特定されたプログラムファイルのハッシュ値を生成する（Ｓ３３）。続いて、復号部９２２は、生成されたハッシュ値を用いて、暗号化された共通鍵９１を復号する（Ｓ３４）。ここで、アプリケーション９５のプログラムファイルのハッシュ値を用いた復号処理は成功する。一方、アプリケーション９５ａのプログラムファイルのハッシュ値は、アプリケーション９５のプログラムファイルのハッシュ値とは異なる。したがって、アプリケーション９５ａのプログラムファイルのハッシュ値を用いた復号処理は失敗する。
【００２３】
復号に成功した場合（Ｓ３５でＹｅｓ）、復号部９２２は復号された共通鍵９１を呼び出し元に返却する（Ｓ３６）。したがって、アプリケーション９５は、共通鍵９１の取得に成功する（Ｓ３７）。
【００２４】
一方、復号に失敗した場合（Ｓ３５でＮｏ）、復号部９２２はエラーを呼び出し元に返却する（Ｓ３６ａ）。したがって、アプリケーション９５ａは、共通鍵９１の取得に失敗する（Ｓ３７ａ）。
【００２５】
このように、本実施の形態の共通鍵保護プログラム９０によれば、共通鍵９１は、正当なアプリケーション９５のハッシュ値によって暗号化されて管理される。共通鍵９１の取得が要求された際は、取得要求元のプログラムファイルのハッシュ値に基づいて復号が試みられる。復号に成功した場合は、復号された共通鍵９１が提供され、復号に失敗した場合は、共通鍵９１は提供されない。
【００２６】
基本的に、プログラムファイルが異なる場合、ハッシュ値は異なる。したがって、共通鍵９１の利用者を正当なアプリケーション９５に限定することができる。すなわち、改竄されたアプリケーション９５ａによって、共通鍵９１が利用されることを防止することができる。
【００２７】
なお、アプリケーション９５は、例えば、自らの身元を証明するための道具として共通鍵９１を利用することができる。具体的には、アプリケーション９５と情報をやりとりし、共通鍵９１を共有する通信相手との通信時において、アプリケーション９５は、共通鍵９１を用いて情報を暗号化して送信する。通信相手は、受信された情報が共通鍵９１によって復号することができれば、当該情報の送信元の正当性を確認することができる。当該共通鍵９１を取得できるのは、正当なアプリケーション９５のみだからである。
【００２８】
共通鍵９１がこのように利用される場合、共通鍵保護プログラム９０によって、アプリケーション９５の成りすましの防止、並びに通信対象の情報の盗聴及び改竄等を適切に防止することができる。
【００２９】
なお、一つの共通鍵保護プログラム９０は、複数のアプリケーションの共通鍵９１を保護（管理）してもよい。すなわち、共通鍵保護プログラム９０とアプリケーションとの関係は１対多であってもよい。
【００３０】
図５は、複数のアプリケーションの共通鍵を保護する共通鍵保護プログラムの構成例を示す図である。同図において、共通鍵保護プログラム９０は、３つの暗号化された共通鍵９１を含む。各共通鍵９１を囲む矩形のハッチングの違いは、暗号化に利用されたハッシュ値の違いを示す。すなわち、３つのアプリケーション９５のそれぞれのプログラムファイルのハッシュ値は異なるからである。
【００３１】
一つの共通鍵保護プログラム９０に複数の共通鍵９１が含まれる場合、共通鍵取得用関数９２は、呼び出し元のアプリケーション９５のプログラムファイルのハッシュ値によって、各共通鍵９１の復号を試み、復号に成功した共通鍵９１を返却すればよい。全ての共通鍵９１の復号に失敗した場合、共通鍵取得用関数９２は、エラーを返却すればよい。
【００３２】
又は、各アプリケーション９５のプログラムファイルのファイル名等、共通鍵取得用関数９２が取得可能なアプリケーション９５の識別情報と、暗号化された共通鍵９１とが対応付けられて共通鍵保護プログラム９０内に格納されていてもよい。この場合、共通鍵取得用関数９２は、呼び出し元の識別情報を取得し、当該取得された識別情報に対応する暗号化された共通鍵９１について復号を行えばよい。なお、複数の共通鍵は、実現したいことに応じて、同じものであってもよいし、異なるものであってもよい。
【００３３】
続いて、共通鍵保護プログラム９０を、具体的な情報処理システムに組み込んだ例について説明する。
【００３４】
図６は、本発明の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システム１において、一台以上の画像形成装置１０と、一台以上のユーザ端末２０とは、ＬＡＮ（Local Area Network）等のネットワーク３０（有線又は無線の別は問わない。）を介して接続されている。また、ユーザ端末２０と、画像処理サーバ４０、ログ収集サーバ５０、及びダウンロードサーバ６０等は、インターネット等の広域的なネットワーク７０を介して接続されている。
【００３５】
画像形成装置１０は、印刷、スキャン、コピー、及びＦＡＸ送受信等の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を実現する装置（プリンタ、スキャナ、コピー機、ファクシミリ等）を画像形成装置１０として用いてもよい。本実施の形態においては、スキャン機能を実現するためのハードウェアを備えていればよい。
【００３６】
ユーザ端末２０は、ユーザが利用する個人端末であり、ソフトウェアプログラムのインストール及び実行が可能であり、通信機能を有するものであれば、特定の装置に限定されない。ユーザ端末２０の具体例として、デスクトップ型のＰＣ（Personal Computer）、ノートＰＣ、ＰＤＡ（Personal Digital Assistance）、又は携帯電話等が挙げられる。
【００３７】
画像処理サーバ４０は、画像データに対して所定の変換処理を実行するＷｅｂサービスをネットワーク７０を介して提供するコンピュータである。
【００３８】
ログ収集サーバ５０は、後述されるウィジェットマネージャ２２による処理のログを収集し、蓄積するコンピュータである。
【００３９】
ダウンロードサーバ６０は、後述されるウィジェット２１やウィジェットマネージャ２２を、ネットワーク７０を介して配布するコンピュータである。すなわち、ダウンロードサーバ６０は、ウィジェット２１及びウィジェットマネージャ２２のダウンロードサイトを提供する。
【００４０】
ユーザ端末２０のソフトウェア構成について説明する。図６において、ユーザ端末２０は、スキャンウィジェット２１ａ、印刷ウィジェット２１ｂ、ウィジェットマネージャ２２、共通鍵保護プログラム９０ａ、及びＯＳ２５等を有する。
【００４１】
スキャンウィジェット２１ａ及び印刷ウィジェット２１ｂは、本実施の形態において、「ウィジェット２１」として総称されるアプリケーションプログラムである。近年では、ウィジェット（Ｗｉｄｇｅｔ）又はガジェット（Ｇａｄｇｅｔ）とよばれる手軽なアプリケーションが流通している。本実施の形態では、手軽にインストールして利用可能なアプリケーションという程度の意味においてこれらのアプリケーションをウィジェット２１と呼ぶ（すなわち、技術的な意義において限定する趣旨ではない）。但し、本実施の形態において、各ウィジェット２１は、ネットワーク上又はユーザ端末２０において提供されているサービスを利用して、所定の機能（例えば、ワークフロー等の一連の処理フロー）を実現するという点において共通する。
【００４２】
スキャンウィジェット２１ａは、画像形成装置１０にスキャンを実行させ、スキャンされた画像データを画像処理サーバ４０に転送するウィジェット２１である。印刷ウィジェット２１ｂは、ユーザ端末２０内に保存されている文書データの印刷を画像形成装置１０に実行させるウィジェット２１である。
【００４３】
ウィジェットマネージャ２２は、ウィジェット２１のフレームワークとして位置付けられ、ウィジェット２１と画像形成装置１０との間の通信の仲介等を行う。各ウィジェット２１は、ウィジェットマネージャ２２によって規定されるインタフェース及び処理手順を備える必要がある。換言すれば、ウィジェットマネージャ２２と協調して動作するアプリケーションが、本実施の形態におけるウィジェット２１である。
【００４４】
なお、本実施の形態において、各ウィジェット２１及びウィジェットマネージャ２２は、ダウンロードサーバ６０よりダウンロードされてユーザ端末２０にインストールされる。
【００４５】
共通鍵保護プログラム９０ａは、ウィジェットマネージャ２２が利用する共通鍵９１ａを保護する。すなわち、共通鍵保護プログラム９０ａには、ウィジェットマネージャ２２が利用する共通鍵９１ａが、ウィジェットマネージャ２２のプログラムファイルのハッシュ値によって暗号化された状態で格納されている。例えば、共通鍵保護プログラム９０ａは、ウィジェットマネージャ２２と共に、ダウンロードサーバ６０よりダウンロード（配布）される。なお、共通鍵保護プログラム９０ａの機能構成は、図１等において説明した共通鍵保護プログラム９０と同じである。但し、保護対象となる共通鍵の実体、及び共通鍵の暗号化に用いられているハッシュ値は、共通鍵保護プログラム９０と異なる。したがって、参照番号の末尾に「ａ」が付加されている。
【００４６】
ＯＳ２５は、いわゆるＯＳ（Operating System）である。ユーザ端末２０上の各ソフトウェアは、ＯＳ２５上においてプロセス又はスレッドとして動作する。
【００４７】
画像形成装置１０のソフトウェア構成について説明する。図６において、  画像形成装置１０は、アプリケーション１２０、及びアプリ制御部１２３０等のソフトウェアを有する。アプリケーション１２０は、ユーザから要求されたジョブを実行するプログラムである。同図では、スキャンアプリ１２１、印刷アプリ１２２、及びプロバイダアプリ１２３等がアプリケーション１２０として例示されている。スキャンアプリ１２１は、スキャンジョブを実行する。印刷アプリ１２２は印刷ジョブを実行する。プロバイダアプリ１２３は、画像形成装置１０をウィジェット（厳密にはウィジェットマネージャ２２）と連携させるための処理を実行する。
【００４８】
アプリ制御部１２３０は、各アプリケーション１２０間の調停等を行う。例えば、アプリ制御部１２３０は、ユーザによる操作指示に応じ、アクティブなアプリケーション１２０を切り替える。アクティブなアプリケーション１２０とは、画像形成装置１０の操作パネル１５に操作画面を表示させている（すなわち、操作パネルを介して操作可能な状態にある）アプリケーション１２０をいう。
【００４９】
続いて、各装置のハードウェア構成について説明する。図７は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図７において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、操作パネル１５、ネットワークインタフェース１６、及びＳＤカードスロット１７等のハードウェアを有する。
【００５０】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、及びＨＤＤ１１４等を有する。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムに基づいて、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等が記録される。
【００５１】
スキャナ１２は、原稿より画像データを読み取るためのハードウェアである。プリンタ１３は、印刷データを印刷用紙に印刷するためのハードウェアである。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル１５は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、液晶パネル等の表示手段を備えたハードウェアである。ネットワークインタフェース１６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット１７は、ＳＤカード８０に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１１３に記録されたプログラムだけでなく、ＳＤカード８０に記録されたプログラムもＲＡＭ１１２にロードされ、実行されうる。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット１７は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【００５２】
図８は、本発明の実施の形態におけるユーザ端末のハードウェア構成例を示す図である。図８のユーザ端末２０は、それぞれバスＢで相互に接続されているドライブ装置２００と、補助記憶装置２０２と、メモリ装置２０３と、ＣＰＵ２０４と、インタフェース装置２０５と、表示装置２０６と、入力装置２０７とを有する。
【００５３】
ユーザ端末２０での処理を実現するプログラムは、ＣＤ−ＲＯＭ又はメモリカード等の記録媒体２０１によって提供される。プログラムを記録した記録媒体２０１がドライブ装置２００にセットされると、プログラムが記録媒体２０１からドライブ装置２００を介して補助記憶装置２０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体２０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置２０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００５４】
メモリ装置２０３は、プログラムの起動指示があった場合に、補助記憶装置２０２からプログラムを読み出して格納する。ＣＰＵ２０４は、メモリ装置２０３に格納されたプログラムに従ってユーザ端末２０に係る機能を実現する。インタフェース装置２０５は、ネットワーク接続用のインタフェースである。表示装置２０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置２０７はキーボード、マウス、又はボタン等で構成され、様々な操作指示を入力させるために用いられる。
【００５５】
続いて、ウィジェット２１、ウィジェットマネージャ２２、及びプロバイダアプリ１２３について更に詳しく説明する。図９は、ウィジェット、ウィジェットマネージャ、及びプロバイダアプリの機能構成例を示す図である。
【００５６】
同図に示されるように、各ウィジェット２１は、ウィジェットＵＩ部２１１、ウィジェット情報送信部２１２、連携部２１３、ロジック部２１４、及び属性情報管理ファイル２１５等を有する。
【００５７】
ウィジェットＵＩ部２１１は、ウィジェット２１関する各種の表示画面をユーザ端末２０の表示装置２０６に表示させる。ウィジェット情報送信部２１２は、ウィジェット２１が起動されたときに、ウィジェット情報の登録要求をウィジェットマネージャ２２に送信する。ウィジェット情報にはウィジェット２１の実行に必要な情報が含まれる。連携部２１３は、ウィジェットマネージャ２２との連携のためのコミュニケーション（情報のやりとり等）を制御する。属性情報管理ファイル２１５は、ウィジェット２１対する設定情報等を格納するファイルである。ロジック部２１４は、各ウィジェット２１に固有の機能が実装される部分である。例えば、スキャンウィジェット２１ａのロジック部２１５は、スキャンされた画像データについて、画像処理サーバ４０への転送処理等を実行する。
【００５８】
ウィジェットマネージャ２２は、ウィジェット情報登録部２２１、広告部２２２、ウィジェット情報提供部２２３、仲介部２２４、ログ転送部２２５、アップデート部２２６、及びウィジェット情報管理テーブル２２７等を有する。
【００５９】
ウィジェット情報登録部２２１は、ウィジェット２１より送信されるウィジェット情報の登録要求を受信し、当該ウィジェット情報をウィジェット情報管理テーブル２２７に保存する。ウィジェット情報管理テーブル２２７には、ユーザ端末２０において起動されている各ウィジェット２１のウィジェット情報が登録されるテーブルであり、ユーザ端末２０の補助記憶装置２０２に記録される。
【００６０】
広告部２２２は、ウィジェット情報登録部２２１によって受信されたウィジェット情報に含まれるユーザＩＤ等をネットワーク上に広告（ブロードキャスト又はマルチキャスト等）する。広告は、ユーザ単位（ユーザＩＤ単位）で発行される。したがって、広告部２２２による広告は、何らかのウィジェット２１を利用可能になったユーザが新たに発生したことを画像形成装置１０に通知するための情報である。但し、ウィジェット情報単位で広告が行われてもよい。この場合、同一ユーザについて重複して広告が発行されることになるが、重複の排除は画像形成装置１０側で行えばよい。
【００６１】
ウィジェット情報提供部２２３は、画像形成装置１０からの要求に応じ、ウィジェット情報管理テーブル２２７に登録されているウィジェット情報を画像形成装置１０に提供（送信）する。仲介部２２４は、ウィジェット２１とプロバイダアプリ１２３とのコミュニケーションを仲介又は中継する。ログ転送部２２５は、ウィジェットマネージャ２２が実行する処理のログを、所定のタイミングでログ収集サーバ５０に転送する。アップデート部２２６は、ウィジェットマネージャ２２のバージョンアップ等に伴い、自動的にウィジェットマネージャ２２を更新するための処理を実行する。
【００６２】
プロバイダアプリ１２３は、ユーザ検知部１２３１、ＵＩ制御部１２３２、ウィジェット情報取得部１２３３、ウィジェット連携部１２３４、機能制御部１２３５、及びユーザ管理テーブル１２３６等を有する。
【００６３】
ユーザ検知部１２３１は、ウィジェットマネージャ２２より発行される広告に基づいて、ウィジェット２１を利用可能なユーザの存在を検知し、広告に含まれているユーザＩＤ等をユーザ管理テーブル１２３６に登録する。ユーザ管理テーブル１２３６は、利用可能なウィジェット２１がネットワーク上に存在するユーザの一覧を管理するテーブルである。
【００６４】
ＵＩ制御部１２３２は、ユーザよりウィジェット２１の操作指示等の入力を受け付ける。すなわち、ウィジェット２１は、ユーザ端末２０に配置されているが、画像形成装置１０の操作パネル１５からも操作されうる。ウィジェット情報取得部１２３３は、ユーザ管理テーブル１２３６に登録されているユーザの中から選択されたユーザに属するウィジェット２１のウィジェット情報をウィジェットマネージャ２２より取得する。ウィジェット連携部１２３４は、ウィジェットマネージャ２２とのコミュニケーションを制御する。機能制御部１２３５は、ウィジェット２１から要求された機能の実行を制御する。
【００６５】
以下、情報処理システム１の処理手順について説明する。図１０は、ウィジェットマネージャ及びスキャンウィジェットの起動時の処理手順を説明するためのシーケンス図である。
【００６６】
ユーザの指示に応じ、又は自動的にウィジェットマネージャ２２が起動されると、ウィジェットマネージャ２２の広告部２２２は、ユーザＩＤとウィジェット情報取得用ＵＲＬ（Uniform Resource Locator）とを含むユーザ情報の広告を、ネットワーク３０上に発行する（Ｓ１０１）。なお、ユーザＩＤ及びウィジェット情報取得用ＵＲＬは、ウィジェットマネージャ２２に対する設定情報として、例えば、補助記憶装置２０２に予め記録されている。ウィジェット情報取得用ＵＲＬとは、ウィジェットマネージャ２２ごとに一意なＵＲＬである。したがって、各画像形成装置１０のプロバイダアプリ１２３は、ウィジェット情報取得用ＵＲＬに基づいて、各ウィジェットマネージャ２２を識別することができる。
【００６７】
続いて、プロバイダアプリ１２３のユーザ検知部１２３１は、広告を受信すると、当該広告に含まれているユーザＩＤ及びウィジェット情報取得用ＵＲＬをユーザ管理テーブル１２３６に登録する（Ｓ１０２）。
【００６８】
図１１は、ユーザ管理テーブルの構成例を示す図である。同図に示されるように、ユーザ管理テーブル１２３６は、ユーザＩＤとウィジェット情報取得用ＵＲＬとの組（ペア）を管理する。同図では、ユーザＡ及びユーザＢについてレコードが登録されている例が示されている。なお、ユーザ管理テーブル１２３６は、例えば、ＨＤＤ１１４に記憶されている。
【００６９】
続いて、ユーザ端末２０において、スキャンウィジェット２１ａがユーザによる指示入力等に応じて起動される。スキャンウィジェット２１ａの起動に応じ、スキャンウィジェット２１ａのウィジェット情報送信部２１２は、自らの属性情報管理ファイル２１５よりウィジェット情報を読み込み、当該ウィジェット情報の登録要求をウィジェットマネージャに送信する（Ｓ１０３）。なお、スキャンウィジェット２１ａのウィジェット情報は、画像形成装置１０に対する画像データの読み取り要求（スキャン要求）に相当する。
【００７０】
図１２は、スキャンウィジェットのウィジェット情報の例を示す図である。同図において、スキャンウィジェット２１ａのウィジェット情報は、ウィジェットＩＤ、ユーザＩＤ、連携機能識別子、ウィジェットアドレス、表示名、及びスキャン設定情報等を含む。
【００７１】
ウィジェットＩＤは、各ウィジェット２１を一意に識別する識別情報である。ユーザＩＤは、スキャンウィジェット２１ａの所有者であるユーザの識別情報である。連携機能識別子は、スキャンウィジェット２１ａと連携するために画像形成装置１０が有している必要のある機能（換言すれば、スキャンウィジェット２１ａが利用する画像形成装置１０の機能）を識別するための情報である。連携機能識別子の一例として「ｐｒｉｎｔ」、「ｓｃａｎ」等が挙げられる。「ｐｒｉｎｔ」は、印刷機能を示す。「ｓｃａｎ」は、スキャン機能を示す。スキャンウィジェット２１ａは、画像形成装置１０のスキャン機能を利用する。したがって、図１２の例では、「ｓｃａｎ」が連携機能識別子とされている。ウィジェットアドレスは、ネットワーク通信において各ウィジェットを一意に識別するための識別情報（例えば、ＵＲＬ等）である。表示名は、スキャンウィジェット２１ａの名前の表示用の文字列である。
【００７２】
スキャン設定情報は、解像度、カラーモード（カラー又はモノクロの別）等のスキャン機能に関する設定情報である。
【００７３】
スキャンウィジェット２１ａのウィジェット情報送信部２１２より送信されたウィジェット情報は、ウィジェットマネージャ２２のウィジェット情報登録部２２１によって受信される。ウィジェット情報登録部２２１は、受信されたウィジェット情報をウィジェット情報管理テーブル２２７に登録する（Ｓ１０４）。
【００７４】
スキャンウィジェット２１ａは、ウィジェット情報を送信した後、画像形成装置１０において画像データがスキャンされたことを確認するためのポーリングを行い、画像データの転送（返信）を待機する。具体的には、スキャンウィジェット２１ａの連携部２１３は、スキャンされた画像データ（スキャン画像）の取得要求をウィジェットマネージャ２２の仲介部２２４に送信する（Ｓ１０５）。仲介部２２４は、当該取得要求に対する応答を行う（Ｓ１０６）。この段階では、画像データはスキャンされていないため、スキャン画像は無いことを示す応答が返信される。その後もスキャン画像の取得要求（Ｓ１０５）は一定間隔ごとに繰り返し行われる。スキャン画像の取得要求には、ウィジェットＩＤが含められてもよい。
【００７５】
ユーザ端末２０においてスキャンウィジェット２１ａを起動させた後、ユーザは、スキャンウィジェット２１ａを利用するために画像形成装置１０の設置場所へ移動する。複数の画像形成装置１０がネットワーク３０に接続されている場合、同一の広告が各画像形成装置１０のユーザ検知部１２３１によって受信され、それぞれの画像形成装置１０のユーザ管理テーブル１２３６にユーザＩＤ及びウィジェット情報取得用ＵＲＬが登録される。したがって、ユーザは、複数の画像形成装置１０のいずれからもスキャンウィジェット２１ａを利用することができる。
【００７６】
続いて、画像形成装置１０に対するユーザによる操作に応じて実行される処理について説明する。図１３は、スキャンウィジェット実行時の処理手順を説明するためのシーケンス図である。
【００７７】
画像形成装置１０の操作パネル１５を介してプロバイダアプリ１２３の利用指示がユーザによって入力されると、アプリ制御部１２０の制御によって、プロバイダアプリ１２３はアクティブ状態に遷移する（Ｓ２０１）。アクティブ状態への遷移に応じ、プロバイダアプリ１２３のＵＩ制御部１２３２は、ユーザ管理テーブル１２３６に登録されている情報に基づいてユーザ選択画面を操作パネル１５に表示させる（Ｓ２０２）。
【００７８】
図１４は、ユーザ選択画面の表示例を示す図である。同図に示されるユーザ選択画面６１０には、ユーザＩＤごとにボタンが表示されている。同図では、ユーザＡに対応するボタン６１１とユーザＢに対応するボタン６１２とが表示されている。
【００７９】
続いて、ユーザは、ユーザ選択画面６１０において自らのユーザＩＤに対応するボタンを押下する（Ｓ２０３）。ボタンの押下に応じ、ウィジェット情報取得部１２３３は、選択されたボタンに対応するユーザＩＤに関連付けられているウィジェット情報取得用ＵＲＬをユーザ管理テーブル１２３６より取得する。なお、ユーザＩＤに対応するボタンの押下に応じ、ユーザの認証を行い、ユーザが認証された場合にのみ以降の処理が実行されるようにしてもよい。
【００８０】
続いて、ウィジェット情報取得部１２３３は、選択されたユーザＩＤに対応するウィジェット情報取得用ＵＲＬ宛に、ウィジェット情報の取得要求を送信する（Ｓ２０４）。ウィジェット情報の取得要求は、ウィジェットマネージャ２２のウィジェット情報提供部２２３によって受信される。ウィジェット情報提供部２２３は、ウィジェット情報管理テーブル２２７に登録されているウィジェット情報の一覧を取得し、当該一覧をプロバイダアプリ１２３に送信する（Ｓ２０５）。ウィジェット情報の一覧の送信に際し、ウィジェット情報提供部２２３は、プロバイダアプリ１２３と各ウィジェット２１との通信を中継するためのＵＲＬ（以下、「ウィジェット中継用ＵＲＬ」という。）をウィジェット２１ごと（ウィジェット情報ごと）に一意に生成する。ウィジェット情報提供部２２３は、ウィジェット２１ごとに生成されたウィジェット中継用ＵＲＬを、各ウィジェット２１に対応するウィジェット情報に付加し、ウィジェット中継用ＵＲＬが付加されたウィジェット情報の一覧をプロバイダアプリ１２３に送信する。したがって、ステップＳ２０５において送信されるウィジェット情報は、例えば、図１５に示されるような構成を有する。
【００８１】
図１５は、ウィジェットマネージャからプロバイダアプリに送信されるスキャンウィジェットのウィジェット情報の構成例を示す図である。
【００８２】
同図に示されるウィジェット情報は、図１２のウィジェット情報に対してウィジェット中継用ＵＲＬが付加されたものである。ステップＳ２０５では、同図に示されるようなウィジェット情報の一覧が送信される。ここでは、ウィジェット情報が一つしか含まれないものもウィジェット情報の一覧という。
【００８３】
続いて、プロバイダアプリ１２３のＵＩ制御部１２３２は、受信されたウィジェット情報の一覧をＲＡＭ１１２に記録しておき、当該ウィジェット情報の一覧に基づいて、ユーザに利用可能なウィジェット２１の一覧を含む画面（ウィジェット選択画面）を表示させる（Ｓ２０６）。
【００８４】
図１６は、ウィジェット選択画面の表示例を示す図である。同図においてウィジェット選択画面６２０には、スキャンウィジェット２１ａに対応するボタン６２１が表示されている。なお、ユーザ端末２０においてスキャンウィジェット２１ａ以外のウィジェット２１（例えば、印刷ウィジェット２１ｂ）も起動されている場合、当該ウィジェット２１に関するウィジェット情報もプロバイダアプリ１２３に転送される。したがって、当該ウィジェット２１に対応するボタンもウィジェット選択画面６２０に表示される。
【００８５】
画像形成装置１０に原稿がセットされ、ウィジェット選択画面６２０において、スキャンウィジェット２１ａに対応するボタン６２１が選択されると（Ｓ２０７）、プロバイダアプリ１２３のウィジェット連携部１２３４は、押下されたボタンに対応するウィジェット情報（以下、「カレントウィジェット情報」という。）に含まれている連携機能識別子（「ｓｃａｎ」）に基づいて、スキャン（画像データの読み取り）を実行すべきことを認識する。そこで、ウィジェット連携部１２３４は、スキャンの実行を機能制御部１２３５に要求する。
【００８６】
機能制御部１２３５は、カレントウィジェット情報に含まれているスキャン設定情報に基づいて、原稿からの画像データの読み取りを制御する（Ｓ２０８）。より詳しくは、機能制御部１２３５は、画像形成装置１０にセットされた原稿に対するスキャンをスキャナ１２に実行させ、その結果得られる画像データ（スキャン画像）をウィジェット連携部１２３４に出力する。スキャン画像は、例えば、ＪＰＥＧ（Joint Photographic Experts Group）、ＴＩＦＦ（Tagged Image File Format）、又はＰＤＦ（Portable Document Format）等の形式で生成される。
【００８７】
続いて、ウィジェット連携部１２３４は、スキャン画像をカレントウィジェット情報に含まれているウィジェット中継用ＵＲＬ宛に送信する（Ｓ２０９）。ウィジェット中継用ＵＲＬ宛に送信されたスキャン画像は、ウィジェットマネージャ２２の仲介部２２４によって受信される。続いて、仲介部２２４は、スキャン画像の受信後に受信される、当該ウィジェット中継用ＵＲＬに対応するスキャンウィジェット２１ａからのスキャン画像の取得要求（Ｓ１１５）に応じ、当該スキャン画像を当該スキャンウィジェット２１ａの連携部２１３に転送する（Ｓ１２１）。
【００８８】
連携部２１３は、スキャン画像を受信すると、当該スキャン画像をロジック部２１４に入力する。ロジック部２１４は、当該スキャン画像を画像処理サーバ４０に転送する（Ｓ１２２）。画像処理サーバ４０は、転送された画像データに対して所定の処理を実行する。
【００８９】
以上のような処理手順において、例えば、画像処理サーバ４０に対して、スキャン画像の送信元の正当性を示すために共通鍵保護プログラム９０ａを利用することができる。
【００９０】
図１７は、ウィジェットマネージャによる共通鍵保護プログラムの第一の利用形態を説明するためのシーケンス図である。図１７には、図１３の一部の手順が抜粋されている。図１７中、図１３と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。
【００９１】
ウィジェットマネージャ２２の仲介部２２４は、プロバイダアプリ１２３によってウィジェット中継用ＵＲＬ宛に送信されたスキャン画像を受信すると（Ｓ２０９）、共通鍵保護プログラム９０ａの共通鍵取得用関数９２ａを呼び出す（Ｓ２１１）。共通鍵取得用関数９２ａのハッシュ値生成部９２１ａは、呼び出し元のウィジェットマネージャ２２のプログラムファイルのハッシュ値を生成する（Ｓ２１２）。続いて、復号部９２２ａは、生成されたハッシュ値によって、暗号化されている共通鍵９１ａを復号する（Ｓ２１３）。復号に成功した場合、復号部９２２ａは、復号された共通鍵９１ａをウィジェットマネージャ２２に返却する（Ｓ２１４）。
【００９２】
続いて、ウィジェットマネージャ２２の仲介部２２４は、スキャン画像を共通鍵９１ａによって暗号化する（Ｓ２１５）。その後、仲介部２２４は、スキャンウィジェット２１ａからのスキャン画像の取得要求（Ｓ１１５）に応じ、暗号化されているスキャン画像を当該スキャンウィジェット２１ａの連携部２１３に転送する（Ｓ１２１）。
【００９３】
したがって、スキャンウィジェット２１ａは、画像処理サーバ４０に対して暗号化されているスキャン画像を転送することになる。画像処理サーバ４０は、ウィジェットマネージャ２２に対する共通鍵９１ａを用いてスキャン画像を復号する。すなわち、画像処理サーバ４０には、予めウィジェットマネージャ２２の共通鍵９１ａが保存されており、当該共通鍵９１ａは安全に管理されている。復号に成功することにより、画像処理サーバ４０は、当該スキャン画像の出所の正当性及び改竄されていないことを確認することができる。すなわち、ウィジェットマネージャ２２の成りすましが防止される。また、ネットワーク上の流通過程におけるスキャン画像の盗聴を適切に防止することができる。
【００９４】
また、図１３においては、説明を省略したが、スキャンマネージャ２２は、所定の処理の実行時において、ログをログ収集サーバ５０に転送する。この場合においても、ログの出所の正当性を示すために、共通鍵保護プログラム９０ａを利用することができる。
【００９５】
図１８は、ウィジェットマネージャによる共通鍵保護プログラムの第二の利用形態を説明するためのシーケンス図である。
【００９６】
ウィジェットマネージャ２２のログ転送部２２５は、ログの転送時において、共通鍵保護プログラム９０ａの共通鍵取得用関数９２ａを呼び出す（Ｓ３０１）。共通鍵取得用関数９２ａのハッシュ値生成部９２１ａは、呼び出し元のウィジェットマネージャ２２のプログラムファイルのハッシュ値を生成する（Ｓ３０２）。続いて、復号部９２２ａは、生成されたハッシュ値によって、暗号化されている共通鍵９１ａを復号する（Ｓ３０３）。復号に成功した場合、復号部９２２ａは、復号された共通鍵９１ａをウィジェットマネージャ２２に返却する（Ｓ３０４）。
【００９７】
続いて、ウィジェットマネージャ２２のログ転送部２２５は、ログを共通鍵９１ａによって暗号化する（Ｓ３０５）。続いて、ログ転送部２２５は、暗号化されたログをログ収集サーバ５０に転送する（Ｓ３０６）。
【００９８】
ログ収集サーバ５０は、ウィジェットマネージャ２２に対する共通鍵９１ａを用いてログを復号する。すなわち、ログ収集サーバ５０には、予めウィジェットマネージャ２２の共通鍵９１ａが保存されており、当該共通鍵９１ａは安全に管理されている。復号に成功することにより、ログ収集サーバ５０は、当該ログの出所の正当性及び改竄されていないことを確認することができる。すなわち、ウィジェットマネージャ２２の成りすましが防止される。また、ネットワーク上の流通過程におけるログの盗聴を適切に防止することができる。
【００９９】
なお、図１７及び図１８のケースにおいて、画像処理サーバ４０又はログ収集サーバ５０が、共通鍵９１ａを有しているのでなく、ウィジェットマネージャ２２の提供者が作成した復号ツールを有していても良い。当該復号ツールは、ウィジェットマネージャ２２の共通鍵９１ａによって暗号化されたデータを復号するプログラムである。このようなツールを提供することにより、共通鍵９１ａの漏洩の可能性を低減させることができる。
【０１００】
または、ウィジェットマネージャ２２の提供者が運営する復号サーバが、ウィジェットマネージャ２２の共通鍵９１ａによって暗号化されたデータの復号を行ってもよい。この場合、画像処理サーバ４０又はログ収集サーバ５０は、暗号化されたスキャン画像又はログを復号サーバに送信する。復号サーバは、予め有している、ウィジェットマネージャ２２の共通鍵９１ａ又は上記復号ツールによって、スキャン画像又はログを復号し、返信する。この場合、スキャン画像又はログを復号サーバと、復号サーバとの間は、セキュアな通信プロトコルが用いられるのが望ましい。
【０１０１】
続いて、ウィジェットマネージャ２２がバージョンアップ等によって更新される場合において、共通鍵保護プログラム９０ａが利用される形態について説明する。
【０１０２】
図１９は、ウィジェットマネージャによる共通鍵保護プログラムの第三の利用形態を説明するためのシーケンス図である。
【０１０３】
ウィジェットマネージャ２２のアップデート部２２６は、例えば、定期的にダウンロードサーバ６０にポーリングを行い、更新ファイルの有無を確認する（Ｓ４０１）。更新ファイルは、更新されたウィジェットマネージャ２２を含むファイルである。例えば、ウィジェットマネージャ２２が複数のファイルから構成される場合において、一部のファイルが更新された場合は、その一部（すなわち、差分）のみが更新ファイルに含まれていてもよい。また、更新ファイルは、更新後のウィジェットマネージャ２２に対応する共通鍵保護プログラム９０ａを含む。更新によってウィジェットマネージャ２２のハッシュ値は異なるものとなるところ、共通鍵９１ａは、更新後のウィジェットマネージャ２２のハッシュ値によって暗号化されて共通鍵保護プログラム９０ａに格納されている必要があるからである。なお、更新ファイルは、更新前のウィジェットマネージャ２２の共通鍵９１ａによって暗号化されている。
【０１０４】
更新ファイルが存在する場合、ダウンロードサーバ６０より更新ファイルが返信される（Ｓ４０２）。
【０１０５】
更新ファイルが返信されると、アップデート部２２６は、共通鍵保護プログラム９０ａの共通鍵取得用関数９２ａを呼び出す（Ｓ４０３）。共通鍵取得用関数９２ａのハッシュ値生成部９２１ａは、呼び出し元のウィジェットマネージャ２２のプログラムファイルのハッシュ値を生成する（Ｓ４０４。続いて、復号部９２２ａは、生成されたハッシュ値によって、暗号化されている共通鍵９１ａを復号する（Ｓ４０５）。復号に成功した場合、復号部９２２ａは、復号された共通鍵９１ａをウィジェットマネージャ２２に返却する（Ｓ４０６）。
【０１０６】
続いて、アップデート部２２６は、共通鍵９１ａによって更新ファイルを復号する（Ｓ４０７）。復号に成功した場合、アップデート部２２６は、復号された更新ファイルを用いてウィジェットマネージャ２２の更新処理を実行する（Ｓ４０８）。続いて、アップデート部２２６は、更新ファイルに含まれている、更新後のウィジェットマネージャ２２に対応する共通鍵保護プログラム９０ａによって、既存の共通鍵保護プログラム９０ａを更新（置換）する（Ｓ４０９）。
【０１０７】
第三の利用形態の場合、ウィジェットマネージャ２２は、更新ファイルの出所の正当性を確認することができる。すなわち、共通鍵９１ａによって復号に成功した場合、更新ファイルの転送元は、正当なダウンロードサーバ６０であることが確認される。更新ファイルを共通鍵９１ａによって暗号化できるのは正当なダウンロードサーバ６０に限定されるからである。したがって、不正な更新ファイルによるウィジェットマネージャ２２の更新が防止される。
【０１０８】
また、ウィジェットマネージャ２２の提供者が予定していない、ユーザによる改変を抑制することもできる。ウィジェットマネージャ２２を改変したユーザは、ウィジェットマネージャ２２の更新（バージョンアップ等）のサービスを受けることが出来なくなる。改変されたウィジェットマネージャ２２は、更新ファイルを復号するための共通鍵９１ａを取得することが出来なくなるからである。このことが改変に対する抑止力として働くことが期待できる。
【０１０９】
図１７、図１８、及び図１９において説明した内容をまとめたものが、図２０に示される。図２０は、ウィジェットマネージャによる共通鍵保護プログラムの利用形態の概要を示す図である。
【０１１０】
本実施の形態の情報処理システム１において、プロバイダアプリ１２３とスキャンウィジェット２１ａとの間の通信は、ウィジェットマネージャ２２によって仲介される。換言すれば、情報処理システム１において通信される情報の大部分はウィジェットマネージャ２２を経由する。したがって、ウィジェットマネージャ２２によって情報の安全性を保証されるのが経済的であると考え、ウィジェットマネージャ２２に共通鍵保護プログラム９０ａを付随される例について説明した。
【０１１１】
但し、プロバイダアプリ１２３又はスキャンウィジェット２１ａ等、ウィジェットマネージャ２２以外のプログラムのそれぞれに、共通鍵保護プログラム９０ａを付随させてもよい。例えば、第一の利用形態（図１７）では、スキャンウィジェット２１ａに対する共通鍵９１ｂを保護する共通鍵保護プログラム９０ｂが実装されてもよい。この場合、スキャンマネージャ２２によってではなく、スキャンウィジェット２１ａによって、当該共通鍵保護プログラム９０ｂより取得される共通鍵９１ｂを用いてスキャン画像が暗号化されればよい。画像処理サーバ４０は、当該共通鍵９１ｂを共有し、スキャンウィジェット２１ａより転送されたスキャン画像を、当該共通鍵９１ｂによって復号すればよい。
【０１１２】
また、プロバイダアプリ１２３、ウィジェットマネージャ２２、及びスキャンウィジェット２１ａのそれぞれに共通鍵保護プログラム９０を割り当て、これら３者間の通信の安全性が共通鍵９１による暗号化によって確保されるようにしてもよい。
【０１１３】
なお、本実施の形態では、共通鍵を保護対象の情報とした例について説明したが、本実施の形態の共通鍵保護プログラム９０の仕組みによって保護可能な情報は、所定のものに限定されない。例えば、特定のプログラムにのみ利用を許可したい保護情報がある場合、当該保護情報を当該プログラムのハッシュ値で暗号化したものを、共通鍵取得用関数９２に相当する関数（以下、「保護情報取得用関数」という。）と共にプログラムモジュールに格納すればよい。
【０１１４】
また、当該プログラムのハッシュ値によって暗号化された保護情報は、必ずしも、補助情報鍵取得用関数と同一のプログラムモジュール内に格納されなくてもよい。例えば、当該保護情報を利用するプログラムが有していてもよいし、当該プログラムがその所在情報（ファイルパス名等）を知っていてもよい。この場合、保護情報取得用関数は、暗号化された保護情報又はその所在情報等を引数として受け付け可能とすればよい。保護情報取得用関数は、当該引数によって特定される保護情報を、呼び出し元のプログラムのハッシュ値によって復号し、復号後の保護情報を返却すればよい。
【０１１５】
但し、暗号化された保護情報が保護情報鍵取得用関数と同一のプログラムモジュール内に格納されていることで、当該保護情報に対するセキュリティを更に向上させることができる。暗号化されているとはいえ、当該保護情報が裸の状態で管理されている場合に比べれば、当該プログラムモジュール内に当該保護情報が格納されることにより、当該保護情報が外部に晒される可能性を低減させることができるからである。また、当該保護情報が任意の方法で分割されて当該プログラムモジュール内に格納されてもよい。この場合、保護情報取得用関数は、当該任意の方法に対応するロジックによって、分割されている保護情報を統合し、復号すればよい。
【０１１６】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１１７】
１            情報処理システム
１０          画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          操作パネル
１６          ネットワークインタフェース
１７          ＳＤカードスロット
２０          携帯端末
２１          ウィジェット
２１ａ        スキャンウィジェット
２１ｂ        印刷ウィジェット
２２          ウィジェットマネージャ
４０          画像処理サーバ
５０          ログ収集サーバ
６０          ダウンロードサーバ
９０          共通鍵保護プログラム
９１          共通鍵
９２          共通鍵取得用関数
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１２０        アプリケーション９５
１２１        スキャンアプリ
１２２        印刷アプリ
１２３        プロバイダアプリ
１３０        アプリ制御部
２００        ドライブ装置
２０１        記録媒体
２０２        補助記憶装置
２０３        メモリ装置
２０４        ＣＰＵ
２０５        インタフェース装置
２０６        表示装置
２０７        入力装置
２１１        ウィジェットＵＩ部
２１２        ウィジェット情報送信部
２１３        連携部
２１４        ロジック部
２１５        属性情報管理ファイル
２２１        ウィジェット情報登録部
２２２        広告部
２２３        ウィジェット情報提供部
２２４        仲介部
２２５        ログ転送部
２２６        ログ転送部
２２７        ウィジェット情報管理テーブル
９２１        ハッシュ値生成部
９２２        復号部
１２３１      ユーザ検知部
１２３２      ＵＩ制御部
１２３３      ウィジェット情報取得部
１２３４      ウィジェット連携部
１２３５      機能制御部
１２３６      ユーザ管理テーブル
Ｂ            バス
【先行技術文献】
【特許文献】
【０１１８】
【特許文献１】特開２００４−３０９７３７号公報
【図１】
0005644194.tif 000002
【図２】
0005644194.tif 000003
【図３】
0005644194.tif 000004
【図４】
0005644194.tif 000005
【図５】
0005644194.tif 000006
【図６】
0005644194.tif 000007
【図７】
0005644194.tif 000008
【図８】
0005644194.tif 000009
【図９】
0005644194.tif 000010
【図１０】
0005644194.tif 000011
【図１１】
0005644194.tif 000012
【図１２】
0005644194.tif 000013
【図１３】
0005644194.tif 000014
【図１４】
0005644194.tif 000015
【図１５】
0005644194.tif 000016
【図１６】
0005644194.tif 000017
【図１７】
0005644194.tif 000018
【図１８】
0005644194.tif 000019
【図１９】
0005644194.tif 000020
【図２０】
0005644194.tif 000021