(57)【要約】【課題】自装置内のソフトウェアの更新と、情報の保護とを容易に両立することができる情報処理装置、ソフトウェア更新方法及び画像処理装置を提供することを目的とする。【解決手段】自装置内のソフトウェア２１の更新を行う情報処理装置であって、ソフトウェア２０〜２２から一意に計算される値を格納し、値による情報の暗号化及び値によって暗号化されている情報の復号を行う暗号化復号手段５と、ソフトウェア更新ファイル１１０の認証を行う認証手段と、認証の成功したソフトウェア更新ファイル１１０を用いてソフトウェア２１の更新を行うソフトウェア更新手段と、値によって暗号化されている情報７０を、ソフトウェア２１の更新に基づいて変化した値によって暗号化し直すように制御する暗号鍵管理手段とを有することで上記課題を解決する。【選択図】図１１
2008226159.tif 000002
【特許請求の範囲】
【請求項１】
自装置内のソフトウェアの更新を行う情報処理装置であって、
前記ソフトウェアから一意に計算される値を格納し、前記値による情報の暗号化及び前記値によって暗号化されている情報の復号を行う暗号化復号手段と、
ソフトウェア更新ファイルの認証を行う認証手段と、
認証の成功した前記ソフトウェア更新ファイルを用いて前記ソフトウェアの更新を行うソフトウェア更新手段と、
前記値によって暗号化されている情報を、前記ソフトウェアの更新に基づいて変化した値によって暗号化し直すように制御する暗号鍵管理手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記認証手段は、更新ソフトウェアと、前記更新ソフトウェアから一意に計算される値と、前記更新ソフトウェア及び前記更新ソフトウェアの電子署名とを含んで成る前記ソフトウェア更新ファイルの前記電子署名を用いて、前記ソフトウェア更新ファイルの認証を行うことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記暗号鍵管理手段は、前記値によって暗号化されている情報を、前記認証の成功した前記ソフトウェア更新ファイルに含まれる前記更新ソフトウェアから一意に計算される値によって暗号化し直すように制御することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記認証手段は、更新ソフトウェアと、前記更新ソフトウェアの電子署名とを含んで成る前記ソフトウェア更新ファイルの前記電子署名を用いて、前記ソフトウェア更新ファイルの認証を行うことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記認証手段は、前記認証の成功した前記ソフトウェア更新ファイルに含まれる前記更新ソフトウェアから一意に値を計算し、
前記暗号鍵管理手段は、前記値によって暗号化されている情報を、前記認証手段が計算した前記値によって暗号化し直すように制御することを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記認証手段は、前記ソフトウェア更新ファイルの認証を、改竄の防止された公開鍵によって行うことを特徴とする請求項２又は４記載の情報処理装置。
【請求項７】
前記値によって暗号化されている情報は、自装置内のデバイスに格納する情報の暗号化及び前記デバイスに格納されている情報の復号に用いるデバイス暗号鍵と、前記デバイス暗号鍵の暗号化に用いた値とを含むことを特徴とする請求項１記載の情報処理装置。
【請求項８】
前記暗号化復号手段は、ＴＰＭ（Trusted Platform Module）によって実現されることを特徴とする請求項１乃至７何れか一項記載の情報処理装置。
【請求項９】
自装置内のソフトウェアの更新を行う情報処理装置のソフトウェア更新方法であって、
前記ソフトウェアから一意に計算される値を格納し、前記値による情報の暗号化を行う暗号化復号ステップと、
ソフトウェア更新ファイルの認証を行う認証ステップと、
認証の成功した前記ソフトウェア更新ファイルを用いて前記ソフトウェアの更新を行うソフトウェア更新ステップと、
前記値によって暗号化されている情報を、前記ソフトウェアの更新に基づいて変化した値によって暗号化し直すように制御する暗号鍵管理ステップと
を有することを特徴とするソフトウェア更新方法。
【請求項１０】
前記認証ステップは、更新ソフトウェアと、前記更新ソフトウェアから一意に計算される値と、前記更新ソフトウェア及び前記更新ソフトウェアの電子署名とを含んで成る前記ソフトウェア更新ファイルの前記電子署名を用いて、前記ソフトウェア更新ファイルの認証を行うことを特徴とする請求項９記載のソフトウェア更新方法。
【請求項１１】
前記暗号鍵管理ステップは、前記値によって暗号化されている情報を、前記認証の成功した前記ソフトウェア更新ファイルに含まれる前記更新ソフトウェアから一意に計算される値によって暗号化し直すように制御することを特徴とする請求項１０記載のソフトウェア更新方法。
【請求項１２】
前記認証ステップは、更新ソフトウェアと、前記更新ソフトウェアの電子署名とを含んで成る前記ソフトウェア更新ファイルの前記電子署名を用いて、前記ソフトウェア更新ファイルの認証を行うことを特徴とする請求項９記載のソフトウェア更新方法。
【請求項１３】
前記認証ステップは、前記認証の成功した前記ソフトウェア更新ファイルに含まれる前記更新ソフトウェアから一意に値を計算し、
前記暗号鍵管理ステップは、前記値によって暗号化されている情報を、前記認証ステップが計算した前記値によって暗号化し直すように制御することを特徴とする請求項１２記載のソフトウェア更新方法。
【請求項１４】
前記認証ステップは、前記ソフトウェア更新ファイルの認証を、改竄の防止された公開鍵によって行うことを特徴とする請求項１０又は１２記載のソフトウェア更新方法。
【請求項１５】
前記値によって暗号化されている情報は、自装置内のデバイスに格納する情報の暗号化及び前記デバイスに格納されている情報の復号に用いるデバイス暗号鍵と、前記デバイス暗号鍵の暗号化に用いた値とを含むことを特徴とする請求項９記載のソフトウェア更新方法。
【請求項１６】
前記暗号化復号ステップは、ＴＰＭ（Trusted Platform Module）によって実現されることを特徴とする請求項９乃至１５何れか一項記載のソフトウェア更新方法。
【請求項１７】
自装置内のソフトウェアの更新を行うプロッタ部とスキャナ部とを有する画像処理装置であって、
前記ソフトウェアから一意に計算される値を格納し、前記値による情報の暗号化及び前記値によって暗号化されている情報の復号を行う暗号化復号手段と、
ソフトウェア更新ファイルの認証を行う認証手段と、
認証の成功した前記ソフトウェア更新ファイルを用いて前記ソフトウェアの更新を行うソフトウェア更新手段と、
前記値によって暗号化されている情報を、前記ソフトウェアの更新に基づいて変化した値によって暗号化し直すように制御する暗号鍵管理手段と
を有することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、ソフトウェア更新方法及び画像処理装置に係り、特に自装置内のソフトウェアの更新を行う情報処理装置及び画像処理装置、その情報処理装置又は画像処理装置におけるソフトウェア更新方法に関する。
【背景技術】
【０００２】
セキュリティを重視するＰＣ等の情報処理装置や複合機（ＭＦＰ）等の画像処理装置においては、自装置内の秘密情報を保護する必要がある。近年、ＰＣ等の情報処理装置や複合機等の画像処理装置ではセキュリティ意識の高まりに伴い、盗聴等を防ぐため、装置内部に保存している秘密情報の暗号化が可能となった。
【０００３】
例えば特許文献１にはＴＣＰＡ（Trusted Computing Platform Alliance）の仕様に基づいたＰＣにおいて、ＴＰＭ（Trusted Platform Module ）を用いた情報の暗号化について記載されている。ＴＰＭを用いることにより、情報処理装置や画像処理装置は秘密情報を暗号化できる。ＴＰＭは例えばマザーボードに直付けされるチップで実現される。秘密情報は、通常、パスワード等の特定の利用者と紐づけられた保護情報により保護される。
【０００４】
また、特許文献２にはバグやセキュリティホール、又は機能の追加、変更等に対処するため、情報処理装置や画像処理装置において、プログラムの更新を行うことが記載されている。
【特許文献１】特開２００４−２８２３９１号公報
【特許文献２】特開２００５−１９６７４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、設定情報が管理者の権限によりコントロールされており、管理者不在の状況でも再起動などの初期化と再スタートを実施できることを要求される情報処理装置や画像処理装置では、特定の利用者と紐づけられた保護情報により秘密情報を保持することが困難である。管理者不在の状況での起動時には、管理者が保護情報を情報処理装置や画像処理装置へ入力できない為である。
【０００６】
設定情報が管理者の権限によりコントロールされており、管理者不在の状況でも再起動などの初期化と再スタートを実施できることを要求される情報処理装置や画像処理装置で自装置内の秘密情報を保護する場合には、起動時に装置内の構成（システム）の真正性を確認する必要がある。
【０００７】
この為、ＴＰＭ内にあるＰＣＲ（Platform Configuration Register）へファームウェアから計算したハッシュ値を登録し、ＰＣＲに登録されたハッシュ値を秘密情報の復号条件とすることで、情報処理装置や画像処理装置は自装置内の秘密情報を、不正なシステムによるデータ窃取から保護している。
【０００８】
しかしながら、ファームウェアの更新（ファームウェアアップデート）を行う情報処理装置や画像処理装置では、ファームウェアから計算したハッシュ値の真正性の確保が困難であった。
【０００９】
また、ファームウェアの更新を行う情報処理装置や画像処理装置では、再起動後にＰＣＲに登録されるハッシュ値の再計算を行うケースも想定できる。しかしながら、この形式では再計算を指示するインターフェースが、脆弱性の原因となる可能性が高かった。
【００１０】
本発明は、上記の点に鑑みなされたもので、自装置内のソフトウェアの更新と情報の保護とを容易に両立可能な情報処理装置、ソフトウェア更新方法及び画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決する為、本発明は、自装置内のソフトウェアの更新を行う情報処理装置であって、前記ソフトウェアから一意に計算される値を格納し、前記値による情報の暗号化及び前記値によって暗号化されている情報の復号を行う暗号化復号手段と、ソフトウェア更新ファイルの認証を行う認証手段と、認証の成功した前記ソフトウェア更新ファイルを用いて前記ソフトウェアの更新を行うソフトウェア更新手段と、前記値によって暗号化されている情報を、前記ソフトウェアの更新に基づいて変化した値によって暗号化し直すように制御する暗号鍵管理手段とを有することを特徴とする。
【００１２】
上記課題を解決する為、本発明は、自装置内のソフトウェアの更新を行うプロッタ部とスキャナ部とを有する画像処理装置であって、前記ソフトウェアから一意に計算される値を格納し、前記値による情報の暗号化及び前記値によって暗号化されている情報の復号を行う暗号化復号手段と、ソフトウェア更新ファイルの認証を行う認証手段と、認証の成功した前記ソフトウェア更新ファイルを用いて前記ソフトウェアの更新を行うソフトウェア更新手段と、前記値によって暗号化されている情報を、前記ソフトウェアの更新に基づいて変化した値によって暗号化し直すように制御する暗号鍵管理手段とを有することを特徴とする。
【００１３】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１４】
本発明によれば、自装置内のソフトウェアの更新と情報の保護とを容易に両立可能な情報処理装置、ソフトウェア更新方法及び画像処理装置を提供可能である。
【発明を実施するための最良の形態】
【００１５】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例ではＰＣ等の情報処理装置を例に説明しているが、複合機等の画像処理装置であってもよい。
【００１６】
図１は本発明による情報処理装置の一実施例のハードウェア構成図である。図１の情報処理装置は、ＣＰＵ１，ＡＳＩＣ２，揮発性メモリ３，エンジンコントローラ４，ＴＰＭ５，不揮発メモリ６，ネットワークデバイス７，ｓｄカードＩ／Ｆ８を有するように構成される。
【００１７】
ＣＰＵ１は、メインバス９を介してＡＳＩＣ２，エンジンコントローラ４に接続されている。ＡＳＩＣ２は揮発性メモリ３と接続されると共に、ローカルバス１０を介してＴＰＭ５，不揮発メモリ６，ネットワークデバイス７，ｓｄカードＩ／Ｆ８に接続される。
【００１８】
図１の情報処理装置は、ローカルバス１０上にＴＰＭ５が搭載されており、秘密情報の暗号化や復号、プラットフォームの真正性を確認するプラットフォーム検証の機能を提供できる構成となっている。
【００１９】
図２は本発明による情報処理装置の一実施例のソフトウェア構成図である。図２の情報処理装置は、ＢＩＯＳ２０，基本パッケージ２１，アプリケーションパッケージ２２，アプリケーションパッケージ２３を有するように構成される。
【００２０】
また、基本パッケージ２１は、ネットワーク更新モジュール３１，ｆｌａｓｈメディア更新モジュール３２，基本アプリケーション（コピー）３３，システム管理モジュール３４，システム起動モジュール３５，システム更新モジュール３６，ファームウェア認証モジュール３７，暗号鍵管理モジュール３８，ＴＰＭ管理モジュール（ＴＳＳ）３９，オペレーティングシステム４０を有する構成である。なお、オペレーティングシステム４０はファイルシステム４１，不揮発メモリドライバ４２，ＴＰＭドライバ４３を有する構成である。
【００２１】
アプリケーションパッケージ２２は、基本アプリケーション（プリンタ）４４，基本アプリケーション（ネットワーク）４５を有する構成である。アプリケーションパッケージ２３は基本アプリケーション（スキャナ）４６を有する構成である。
【００２２】
ＢＩＯＳ２０は、システムの起動の初期を担うモジュールである。ＢＩＯＳ２０はＴＰＭ５へのアクセス手段を有している。オペレーティングシステム４０は他のソフトウェアモジュールからハードウェア機能を利用する機能を提供する。オペレーティングシステム４０のファイルシステム４１はデータを管理する。不揮発メモリドライバ４２は不揮発メモリ６へアクセスを行うためのソフトウェアである。ＴＰＭドライバ４３はＴＰＭ５へアクセスを行うためのソフトウェアである。
【００２３】
情報処理装置の起動時、ＢＩＯＳ２０はオペレーティングシステム４０を起動する。オペレーティングシステム４０の起動後は、システム内の他のソフトウェアを起動する為のシステム起動モジュール３５が起動される。システム起動モジュール３５は、他のソフトウェア（モジュール）を規定された順に起動する。
【００２４】
ＢＩＯＳ２０，オペレーティングシステム４０，ファイルシステム４１等のモジュールは、ＣＰＵ１により揮発性メモリ３等へ読み込まれて実行される。以下の説明では、説明の便宜上、ＢＩＯＳ２０，オペレーティングシステム４０，ファイルシステム４１等のモジュールを処理主体として説明する。なお、図１及び図２に示した情報処理装置の動作の詳細は後述する。
【００２５】
ここで、ＴＰＭを用いた情報の暗号化及び復号について簡単に説明する。図３はＴＰＭの起動時の動作を表した模式図である。プラットフォーム５０では、まず、ＢＩＯＳ２０が自身のハッシュ値を計算し、ＴＰＭ５内のＰＣＲ５１へ登録する。ＢＩＯＳ２０は例えば原文から固定長の疑似乱数を生成する演算手法によって計算されるハッシュ値をＰＣＲ５１へ登録する。
【００２６】
次に、ＢＩＯＳ２０は基本パッケージ２１のハッシュ値を計算し、ＴＰＭ５内のＰＣＲ５２へ登録した後、基本パッケージ２１を起動する。また、基本パッケージ２１は、アプリケーションパッケージ２２のハッシュ値を計算し、ＴＰＭ５内のＰＣＲ５２へ登録した後、アプリケーションパッケージ２２を起動する。
【００２７】
このように、ＴＰＭ５のＰＣＲ５１〜５３には、情報処理装置の起動に伴い、ＢＩＯＳ２０，基本パッケージ２１及びアプリケーションパッケージ２２から計算されるハッシュ値が登録される。
【００２８】
図４はＴＰＭを用いた情報の暗号化及び復号を表す模式図である。図４の上側はＴＰＭ５による情報「Ｄａｔａ  Ｐ」の暗号化を表している。ＴＰＭ５は暗号化を行う情報「Ｄａｔａ  Ｐ」と、「ＰＣＲ０」〜「ＰＣＲ２」に格納するハッシュ値「Ｘ」〜「Ｚ」とに基づいて、ブロブ６０を作成する。
【００２９】
図４の下側はＴＰＭによるブロブ６１〜６３の復号を表している。ＴＰＭ５は、情報処理装置を起動する際に、例えばＢＩＯＳ２０，基本パッケージ２１及びアプリケーションパッケージ２２から計算された３つのハッシュ値「Ｘ」〜「Ｚ」が「ＰＣＲ０」〜「ＰＣＲ２」へ登録されている。
【００３０】
情報「Ｄａｔａ  Ｐ」を含むブロブ（Blob）６１〜６３は、ファイルシステム４１が管理している。ブロブ６１は、「ＰＣＲ０」〜「ＰＣＲ２」に「Ｘ」〜「Ｚ」が登録されている。ブロブ６２は、「ＰＣＲ０」〜「ＰＣＲ２」に「Ｘ」，「Ｇ」及び「Ｚ」が登録されている。また、ブロブ６３は「ＰＣＲ０」に「Ｘ」が登録されている。
【００３１】
ブロブ６１の「ＰＣＲ０」〜「ＰＣＲ２」とＴＰＭ５の「ＰＣＲ０」〜「ＰＣＲ２」とに登録されているハッシュ値が同じであるため、ＴＰＭ５はブロブ６１からの情報「Ｄａｔａ  Ｐ」の取り出しを許可する。また、ブロブ６２の「ＰＣＲ１」とＴＰＭ５の「ＰＣＲ１」とに登録されているハッシュ値が異なるため、ＴＰＭ５はブロブ６２からの情報「Ｄａｔａ  Ｐ」の取り出しを許可しない。
【００３２】
さらに、ＴＰＭ５はブロブ６３の「ＰＣＲ０」とＴＰＭ５の「ＰＣＲ０」とに登録されているハッシュ値が同じであるため、ブロブ６３からの情報「Ｄａｔａ  Ｐ」の取り出しを許可する。なお、ＴＰＭ５はブロブ６３のようにハッシュ値が登録されていない「ＰＣＲ１」、「ＰＣＲ２」について、情報「Ｄａｔａ  Ｐ」の取り出しの許可又は不許可の判定に利用しない。
【００３３】
本発明による情報処理装置は、プラットフォーム５０内のファイルシステム４１にデバイス暗号鍵７１を暗号化したブロブ（以下、暗号鍵ブロブと呼ぶ）７０が含まれる。この暗号鍵ブロブ７０の復号可否は、図５に示すように、ＰＣＲ５１〜５３に登録されているハッシュ値によって制御される。デバイス暗号鍵７１は、ファイルシステム４１上に配置された秘密情報の暗号化又は暗号化された秘密情報の復号に用いられる。
【００３４】
図５は起動時にデバイス暗号鍵を取得する処理を表した模式図である。ＴＰＭ５は情報処理装置の起動時、ＢＩＯＳ２０，基本パッケージ２１及びアプリケーションパッケージ２２から計算された３つのハッシュ値「Ｘ」〜「Ｚ」が「ＰＣＲ０」〜「ＰＣＲ２」へ登録されている。
【００３５】
一方、暗号鍵ブロブ７０は「ＰＣＲ０」〜「ＰＣＲ２」に「Ｘ」〜「Ｚ」が登録されている。暗号鍵ブロブ７０の「ＰＣＲ０」〜「ＰＣＲ２」とＴＰＭ５の「ＰＣＲ０」〜「ＰＣＲ２」とに登録されているハッシュ値が同じであるため、ＴＰＭ５は暗号鍵ブロブ７０からデバイス暗号鍵７１を復号する。暗号鍵管理モジュール３８は、デバイス暗号鍵７１を用いて、暗号化された秘密情報７２から秘密情報７３を復号できる。
【００３６】
図６は起動時にデバイス暗号鍵を取得する処理を表したシーケンス図である。ステップＳ１に進み、ＢＩＯＳ２０は自身のハッシュ値を計算し、ＴＰＭ５内のＰＣＲ５１へ登録する。次に、ステップＳ２へ進み、ＢＩＯＳ２０は基本パッケージ２１のハッシュ値を計算する。ステップＳ３に進み、ＢＩＯＳ２０は基本パッケージ２１を展開する。ステップＳ４に進み、ＢＩＯＳ２０は基本パッケージ２１のハッシュ値を、ＴＰＭ５内のＰＣＲ５２へ登録する。ステップＳ５に進み、ＢＩＯＳ２０はオペレーティングシステム４０を起動する。
【００３７】
ステップＳ６に進み、オペレーティングシステム４０はシステム起動モジュール３５を起動する。ステップＳ７に進み、システム起動モジュール３５はシステム管理モジュール３４を起動する。また、ステップＳ８に進み、システム起動モジュール３５は基本アプリケーション３３を起動する。
【００３８】
ステップＳ９に進み、システム起動モジュール３５はアプリケーションパッケージ２２のハッシュ値を計算する。ステップＳ１０に進み、システム起動モジュール３５はアプリケーションパッケージ２２のハッシュ値を、ＴＰＭ５内のＰＣＲ５３へ登録する。
【００３９】
ステップＳ１１に進み、システム起動モジュール３５は暗号鍵管理モジュール３８を起動する。そして、ステップＳ１２に進み、暗号鍵管理モジュール３８は前述のように暗号鍵ブロブ７０からデバイス暗号鍵７１を復号（展開）する。暗号鍵管理モジュール３８はデバイス暗号鍵７１を用いて、暗号化された秘密情報７２から秘密情報７３を復号することができる。
【００４０】
なお、ＴＰＭ５はＢＩＯＳ２０，基本パッケージ２１及びアプリケーションパッケージ２２から計算されるハッシュ値がＰＣＲ５１〜５３に登録されたあと、暗号鍵ブロブ７０の復号を受け付ける。暗号鍵モジュール３８はＴＰＭ５が暗号鍵ブロブ７０の復号を受け付けるようになったタイミングで、暗号鍵ブロブ７０の復号をＴＰＭ５へ依頼する。この後、暗号鍵管理モジュール３８はＴＰＭ５が暗号鍵ブロブ７０から復号したデバイス暗号鍵７１を取得できる。
【００４１】
図７は起動時にデバイス暗号鍵を取得する処理を表したフローチャートである。ステップＳ２１に進み、ＢＩＯＳ２０のコア部分が起動される。ステップＳ２２に進み、ＢＩＯＳ２０のコア部分はＢＩＯＳ２０のハッシュ値を計算し、ＴＰＭ５内のＰＣＲ５１へ登録する。この後、ＢＩＯＳ２０の全体が起動される。
【００４２】
ステップＳ２３に進み、ＢＩＯＳ２０は基本パッケージ２１のハッシュ値を計算し、基本パッケージ２１のハッシュ値を、ＴＰＭ５内のＰＣＲ５２へ登録する。ステップＳ２４に進み、ＢＩＯＳ２０はオペレーティングシステム４０を起動する。
【００４３】
ステップＳ２５に進み、オペレーティングシステム４０はシステム起動モジュール３５を起動する。ステップＳ２６に進み、システム起動モジュール３５は基本パッケージ２１内の他のモジュールを起動する。ステップＳ２７に進み、システム起動モジュール３５はアプリケーションパッケージ２２のハッシュ値を計算し、ＴＰＭ５内のＰＣＲ５３へ登録する。
【００４４】
ステップＳ２８に進み、システム起動モジュール３５はアプリケーションパッケージ２２を起動する。ステップＳ２９に進み、暗号鍵管理モジュール３８はＴＰＭ５を用いて暗号鍵ブロブ７０から復号したデバイス暗号鍵７１を取得する。そして、ステップＳ３０に進み、暗号鍵管理モジュール３８はデバイス暗号鍵７１を用いて、暗号化された秘密情報７２から秘密情報７３を復号することができる。
【００４５】
以下、ファームウェアから計算したハッシュ値の真正性を確保しつつ、情報処理装置においてファームウェアの更新を行う手順について説明する。
【００４６】
図８はファームウェアの更新に利用するファームウェア更新ファイルの一例の構造図である。図８のファームウェア更新ファイル（ＦＷＵファイル）は、ファームウェア用ヘッダ８１，ファームウェアＲＯＭイメージ８２，ＰＣＲ値８３，公開鍵署名８４を有する構成である。
【００４７】
ファームウェア用ヘッダ８１には、ファームウェア更新ファイル８０に関する情報が格納されている。ファームウェアＲＯＭイメージ８２には、更新するファームウェアそのものが格納されている。ＰＣＲ値８３にはファームウェアＲＯＭイメージ８２から計算したハッシュ値（ＰＣＲ値）の予測値を含んだ図９のようなＰＣＲ値フィールドが格納されている。ＰＣＲ値は、例えば疑似ＴＰＭによるＰＣＲ値の予測により取得できる。
【００４８】
図９はＰＣＲ値フィールドの一例の構成図である。図９のＰＣＲ値フィード９１はＰＣＲの見出し（ｉｎｄｅｘ）と、このファームウェアを情報処理装置に適用したときの起動後のＰＣＲ値の予測値とを含んでいる。なお、図９は「ＰＣＲ０」のＰＣＲ値フィールド９１の例を表している。公開鍵署名８４には、改竄を防止する為、秘密鍵により算出されたファームウェアＲＯＭイメージ８２及びＰＣＲ値８３の電子署名が格納されている。
【００４９】
図１０はファームウェア更新ファイルの頒布形態を表した模式図である。ベンダー管理者は管理用ＰＣ１００を操作して、秘密鍵を保持している署名管理サーバ１０１にアクセスし、秘密鍵を利用して図８のようなファームウェア更新ファイル８０を作成する。ベンダー管理者は管理用ＰＣ１００を操作して、ファームウェア更新ファイル８０をファームウェア管理サーバ１０２に登録する。
【００５０】
利用者であるシステム管理者はファームウェア管理サーバ１０２からファームウェア更新ファイル８０を取得し、そのファームウェア更新ファイル８０を用いて対象機器１０３のファームウェアを更新する。なお、ファームウェア管理サーバ１０２の信頼性は電子認証等に基づいて確認する形態とする。
【００５１】
図１１はファームウェアを更新する処理を表した模式図である。図１１では一例として基本パッケージ２１を更新する例を表している。
【００５２】
ファームウェア更新ファイル（ＦＷＵファイル）１１０は、対象機器である情報処理装置内の改竄不可領域に格納されている公開鍵１１３を利用することで、公開鍵署名が正しいことを確認される。公開鍵署名が正しければ、ファームウェア更新ファイル１１０は改竄されていないと判定される。なお、情報処理装置内の改竄不可領域は改竄の防止された記憶領域であればよい。
【００５３】
改竄されていないと判定すると、基本パッケージ２１は、ファームウェア更新ファイル１１０のファームウェアＲＯＭイメージにより基本パッケージ２１ａへ更新される。基本パッケージ２１ａへ更新されると、ＴＰＭ５のＰＣＲ５２は再起動により基本パッケージ２１ａのハッシュ値となる。
【００５４】
したがって、ＰＣＲ５１〜５３に登録されているハッシュ値によって復号可否が制御される暗号鍵ブロブ７０や、ＰＣＲ値リポジトリ１１２を暗号化したブロブ（以下、ＰＣＲ値リポジトリブロブと呼ぶ）１１１は、基本パッケージ２１ａから計算されるハッシュ値に基づいて暗号し直す必要がある。
【００５５】
そこで、本発明による情報処理装置は、ＴＰＭ５を用いて暗号鍵ブロブ７０のデバイス暗号鍵７１を復号すると共に、ＰＣＲ値リポジトリブロブ１１１のＰＣＲ値リポジトリ１１２を復号する。
【００５６】
情報処理装置は、復号したＰＣＲ値リポジトリ１１２を、ファームウェア更新ファイル１１０のＰＣＲ値「ＹＹＹ」によりＰＣＲ値リポジトリ１１２ａに更新する。ＰＣＲ値リポジトリ１１２ａは、再起動後、ＴＰＭ５のＰＣＲ５１〜５３へ登録されるハッシュ値となっている。
【００５７】
情報処理装置は、ＰＣＲ値リポジトリ１１２ａのＰＣＲ値を用いて、デバイス暗号鍵７１を再暗号化することで、暗号鍵ブロブ７０ａを得る。また、情報処理装置は、ＰＣＲ値リポジトリ１１２ａのＰＣＲ値を用いて、ＰＣＲ値リポジトリ１１２ａを再暗号化することで、ＰＣＲ値リポジトリブロブ１１１ａを得る。
【００５８】
図１２はネットワーク経由でファームウェアを更新する処理を表したフローチャートである。ステップＳ４１に進み、ネットワーク更新モジュール３１はファームウェア更新ファイル１１０を受け付ける。
【００５９】
ステップＳ４２に進み、ネットワーク更新モジュール３１はファームウェア更新ファイル１１０の内容を受け付け、システム管理モジュール３４へファームウェアの更新依頼を行う。
【００６０】
ステップＳ４３に進み、システム管理モジュール３４はファームウェア認証モジュール３７へファームウェア更新ファイル１１０の認証依頼を行う。すると、ファームウェア認証モジュール３７は、読み出し専用領域等、情報処理装置内の改竄不可領域に格納されている公開鍵１１３を取得する。取得した公開鍵１１３を用いて、ファームウェア認証モジュール３７はファームウェア更新ファイル１１０の認証を行う。
【００６１】
具体的に、ファームウェア認証モジュール３７はステップＳ４３ａにおいて、ファームウェア更新ファイル１１０のファームウェアＲＯＭイメージ及びＰＣＲ値のダイジェストを計算する。ステップＳ４３ｂにおいて、ファームウェア認証モジュール３７はファームウェア更新ファイル１１０の公開鍵署名を公開鍵１１３で復号し、ステップＳ４３ａで計算したダイジェストと照合することで署名検証を行う。この署名検証により、ファームウェア認証モジュール３７はファームウェア更新ファイル１１０の認証を行う。
【００６２】
認証が成功すると、ステップＳ４４に進み、システム管理モジュール３４はシステム更新モジュール３６へファームウェアの更新依頼を行う。ファームウェアの更新依頼を受けたシステム更新モジュール３６は、ファームウェア更新ファイル１１０を用いてファームウェアを更新する。
【００６３】
ステップＳ４５に進み、システム管理モジュール３４は暗号鍵管理モジュール３８へ暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１及びＰＣＲ値リポジトリ１１２の更新依頼を行う。暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１及びＰＣＲ値リポジトリ１１２の更新依頼を受けた暗号鍵管理モジュール３８は、ファームウェア更新ファイル１１０のＰＣＲ値を用いて暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１及びＰＣＲ値リポジトリ１１２の更新を行う。
【００６４】
具体的に、暗号鍵管理モジュール３８はステップＳ４５ａにおいて、暗号鍵ブロブ７０を読み出し、ＴＰＭ５を用いてデバイス暗号鍵７１を復号する。また、ステップＳ４５ｂにおいて、暗号鍵管理モジュール３８はＰＣＲ値リポジトリブロブ１１１を読み出し、ＴＰＭ５を用いてＰＣＲ値リポジトリ１１２を復号する。
【００６５】
ステップＳ４５ｃにおいて、暗号鍵管理モジュール３８はファームウェア更新ファイル１１０のＰＣＲ値を用いて、ＰＣＲ値リポジトリ１１２を新しいＰＣＲ値リポジトリ１１２ａへ更新する。
【００６６】
ステップＳ４５ｄにおいて、暗号鍵管理モジュール３８はＰＣＲ値リポジトリ１１２ａのＰＣＲ値を用いて、デバイス暗号鍵７１を再暗号化することで、暗号鍵ブロブ７０ａを得る。また、ステップＳ４５ｅにおいて、暗号鍵管理モジュール３８はＰＣＲ値リポジトリ１１２ａのＰＣＲ値を用いて、ＰＣＲ値リポジトリ１１２ａを再暗号化することで、ＰＣＲ値リポジトリブロブ１１１ａを得る。
【００６７】
ステップＳ４６に進み、システム管理モジュール３４はファームウェアの更新依頼に対する結果通知をネットワーク更新モジュール３１へ行う。ネットワーク更新モジュール３１は結果通知をファームウェア更新の依頼元に対して行う。なお、ステップＳ４３において認証が失敗した場合も、システム管理モジュール３４はステップＳ４６に進む。例えばネットワーク更新モジュール３１はファームウェアの更新成功又は失敗、ファームウェア更新ファイル１１０の認証失敗などをファームウェア更新の依頼元に通知する。
【００６８】
図１３はネットワーク経由でファームウェアを更新する処理を表したシーケンス図である。ステップＳ５１ではネットワーク更新モジュール３１がネットワーク経由でファームウェアの更新リクエストであるファームウェア更新ファイル１１０を受け付ける。
【００６９】
ステップＳ５２に進み、ネットワーク更新モジュール３１はファームウェア更新ファイル１１０の内容を受け付け、システム管理モジュール３４へファームウェアの更新依頼を行う。
【００７０】
ステップＳ５３に進み、システム管理モジュール３４はファームウェア認証モジュール３７へファームウェア更新ファイル１１０の認証依頼を行う。すると、ファームウェア認証モジュール３７は、前述のようにファームウェア更新ファイル１１０の認証を行う。
【００７１】
認証が成功すると、ステップＳ５４に進み、システム管理モジュール３４はシステム更新モジュール３６へファームウェアの更新依頼を行う。ファームウェアの更新依頼を受けたシステム更新モジュール３６は、ファームウェア更新ファイル１１０を用いてファームウェアを更新する。
【００７２】
ステップＳ５５に進み、システム管理モジュール３４は暗号鍵管理モジュール３８へ暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１及びＰＣＲ値リポジトリ１１２の更新依頼を行う。ステップＳ５６に進み、暗号鍵管理モジュール３８は不揮発メモリ６から暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１を読み出す。
【００７３】
ステップＳ５７に進み、暗号鍵管理モジュール３８は、ＴＰＭ５を用いてデバイス暗号鍵７１及びＰＣＲ値リポジトリ１１２を復号する。その後、暗号鍵管理モジュール３８はファームウェア更新ファイル１１０のＰＣＲ値を用いて、ＰＣＲ値リポジトリ１１２を新しいＰＣＲ値リポジトリ１１２ａへ更新する。
【００７４】
ステップＳ５８に進み、暗号鍵管理モジュール３８はＰＣＲ値リポジトリ１１２ａのＰＣＲ値を用いて、デバイス暗号鍵７１及びＰＣＲ値リポジトリ１１２ａを再暗号化することで、暗号鍵ブロブ７０ａ及びＰＣＲ値リポジトリブロブ１１１ａを得る。ステップＳ５９に進み、暗号鍵管理モジュール３８は不揮発メモリ６へ暗号鍵ブロブ７０ａ及びＰＣＲ値リポジトリブロブ１１１ａを書き込む。
【００７５】
ステップＳ６０に進み、暗号鍵管理モジュール３８は暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１及びＰＣＲ値リポジトリ１１２の更新依頼に対する応答として結果通知をシステム管理モジュール３４へ行う。
【００７６】
ステップＳ６１に進み、システム管理モジュール３４はファームウェアの更新依頼に対する応答として結果通知をネットワーク更新モジュール３１へ行う。そして、ステップＳ６２に進み、ネットワーク更新モジュール３１は結果通知をファームウェア更新の依頼元に対して行う。
【００７７】
図１４はＳＤカードを利用してファームウェアを更新する処理を表したシーケンス図である。ステップＳ７１では、システム起動モジュール３５が、ｆｌａｓｈメディア更新モジュールの一例としてのＳＤカード更新モジュール３２ａを起動する。ステップＳ７２に進み、ＳＤカード更新モジュール３２ａはＳＤカードからファームウェア更新ファイル１１０を検出する。
【００７８】
ステップＳ７３では、システム起動モジュール３５がＳＤカード更新モジュール３２ａへファームウェアの更新リクエストを行う。すると、ステップＳ７４に進み、ＳＤカード更新モジュール３２ａはファームウェア更新ファイル１１０の内容を受け付け、システム管理モジュール３４へファームウェアの更新依頼を行う。
【００７９】
ステップＳ７５に進み、システム管理モジュール３４は例えばディスプレイ等に更新画面を表示する。ステップＳ７６に進み、システム管理モジュール３４はファームウェア認証モジュール３７へファームウェア更新ファイル１１０の認証依頼を行う。認証依頼があると、ファームウェア認証モジュール３７は、前述のようにファームウェア更新ファイル１１０の認証を行う。
【００８０】
認証が成功すると、ステップＳ７７に進み、システム管理モジュール３４はシステム更新モジュール３６へファームウェアの更新依頼を行う。ファームウェアの更新依頼を受けたシステム更新モジュール３６は、ファームウェア更新ファイル１１０を用いてファームウェアを更新する。
【００８１】
ステップＳ７８に進み、システム管理モジュール３４は暗号鍵管理モジュール３８へ暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１及びＰＣＲ値リポジトリ１１２の更新依頼を行う。ステップＳ７９に進み、暗号鍵管理モジュール３８は不揮発メモリ６から暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１を読み出す。
【００８２】
ステップＳ８０に進み、暗号鍵管理モジュール３８は、ＴＰＭ５を用いてデバイス暗号鍵７１及びＰＣＲ値リポジトリ１１２を復号する。その後、暗号鍵管理モジュール３８はファームウェア更新ファイル１１０のＰＣＲ値を用いて、ＰＣＲ値リポジトリ１１２を新しいＰＣＲ値リポジトリ１１２ａへ更新する。
【００８３】
ステップＳ８１に進み、暗号鍵管理モジュール３８はＰＣＲ値リポジトリ１１２ａのＰＣＲ値を用いて、デバイス暗号鍵７１及びＰＣＲ値リポジトリ１１２ａを再暗号化することで、暗号鍵ブロブ７０ａ及びＰＣＲ値リポジトリブロブ１１１ａを得る。ステップＳ８２に進み、暗号鍵管理モジュール３８は不揮発メモリ６へ暗号鍵ブロブ７０ａ及びＰＣＲ値リポジトリブロブ１１１ａを書き込む。
【００８４】
ステップＳ８３に進み、暗号鍵管理モジュール３８は暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１及びＰＣＲ値リポジトリ１１２の更新依頼に対する応答として結果通知をシステム管理モジュール３４へ行う。そして、ステップＳ８４に進み、システム管理モジュール３４は例えばディスプレイ等に更新結果画面を表示する。
【００８５】
ステップＳ８５に進み、システム管理モジュール３４はファームウェアの更新依頼に対する応答として結果通知をＳＤカード更新モジュール３２ａへ行う。そして、ステップＳ８６に進み、ＳＤカード更新モジュール３２ａはファームウェアの更新リクエストに対する応答として完了通知をシステム起動モジュール３５に対して行う。
【００８６】
図１５は本発明の情報処理装置におけるデータ／プログラムの一例の配置図である。図１５の情報処理装置は揮発性メモリ３等のプログラム配置用デバイス１５０にＢＩＯＳ２０，基本パッケージ２１及びアプリケーションパッケージ２２が配置され、不揮発メモリ６等のデータ配置用デバイス１５１に暗号鍵ブログ７０，ＰＣＲ値リポジトリブロブ１１１が配置され、ＴＰＭ５にＰＣＲ５１〜５３及びシール鍵１５５が配置され、読み出し専用領域１５２にファームウェア認証用の公開鍵１１３が配置されている。
【００８７】
なお、ＴＰＭ５に配置されているシール鍵１５５はブロブを作る際に利用する暗号鍵である。シール鍵１５５は共通鍵でも非対象鍵でもよい。シール鍵１５５にはＴＰＭ５から外に出せないものや別の暗号鍵で暗号化されたあとで外に出されるものがある。ファームウェア認証用の公開鍵１１３はＴＰＭ５の読み出し専用不揮発領域に配置してもよい。
【００８８】
また、ファームウェアから計算したハッシュ値の真正性を確保しつつ、情報処理装置においてファームウェアの更新を行う他の手順について説明する。
【００８９】
図１６はファームウェアを更新する処理の他の例を表した模式図である。図１６では図１１と同様、基本パッケージ２１を更新する例を表している。
【００９０】
図１６において、ファームウェアの更新に利用するファームウェア更新ファイル（ＦＷＵファイル）１６１は、ファームウェアＲＯＭイメージ，公開鍵署名８４を有する構成である。つまり、ファームウェア更新ファイル１６１はＰＣＲ値を有しない構成である点でファームウェア更新ファイル１１０と異なっている。
【００９１】
なお、ファームウェアＲＯＭイメージには、更新するファームウェアそのものが格納されている。公開鍵署名には、改竄を防止する為、秘密鍵により算出されたファームウェアＲＯＭイメージの電子署名が格納されている。
【００９２】
ファームウェア更新ファイル１６１は、情報処理装置内の改竄不可領域に格納されている公開鍵１１３を利用することで、公開鍵署名が正しいことを確認される。公開鍵署名が正しければ、ファームウェア更新ファイル１６１は改竄されていないと判定される。
【００９３】
改竄されていないと判定すると、基本パッケージ２１は、ファームウェア更新ファイル１６１のファームウェアＲＯＭイメージにより基本パッケージ２１ａへ更新される。基本パッケージ２１ａへ更新されると、ＴＰＭ５のＰＣＲ５２は再起動により基本パッケージ２１ａのハッシュ値となる。
【００９４】
したがって、ＰＣＲ５１，５２に登録されているハッシュ値によって復号可否が制御される暗号鍵ブロブ７０や、ＰＣＲ値リポジトリブロブ１１１は、基本パッケージ２１ａから計算されるハッシュ値に基づいて暗号し直す必要がある。
【００９５】
そこで、本発明による情報処理装置は、ＴＰＭ５を用いて暗号鍵ブロブ７０のデバイス暗号鍵７１を復号すると共に、ＰＣＲ値リポジトリブロブ１１１のＰＣＲ値リポジトリ１１２を復号する。
【００９６】
情報処理装置は、基本パッケージ２１ａからハッシュ値を計算し、そのハッシュ値によりデバイス暗号鍵７１を再暗号化して、暗号鍵ブロブ７０ａを得る。また、情報処理装置は、ＰＣＲ値リポジトリ１１２ａのＰＣＲ値を用いて、ＰＣＲ値リポジトリ１１２ａを再暗号化することで、ＰＣＲ値リポジトリブロブ１１１ａを得る。
【００９７】
図１６では、ファームウェアを更新する際、ファームウェアから直接、ＰＣＲ値の予測値を計算することができるので、ファームウェア更新ファイル１６１にＰＣＲ値を含めなくてもよい。また、ＰＣＲ値の予測値を情報処理装置内で計算できるので、例えば機器の状態に応じてＰＣＲ値を柔軟に制御できる。
【００９８】
図１７はネットワーク経由でファームウェアを更新する処理を表したフローチャートである。ステップＳ９１に進み、ネットワーク更新モジュール３１はファームウェア更新ファイル１６１を受け付ける。
【００９９】
ステップＳ９２に進み、ネットワーク更新モジュール３１はファームウェア更新ファイル１６１の内容を受け付け、システム管理モジュール３４へファームウェアの更新依頼を行う。
【０１００】
ステップＳ９３に進み、システム管理モジュール３４はファームウェア認証モジュール３７へファームウェア更新ファイル１６１の認証依頼を行う。すると、ファームウェア認証モジュール３７は、読み出し専用領域等、情報処理装置内の改竄不可領域に格納されている公開鍵１１３を取得する。ファームウェア認証モジュール３７は、取得した公開鍵１１３を用いて、ファームウェア更新ファイル１１０の認証を行う。
【０１０１】
具体的に、ファームウェア認証モジュール３７はステップＳ９３ａにおいて、ファームウェア更新ファイル１６１に含まれるファームウェアＲＯＭイメージのダイジェストを計算する。
【０１０２】
ステップＳ９３ｂにおいて、ファームウェア認証モジュール３７はファームウェア更新ファイル１６１の公開鍵署名を公開鍵１１３で復号し、ステップＳ９３ａで計算したダイジェストと照合することで署名検証を行う。この署名検証により、ファームウェア認証モジュール３７はファームウェア更新ファイル１６１の認証を行う。
【０１０３】
認証が成功すると、ステップＳ９４に進み、システム管理モジュール３４はシステム更新モジュール３６へファームウェアの更新依頼を行う。ファームウェアの更新依頼を受けたシステム更新モジュール３６は、ファームウェア更新ファイル１６１を用いてファームウェアを更新する。
【０１０４】
ステップＳ９５に進み、システム管理モジュール３４は暗号鍵管理モジュール３８へ暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１及びＰＣＲ値リポジトリ１１２の更新依頼を行う。暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１及びＰＣＲ値リポジトリ１１２の更新依頼を受けた暗号鍵管理モジュール３８は、ファームウェア更新ファイル１６１に含まれるファームウェアＲＯＭイメージから算出されたＰＣＲ値を用いて暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１及びＰＣＲ値リポジトリ１１２の更新を行う。
【０１０５】
具体的に、暗号鍵管理モジュール３８はステップＳ９５ａにて、ファームウェア更新ファイル１６１に含まれるファームウェアＲＯＭイメージのダイジェストをファームウェア認証モジュール３７に計算させる。ステップＳ９５ｂにおいて、暗号鍵管理モジュール３８はファームウェアＲＯＭイメージのダイジェストに基づくＰＣＲ値の予測値をファームウェア認証モジュール３７に計算させる。
【０１０６】
また、暗号鍵管理モジュール３８はステップＳ９５ｃにおいて、暗号鍵ブロブ７０を読み出し、ＴＰＭ５を用いてデバイス暗号鍵７１を復号する。また、ステップＳ９５ｄにおいて、暗号鍵管理モジュール３８はＰＣＲ値リポジトリブロブ１１１を読み出し、ＴＰＭ５を用いてＰＣＲ値リポジトリ１１２を復号する。
【０１０７】
ステップＳ９５ｅにおいて、暗号鍵管理モジュール３８は算出したファームウェアＲＯＭイメージのダイジェストに基づくＰＣＲ値の予測値を用いて、ＰＣＲ値リポジトリ１１２を新しいＰＣＲ値リポジトリ１１２ａへ更新する。
【０１０８】
ステップＳ９５ｆにおいて、暗号鍵管理モジュール３８はＰＣＲ値リポジトリ１１２ａのＰＣＲ値を用いて、デバイス暗号鍵７１を再暗号化することで、暗号鍵ブロブ７０ａを得る。また、ステップＳ９５ｇにおいて、暗号鍵管理モジュール３８はＰＣＲ値リポジトリ１１２ａのＰＣＲ値を用いて、ＰＣＲ値リポジトリ１１２ａを再暗号化することで、ＰＣＲ値リポジトリブロブ１１１ａを得る。
【０１０９】
ステップＳ９６に進み、システム管理モジュール３４はファームウェアの更新依頼に対する結果通知をネットワーク更新モジュール３１へ行う。ネットワーク更新モジュール３１は結果通知をファームウェア更新の依頼元に対して行う。なお、ステップＳ９３において認証が失敗した場合も、システム管理モジュール３４はステップＳ９６に進む。例えばネットワーク更新モジュール３１はファームウェアの更新成功又は失敗、ファームウェア更新ファイル１１０の認証失敗などをファームウェア更新の依頼元に通知する。
【０１１０】
図１８はネットワーク経由でファームウェアを更新する処理を表したシーケンス図である。まず、ネットワーク更新モジュール３１はネットワーク経由でファームウェアの更新リクエストであるファームウェア更新ファイル１６１を受け付ける。
【０１１１】
ステップＳ１０１に進み、ネットワーク更新モジュール３１はファームウェア更新ファイル１１０の内容を受け付け、システム管理モジュール３４へファームウェアの更新依頼を行う。ステップＳ１０２に進み、システム管理モジュール３４はファームウェア認証モジュール３７へファームウェア更新ファイル１６１の認証依頼を行う。すると、ファームウェア認証モジュール３７は、前述のようにファームウェア更新ファイル１６１の認証を行う。
【０１１２】
認証が成功すると、ステップＳ１０３に進み、システム管理モジュール３４はシステム更新モジュール３６へファームウェアの更新依頼を行う。ファームウェアの更新依頼を受けたシステム更新モジュール３６はファームウェア更新ファイル１６１を用いてファームウェアを更新する。
【０１１３】
また、ステップＳ１０４に進み、システム管理モジュール３４はファームウェア認証モジュール３７に、ファームウェアＲＯＭイメージのダイジェストに基づくＰＣＲ値の予測値を計算させる。
【０１１４】
ステップＳ１０５に進み、システム管理モジュール３４は暗号鍵管理モジュール３８へ暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１及びＰＣＲ値リポジトリ１１２の更新依頼を行う。ステップＳ１０６に進み、暗号鍵管理モジュール３８は不揮発メモリ６から暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１を読み出す。
【０１１５】
ステップＳ１０７に進み、暗号鍵管理モジュール３８は、ＴＰＭ５を用いてデバイス暗号鍵７１及びＰＣＲ値リポジトリ１１２を復号する。その後、暗号鍵管理モジュール３８は計算したファームウェアＲＯＭイメージのダイジェストに基づくＰＣＲ値の予測値を用いて、ＰＣＲ値リポジトリ１１２を新しいＰＣＲ値リポジトリ１１２ａへ更新する。
【０１１６】
ステップＳ１０８に進み、暗号鍵管理モジュール３８はＰＣＲ値リポジトリ１１２ａのＰＣＲ値を用いて、デバイス暗号鍵７１及びＰＣＲ値リポジトリ１１２ａを再暗号化することで、暗号鍵ブロブ７０ａ及びＰＣＲ値リポジトリブロブ１１１ａを得る。ステップＳ１０９に進み、暗号鍵管理モジュール３８は不揮発メモリ６へ暗号鍵ブロブ７０ａ及びＰＣＲ値リポジトリブロブ１１１ａを書き込む。
【０１１７】
ステップＳ１１０に進み、暗号鍵管理モジュール３８は暗号鍵ブロブ７０，ＰＣＲ値リポジトリブロブ１１１及びＰＣＲ値リポジトリ１１２の更新依頼に対する応答として結果通知をシステム管理モジュール３４へ行う。
【０１１８】
ステップＳ１１１に進み、システム管理モジュール３４はファームウェアの更新依頼に対する応答として結果通知をネットワーク更新モジュール３１へ行う。ネットワーク更新モジュール３１は結果通知をファームウェア更新の依頼元に対して行う。
【０１１９】
（静的な認証チェーン）
図１９は静的な認証チェーンを表した模式図である。図２０は本発明の情報処理装置におけるデータ／プログラムの一例の配置図である。静的な認証チェーンはファームウェアの更新時に付与された公開鍵署名８４を用いて、以降のファームウェア認証を実現するものである。
【０１２０】
静的な認証チェーンを利用した方法によれば、情報処理装置内の基本パッケージ２１以外のファームウェアのハッシュ値を登録しなくてもファームウェアから計算したハッシュ値の真正性を維持したままアプリケーションパッケージ２２を実行できる。結果としてデバイス暗号鍵７１の読み出しにアプリケーションパッケージ２２のハッシュ値の登録を待つ必要がなくなり、高速に情報処理装置を起動できる。
【０１２１】
この場合、アプリケーションパッケージはファームウェア更新ファイル１１０内に含まれる公開鍵署名８４を含めてファイルシステム４１内に配置される。起動時には、システム起動モジュール３５が情報処理装置内の改竄不可領域に格納されている公開鍵１１３を読み出し、この公開鍵１１３を用いてアプリケーションパッケージ２２の電子認証を実施し、アプリケーションパッケージ２２の完全性を確認する。
【０１２２】
（動的な認証チェーン）
図２１は、動的な認証チェーンを表した模式図である。図２２は、本発明の情報処理装置におけるデータ／プログラムの一例の配置図である。動的な認証チェーンは、情報処理装置内の改竄不可領域に格納されている公開鍵１１３をファームウェアの一部と見なすことで、ファームウェアを更新する仕組みを用いて、公開鍵１１３の更新を実現するものである。
【０１２３】
図２１では、公開鍵１１３を単一のファームウェアとして見なし、情報処理装置の起動時に、ＴＰＭ５のＰＣＲ５３へ暗号鍵１１３のハッシュ値を登録している。このような動的な認証チェーンを利用した方法によれば、ファイルシステム４１上に配置された公開鍵１１３を用いて、アプリケーションパッケージ２２の認証を実施することができる。
【０１２４】
（ＴＰＭ５の代替）
ＴＰＭ５は完全性に基づくデータアクセスをコントロールするモジュールである。具体的に、ＴＰＭ５はファームウェアの完全性に関するメトリクスを用いてデータのアクセス管理を実施するハードウェア又はソフトウェアモジュールである。
【０１２５】
例えばＴＰＭ５はハッシュ値から計算されるＰＣＲ値により完全性メトリクスを実現している。またＴＰＭ５はＰＣＲ値でアクセスコントロールされた暗号鍵ブログ７０を復号できるかどうかでデータのアクセス管理を実現している。
【０１２６】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、特許請求の範囲に記載した暗号化復号手段はＴＰＭ５に相当し、認証手段はファームウェア認証モジュール３７に相当し、ソフトウェア更新手段はシステム更新モジュール３６に相当し、暗号鍵管理手段は暗号鍵管理モジュール３８に相当する。
【図面の簡単な説明】
【０１２７】
【図１】本発明による情報処理装置の一実施例のハードウェア構成図である。
【図２】本発明による情報処理装置の一実施例のソフトウェア構成図である。
【図３】ＴＰＭの起動時の動作を表した模式図である。
【図４】ＴＰＭを用いた情報の暗号化及び復号を表す模式図である。
【図５】起動時にデバイス暗号鍵を取得する処理を表した模式図である。
【図６】起動時にデバイス暗号鍵を取得する処理を表したシーケンス図である。
【図７】起動時にデバイス暗号鍵を取得する処理を表したフローチャートである。
【図８】ファームウェアの更新に利用するファームウェア更新ファイルの一例の構造図である。
【図９】ＰＣＲ値フィールドの一例の構成図である。
【図１０】ファームウェア更新ファイルの頒布形態を表した模式図である。
【図１１】ファームウェアを更新する処理を表した模式図である。
【図１２】ネットワーク経由でファームウェアを更新する処理を表したフローチャートである。
【図１３】ネットワーク経由でファームウェアを更新する処理を表したシーケンス図である。
【図１４】ＳＤカードを利用してファームウェアを更新する処理を表したシーケンス図である。
【図１５】本発明の情報処理装置におけるデータ／プログラムの一例の配置図である。
【図１６】ファームウェアを更新する処理の他の例を表した模式図である。
【図１７】ネットワーク経由でファームウェアを更新する処理を表したフローチャートである。
【図１８】ネットワーク経由でファームウェアを更新する処理を表したシーケンス図である。
【図１９】静的な認証チェーンを表した模式図である。
【図２０】本発明の情報処理装置におけるデータ／プログラムの一例の配置図である。
【図２１】動的な認証チェーンを表した模式図である。
【図２２】本発明の情報処理装置におけるデータ／プログラムの一例の配置図である。
【符号の説明】
【０１２８】
１    ＣＰＵ
２    ＡＳＩＣ
３    揮発性メモリ
４    エンジンコントローラ
５    ＴＰＭ
６    不揮発メモリ
７    ネットワークデバイス
８    ｓｄカードＩ／Ｆ
９    メインバス
１０    ローカルバス
２０    ＢＩＯＳ
２１    基本パッケージ
２２，２３    アプリケーションパッケージ
３１    ネットワーク更新モジュール
３２    ｆｌａｓｈメディア更新モジュール
３３    基本アプリケーション（コピー）
３４    システム管理モジュール
３５    システム起動モジュール
３６    システム更新モジュール
３７    ファームウェア認証モジュール
３８    暗号鍵管理モジュール
３９    ＴＰＭ管理モジュール（ＴＳＳ）
４０    オペレーティングシステム
４１    ファイルシステム
４２    不揮発メモリドライバ
４３    ＴＰＭドライバ
４４    基本アプリケーション（プリンタ）
４５    基本アプリケーション（ネットワーク）
４６    基本アプリケーション（スキャナ）
５０    プラットフォーム
５１〜５３    ＰＣＲ
６０〜６３    ブロブ
７０    暗号鍵ブロブ
７１    デバイス暗号鍵
７２    暗号化された秘密情報
７３    秘密情報
８０，１１０，１６１    ファームウェア更新ファイル
８１    ファームウェア用ヘッダ
８２    ファームウェアＲＯＭイメージ
８３    ＰＣＲ値
８４    公開鍵署名
９１    ＰＣＲ値フィード
１００    管理用ＰＣ
１０１    署名管理サーバ
１０２    ファームウェア管理サーバ
１０３    対象機器
１１１    ＰＣＲ値リポジトリブロブ
１１２    ＰＣＲ値リポジトリ
１１３    公開鍵
【図１】
2008226159.tif 000003
【図２】
2008226159.tif 000004
【図３】
2008226159.tif 000005
【図４】
2008226159.tif 000006
【図５】
2008226159.tif 000007
【図６】
2008226159.tif 000008
【図７】
2008226159.tif 000009
【図８】
2008226159.tif 000010
【図９】
2008226159.tif 000011
【図１０】
2008226159.tif 000012
【図１１】
2008226159.tif 000013
【図１２】
2008226159.tif 000014
【図１３】
2008226159.tif 000015
【図１４】
2008226159.tif 000016
【図１５】
2008226159.tif 000017
【図１６】
2008226159.tif 000018
【図１７】
2008226159.tif 000019
【図１８】
2008226159.tif 000020
【図１９】
2008226159.tif 000021
【図２０】
2008226159.tif 000022
【図２１】
2008226159.tif 000023
【図２２】
2008226159.tif 000024