(57)【要約】【課題】ＡＰＩを用いるアプリケーションプログラムの実行時に、アプリケーションプログラムが改ざんされていることを検出することを目的とする。【解決手段】アプリケーション開発用にＡＰＩを公開している情報処理装置は、アプリケーションから呼び出される可能性のあるＡＰＩを示すＡＰＩ情報を記憶しておき、自装置の外部のアプリケーションから、処理の要求を受け付けたときに、受け付けた処理において呼び出されるＡＰＩを検出し、検出したＡＰＩが、前記ＡＰＩ情報によって示されていない場合は、当該ＡＰＩの呼び出しを行わない。【選択図】図４
2011233049.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムが呼び出すことができる１又は複数のＡＰＩ（Application Program Interface）を公開している画像処理装置であって、
１又は複数のアプリケーションプログラムそれぞれが呼び出すことを許可されているＡＰＩを示すＡＰＩ情報を、アプリケーションプログラム毎に記憶しているＡＰＩ情報記憶手段と、
自装置の外部のアプリケーションプログラムから、ＡＰＩの呼び出し要求を受け付ける要求受付手段と、
前記要求受付手段で受け付けた要求において呼び出されるＡＰＩが、前記外部のアプリケーションプログラムと対応付けて記憶されているＡＰＩ情報によって示されていない場合は、当該ＡＰＩの呼び出しを抑止する制御手段と
を備えることを特徴とする画像処理装置。
【請求項２】
アプリケーションプログラムと対応付けられている認証情報であって、当該アプリケーションプログラムが呼び出すことを許可されているＡＰＩを示す情報を含む認証情報の認証を行う認証手段と、
前記認証手段が行った認証が肯定的であった場合に、当該認証情報に含まれているＡＰＩ情報を、当該アプリケーションと対応付けて前記ＡＰＩ記憶手段に記憶させるＡＰＩ情報取得手段とを備え、
前記要求受付手段は、前記認証手段によって肯定的な認証が行われた認証情報と対応付けられているアプリケーションプログラムから、ＡＰＩの呼び出し要求を受け付け、
前記ＡＰＩ情報は、前記認証情報を生成する際に、当該認証情報と対応付けられているアプリケーションプログラムから呼び出されているＡＰＩを示す情報である
請求項１に記載の画像処理装置。
【請求項３】
前記ＡＰＩ情報は、更に、ＡＰＩのパラメータとして設定できるデータを示すパラメータ条件を含み、
前記制御手段は、前記検出手段で検出したＡＰＩが、前記ＡＰＩ情報によって示されていない場合、又は、前記検出手段で検出したＡＰＩのパラメータとして設定されているデータが前記パラメータ条件を満たさない場合は、当該ＡＰＩの呼び出しを抑止する
請求項１又は２に記載の画像処理装置。
【請求項４】
アプリケーションプログラムから呼び出すことができる１又は複数のＡＰＩを公開している画像処理装置を含む改ざん検出システムであって、
アプリケーションプログラムから呼び出されているＡＰＩを抽出し、抽出したＡＰＩを示すＡＰＩ情報を含んだ認証情報であって、当該アプリケーションプログラムと対応付けた認証情報を生成する認証情報生成手段を備え、
前記画像処理装置は、
自装置の外部から前記認証情報を取得し、取得した前記認証情報を認証する認証手段と、
前記認証手段が肯定的な認証を行った場合に、当該認証情報に含まれているＡＰＩ情報を前記アプリケーションプログラムと対応付けてＡＰＩ情報記憶手段に記憶させるＡＰＩ情報取得手段と、
前記認証手段が肯定的な認証を行った認証情報と対応付けられているアプリケーションプログラムから、ＡＰＩの呼び出し要求を受け付ける要求受付手段と、
前記要求受付手段で受け付けた要求において呼び出されるＡＰＩが、前記ＡＰＩ情報によって示されていない場合は、当該ＡＰＩの呼び出しを抑止する制御手段とを備える
ことを特徴とする改ざん検出システム。
【請求項５】
アプリケーションプログラムが呼び出すことができる１又は複数のＡＰＩを公開しており、１又は複数のアプリケーションプログラムそれぞれが呼び出すことを許可されているＡＰＩを示すＡＰＩ情報を、アプリケーションプログラム毎に記憶しているＡＰＩ情報記憶手段を備える画像処理装置に、アプリケーションプログラムの改ざんを検出させる検出方法であって、
自装置の外部のアプリケーションプログラムから、ＡＰＩの呼び出し要求を受け付けさせ、
受け付けた要求において呼び出されるＡＰＩが、前記外部のアプリケーションプログラムと対応付けて記憶されているＡＰＩ情報によって示されていない場合は、当該ＡＰＩの呼び出しを抑止させる
検出方法。
【請求項６】
アプリケーションプログラムが呼び出すことができる１又は複数のＡＰＩを公開しており、１又は複数のアプリケーションプログラムそれぞれが呼び出すことを許可されているＡＰＩを示すＡＰＩ情報を、アプリケーションプログラム毎に記憶しているＡＰＩ情報記憶手段を備える画像処理装置に、アプリケーションプログラムの改ざんを検出させるコンピュータプログラムであって、
自装置の外部のアプリケーションプログラムから、ＡＰＩの呼び出し要求を受け付ける要求受付処理を実行させ、
前記要求受付処理で受け付けた要求において呼び出されるＡＰＩが、前記外部のアプリケーションプログラムと対応付けて記憶されているＡＰＩ情報によって示されていない場合は、当該ＡＰＩの呼び出しを抑止する制御処理を実行させる
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムの改ざん検出に関する。
【背景技術】
【０００２】
近年、コピー機は多機能化が進み、いわゆる、複合機（以下、「ＭＦＰ（Multi Function Peripheral）」という。）が主流となっている。
【０００３】
これらの機能は、数々のアプリケーションプログラムをＭＦＰに組み込むことで実現されており、これらのアプリケーションプログラムは、ＭＦＰが備えているＡＰＩ（Application Program Interface）を用いて開発されている。
【０００４】
ＭＦＰ製造業者の中には、新たな機能の開発、及び、現在搭載されている機能の拡張等のために、備えているＡＰＩ（Application Program Interface）を公開しているものが在る。
【０００５】
ＡＰＩを公開することで、数多くのアプリケーションプログラム開発業者が、様々なアプリケーションプログラムを開発することが容易となり、より高機能で、より使いやすい機能がＭＦＰに搭載することができるようになるという利点がある。
【０００６】
しかし、アプリケーションプログラム開発業者が開発したアプリケーションプログラムを無条件にＭＦＰに搭載するのはセキュリティの面から問題があることから、様々な技術が提案されている。
【０００７】
例えば、アプリケーションプログラム毎に、使用できるＡＰＩを制限する技術が提案されている（特許文献１等参照）。
【０００８】
具体的には、ＭＦＰが備えているコマンド（ＡＰＩ）毎に許可レベルを定めておき、アプリケーションプログラムは自身に与えられたレベルキーに応じた許可レベルのコマンドのみを使用できる。
【０００９】
また、別の技術として、アプリケーションプログラムが有する認証キーに基づいて肯定的な認証がなされたときのみＭＦＰはそのアプリケーションプログラムを実行するという技術がある。ＭＦＰ製造業者は、予めアプリケーションプログラムを検証し、合格したもの、例えば、不適切なＡＰＩが用いられていないもの等にのみ認証キーを与える。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００６−３４４１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかし、ＭＦＰ製造業者が認証キーを与えた後に、アプリケーションプログラムを変更した場合、又は、市場において改変された場合等には、認証キーは正当なキーであることからアプリケーションプログラムは実行されてしまうことになる。
【００１２】
そこで、本発明は、ＡＰＩを用いるアプリケーションプログラムの実行時に、アプリケーションプログラムが改ざんされていることを検出することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明の一形態に係る画像処理装置は、アプリケーションプログラムが呼び出すことができる１又は複数のＡＰＩを公開している画像処理装置であって、１又は複数のアプリケーションプログラムそれぞれが呼び出すことを許可されているＡＰＩを示すＡＰＩ情報を、アプリケーションプログラム毎に記憶しているＡＰＩ情報記憶手段と、自装置の外部のアプリケーションプログラムから、ＡＰＩの呼び出し要求を受け付ける要求受付手段と、前記要求受付手段で受け付けた要求において呼び出されるＡＰＩが、前記外部のアプリケーションプログラムと対応付けて記憶されているＡＰＩ情報によって示されていない場合は、当該ＡＰＩの呼び出しを抑止する制御手段とを備える。
【発明の効果】
【００１４】
上記構成の画像処理装置は、ＡＰＩを用いるアプリケーションプログラムの実行時に、アプリケーションプログラムが改ざんされていることを検出することができる。
【図面の簡単な説明】
【００１５】
【図１】改ざん検出システムの全体的な構成の例を示す図である。
【図２】ＭＦＰのハードウェア構成の例を示す図である。
【図３】アプリケーションプログラムの開発からＭＦＰに搭載するまでの手順、及び、ＭＦＰに搭載するまでに用いる機能ブロックの例を示す図である。
【図４】ユーザ端末及びＭＦＰの機能的構成の例を示すブロック図である。
【図５】アプリケーションの実行処理の例を示す図である。
【図６】ＡＰＩ抽出リストの構成及び内容の例を示す図である。
【図７】ＡＰＩリストの構成及び内容の例を示す図である。
【図８】認証データの構成及び内容の例を示す図である。
【図９】アプリケーション一覧画面の例を示す図である。
【図１０】認証データ生成装置における認証データ生成処理を示すフローチャートである。
【図１１】アプリケーションの登録処理を示すフローチャートである。
【図１２】ＭＦＰにおけるアプリケーション実行処理を示すフローチャートである。
【図１３】変形例のＡＰＩリストの構成及び内容の例を示す図である。
【発明を実施するための形態】
【００１６】
＜実施形態＞
＜概要＞
実施形態のＭＦＰでは、ＭＦＰに搭載されているアプリケーションプログラムにおいて実行される可能性のあるＡＰＩの名称を、アプリケーションプログラム毎に記憶しておく。「ＡＰＩ」とは、ＭＦＰに搭載するアプリケーションプログラムを開発する場合に使用できる命令及び関数等にアクセスするためのインタフェースをいい、その命令及び関数等の１つ１つを「ＡＰＩ」と呼ぶこともある。ここでは、関数等の１つ１つを「ＡＰＩ」というものとする。
【００１７】
そして、アプリケーションプログラムの実行中に、記憶してある名称以外の名称のＡＰＩが呼び出された場合には、そのＡＰＩの実行を行わずに、アプリケーションプログラムの実行を中止する。
【００１８】
ここで、記憶してある名称のＡＰＩは、ＭＦＰ製造業者が認証キーを与えるために検証したアプリケーションプログラムで用いられていたＡＰＩである。すなわち、これらのＡＰＩは、アプリケーションプログラムで呼び出すことをＭＦＰ製造業者が許可したＡＰＩであるといえる。
【００１９】
従って、認証キーが付与された後に、新たなＡＰＩを用いるような変更がなされたアプリケーションプログラムの実行は出来ないことになる。
【００２０】
但し、認証キーを付与された時に使用していたＡＰＩを用いるような変更は許されることになる。すなわち、別のＡＰＩを呼び出さない修正やバージョンアップを行っただけでは、ＭＦＰ製造業者に認証キーを新たに申請する必要がないという利点がある。また、ＭＦＰ製造業者にとっては、呼び出されたくないＡＰＩは呼び出されることがないので、認証キーを付与した際に意図していたセキュリティは確保することができ、認証キーを与えるための検証作業を何度も行うことがないという利点がある。
【００２１】
以下、本発明の実施形態の改ざん検出システム１００について、図面を用いて説明する。
【００２２】
＜構成＞
図１は、改ざん検出システム１００の全体的な構成の例を示す図である。
【００２３】
改ざん検出システム１００は、ユーザ端末１０００、ユーザ端末１００１、ユーザ端末１００２、ＭＦＰ２０００、及び、認証データ生成装置３０００を有する。尚、図１では、３台のユーザ端末と１台のＭＦＰとを含むこととしているが、それぞれ１台以上であればよい。また、認証データ生成装置３０００は１台としているが、１台以上であればよい。
【００２４】
ユーザ端末１０００、ユーザ端末１００１及びユーザ端末１００２は、いわゆる、パソコン等の端末装置であり、ディスプレイ、キーボード等のインタフェースを備え、ＭＦＰ２０００に印刷ジョブを送信したり、ＭＦＰ２０００からの要求に応じてアプリケーションプログラムを実行したりする。
【００２５】
ＭＦＰ２０００は、一般に複合機と呼ばれ、コピー機能、ファックス機能、ネットワークプリンティング機能、スキャナ機能及びボックス機能等の機能を集約した装置である。ＭＦＰ２０００は、ユーザからアプリケーションプログラムの実行指示を受けると、ユーザ端末１０００と連携して処理を行う。
【００２６】
認証データ生成装置３０００は、いわゆる、パソコン等の端末装置であり、ディスプレイ、キーボード等のインタフェースを備え、アプリケーションプログラムを読み込み、アプリケーションプログラム用の認証データを生成する。この認証データがＭＦＰ２０００によって肯定的に認証された場合にのみ、アプリケーションプログラムをＭＦＰ２０００に登録して実行することが可能となる。
【００２７】
次に、ＭＦＰ２０００のハードウェア構成について説明する。
【００２８】
図２は、ＭＦＰ２０００のハードウェア構成の例を示す図である。ＭＦＰ２００１及びＭＦＰ２００２も同様の構成を有する。
【００２９】
ＭＦＰ２０００は、ＣＰＵ（Central Processing Unit）２０ａ、ＲＡＭ（Random Access Memory）２０ｂ、ＲＯＭ（Read Only Memory）２０ｃ、ハードディスク２０ｄ、制御用回路２０ｅ、操作パネル２０ｆ、通信インタフェース２０ｇ、印刷装置２０ｈ及びＩＣカードリーダ２０ｉ等によって構成される。
【００３０】
制御用回路２０ｅは、ハードディスク２０ｄ、操作パネル２０ｆ、通信インタフェース２０ｇ、印刷装置２０ｈ及びＩＣカードリーダ２０ｉ等を制御するための回路である。
【００３１】
操作パネル２０ｆは、タッチパネル方式の表示パネルであって、ユーザに対してメッセージ又は指示を与えるための画面、ユーザが所望する処理の種類及び処理条件を入力するための画面及びＣＰＵ２０ａで実行された処理の結果を示す画面等を表示する。また、ユーザは、操作パネル２０ｆの所定の位置に触れることによってＭＦＰ２０００に対して指示を与えたり処理条件の指定を行ったり、パスワード等を入力することができる。このように、操作パネル２０ｆは、ＭＦＰ２０００を操作するユーザのユーザインタフェースの役割を果たしている。
【００３２】
また、通信インタフェース２０ｇは、通信回線を介して認証データ生成装置３０００等の装置とＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）で通信を行うためのＮＩＣ（Network Interface Card）又はモデム等である。
【００３３】
印刷装置２０ｈは、ユーザ端末１０００等から取得した印刷ジョブの印刷データに基づいて再現される画像を用紙に印刷する装置である。
【００３４】
ＩＣカードリーダ２０ｉは、ＩＣカードからユーザＩＤ等のデータを読み取るＩＣカードリーダ装置である。
【００３５】
以下、改ざん検出システム１００において実行される機能を２つに分けて説明する。アプリケーションを開発してＭＦＰ２０００に搭載する場合と、ＭＦＰ２０００に搭載されたアプリケーションを実行する場合との２つである。
【００３６】
＜アプリケーションを搭載する場合＞
図３を用いて、アプリケーションプログラムの開発からＭＦＰ２０００に搭載するまでの手順を説明するとともに、ＭＦＰ２０００に搭載するまでに用いる各装置の機能を説明する。
【００３７】
まず、アプリケーションプログラム開発業者（以下、「ベンダー」という。）は、アプリ開発装置４０００においてアプリケーションプログラム４０１０を開発する。このアプリケーションプログラムは、ＭＦＰ２０００が提供するＡＰＩを使用するものである。
【００３８】
次に、ベンダーは、開発したアプリケーションプログラム４０１０のソースコードをＭＦＰ製造業者に渡して検証を依頼する（矢印１０参照）。
【００３９】
ＭＦＰ製造業者は、認証データ生成装置３０００において、認証データ３２１０を生成してベンダーに渡す。
【００４０】
ここで、認証データ生成装置３０００は、ＡＰＩ抽出部３１００及び認証データ生成部３２００を有する。
【００４１】
ＡＰＩ抽出部３１００は、アプリケーションプログラム４０１０が呼び出しているＡＰＩを抽出する機能を有する。
【００４２】
具体的には、ＡＰＩ抽出部３１００は、アプリケーションプログラム４０１０のソースコードに、コメント等としてではなく、実行するために記載されているＡＰＩの名称を抽出する。
【００４３】
認証データ生成部３２００は、ＡＰＩ抽出部３１００が抽出したＡＰＩの名称、及び、認証に必要な情報を含んだ認証データ３２１０を生成する機能を有する。認証データ３２１０の詳細は、＜データ＞の項で説明する。
【００４４】
ＭＦＰ製造業者は、生成した認証データ３２１０を暗号化してベンダーに渡す。例えば、ＤＥＳ（Data Encryption Standard）、ＡＥＳ（Advanced Encryption Standard）等の方式を用いて暗号化する。
【００４５】
暗号化した認証データ３２１０（以下、「暗号化認証データ３２１０」という。）を渡されたベンダーは、渡された暗号化認証データ３２１０を組み込んだアプリケーションプログラム４０１１を販売する（矢印１１参照）。
【００４６】
アプリケーションプログラムを購入したユーザは、購入したアプリケーションプログラム４０１１をユーザ端末１０００にインストールし、アプリケーションをＭＦＰ２０００に登録する（矢印１２参照）。アプリケーションプログラム４０１１によって実現できる機能を「アプリケーション」といい、ＭＦＰ２０００で実行することができるようにすることを「登録」という。
【００４７】
実施形態では、アプリケーションプログラム４０１１が登録用のプログラムを含んでおり、そのプログラムを実行して実現される登録ツール１４５０によって、アプリケーションの登録処理を行う。
【００４８】
登録処理において、アプリケーションプログラム４０１１内の暗号化認証データ３２１０がＭＦＰ２０００に送信され、ＭＦＰ２０００によって肯定的な認証がなされた場合に、アプリケーションプログラム４０１１の実行に必要な情報、例えば、ユーザ端末１０００のＩＰアドレス等、及び、必要に応じてプログラム等がＭＦＰ２０００に記憶される。
【００４９】
ここで、ＭＦＰ２０００は、アプリ認証部２８１０を含むアプリ登録部２８００を有する。尚、図３では、ＭＦＰ２０００が備える機能のうち、登録処理に関係する機能のみを記載している。
【００５０】
アプリ登録部２８００は、ユーザ端末１０００の登録ツール１４５０から登録要求を受け、アプリケーションをＭＦＰ２０００に登録する機能を有する。アプリ登録部２８００は、登録要求を受信する際、暗号化認証データ３２１０も受信する。この暗号化認証データ３２１０が、アプリ認証部２８１０により肯定的な認証がなされた場合にのみ、アプリ登録部２８００はアプリケーションの登録処理を行う。
【００５１】
実施形態では、登録処理として次の３つの処理を行う。
【００５２】
１つ目は、アプリケーションの名称等をＭＦＰ２０００の操作パネル２０ｆ（図２参照）に表示するためのデータ、例えば、アプリケーション名をユーザ情報記憶部５０００に記憶する。実施形態では、ユーザが登録したアプリケーションの名前等を、ユーザＩＤに対応させて記憶している。
【００５３】
２つ目は、アプリケーションで使用されているＡＰＩの名称をＡＰＩリスト記憶部５２００に記憶する。実施形態では、ＡＰＩの名称を示すリストがアプリケーションプログラム毎に記憶されている。
【００５４】
３つ目は、アプリケーションを実行する際に必要な情報等、例えば、ＭＦＰ２０００側で実行する処理を記述したアプリケーションプログラム等を、アプリケーションプログラム４０１１から受信し、アプリ記憶部５１００に記憶する。アプリケーションプログラム４０１１から取得する情報の内容は、それぞれのアプリケーションによって異なる。
【００５５】
アプリ認証部２８１０は、暗号化認証データ３２１０を認証し、認証結果をアプリ登録部２８００に渡す機能を有する。
【００５６】
具体的には、アプリ認証部２８１０は、認証データ生成装置３０００が認証データ３２１０を暗号化した鍵と同じ鍵を記憶しており、その鍵を用いて暗号化認証データ３２１０を復号する。その鍵と、復号した認証データ３２１０に含まれる認証キーとが同じである場合に、認証データは正当なデータであると判断して、肯定的な認証結果をアプリ登録部２８００に渡す。
【００５７】
＜アプリケーションを実行する場合＞
次に、図４を用いて、ＭＦＰ２０００に搭載されたアプリケーションを実行する場合に用いる各装置の機能を説明する。
【００５８】
図４は、ユーザ端末１０００、及び、ＭＦＰ２０００の機能的構成の例を示すブロック図である。
【００５９】
ユーザ端末１０００〜ユーザ端末１００２（図１参照）は、本発明に係る機能について同様の機能を備える。従って、ここではユーザ端末１０００を説明する。
【００６０】
ユーザ端末１０００は、通信部１１００、送信データ生成部１２００、受信データ解析部１３００、アプリケーション１４００、登録ツール１４５０、及び、アプリケーションプログラム記憶部１５００を有する。
【００６１】
以下に説明するユーザ端末１０００の各部の機能の一部又は全部は、ユーザ端末１０００が備えるメモリに格納されているプログラムが、ユーザ端末１０００が備えるＣＰＵにより実行されることで実現される。
【００６２】
通信部１１００は、ＭＦＰ２０００と通信する機能を有する。具体的には、ＭＦＰ２０００から処理の要求等を受信したり、処理の結果等を送信したりする。実施形態では、ＭＦＰ２０００とのやり取りは、例えば、ＸＭＬ形式のデータ（以下、「ＸＭＬデータ」という。）で行うものとする。
【００６３】
アプリケーション１４００は、アプリケーションプログラム記憶部１５００から、アプリケーションプログラムを読み出して実行することで実現されるアプリケーションを示す。
【００６４】
登録ツール１４５０は、アプリケーションプログラム記憶部１５００から、登録用のプログラムを読み出して実行することで実現される登録ツールを示す。
【００６５】
送信データ生成部１２００は、アプリケーション１４００から指示されてＭＦＰ２０００に送信するＸＭＬデータを生成する機能を有する。
【００６６】
また、受信データ解析部１３００は、ＭＦＰ２０００から受信したＸＭＬデータを解析し、解析結果に応じてアプリケーション１４００に指示等を出す機能を有する。
【００６７】
この送信データ生成部１２００及び受信データ解析部１３００は、実際には、アプリケーションプログラムの一部として記述されている場合もある。
【００６８】
アプリケーションプログラム記憶部１５００は、ユーザによってインスロールされたアプリケーションプログラム４０１１（図３参照）を記憶しておく機能を有する。
【００６９】
ＭＦＰ２０００は、通信部２１００、送信データ生成部２２００、受信データ解析部２３００、アプリケーション２４００、操作部２５００、ログイン情報認証部２６００、アプリ選択部２７００、アプリ登録部２８００、ユーザ情報記憶部５０００、アプリ記憶部５１００、ＡＰＩリスト記憶部５２００、及び、ＡＰＩプログラム記憶部５３００を有する。
【００７０】
以下に説明するＭＦＰ２０００の各部の機能の一部又は全部は、ＭＦＰ２０００のハードディスク２０ｄ等のメモリに格納されているプログラムが、ＣＰＵ２０ａにより実行されることで実現される。
【００７１】
通信部２１００は、ユーザ端末１０００と通信する機能を有する。具体的には、ユーザ端末１０００に処理の要求等を送信したり、処理の結果等を受信したりする。実施形態では、ユーザ端末１０００とのやり取りは、例えば、ＸＭＬ形式のデータで行うものとする。
【００７２】
アプリケーション２４００は、アプリ記憶部５１００から、アプリケーションプログラムを読み出して実行することで実現されるアプリケーションを示す。
【００７３】
送信データ生成部２２００は、アプリケーション２４００から指示されてユーザ端末１０００に送信するＸＭＬデータを生成する機能を有する。
【００７４】
受信データ解析部２３００は、ユーザ端末１０００から受信したＸＭＬデータを解析し、解析結果に応じてアプリケーション２４００に指示等を出す機能を有する。
【００７５】
この送信データ生成部２２００及び受信データ解析部２３００は、実際には、アプリケーションプログラムの一部として記述されている場合もある。
【００７６】
操作部２５００は、操作パネル２０ｆ及びＩＣカードリーダ２０ｉを含み、操作に応じた表示画面を操作パネル２０ｆ表示し、ユーザからの指示を取得する機能を有する。
【００７７】
また、操作部２５００は、ＭＦＰ２０００を使用しようとするユーザから、ログイン情報、具体的には、ユーザＩＤを取得する機能を有する。詳細には、かざされたＩＣカードからＩＣカードリーダ２０ｉが読み取ったユーザＩＤを取得する。
【００７８】
ログイン情報認証部２６００は、ユーザ情報記憶部５０００が記憶しているユーザに関する情報であるユーザ情報を参照して、ログイン情報を認証する機能を有する。ログイン情報認証部２６００は、ユーザ情報にログイン情報が登録されていれば肯定的な認証結果とし、登録されていなければ否定的な認証結果とする。認証結果は、操作部２５００に通知する。
【００７９】
アプリ選択部２７００は、ログイン情報で示されるユーザがインストールしたアプリケーションの名称を操作パネル２０ｆに表示し、ユーザによって選択されたアプリケーション名を取得し、選択した名称のアプリケーションを起動する機能を有する。
【００８０】
アプリ登録部２８００は、ユーザ端末１０００の登録ツール１４５０から登録要求を受け、アプリケーションをＭＦＰ２０００に登録する機能を有する（図３及び図３の説明参照）。
【００８１】
ユーザ情報記憶部５０００は、ユーザに関する情報であるユーザ情報を記憶しておく機能を有する。具体的には、ＭＦＰ２０００を使用する権限を有するユーザのユーザＩＤ、及び、ユーザＩＤと対応付けて当該ユーザがインストールしたアプリケーション名等を記憶している。アプリ選択部２７００は、このユーザＩＤと対応付けて記憶しているアプリケーション名等を参照して、アプリケーション一覧を操作パネル２０ｆに表示する。
【００８２】
アプリ記憶部５１００は、ユーザがインストールしたアプリケーションを実行するために必要なプログラム、データ等を記憶しておく機能を有する。
【００８３】
ＡＰＩリスト記憶部５２００は、登録されたアプリケーションで使用されているＡＰＩの名称を示すリストを、アプリケーション毎に記憶しておく機能を有する。
【００８４】
ＡＰＩプログラム記憶部５３００は、登録されたアプリケーションを実行する際に必要な情報等、例えば、ユーザ端末１０００のＩＰアドレス、ＭＦＰ２０００側で実行する処理を記述したアプリケーションプログラム、実行に必要なデータ等を記憶しておく機能を有する。
【００８５】
ここで、図５に、アプリケーションの実行の例を示す。
【００８６】
図５では、３つのアプリケーションの例を示している。
【００８７】
１つ目は、ＭＦＰ２０００のスキャナ機能を用いてスキャンしたデータを、ユーザ端末１０００の任意のディレクトリ下に記憶させるアプリケーション「スキャンデータ保存アプリ」である。
【００８８】
このアプリケーションでは、ユーザ端末１０００の所定のディレクトリ構造をＭＦＰ２０００の操作パネル２０ｆに表示するためにＡＰＩ「ＡＰＩ０２」を使用し、用紙に印刷されている画像をスキャンするためにＡＰＩ「ＡＰＩ０３」を使用している。また、ＭＦＰ２０００のスキャンデータ記憶部が記憶しているスキャンデータを読み出すＡＰＩ「ＡＰＩ０１」を使用している。従って、「ＡＰＩ０１」、「ＡＰＩ０２」及び「ＡＰＩ０３」以外のＡＰＩが呼び出された時は、アプリケーションプログラムが改ざんされていることになる。
【００８９】
２つ目は、認証サーバ１０１０に認証情報を送信して、認証結果を受信するアプリケーション「認証アプリ」である。
【００９０】
このアプリケーションでは、ＭＦＰ２０００のＡＰＩを使用しない。従って、何らかのＡＰＩが呼び出されたら、アプリケーションプログラムが改ざんされていることになる。
【００９１】
３つ目は、印刷ジョブ蓄積サーバ装置１０２０から読み出して印刷するアプリケーション「プルプリントアプリ」である。
【００９２】
このアプリケーションでは、印刷ジョブ蓄積サーバ装置１０２０の印刷ジョブ記憶部が記憶している印刷ジョブの識別子の一覧をＭＦＰ２０００の操作パネル２０ｆに表示するためにＡＰＩ「ＡＰＩ０２」を使用し、印刷ジョブを印刷するためにＡＰＩ「ＡＰＩ０４」を使用している。従って、「ＡＰＩ０２」及び「ＡＰＩ０４」以外のＡＰＩが呼び出された時は、アプリケーションプログラムが改ざんされていることになる。
【００９３】
＜データ＞
以下、本実施形態の改ざん検出システム１００で用いる主なデータについて図６〜図８を用いて説明する。
【００９４】
図６は、ＡＰＩ抽出リスト３１１０の構成及び内容の例を示す図である。
【００９５】
このＡＰＩ抽出リスト３１１０は、認証データ生成装置３０００のＡＰＩ抽出部３１００（図３参照）がＡＰＩを抽出する際に、作業メモリに作成される。
【００９６】
ＡＰＩ抽出リスト３１１０は、使用有無３１１１及びＡＰＩ名３１１２で構成され、ＭＦＰ２０００が公開しているＡＰＩ１つに対してこの構成の１レコードが登録されている。
【００９７】
使用有無３１１１は、ＡＰＩ名３１１２で示されるＡＰＩを使用しているか否かを示す。「○」は、使用されていることを示し、「×」は使用されていないことを示す。
【００９８】
ＡＰＩ名３１１２は、ＡＰＩの名称を示す。
【００９９】
ＡＰＩ抽出部３１００は、ＡＰＩ抽出リスト３１１０のレコードにＡＰＩ名３１１２として設定されているＡＰＩの名称を、アプリケーションプログラムのソースコードから検索する。検索されたＡＰＩの名称の記載が、ＡＰＩを実行させるための記載である場合は、そのレコードの使用有無３１１１として「○」を設定する。ソースコードにＡＰＩの名称が記載されていない、又は、記載されていても実行させるためではない、例えば、コメントとして記載してある等の場合は、「×」を設定する。
【０１００】
ＡＰＩ抽出部３１００は、ＡＰＩ抽出リスト３１１０の全レコードについて、この処理を行う。
【０１０１】
図７は、ＡＰＩリスト５２１０の構成及び内容の例を示す図である。
【０１０２】
このＡＰＩリスト５２１０は、認証データ生成装置３０００の認証データ生成部３２００（図３参照）によって生成され、認証データ３２１０に含まれる。
【０１０３】
ＡＰＩリスト５２１０は、番号５２１１及びＡＰＩ名５２１２で構成され、アプリケーション毎に１つ作成される。
【０１０４】
番号５２１１は、レコードの番号を示す。すなわち、ＡＰＩ名５２１２で示されるＡＰＩの番号を示す。
【０１０５】
ＡＰＩ名５２１２は、ＡＰＩの名称を示す。
【０１０６】
このＡＰＩリスト５２１０は、ＡＰＩ抽出リスト３１１０の使用有無３１１１として「○」が設定されているレコードに、ＡＰＩ名３１１２として設定されているＡＰＩの名称を抽出して生成したものである。
【０１０７】
従って、ＡＰＩ名５２１２が示すＡＰＩの名称は、アプリケーションプログラムのソースコードにおいて、実行させる形式で記載されているものである。すなわち、そのアプリケーションが実行された場合に、呼び出される可能性があるＡＰＩを示している。
【０１０８】
図８は、認証データ３２１０の構成及び内容の例を示す図である。
【０１０９】
この認証データ３２１０は、認証データ生成装置３０００の認証データ生成部３２００（図３参照）によって生成される。
【０１１０】
認証データ３２１０は、項目３２１１及び内容３２１２で構成され、アプリケーション毎に１つ作成される。
【０１１１】
項目３２１１は、認証データ３２１０に含まれる項目を示す。
【０１１２】
内容３２１２は、項目３２１１で示される項目の内容を示す。
【０１１３】
例えば、項目３２１１「アプリ名称」は、この認証データ３２１０が付与されたアプリケーションプログラムを実行した場合のアプリケーションの名称を示す。項目３２１１「ベンダー名称」は、アプリケーションプログラムを作成したベンダーの名称を示し、項目３２１１「アプリ概要」は、アプリケーションの内容を示す。項目３２１１「有効期限」は、この認証データ３２１０の有効期限を示す。
【０１１４】
また、項目３２１１「認証キー」は、この認証データ３２１０の正当性を確認するために参照するデータである。また、この「認証キー」で示される鍵を用いて、認証データ３２１０を暗号化する。
【０１１５】
項目３２１１「ＡＰＩ情報」は、この認証データ３２１０が付与されたアプリケーションプログラムで用いられているＡＰＩを示す情報である。内容３２１２としてＡＰＩリスト５２１０（図７参照）が設定される。
【０１１６】
＜表示画面＞
以下、本実施形態の改ざん検出システム１００で用いる表示画面について図９を用いて説明する。ここで説明する表示画面は、ＭＦＰ２０００の操作パネル２０ｆに表示される画面例である。
【０１１７】
図９は、アプリケーション一覧画面２５２０の例を示す図である。
【０１１８】
このアプリケーション一覧画面２５２０には、ログインしたユーザが登録したアプリケーションの名称及び機能の一覧が表示される。ユーザは、カーソルを移動して実行したいアプリケーションを選択する。図９では、アプリ名が「ＡＰ−Ｓｃａｎ」のアプリケーションがカーソル２５２１で選択されている。ここで、「ＯＫ」ボタンを押下すると、選択されたアプリケーションが起動される。
【０１１９】
＜動作＞
以下、実施形態の改ざん検出システム１００の動作について、図１０〜図１２を用いて説明する。
【０１２０】
ここでは、次の３つの処理について説明する。
【０１２１】
１つ目は、認証データ生成装置３０００における認証データ３２１０を生成する処理である。２つ目は、アプリケーションをＭＦＰ２０００に登録する処理である。３つ目は、ＭＦＰ２０００においてアプリケーションを実行する処理である。
【０１２２】
＜認証データ生成処理＞
図１０は、認証データ生成装置３０００（図３参照）における認証データ３２１０を生成する処理を示すフローチャートである。
【０１２３】
ベンダーは、アプリケーションプログラム４０１０のソースコード（以下、単に「ソースコード」という。）をＭＦＰ製造業者に渡して、認証データの付与を依頼する。ソースコードを渡す方法は、ネットワークを経緯して渡す、プログラムを記録した記録媒体を渡す等、いかなる方法であってもよい。アプリケーションプログラム４０１０が複数のソースコードから成る場合は、すべてのソースコードを渡す。
【０１２４】
ＭＦＰ製造業者は、渡されたソースコードを認証データ生成装置３０００の作業メモリに記憶させ、インタフェースを介してＡＰＩ抽出部３１００にＡＰＩの抽出を指示する。
【０１２５】
ＡＰＩ抽出部３１００は、作業メモリからソースコードを読み込む（ステップＳ１００）。
【０１２６】
次に、ＡＰＩ抽出部３１００は、ＡＰＩ抽出リスト３１１０（図６参照）の全のレコードの使用有無３１１１として「×」を設定する。ＡＰＩ名３１１２は、予め設定されているものとする。
【０１２７】
ＡＰＩ抽出部３１００は、ＡＰＩ抽出リスト３１１０の最初のレコードから最後のレコードまで順に（ステップＳ１４０：Ｙｅｓ）、ＡＰＩ名３１１２として設定されているＡＰＩの名称を、アプリケーションプログラムのソースコードから検索する（ステップＳ１１０）。
【０１２８】
ＡＰＩの名称が検索された場合であって、ＡＰＩを実行させるための記載である場合は（ステップＳ１２０：Ｙｅｓ）、そのレコードの使用有無３１１１として「○」を設定する（ステップＳ１３０）。
【０１２９】
ソースコードにＡＰＩの名称が記載されていない、又は、記載されていても実行させるためではない、例えば、コメントとして記載してある等の場合は（ステップＳ１２０：Ｎｏ）、何も設定しない。すなわち、「×」のままとする。
【０１３０】
ＡＰＩ抽出リスト３１１０の最後のレコードまで処理したＡＰＩ抽出部３１００は（ステップＳ１４０：Ｎｏ）、次のソースコードが作業メモリに記憶されている場合は（ステップＳ１５０：Ｙｅｓ）、ステップＳ１１０〜ステップＳ１４０の処理を繰り返す。
【０１３１】
すべてのソースコードからＡＰＩの名称の抽出処理を行ったＡＰＩ抽出部３１００は、ＡＰＩ抽出リスト３１１０を認証データ生成部３２００に渡す。
【０１３２】
ＡＰＩ抽出リスト３１１０を渡された認証データ生成部３２００は、ＡＰＩ抽出リスト３１１０から使用有無３１１１として「○」が設定されているレコードの、ＡＰＩ名３１１２として設定されているＡＰＩの名称を抜き出してＡＰＩリスト５２１０を生成する（ステップＳ１６０）。
【０１３３】
ＡＰＩリスト５２１０を生成した認証データ生成部３２００は、生成したＡＰＩリスト５２１０を認証データ３２１０の項目３２１１「ＡＰＩ情報」の内容３２１２として設定する。また、認証データ生成部３２００は、認証データ３２１０の他の項目３２１１「アプリ名称」等のそれぞれの内容３２１２にデータを設定し、認証データ３２１０を生成する（ステップＳ１７０）。
【０１３４】
認証データ３２１０を生成した認証データ生成部３２００は、認証データ３２１０の項目３２１１「認証キー」の内容３２１２として設定されている鍵を用いて、生成した認証データ３２１０を暗号化する（ステップＳ１８０）。
【０１３５】
ＭＦＰ製造業者は、暗号化された認証データ３２１０をベンダーに渡す。
【０１３６】
＜アプリケーション登録処理＞
図１１は、アプリケーションをＭＦＰ２０００に登録する処理を示すフローチャートである。
【０１３７】
ユーザは、ユーザ端末１０００のインタフェースを介して、登録ツール１４５０を起動し、登録するＭＦＰ２０００を指定する（ステップＳ２００）。
【０１３８】
登録ツールは、指定されたＭＦＰ２０００に、アプリケーションプログラム４０１１に含まれている暗号化認証データ３２１０を送信して登録を要求する（ステップＳ２１０）。
【０１３９】
ＭＦＰ２０００は、暗号化認証データ３２１０及び登録要求を受信すると、アプリ登録部２８００に暗号化認証データ３２１０を渡して、登録を依頼する。
【０１４０】
依頼を受けたアプリ登録部２８００は、内部に鍵を用いて暗号化認証データ３２１０を復号する（ステップＳ２２０）。復号した認証データ３２１０の項目３２１１「認証キー」の内容３２１２として設定されている認証キーが、復号に用いた鍵と同じである場合には、認証データは正当なデータであると判断して肯定的な認証結果とする。内容３２１２として設定されている認証キーが、復号に用いた鍵と異なる場合に、認証データは正当でないデータであると判断して否定的な認証結果とする。また、項目３２１１「有効期限」の内容３２１２として設定されている日時が、現在、すなわち、認証時の日時よりも前である場合には、否定的な認証結果とする。
【０１４１】
アプリ認証部２８１０は、認証結果をアプリ登録部２８００に渡す。また、認証結果が肯定的である場合には、復号した認証データ３２１０もアプリ登録部２８００に渡す。
【０１４２】
認証結果を受け取ったアプリ登録部２８００は、認証結果が否定的であった場合には（ステップＳ２３０：ＮＧ）、登録処理を終了し、ユーザ端末１０００のその旨通知する。
【０１４３】
一方、認証結果が肯定的であった場合には（ステップＳ２３０：ＯＫ）、アプリ登録部２８００は、認証データ３２１０の項目「ＡＰＩ情報」の内容３２１２として設定されているＡＰＩリスト５２１０を、アプリ記憶部５１００に記憶させる（ステップＳ２４０）。
【０１４４】
その後、アプリ登録部２８００は、認証データ３２１０の項目「アプリ名称」の内容３２１２として設定されているアプリケーションの名称等をユーザ情報記憶部５０００に記憶する。この際、登録を要求してきたユーザの識別子（ユーザＩＤ）と対応付けて記憶する。また、登録されたアプリケーションを実行する際に必要な情報等を、ユーザ端末１０００の登録ツール１４５０から取得する（ステップＳ２５０、ステップＳ２６０）。
【０１４５】
＜アプリケーション実行処理＞
図１２は、ＭＦＰ２０００においてアプリケーションを実行する処理を示すフローチャートである。点線で囲った処理は、起動されたアプリケーションが行う処理であり、アプリケーション毎に異なる。ここでは、改ざん検出処理に関する処理を中心に記載している。従って、実際には、ここで記載した処理以外の処理も行われている。
【０１４６】
ユーザは、ＭＦＰ２０００を使用するためにログインを行う。具体的には、ユーザが携帯するＩＣカードを、ＭＦＰ２０００に備えられているＩＣカードリーダ２０ｉにかざす。
【０１４７】
かざされたＩＣカードからユーザＩＤを読み取ったＩＣカードリーダ２０ｉは、読み取ったユーザＩＤを操作部２５００に渡す（ステップＳ３００）。
【０１４８】
ユーザＩＤを受け取った操作部２５００は、受け取ったユーザＩＤをログイン情報認証部２６００に渡して認証を依頼する。
【０１４９】
依頼されたログイン情報認証部２６００は、渡されたユーザＩＤが、ＭＦＰ２０００を使用する権限を有するユーザを示すユーザＩＤとしてユーザ情報記憶部５０００に記憶されているかを確認する。
【０１５０】
記憶されている場合、ログイン情報認証部２６００は肯定的に認証されたと判断し、記憶されていない場合、否定的に認証されたと判断し、その認証結果を操作部２５００に返す。
【０１５１】
認証結果を受け取った操作部２５００は、認証結果が否定的であった場合は処理を終了し、認証結果が肯定的であった場合はログインを受け付け、操作パネル２０ｆに初期画面を表示する。
【０１５２】
ここで、操作部２５００は、ユーザが初期画面においてアプリケーション一覧を表示する操作を行ったことを検知した場合、アプリ選択部２７００にユーザＩＤを渡して、アプリケーション一覧画面２５２０（図９参照）を表示するよう依頼する。
【０１５３】
依頼を受けたアプリ選択部２７００は、ユーザＩＤと対応付けて記憶してあるアプリケーションの名称等をユーザ情報記憶部５０００から読み出して、アプリケーション一覧画面２５２０を操作パネル２０ｆに表示する（ステップＳ３１０）。
【０１５４】
ここで、ユーザは、実行したいアプリケーションを選択する。具体的には、実行したいアプリケーションの名称にカーソル２５２１を移動し、「ＯＫ」ボタンを押下する。
【０１５５】
例えば、図９では、アプリケーションの名称が「ＡＰ−Ｓｃａｎ」のアプリケーションが選択されている。
【０１５６】
アプリケーションが選択されたことを検出した操作部２５００は、選択されたアプリケーションの名称をアプリ選択部２７００に通知する（ステップＳ３２０）。
【０１５７】
通知を受けたアプリ選択部２７００は、通知されたアプリケーションの名称が示すアプリケーション２４００を起動する（ステップＳ３３０）。
【０１５８】
アプリケーション２４００は、ユーザ端末１０００側のアプリケーション１４００を起動する等、必要に応じて初期処理を行う（ステップＳ３４０）。
【０１５９】
初期処理を終えたアプリケーション２４００は、ユーザ端末１０００に要求する処理を示すＸＭＬデータの生成を送信データ生成部２２００に指示し、通信部２１００を介してユーザ端末１０００に送信する。
【０１６０】
ユーザ端末１０００の受信データ解析部１３００は、通信部１１００を介して受信したＸＭＬデータを解析し、解析内容に応じてアプリケーション１４００に処理を依頼する。
【０１６１】
アプリケーション１４００は、処理に応じてＭＦＰ２０００が公開するＡＰＩを実行させるためのＸＭＬデータの生成を送信データ生成部１２００に指示し、通信部１１００を介してＭＦＰ２０００に送信する。
【０１６２】
ＭＦＰ２０００の通信部２１００を介してＸＭＬデータを受信した受信データ解析部２３００は、ＸＭＬデータを解析し、呼び出されているＡＰＩを検出する。
【０１６３】
ＡＰＩが呼び出されていない場合（ステップＳ３５０：Ｎｏ）、受信データ解析部２３００は、ＸＭＬデータが示す指示をアプリケーション２４００に指示する。
【０１６４】
指示を受けたアプリケーション２４００は、処理を行う。
【０１６５】
一方、ＡＰＩが呼び出されている場合（ステップＳ３５０：Ｙｅｓ）、受信データ解析部２３００は、そのＡＰＩの名称がＡＰＩリスト５２１０に登録されているかを確認する。具体的には、そのＡＰＩの名称が、アプリケーション２４００の名称と対応付けてＡＰＩリスト記憶部５２００に記憶されているＡＰＩリスト５２１０の、ＡＰＩ名５２１２として設定されているかを確認する。受信データ解析部２３００は、そのＡＰＩの名称が設定されている場合は登録されていると判断し、設定されていない場合は登録されていないと判断する。
【０１６６】
そのＡＰＩの名称がＡＰＩリスト５２１０に登録されていると判断した場合（ステップＳ３６０：Ｙｅｓ）、受信データ解析部２３００は、そのＡＰＩを実行するようアプリケーション２４００に指示を出す。指示を受けたアプリケーション２４００は、そのＡＰＩを実行する（ステップＳ３７０）。
【０１６７】
アプリケーション２４００の処理が終わるまで（ステップＳ３８０：Ｎｏ）、ステップＳ３５０〜ステップＳ３７０の処理を繰り返し、処理が終了したら（ステップＳ３８０：Ｙｅｓ）、アプリケーション２４００は終了処理を行い、アプリケーション２４００を終了する（ステップＳ３９０）。
【０１６８】
一方、ステップＳ３６０の処理において、そのＡＰＩの名称がＡＰＩリスト５２１０に登録されていないと判断した場合（ステップＳ３６０：Ｎｏ）、受信データ解析部２３００は、エラーメッセージをユーザ端末１０００に対して送信し（ステップＳ３７２）、アプリケーション２４００に終了処理を行わせ、アプリケーション２４００を終了させる（ステップＳ３９０）。
【０１６９】
例えば、図５のアプリケーション「スキャンデータ保存アプリ」を実行する場合を例に取ると、アプリケーション「スキャンデータ保存アプリ」が実行されている間に、「ＡＰＩ９９」という名称のＡＰＩを実行させるようなＸＭＬデータを受信した場合、受信データ解析部２３００は、エラーメッセージをユーザ端末１０００に対して送信し、アプリケーション「スキャンデータ保存アプリ」を終了させる。
＜補足＞
以上、本発明の実施形態について説明したが、本発明は上記形態に限らず、以下のようにしてもよい。
（１）実施形態では、ＡＰＩの名称によって、アプリケーションで呼び出すことが出来るか否かを判断することとしているが、他の条件であってもよい。
【０１７０】
例えば、ＡＰＩの名称だけでなく、パラメータの設定値が所定範囲内である場合にのみ、そのＡＰＩを呼び出すことができることとしてもよい。
【０１７１】
図１３に、ＡＰＩリスト５２２０の構成及び内容の例を示す。ＡＰＩリスト５２２０は、ＡＰＩリスト５２１０に、第１パラメータ５２２３、第２パラメータ５２２４及び第３パラメータ５２２５を追加したものである。
【０１７２】
第１パラメータ５２２３は、第１パラメータで指定可能なデータの範囲を示している。第２パラメータ５２２４及び第３パラメータ５２２５も、同様である。また、「−」は、パラメータが無い、又は、指定可能な範囲が課されていないパラメータであることを示している。
【０１７３】
例えば、ＡＰＩ名５２１２「ＡＰＩ００１」のレコードの第２パラメータ５２２４として「０／１／２」が設定されているので、「０」、「１」、「２」のうちのいずれかを設定することが可能である。従って、「３」が設定された場合は、そのＡＰＩを呼び出すことができない。
【０１７４】
このＡＰＩリスト５２２０の第１パラメータ５２２３等として設定している値は、認証データ生成装置３０００のＡＰＩ抽出部３１００がソースコードからＡＰＩの名称を抽出する際に、同時に抽出する。すなわち、検証時のアプリケーションプログラムにおいてＡＰＩを呼び出す場合にどのような値をパラメータに設定しているかを抽出しておく。そして、実行時に、その値から外れた値をパラメータとして設定したＡＰＩは実行されないようにする。
【０１７５】
図１０の示した認証データ生成処理では、あるＡＰＩの名称をソースコードから検索する場合、ＡＰＩの名称を検出したら、その後のソースコードは検索しないこととしている。しかし、パラメータの設定範囲を抽出する場合は、ソースコードの最後まで検索してパラメータの設定範囲を抽出する必要がある。
（２）実施形態では、ユーザ端末１０００とＭＦＰ２０００との間の通信は、ＸＭＬ形式のデータを用いることとしているが、他のデータ形式であってもよい。ＭＦＰ２０００側で、呼び出されているＡＰＩを検出できればよい。
（３）実施形態では、ＡＰＩリスト５２１０を含んだ認証データ３２１０を暗号化することとしているが、ＡＰＩリスト５２１０を暗号化し、暗号化したＡＰＩリスト５２１０を認証データ３２１０に含ませることとしてもよい。また、認証データ３２１０の認証の方法は、実施形態の例に限られない。
（４）実施形態では、ソースコードに含まれるＡＰＩの名称を抽出することとしているが、他の方法を用いてもよい。
【０１７６】
例えば、ＡＰＩに識別コードを振っておき、その識別コードを第１パラメータに設定してＡＰＩを呼び出すこととする。そして、その識別コードを抽出し、ＡＰＩ名５２１２に識別コードを設定したＡＰＩリスト５２１０を作成することとしてもよい。
【０１７７】
また、実施形態では、実行時に呼び出すことができる個々のＡＰＩをＡＰＩリスト５２１０で管理しているが、ＡＰＩをグループ化して、グループ単位で管理することとしてもよい。例えば、データを読み出すＡＰＩであれば、いずれのＡＰＩでも呼び出し可能とする等である。
【０１７８】
また、ソースコードから抽出するＡＰＩは、特定のＡＰＩのみに限ることとしてもよい。例えば、適切に実行されなかった場合の影響が大きいＡＰＩである。
（５）改ざん検出システムは、図３等の各装置の構成要素の全部又は一部を、１チップ又は複数チップの集積回路で実現してもよい。
（６）改ざん検出システムは、図３等の各装置の構成要素の全部又は一部を、コンピュータのプログラムで実現してもよいし、その他どのような形態で実施してもよい。
【０１７９】
コンピュータプログラムの場合、メモリカード、ＣＤ−ＲＯＭ等いかなる記録媒体に書き込まれたものをコンピュータに読み込ませて実行させる形にしてもよいし、ネットワークを経由してプログラムをダウンロードして実行させる形にしてもよい。
【符号の説明】
【０１８０】
１００  改ざん検出システム
２０ｈ  印刷装置
２０ｆ  操作パネル
１００  改ざん検出システム
１０００  １００１  １００２  ユーザ端末
１０１０  認証サーバ
１０２０  印刷ジョブ蓄積サーバ装置
１１００  ２１００  通信部
１２００  ２２００  送信データ生成部
１３００  ２３００  受信データ解析部
１４００  ２４００  アプリケーション
１４５０  登録ツール
１５００  アプリケーションプログラム記憶部
２５００  操作部
２５２０  アプリケーション一覧画面
２５２１  カーソル
２６００  ログイン情報認証部
２７００  アプリ選択部
２８００  アプリ登録部
２８１０  アプリ認証部
３０００  認証データ生成装置
３１００  ＡＰＩ抽出部
３１１０  ＡＰＩ抽出リスト
３２００  認証データ生成部
３２１０  認証データ
４０００  アプリ開発装置
４０１０  ４０１１  アプリケーションプログラム
５０００  ユーザ情報記憶部
５１００  アプリ記憶部
５２００  ＡＰＩリスト記憶部
５２１０  ５２２０  ＡＰＩリスト
５３００      ＡＰＩプログラム記憶部
【図１】
2011233049.tif 000003
【図２】
2011233049.tif 000004
【図３】
2011233049.tif 000005
【図４】
2011233049.tif 000006
【図５】
2011233049.tif 000007
【図６】
2011233049.tif 000008
【図７】
2011233049.tif 000009
【図８】
2011233049.tif 000010
【図９】
2011233049.tif 000011
【図１０】
2011233049.tif 000012
【図１１】
2011233049.tif 000013
【図１２】
2011233049.tif 000014
【図１３】
2011233049.tif 000015