(57)【要約】【課題】画像入力装置によって生成された画像データの非改竄性を適切に検証する。【解決手段】情報処理装置（ホストコンピュータ）１００は、画像データを入力する入力手段と、特定の画像入力装置の製造者のリストである製造者リストに基づいて、入力手段により入力された画像データに付与された証明書の中から、製造者リストに含まれる製造者に対応する製造者証明書を検索する検索手段と、検索手段により製造者証明書が検索された場合、入力手段により入力された画像データは、特定の画像入力装置によって発生された画像データであると判断する判断手段と、を備える。【選択図】      図１０
2017220823.tif 000002
【特許請求の範囲】
【請求項１】
画像データを入力する入力手段と、
特定の画像入力装置の製造者のリストである製造者リストに基づいて、前記入力手段により入力された画像データに付与された証明書の中から、前記製造者リストに含まれる前記製造者に対応する製造者証明書を検索する検索手段と、
前記検索手段により前記製造者証明書が検索された場合、前記入力手段により入力された画像データは、前記特定の画像入力装置によって発生された画像データであると判断する判断手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記画像データに付与された証明書は、前記証明書の主体者を識別するための主体者情報を含み、
前記検索手段は、
前記主体者情報が、前記製造者リストに含まれる前記画像入力装置の製造者を示す情報と一致する場合、前記製造者証明書が検索されたと判断することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検索手段は、
さらに、特定の画像入力装置が備えるセキュアチップのリストであるセキュアチップリストに基づいて、前記入力手段により入力された画像データに付与された証明書の中から、前記セキュアチップリストに含まれる前記セキュアチップに対応するセキュアチップ証明書を検索し、
前記判断手段は、
前記検索手段により前記セキュアチップ証明書が検索された場合、さらに、前記入力手段により入力された画像データは、前記特定の画像入力装置が備えるセキュアチップによって保護された署名鍵を用いて署名された画像データであると判断することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記画像データに付与される証明書は、前記証明書の主体者を識別するための主体者情報を含み、
前記検索手段は、
前記主体者情報が、前記セキュアチップリストに含まれる前記セキュアチップを示す情報と一致する場合、前記セキュアチップ証明書が検索されたと判断することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記画像データに付与された複数の証明書の階層構造を示す証明書パスを構築する構築手段と、
前記構築手段により構築された証明書パスに基づいて、前記製造者証明書が前記セキュアチップ証明書よりも上位に位置するか否かを判定する判定手段と、をさらに備え、
前記判断手段は、
前記検索手段により前記製造者証明書と前記セキュアチップ証明書とが検索され、前記判定手段により前記製造者証明書が前記セキュアチップ証明書よりも上位に位置すると判定された場合、さらに、前記構築手段によって構築された証明書パスは適正であると判断することを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
前記セキュアチップを示す情報を取得し、前記セキュアチップリストを更新する第一の更新手段をさらに備えることを特徴とする請求項３から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記画像入力装置の製造者を示す情報を取得し、前記製造者リストを更新する第二の更新手段をさらに備えることを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
画像データを入力するステップと、
特定の画像入力装置の製造者のリストである製造者リストに基づいて、前記入力された画像データに付与された証明書の中から、前記製造者リストに含まれる前記製造者に対応する製造者証明書を検索するステップと、
前記製造者証明書が検索された場合、前記入力された画像データは、前記特定の画像入力装置によって発生された画像データであると判断するステップと、を含むことを特徴とする情報処理方法。
【請求項９】
コンピュータを、請求項１から７のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを記録した、コンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの原本性（非改竄性）を確認するための情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
画像データの原本性を保証するために、特許文献１には、画像データを生成したデバイス（画像入力装置）に固有の署名鍵（秘密鍵）を用いて画像データに署名する点が開示されている。この特許文献１の技術では、デバイスが画像データを生成した後、デバイス内においてデバイス固有の署名鍵を用いて署名データを生成し、署名データとデバイス固有の証明書とを併せて画像データに付与するようにしている。
このようにして生成された画像データの署名検証や証明書の検証を行うことにより、画像データが改竄されていないことに加え、画像データを生成したデバイスを認証することができる。証明書の検証を行う方法としては、証明書の階層構造を示す証明書パスを構築し、各階層における証明書の署名検証や有効期限確認などを実行する方法がある（ＩＥＴＦ  ＲＦＣ２４５９）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２７４４０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の証明書の検証方法においては、画像データの署名に用いた署名鍵が、デバイス内で安全に管理された、デバイスに固有な署名鍵であることを検証することは全く考慮されていない。そのため、デバイス外に漏洩した署名鍵や偽造された署名鍵を用いて署名された改竄画像についても署名検証が成功してしまい、適切に改竄を検出することができない。
そこで、本発明は、画像入力装置によって生成された画像データの非改竄性を適切に検証することを目的としている。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る情報処理装置の一態様は、画像データを入力する入力手段と、特定の画像入力装置の製造者のリストである製造者リストに基づいて、前記入力手段により入力された画像データに付与された証明書の中から、前記製造者リストに含まれる前記製造者に対応する製造者証明書を検索する検索手段と、前記検索手段により前記製造者証明書が検索された場合、前記入力手段により入力された画像データは、前記特定の画像入力装置によって発生された画像データであると判断する判断手段と、を備える。
【発明の効果】
【０００６】
本発明によれば、画像入力装置によって生成された画像データの非改竄性を適切に検証することができる。
【図面の簡単な説明】
【０００７】
【図１】本実施形態における情報処理装置のハードウェア構成図である。
【図２】画像署名処理を説明するフローチャートである。
【図３】証明書の構成および画像データの出力例である。
【図４】画像改竄検出処理を説明するフローチャートである。
【図５】証明書パス構築処理を説明するフローチャートである。
【図６】証明書確認処理を説明するフローチャートである。
【図７】カメラベンダ証明書検索処理を説明するフローチャートである。
【図８】ＴＰＭ証明書検索処理を説明するフローチャートである。
【図９】画像検証ツールの画面構成例である。
【図１０】画像改竄検出処理の例（処理例１）である。
【図１１】画像改竄検出処理の例（処理例２）である。
【図１２】画像改竄検出処理の例（処理例３）である。
【図１３】画像改竄検出処理の別の例を説明するフローチャートである。
【図１４】証明書パス構築処理の別の例を説明するフローチャートである。
【図１５】証明書確認処理の別の例を説明するフローチャートである。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、本発明を実施するための形態について詳細に説明する。なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
図１は、本実施形態における情報処理装置およびその周辺機器のハードウェア構成図である。図１では、情報処理装置（ホストコンピュータ）１００、および周辺機器である画像入力装置２００Ａ、２００Ｂのハードウェアの基本構成を示している。
ホストコンピュータ１００は、例えばパーソナルコンピュータ（ＰＣ）、情報携帯端末、或いは画像データのコピー、スキャン、プリント等を実行可能な画像処理装置により構成することができる。また、画像入力装置２００Ａ、２００Ｂは、例えばデジタルカメラ、スキャナ、スマートフォン、タブレット、或いは複合機により構成することができる。本実施形態では、画像入力装置２００Ａおよび２００Ｂがデジタルカメラ（以下、「カメラ」という。）である場合について説明する。
【０００９】
まず、ホストコンピュータ１００の構成について説明する。
ホストコンピュータ１００は、モニタ１０１、ＣＰＵ１０２、ＲＯＭ１０３、ＲＡＭ１０４、ＨＤ１０５、ＣＤ１０６、ＤＶＤ１０７、外部メモリ１０８、ＮＩＣ１０９、およびＩ／Ｆ１１０を備える。これらは夫々バス１１１によって接続されている。
モニタ１０１は、ホストコンピュータ１００における種々の情報を表示することができる。ＣＰＵ１０２は、ホストコンピュータ１００内の各部の動作を総括的に制御する。
ＲＯＭ１０３は、ＢＩＯＳ（Basic Input Output System）やブートプログラムを記憶している不揮発性メモリである。ＲＡＭ１０４は、ＣＰＵ１０２が処理を実行するために、一時的にプログラムや処理対象の画像データ、或いはキャッシュを格納しておくことができる。つまり、ＲＡＭ１０４には、ＯＳやＣＰＵ１０２が後述の各種処理を行うためのプログラムがロードされることになる。ＣＰＵ１０２は、処理の実行に際してＲＯＭ１０３から必要なプログラムをＲＡＭ１０４にロードし、ロードしたプログラムを実行することで各種の機能動作を実現する。
【００１０】
ＨＤ１０５は、ＲＡＭ１０４に転送されるＯＳ、プログラム、キャッシュ、画像データを格納したり、ホストコンピュータ１００の動作中に画像データを格納したり読出したりするために使用されるハードディスクである。
ＣＤ１０６は、外部記憶媒体の１つであるＣＤ−ＲＯＭ（ＣＤ−Ｒ）に記憶された画像データやプログラムを読み込み、或いは書き出すことのできるＣＤ−ＲＯＭドライブである。ＤＶＤ１０７は、ＣＤ−ＲＯＭドライブと同様にＤＶＤ−ＲＯＭからの読み込み、ＤＶＤ−ＲＡＭへの書き出しができるＤＶＤ−ＲＯＭ（ＤＶＤ−ＲＡＭ）ドライブである。外部メモリ１０８は、ＣＤ−ＲＯＭドライブと同様に外部メモリからの読み込み、および書き出しができる外部メモリスロットである。
なお、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、外部メモリ等に画像処理用のプログラムが記憶されている場合には、これらプログラムをＨＤ１０５にインストールし、必要に応じてＲＡＭ１０４に転送されるようになっている。
【００１１】
ＮＩＣ１０９は、ホストコンピュータ１００をインターネットなどのネットワークに接続するためのネットワークインターフェイスカード（ＮＩＣ）である。ホストコンピュータ１００は、ＮＩＣ１０９を介してネットワークへ各種データを送信したり、ネットワークから各種データを受信したりすることができる。
Ｉ／Ｆ１１０は、ポインティングデバイス（マウス）１２１やキーボード１２２を接続するためのインタフェースであり、Ｉ／Ｆ１１０を介してマウス１２１やキーボード１２２から入力された各種の指示がＣＰＵ１０２に入力されるようになっている。
【００１２】
次に、カメラ２００Ａの構成について説明する。
カメラ２００Ａは、ＲＯＭ２０１、保管用メモリ２０２、作業用メモリ２０３、ＣＰＵ２０４、操作部２０５、光学系２０６、駆動部２０７、Ｉ／Ｆ２０８を備える。これらは夫々バス２０９によって接続されている。
ＲＯＭ２０１は、読み出し専用メモリであり、予め動作プログラムや、後述する画像署名処理に必要な共有情報である署名鍵や証明書を格納することができる。保管用メモリ２０２は、処理済の画像データを格納することができる。作業用メモリ２０３は、画像データを一時的に保管し、作業用メモリ２０３上において、画像データの圧縮および各種演算処理を行うことができる。
【００１３】
ＣＰＵ２０４は、操作部２０５を介して撮像指示がなされた際に、ＲＯＭ２０１に格納されているプログラムに従い、画像データの圧縮処理や画像署名処理といった各種演算処理を実行する。ここで、操作部２０５は、撮像者の撮像指示、および種々のパラメータの設定をはじめとする各種の指示を受け付けるためのユーザインタフェースである。
光学系２０６は、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の光学センサを含んで構成される。光学系２０６は、操作部２０５を介して撮像指示がなされると、被写体の撮像、電気信号処理、デジタル信号処理等を行う。光学系２０６により生成されたデジタル画像データは、保管用メモリ２０２などへ蓄積することが可能である。
駆動部２０７は、撮像に必要な機械的な動作をＣＰＵ２０４の制御のもとで行う。Ｉ／Ｆ２０８は、メモリカード、携帯端末、通信装置といった外部装置とのインタフェースであり、画像データをこれらの機器へ送信する際に使用される。
【００１４】
次に、カメラ２００Ｂの構成について説明する。このカメラ２００Ｂは、ＴＰＭ２１０を備える点を除いては、上述したカメラ２００Ａと同様の構成を有する。したがって、以下、構成の異なる部分を中心に説明する。
ＴＰＭ（Trusted Platform Module）は、耐タンパー性を備えるセキュアチップである。ＴＰＭは、内部に不揮発性メモリを備える。カメラ２００Ａでは、署名鍵および証明書がＲＯＭ２０１に保存されているのに対し、カメラ２００Ｂでは、署名鍵および証明書がＴＰＭ２１０によって管理される。
尚、本実施形態ではＴＰＭを適用するものとして説明するが、セキュアチップはＴＰＭに限定されるものではなく、ＴＰＭ以外の種々のセキュアチップを適用可能である。ＴＰＭ以外のセキュアチップを適用する場合、各装置の構成はＴＰＭをセキュアチップに置き換えればよく、また、当該セキュアチップがＴＰＭと同等の機能を提供するものとして考えればよい。
【００１５】
＜画像署名処理＞
図２（ａ）は、カメラ２００Ａにおいて実行される画像署名処理の流れを説明するフローチャートである。この図２（ａ）の処理は、例えば撮像指示がなされたタイミングで開始される。ただし、図２（ａ）の処理の開始タイミングは、上記のタイミングに限らない。カメラ２００Ａは、ＣＰＵ２０４が必要なプログラムを読み出して実行することにより、図２（ａ）に示す処理を実現することができる。以降、アルファベットＳはフローチャートにおけるステップを意味するものとする。
Ｓ１において、カメラ２００Ａは、光学系２０６によって生成された信号をイメージ情報として取得し、画像データを発生する。画像データは、所定のフォーマットに従ってデジタルデータ化される。画像データのフォーマットは特に限定されるものではなく、ＪＰＥＧ、ＴＩＦＦ、ＲＡＷなど種々のフォーマットを適応可能である。発生した画像データは、一旦、作業用メモリ２０３に保管される。
【００１６】
Ｓ２では、カメラ２００Ａは、ＲＯＭ２０１から署名鍵を取得する。署名鍵は、画像入力装置（カメラ）毎に固有であり、予めＲＯＭ２０１に保持されているものとする。なお、ＲＯＭ２０１に保持されている署名鍵が暗号化、或いは難読化されている場合、カメラ２００Ａは、このＳ２において署名鍵を利用できるように復号化、或いは逆難読化するものとする。
本実施形態では、上記のように、画像入力装置毎に固有の署名鍵を適用するものとして説明するが、画像入力装置のモデル、仕向け地域、シリアル番号等によりグループ化されたグループ毎に固有の署名鍵を適用するようにしてもよい。さらに、画像入力装置の利用者、グループ、役割毎に固有の署名鍵を適用するようにしてもよい。この場合、メモリカードに記録されている署名鍵をＩ／Ｆ２０８経由で取得するようにすればよい。或いは、携帯端末、通信装置に記録されている署名鍵をＩ／Ｆ２０８経由で取得するようにしてもよい。
【００１７】
Ｓ３では、カメラ２００Ａは、Ｓ２において取得した署名鍵を用いて署名データを生成する。署名データを生成する署名アルゴリズムは特に限定されるものではなく、ＲＳＡ（Rivest Shamir Adleman）やＤＳＡ（Digital Signature Algorithm）など種々の署名生成アルゴリズムを適用可能である。Ｓ１において発生した画像データのハッシュ値を生成し、生成したハッシュ値、および署名鍵から署名データを生成するようにしてもよい。ハッシュ値を生成するためのハッシュ関数は特に限定されるものではなく、ＳＨＡ１（Secure Hash Algorithm 1）やＳＨＡ２５６など種々のハッシュ関数を適用可能である。
なお、適用した署名生成アルゴリズムおよびハッシュ関数を識別する情報を、画像データに付与される証明書内に含めるようにしてもよい。
【００１８】
Ｓ４では、カメラ２００Ａは、ＲＯＭ２０１からカメラ証明書を取得する。カメラ証明書は、前述した署名鍵に対応し、画像入力装置であるカメラ２００Ａの正当性を証明するものである。
ここで、本実施形態における証明書の構成について、図３（ａ）を参照しながら説明する。図３（ａ）に示すように、証明書１０には、証明書１０の発行者情報１１、証明書１０の主体者情報１２、証明書１０の署名１３、および公開鍵１４が含まれる。
発行者情報１１は、証明書１０を発行した機関（発行者）を識別するための情報である。本実施形態では、発行者情報１１は所定の文字列とし、国名、組織名、部門名、一般名を含むことができるものとする。主体者情報１２は、証明書１０の所有者（主体者）を識別するための情報である。本実施形態では、主体者情報１２は、発行者情報１１と同様に所定の文字列とし、国名、組織名、部門名、一般名を含むことができるものとする。
【００１９】
署名１３は、証明書１０が偽造されないようにするために使用されるものであり、上記の発行者が主体者の正当性を確認した後、その証として生成されるものである。署名１３は、発行者情報１１、主体者情報１２、および公開鍵１４を含むデータから、発行者の署名鍵を用いて生成することができる。公開鍵１４は、主体者の公開鍵であり、Ｓ２においてＲＯＭ２０１から取得される署名鍵に対応するものである。
なお、本実施形態では、証明書１０の構成として、発行者情報１１、主体者情報１２、署名１３、および公開鍵１４を含む場合について説明するが、証明書１０の構成は上記に限定されない。証明書１０は、上記の情報の他に、証明書１０の検証に必要となる種々のデータを含むことができる。例えば、証明書１０には、証明書１０の有効期限、署名生成アルゴリズム、証明書１０の識別子、失効確認するためのＵＲＬなどを含めてもよい。
【００２０】
図２のＳ４において取得されるカメラ証明書は、図３（ａ）の主体者情報１２として、カメラを識別する情報を記録してある証明書である。カメラを識別する情報としては、カメラ名、カメラのシリアルナンバー、カメラのモデル名、仕向け地域などを含めることができる。
また、本実施形態においては、カメラ証明書は、カメラ２００Ａを製造したカメラベンダが発行するものとする。つまり、カメラ証明書における図３（ａ）の発行者情報１１としては、カメラベンダを識別する情報が記録してある。カメラベンダは、カメラ２００Ａが正当であることを証明し、その証としてカメラベンダの署名鍵を用いてカメラ証明書に署名する。
なお、本実施形態においては、画像入力装置がカメラであるものとして説明するが、画像入力装置は、画像データを発生する装置であればよく、スマートフォン、タブレット、スキャナ、複合機、ビデオカメラなどであってもよい。つまり、図２のＳ４において取得される証明書は、画像入力装置に応じてカメラ証明書以外にもなり得る。
【００２１】
Ｓ５では、カメラ２００Ａは、ＲＯＭ２０１からカメラベンダ証明書を取得する。カメラベンダ証明書は、画像入力装置であるカメラ２００Ａを製造したカメラベンダの正当性を証明するものである。本実施形態では、画像入力装置がカメラであるため、カメラベンダ証明書として説明する。しかしながら、画像入力装置は、上述したようにカメラに限定されるものではなく、画像入力装置がスマートフォンである場合は、上記のカメラベンダ証明書はスマートフォンベンダ証明書となる。つまり、このＳ５では、画像入力装置の製造者の正当性を証明する製造者証明書を取得する。
【００２２】
カメラベンダ証明書は、図３（ａ）の主体者情報１２として、カメラベンダを識別する情報を記録してある証明書である。カメラベンダを識別する情報としては、カメラベンダ名、カメラベンダのＩＤ、カメラベンダの国籍などを含めることができる。また、本実施形態においては、カメラベンダ証明書は、ルート認証局が発行するものとする。つまり、カメラベンダ証明書における図３（ａ）の発行者情報１１としては、ルート認証局を識別する情報が記録してある。
ルート認証局は、自分の正当性を自ら証明する認証局である。ルート認証局は、カメラベンダの正当性を証明し、その証としてルート認証局の署名鍵を用いてカメラベンダ証明書に署名する。なお、本実施形態において、カメラベンダの正当性とは、カメラベンダが正しく画像入力装置（カメラ）を製造していることである。
【００２３】
Ｓ６では、カメラ２００Ａは、Ｓ１において発生した画像データを、Ｓ３において生成された署名データ、Ｓ４において取得されたカメラ証明書、およびＳ５において取得されたカメラベンダ証明書と共に出力する。本実施形態では、カメラ２００Ａは、図３（ｂ）に示すように、画像データ２１、画像データの署名２２、カメラ証明書２３、およびカメラベンダ証明書２４を合成し、１つの画像ファイル２０Ａとして出力する。具体的には、カメラ２００Ａは、画像ファイル２０Ａを、Ｉ／Ｆ２０８経由でメモリカード、携帯端末、通信装置、或いは保管用メモリ２０２等に出力する。
【００２４】
次に、カメラ２００Ｂにおいて実行される画像署名処理について説明する。
図２（ｂ）は、カメラ２００Ｂにおいて実行される画像署名処理の流れを説明するフローチャートである。この図２（ｂ）の処理は、図２（ａ）の処理と同様に、例えば撮像指示がなされたタイミングで開始される。ただし、図２（ｂ）の処理の開始タイミングは、上記のタイミングに限らない。カメラ２００Ｂは、ＣＰＵ２０４が必要なプログラムを読み出して実行することにより、図２（ｂ）に示す処理を実現することができる。
この図２（ｂ）において、図２（ａ）と同一の処理には同一ステップ番号を付し、以下、処理の異なる部分を中心に説明する。
【００２５】
カメラ２００Ｂは、Ｓ１において画像データを発生した後、Ｓ７において、ＴＰＭ２１０から署名鍵を取得する。署名鍵は、画像入力装置毎に固有である。本実施形態では、ＴＰＭ２１０内の暗号鍵を用いて暗号化された署名鍵がＲＯＭ２０１に予め保管されているものとする。Ｓ７では、カメラ２００Ｂは、ＲＯＭ２０１内に保管されている暗号化された署名鍵を、ＴＰＭ２１０を用いて復号することにより、署名鍵を取得する。このように、署名鍵は、ＴＰＭ２１０を用いて保護されており、カメラ２００Ｂ外に漏洩しにくいように管理されている。
なお、署名鍵の管理方法は上記に限定されるものではなく、ＴＰＭ２１０内の不揮発性メモリの中に署名鍵を保管しておき、所定の条件を満たす場合にのみ署名鍵を利用可能に構成することもできる。この場合、Ｓ７では、カメラ２００Ｂは、所定の条件を満たすか否かを判定し、所定の条件を満たす場合に署名鍵をＴＰＭ２０１から出力するようにすればよい。
【００２６】
また、カメラ２００Ｂは、Ｓ３において署名データを生成した後、Ｓ８において、ＴＰＭ２１０からカメラ証明書を取得する。このＳ８において取得されるカメラ証明書の主体者情報１２は、上述した図２（ａ）のＳ４において取得されるカメラ証明書の主体者情報１２と同様である。一方、図２（ａ）のＳ４において取得されるカメラ証明書の発行者はカメラベンダであったが、Ｓ８において取得されるカメラ証明書の発行者はＴＰＭ２１０となる。つまり、カメラ証明書における発行者情報１１としては、ＴＰＭを識別する情報が記録してある。ＴＰＭ２１０は、署名鍵がＴＰＭで保護されている証として、ＴＰＭ２１０の内部でＴＰＭの署名鍵を用いてカメラ証明書に署名する。
Ｓ９では、カメラ２００Ｂは、ＴＰＭ２１０からカメラベンダ証明書を取得する。このＳ９において取得されるカメラベンダ証明書は、図２（ａ）のＳ５において取得されるカメラベンダ証明書と同様である。
【００２７】
Ｓ１０では、カメラ２００Ｂは、ＴＰＭ２１０からＴＰＭ証明書を取得する。
ＴＰＭ証明書は、主体者情報１２としてＴＰＭを識別する情報を記録してある証明書である。ＴＰＭを識別する情報としては、ＴＰＭ名、ＴＰＭのシリアルナンバー、ＴＰＭの識別子、ＴＰＭのモデル名、ＴＰＭのベンダ名などを含めることができる。また、本実施形態において、ＴＰＭ証明書は、カメラベンダが発行するものとする。つまり、ＴＰＭ証明書における発行者情報１１としては、カメラベンダを識別する情報が記録してある。カメラベンダは、ＴＰＭ２１０が画像入力装置であるカメラ２００Ｂ内に内蔵されていることを証明し、その証としてカメラベンダの署名鍵を用いてＴＰＭ証明書に署名する。
本実施形態では、ＴＰＭ２１０内の不揮発性メモリの中にカメラ証明書、カメラベンダ証明書、およびＴＰＭ証明書を保管しておき、所定の条件を満たす場合にのみ各証明書を利用可能とする。つまり、Ｓ８〜Ｓ１０では、カメラ２００Ｂは、それぞれ所定の条件を満たすか否かを判定し、所定の条件を満たす場合に各証明書をＴＰＭ２１０から出力するようにする。
【００２８】
Ｓ１１では、カメラ２００Ｂは、Ｓ２において発生された画像データを、Ｓ３において  生成された署名データ、Ｓ８において取得されたカメラ証明書、Ｓ９において取得されたカメラベンダ証明書およびＳ１０において取得されたＴＰＭ証明書と共に出力する。本実施形態では、カメラ２００Ｂは、図３（ｃ）に示すように、画像データ２１、画像データの署名２２、カメラ証明書２３、ＴＰＭ証明書２５およびカメラベンダ証明書２４を合成し、１つの画像ファイル２０Ｂとして出力する。具体的には、カメラ２００Ｂは、画像ファイル２０Ｂを、Ｉ／Ｆ２０８経由でメモリカード、携帯端末、通信装置、或いは保管用メモリ２０２等に出力する。
【００２９】
＜画像改竄検出処理＞
次に、情報処理装置であるホストコンピュータ１００が実行する画像データの原本性（非改竄性）を確認するための画像改竄検出処理について説明する。本実施形態では、ホストコンピュータ１００は、処理対象をカメラ２００Ａ、２００Ｂにより撮像されたとされる画像データとし、処理対象である画像データがカメラ２００Ａ、２００Ｂにより生成され改竄されていないことを検証する処理を行う。
図４は、ホストコンピュータ１００において実行される画像改竄検出処理の流れを説明するフローチャートである。この図４の処理は、例えばユーザ指示がなされたタイミングで開始される。ただし、図４の処理の開始タイミングは、上記のタイミングに限らない。ホストコンピュータ１００は、ＣＰＵ１０２が必要なプログラムを読み出して実行することにより、図４に示す処理を実現することができる。
【００３０】
先ず、Ｓ２１では、ホストコンピュータ１００は、処理対象となる画像データを、メモリカード、或いは通信装置経由で入力する。処理対象となる画像データが改竄されていない画像データである場合、Ｓ２１において入力される画像データは、画像入力装置であるカメラ２００Ａ、２００Ｂが図２（ａ）のＳ６や図２（ｂ）のＳ１１において出力したとされる画像データである。本実施形態においては、ホストコンピュータ１００の利用者が、マウス１２１やキーボード１２２を用いて、後述する画像検証ツール上において処理対象とする画像データを選択するものとする。ただし、処理対象とする画像データの選択方法（入力方法）は上記に限定されるものではない。
Ｓ２２では、ホストコンピュータ１００は、Ｓ２１において入力された画像データに付与されている証明書と、ホストコンピュータ１００内のＨＤ１０５に記録されている証明書とを用いて、証明書パスを構築する証明書パス構築処理を実行する。ここで、証明書パスとは、画像データに付与された複数の証明書の階層構造を示すものである。証明書パス構築処理においては、証明書パスの構築が成功したか否かが判定される。証明書パス構築処理については後述する。
【００３１】
Ｓ２３では、ホストコンピュータ１００は、証明書パス構築処理において証明書パスの構築が成功したか否かを判定する。そして、ホストコンピュータ１００は、証明書パスの構築に失敗したと判定した場合にはＳ２４に移行し、証明書パスの構築に成功したと判定した場合にはＳ２７に移行する。
Ｓ２４では、ホストコンピュータ１００は、新たな証明書を証明書パスに追加するか否かを判定する。具体的には、ホストコンピュータ１００は、モニタ１０１に証明書の追加の是非を問い合わせる画面を表示することで、ホストコンピュータ１００のユーザに対し新たな証明書を証明書パスに追加するかを問い合わせる。このとき、ユーザは、マウス１２１やキーボード１２２を用いて、証明書を追加するか否かを選択することができる。
【００３２】
ホストコンピュータ１００は、Ｉ／Ｆ１１０を介してユーザ指示を入力し、ユーザが証明書の追加を指示していると判定した場合にはＳ２５に移行し、ユーザが証明書の追加を指示していないと判定した場合にはＳ２６に移行する。
Ｓ２５では、ホストコンピュータ１００は、証明書パスに新たな証明書を追加する証明書追加処理を実行する。具体的には、証明書追加処理では、ホストコンピュータ１００は、ユーザがＨＤ１０５、ＣＤ１０６、ＤＶＤ１０７、或いは外部メモリ１０８に保管されている証明書の中から選択した、信頼できる証明書を証明書パスに追加する。その際、ユーザは、マウス１２１やキーボード１２２を用いて、追加する証明書を選択することができる。この証明書追加処理では、Ｓ２１において入力された画像データ内に証明書を追加してもよいし、ＨＤ１０５内の証明書ストアに証明書を追加してもよい。
Ｓ２６では、ホストコンピュータ１００は、証明書パスの構築が失敗したと判断し、Ｓ３５に移行する。
【００３３】
Ｓ２７では、ホストコンピュータ１００は、Ｓ２２において構築された証明書パス内にカメラベンダ証明書およびＴＰＭ証明書が存在しているか否かを確認する証明書確認処理を実行する。証明書確認処理については後述する。
Ｓ２８では、ホストコンピュータ１００は、Ｓ２７における証明書確認処理の結果、証明書パス内にカメラベンダ証明書の存在を確認できたか否かを判定する。そして、ホストコンピュータ１００は、カメラベンダ証明書の存在を確認できなかった場合にはＳ２９に移行する。Ｓ２９では、ホストコンピュータ１００は、Ｓ２１において入力された画像データが画像入力装置であるカメラ２００Ａ、２００Ｂで撮像された画像データではないと判断し、Ｓ３０に移行する。Ｓ３０では、ホストコンピュータ１００は、画像データの正当性が検証できず検証失敗と判断して処理を終了する。
【００３４】
一方、Ｓ２８において、ホストコンピュータ１００がカメラベンダ証明書の存在を確認できた場合には、Ｓ３１に移行する。Ｓ３１では、ホストコンピュータ１００は、Ｓ２７における証明書確認処理の結果、証明書パス内にＴＰＭ証明書の存在を確認できたか否かを判定する。そして、ホストコンピュータ１００は、ＴＰＭ証明書の存在を確認できなかった場合にはＳ３２に移行し、Ｓ２１において入力された画像データを発生した画像入力装置は、署名鍵をＴＰＭで保護していないと判定し、Ｓ３５に移行する。
一方、ホストコンピュータ１００は、Ｓ３１においてＴＰＭ証明書の存在を確認できた場合にはＳ３３に移行する。Ｓ３３では、ホストコンピュータ１００は、Ｓ２１において入力された画像データを発生した画像入力装置は、署名鍵をＴＰＭで保護していると判定し、Ｓ３４に移行する。
【００３５】
Ｓ３４では、ホストコンピュータ１００は、証明書パス内において、カメラベンダ証明書がＴＰＭ証明書よりも上位に位置しているか否かを判定する。本実施形態では、Ｓ３４における処理を証明書パス確認処理と呼ぶ。そして、ホストコンピュータ１００は、カメラベンダ証明書がＴＰＭ証明書よりも上位に存在する場合には、証明書パスが適正であるとしてＳ３５に移行し、カメラベンダ証明書がＴＰＭ証明書よりも上位に存在しない場合には、Ｓ３０に移行し検証失敗となる。
具体的には、証明書パス確認処理では、ＴＰＭ証明書の発行者情報１１が、カメラベンダ証明書の主体者情報１２と一致している場合に、カメラベンダ証明書がＴＰＭ証明書よりも上位に存在すると判断することができる。カメラベンダ証明書がＴＰＭ証明書よりも下位に存在する場合、ＰＣ上のＴＰＭを用いて、偽造したカメラベンダ証明書に署名している可能性がある。つまり、カメラベンダ証明書がＴＰＭ証明書よりも下位に存在する場合、攻撃者のＰＣがカメラベンダになりすましている可能性がある。上記の証明書パス確認処理では、ホストコンピュータ１００は、ＴＰＭが画像入力装置に内蔵されたＴＰＭであるか否かを確認することができる。
【００３６】
Ｓ３５では、ホストコンピュータ１００は、Ｓ２２において構築された証明書パスに含まれる全ての証明書の署名を、各証明書の発行者の公開鍵を用いて検証する。次にＳ３６では、ホストコンピュータ１００は、Ｓ３５における検証の結果、全ての証明書について署名の検証に成功したか否かを判定する。そして、ホストコンピュータ１００は、検証に失敗した証明書が存在する場合、Ｓ３０に移行し、全ての証明書の検証に成功した場合、Ｓ３７に移行する。Ｓ３７では、ホストコンピュータ１００は、Ｓ２１において入力された画像データは改竄されておらず、検証成功と判定して処理を終了する。
【００３７】
＜証明書パス構築処理＞
図５は、図４のＳ２２において実行される証明書パス構築処理を示すフローチャートである。証明書パス構築処理では、複数の証明書の中から、第一の証明書の発行者と同じ主体者である第二の証明書を検索する。検索に成功した場合、次に第二の証明書の発行者と同じ主体者である第三の証明書を検索する。これを繰り返すことにより、証明書パスを構築する。
Ｓ２２１では、ホストコンピュータ１００は、着目する証明書を示すカウンタｉを「１」に初期化する。次にＳ２２２では、ホストコンピュータ１００は、図４のＳ２１において入力された画像データ内に含まれる証明書のうち、ｉ番目の証明書に着目する。以下、ｉ番目の証明書を証明書（ｉ）とする。なお、証明書パス構築処理では、画像ファイル中でファイルの先頭に最も近い証明書を１番目の証明書とし、順に２番目、３番目、…と数えるものとする。Ｓ２２３では、ホストコンピュータ１００は、証明書（ｉ）の発行者情報を取得する。
【００３８】
Ｓ２２４では、ホストコンピュータ１００は、検索する証明書を示すカウンタｊを「１」に初期化する。次にＳ２２５では、ホストコンピュータ１００は、Ｓ４のＳ２１において入力された画像データ内に含まれる証明書のうち、ｊ番目の証明書（証明書（ｊ））に着目する。Ｓ２２６では、ホストコンピュータ１００は、証明書（ｊ）の主体者情報を取得する。Ｓ２２７では、ホストコンピュータ１００は、Ｓ２２３において取得された証明書（ｉ）発行者情報と、Ｓ２２５において取得された証明書（ｊ）の主体者情報が一致するか否かを判定する。そして、ホストコンピュータ１００は、これらが一致すると判定した場合にはＳ２２８に移行し、一致しないと判定した場合にはＳ２２９に移行する。
【００３９】
Ｓ２２８では、ホストコンピュータ１００は、証明書（ｉ）の発行者を証明書（ｊ）の主体者であると決定し、Ｓ２３４に移行する。Ｓ２２９では、ホストコンピュータ１００は、カウンタｊに関して全ての証明書を対象としてＳ２２７の判定処理を実行したか否かを判定する。つまり、このＳ２２９では、ホストコンピュータ１００は、カウンタｊが最大値ｊｍａｘであるか否かを判定する。そして、ホストコンピュータ１００は、ｊ＝ｊｍａｘではないと判定すると、Ｓ２３０に移行してカウンタｊをインクリメントし、Ｓ２２５に戻る。一方、ホストコンピュータ１００は、Ｓ２２９においてｊ＝ｊｍａｘであると判定すると、Ｓ２３１に移行する。
【００４０】
Ｓ２３１では、ホストコンピュータ１００は、証明書ストア内において、証明書（ｉ）の発行者情報に、主体者情報が一致する証明書を検索する。証明書ストアは、ホストコンピュータ１００のユーザが安全に証明書を管理するための領域であり、例えばＨＤ１０５の一部の領域とすることができる。証明書ストアは、ルート証明書を保管する。
Ｓ２３２では、ホストコンピュータ１００は、Ｓ２３１における検索の結果、証明書ストア内において、主体者情報が証明書（ｉ）の発行者情報と一致する証明書の存在を確認できたか否かを判定する。そして、ホストコンピュータ１００は、上記の証明書の存在を確認できなかった場合にはＳ２３３に移行し、確認できた場合にはＳ２３４に移行する。Ｓ２３３では、ホストコンピュータ１００は、証明書パスの構築に失敗したと判定して処理を終了する。
【００４１】
Ｓ２３４では、ホストコンピュータ１００は、カウンタｉに関して全ての証明書を対象として証明書パスの構築処理を実行したか否かを判定する。つまり、このＳ２３４では、ホストコンピュータ１００は、カウンタｉが最大値ｉｍａｘであるか否かを判定する。そして、ホストコンピュータ１００は、ｉ＝ｉｍａｘではないと判定すると、Ｓ２３５に移行してカウンタｉをインクリメントし、Ｓ２２２に戻る。一方、ホストコンピュータ１００は、Ｓ２３４においてｉ＝ｉｍａｘであると判定すると、Ｓ２３６に移行する。Ｓ２３６では、ホストコンピュータ１００は、証明書パスの構築に成功したと判定して処理を終了する。
なお、Ｓ２３２において証明書ストア内に証明書（ｉ）の発行者情報と主体者情報が一致する証明書が発見された場合、さらに、発見した証明書の発行者情報と主体者情報とが一致することを確認してもよい。
【００４２】
＜証明書確認処理＞
図６は、図４のＳ２７において実行される証明書確認処理を示すフローチャートである。
Ｓ２７１では、ホストコンピュータ１００は、図４のＳ２２において構築された証明書パス内にカメラベンダ証明書が存在するか否かを検索する検索処理を実行する。このＳ２７１では、ホストコンピュータ１００は、カメラベンダリストに基づいて、上記証明書パスの中からカメラベンダ証明書を検索する。
ここで、カメラベンダリストは、特定の画像入力装置の製造者リストであり、信頼できる製造者（カメラベンダ）を示す情報を含む。具体的には、カメラベンダリストは、信頼できる製造者証明書（本実施形態では、カメラベンダ証明書）の主体者情報を示す文字列を含む。ホストコンピュータ１００は、上記証明書パスの中から、カメラベンダリストに含まれるカメラベンダに対応するカメラベンダ証明書を検索する。カメラベンダリストおよびカメラベンダ証明書の検索処理の詳細については後述する。
なお、本実施形態では、画像入力装置がカメラであり、画像入力装置の製造者がカメラベンダであるため、製造者リストをカメラベンダリストとしているが、製造者リストはカメラベンダリストに限定されるものではない。製造者リストは、画像入力装置の製造者に応じて適宜設定可能である。
【００４３】
次にＳ２７２では、ホストコンピュータ１００は、Ｓ２７１における検索処理の結果、証明書パス内にカメラベンダ証明書の存在を確認できたか否かを判定する。そして、ホストコンピュータ１００は、カメラベンダ証明書の存在を確認できた場合にはＳ２７３に移行し、証明書パス内にカメラベンダ証明書が存在すると判定してＳ２７７に移行する。一方、ホストコンピュータ１００は、Ｓ２７２においてカメラベンダ証明書の存在を確認できないと判定した場合にはＳ２７４に移行する。
Ｓ２７４では、ホストコンピュータ１００は、カメラベンダ証明書の主体者情報をカメラベンダリストに追加するか否か（カメラベンダリストを更新するか否か）を判定する。このＳ２７４では、ホストコンピュータ１００は、モニタ１０１に追加の是非を問い合わせる画面を表示することで、ホストコンピュータ１００のユーザに対しカメラベンダ証明書の主体者情報をカメラベンダリストに追加するか否かを問い合わせる。
【００４４】
このとき、ユーザは、マウス１２１やキーボード１２２を用いて、カメラベンダ証明書の主体者情報を追加するか否かを選択することができる。さらに、ユーザは、カメラベンダリストに追加するカメラベンダ証明書の主体者情報を指示することもできる。
例えば、ホストコンピュータ１００が、モニタ１０１に、証明書パスに含まれる全ての証明書を表示し、その中からユーザが、カメラベンダのものであると信頼する証明書をマウス１２１やキーボード１２２を用いて選択するようにしてもよい。この場合、ユーザが選択した証明書の主体者情報が、カメラベンダリストに追加するカメラベンダ証明書の主体者情報として指示されたことになる。また、ユーザが正しいカメラベンダ名を知っている場合には、ユーザが直接カメラベンダ名を入力してもよい。
ホストコンピュータ１００は、Ｉ／Ｆ１１０を介して上記のユーザによる入力を受け付け、ユーザがカメラベンダリストへの追加を指示していると判定した場合にはＳ２７５に移行し、ユーザが追加を指示していないと判定した場合にはＳ２７６に移行する。
【００４５】
Ｓ２７５では、ホストコンピュータ１００は、カメラベンダ証明書の主体者情報をカメラベンダリストに追加する。例えば、上記のようにユーザが、モニタ１０１に表示された証明書からカメラベンダのものであると信頼して証明書を選択した場合、ユーザによって選択された証明書の主体者情報をカメラベンダリストに追加する。Ｓ２７５では、ホストコンピュータ１００は、カメラベンダ証明書の主体者情報をカメラベンダリストに追加した後、Ｓ２７３に移行する。
Ｓ２７６では、ホストコンピュータ１００は、証明書パス内にカメラベンダ証明書は存在しないと判定し、処理を終了する。
【００４６】
Ｓ２７７では、ホストコンピュータ１００は、図４のＳ２２において構築された証明書パス内にＴＰＭ証明書が存在するか否かを検索する検索処理を実行する。このＳ２７７では、ホストコンピュータ１００は、ＴＰＭリストに基づいて、上記証明書パスの中からＴＰＭ証明書を検索する。
ここで、ＴＰＭリストは、特定の画像入力装置が備えるＴＰＭのリストであり、信頼できるＴＰＭを示す情報を含む。具体的には、ＴＰＭリストは、信頼できるＴＰＭ証明書の主体者情報を示す文字列を含む。ホストコンピュータ１００は、上記証明書パスの中から、ＴＰＭリストに含まれるＴＰＭに対応するＴＰＭ証明書を検索する。ＴＰＭリストおよびＴＰＭ証明書の検索処理の詳細については後述する。
次にＳ２７８では、ホストコンピュータ１００は、Ｓ２７７における検索処理の結果、証明書パス内にＴＰＭ証明書の存在を確認できたか否かを判定する。そして、ホストコンピュータ１００は、ＴＰＭ証明書の存在を確認できた場合にはＳ２７９に移行し、証明書パス内にＴＰＭ証明書が存在すると判定して処理を終了する。一方、ホストコンピュータ１００は、Ｓ２７８においてＴＰＭ証明書の存在を確認できないと判定した場合にはＳ２８０に移行する。
【００４７】
Ｓ２８０では、ホストコンピュータ１００は、ＴＰＭ証明書の主体者情報をＴＰＭリストに追加するか否か（ＴＰＭリストを更新するか否か）を判定する。このＳ２８０では、ホストコンピュータ１００は、Ｓ２７４におけるカメラベンダリストへの追加判定と同様に、ユーザに対しＴＰＭ証明書の主体者情報をＴＰＭリストに追加するか否かを問い合わせ、ユーザ指示を入力する。そして、ホストコンピュータ１００は、ユーザがＴＰＭリストへの追加を指示していると判定した場合にはＳ２８１に移行し、ユーザが追加を指示していないと判定した場合にはＳ２８２に移行する。
Ｓ２８１では、ホストコンピュータ１００は、Ｓ２７５におけるカメラベンダリストへの追加処理と同様に、ＴＰＭ証明書の主体者情報をＴＰＭリストに追加する。Ｓ２８２では、ホストコンピュータ１００は、証明書パス内にＴＰＭ証明書は存在しないと判定し、処理を終了する。
【００４８】
ここで、カメラベンダリストおよびＴＰＭリストの詳細について説明する。カメラベンダリストおよびＴＰＭリストには、予め正しいことが確認されたカメラベンダ証明書およびＴＰＭ証明書の主体者情報を示す文字列が記載されている。カメラベンダリストおよびＴＰＭリストは、予め信頼のできる情報源からネットワーク経由、或いは記憶メディアを用いて入手し、ＨＤ１０５内に改竄されないようにアクセス制御して管理しておく。
その際、各リストが改竄された場合にそれを検知できるように、各リストにはデジタル署名を付与しておいてもよい。その場合、カメラベンダリストおよびＴＰＭリストへアクセスする際にデジタル署名の検証を行い、検証に成功した場合にのみアクセスを許可するようにする。一方、デジタル署名の検証に失敗した場合には、カメラベンダリストおよびＴＰＭリストへのアクセスを中止する。このように、カメラベンダリストおよびＴＰＭリストは、改竄されないように安全に管理するか、改竄検出してから用いるようにする。
【００４９】
＜カメラベンダ証明書検索処理＞
図７は、図６のＳ２７１において実行されるカメラベンダ証明書の検索処理を示すフローチャートである。
Ｓ２７１ａでは、ホストコンピュータ１００は、着目する証明書を示すカウンタｉを「１」に初期化する。次にＳ２７１ｂでは、ホストコンピュータ１００は、図４のＳ２２において構築された証明書パス内の証明書のうち、証明書（ｉ）に着目する。この検索処理では、証明書パスのうち最も下位に位置する証明書を１番目の証明書と定義し、より上位の証明書を順に２番目、３番目、…と数えるものとする。
【００５０】
Ｓ２７１ｃでは、ホストコンピュータ１００は、証明書（ｉ）の主体者情報の文字列がカメラベンダリストに含まれているか否かを判定する。そして、ホストコンピュータ１００は、証明書（ｉ）の主体者情報の文字列がカメラベンダリストに含まれる文字列と一致する場合、Ｓ２７１ｄに移行する。一方、ホストコンピュータ１００は、証明書（ｉ）の主体者情報の文字列がカメラベンダリストに含まれる文字列と一致しない場合、Ｓ２７１ｅに移行する。Ｓ２７１ｄでは、ホストコンピュータ１００は、証明書パス内に、カメラベンダリストに含まれるカメラベンダに対応するカメラベンダ証明書が存在すると判断して処理を終了する。
【００５１】
Ｓ２７１ｅでは、ホストコンピュータ１００は、カウンタｉに関して全ての証明書を対象として検索処理を実行したか否かを判定する。つまり、このＳ２７１ｅでは、ホストコンピュータ１００は、カウンタｉが最大値ｉｍａｘであるか否かを判定する。そして、ホストコンピュータ１００は、ｉ＝ｉｍａｘではないと判定すると、Ｓ２７１ｆに移行してカウンタｉをインクリメントし、Ｓ２７１ｂに戻る。一方、ホストコンピュータ１００は、Ｓ２７１ｅにおいてｉ＝ｉｍａｘであると判定すると、Ｓ２７１ｇに移行する。Ｓ２７１ｇでは、ホストコンピュータ１００は、証明書パス内に、カメラベンダリストに含まれるカメラベンダに対応するカメラベンダ証明書が存在しないと判断して処理を終了する。
なお、本実施形態では、製造者証明書がカメラベンダ証明書であるため、図７の処理はカメラベンダ証明書の検索処理であるが、カメラベンダ証明書以外の製造者証明書についても、同様の検索処理を実施することができる。
【００５２】
＜ＴＰＭ証明書検索処理＞
図８は、図６のＳ２７７において実行されるＴＰＭ証明書の検索処理を示すフローチャートである。
Ｓ２７７ａでは、ホストコンピュータ１００は、着目する証明書を示すカウンタｉを「１」に初期化する。次にＳ２７７ｂでは、ホストコンピュータ１００は、図４のＳ２２において構築された証明書パス内の証明書のうち、証明書（ｉ）に着目する。この検索処理では、証明書パスのうち最も下位に位置する証明書を１番目の証明書と定義し、より上位の証明書を順に２番目、３番目、…と数えるものとする。
【００５３】
Ｓ２７７ｃでは、ホストコンピュータ１００は、証明書（ｉ）の主体者情報の文字列がＴＰＭリストに含まれているか否かを判定する。そして、ホストコンピュータ１００は、証明書（ｉ）の主体者情報の文字列がＴＰＭリストに含まれる文字列と一致する場合、Ｓ２７７ｄに移行する。一方、ホストコンピュータ１００は、証明書（ｉ）の主体者情報の文字列がＴＰＭリストに含まれる文字列と一致しない場合、Ｓ２７７ｅに移行する。Ｓ２７７ｄでは、ホストコンピュータ１００は、証明書パス内に、ＴＰＭリストに含まれるＴＰＭに対応するＴＰＭ証明書が存在すると判断して処理を終了する。
【００５４】
Ｓ２７７ｅでは、ホストコンピュータ１００は、カウンタｉに関して全ての証明書を対象として検索処理を実行したか否かを判定する。つまり、このＳ２７７ｅでは、ホストコンピュータ１００は、カウンタｉが最大値ｉｍａｘであるか否かを判定する。そして、ホストコンピュータ１００は、ｉ＝ｉｍａｘではないと判定すると、Ｓ２７７ｆに移行してカウンタｉをインクリメントし、Ｓ２７７ｂに戻る。一方、ホストコンピュータ１００は、Ｓ２７７ｅにおいてｉ＝ｉｍａｘであると判定すると、Ｓ２７７ｇに移行する。Ｓ２７７ｇでは、ホストコンピュータ１００は、証明書パス内に、ＴＰＭリストに含まれるＴＰＭに対応するＴＰＭ証明書が存在しないと判断して処理を終了する。
【００５５】
＜画面構成＞
次に、改竄検出処理を実行するための画像検証ツールの画面構成について、図９を参照しながら説明する。画像検証ツールは、ホストコンピュータ１００のモニタ１０１に表示することができる。ユーザは、マウス１２１やキーボード１２２を用いて画像検証ツールに対して各種指示を与えることにより、ホストコンピュータ１００に改竄検出処理を実行させることができる。また、ホストコンピュータ１００は、改竄検出処理の結果を画像検証ツール上に表示させることもできる。
【００５６】
図９（ａ）に示すように、画像検証ツールの基本画面４０Ａは、画像リストの表示領域４１と、画像選択ボタン４２と、画像検証ボタン４３とを含んで構成される。ユーザが画像選択ボタン４２を押下すると、不図示の画像選択画面が表示され、ユーザは、マウス１２１やキーボード１２２を用いて処理対象とする画像データを選択することができる。なお、処理対象となる画像データは１枚であってもよいし、複数枚であってもよい。
図９（ｂ）は、処理対象とする複数の画像データが選択された後の画面４０Ｂの一例である。ユーザによって選択された複数の画像データ（画像データ１〜７）は、画像リストの表示領域４１内に表示される。この状態でユーザが画像検証ボタン４３を押下すると、表示領域４１内に表示されている画像データに対して、順に図４の画像改竄検出処理が実行される。
【００５７】
図９（ｃ）は、画像改竄検出処理の結果が表示された画面４０Ｃの一例である。この図９（ｃ）に示すように、画像改竄検出処理の結果は、画面４０Ｃ内の結果表示領域４４に表示することができる。
図９（ｃ）では、結果表示領域４４内の「改竄」列に、図４のＳ３７において検証成功と判定された場合に「○」、Ｓ３０において検証失敗と判定された場合に「×」を表示するようにしている。また、結果表示領域４４内の「ＴＰＭ」列には、図４のＳ３３において署名鍵がＴＰＭにより保護されていると判定された場合に「○」、Ｓ３２において署名鍵がＴＰＭにより保護されていないと判定された場合に「×」を表示するようにしている。さらに、結果表示領域４４内の「証明書」列には、図４のＳ２３において証明書パスの構築に成功したと判定された場合に「○」、Ｓ２６において証明書パスの構築に失敗したと判定された場合に「×」を表示するようにしている。
【００５８】
なお、処理結果の表示方法は上記の○×表示に限定されるものではなく、任意の表示方法を適用可能である。また、結果表示領域４４に表示する内容は、図９（ｃ）に示す内容に限定されない。結果表示領域４４には、「改竄」「ＴＰＭ」および「証明書」のうち、少なくとも１つが表示されるようにしてもよい。さらに、結果表示領域４４には、「改竄」「ＴＰＭ」および「証明書」以外の処理結果を表示してもよい。例えば、結果表示領域４４には、Ｓ３０において検証失敗と判定された場合、検証に失敗した理由を併せて表示するようにしてもよい。
【００５９】
以上のように、ホストコンピュータ１００は、画像改竄検出処理において、画像データの署名検証と証明書の検証とを行うことにより、画像データが改竄されていないことを確認する。ここで、証明書の検証は、証明書パスの構築、および証明書パスの各階層における証明書の署名検証を含む。さらに、証明書の検証は、証明書パス内における画像入力装置の製造者証明書（本実施形態では、カメラベンダ証明書）の検索、およびＴＰＭ証明書の検索を含む。
本実施形態では、ホストコンピュータ１００は、画像入力装置の製造者リストを用いて製造者証明書を検索し、製造者証明書が存在することを確認できた場合に、製造書証明書の検証成功と判断する。同様に、ホストコンピュータ１００は、ＴＰＭリストを用いてＴＰＭ証明書を検索し、ＴＰＭ証明書が存在することを確認できた場合に、ＴＰＭ証明書の検証成功と判断する。したがって、ホストコンピュータ１００は、画像入力装置外に漏洩した漏洩鍵や、画像入力装置に固有の署名鍵ではない偽造鍵を用いて署名された改竄画像については、適切に画像データの原本性を確認できないと判断することができる。
【００６０】
以下、本実施形態における画像改竄検出処理について、処理例１〜３を用いて具体的に説明する。
＜処理例１＞
図１０は、処理例１を説明する図である。処理例１は、カメラ２００Ａにより出力された改竄されていない画像データを処理対象として、画像改竄検出処理が行われた場合の例である。
カメラ２００Ａにより出力される画像ファイルは、図２（ａ）に示す画像署名処理に従って署名処理された、図３（ｂ）に示すような画像ファイル２０Ａである。画像ファイル２０Ａ内には、画像データの署名２２、カメラベンダ証明書２３およびカメラ証明書２４が含まれる。この画像ファイル２０Ａを処理対象として、図４に示す画像改竄検出処理を実施した場合の例を説明する。なお、図１０において、（ａ）〜（ｃ）は証明書の検索、（ｄ）および（ｅ）は文字列の比較による証明書の確認、（ｆ）〜（ｉ）は署名の検証を表している。
【００６１】
まず、ホストコンピュータ１００は、図４のＳ２２において、入力した処理対象の画像について図５の処理に従って証明書パスを構築する。この証明書パス構築処理では、ホストコンピュータ１００は、１番目の証明書としてカメラ証明書２４に着目し（Ｓ２２２）、カメラ証明書２４の発行者情報「ベンダ＿Ａ」を取得する（Ｓ２２３）。
なお、この段階では、着目している１番目の証明書がカメラ証明書であるか否かは不明である。次に、ホストコンピュータ１００は、１番目の証明書であるカメラ証明書２４の主体者情報「ＳＮ１２３」を取得し（Ｓ２２６）、Ｓ２２３において取得した発行者情報と、Ｓ２２６において取得した主体者情報とが一致するか否かを判定する。
【００６２】
カメラ証明書２４の発行者情報と主体者情報とは異なる（Ｓ２２７でＮｏ）。そのため、ホストコンピュータ１００は、２番目の証明書であるカメラベンダ証明書２３に着目し（Ｓ２２５）、カメラベンダ証明書２３の主体者情報「ベンダ＿Ａ」を取得する（Ｓ２２６）。なお、１番目の証明書と同様に、この段階では、着目している２番目の証明書がカメラベンダ証明書であるか否かは不明である。
カメラ証明書２４の発行者情報とカメラベンダ証明書２３の主体者情報とは一致するため、ホストコンピュータ１００は、カメラ証明書２４（１番目の証明書）の発行者をカメラベンダ証明書２３（２番目の証明書）の主体者であると決定する（Ｓ２２８）。この段階で、「カメラ証明書の発行者の証明書が画像ファイルの中に存在した」ということが判明したことになる。ただし、この段階では、存在を確認した証明書がカメラベンダ証明書であるか否かは不明である。
【００６３】
次に、ホストコンピュータ１００は、２番目の証明書であるカメラベンダ証明書２３に着目し（Ｓ２２２）、カメラベンダ証明書２３の発行者情報「ＣＡ１」を取得する（Ｓ２２３）。そして、ホストコンピュータ１００は、１番目の証明書であるカメラ証明書２４の主体者情報「ＳＮ１２３」を取得し（Ｓ２２６）、Ｓ２２３において取得した発行者情報と、Ｓ２２６において取得した主体者情報とが一致するか否かを判定する。
カメラベンダ証明書２３の発行者情報とカメラ証明書２４の主体者情報とは異なる（Ｓ２２７でＮｏ）。そのため、ホストコンピュータ１００は、２番目の証明書であるカメラベンダ証明書２３に着目し（Ｓ２２５）、カメラベンダ証明書２３の主体者情報「ベンダ＿Ａ」を取得する（Ｓ２２６）。カメラベンダ証明書２３の発行者情報と主体者情報とは異なるため、ホストコンピュータ１００は、画像ファイル２０Ａ内にカメラベンダ証明書２３の発行者情報「ＣＡ１」に主体者情報が一致する証明書は存在しないと判断する（Ｓ２２９でＹｅｓ）。
【００６４】
そこで、ホストコンピュータ１００は、証明書ストア内にカメラベンダ証明書２３の発行者情報「ＣＡ１」と主体者情報が一致する証明書が存在するか否かを検索する（Ｓ２３１）。そして、証明書ストア内に保管されているルート証明書２６が検索される。ルート証明書２６の主体者情報は、カメラベンダ証明書２３の発行者情報と一致するため（Ｓ２３２でＹｅｓ）、ホストコンピュータ１００は、最終的に証明書パス構築成功と判定する（Ｓ２３６）。
【００６５】
続いて、ホストコンピュータ１００は、図４のＳ２７において、図６の処理に従って証明書を確認する。この証明書確認処理では、ホストコンピュータ１００は、証明書パス内においてカメラベンダ証明書を検索する（Ｓ２７１）。具体的には、証明書パス内の各証明書について主体者情報がカメラベンダリスト２７に含まれるか否かを、順次判定する（図７のＳ２７１ｃ）。すると、ホストコンピュータ１００は、２番目の証明書であるカメラベンダ証明書２３の主体者情報「ベンダ＿Ａ」が、カメラベンダリスト２７に含まれていることを確認する。これにより、「証明書パス内にカメラベンダ証明書が存在する」ことが判定される。また、２番目の証明書がカメラベンダ証明書であることも判明される。
【００６６】
同様に、ホストコンピュータ１００は、証明書パス内においてＴＰＭ証明書を検索する（Ｓ２７７）。具体的には、証明書パス内の各証明書について主体者情報がＴＰＭリスト２８に含まれるか否かを、順次判定する（図８のＳ２７７ｃ）。証明書パスの中には主体者情報がＴＰＭリストに含まれている証明書が存在しないため、ホストコンピュータ１００は、「証明書パス内にはＴＰＭ証明書が存在しない」と判定する。
このとき、ホストコンピュータ１００のユーザが、ＴＰＭリスト２８に主体者情報を追加しないと判断した場合には（Ｓ２８０でＮｏ）、ホストコンピュータ１００は、「ＴＰＭ証明書なし」と判定する（Ｓ２８２）。その結果、ホストコンピュータ１００は、最終的に、署名鍵はＴＰＭで保護されていないと判定する（図４のＳ３２）。
そして、画像データや証明書が改竄されていなければ、署名検証は全て成功することになり（Ｓ３６でＹｅｓ）、検証成功と判定される（Ｓ３７）。
処理例１の結果は、図９（ｃ）の画面４０Ｃにおける画像データ４のように表示される。つまり、画像改竄検出処理の対象となった画像データは正当なカメラベンダが製造した画像入力装置で発生したが、当該画像入力装置の署名鍵はＴＰＭで保護されていないことが表示される。
【００６７】
このように、ホストコンピュータ１００は、製造者リストに基づいて、入力された検証対象である画像データに付与された証明書の中から、製造者リストに含まれる製造者に対応する製造者証明書を検索する。そして、ホストコンピュータ１００は、上記の検索処理により製造者証明書が検索された場合、入力された画像データは、検索された製造者証明書に対応する製造者が製造した特定の画像入力装置によって発生された画像データであると判断する。
製造者リストは、正当性が確認されている製造者の情報が記載されている。そのため、上記の製造者リストに基づいて検索された製造者証明書は、正当性が確認された製造者証明書であると判断することができる。つまり、検証対象の画像データは、漏洩鍵や偽造鍵を用いて署名された画像データではないと判断することができる。換言すると、各証明書の署名検証が成功する場合であっても、証明書パス内において製造者リストをもとに正しい製造者証明書が検索されない場合には、改竄画像であるおそれがあると判断することができる。このように、ホストコンピュータ１００は、検証対象の画像データの原本性を適切に検証することができる。
【００６８】
なお、上記処理例１では、図１０に示すように、カメラ証明書２４の発行者がカメラベンダ証明書２３の主体者である場合について説明した。しかしながら、カメラベンダ証明書２３がカメラ証明書２４の上位に位置付けられていればよく、カメラ証明書２４とカメラベンダ証明書２３との中間には、その他の認証者の証明書を含んでいてもよい。
また、上記処理例１では、カメラベンダ証明書２３の発行者がルート証明書２６の主体者である場合について説明した。しかしながら、ルート証明書２６がカメラベンダ証明書２３の上位に位置付けられていればよく、カメラベンダ証明書２３とルート証明書２６との中間には、その他の認証者の証明書を含んでいてもよい。
【００６９】
＜処理例２＞
図１１は、処理例２を説明する図である。処理例２は、カメラ２００Ｂにより出力された改竄されていない画像データを処理対象として、画像改竄検出処理が行われた場合の例である。
カメラ２００Ｂにより出力される画像ファイルは、図２（ｂ）に示す画像署名処理に従って署名処理された、図３（ｃ）に示すような画像ファイル２０Ｂである。画像ファイル２０Ｂ内には、画像データの署名２２、カメラベンダ証明書２３、ＴＰＭ証明書２５およびカメラ証明書２４が含まれる。この画像ファイル２０Ｂを処理対象として、図４に示す画像改竄検出処理を実施した場合の例を説明する。なお、図１１において、（ａ）〜（ｄ）は証明書の検索、（ｅ）および（ｆ）は文字列の比較による証明書の確認、（ｇ）〜（ｋ）は署名の検証を表している。
【００７０】
まず、ホストコンピュータ１００は、図４のＳ２２において、入力した処理対象の画像データについて図５の処理に従って証明書パスを構築する。この証明書パス構築処理では、ホストコンピュータ１００は、１番目の証明書としてカメラ証明書２４に着目し（Ｓ２２２）、カメラ証明書２４の発行者情報「ＴＰＭ＿Ａ」を取得する（Ｓ２２３）。なお、この段階では、着目している１番目の証明書がカメラ証明書であるか否かは不明である。次に、ホストコンピュータ１００は、１番目の証明書であるカメラ証明書２４の主体者情報「ＳＮ１２３」を取得し（Ｓ２２６）、Ｓ２２３において取得した発行者情報と、Ｓ２２６において取得した主体者情報とが一致するか否かを判定する。
【００７１】
カメラ証明書２４の発行者情報と主体者情報とは異なる（Ｓ２２７でＮｏ）。そのため、ホストコンピュータ１００は、２番目の証明書であるＴＰＭ証明書２５に着目し（Ｓ２２５）、ＴＰＭ証明書２５の主体者情報「ＴＰＭ＿Ａ」を取得する（Ｓ２２６）。なお、１番目の証明書と同様に、この段階では、着目している２番目の証明書がＴＰＭ証明書であるか否かは不明である。
カメラ証明書２４の発行者情報とＴＰＭ証明書２５の主体者情報とは一致するため、ホストコンピュータ１００は、カメラ証明書２４（１番目の証明書）の発行者をＴＰＭ証明書２５（２番目の証明書）の主体者であると決定する（Ｓ２２８）。この段階で、「カメラ証明書の発行者の証明書が画像ファイルの中に存在した」ということが判明したことになる。ただし、この段階では、存在を確認した証明書がＴＰＭ証明書であるか否かは不明である。
【００７２】
次に、ホストコンピュータ１００は、２番目の証明書であるＴＰＭ証明書２５に着目し（Ｓ２２２）、ＴＰＭ証明書２５の発行者情報「ベンダ＿Ａ」を取得する（Ｓ２２３）。そして、ホストコンピュータ１００は、１番目の証明書から順に主体者情報を取得し、主体者情報がＴＰＭ証明書２５の発行者情報と一致する証明書が存在するか否かを判定する。
図１１の処理例２の場合、３番目の証明書であるカメラベンダ証明書２３の主体者情報「ベンダ＿Ａ」がＴＰＭ証明書２５の発行者情報と一致する。したがって、ホストコンピュータ１００は、ＴＰＭ証明書２５（２番目の証明書）の発行者をカメラベンダ証明書２３（３番目の証明書）の主体者であると決定する（Ｓ２２８）。この段階で、「ＴＰＭ証明書の発行者の証明書が画像ファイルの中に存在した」ということが判明したことになる。ただし、この段階では、存在を確認した証明書がカメラベンダ証明書であるか否かは不明である。
【００７３】
同様に、ホストコンピュータ１００は、３番目の証明書であるカメラベンダ証明書２３に着目し（Ｓ２２２）、カメラベンダ証明書２３の発行者情報「ＣＡ１」を取得する（Ｓ２２３）。そして、ホストコンピュータ１００は、主体者情報がカメラベンダ証明書２３の発行者情報と一致する証明書が存在するか否かを判定する。図１１の処理例２の場合、カメラベンダ証明書２３の発行者情報「ＣＡ１」に主体者情報が一致する証明書は存在しない。そのため、ホストコンピュータ１００は、画像ファイル２０Ｂ内にカメラベンダ証明書２３の発行者情報「ＣＡ１」に主体者情報が一致する証明書は存在しないと判断する（Ｓ２２９でＹｅｓ）。
【００７４】
そこで、ホストコンピュータ１００は、証明書ストア内にカメラベンダ証明書２３の発行者情報「ＣＡ１」と主体者情報が一致する証明書が存在するか否かを検索する（Ｓ２３１）。そして、証明書ストア内に保管されているルート証明書２６が検索される。ルート証明書２６の主体者情報は、カメラベンダ証明書２３の発行者情報と一致するため（Ｓ２３２でＹｅｓ）、ホストコンピュータ１００は、最終的に証明書パス構築成功と判定する（Ｓ２３６）。
【００７５】
続いて、ホストコンピュータ１００は、図４のＳ２７において、図６の処理に従って証明書を確認する。この証明書確認処理では、ホストコンピュータ１００は、証明書パス内においてカメラベンダ証明書を検索する（Ｓ２７１）。具体的には、証明書パス内の各証明書について主体者情報がカメラベンダリスト２７に含まれるか否かを、順次判定する（図７のＳ２７１ｃ）。すると、ホストコンピュータ１００は、３番目の証明書であるカメラベンダ証明書２３の主体者情報「ベンダ＿Ａ」が、カメラベンダリスト２７に含まれていることを確認する。これにより、「証明書パス内にカメラベンダ証明書が存在する」ことが判定される。また、３番目の証明書がカメラベンダ証明書であることも判明される。
【００７６】
同様に、ホストコンピュータ１００は、証明書パス内においてＴＰＭ証明書を検索する（Ｓ２７７）。具体的には、証明書パス内の各証明書について主体者情報がＴＰＭリスト２８に含まれるか否かを、順次判定する（図８のＳ２７７ｃ）。すると、ホストコンピュータ１００は、２番目の証明書であるＴＰＭ証明書２５の主体者情報「ＴＰＭ＿Ａ」が、ＴＰＭリスト２８に含まれていることを確認する。これにより、「証明書パス内にＴＰＭ証明書が存在する」ことが判定される。また、２番目の証明書がＴＰＭ証明書であることも判明される。
【００７７】
次に、ホストコンピュータ１００は、証明書パスに基づいて、カメラベンダ証明書２３がＴＰＭ証明書２５よりも上位に位置しているか否かを判定する（図４のＳ３４）。カメラベンダ証明書２３は、ＴＰＭ証明書２５よりも上位に位置しているため、ホストコンピュータ１００は、証明書が適正な階層構造を有していると判定し、署名検証に進む。そして、画像データや証明書が改竄されていなければ、署名検証は全て成功することになり（Ｓ３６でＹｅｓ）、検証成功と判定される（Ｓ３７）。
処理例２の結果は、図９（ｃ）の画面４０Ｃにおける画像データ１のように表示される。つまり、画像改竄検出処理の対象となった画像データは正当なカメラベンダが製造した画像入力装置で発生し、且つ、当該画像入力装置の署名鍵はＴＰＭで保護されていることが表示される。
【００７８】
このように、ホストコンピュータ１００は、ＴＰＭリストに基づいて、入力された検証対象である画像データに付与された証明書の中から、ＴＰＭリストに含まれるＴＰＭに対応するＴＰＭ証明書を検索する。そして、ホストコンピュータ１００は、上記の検索処理によりＴＰＭ証明書が検索された場合、入力された画像データは、検索されたＴＰＭ証明書に対応するＴＰＭによって保護された署名鍵を用いて署名された画像データであると判断する。
ＴＰＭリストは、正当性が確認されているＴＰＭの情報が記載されている。そのため、上記のＴＰＭリストに基づいて検索されたＴＰＭ証明書は、正当性が確認されたＴＰＭ証明書であると判断することができる。つまり、検証対象の画像データは、正当な画像入力装置内のＴＰＭによって安全に管理された、当該画像入力装置に固有の鍵を用いて署名された画像データであると判断することができる。このように、ホストコンピュータ１００は、検証対象の画像データの原本性をより適切に検証することができる。
【００７９】
さらに、ホストコンピュータ１００は、証明書パス内において製造者証明書がＴＰＭ証明書よりも上位に位置するか否かを判定する。そして、ホストコンピュータ１００は、製造者証明書がＴＰＭ証明書よりも上位に位置すると判定された場合に、証明書パスが適正であると判断する。したがって、攻撃者が、画像入力装置の製造者になりすまして改竄画像に署名した場合など、証明書が適正な階層構造を有していない場合には、ホストコンピュータ１００は、これを適切に検出することができる。
【００８０】
なお、上記処理例２では、図１１に示すように、カメラ証明書２４の発行者がＴＰＭ証明書２５の主体者であり、ＴＰＭ証明書２５の発行者がカメラベンダ証明書２３の主体者である場合について説明した。しかしながら、カメラベンダ証明書２３がカメラ証明書２４の上位に位置付けられ、且つ、カメラベンダ証明書２３がＴＰＭ証明書２５の上位に位置付けられていればよく、これらの証明書の中間には、その他の認証者の証明書を含んでいてもよい。
ＴＰＭ証明書とカメラベンダ証明書との間に中間証明書が存在する場合、ホストコンピュータ１００は、図４のＳ３４の証明書パス確認処理において、中間証明書の存在を考慮してカメラベンダ証明書がＴＰＭ証明書よりも上位に存在するか否かを判定する。
また、上記処理例２では、カメラベンダ証明書２３の発行者がルート証明書２６の主体者である場合について説明した。しかしながら、ルート証明書２６がカメラベンダ証明書２３の上位に位置付けられていればよく、カメラベンダ証明書２３とルート証明書２６との中間には、その他の認証者の証明書を含んでいてもよい。
【００８１】
＜処理例３＞
図１２は、処理例３を説明する図である。処理例３は、カメラ２００Ａやカメラ２００Ｂといった画像入力装置ではない装置（通常のＰＣなど）により署名された画像データ（改竄されている画像データ）を処理対象として、画像改竄検出処理が行われた場合の例である。
画像改竄検出の説明の前に、前提となる攻撃者による画像データの改竄方法について説明する。まず、攻撃者は、カメラ等の画像入力装置により発生された画像データをＰＣに転送する。そして、攻撃者は、ＰＣの機能を使って画像データを改竄した後、ＰＣ内で署名鍵を使って署名データを生成し、生成した署名データを改竄画像に付与して署名付き画像データを生成する。
【００８２】
ここで、上記のＰＣにはＴＰＭが搭載されており、攻撃者は、予め署名鍵をＰＣ内のＴＰＭによって保護しておくものとする。また、攻撃者は、ＰＣ内のＴＰＭを使ってカメラ証明書を生成しておくものとする。つまり、カメラ証明書の発行者情報とＴＰＭ証明書の主体者情報は同一となる。また、ＰＣに搭載されているＴＰＭは正規のものであり、ルート認証局がＴＰＭ証明書を発行しているものとする。つまり、ＴＰＭ証明書の発行者情報とルート証明書の主体者情報は同一である。
以上説明した改竄により、図３（ｄ）に示すような画像ファイル３０が生成される。画像ファイル３０内には、画像データの署名３２、ＴＰＭ証明書３５およびカメラ証明書３４が含まれる。この画像ファイル３０を処理対象として、図４に示す画像改竄検出処理を実施した場合について説明する。なお、図１２において、（ａ）〜（ｃ）は証明書の検索、（ｄ）および（ｅ）は文字列の比較による証明書の確認、（ｆ）〜（ｉ）は署名の検証を表している。
【００８３】
まず、ホストコンピュータ１００は、図４のＳ２２において、入力した処理対象の画像データについて図５の処理に従って証明書パスを構築する。この証明書パス構築処理では、ホストコンピュータ１００は、１番目の証明書としてカメラ証明書３４に着目し（Ｓ２２２）、カメラ証明書３４の発行者情報「ＴＰＭ＿Ａ」を取得する（Ｓ２２３）。なお、この段階では、着目している１番目の証明書がカメラ証明書であるか否かは不明である。次に、ホストコンピュータ１００は、１番目の証明書であるカメラ証明書３４の主体者情報「ＳＮ１２３」を取得し（Ｓ２２６）、Ｓ２２３において取得した発行者情報と、Ｓ２２６において取得した主体者情報とが一致するか否かを判定する。
【００８４】
カメラ証明書３４の発行者情報と主体者情報とは異なる（Ｓ２２７でＮｏ）。そのため、ホストコンピュータ１００は、２番目の証明書であるＴＰＭ証明書３５に着目し（Ｓ２２５）、ＴＰＭ証明書３５の主体者情報「ＴＰＭ＿Ａ」を取得する（Ｓ２２６）。なお、１番目の証明書と同様に、この段階では、着目している２番目の証明書がＴＰＭ証明書であるか否かは不明である。
カメラ証明書３４の発行者情報とＴＰＭ証明書３５の主体者情報とは一致するため、ホストコンピュータ１００は、カメラ証明書３４（１番目の証明書）の発行者をＴＰＭ証明書３５（２番目の証明書）の主体者であると決定する（Ｓ２２８）。この段階で、「カメラ証明書の発行者の証明書が画像ファイルの中に存在した」ということが判明したことになる。ただし、この段階では、存在を確認した証明書がＴＰＭ証明書であるか否かは不明である。
【００８５】
次に、ホストコンピュータ１００は、２番目の証明書であるＴＰＭ証明書３５に着目し（Ｓ２２２）、ＴＰＭ証明書３５の発行者情報「ＣＡ１」を取得する（Ｓ２２３）。そして、ホストコンピュータ１００は、１番目の証明書であるカメラ証明書３４の主体者情報「ＳＮ１２３」を取得し（Ｓ２２６）、Ｓ２２３において取得した発行者情報と、Ｓ２２６において取得した主体者情報とが一致するか否かを判定する。
ＴＰＭ証明書３５の発行者情報とカメラ証明書３４の主体者情報とは異なる（Ｓ２２７でＮｏ）。そのため、ホストコンピュータ１００は、２番目の証明書であるＴＰＭ証明書３５に着目し（Ｓ２２５）、ＴＰＭ証明書３５の主体者情報「ＴＰＭ＿Ａ」を取得する（Ｓ２２６）。ＴＰＭ証明書３５の発行者情報と主体者情報とは異なるため、ホストコンピュータ１００は、画像ファイル３０内にＴＰＭ証明書３５の発行者情報「ＣＡ１」に主体者情報が一致する証明書は存在しないと判断する（Ｓ２２９でＹｅｓ）。
【００８６】
そこで、ホストコンピュータ１００は、証明書ストア内にＴＰＭ証明書３５の発行者情報「ＣＡ１」と主体者情報が一致する証明書が存在するか否かを検索する（Ｓ２３１）。そして、証明書ストア内に保管されているルート証明書２６が検索される。ルート証明書２６の主体者情報は、ＴＰＭ証明書３５の発行者情報と一致するため（Ｓ２３２でＹｅｓ）、ホストコンピュータ１００は、最終的に証明書パス構築成功と判定する（Ｓ２３６）。
【００８７】
続いて、ホストコンピュータ１００は、図４のＳ２７において、図６の処理に従って証明書を確認する。この証明書確認処理では、ホストコンピュータ１００は、証明書パス内においてカメラベンダ証明書を検索する（Ｓ２７１）。具体的には、証明書パス内の各証明書について主体者情報がカメラベンダリスト２７に含まれるか否かを、順次判定する（図７のＳ２７１ｃ）。証明書パスの中には主体者情報がカメラベンダリスト２７に含まれている証明書が存在しないため、ホストコンピュータ１００は、「証明書パス内にはカメラベンダ証明書が存在しない」と判定する。
このとき、ホストコンピュータ１００のユーザが、カメラベンダリスト２７に主体者情報を追加しないと判断した場合には（Ｓ２７４でＮｏ）、ホストコンピュータ１００は、「カメラベンダ証明書なし」と判定する（Ｓ２７６）。その結果、ホストコンピュータ１００は、最終的に、処理対象である画像データは画像入力装置によって発生した画像データではなく、検証失敗であると判定する（図４のＳ３０）。
【００８８】
このように、ホストコンピュータ１００は、証明書パスの構築に成功した場合であっても、証明書パスの中にカメラベンダ証明書が含まれていないことを検出した場合には、検証失敗と判定することができる。したがって、攻撃者が、ＰＣに搭載されたＴＰＭによって保護されている署名鍵を用いて改竄画像に再署名した場合には、ホストコンピュータ１００は、適切に検証失敗と判断することができる。
以上説明したように、本実施形態における情報処理装置であるホストコンピュータ１００は、画像改竄検出処理の対象とする画像データを、メモリカードや通信装置経由で入力する。このとき、ホストコンピュータ１００は、特定の画像入力装置の製造者のリストである製造者リストに基づいて、画像データに付与された証明書の中から、製造者リストに含まれる製造者に対応する製造者証明書を検索する。そして、ホストコンピュータ１００は、上記の検索処理により製造者証明書が検索された場合、入力された画像データは、検索された製造者証明書に対応する製造者が製造した特定の画像入力装置によって発生された画像データであると判断する。
【００８９】
また、ホストコンピュータ１００は、特定の画像入力装置が備えるＴＰＭのリストであるＴＰＭリストに基づいて、画像データに付与された証明書の中から、ＴＰＭリストに含まれるＴＰＭに対応するＴＰＭ証明書を検索してもよい。そして、ホストコンピュータ１００は、ＴＰＭ証明書が検索された場合、入力された画像データは、検索されたＴＰＭ証明書に対応するＴＰＭ（特定の画像入力装置が備えるＴＰＭ）によって保護された署名鍵を用いて署名されたと判断してもよい。
このように、ホストコンピュータ１００は、製造者証明書およびＴＰＭ証明書（少なくとも製造者証明書）につき、証明書の正当性を確認する証明書確認処理を実行する。これにより、ホストコンピュータ１００は、検証対象の画像データに付与された証明書の正当性を確認することができる。つまり、ホストコンピュータ１００は、検証対象の画像データが、画像入力装置内で安全に管理された、画像入力装置に固有な署名鍵を用いて署名がなされた画像データであるか否かを適切に判断することができる。
【００９０】
画像入力装置内において署名鍵が安全に管理されていない場合、署名鍵が画像入力装置外に漏洩するおそれがある。署名鍵が画像入力装置外に漏洩した場合、攻撃者は、画像入力装置により発生した画像データをＰＣ上で改竄した後、漏洩した署名鍵を用いて改竄画像に対して再署名することが可能となる。この場合、生成された改竄画像データは、署名検証に成功してしまうため、本実施形態のような証明書の正当性を確認する証明書確認処理を行わない場合、検証対象の画像データは検証成功（改竄されていない）と判断されてしまう。
また、攻撃者は、画像入力装置により発生した画像データをＰＣ上で改竄した後、偽造した画像入力装置の署名鍵やＰＣ内のＴＰＭで保護された署名鍵を用いて改竄画像に対して再署名することもある。この場合にも、生成された改竄画像データは署名検証に成功してしまうため、本実施形態のような証明書の正当性を確認する証明書確認処理を行わない場合、検証対象の画像データは検証成功（改竄されていない）と判断されてしまう。
【００９１】
これに対して、本実施形態では、ホストコンピュータ１００は、上述した証明書確認処理を実行することにより、攻撃者が漏洩した署名鍵や偽造した署名鍵を用いて改竄画像に再署名した場合には、これを適切に検出することができる。
また、ホストコンピュータ１００は、証明書確認処理において参照する製造者リストやＴＰＭリストを、改竄されないように安全に管理しておくことで、証明書確認処理の信頼性を向上させることができる。その結果、より適切に画像改竄検出処理を実行することができる。
【００９２】
また、ホストコンピュータ１００は、証明書確認処理に際し、証明書に含まれる主体者情報が、製造者リストに含まれる画像入力装置の製造者を示す情報と一致する場合、画像データに付与された証明書の中に製造者証明書が存在すると判断する。同様に、ホストコンピュータ１００は、証明書に含まれる主体者情報が、ＴＰＭリストに含まれるＴＰＭを示す情報と一致する場合、画像データに付与された証明書の中にＴＰＭ証明書が存在すると判断する。このとき、ホストコンピュータ１００は、文字列の比較により、リスト中から対象の証明書を検索する。したがって、容易かつ適切に証明書の検索を行うことができる。
【００９３】
さらに、ホストコンピュータ１００は、製造者証明書とＴＰＭ証明書とが検索された場合、製造者証明書がＴＰＭ証明書よりも上位に位置するか否かを判定してもよい。その際、ホストコンピュータ１００は、画像データに付与された複数の証明書の階層構造を示す証明書パスを構築し、構築された証明書パスに基づいて上記の証明書の上位判定を行う。そして、ホストコンピュータ１００は、製造者証明書がＴＰＭ証明書よりも上位に位置すると判定された場合、構築された証明書パスは適正であると判断する。
これにより、ホストコンピュータ１００は、ＴＰＭ証明書に対応するＴＰＭは、製造者証明書に対応する製造者が製造した画像入力装置が備えるＴＰＭであると判断することができる。つまり、ホストコンピュータ１００は、検証対象の画像データが、信頼できる画像入力装置が備えるＴＰＭによって保護された署名鍵を用いて署名された画像データであることを確認することができる。そのため、攻撃者が、画像入力装置の製造者になりすまして改竄画像に署名した場合には、ホストコンピュータ１００は、これを適切に検出することができる。
【００９４】
＜変形例＞
上記実施形態では、図４のＳ２２において証明書パスの構築に成功した後、Ｓ２７において証明書パスの中にカメラベンダ証明書やＴＰＭ証明書が存在していることを確認する証明書確認処理を行う場合について説明した。しかしながら、証明書確認処理を行うタイミングは上記に限定されるものではなく、証明書パスを構築する過程で、カメラベンダ証明書やＴＰＭ証明書が存在していることを確認するようにしてもよい。この点につき、具体的に説明する。
図１３は、画像改竄検出処理の流れを示すフローチャートである。この図１３に示す画像改竄検出処理は、上述した図４の画像改竄検出処理と同様に、ホストコンピュータ１００において実行される。図１３において、図４と同一処理を行うステップには同一ステップ番号を付し、以下、処理の異なる部分を中心に説明する。
【００９５】
図１３の画像改竄検出処理では、ホストコンピュータ１００は、Ｓ２３において証明書パスの構築が成功したと判定した場合、Ｓ２８に移行する。つまり、図４のＳ２７がなく、Ｓ２７と同様の処理は、Ｓ２２の証明書パス構築処理内で実行するものとする。上記実施形態では、Ｓ２２において図５に示す証明書パス構築処理を実行したが、この変形例では、Ｓ２２において、図１４に示す証明書パス構築処理を実行する。
図１４に示す証明書パス構築処理は、上述した図５の証明書パス構築処理と同様に、ホストコンピュータ１００において実行される。図１４において、図５と同一処理を行うステップには同一ステップ番号を付し、以下、処理の異なる部分を中心に説明する。
図１４の証明書パス構築処理では、ホストコンピュータ１００は、Ｓ２２８の後に、Ｓ２３７において証明書確認処理を実行するようにしている。このＳ２３７では、ホストコンピュータ１００は、図１５に示す証明書確認処理を実行する。
【００９６】
Ｓ２３７ａでは、ホストコンピュータ１００は、着目している証明書（ｉ）の主体者情報の文字列がカメラベンダリストに含まれるか否かを判定する。そして、ホストコンピュータ１００は、証明書（ｉ）の主体者情報の文字列がカメラベンダリストに含まれている場合にはＳ２３７ｂに移行し、証明書（ｉ）の主体者情報の文字列がカメラベンダリストに含まれていない場合にはＳ２３７ｃに移行する。Ｓ２３７ｂでは、ホストコンピュータ１００は、証明書（ｉ）はカメラベンダ証明書であると判定してＳ２３７ｄに移行する。Ｓ２３７ｃでは、ホストコンピュータ１００は、証明書（ｉ）はカメラベンダ証明書ではないと判定してＳ２３７ｄに移行する。
【００９７】
Ｓ２３７ｄでは、ホストコンピュータ１００は、証明書（ｉ）の主体者情報の文字列がＴＰＭリストに含まれるか否かを判定する。そして、ホストコンピュータ１００は、証明書（ｉ）の主体者情報の文字列がＴＰＭリストに含まれている場合にはＳ２３７ｅに移行し、証明書（ｉ）の主体者情報の文字列がＴＰＭリストに含まれていない場合にはＳ２３７ｆに移行する。Ｓ２３７ｅでは、ホストコンピュータ１００は、証明書（ｉ）はＴＰＭ証明書であると判定して図１５の処理を終了する。Ｓ２３７ｆでは、ホストコンピュータ１００は、証明書（ｉ）はＴＰＭ証明書ではないと判定して図１５の処理を終了する。
上記の変形例によれば、証明書パス構築処理の過程で、カメラベンダ証明書およびＴＰＭ証明書を確認できるため、より効率的に画像データの改竄検出を実行することが可能となる。
【００９８】
＜その他の変形例＞
上記実施形態では、図４のＳ２６において証明書パスの構築に失敗したと判定された後、Ｓ３５に進み、証明書内の署名検証を実行する場合について説明した。しかしながら、Ｓ２６の後、検証失敗と判断してＳ３０に進めてもよい。
また、上記実施形態では、図４のＳ２９においてカメラベンダ証明書が存在しないと判断された場合、Ｓ３０に進み、検証失敗と判断する場合について説明した。しかしながら、Ｓ２９の後、Ｓ３５に進み、証明書内の署名検証を実行するようにしてもよい。この場合、カメラベンダ証明書が存在しないことに加え、署名の検証結果を、画像検証ツールを用いて表示することが可能となる。
【００９９】
さらに、上記実施形態では、ユーザ（検証者）が、手動でカメラベンダリストやＴＰＭリストにカメラベンダ名やＴＰＭ名を追加し、カメラベンダリストおよびＴＰＭリストを更新する場合について説明した。しかしながら、カメラベンダリストおよびＴＰＭリストの更新方法は上記に限定されない。例えば、ホストコンピュータ１００を画像入力装置に接続して画像入力装置内に保存されているカメラベンダ名やＴＰＭ名を取得し、これらをリストに追加するようにしてもよい。また、カメラベンダリストやＴＰＭリストの公開サーバにアクセスし、公開サーバから最新リストを取得し、更新するようにしてもよい。
また、上記実施形態では、図６のＳ２７２において、カメラベンダリストに基づいてカメラベンダ証明書が存在しないと判定された場合に、Ｓ２７４においてカメラベンダリストの更新を行うか否かを判定する場合について説明した。しかしながら、カメラベンダリストの更新のタイミングは上記に限定されず、任意のタイミングであってよい。ＴＰＭリストの更新のタイミングについても同様である。
【０１００】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記録媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０１】
１００…ホストコンピュータ（情報処理装置）、２００Ａ、２００Ｂ…カメラ（画像入力装置）、２０Ａ、２０Ｂ…画像ファイル、２１…画像データ、２２…署名、２３…カメラベンダ証明書、２４…カメラ証明書、２５…ＴＰＭ証明書、２６…証明書ストア、２７…カメラベンダリスト、２８…ＴＰＭリスト
【図１】
2017220823.tif 000003
【図２】
2017220823.tif 000004
【図３】
2017220823.tif 000005
【図４】
2017220823.tif 000006
【図５】
2017220823.tif 000007
【図６】
2017220823.tif 000008
【図７】
2017220823.tif 000009
【図８】
2017220823.tif 000010
【図９】
2017220823.tif 000011
【図１０】
2017220823.tif 000012
【図１１】
2017220823.tif 000013
【図１２】
2017220823.tif 000014
【図１３】
2017220823.tif 000015
【図１４】
2017220823.tif 000016
【図１５】
2017220823.tif 000017