(57)【要約】【課題】  装置起動の負荷を軽減しつつ、正規ソフトウェアを持つ情報処理装置に対してだけ、確実に証明書を発行することを目的とする。【解決手段】  証明書の発行を要求する情報処理装置であって、前記証明書の生成の指示を取得する取得手段と、前記証明書の生成の指示を取得した場合、前記情報処理装置を起動する際に、前記情報処理装置のソフトウェアのハッシュ値を計測する計測手段と、  前記ハッシュ値に基づき、サーバに対して前記証明書の発行をする要求手段と、を有することを特徴とする。【選択図】  図２
2019047430.tif 000002
【特許請求の範囲】
【請求項１】
証明書の発行を要求する情報処理装置であって、
前記証明書の生成の指示を取得する取得手段と、
前記証明書の生成の指示を取得した場合、前記情報処理装置を起動する際に、前記情報処理装置のソフトウェアのハッシュ値を計測する計測手段と、
前記ハッシュ値に基づき、サーバに対して前記証明書の発行をする要求手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記サーバによる前記証明書の発行が成功したか否かを判定する判定手段を更に有し、
前記計測手段は、前記判定手段により前記証明書の発行が成功したと判定された場合、次に前記情報処理装置を起動する際には、前記情報処理装置のソフトウェアのハッシュ値を計測しないことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置の利用者により、前記証明書の生成の指示が行われることを特徴とする請求項１もしくは２のいずれか１項に記載の情報処理装置。
【請求項４】
前記情報処理装置のソフトウェアが更新された場合、前記証明書の生成の指示が行われることを特徴とする請求項１もしくは２のいずれか１項に記載の情報処理装置。
【請求項５】
前記情報処理装置のソフトウェアのハッシュ値は、ＴＰＭに記録されることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記証明書は、公開鍵証明書であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記要求手段は、前記ハッシュ値を前記情報処理装置の識別子とし、前記サーバに対して前記証明書の発行をすることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
証明書の発行を要求する情報処理装置の情報処理方法であって、
取得手段が、前記証明書の生成の指示を取得する取得工程と、
計測手段が、前記証明書の生成の指示を取得した場合、前記情報処理装置を起動する際に、前記情報処理装置のソフトウェアのハッシュ値を計測する計測工程と、
要求手段が、前記ハッシュ値に基づき、サーバに対して前記証明書の発行をする要求工程と、を有することを特徴とする情報処理方法。
【請求項９】
コンピュータを、
証明書の発行を要求する情報処理装置であって、
前記証明書の生成の指示を取得する取得手段と、
前記証明書の生成の指示を取得した場合、前記情報処理装置を起動する際に、前記情報処理装置のソフトウェアのハッシュ値を計測する計測手段と、
前記ハッシュ値に基づき、サーバに対して前記証明書の発行をする要求手段と、を有することを特徴とする情報処理装置として機能させるためのコンピュータプログラム
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、証明書の発行を要求する情報処理装置、情報処理方法及び、コンピュータプログラムに関するものである。
【背景技術】
【０００２】
ネットワーククライアントとなる装置固有の公開鍵証明書を発行するために、ＩＰアドレスやＭＡＣアドレスなどの装置固有の情報に基づき、公開鍵証明書を発行するシステムが提案されている（特許文献１）。この技術によれば、公開鍵証明書を発行する際、装置が装置自身のＩＰアドレスやＭＡＣアドレスを含む証明書署名要求を認証局に送信する。認証局は、予め許可するＩＰアドレスやＭＡＣアドレスを保持しておく。そして、受信した証明書署名要求に含まれるＩＰアドレスやＭＡＣアドレスが、前記保持しているＩＰアドレスやＭＡＣアドレスに含まれる場合にだけ、公開鍵証明書を装置に対して発行する。即ち、予め許可するＩＰアドレスやＭＡＣアドレスを持つ装置にだけ公開鍵証明書を発行することができる。
【０００３】
一方、ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｕｄｕｌｅ）を用いて装置内部のソフトウェアが正しいことを確認するシステムが提案されている（特許文献２）。この技術によれば、装置の起動時に、装置内のソフトウェア情報をＴＰＭに収集し、それをサーバに送信する。サーバは、予め正しいソフトウェアの情報を保持しておく。そして、受信したソフトウェア情報と保持しているソフトウェア情報が一致する場合に、装置内のソフトウェアが正しいことを証明する。即ち、起動した装置内のソフトウェアが正しいことをサーバが証明することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２００５６５号公報
【特許文献２】特許４９５０１９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１によれば、偽装した装置が、ＭＡＣアドレスやＩＰアドレスを偽造することにより、公開鍵証明書を取得する可能性があった。また、特許文献２によれば、装置の偽造は困難であるものの、装置の起動時にソフトウェア情報を収集するために、起動時間が長くなる可能性があった。
【０００６】
以上説明した様に、従来技術によれば、正規ソフトウェアを持つ装置に対してだけ、確実に公開鍵証明書を発行することが困難であった。また、正規ソフトウェアを持つ装置であることを確認するために、装置の起動時間が長くなるという課題があった。
【０００７】
本発明は、上記課題を鑑みてなされたものであり、装置起動の負荷を軽減しつつ、正規ソフトウェアを持つ情報処理装置に対してだけ、確実に証明書を発行することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、証明書の発行を要求する情報処理装置であって、前記証明書の生成の指示を取得する取得手段と、前記証明書の生成の指示を取得した場合、前記情報処理装置を起動する際に、前記情報処理装置のソフトウェアのハッシュ値を計測する計測手段と、
前記ハッシュ値に基づき、サーバに対して前記証明書の発行をする要求手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、装置起動の負荷を軽減しつつ、正規ソフトウェアを持つ情報処理装置に対してだけ、確実に証明書を発行することが出来る。
【図面の簡単な説明】
【００１０】
【図１】実施形態１における情報処理装置を説明する図である。
【図２】実施形態１における証明書登録処理を説明する図である。
【図３】実施形態１における起動処理を説明する図である。
【図４】実施形態１における証明書署名要求生成及び検証処理を説明する図である。
【図５】実施形態１における証明書発行要求及び発行処理を説明する図である。
【図６】実施形態１におけるフォーマットを説明する図である。
【図７】実施形態２におけるソフトウェア更新処理を説明する図である。
【発明を実施するための形態】
【００１１】
（実施形態１）
＜情報処理装置のハードウェア構成＞
はじめに、図１を用いて、本実施の形態に適応可能な情報処理装置のハードウェア構成について説明する。図１は本実施形態に係る情報処理装置のハードウェアの基本構成を示す図である。同図において、情報処理装置１１は、例えば一般に普及しているパーソナルコンピュータ・情報携帯端末、或いは画像データのコピー、スキャン、プリント等を実行可能な画像処理装置、或いはデジタル写真を撮影可能な撮像装置などである。
【００１２】
図１に示すように、本実施形態における情報処理装置１１は、ＲＯＭ１２、ＨＤＤ１４、ＲＡＭ１１１、ＣＰＵ１２、ＴＰＭ１１０から構成される。
【００１３】
ＲＯＭ１２は、物理的、或いは論理的な書き換えが不可能な不揮発性メモリであり、ＢＩＯＳ１３、不図示の各種プログラム、及びデータを記憶可能な補助記憶部である。ＢＩＯＳ１３は情報処理装置１１全体を制御するプログラムである。また、ＢＩＯＳ１３は、情報処理装置１１に電源が投入された際、情報処理装置内部で最初に起動されるコンピュータプログラムである。
【００１４】
ＨＤＤ１４は、ブートローダ１５、ＯＳ１６、アプリ１７、アプリ１８、アプリ１９、及び種々のデータを記憶可能な補助記憶部である。ここで、ブートローダ１５は、次に起動すべきＯＳを特定・起動するといった制御をする。ＯＳ１６は、アプリ１７、アプリ１８、及び１９のロード、ＲＡＭ１１１のメモリ管理、及び不図示のキーボードや画面出力などの入出力機能を制御するプログラムである。アプリ１７、アプリ１８、及びアプリ１９は、アドレス帳、メール、ワードプロセッサ、表計算、データベース管理、ネットワークブラウジングなどである。他にも、映像・音声再生、印刷、通信など、情報処理装置１１の利用者が実行したい作業を機能として提供するプログラム（アプリケーションソフトウェア）である。本実施形態においては、情報処理装置１１には３つのアプリが搭載されているものとして説明するが、本実施形態はこれに限定されることなく、任意数のアプリを搭載してもよい。
【００１５】
ＲＡＭ１１１は揮発性メモリであり、ＣＰＵ１２にて処理を行うために一時的にプログラムや各種データ（動作状態）を一時的に格納しておく主記憶部である。
【００１６】
ＣＰＵ１２は、情報処理装置１１内の各部の動作を制御、或いはＲＡＭ１１１にロードされたプログラムを実行することのできる電子回路である。
【００１７】
ＴＰＭ１１０（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）は、耐タンパー性を有するセキュアチップである。耐タンパー性とは、外部からの解析を困難にすると共に、外部から解析しようとした場合に内部に記憶されているプログラム、或いはデータを破壊することにより自己防衛する特性である。また、ＴＰＭ１１０は、制御部１１４、ＮｖＲＡＭ１１３、及びＰＣＲ１１５から構成されている。
【００１８】
制御部１１４は、後述する様なＰＣＲ１１５へのハッシュ値登録、デジタル署名生成、暗号復号などを実行する。ＮｖＲＡＭ１１３は不揮発性メモリであり、後述するハッシュ値の他、デジタル署名の生成に必要な秘密鍵、暗号復号に必要な暗号鍵などを記憶する。１１５は揮発性メモリ（レジスタ）であり、情報処理装置１１内で実行されたプログラムのハッシュ値に基づいた値を記憶する。尚、以降の説明においては、プログラムとは、前述したＢＩＯＳ１３、ブートローダ１５、ＯＳ１６、アプリ１７、アプリ１８、アプリ１９の何れかを示すものとする。
【００１９】
以上、本実施形態における情報処理装置のハードウェア構成について説明した。
【００２０】
＜証明書登録処理＞
次に、本実施形態に適応可能な証明書登録処理について、図２を用いて説明する。
【００２１】
図２は、本実施形態における証明書登録処理のフローを説明する図である。以下のフローは、前述した図１における情報処理装置１１内で実行され、各ステップは該当するプログラム及びそれを実行するＣＰＵ１２によって実現する。
【００２２】
ステップ２１は、証明書生成指示をする。本発明における証明書とは、前述した情報処理装置１１の認証性を確認するために使われるものであり、本実施形態においては公開鍵証明書であるものとして説明する。ステップ２１では、情報処理装置１１の利用者が、情報処理装置１１上のディスプレイ（不図示）に表示されたボタン等を押下することにより処理が開始する。或いは、後述する様にソフトウェア更新処理（図７）の過程で、プログラムが証明書生成を指示するようにしても良い。
【００２３】
２２は、起動モードを計測起動モードに切り替える。本実施形態では、起動モードは通常起動モードと計測起動モードが選択可能である。どちらの起動モードが選択されているかは、ＨＤＤ１４、ＲＡＭ１１１、或いはＲＯＭ１２内に保存されている起動モードフラグで表すものとする。本実施形態では、例として通常起動モードの場合、起動モードフラグは「０」とし、計測起動モードの場合、起動モードフラグは「１」であるものとして説明する。即ち、２２は起動モードフラグを「１」に設定する。
【００２４】
２３は、情報処理装置１１を再起動する。再起動後、情報処理装置１１は、２４において、起動モードフラグが計測起動モードを示すか、或いは通常起動モードを示すかが選択され。計測起動モードを示す場合には処理をステップ２５に進め、さもなければ処理をステップ２１０に進める。
【００２５】
ここで、本実施形態における計測起動処理、及び通常起動処理について説明する。
【００２６】
図３（Ａ）は本実施形態における計測起動処理を説明するフローチャートである。
【００２７】
３１はＢＩＯＳ１３を実行する。そして、３２において、ＢＩＯＳ１３を計測する。本実施形態において計測処理（ハッシュ値計測処理）とは、プログラムコードのハッシュ値を算出し、算出したハッシュ値をＴＰＭ１１０内のＰＣＲ１１５に記録する処理である。更に、計測処理では、算出したハッシュ値をＨＤＤ１４やＲＡＭ１１１内の計測ログデータに記録する。
【００２８】
３２において、ＢＩＯＳ１３は、ＲＯＭ１２に記録されているＢＩＯＳ１３自身のプログラムコードのハッシュ値を算出し、算出したハッシュ値をＴＰＭ１１０内のＰＣＲ１１５に記録する。同時に、ハッシュ値を計測ログデータにも記録する。本実施形態においては、ハッシュ値を算出するためのハッシュ関数は特に限定することなく、ＳＨＡ１、ＳＨＡ２５６、ＳＨＡ５１２等の公知の種々のハッシュ関数を適応可能である。或いは、計測対象となるプログラムを一意に識別可能な特徴量を算出可能な関数であれば、任意の関数を適応可能である。
【００２９】
３２において、ＢＩＯＳ１３のハッシュ値を計測した後、３３において、ＢＩＯＳ１３は引き続きＨＤＤ１４内のブートローダ１５を計測する。３３において、ＢＩＯＳ１３は、ＨＤＤ１４に記録されているブートローダ１５のプログラムコードのハッシュ値を算出し、算出したハッシュ値をＴＰＭ１１０内のＰＣＲ１１５に記録する。同時に、ハッシュ値を計測ログデータにも記録する。ＢＩＯＳ１３は、３３においてブートローダ１５を計測した後、３４においてブートローダ１５を実行する。
【００３０】
３５において、ブートローダ１５は、ＨＤＤ１４内のＯＳ１６を計測する。３５において、ブートローダ１５は、ＨＤＤ１４に記録されているＯＳ１６のプログラムコードのハッシュ値を算出し、算出したハッシュ値をＴＰＭ１１０内のＰＣＲ１１５に記録する。同時に、ハッシュ値を計測ログデータにも記録する。ブートローダ１５は、３５においてＯＳ１６を計測した後、３６においてＯＳ１６を実行する。
【００３１】
３７において、ＯＳ１６は、ＨＤＤ１４内のアプリ１７、アプリ１８、及びアプリ１９を計測する。３７において、ＯＳ１６は、ＨＤＤ１４に記録されているアプリ１７、アプリ１８、及びアプリ１９のプログラムコードのハッシュ値を夫々算出し、算出したハッシュ値をＴＰＭ１１０内のＰＣＲ１１５に記録する。同時に、ハッシュ値を計測ログデータにも記録する。ＯＳ１６は、３７においてアプリ１７、アプリ１８、及びアプリ１９を計測した後、３８においてアプリ１７、アプリ１８、及びアプリ１９を夫々実行する。
【００３２】
以上説明した計測起動処理によれば、計測起動処理の完了後、情報処理装置１１内で動作している全てのプログラムのハッシュ値がＴＰＭ１１０、及び計測ログデータに記録されていることに留意されたい。計測起動処理においてＴＰＭ１１０に記録されたハッシュ値は、後述の図５で説明する構成証明情報生成処理５３で利用され、サーバに送信されることにより、当該ハッシュ値が正規プログラムに基づく正しい値であることが確認される。
【００３３】
以上、本実施形態における計測起動処理について説明した。次に、本実施形態における通常起動処理について説明する。
【００３４】
図３（Ｂ）は本実施形態における通常起動処理を説明するフローチャートである。本実施形態において、通常起動処理とは、前述した図３（Ａ）のフローチャートにおける計測起動処理のうち、３１、３４、３６、及び３８だけが実行される。３１、３４、３６、及び３８における処理に関しては、図３（Ａ）と同様であるため、詳細な説明は省略する。図３（Ｂ）に示す様に、通常起動処理では、各プログラムの計測処理は実行せず、プログラムを順次実行する。
【００３５】
図２に戻って、説明を続ける。２５における計測起動処理の後、２６において証明書署名要求生成処理が実行される。ここで、本実施形態における証明書署名要求生成処理について、図４（Ａ）を用いて説明する。
【００３６】
図４（Ａ）は本実施形態における証明書署名要求生成処理のフローチャートを説明する図である。
【００３７】
４１は、情報処理装置１１に関連付けられた鍵ペアを生成する。本実施形態における鍵ペアは、公開鍵暗号アルゴリズムにおける秘密鍵、及び公開鍵から構成するものとする。また、本実施形態においては、情報処理装置１１の個体毎に異なる値を鍵ペアとして生成するようにする。これにより、当該情報処理装置１１を個体毎に認証することができる。
【００３８】
尚、本実施形態では情報処理装置１１の個体毎に異なる値を鍵ペアとして生成するものとして説明するが、本発明はこれに限定されることなく、情報処理装置のモデル毎や当該装置のベンダ毎に異なる鍵など、種々の粒度で鍵ペアを生成することが可能である。
【００３９】
４２は、前段の４１で生成した鍵ペアに含まれる秘密鍵を使って、鍵ペアに含まれる公開鍵からデジタル署名を生成する。本実施形態においては、デジタル署名を算出するための署名アルゴリズムは特に限定することなく、ＲＳＡ等の公知の種々の署名アルゴリズムを適応可能である。ここで生成したデジタル署名を使うことにより、確かに当該公開鍵の正規所有者が、公開鍵を送信したことを検証することが可能となる。
【００４０】
４３は、証明書の識別子を設定する。本実施形態では、証明書の識別子は、前述した計測ログデータに記録されているＢＩＯＳのハッシュ値、ブートローダのハッシュ値、ＯＳのハッシュ値、及びアプリのハッシュ値に基づいて設定するものとする。本実施形態では、各ハッシュ値を連結した値を識別子として用いるものとする。或いは、計測ログデータに記録されている各ハッシュ値を連結し、連結した値からハッシュ値を生成し、生成したハッシュ値を識別子として用いてもよい。この時に、各ハッシュ値を文字コード化しても良い。
【００４１】
以上説明した鍵ペア、デジタル署名、証明書の識別子を用いて、証明書署名要求を生成する。図６（Ｂ）は本実施形態における証明書署名要求のフォーマットを説明する図である。図６（Ｂ）に示す様に、本実施形態における証明書署名要求６７は、クライアント公開鍵６８、クライアント公開鍵の署名６９、及びクライアント識別子６１０から構成される。クライアント公開鍵６８は、４１が生成した鍵ペアに含まれる公開鍵を用いる。また、クライアント公開鍵の署名６９は、４２が生成したデジタル署名を用いる。更に、クライアント識別子６１０は、４３が生成した識別子を用いる。
【００４２】
以上、本実施形態における証明書署名要求生成処理について説明した。
【００４３】
図２に戻って説明を続ける。２６における証明書署名要求生成処理の後、２７において証明書発行要求処理が実行される。本実施形態における証明書発行要求処理は、サーバ２１１との通信により実行される。ここで本実施形態における証明書発行要求処理について、図５を用いて説明する。図５は本実施形態における証明書発行要求生成処理のフローチャートを説明する図である。図５において、５１、５２、５３、５４、及び５５は、情報処理装置１１内で実行される処理であり、前述した２７の詳細を示すものである。一方、５６、５７、５８、５９、５１０、５１１、５１２、５１４、５１５、５１６、及び５１７は、サーバ２１１内で実行される処理である。
【００４４】
まず、５１において、サーバ２１１に対して証明書発行開始要求を送信し、サーバ２１１は、５６において証明書発行開始要求を受信する。サーバ２１１は、５６において証明書発行開始要求を受信した後、５７においてナンスを生成し、５８は生成したナンスを情報処理装置１１に送信する。本実施形態においては、ナンスは証明書発行開始要求毎に異なる疑似乱数に基づいて生成するものとする。
【００４５】
情報処理装置１１は、５２においてナンスを受信した後、５３において、構成証明情報を生成する。ここで、本実施形態における構成証明情報について、図６（Ａ）を用いて説明する。
【００４６】
図６（Ａ）は本実施形態における構成証明情報のフォーマットを説明する図である。図６（Ａ）に示す様に、本実施形態における構成証明情報６１は、登録したハッシュ値の署名６２、公開鍵６３、ＢＩＯＳのハッシュ値６４、ブートローダのハッシュ値６５、ＯＳのハッシュ値６６、アプリのハッシュ値６１４から構成される。ここで、ＢＩＯＳのハッシュ値６４、ブートローダのハッシュ値６５、ＯＳのハッシュ値６６、アプリのハッシュ値６１４については、前述した計測ログデータに記録されているハッシュ値を用いる。一方、登録したハッシュ値の署名６２については、ＴＰＭ１１０内の制御部１１４がＰＣＲ１１５に記録されているハッシュ値からデジタル署名を生成し、生成したデジタル署名を用いる。デジタル署名を生成するための秘密鍵については、予めＴＰＭ１１０内のＮｖＲＡＭ０１１３に記録しておいた鍵を用いる。また、公開鍵６３については、登録したハッシュ値の署名６２を生成するために用いた秘密鍵に対応する公開鍵を、予めＴＰＭ１１０内のＮｖＲＡＭ１１３に記録しておき、記録してある鍵を用いる。尚、本実施形態においては、デジタル署名を算出するための署名アルゴリズムは特に限定することなく、ＲＳＡ等の公知の種々の署名アルゴリズムを適応可能である。
【００４７】
５３において、構成証明情報を生成した後、５４は、証明書発行要求をサーバ２１１に送信する。
【００４８】
ここで本実施形態における証明書発行要求について、図６（Ｃ）を用いて説明する。図６（Ｃ）は本実施形態における証明書発行要求のフォーマットを説明する図である。図６（Ｃ）に示す様に、本実施形態における証明書発行要求６１１は、構成証明情報６１２、及び証明書署名要求６１３から構成される。構成証明情報６１２は、前述した５３が生成した構成証明情報６１を用いる。一方、証明書署名要求６１３は、前述した２６が生成した証明書署名要求６７を用いる。
【００４９】
サーバ２１１は、５９において証明書発行要求を受信した後、５１０において、証明書発行要求に含まれる構成証明情報を検証する。構成証明情報を検証するために、まず構成証明情報６１に含まれる登録したハッシュ値の署名６２を、公開鍵６３を用いて検証する。更に、構成証明情報６１に含まれるＢＩＯＳのハッシュ値６４、ブートローダのハッシュ値６５、ＯＳのハッシュ値６６、及びアプリのハッシュ値６１４が正しい値であることを検証する。このために、ＢＩＯＳ１３、ブートローダ１５、ＯＳ１６、アプリ１７、アプリ１８、及びアプリ１９の正しいハッシュ値を、予めソフトウェアＤＢ５１３内に記録しておく。そして、ソフトウェアＤＢ５１３内のハッシュ値と、構成証明情報６１に含まれるハッシュ値を比較するようにする。
【００５０】
そして、５１１は前段の５１０において構成証明情報の検証が成功したか否かを判定する。５１０において、登録したハッシュ値の署名６２の検証が成功し、且つ、構成証明情報６１に含まれるハッシュ値が、ソフトウェアＤＢ５１３内のハッシュ値と一致する場合には、構成証明情報を検証成功と判定する。さもなければ、構成証明情報の検証失敗と判定する。
【００５１】
５１１において検証成功と判定された場合には、処理を５１６に進める。５１６では、証明書発行要求に含まれる証明書発行要求を検証する。ここで、本実施形態における証明書発行要求検証処理について、図４（Ｂ）を用いて説明する。図４（Ｂ）は本実施形態における証明書署名要求検証処理のフローチャートを説明する図である。
【００５２】
４４は、証明書署名要求６７に含まれるクライアント公開鍵の署名６９を、クライアント公開鍵６８を用いて検証する。そして、４５において、証明書署名要求６７に含まれるクライアント識別子６１０が正しいか否かを検証する。
【００５３】
本実施形態において、クライアント識別子６１０は、前述したように、ＢＩＯＳのハッシュ値、ブートローダのハッシュ値、ＯＳのハッシュ値、及びアプリのハッシュ値を連結した値を識別子として用いている。よって、クライアント識別子の確認のために、クライアント識別子に含まれている各ハッシュ値と、前述した構成証明情報に含まれる各ハッシュ値を比較する。
【００５４】
或いは、クライアント識別子６１０が、各ハッシュ値を連結し、連結した値からハッシュ値を生成し、生成したハッシュ値を識別子としている場合、当該ハッシュ値と、構成証明情報に含まれる各ハッシュ値も同様に連結する。そして、連結した値から生成したハッシュ値と前述した構成証明情報に含まれるハッシュ値とを比較するようにすればよい。
【００５５】
また、ハッシュ値が文字コード化されている場合は、各ハッシュ値は文字コード化して処理する様にすればよい。
【００５６】
以上、本実施形態における証明書署名要求検証処理について説明した。
【００５７】
図５に戻って説明を続ける。証明書署名要求検証処理５１６の後、５１７は証明書署名要求が検証成功か否かを判定する。前述した４４において署名検証に成功し、且つ、４５において証明書の識別子が構成証明情報に含まれるハッシュ値と一致する場合に、証明書署名要求を検証成功と判定する。さもなければ、証明書署名要求の検証失敗と判定する。
【００５８】
５１７において検証成功と判定された場合には、処理を５１２に進める。５１２では、証明書署名要求６７の内容に基づいて、公開鍵証明書が生成される。即ち、クライアント公開鍵６８からサーバ２１１の秘密鍵を用いて署名を生成し、生成した署名、クライアント公開鍵６８、及びクライアント識別子６１０を含む公開鍵証明書が生成される。
【００５９】
一方、５１１、或いは５１７において検証失敗と判定された場合には、処理を５１４に進める。５１４では、公開鍵証明書が生成されなかったことを伝えるエラーメッセージを生成する。また、その理由として、５１１、或いは５１７において検証失敗した理由をエラーメッセージに含めてもよい。
【００６０】
５１２、及び５１４の後、５１５では、証明書発行応答を送信する。５１２で公開鍵証明書を生成した場合には、証明書発行応答として公開鍵証明書を送信する。５１４でエラーメッセージを生成した場合には、証明書発行応答としてエラーメッセージを送信する。
【００６１】
５１５が送信した証明書発行応答は、情報処理装置１１が５５において受信し、一連の証明書発行要求処理を終了する。以上、本実施形態における証明書発行要求処理について説明した。
【００６２】
図２に戻って、説明を続ける。２７における証明書発行要求処理の後、２８は証明書発行が成功したか否かを判定する。前述したようにサーバ２１１から公開鍵証明書を受信した場合には成功と判断し、エラーメッセージを受信した場合には失敗と判断する。証明書発行が成功した場合には、処理を２９に進め、さもなければ処理を２３に進める。
【００６３】
２９では、起動モードを通常起動モードに切り替える。ここでは、起動モードフラグを通常起動モードを示す「０」に設定する。
【００６４】
以上、本実施形態における証明書登録処理について説明した。
【００６５】
本実施形態によれば、計測起動処理により計測されたハッシュ値が正しい値である場合だけ、公開鍵証明書を生成することが可能となる。即ち、正しいソフトウェアを持つ装置だけが公開鍵証明書を取得することが可能となる。また、公開鍵証明書を発行する場合だけ計測起動処理を実行し、通常は通常起動処理を実行するようにしている。これにより、通常起動時の処理時間を軽減することが可能となる。
【００６６】
（実施形態２）
上述の実施形態では、図２の２１において明示的に証明書の生成が指示された場合に証明書を生成する場合について説明した。しかしながら、本発明はこれに限定されることなく、情報処理装置１１内のソフトウェアが更新された際に、自動的に証明書の生成を実行するようにしてもよい。本実施形態では、自動的に証明書の生成を実行する場合について説明する。
【００６７】
図７は、本実施形態におけるソフトウェア更新処理のフローを説明する図である。以下のフローは、前述した図１における情報処理装置１１内で実行され、各ステップは該当するプログラム及びそれを実行するＣＰＵ１２によって実現する。
【００６８】
図７において、７１、７２、７３、７４、及び７５は情報処理装置１１内で実行される処理である。一方、７６、７７はサーバ２１１内で実行される処理である。
【００６９】
まず、サーバ２１１は、７６において更新ソフトウェアを送信し、情報処理装置１１は、７１において、更新ソフトウェアを受信する。本実施形態では、更新ソフトウェアには、認証性、及び完全性を検証するためのデジタル署名が付与するものとする。７２では、当該デジタル署名の検証をする。そして、７３では７２でデジタル署名の検証に成功したか否かを判定する。検証成功の場合には、処理を７４に進め、さもなければソフトウェア更新処理を終了する。
【００７０】
７４では、更新ソフトウェアを用いて更新処理が実行される。そして、ソフトウェアが更新された後、７５では、前述した一連の証明書登録処理（図２）が実行され、ソフトウェア更新処理を終了する。
【００７１】
一方、サーバ２１１では、７７において、ソフトウェアＤＢ５１３内の該当するソフトウェアのハッシュ値を、７６で送信した更新ソフトウェアのハッシュ値に更新する。図７におけるソフトウェアＤＢ５１３と図５におけるソフトウェアＤＢ５１３は同一のものである。即ち、ソフトウェア更新後も、ソフトウェアＤＢ５１３内には、情報処理装置１１内のソフトウェアのハッシュ値が記録されていることになる。
【００７２】
以上、本実施形態におけるソフトウェア更新処理について説明した。前述したように、ソフトウェア更新処理の内部では、図２で説明した一連の証明書登録処理が実行される。その過程で５４は証明書発行要求を送信するが、当該証明書発行要求は、更新されたソフトウェアに基づいて生成されることに留意されたい。そして、５１０は証明書発行要求に含まれる構成証明情報の検証をするが、構成証明情報を検証する際には、前述の７７によって更新された状態のソフトウェアＤＢ５１３を用いることになる。
【００７３】
即ち、本実施形態によれば、情報処理装置１１内のソフトウェアが更新された際に、当該更新されたソフトウェアに基づいて、新たに公開鍵証明書を発行することができる。
【００７４】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７５】
２１  証明書生成指示
２２  起動モードを計測起動に切り替え
２３  再起動
２４  計測起動モード判定
２５  計測起動
２６  証明書署名要求生成
２７  証明書発行要求
２８  証明書発行成功判定
２９  起動モードを通常起動に切り替え
２１０  通常起動
２１１  サーバ
【図１】
2019047430.tif 000003
【図２】
2019047430.tif 000004
【図３】
2019047430.tif 000005
【図４】
2019047430.tif 000006
【図５】
2019047430.tif 000007
【図６】
2019047430.tif 000008
【図７】
2019047430.tif 000009