(57)【要約】【課題】耐タンパー処理部を持たない装置と、耐タンパー処理部を持つ別の装置とを連携させ、機器証明を実行可能にする技術を提供する。【解決手段】情報処理装置は、情報処理装置のモジュールのハッシュ値を取得し、耐タンパー装置にハッシュ値を送信し、情報処理装置が改竄されていないことを証明する証明情報の取得要求を耐タンパー装置に送信し、耐タンパー装置より証明情報を受信し、受信した証明情報を検証装置に送信する。耐タンパー装置は、情報処理装置より受信したハッシュ値を耐タンパーなメモリに登録し、情報処理装置より証明情報の取得要求を受け取ると、耐タンパーなメモリに登録したハッシュ値と秘密鍵とから情報処理装置の証明情報を生成し、生成した証明情報を情報処理装置に送信する。【選択図】図６
2017228918.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と、耐タンパー装置と、を含むシステムであって、
前記情報処理装置は、
前記情報処理装置のモジュールのハッシュ値を取得し、前記耐タンパー装置に前記ハッシュ値を送信し、前記情報処理装置が改竄されていないことを証明する証明情報の取得要求を前記耐タンパー装置に送信し、前記耐タンパー装置より前記証明情報を受信し、前記受信した証明情報を検証装置に送信し、
前記耐タンパー装置は、
前記情報処理装置より受信した前記ハッシュ値を耐タンパーなメモリに登録し、前記情報処理装置より前記証明情報の取得要求を受け取ると、前記耐タンパーなメモリに登録した前記ハッシュ値と秘密鍵とから前記情報処理装置の証明情報を生成し、前記生成した証明情報を前記情報処理装置に送信するシステム。
【請求項２】
前記耐タンパー装置は、前記情報処理装置より受信した前記ハッシュ値と前記耐タンパーなメモリに既に保存されているハッシュ値とに基づいて新たなハッシュ値を求め、求めた新たなハッシュ値を前記耐タンパーなメモリに登録する請求項１記載のシステム。
【請求項３】
前記情報処理装置は、
前記ハッシュ値と前記情報処理装置を識別する識別情報とを前記耐タンパー装置に送信し、前記識別情報を前記耐タンパー装置に前記証明情報の要求と共に送信し、
前記耐タンパー装置は、
複数の耐タンパーなメモリから未使用の耐タンパーなメモリを選択し、前記ハッシュ値と前記識別情報とを対応付けて前記選択した耐タンパーなメモリに登録し、前記証明情報の要求のさい受信した前記情報処理装置を識別する識別情報に基づき対応付けられているハッシュ値を取得し、取得した前記ハッシュ値と秘密鍵とから前記情報処理装置の証明情報を生成し、前記生成した証明情報を前記情報処理装置に送信する請求項１記載のシステム。
【請求項４】
前記耐タンパー装置は、
前記耐タンパーなメモリに既に保存されているハッシュ値を読み出し、前記耐タンパーなメモリ以外の保存領域に保存し、前記保存したハッシュ値と前記情報処理装置より受信した前記ハッシュ値とに基づいて新たなハッシュ値を求め、求めた新たなハッシュ値を前記耐タンパーなメモリに上書きし、前記情報処理装置より前記証明情報の取得要求を受け取ると、前記耐タンパーなメモリに登録した前記ハッシュ値と秘密鍵とから前記情報処理装置の証明情報を生成し、前記生成した証明情報と前記保存領域に保存したハッシュ値とを前記情報処理装置に送信し、
前記情報処理装置は、
前記耐タンパー装置より前記証明情報と前記ハッシュ値とを受信し、前記受信した証明情報とハッシュ値とを検証装置に送信する請求項１記載のシステム。
【請求項５】
前記耐タンパー装置は、
接続されている情報処理装置の台数がしきい値未満の場合は、複数の耐タンパーなメモリから未使用の耐タンパーなメモリを選択し、前記ハッシュ値と情報処理装置を識別する識別情報とを対応付けて前記選択した耐タンパーなメモリに登録し、前記証明情報の要求のさい受信した前記情報処理装置を識別する識別情報に基づき対応付けられているハッシュ値を取得し、取得した前記ハッシュ値と秘密鍵とから前記情報処理装置の証明情報を生成し、前記生成した証明情報を前記情報処理装置に送信し、
接続されている情報処理装置の台数がしきい値以上の場合は、耐タンパーなメモリに既に保存されているハッシュ値を読み出し、前記耐タンパーなメモリ以外の保存領域に保存し、前記保存したハッシュ値と前記情報処理装置より受信した前記ハッシュ値とに基づいて新たなハッシュ値を求め、求めた新たなハッシュ値を前記耐タンパーなメモリに上書きし、前記情報処理装置より前記証明情報の取得要求を受け取ると、前記耐タンパーなメモリに登録した前記ハッシュ値と秘密鍵とから前記情報処理装置の証明情報を生成し、前記生成した証明情報と前記保存領域に保存したハッシュ値とを前記情報処理装置に送信する請求項１記載のシステム。
【請求項６】
前記耐タンパー装置は、耐タンパーなメモリの利用状況に応じて、しきい値を変更する請求項５記載のシステム。
【請求項７】
前記情報処理装置は、画像処理装置である請求項１乃至６何れか１項記載のシステム。
【請求項８】
前記情報処理装置は、カメラである請求項１乃至６何れか１項記載のシステム。
【請求項９】
情報処理装置と、耐タンパー装置と、を含むシステムにおける情報処理方法であって、
前記情報処理装置が、前記情報処理装置のモジュールのハッシュ値を取得し、前記耐タンパー装置に前記ハッシュ値を送信するステップと、
前記耐タンパー装置が、前記情報処理装置より受信した前記ハッシュ値を耐タンパーなメモリに登録するステップと、
前記情報処理装置が、前記情報処理装置が改竄されていないことを証明する証明情報の取得要求を前記耐タンパー装置に送信するステップと、
前記耐タンパー装置が、前記情報処理装置より前記証明情報の取得要求を受け取ると、前記耐タンパーなメモリに登録した前記ハッシュ値と秘密鍵とから前記情報処理装置の証明情報を生成し、前記生成した証明情報を前記情報処理装置に送信するステップと、
前記情報処理装置が、前記耐タンパー装置より前記証明情報を受信し、前記受信した証明情報を検証装置に送信するステップと、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム及び情報処理方法に関する。
【背景技術】
【０００２】
コンピュータをサーバ等に接続するさい、コンピュータ内部のモジュールが改竄されていないことを証明するための機器証明技術がある。機器証明技術では、接続元のコンピュータ（以下、ＰＣ）内部に含まれる各モジュールから生成したハッシュ値をデジタル署名付きで接続先のサーバに送信する。サーバは、予めＰＣ内部に含まれる各モジュールのハッシュ値の正解値（又は、期待値。以下、正解ハッシュ値と呼称する場合がある）をデータベースに保持しておく。そして、サーバは、ＰＣから受信したハッシュ値と、データベース内の正解ハッシュ値と、を比較することで、ＰＣが改竄されているか否かを判断する。
従来技術では、ＰＣのブート時に起動した各モジュールのハッシュ値をサーバに送信し、サーバでハッシュ値とデータベース内の正解ハッシュ値とを比較することでＰＣの改竄を検知している（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４９５０１９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、デジタル署名はＰＣ内の耐タンパー処理部により実行される。したがって、例えば耐タンパー処理部を持たないカメラでは、機器証明を実行できない。
本発明は、耐タンパー処理部を持たない装置と、耐タンパー処理部を持つ別の装置とを連携させ、機器証明を実行可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、情報処理装置と、耐タンパー装置と、を含むシステムであって、前記情報処理装置は、前記情報処理装置のモジュールのハッシュ値を取得し、前記耐タンパー装置に前記ハッシュ値を送信し、前記情報処理装置が改竄されていないことを証明する証明情報の取得要求を前記耐タンパー装置に送信し、前記耐タンパー装置より前記証明情報を受信し、前記受信した証明情報を検証装置に送信し、前記耐タンパー装置は、前記情報処理装置より受信した前記ハッシュ値を耐タンパーなメモリに登録し、前記情報処理装置より前記証明情報の取得要求を受け取ると、前記耐タンパーなメモリに登録した前記ハッシュ値と秘密鍵とから前記情報処理装置の証明情報を生成し、前記生成した証明情報を前記情報処理装置に送信する。
【発明の効果】
【０００６】
本発明によれば、耐タンパー処理部を持たない装置と、耐タンパー処理部を持つ別の装置とを連携させ、機器証明を実行可能にする技術を提供することができる。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置の構成等の一例を示す図である。
【図２】耐タンパー装置の構成等の一例を示す図である。
【図３】機器証明システムのシステム構成の一例を示す図である。
【図４】データベースの一例を示す図である。
【図５】カメラ、耐タンパー装置、検証装置の機能構成の一例を示す図である。
【図６】情報処理の一例を示すフローチャートである。
【図７】カメラ、耐タンパー装置、検証装置の機能構成の一例を示す図である。
【図８】情報処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
（情報処理装置の構成）
図１は、情報処理装置１１の構成等の一例を示す図である。
情報処理装置１１は、例えば一般に普及している画像データのコピー、スキャン、プリント等を実行可能な画像処理装置、或いはデジタル写真を撮影可能な撮像装置等である。以下、説明の簡略化のため、情報処理装置１１はカメラ１１として説明を行う。図１に示すように、カメラ１１は、ハードウェア構成としてＲＯＭ１１１、ＨＤＤ１１２、ＲＡＭ１１３、ＣＰＵ１１４、通信装置１１５から構成される。
ＲＯＭ１１１は、物理的、或いは論理的な書き換えが不可能な不揮発性メモリであり、ＢＩＯＳ１１１１のプログラムや各種モジュール、及びデータを記憶可能な記憶装置である。ＣＰＵ１１４がＢＩＯＳ１１１１のプログラムを実行することによりＢＩＯＳ１１１１が実現される。ＢＩＯＳ１１１１はカメラ１１全体を制御するモジュールである。また、ＢＩＯＳ１１１１は、カメラ１１に電源が投入されたさい、情報処理装置内部で最初に起動されるモジュールである。
ＨＤＤ１１２は、ブートローダ１１２１のプログラム、カーネル１１２２のプログラム、モジュール１１２３のプログラム等が記憶可能な記憶装置である。ＣＰＵ１１４がブートローダ１１２１のプログラム、カーネル１１２２のプログラム、モジュール１１２３のプログラム等を実行することにより、ブートローダ１１２１、カーネル１１２２、モジュール１１２３等が実現される。ここで、ブートローダ１１２１は、起動するカーネル１１２２の制御をするモジュールである。カーネル１１２２は、モジュール１１２３のロード、ＲＡＭ１１３のメモリ管理、及びキーボードや画面出力等の入出力機能を制御するモジュールである。モジュール１１２３は、ワードプロセッサ、表計算、データベース管理、ネットワークブラウジング、メール送受信、映像・音声再生、印刷、通信等、カメラ１１が実現する各種機能を提供するモジュールである。
通信装置１１５は、カメラ１１と、耐タンパー装置１２、及び検証装置１３とのデータの送受信を行う。
ＣＰＵ１１４が、ＲＯＭ１１１又はＨＤＤ１１２に記憶されたプログラムに基づき処理を実行することにより後述する図５、図７のカメラ１１の機能構成及び後述する図６、図８のカメラ１１のフローチャートの処理が実現される。
【００１０】
（耐タンパー装置の構成）
図２は、耐タンパー装置１２の構成等の一例を示す図である。
図２に示すように、耐タンパー装置１２は、ＲＯＭ１２１、ＨＤＤ１２２、ＲＡＭ１２３、ＣＰＵ１２４、通信装置１２５、及びＴＰＭ１２６から構成される。耐タンパー装置１２のＴＰＭ１２６以外のハードウェアは、図１のカメラ１１のハードウェアと同様の機能を有する。
ＴＰＭ１２６は、耐タンパー性を有するセキュリティチップである。耐タンパー性とは、外部からの解析を困難にすると共に、外部から解析しようとした場合に内部に記憶されているモジュール、或いはデータを破壊することにより自己防衛する特性である。また、ＴＰＭ１２６は、ＮＶＲＡＭ１２１１、ＰＣＲ１２１２、及び制御部１２１３から構成されている。ＮＶＲＡＭ１２１１は不揮発性メモリであり、デジタル署名の生成に必要な秘密鍵（クライアント秘密鍵、及びサーバ秘密鍵）、公開鍵（クライアント公開鍵、及びサーバ公開鍵）、及び公開鍵証明書等を記憶する。ＰＣＲ０〜ＰＣＲ２３は揮発性メモリであり、通信装置１１５を介して受信したカメラ１１のＢＩＯＳ１１１１、ブートローダ１１２１、カーネル１１２２、モジュール１１２３等のハッシュ値を記憶する。本実施形態ではＴＰＭ１２６内のＰＣＲ１２１２をＰＣＲ０〜ＰＣＲ２３の計２４のＰＣＲで構成しているが、ＰＣＲの数はこれに限定されず、２４より多くてもよい。制御部１２１３は、デジタル署名生成処理、及びＰＣＲ０〜ＰＣＲ２３へのハッシュ値登録処理等を実行する。
【００１１】
ここで、ＰＣＲへのハッシュ値登録処理を説明する。ハッシュ値登録処理では、所定のＰＣＲに既に保存されているハッシュ値Ｈａｓｈ１と、ＴＰＭ１２６の外部から入力されたモジュール又はデータのハッシュ値Ｈａｓｈ２と、を用いて次の式を計算し、計算した値Ｒｅｓｕｌｔ１をＰＣＲに登録する。
Ｒｅｓｕｌｔ１＝Ｈ（Ｈａｓｈ１｜Ｈａｓｈ２）  （式１）
Ｈ（ｘ）は値ｘに対するハッシュ関数である。ハッシュ関数としてはＳＨＡ１、ＳＨＡ２５６、ＳＨＡ５１２等のアルゴリズムを適応することができる。「ｘ｜ｙ」は値ｘと値ｙとの連結である。
以上説明したＰＣＲへのハッシュ値登録処理は、カメラ１１が起動するさい等に実行される。
ＣＰＵ１２４がＲＯＭ１２１、又はＨＤＤ１２２に記憶されているプログラムに基づき処理を実行することにより後述する図５、図７の耐タンパー装置１２の機能構成の一部、即ち通信部４０８、登録部４０５又は６０５が実現される。また、ＣＰＵ１２４がＲＯＭ１２１、又はＨＤＤ１２２に記憶されているプログラムに基づき処理を実行することにより後述する図６の耐タンパー装置１２のフローチャートの処理の一部、Ｓ５０３、Ｓ５０４、Ｓ５０７の処理、が実現される。また、ＣＰＵ１２４がＲＯＭ１２１、又はＨＤＤ１２２に記憶されているプログラムに基づき処理を実行することにより後述する図８の耐タンパー装置１２のフローチャートの処理の一部、Ｓ５０３、Ｓ７０２、Ｓ７０３、Ｓ５０４、Ｓ５０７の処理、が実現される。
また、検証装置１３もハードウェア構成として少なくとも図１に示したカメラ１１と同様のハードウェア構成を有する。検証装置１３のＣＰＵが検証装置１３のＲＯＭ又はＨＤＤに記憶されたプログラムに基づき処理を実行することにより後述する図５、図７の検証装置１３の機能構成及び後述する図６、図８の検証装置１３のフローチャートの処理が実現される。
【００１２】
ここで、カメラ１１の起動処理について説明する。カメラ１１に電源が投入されると、まずＣＰＵ１１４はＢＩＯＳ１１１１のプログラムを実行する。その後、ＣＰＵ１１４は、ブートローダ１１２１、カーネル１１２２、モジュール１１２３の順に各プログラムをロード・実行する。
本実施形態では、前述したＰＣＲへのハッシュ値登録処理を、以上説明した起動処理中に実行する。即ち、ＢＩＯＳ１１１１は、自分自身のハッシュ値を算出し、算出したハッシュ値を耐タンパー装置１２に送信する。耐タンパー装置１２は、受信したハッシュ値を（式１）に従ってＰＣＲ０へ登録する。そして、ＢＩＯＳ１１１１は、ブートローダ１１２１のハッシュ値を算出し、算出したハッシュ値を耐タンパー装置１２に送信する。耐タンパー装置１２は、受信したハッシュ値を（式１）に従ってＰＣＲ１へ登録する。その後、ブートローダ１１２１が起動される。起動したブートローダ１１２１は、カーネル１１２２のハッシュ値を算出し、算出したハッシュ値を耐タンパー装置１２に送信する。耐タンパー装置１２は、受信したハッシュ値を（式１）に従ってＰＣＲ２へ登録する。その後、カーネル１１２２が起動される。起動したカーネル１１２２は、モジュール１１２３が必要となった場合にモジュールのハッシュ値を算出し、算出したハッシュ値を耐タンパー装置１２に送信する。耐タンパー装置１２は、受信したハッシュ値を（式１）に従ってＰＣＲ３へ登録する。カーネル１１２２は、モジュールが必要になる毎にハッシュ値登録処理を繰り返し実行する。
更にＴＰＭ１２６は、ＰＣＲに保存したハッシュ値のデジタル署名を生成し、ＰＣＲに保存したハッシュ値と共に出力する機能を持つ。
本実施形態では、ＴＰＭ１２６が出力したＰＣＲに保存されたハッシュ値とそのデジタル署名とをカメラ１１から検証装置１３に送り、検証装置１３でそのハッシュ値を正解ハッシュ値と比較することで、カメラ１１内のモジュールの改竄有無を検証する。なお、検証装置１３に送信するハッシュ値は、どのモジュールから算出したハッシュ値なのかが特定できるように、例えばモジュールのファイル名や識別子等と紐づけられた状態で検証装置１３に送信される。
【００１３】
（機器証明システムの構成）
図３は、機器証明システムのシステム構成の一例を示す図である。
機器証明システムは、カメラ１１、耐タンパー装置１２、検証装置１３、データベース１４から構成される。カメラ１１、耐タンパー装置１２、及びカメラ１１、検証装置１３は、有線、或いは無線の通信回線１５を介して接続されており、互いにデータを通信可能である。また、検証装置１３としては、前述したカメラ１１又は耐タンパー装置１２を適用してもよい。検証装置１３は、データベース１４の読み込み及び書き込みが可能である。データベース１４は、検証装置１３のＨＤＤ等に記憶されていてもよいし、検証装置１３と通信可能なサーバ装置のＨＤＤ等に記憶されていてもよい。
ここで、データベース１４について、図４（Ａ）を用い説明する。図４（Ａ）は、データベース１４の一例である。データベース１４の左の列で示す「カメラのＩＤ」は、データベース１４に登録されているカメラ１１の識別子である。図４（Ａ）の例では、ＩＤ「００１」を持つカメラ１１がデータベース１４に登録されている。本実施形態では、データベース１４に登録されているカメラ１１のモジュールの改竄を検証装置１３で検証する。
データベース１４の真ん中の列で示す「検証対象」には、検証装置１３が検証するカメラ１１のモジュール名が登録されている。モジュール名は、モジュールを一意に特定できるものであればよく、例えば、モジュールのファイル名やモジュールの識別名である。検証装置１３は、「検証対象」列に記載されたモジュールの改竄を検証することでカメラ１１の改竄有無を検証する。図４（Ａ）の例では、検証装置１３は、モジュールＡ、モジュールＢの改竄有無を検証する。
データベース１４の右の列で示す「正解ハッシュ値」には、「検証対象」列に登録されているモジュールの正解ハッシュ値が登録されている。検証装置１３は、この「正解ハッシュ値」とカメラ１１から受信したハッシュ値とを「検証対象」毎に比較し、一致していれば検証対象は「改竄なし」、不一致ならば検証対象は「改竄あり」と判定する。例えば、検証装置１３は、「検証対象」がモジュールＡとなっている行の「正解ハッシュ値」とカメラ１１から受信したデータのハッシュ値とが一致していれば、カメラ１１に含まれるモジュールＡは「改竄なし」と判定し、不一致ならば「改竄あり」と判定する。
つまり、検証装置１３は、図４（Ａ）の場合、ＩＤ「００１」を持つカメラ１１に含まれる「モジュールＡ」、「モジュールＢ」の改竄有無を、それぞれの正解ハッシュ値とカメラ１１から受信したハッシュ値との比較で検証する。
【００１４】
（機能構成）
図５は、実施形態１のカメラ１１、耐タンパー装置１２、検証装置１３の機能構成の一例を示す図である。
図５に示す機能構成により、カメラ１１が改竄されているか否かを、検証装置１３で検証することができる。
まず、カメラ１１の機能構成を説明する。
ハッシュ計算部４０１は、ＢＩＯＳ１１１１、ブートローダ１１２１、カーネル１１２２、モジュール１１２３からハッシュ値を計算する。
第一の通信部４０２は、ハッシュ計算部４０１で計算されたＢＩＯＳ１１１１、ブートローダ１１２１、カーネル１１２２、モジュール１１２３のハッシュ値を耐タンパー装置１２に送信する。第一の通信部４０２は、ＳＳＬ、ＩＰｓｅｃ等の暗号通信プロトコルを介して、カメラ１１と耐タンパー装置１２との通信を行う。カメラ１１と耐タンパー装置１２とはＵＳＢケーブル等、物理的な手段を用いて通信可能に接続されていてもよい。
機器証明要求部４０３は、カメラ１１が改竄されていないことを証明する証明情報を耐タンパー装置１２に要求し、証明情報を耐タンパー装置１２から受信する。
第二の通信部４０４は、機器証明要求部４０３で受信した証明情報を検証装置１３に送信する。
【００１５】
次に、耐タンパー装置１２の機能構成を説明する。
登録部４０５は、カメラ１１から受信したＢＩＯＳ１１１１、ブートローダ１１２１、カーネル１１２２、モジュール１１２３のハッシュ値をセキュリティチップに登録する。セキュリティチップへのハッシュ値登録処理は、前述したＴＰＭ１２６のＰＣＲへのハッシュ値登録処理と同様のため、説明は省略する。
機器証明部４０６は、登録部４０５が登録したハッシュ値のデジタル署名を生成する。そして、機器証明部４０６は、デジタル署名と登録部４０５が登録したハッシュ値とから構成される証明情報を生成する。そして、機器証明部４０６は、通信部４０８を用いてカメラ１１に証明情報を送信する。機器証明部４０６としては、前述したＴＰＭ１２６が利用可能である。
【００１６】
検証装置１３の機能構成を説明する。
検証部４０７は、カメラ１１から受信した証明情報を検証することで、カメラ１１が改竄されているか否かを検証する。なお、前述したように、証明情報には、登録部４０５が登録したハッシュ値、及びそれらのデジタル署名が含まれる。検証部４０７は、証明情報のデジタル署名を検証することで、証明情報に含まれるハッシュ値が改竄されているか否かを検証する。
更に、検証部４０７は、証明情報に含まれるハッシュ値と、データベース１４の正解ハッシュ値とを比較することで、カメラ１１内に含まれるモジュールの改竄有無を検証する。例えば、検証部４０７は、登録部４０５が登録したハッシュ値であるモジュールＡのハッシュ値とデータベース１４に登録されているモジュールＡの正解ハッシュ値とを比較することで、モジュールＡが改竄されているか否かを検証できる。検証部４０７は、モジュールＡのハッシュ値と正解ハッシュ値とが一致の場合は「改竄なし」、不一致の場合は「改竄あり」と判断できる。
【００１７】
（情報処理）
図６は、実施形態１の情報処理の一例を示すフローチャートである。
カメラ１１のハッシュ計算部４０１は、モジュールのハッシュ値を計算し、取得する（Ｓ５０１）。ハッシュ計算部４０１は、第一の通信部４０２を用いて、モジュールのハッシュ値を耐タンパー装置１２に送信する（Ｓ５０２）。耐タンパー装置１２の通信部４０８は、モジュールのハッシュ値をカメラ１１から受信する（Ｓ５０３）。登録部４０５は、モジュールのハッシュ値をセキュリティチップに登録する（Ｓ５０４）。カメラ１１の機器証明要求部４０３は、カメラ１１が改竄されていないことを証明する証明情報の取得要求を耐タンパー装置１２に送信する（Ｓ５０５）。取得要求を受け取ると、耐タンパー装置１２の機器証明部４０６は、登録部４０５が登録したハッシュ値のデジタル署名を生成する。そして、機器証明部４０６は、デジタル署名と登録部４０５が登録したハッシュ値とから構成される証明情報を生成する（Ｓ５０６）。耐タンパー装置１２の通信部４０８は、カメラ１１に証明情報を送信する（Ｓ５０７）。カメラ１１の第一の通信部４０２は、証明情報を耐タンパー装置１２から受信する（Ｓ５０８）。機器証明要求部４０３は、第二の通信部４０４を用いて、受信した証明情報を検証装置１３に送信する（Ｓ５０９）。検証装置１３の通信部４０９は、証明情報をカメラ１１から受信する（Ｓ５１０）。検証部４０７は、カメラ１１から受信した証明情報のデジタル署名を検証する（Ｓ５１１）。検証部４０７は、検証の結果、デジタル署名の検証に成功したか否かを判定する（Ｓ５１２）。デジタル署名の検証に成功した場合（Ｓ５１２においてＹＥＳ）、検証部４０７は、データベース１４の正解ハッシュ値と証明情報に含まれるハッシュ値とを比較する（Ｓ５１３）。検証部４０７は、Ｓ５１３で検証したモジュールの改竄有無の検証結果をカメラ１１に送信する（Ｓ５１４）。カメラ１１の第二の通信部４０４は、は検証結果を受信する（Ｓ５１５）。なお、証明情報のデジタル署名検証に失敗した場合（Ｓ５１２においてＮＯ）、Ｓ５１４において検証部４０７は、デジタル署名検証に失敗したという結果を検証結果としてカメラ１１に送信する。
このように、耐タンパー装置１２側でモジュールのハッシュ値の登録、デジタル署名、証明情報の生成を行い、カメラ１１と耐タンパー装置１２との２点間を結ぶ。したがって、耐タンパー処理部を持たないカメラであっても、機器証明を実行することができる。
【００１８】
＜実施形態２＞
以下、実施形態２の情報処理を説明する。なお、実施形態２において、実施形態１と略同様の構成については、同一符号を付して、その詳細説明を省略する。
実施形態２では、カメラ１１が複数台の場合の機器証明を説明する。
（機能構成）
図７は、実施形態２のカメラ１１、耐タンパー装置１２、検証装置１３の機能構成の一例を示す図である。
実施形態２の機能構成は図７に示すように、略実施形態１と同じだが、実施形態１と異なる符号が付してある機能は、実施形態１の機能と一部異なるため、以下で説明する。
機器ＩＤ送信部６０１は、第一の通信部４０２、及び第二の通信部４０４を用いてカメラ１１の機器ＩＤ情報を送信する機能を持つ。機器ＩＤは、カメラ１１を識別する識別情報の一例である。
ここで機器ＩＤとは、カメラ１１の各個体を特定するための情報であり、例えばＭＡＣアドレス、ＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）等である。
登録部６０５は、実施形態１の機能に加えて、ハッシュ値の登録先ＰＣＲを選択する機能を持つ。例えば、登録部６０５は、カメラ（ＩＤ＝００１）、カメラ（ＩＤ＝００２）の２台のカメラ１１のハッシュ値を受信した場合、カメラ（ＩＤ＝００１）のハッシュ値の登録先としてＰＣＲ０〜ＰＣＲ３を選択する。また登録部６０５は、カメラ（ＩＤ＝００２）のハッシュ値の登録先としてＰＣＲ４〜ＰＣＲ７を選択する。同時に、登録部６０５は、選択したＰＣＲとカメラ１１から受信した機器ＩＤとを対応付けて登録する。なお、ＰＣＲの選択方法は、前述した選択方法に限らず、ＴＰＭ１２６で未使用の任意のＰＣＲを選択してよい。
機器証明部６０６は、実施形態１の機能に加えて、カメラ１１から受信した機器ＩＤに対応するＰＣＲのハッシュ値を取り出す機能を持つ。
検証部６０７は、実施形態１の機能に加えて、カメラ１１から受信した機器ＩＤに対応するデータベース１４の正解ハッシュ値を取り出す機能を持つ。ここで、データベース１４について、図４（Ｂ）を用い説明する。図４（Ｂ）は、データベース１４の一例である。前述した機器ＩＤが、データベース１４の左の列で示す「カメラのＩＤ」と一致するものとする。つまり、検証部６０７は、機器証明を行うカメラ１１がカメラ（ＩＤ＝００１）の場合、「カメラのＩＤ」が００１の正解ハッシュ値を取り出す。また、検証部６０７は、機器証明を行うカメラ１１がカメラ（ＩＤ＝００２）の場合、「カメラのＩＤ」が００２の正解ハッシュ値を取り出す。
【００１９】
（情報処理）
図８は、実施形態２の情報処理の一例を示すフローチャートである。
機器ＩＤ送信部６０１は、第一の通信部４０２を用いて、モジュールのハッシュ値、及び機器ＩＤを耐タンパー装置１２に送信する（Ｓ７０１）。耐タンパー装置１２の登録部６０５は、ハッシュ値の登録先ＰＣＲを選択する（Ｓ７０２）。登録部６０５は、選択したＰＣＲとカメラ１１から受信した機器ＩＤとを紐づける（Ｓ７０３）。カメラ１１の機器証明要求部４０３は、カメラ１１が改竄されていないことを証明する証明情報を耐タンパー装置１２に要求する。同時に、機器ＩＤ送信部６０１は、機器ＩＤを送信する（Ｓ７０４）。耐タンパー装置１２の機器証明部６０６は、カメラ１１から受信した機器ＩＤに対応するＰＣＲのハッシュ値を取り出す（Ｓ７０５）。カメラ１１の機器証明要求部４０３は、第二の通信部４０４を用いて、受信した証明情報を検証装置１３に送信する。同時に、機器ＩＤ送信部６０１は、第二の通信部４０４を用いて、機器ＩＤを送信する（Ｓ７０６）。検証装置１３の検証部６０７は、カメラ１１から受信した機器ＩＤに対応するデータベース１４の正解ハッシュ値を取り出す（Ｓ７０７）。
このように、カメラ１１が複数台の場合に、ハッシュ値を登録するＰＣＲを複数利用することで、カメラ１１が複数台の場合の機器証明ができる。
【００２０】
（実施形態２の変形例１）
実施形態２では、カメラ１１が複数台の場合に、ハッシュ値を登録するＰＣＲを複数利用する方式について説明した。これに限らず、同じＰＣＲにハッシュ値を上書きすることもできる。
耐タンパー装置１２の登録部６０５は、Ｓ７０２の処理中に、ＴＰＭ１２６に保持されているＰＣＲ値を読み出し、ＲＯＭ１１１に保存しておく。ＲＯＭ１１１は、耐タンパーなメモリ以外の保存領域の一例である。そして、機器証明部６０６は、Ｓ５０６で生成した証明情報に、直前に読み出しＲＯＭ１１１に保存したＰＣＲ値を付与する。
検証装置１３の検証部６０７は、Ｓ５１１の処理中に上述の（式１）を用いてハッシュ値を算出する。このさい、Ｈａｓｈ１は、証明情報に付与されている前記直前に読み出しＲＯＭ１１１に保存されたＰＣＲ値となる。また、Ｈａｓｈ２は、検証対象のモジュールのハッシュ値となる。
以上説明した通り、ＴＰＭ１２６のＰＣＲ数が限られている場合においても、同じＰＣＲにハッシュ値を上書きすることで、カメラ１１が複数台の場合の機器証明ができる。
【００２１】
（実施形態２の変形例２）
上述した通り、カメラ１１が複数台の場合に、ハッシュ値を登録するＰＣＲを複数利用する方式、変形例１の同じＰＣＲにハッシュ値を上書きする方式について説明した。上述の２方式をカメラ１１の接続台数に応じて切り替えてもよい。
耐タンパー装置１２の登録部６０５は、Ｓ７０２中に通信部４０８を用いて、接続中のカメラ１１の接続台数を判定する。接続台数がしきい値未満の場合は、Ｓ７０２においてハッシュ値を登録するＰＣＲを複数利用する方式を選択する。接続台数がしきい値以上の場合は、Ｓ７０２において同じＰＣＲにハッシュ値を上書きする方式を選択する。上述のしきい値は例えばＴＰＭ１２６のＰＣＲの個数に応じて、予めハードコーディングしておく。又は、登録部６０５は、ＰＣＲの利用状況に応じて、しきい値を動的に変更してもよい。
【００２２】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００２３】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
【００２４】
以上、上述した各実施形態の処理によれば、耐タンパー処理部を持たない装置と、耐タンパー処理部を持つ別の装置とを連携させ、機器証明を実行可能にする技術を提供することができる。
【符号の説明】
【００２５】
１１  カメラ
１２  耐タンパー装置
【図１】
2017228918.tif 000003
【図２】
2017228918.tif 000004
【図３】
2017228918.tif 000005
【図４】
2017228918.tif 000006
【図５】
2017228918.tif 000007
【図６】
2017228918.tif 000008
【図７】
2017228918.tif 000009
【図８】
2017228918.tif 000010