Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND COMPUTER PROGRAM AND INTEGRATED CIRCUIT FOR THE REALIZATION THEREOF
Document Type and Number:
WIPO Patent Application WO/2009/157133
Kind Code:
A1
Abstract:
Provided is an information processing device capable of continuously performing secure boots across module groups provided by a plurality of providers and maintaining independence between the providers. A collaboration certificate which includes a first configuration matching value (503) which indicates the cumulative hash value of a first module group performing a secure boot and a module measurement value (505) which indicates the hash value of the first module of a second module group performing a secure boot is provided. After the secure boot of the first module group, the starting of the first module group is verified by matching the first configuration matching value (503). Furthermore, when the first module of the second module group verified to be complete by matching the module measurement value (505) is started, a secure boot of the second module group is performed, and a module in the first module group was updated, a collaboration certificate update unit (135) updates the collaboration certificate.

Inventors:
TAKAYAMA HISASHI
MATSUSHIMA HIDEKI
ITO TAKAYUKI
HAGA TOMOYUKI
NICOLSON KENNETH ALEXANDER
MAEDA MANABU
Application Number:
PCT/JP2009/002293
Publication Date:
December 30, 2009
Filing Date:
May 25, 2009
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PANASONIC CORP (JP)
TAKAYAMA HISASHI
MATSUSHIMA HIDEKI
ITO TAKAYUKI
HAGA TOMOYUKI
NICOLSON KENNETH ALEXANDER
MAEDA MANABU
International Classes:
G06F21/57; H04L9/32
Domestic Patent References:
WO2009044533A12009-04-09
Foreign References:
JP2007072909A2007-03-22
JP2007257197A2007-10-04
JPH10333902A1998-12-18
US20050021968A12005-01-27
Attorney, Agent or Firm:
NAKAJIMA, Shiro et al. (JP)
Shiro Nakajima (JP)
Download PDF:
Claims:
 第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納する第1記憶部と、
 第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納する第2記憶部と、
 前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第1制御部と、
 前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第2制御部と、
 前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持部と、を具備し、
 前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、
 前記第1制御部は、前記第1の複数のモジュールを起動した後、
 前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの先頭モジュールを起動し、
 前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動させることを特徴とする情報処理装置。
 前記第2制御部によって管理され起動済みの前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値を格納する第3記憶部を有し、
 前記連携証明書は、さらに、前記第2の複数のモジュールが起動されていないことを示す第4累積照合値を含み、
 前記第1制御部は、さらに、
 第2の複数のモジュールの先頭モジュールの正当性を検証すると、
 前記第2制御部から前記第3記憶部に格納された第2の複数のモジュールの検証値を取得し、この取得した検証値と前記連携証明書に含まれる第4累積値とを比較して前記第2の複数のモジュールを起動する前に前記第2制御部が起動したモジュールがないことを検証した場合、前記第2の複数のモジュールの先頭モジュールを起動し、
 前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とする請求項1記載の情報処理装置。
 前記保持部は、前記第1記憶部に含まれることを特徴とする請求項1記載の情報処理装置。
 前記第1制御部は、前記第2の複数のモジュールの先頭モジュールが更新された場合、前記連携証明書に含まれる第3照合値を更新することを特徴とする請求項3記載の情報処理装置。
 前記第2制御部は、前記第2の複数のモジュールの先頭モジュールを更新した場合、前記第1制御部にその旨を通知し、
 第1制御部は、前記通知を受信すると、前記連携証明書の前記第3照合値を前記更新された第2の複数のモジュールの先頭モジュールの第2照合値に更新することを特徴とする請求項1記載の情報処理装置。
 第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納し、
 第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納し、
 前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動し、
 前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する情報処理方法であって、
 前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持し、
 前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、
 前記第1の複数のモジュールを起動した後、
 前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とする情報処理方法。
 コンピュータに対し、
 第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを第1記憶部に格納する第1処理と、
 第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを第2記憶部に格納する第2処理と、
 前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第3処理と、
 前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第4処理と、を実行させるコンピュータプログラムであって、
 前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書を保持部に格納する第5処理を実行させ、
 前記第3処理は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、
 前記第3処理は、前記第1の複数のモジュールを起動した後、
 前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第4処理を起動して前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とするコンピュータプログラム。
 第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納する第1記憶部と、
 第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納する第2記憶部と、
 前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第1制御部と、
 前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第2制御部と、
 前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持部と、を具備した集積回路であって、
 前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、
 前記第1制御部は、前記第1の複数のモジュールを起動した後、
 前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの先頭モジュールを起動し、
 前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動させることを特徴とする集積回路。
Description:
情報処理装置、情報処理方法、 れらを実現するコンピュータプログラム及 集積回路

 本発明は、パーソナルコンピュータや携 電話などの情報通信機器、インターネット クセス機能を備えたテレビ受信装置などの 報家電機器等の情報処理装置、情報処理方 、これらを実現するコンピュータプログラ 及び集積回路に関するものである。

 特に、端末のソフトウェアが複数の提供 から提供される複数のモジュール群から構 される場合において、新しいソフトウェア ジュールを各提供者から個別にダウンロー することでソフトウェアモジュールの更新 可能にしつつ、不正な動作をするモジュー にすり替えたり、不正にソフトウェアを古 バージョンに戻したりするといった不正行 を防止し、安定して確実に正しいソフトウ ア構成で起動することを可能にするもので る。

 近年、ネットワークを介して提供される ービスは、音楽や映像といった著作物の提 や、企業が保有する機密情報の閲覧、オン インバンキングなど多岐に渡り、かつ、そ 中で扱われる情報の価値も高価なものにな てきている。多岐に渡るサービスに対応す ため、パーソナルコンピュータ、携帯端末 携帯電話、デジタル家電などの端末には、 数の提供者から提供された複数のソフトウ アがインストールされている。

 例えば、携帯電話の場合、携帯電話の端 メーカーが提供する携帯電話の基本機能に するモジュール群と、携帯電話のオペレー が提供する携帯通信機能に関するモジュー 群と、ISP(Internet Service Provider)が提供する 帯電話上で動作するサービス・アプリケー ョンを構成するモジュール群がインストー されている場合がある。

 また、高価な価値を持つ情報を安全に扱 ために、パーソナルコンピュータ、携帯端 、携帯電話、デジタル家電などの端末には ソフトウェアモジュールの改ざん等の不正 為を防止する仕組みがモジュール群ごとに み込まれている。例えば、各ソフトウェア ジュールに対して提供者が証明書を発行し 各ソフトウェアモジュールの起動時に、そ 証明書を用いてソフトウェアモジュールの 全性を検証するといった仕組もその一つで る。この仕組は、モジュール群を構成する フトウェアモジュールをモジュール単位で 新する場合にも有効であり、モジュール群 提供者が新しいソフトウェアモジュールと に、その新しいソフトウェアモジュールの 明書を提供することにより、端末側で提供 側から受信した新しいソフトウェアモジュ ルの完全性を検証することが可能となる。

 上記の証明書を用いて不正行為を防止す 仕組みと同様の技術は、例えば特許文献1に おいて公開されている。

 また、セキュアなコンピュータプラット ォームを開発、普及させることを目的とし 、Trusted Computing Group(TCG)が設立されている TCGでは、Trusted Platform Module(TPM)と呼ばれる キュリティモジュールを利用し、ソフトウ アモジュールの完全性だけでなく、ソフト ェアモジュールを起動する順番が正しいこ を検証しながらソフトウェアモジュールを 動するセキュアブートと呼ばれる起動処理 端末が行うことで、安全な端末環境を実現 ている(非特許文献1~5参照)。

US2005/0021968

TPM Main,Part1 Design Principles,Specification ver sion 1.2 Level2 Rivision103(9 July 2007) TPM Main,Part2 TPM Structures,Specification verion 1.2 Level2 Rivision103(9 July 2007) TPM Main Part3 Commands,Specification verion 1.2 Level2 Rivision103(9 July 2007) TCG Mobile Trusted Module Specification version  1.0 Revision 1(12 June 2007) TCG Mobile Reference Architecture Specification v ersion1.0 Revision1(12 June 2007)

 しかし、従来提案されている技術では、 16に示すように、端末のソフトウェアを構 するモジュール群が複数の提供者(ステーク ルダー)から提供され、それらのモジュール 群に対してTCGのセキュアブートを行うように 構成された端末において、1つのモジュール 新しいモジュールに更新する場合に課題が る。

 例えば、従来提案されている技術によれ 、セキュアブートでは、第2の提供者(第2ス ークホルダー)が提供するモジュール#21が、 第1の提供者(第1ステークホルダー)が提供す モジュール群であるモジュール#11、#12、#13 利用する場合には、モジュール#11、#12、#13 事前に起動されている必要があるため、モ ュール#21を起動する前に、正規のモジュー #11、#12、#13が起動されていることを次のよ な方法で検証する。

 この場合、第2の提供者がモジュール#21と 共に提供する証明書#21の中には、モジュール #21のハッシュ値と共に、第1のモジュール群 それぞれのモジュールのハッシュ値を累積 にハッシュ演算した場合の累積ハッシュ値 含まれる。

 モジュール#21を起動する前に、証明書#21 含まれるモジュール#21のハッシュ値と実際 モジュール#21から算出したハッシュ値とを 合することで、モジュール#21が改ざんされ いないことを検証すると同時に、起動され いるモジュールの累積ハッシュ値を格納す レジスタであるPCR(Platform Configuration Register )と証明書#21に含まれる累積ハッシュ値とを 合することで、モジュール#21を起動する前 正規のモジュール#11、#12、#13が起動されて ることを検証する。

 しかし、第2の提供者が提供する証明書#21 が、第1の提供者が提供する第1のモジュール に依存することになるため、仮に、モジュ ル#13を新しいモジュールに更新する場合に 、モジュール#13に対応する証明書#13と共に 明書#21も同時に更新する必要がある。これ 実現するためには、第1のモジュール群のモ ジュールを更新する度に、第1の提供者がモ ュールの更新情報を事前に第2の提供者側に 知して、証明書#21も同時に更新するメカニ ムが必要となり、提供者間の独立性が損な れるという問題がある。具体的には、第1の 提供者側が緊急にモジュール#13を新しいモジ ュール#13に更新する必要があっても、第2の 供者側で新しいモジュール#13に対応する証 書#21の準備ができるまでは、モジュール#13 更新することができず、緊急を要する更新 は対応できないといった問題がある。また 第2の提供者側は、第1の提供者が提供するモ ジュール群の更新のために、証明書#21を生成 して、それを配信するというコストを払う必 要があるといった問題がある。

 本発明は、こうした従来の問題点を解決 るものであり、端末のソフトウェアが、複 の提供者が提供するモジュール群から構成 れる場合において、提供者間の独立性を維 した上で、モジュール群間を跨るセキュア ートを継続的に行うことが可能な情報処理 置、情報処理方法、これらを実現するコン ュータプログラム及び集積回路を提供する とを目的としている。

 上記課題を解決するために、本発明の一 施態様である情報処理装置は、第1ステーク ホルダーに対応する第1の複数のモジュール 、前記第1の複数のモジュールの各モジュー について、前記各モジュールのハッシュ値 ら生成される第1照合値及び前記第1の複数 モジュールに含まれるモジュールのハッシ 値を累積した場合の累積値から生成される 1累積照合値を含む証明書とを格納する第1記 憶部と、第2ステークホルダーに対応し前記 1の複数のモジュールと依存関係にある第2の 複数のモジュールと、前記第2の複数のモジ ールの各モジュールについて、前記各モジ ールのハッシュ値から生成される第2照合値 び前記第2の複数のモジュールに含まれるモ ジュールのハッシュ値を累積した場合の累積 値から生成される第2累積照合値を含む証明 とを格納する第2記憶部と、前記第1の複数の モジュールの各モジュールの実際のハッシュ 値と前記第1照合値とを比較して、前記第1の 数のモジュールの正当性を検証し、前記検 された第1の複数のモジュールを起動する第 1制御部と、前記第1の複数のモジュールの正 性が検証された場合、前記第2の複数のモジ ュールの各モジュールの実際のハッシュ値と 前記第2照合値とを比較して、前記第2の複数 モジュールの正当性を検証し、前記検証さ た第2の複数のモジュールを起動する第2制 部と、前記第2の複数のモジュールの先頭モ ュールの正当性を検証する第3照合値及び前 記第1の複数のモジュールに含まれるモジュ ルのハッシュ値を累積した場合の累積値か 生成される第3累積照合値を含む連携証明書 保持部と、を具備し、前記第1制御部は、前 記第1の複数のモジュールを更新した場合、 新後の第1の複数のモジュールの証明書につ て前記証明書の署名を検証すると、前記検 された証明書の中の第1照合値を用いて前記 連携証明書に含まれる第3累積照合値を更新 、前記第1制御部は、前記第1の複数のモジュ ールを起動した後、前記連携証明書に含まれ る第3累積照合値を用いて正当な第1の複数の ジュールが起動していることを検証し、か 、前記第2の複数のモジュールの先頭モジュ ールの正当性を、前記連携証明書に含まれる 第3照合値を用いて検証した場合に、前記第2 複数のモジュールの先頭モジュールを起動 、前記第2制御部は、前記第2の複数のモジ ールの正当性を検証して、前記第2の複数の ジュールを起動させることを特徴とする。

 上記態様によると、端末のソフトウェア 、複数のソフトウェアモジュールから構成 れる場合において、ソフトウェアモジュー を古いソフトウェアモジュールにすりかえ といった不正行為を防止し、各ソフトウェ モジュールの更新処理を個別に行うことが 能となる。

 また、証明書の更新の際に電源断が起こり ソフトウェアモジュールのコードイメージ 証明書間に不整合が生じてしまった場合で 、セキュアブート処理時に構成情報累積部 代替仮想構成情報累積部の両方を参照して 証をすることで、古いソフトウェアモジュ ルを実行することなく、セキュアブート処 を完了させ、証明書の更新処理を再開する とが出来る。

本発明の実施の形態1に係る端末の構成 を示すブロック図 図2(a)は、本発明の実施の形態1に係る 末の第1のセキュリティモジュールの構成を すブロック図、図2(b)は、本発明の実施の形 態1に係る端末の第2のセキュリティモジュー の構成を示すブロック図 図3(a)は、本発明の実施の形態1に係る 末の第1の記憶部に格納されるモジュールと 明書の一例を示す図、図3(b)は、本発明の実 施の形態1に係る端末の第2の記憶部に格納さ るモジュールと証明書の一例を示す図、図3 (c)は、本発明の実施の形態1に係る端末の連 証明書記憶部に格納される連携証明書の一 を示す図、図3(d)は、本発明の実施の形態2に 係る端末の連携証明書記憶部に格納される連 携証明書の一例を示す図 本発明の実施の形態1におけるソフトウ ェアモジュールの証明書のデータ構造を示す 図 本発明の実施の形態1における連携証明 書のデータ構造を示す図 本発明の実施の形態1におけるセキュア ブート処理のフロー図 本発明の実施の形態1における連携証明 書の更新処理の途中までのフロー図 本発明の実施の形態1における連携証明 書の更新処理のフロー図であり、図7の続き 処理を示す 本発明の実施の形態1における連携証明 書の依存リストの一例を示す図 本発明の実施の形態2におけるセキュ ブート及びソフトウェアモジュールの更新 説明するための模式図 本発明の実施の形態2におけるソフト ェアモジュールの証明書のデータ構造を示 図 本発明の実施の形態2における連携証 書のデータ構造を示す図 本発明の実施の形態2におけるセキュ ブート処理のフロー図 本発明の実施の形態2における連携証 書の更新処理の途中までのフロー図 本発明の実施の形態2における連携証 書の更新処理のフロー図であり、図14の続き の処理を示す 従来技術に基づくセキュアブート処理 の一例を説明する図

 請求項1記載の態様の情報処理装置は、第 1ステークホルダーに対応する第1の複数のモ ュールと、前記第1の複数のモジュールの各 モジュールについて、前記各モジュールのハ ッシュ値から生成される第1照合値及び前記 1の複数のモジュールに含まれるモジュール ハッシュ値を累積した場合の累積値から生 される第1累積照合値を含む証明書とを格納 する第1記憶部と、第2ステークホルダーに対 し前記第1の複数のモジュールと依存関係に ある第2の複数のモジュールと、前記第2の複 のモジュールの各モジュールについて、前 各モジュールのハッシュ値から生成される 2照合値及び前記第2の複数のモジュールに まれるモジュールのハッシュ値を累積した 合の累積値から生成される第2累積照合値を む証明書とを格納する第2記憶部と、前記第 1の複数のモジュールの各モジュールの実際 ハッシュ値と前記第1照合値とを比較して、 記第1の複数のモジュールの正当性を検証し 、前記検証された第1の複数のモジュールを 動する第1制御部と、前記第1の複数のモジュ ールの正当性が検証された場合、前記第2の 数のモジュールの各モジュールの実際のハ シュ値と前記第2照合値とを比較して、前記 2の複数のモジュールの正当性を検証し、前 記検証された第2の複数のモジュールを起動 る第2制御部と、前記第2の複数のモジュール の先頭モジュールの正当性を検証する第3照 値及び前記第1の複数のモジュールに含まれ モジュールのハッシュ値を累積した場合の 積値から生成される第3累積照合値を含む連 携証明書の保持部と、を具備し、前記第1制 部は、前記第1の複数のモジュールを更新し 場合、更新後の第1の複数のモジュールの証 明書について前記証明書の署名を検証すると 、前記検証された証明書の中の第1照合値を いて前記連携証明書に含まれる第3累積照合 を更新し、前記第1制御部は、前記第1の複 のモジュールを起動した後、前記連携証明 に含まれる第3累積照合値を用いて正当な第1 の複数のモジュールが起動していることを検 証し、かつ、前記第2の複数のモジュールの 頭モジュールの正当性を、前記連携証明書 含まれる第3照合値を用いて検証した場合に 前記第2制御部を起動して前記第2の複数の ジュールの正当性を検証させることを特徴 する。

 本態様によると、前記第2の複数のモジュ ールの先頭モジュールの正当性を検証する第 3照合値及び前記第1の複数のモジュールに含 れるモジュールのハッシュ値を累積した場 の累積値から生成される第3累積照合値を含 む連携証明書を保持する。

 また、前記第1制御部は、前記第1の複数 モジュールを更新した場合、更新後の第1の 数のモジュールの証明書について前記証明 の署名を検証すると、前記検証された証明 の中の第1照合値を用いて前記連携証明書に 含まれる第3累積照合値を更新し、一方、前 第1制御部は、前記第1の複数のモジュールを 起動した後、前記連携証明書に含まれる第3 積照合値を用いて正当な第1の複数のモジュ ルが起動していることを検証し、かつ、前 第2の複数のモジュールの先頭モジュールの 正当性を、前記連携証明書に含まれる第3照 値を用いて検証した場合に、前記第2の複数 モジュールの先頭モジュールを起動し、前 第2制御部は、前記第2の複数のモジュール 正当性を検証して、前記第2の複数のモジュ ルを起動するものである。

 これにより、前記第1の複数のモジュール の正当性が検証されたことを前提に、前記第 2の複数のモジュールの正当性を検証する場 において、前記第1の複数のモジュールの更 があった場合に、前記第1の複数のモジュー ルの更新があったために変更が必要となる第 2制御部での処理を前記第1制御部で行う。そ ため、前記第1の複数のモジュールの更新が あった場合でも、前記第2制御部においては 記第1の複数のモジュールの更新前と同一の 理を行うだけよく、前記第1の複数のモジュ ールの更新に連動して処理を変更する負荷を 回避できる。

 即ち、従来では、前記第2の複数のモジュ ールの検証は前記第1の複数のモジュールに 存するので、前記第1の複数のモジュールの 新があった場合、前記第2の複数のモジュー ルの先頭モジュールの証明書に含まれる、前 記第2の複数のモジュールの先頭モジュール 正当性を検証する第3照合値及び前記第1の複 数のモジュールに含まれるモジュールのハッ シュ値を累積した場合の累積値から生成され る第3累積照合値を、前記第2制御部が更新す 必要があった。換言すれば、従来では、前 第1の複数のモジュールの更新があった場合 に、前記第2の複数のモジュールの先頭モジ ールに対応する証明書を前記第2制御部が更 するためには、前記第2の複数のモジュール の検証は前記第1の複数のモジュールに依存 るので、更新後の前記第1の複数のモジュー に含まれるモジュールのハッシュ値を累積 た場合の累積値から生成される第3累積照合 値を、前記第1制御部から前記第2制御部に通 する必要があった。従って、更新後の前記 3累積照合値を前記第2制御部が有しない場 は、前記第2制御部は前記第1の複数のモジュ ールを依存した状態での前記第2の複数のモ ュールの検証ができなかった。

 しかし、本態様によると、前記第2の複数 のモジュールの先頭モジュールの正当性を検 証する第3照合値及び前記第1の複数のモジュ ルに含まれるモジュールのハッシュ値を累 した場合の累積値から生成される第3累積照 合値を含む連携証明書を別途設け、この連携 証明書を用いて前記第1制御部が、正当な第1 複数のモジュールが起動していることを検 した上で、前記第2の複数のモジュールの先 頭モジュールの正当性を検証する。

 一方、前記第2制御部では、前記第1の複 のモジュールの更新があった場合でも、正 な第1の複数のモジュールが起動しているこ 検証せずに、前記第1の複数のモジュールの 更新前と同一の処理を行って、前記第2の複 のモジュールの正当性を検証する。

 この場合、前記第2制御部では、前記第1 複数のモジュールの更新があった場合でも 正当な第1の複数のモジュールが起動してい こと検証しないため、前記第1の複数のモジ ュールと前記第2の複数のモジュールとは独 性を確保することができ、連携証明書を用 て前記第1制御部が、前記第1の複数のモジュ ールの更新があった場合でも、正当な第1の 数のモジュールが起動していること検証し 上で、前記第2の複数のモジュールの先頭モ ュールの正当性を検証するため、連携証明 を媒体として前記第1の複数のモジュールと 前記第2の複数のモジュールとは連携される とになる。

 従って、前記1の複数のモジュールの更新 後も、前記第2の複数のモジュールを前記1の 数のモジュールに依存させつつ、前記第1の 複数のモジュールの更新に連動して前記第2 御部における処理を変更する負荷を回避で る。

 請求項2記載の態様の情報処理装置は、さ らに、前記第2制御部によって管理され起動 みの前記第2の複数のモジュールに含まれる ジュールのハッシュ値を累積した場合の累 値を格納する第3記憶部を有し、前記連携証 明書は、さらに、前記第2の複数のモジュー が起動されていないことを示す第4累積値を み、前記第1制御部は、さらに、第2の複数 モジュールの先頭モジュールの正当性を検 すると、前記第2制御部から前記第3記憶部に 格納された第2の複数のモジュールの検証値 取得し、この取得した検証値と前記連携証 書に含まれる第4累積値とを比較して前記第2 の複数のモジュールを起動する前に前記第2 御部が起動したモジュールがないことを検 した場合、前記第2の複数のモジュールの先 モジュールを起動し、前記第2制御部は、前 記第2の複数のモジュールの正当性を検証し 、前記第2の複数のモジュールを起動するこ を特徴とする。

 本態様によると、前記第2制御部によって 管理され前記第2の複数のモジュールの検証 を格納する第3記憶部を有し、前記連携証明 は、さらに前記第2の複数のモジュールが起 動されていないことを示す第4累積値を含み 前記第1制御部は、前記第2制御部から前記第 3記憶部に格納された第2の複数のモジュール 検証値を取得し、この取得した検証値と前 第2の所定の照合値を比較して、前記第2制 部が前記第2の複数のモジュールを起動する に前記第2制御部が起動したモジュールがな いことを検証した場合、前記第2制御部に対 て前記第2の複数のモジュールの正当性を検 させる。

 即ち、前記第2制御部が前記第2の複数の ジュールを起動する前に前記第2制御部が起 したモジュールがない場合には、前記第3記 憶部には、前記第2の複数のモジュールの検 値として例えばゼロが格納されている。そ ため、前記第2の複数のモジュールが起動さ ていないことを示す第4累積値、即ち、例え ばゼロと比較すると、両者は一致して、前記 第2制御部が前記第2の複数のモジュールを起 する前に前記第2制御部が起動したモジュー ルがないことを前記第1制御部で検証できる

 これにより、前記第1制御部が前記第2の 数のモジュールの先頭モジュールの正当性 検証するだけではなく、前記先頭モジュー を含む第2の複数のモジュールを起動する前 前記第2制御部によって起動されたモジュー ルがないことを確認して前記第2制御部を起 させる。そのため、前記第2の複数のモジュ ルを起動させる前に前記第2制御部において ウィルス等が起動していないことを前記第1 御部が確認した上で前記第1制御部は前記第2 制御部を起動させることができる。その結果 、前記第1制御部が前記第2制御部の安全性を 認した上で前記第2制御部を起動させること ができる。

 請求項3記載の態様の情報処理装置は、さ らに、前記保持部は、前記第1記憶部に含ま ることを特徴とする。

 本態様によると、前記連携証明書を格納 るために必要な記憶領域を前記第1記憶部の 記憶領域に中に確保することにより、情報処 理装置において連携証明書を格納する記憶領 域を確保するための分の新たなコストアップ を回避できる。

 請求項4記載の態様の情報処理装置は、さ らに、前記第1制御部は、前記第2の複数の先 モジュールがのモジュールを更新された場 、前記連携証明書に含まれる第3照合値を更 新することを特徴とする。

 本態様によると、前記第1制御部は、前記 第2の複数のモジュールを更新した場合、前 連携証明書に含まれる第3照合値を更新する とにより、前記第1制御部が更新後の第3照 値を格納した連携証明書を用いて、前記第2 複数のモジュールの正当性を検証するので 前記第1の複数のモジュールに依存する第2 複数のモジュールの正当性を検証するため 用いる第3照合値を、前記第2制御部が更新す る負荷を回避できる。

 請求項5記載の態様の情報処理装置は、さら に、前記第2制御部は、前記第2の複数のモジ ールの先頭モジュールを更新した場合、前 第1制御部にその旨を通知し、第1制御部は 前記通知を受信すると、前記連携証明書の 記第3照合値を前記更新された第2の複数のモ ジュールの先頭モジュールの第2照合値に更 することを特徴とする。
本態様によると、前記第2の複数のモジュー の更新があった場合、前記第2制御部は、第1 制御部に通知し、前記通知を受信した第1制 部は、前記連携証明書の前記第3照合値を前 更新された第2の複数のモジュールの先頭モ ジュールの第2照合値に更新するので、前記 2の複数の先頭モジュールの更新後も、前記 1制御部は前記第2の複数のモジュールの先 モジュールの正当性を適正に検証できる。

 請求項6記載の態様の情報処理方法は、さ らに、第1ステークホルダーに対応する第1の 数のモジュールと、前記第1の複数のモジュ ールの各モジュールについて、前記各モジュ ールのハッシュ値から生成される第1照合値 び前記第1の複数のモジュールに含まれるモ ュールのハッシュ値を累積した場合の累積 から生成される第1累積照合値を含む証明書 とを格納し、第2ステークホルダーに対応し 記第1の複数のモジュールと依存関係にある 2の複数のモジュールと、前記第2の複数の ジュールの各モジュールについて、前記各 ジュールのハッシュ値から生成される第2照 値及び前記第2の複数のモジュールに含まれ るモジュールのハッシュ値を累積した場合の 累積値から生成される第2累積照合値を含む 明書とを格納し、前記第1の複数のモジュー の各モジュールの実際のハッシュ値と前記 1照合値とを比較して、前記第1の複数のモ ュールの正当性を検証し、前記検証された 1の複数のモジュールを起動し、前記第1の複 数のモジュールの正当性が検証された場合、 前記第2の複数のモジュールの各モジュール 実際のハッシュ値と前記第2照合値とを比較 て、前記第2の複数のモジュールの正当性を 検証し、前記検証された第2の複数のモジュ ルを起動する情報処理方法であって、前記 2の複数のモジュールの先頭モジュールの正 性を検証する第3照合値及び前記第1の複数 モジュールに含まれるモジュールのハッシ 値を累積した場合の累積値から生成される 3累積照合値を含む連携証明書の保持し、前 第1の複数のモジュールを更新した場合、更 新後の第1の複数のモジュールの証明書につ て前記証明書の署名を検証すると、前記検 された証明書の中の第1照合値を用いて前記 携証明書に含まれる第3累積照合値を更新し 、前記第1の複数のモジュールを起動した後 前記連携証明書に含まれる第3累積照合値を いて正当な第1の複数のモジュールが起動し ていることを検証し、かつ、前記第2の複数 モジュールの先頭モジュールの正当性を、 記連携証明書に含まれる第3照合値を用いて 証した場合に、前記第2の複数のモジュール の正当性を検証して、前記第2の複数のモジ ールを起動させることを特徴とする。

 請求項7記載の態様のコンピュータプログ ラムは、コンピュータに対し、第1ステーク ルダーに対応する第1の複数のモジュールと 前記第1の複数のモジュールの各モジュール について、前記各モジュールのハッシュ値か ら生成される第1照合値及び前記第1の複数の ジュールに含まれるモジュールのハッシュ を累積した場合の累積値から生成される第1 累積照合値を含む証明書とを第1記憶部に格 する第1処理と、第2ステークホルダーに対応 し前記第1の複数のモジュールと依存関係に る第2の複数のモジュールと、前記第2の複数 のモジュールの各モジュールについて、前記 各モジュールのハッシュ値から生成される第 2照合値及び前記第2の複数のモジュールに含 れるモジュールのハッシュ値を累積した場 の累積値から生成される第2累積照合値を含 む証明書とを第2記憶部に格納する第2処理と 前記第1の複数のモジュールの各モジュール の実際のハッシュ値と前記第1照合値とを比 して、前記第1の複数のモジュールの正当性 検証し、前記検証された第1の複数のモジュ ールを起動する第3処理と、前記第1の複数の ジュールの正当性が検証された場合、前記 2の複数のモジュールの各モジュールの実際 のハッシュ値と前記第2照合値とを比較して 前記第2の複数のモジュールの正当性を検証 、前記検証された第2の複数のモジュールを 起動する第4処理と、を実行させるコンピュ タプログラムであって、前記第2の複数のモ ュールの先頭モジュールの正当性を検証す 第3照合値及び前記第1の複数のモジュール 含まれるモジュールのハッシュ値を累積し 場合の累積値から生成される第3累積照合値 含む連携証明書を保持部に格納する第5処理 を実行させ、前記第3処理は、前記第1の複数 モジュールを更新した場合、更新後の第1の 複数のモジュールの証明書について前記証明 書の署名を検証すると、前記検証された証明 書の中の第1照合値を用いて前記連携証明書 含まれる第3累積照合値を更新し、前記第3処 理は、前記第1の複数のモジュールを起動し 後、前記連携証明書に含まれる第3累積照合 を用いて正当な第1の複数のモジュールが起 動していることを検証し、かつ、前記第2の 数のモジュールの先頭モジュールの正当性 、前記連携証明書に含まれる第3照合値を用 て検証した場合に、前記第4処理を起動して 前記第2の複数のモジュールの正当性を検証 て、前記第2の複数のモジュールを起動させ ことを特徴とする。

 請求項8記載の態様の集積回路は、第1ス ークホルダーに対応する第1の複数のモジュ ルと、前記第1の複数のモジュールの各モジ ュールについて、前記各モジュールのハッシ ュ値から生成される第1照合値及び前記第1の 数のモジュールに含まれるモジュールのハ シュ値を累積した場合の累積値から生成さ る第1累積照合値を含む証明書とを格納する 第1記憶部と、第2ステークホルダーに対応し 記第1の複数のモジュールと依存関係にある 第2の複数のモジュールと、前記第2の複数の ジュールの各モジュールについて、前記各 ジュールのハッシュ値から生成される第2照 合値及び前記第2の複数のモジュールに含ま るモジュールのハッシュ値を累積した場合 累積値から生成される第2累積照合値を含む 明書とを格納する第2記憶部と、前記第1の 数のモジュールの各モジュールの実際のハ シュ値と前記第1照合値とを比較して、前記 1の複数のモジュールの正当性を検証し、前 記検証された第1の複数のモジュールを起動 る第1制御部と、前記第1の複数のモジュール の正当性が検証された場合、前記第2の複数 モジュールの各モジュールの実際のハッシ 値と前記第2照合値とを比較して、前記第2の 複数のモジュールの正当性を検証し、前記検 証された第2の複数のモジュールを起動する 2制御部と、前記第2の複数のモジュールの先 頭モジュールの正当性を検証する第3照合値 び前記第1の複数のモジュールに含まれるモ ュールのハッシュ値を累積した場合の累積 から生成される第3累積照合値を含む連携証 明書の保持部と、を具備した集積回路であっ て、前記第1制御部は、前記第1の複数のモジ ールを更新した場合、更新後の第1の複数の モジュールの証明書について前記証明書の署 名を検証すると、前記検証された証明書の中 の第1照合値を用いて前記連携証明書に含ま る第3累積照合値を更新し、前記第1制御部は 、前記第1の複数のモジュールを起動した後 前記連携証明書に含まれる第3累積照合値を いて正当な第1の複数のモジュールが起動し ていることを検証し、かつ、前記第2の複数 モジュールの先頭モジュールの正当性を、 記連携証明書に含まれる第3照合値を用いて 証した場合に、前記第2の複数のモジュール の先頭モジュールを起動し、前記第2制御部 、前記第2の複数のモジュールの正当性を検 して、前記第2の複数のモジュールを起動す ることを特徴とする。

 (第1の実施形態)
 本発明の第1の実施形態における端末100の構 成について説明する。

 端末100は、図1に示すように、CPU101と、第 1の提供者(第1のステークホルダー)から提供 れるソフトウェアモジュールに関する処理 行う第1の情報処理部110と、第2の提供者(第1 ステークホルダー)から提供されるソフトウ ェアモジュールに関する処理を行う第2の情 処理部120と、第1の情報処理部110のセキュア ートと第2の情報処理部120のセキュアブート とを繋ぐセキュアブート処理に用いられる連 携証明書の保持・更新を行う連携処理部130と から構成される。

 ここで、第1の情報処理部110のセキュアブ ートと第2の情報処理部120のセキュアブート を繋ぐセキュアブート処理とは、第1の情報 理部110のセキュアブート処理から第2の情報 処理部120のセキュアブート処理に移行する際 に行う処理である。

 第1の情報処理部110は、第1の提供者が提 するソフトウェアのモジュール群である第1 モジュール群を格納する第1の記憶部111と、 第1のモジュール群のセキュアブート処理を 御する第1のセキュアブート制御部112と、耐 ンパ性を備える第1のセキュリティモジュー ル113と、第1のモジュール群のモジュールを 1の提供者のサーバ(不図示)からネットワー を通じてダウンロードし、第1の記憶部111に 持されているモジュールを更新する第1のダ ウンロード更新部114とから構成される。

 第2の情報処理部110は、第2の提供者が提 するソフトウェアのモジュール群である第2 モジュール群を格納する第2の記憶部121と、 第2のモジュール群のセキュアブート処理を 御する第2のセキュアブート制御部122と、耐 ンパ性を備える第2のセキュリティモジュー ル123と、第2のモジュール群のモジュールを 2の提供者のサーバ(不図示)からネットワー を通じてダウンロードし、第2の記憶部121に 持されているモジュールを更新する第2のダ ウンロード更新部124とから構成される。

 連携処理部130は、連携証明書を格納する 携証明書記憶部131と、連携証明書を更新す 連携証明書更新部135とから構成される。

 第1のセキュアブート制御部112と第2のセ ュアブート制御部122、第1のダウンロード更 部114と第2のダウンロード更新部124、連携証 明書更新部135は、一般的にはCPU101が実行する ソフトウェアによって実現されるが、一部も しくは全部をハードウェアによって実現され てもよい。

 また、第1のセキュリティモジュール113と 第2のセキュリティモジュール123は、耐タン 性を備えるハードウェアまたはCPU101が実行 る耐タンパ化されたソフトウェアによって 現される。

 第1の記憶部111と第2の記憶部121と連携証 書記憶部131は、具体的には不揮発性メモリ ハードディスクその他の記憶装置によって 現される。

 さらに、第1のセキュリティモジュール113は 、図2(a)に示すように、CPU101が実際に実行す ソフトウェアモジュールの構成を示す構成 報を保持する構成情報累積部211と、ソフト ェアモジュールの証明書の有効性を検証す 証明書検証部212と、構成情報累積部211が保 する構成情報を証明書の中の構成照合値と 合する照合部213と、ソフトウェアモジュー の有効なバージョンの下限を示すカウンタ を保持するカウンタ部214と、データの暗復 及び署名生成や署名検証を行う暗復号部215 、を備える。また、構成情報累積部211は、 1の情報処理部で起動されたソフトウェアモ ュールのハッシュ値の累積ハッシュ演算を なう累積部216と、累積部216が算出した累積 (以下、累積演算の結果をこのように呼ぶ) 保持する構成情報保持部217と、を備えてい 。ここで構成情報保持部217は、TCGにおける キュリティモジュールであるTPMのPCR(Platform  Configuration Register)に相当するものであり、構 成情報保持部217に保持される値は、第1の情 処理部で起動されているモジュールの構成 示す。
構成情報保持部217は、複数のレジスタから構 成され、累積部216がどのレジスタに対して累 積ハッシュ演算を行うかはレジスタ番号によ って指定される。

 暗復号部215は、データの暗復号処理や署 生成や署名検証を行うための複数の鍵デー を保持している。また、第1の記憶部には、 暗復号部215が保持している鍵データで暗号化 された別の鍵データが格納されており(不図 )、その暗号化された鍵データを、第1のセキ ュリティモジュールにロードして、暗復号部 215が保持している鍵データで復号することで 、暗復号部215はその復号した鍵データを用い て暗復号処理や署名生成や署名検証を行う。

 累積部216は、構成情報保持部217の1つのレ ジスタが保持する値のバイト列とソフトウェ アモジュールのハッシュ演算の結果のバイト 列とを連結し、さらに連結したバイト列に対 してハッシュ演算を行い、その結果をそのレ ジスタに再格納する。

 第2のセキュリティモジュール123は、第1の キュリティモジュール113と同様の構成を備 ており、図2(b)に示すように、CPU101が実際に 行するソフトウェアモジュールの構成を示 構成情報を保持する構成情報累積部221と、 フトウェアモジュールの証明書の有効性を 証する証明書検証部222と、構成情報累積部2 21が保持する構成情報を証明書の中の構成照 値と照合する照合部223と、ソフトウェアモ ュールの有効なバージョンの下限を示すカ ンタ値を保持するカウンタ部224と、データ 暗復号及び署名生成や署名検証を行う暗復 部225と、を備える。また、構成情報累積部2 21は、第2の情報処理部で起動されたソフトウ ェアモジュールのハッシュ値の累積ハッシュ 演算を行なう累積部226と、複数のレジスタか ら構成され、累積部226が算出した累積値(以 、累積演算の結果をこのように呼ぶ)を保持 る構成情報保持部227と、を備えている。こ で構成情報保持部227は、TCGにおけるセキュ ティモジュールであるTPMのPCR(Platform Configur ation Register)に相当するものであり、構成情 保持部227に保持される値は、第2の情報処理 で起動されているモジュールの構成を示す
構成情報保持部227は、複数のレジスタから構 成され、累積部226がどのレジスタに対して累 積ハッシュ演算を行うかはレジスタ番号によ って指定される。

 暗復号部225は、データの暗復号処理や署 生成や署名検証を行うための複数の鍵デー を保持している。また、第2の記憶部には、 暗復号部225が保持している鍵データで暗号化 された別の鍵データが格納されており(不図 )、その暗号化された鍵データを、第2のセキ ュリティモジュールにロードして、暗復号部 225が保持している鍵データで復号することで 、暗復号部225はその復号した鍵データを用い て暗復号処理や署名生成や署名検証を行う。

 累積部226は、構成情報保持部227の1つのレ ジスタが保持する値のバイト列とソフトウェ アモジュールのハッシュ演算の結果のバイト 列とを連結し、さらに連結したバイト列に対 してハッシュ演算を行い、その結果をそのレ ジスタに再格納する。

 図3(a)は、第1の記憶部に格納されるモジ ールと証明書の一例を示し、この場合、第1 モジュール群は、モジュール#11、モジュー #12、モジュール#13の3つのモジュールから構 成され、モジュール#11、モジュール#12、モジ ュール#13にそれぞれ対応する証明書#11、証明 書#12、証明書#13が保持されている。

 第1のセキュアブート制御部112は、証明書 #11、証明書#12、証明書#13を用いて、モジュー ル#11、モジュール#12、モジュール#13に関して 、非特許文献4及び非特許文献5に示されてい 方式に基づくセキュアブートを行い、モジ ール#11、モジュール#12、モジュール#13の順 でモジュールを起動する。

 図3(b)は、第2の記憶部に格納されるモジ ールと証明書の一例を示し、この場合、第2 モジュール群は、モジュール#21、モジュー #22、モジュール#23の3つのモジュールから構 成され、モジュール#21、モジュール#22、モジ ュール#23にそれぞれ対応する証明書#21、証明 書#22、証明書#23が保持されている。

 第2のセキュアブート制御部122は、証明書 #21、証明書#22、証明書#23を用いて、モジュー ル#21、モジュール#22、モジュール#23に関して 、非特許文献4及び非特許文献5に示されてい 方式に基づくセキュアブートを行い、モジ ール#21、モジュール#22、モジュール#23の順 でモジュールを起動する。

 図4は、これらのソフトウェアモジュール に対応する証明書のデータ構造を示しており 、証明書400は、その証明書が対応付けられた ソフトウェアモジュールを識別する情報であ るラベル401と、ソフトウェアモジュールのバ ージョンを示す参照カウンタ値402と、ソフト ウェアモジュールが実行される前の端末100の 状態においてセキュリティモジュールの構成 情報保持部(217、227)に保持されるべき累積ハ シュ値を示す構成照合値403と、ソフトウェ モジュールのダイジェストとしてモジュー のコードイメージをハッシュ演算した場合 値を示すモジュール計測値405と、モジュー 計測値405が示す値を累積ハッシュ演算する 成情報保持部(217、227)のレジスタ番号を指 するレジスタインデックス404と、証明書の 名を検証する鍵を示す検証鍵ID406と、検証鍵 ID406が示す鍵に対応する秘密鍵によるラベル4 01から検証鍵ID406までのデータに対する電子 名407と、から構成される。

 モジュール計測値405は、正当なソフトウ アモジュールのコードイメージのハッシュ であり、実際のソフトウェアモジュールの ードイメージのハッシュ演算の結果と照合 ることで、そのソフトウェアモジュールが ざんされていないことを検証することが可 となる。

 また、セキュリティモジュールのカウン 部は、ソフトウェアモジュールの有効なバ ジョンの下限を示すので、参照カウンタ値4 02は、セキュリティモジュールのカウンタ部 格納されるカウンタ値以上であることを検 することで、リボークされた古いモジュー の証明書ではないこと、つまり、そのモジ ールが有効なソフトウェアモジュールであ ことを検証することが可能となる。

 また、構成照合値403は、セキュリティモジ ールの構成情報保持部に格納される累積ハ シュ値と照合することで、ソフトウェアモ ュールを実行する前の状態として正しい状 (その前に実行されているソフトウェアモジ ュールが有効なソフトウェアモジュールであ り、正しい順番で実行されている)であるこ を検証するために用いられる。
また、電子署名507は、公開鍵暗号方式の署名 鍵による電子署名であり、署名鍵は、1024ビ ト以上の鍵長の鍵であることが望ましい。

 図3(c)は、連携証明書記憶部に格納される 連携証明書の一例を示し、この場合、第1の ジュール群のセキュアブートと第2のモジュ ル群のセキュアブートを繋ぐセキュアブー に用いられる1つの連携証明書が保持されて いる。具体的には、第1のモジュール群のモ ュール#13を起動した後に、第2のモジュール のモジュール#21を起動する際のセキュアブ トに用いられる連携証明書が保持されてい 。

 図5は、この連携証明書のデータ構造を示 しており、連携証明書500は、その証明書が対 応付けられたソフトウェアモジュールを識別 する情報であるラベル501と、ソフトウェアモ ジュールのバージョンを示す参照カウンタ値 502と、ソフトウェアモジュールが実行される 前の端末100の状態において、第1のセキュリ ィモジュール113の構成情報保持部に保持さ るべき累積ハッシュ値を示す第1の構成照合 503と、第2のセキュリティモジュール123の構 成情報保持部に保持されるべき累積ハッシュ 値を示す第2の構成照合値504と、第2のモジュ ル群の先頭のモジュールのコードイメージ ハッシュした場合の値を示すモジュール計 値505と、第2のモジュール群が依存する第1 モジュール群の中のモジュールを示す依存 スト507と、証明書の署名を検証する鍵を示 検証鍵ID506と、検証鍵ID506が示す鍵に対応す 秘密鍵によるラベル501から検証鍵ID506まで データに対する電子署名508と、から構成さ る。

 この場合、ラベル501は、第2のモジュール 群のモジュール#21を識別するラベルであり、 モジュール計測値505は、正当なモジュール#21 のコードイメージのハッシュ値であり、実際 のモジュール#21のコードイメージのハッシュ 演算の結果と照合することで、モジュール#21 が改ざんされていないことを検証することが 可能となる。

 また、参照カウンタ値502は、セキュリテ モジュールのカウンタ部に格納されるカウ タ値以上であることを検証することで、連 証明書がリボークされた古い連携証明書で ないことを検証することが可能となる。

 また、第1の構成照合値503は、第1のセキ リティモジュールの構成情報保持部に格納 れる累積値と照合することで、モジュール#2 1を実行する前の状態として正しい状態(その に実行されているモジュール#11、#12、#13が 効なソフトウェアモジュールであり、正し 順番で実行されている)であることを検証す るために用いられる。

 また、第2の構成照合値504は、第2のセキ リティモジュールの構成情報保持部に格納 れる累積値と照合することで、モジュール#2 1を実行する前の状態として正しい状態(第2の モジュール群のモジュールが起動されていな い状態)であることを検証するために用いら る。

 また、依存リスト507は、図9に示すように 、連携証明書更新部135が第1の構成照合値503 算出する際に行う累積ハッシュ演算の順番 、第2のモジュール群が依存するモジュール 証明書のラベルと、が示されている。図9の 場合には、モジュール#21が、証明書#11(MODULE11 )と、証明書#12(MODULE12)と、証明書#13(MODULE13)と 、に依存し、証明書#11、証明書#12、証明書#13 の順番で、それぞれのモジュール計測値を用 いて累積ハッシュ演算を行うことで第1の構 照合値503が算出されることを示している。

 また、電子署名508は、公開鍵暗号方式の 名鍵による電子署名であり、署名鍵は、1024 ビット以上の鍵長の鍵であることが望ましい 。

 次に、図10は、第1の記憶部に図3(a)に示す モジュールと証明書が、第2の記憶部に図3(b) 示すモジュールと証明書がそれぞれ格納さ る場合の端末100におけるセキュアブート及 ソフトウェアモジュールの更新を模式的に している。

 端末100におけるセキュアブートでは、ま 、第1のセキュアブート制御部112が証明書#11 、証明書#12、証明書#13を用いてモジュール#11 、モジュール#12、モジュール#13の順にセキュ アブートを行い、さらに、連携証明書を用い てモジュール#13からモジュール#21へのセキュ アブートを行い、次に、第2のセキュアブー 制御部122が証明書#21、証明書#22、証明書#23 用いてモジュール#21、モジュール#22、モジ ール#23の順にセキュアブートをおこなって モジュール#11、モジュール#12、モジュール#1 3、モジュール#21、モジュール#22、モジュー #23の順での一連のセキュアブートが行われ 。

 また、ソフトウェアモジュールの更新で 、第1のサーバまたは第2のサーバから個別 ソフトウェアモジュールと対応する証明書 が第1のダウンロード更新部114または第2のダ ウンロード更新部124によってダウンロードさ れ、第1の記憶部または第2の記憶部に格納さ ているソフトウェアモジュールと証明書と 更新される。その後、連携証明書更新部135 第1の記憶部または第2の記憶部に格納され いる証明書を参照して連携証明書を更新す 。

 次に、端末100の詳細な動作を、第1の記憶 部に図3(a)に示すモジュールと証明書が、第2 記憶部に図3(b)に示すモジュールと証明書が それぞれ格納される場合について説明する。

 まず、図6を用いて、第1のモジュール群 セキュアブートと第2のモジュール群のセキ アブートとの間に実行することで、この2つ のセキュアブートを一連のセキュアブートと して繋ぐセキュアブートの動作について説明 する。具体的には、第1のモジュール群のモ ュール#11、モジュール#12、モジュール#13を 次起動した後に、第2のモジュール群のモジ ール#21を起動する際に行うセキュアブート 動作について説明する。

 まず、第1のセキュアブート制御部112は、第 1のモジュール群の非特許文献4及び非特許文 5に示されている方式に基づくセキュアブー トを実行し、モジュール#11、モジュール#12、 モジュール#13を順次起動した後、連携証明書 記憶部131から連携証明書500を読み出し(S601)、 第1のセキュリティモジュールに読み出した 携証明書500の検証を要求する検証要求を送 する(S602)。
検証要求を受信した第1のセキュリティモジ ール113は、証明書検証部が受信した連携証 書を検証する(S603)。

 この連携証明書の検証では、まず、第1の セキュリティモジュールが保持する連携証明 書500の検証鍵ID506が示す鍵を用いて電子署名5 08が検証される。

 さらに、連携証明書500の参照カウンタ値5 02が、カウンタ部214が保持するカウンタ値以 であることを判定し、連携証明書500がリボ クされた古い連携証明書ではないことが検 される。

 次に、照合部213が、構成情報保持部217が 持する累積ハッシュ値と連携証明書500の中 第1の構成照合値503とを照合し、モジュール #21を実行する前の状態として第1の情報処理 側が正しい状態(その前に実行されているモ ュール#11、#12、#13が有効なソフトウェアモ ュールであり、正しい順番で実行されてい )であることを検証する。

 照合部213による検証結果を受信した証明 検証部は、この検証結果を第1のセキュアブ ート制御部112に送信する(S604)。

 検証結果を受信した第1のセキュアブート 制御部112は、何れかの検証処理でエラーが検 出された場合にはセキュアブートを中止し、 すべての検証処理の結果が成功であった場合 に、第2の記憶部121から第2のモジュール群の ジュール#21を読み出す(S605)。

 第1のセキュアブート制御部112は、読み出 したモジュール#21のコードイメージのハッシ ュ演算を行い、その結果と連携証明書500のモ ジュール計測値505とを照合することで読み出 したモジュール#21が連携証明書500に対応する 正当なモジュール#21であることを検証する(S6 06)。

 第1のセキュアブート制御部112は、このモ ジュール#21の検証の結果、エラーが検出され た場合には、セキュアブートを中止し、検証 の結果が成功であった場合に、第2のセキュ ティモジュール123に第2の情報処理部側で起 されているソフトウェアモジュールの構成 示す構成情報を要求する構成情報要求を送 する(S607)。

 構成情報要求を受信した第2のセキュリテ ィモジュール123は、暗復号部225が保持する署 名鍵を用いて構成情報保持部227が保持する累 積ハッシュ値に電子署名を施して構成情報を 生成し(S608)、第1のセキュアブート制御部112 送信する(S609)。

 構成情報を受信した第1のセキュアブート 制御部112は、まず、受信した構成情報に施さ れている電子署名を第2のセキュリティモジ ール123の署名鍵に対応する署名検証鍵を用 て検証し、さらに、構成情報が示す累積ハ シュ値と連携証明書500の中の第2の構成照合 とを照合し、モジュール#21を実行する前の 態として第2の情報処理部側が正しい状態( 2のモジュール群のモジュールが起動されて ない状態)であることを検証する(S610)。

 第1のセキュアブート制御部112は、この検証 の結果、エラーが検出された場合には、セキ ュアブートを中止し、検証の結果が成功であ った場合に、モジュール#21を起動し、CPU101が モジュール#21のコードイメージを実行する(S6 11)。
この後、第2のセキュアブート制御部122によ 第2のモジュール群のセキュアブートが開始 れる。

 以上のように、連携証明書を用いて、セ ュアブートを行うことで、2つのセキュアブ ートを一連のセキュアブートとして実行する ことが出来る。

 次に、図7、8を用いて、連携証明書500の 新処理の動作について説明する。

 連携証明書500の更新処理は、第2のモジュ ール群において最初に起動されるべきモジュ ール#21の証明書#21が更新された場合、または 、連携証明書500の依存リスト507に示されてい るモジュール#11、#12、#13の何れかが更新され た場合に開始される。

 証明書#21が更新された場合には、ダウン ード更新部124から連携証明書更新部135に証 書#21が更新されたことが通知され、モジュ ル#11、#12、#13の何れかが更新された場合に 、ダウンロード更新部114から連携証明書更 部135に更新されたことが通知される。

 まず、更新の通知を受信した連携証明書 新部135は、連携証明書記憶部131から連携証 書500を読み出し(S701)、第1のセキュリティモ ジュールに読み出した連携証明書500の検証を 要求する検証要求を送信する(S702)。

 検証要求を受信した第1のセキュリティモ ジュール113は、証明書検証部が受信した連携 証明書を検証する(S703)。

 この連携証明書の検証では、まず、連携 明書500の電子署名508が検証され、さらに、 携証明書500の参照カウンタ値502が、カウン 部214が保持するカウンタ値以上であること 判定し、連携証明書500がリボークされた古 連携証明書ではないことが検証される。

 証明書検証部は、この検証結果を第1のセ キュアブート制御部112に送信する(S704)。

 検証結果を受信した連携証明書更新部135は 検証処理でエラーが検出された場合には、 ラーが検出された連携証明書をもとに連携 明書の更新処理を行うことは出来ないので 新処理を中止し、検証処理の結果が成功で った場合に、第2の記憶部121からモジュール #21に対応する証明書#21を読み出し(S705)、第2 セキュリティモジュールに読み出した証明 #21の検証を要求する検証要求を送信する(S706 )。
検証要求を受信した第2のセキュリティモジ ール123は、証明書検証部が受信した証明書#2 1を検証する(S707)。

 この証明書#21の検証では、まず、証明書# 21の電子署名407が検証され、さらに、証明書# 21の参照カウンタ値402が、カウンタ部224が保 するカウンタ値以上であることを判定し、 明書#21がリボークされた古い証明書ではな ことが検証される。

 証明書検証部は、この検証結果を連携証 書更新部135に送信する(S708)。

 検証結果を受信した連携証明書更新部135 、検証処理でエラーが検出された場合には 新処理を中止し、検証処理の結果が成功で った場合に、第1の記憶部111から連携証明書 500の依存リスト507が示す全ての証明書を読み 出し(S709)、第1のセキュリティモジュールに み出した証明書の検証を要求する検証要求 送信する(S710)。

 検証要求を受信した第1のセキュリティモ ジュール113は、証明書検証部が受信した証明 書を検証する(S711)。

 この証明書の検証では、まず、証明書の 子署名407が検証され、さらに、証明書の参 カウンタ値402が、カウンタ部214が保持する ウンタ値以上であることを判定し、証明書 リボークされた古い証明書ではないことが 証される。

 証明書検証部は、この検証結果を連携証 書更新部135に送信する(S712)。

 検証結果を受信した連携証明書更新部135 、検証処理でエラーが検出された場合には 新処理を中止し、検証処理の結果が成功で った場合に、連携証明書500の依存リスト507 もとに新しい連携証明書の第1の構成照合値 503を算出する(S713)。具体的には、依存リスト 507が示す各証明書のモジュール計測値を、依 存リスト507が示す順番で、各証明書のレジス タインデックスが示すレジスタに対して累積 ハッシュ演算を仮想的に実行した場合の累積 ハッシュ値を算出する。

 次に、連携証明書更新部135は、証明書#21 構成照合値403を新しい連携証明書の第2の構 成照合値504に設定し(S714)、さらに、証明書#21 のモジュール計測値405を新しい連携証明書の モジュール計測値505に設定し(S715)、第1のセ ュリティモジュール113に電子署名の生成を 求する署名要求を送信する(S716)。

 署名要求を受信した第1のセキュリティモ ジュール113は、電子署名を生成し(S717)、生成 した電子署名を連携証明書更新部135に送信す る(S718)。

 連携証明書更新部135は、受信した電子署 を新しい連携証明書の電子署名508に設定し 連携証明書記憶部131に保持されている連携 明書を新しい連携証明書に更新して、更新 理を完了する(S719)。

 この後、端末100は、新しい連携証明書を用 て、第1のモジュール群と第2のモジュール の2つのセキュアブートを一連のセキュアブ トとして実行することが出来る。
以上のように、連携証明書の依存リストに基 づき、証明書を参照して構成照合値を算出す ることで、新しい連携証明書を端末100の内部 で生成することができる。

 これにより、第1のモジュール群のソフト ウェアモジュールを提供する第1の提供者、 び、第2のモジュール群のソフトウェアモジ ールを提供する第2の提供者は、提供するソ フトウェアモジュールを新しいソフトウェア モジュールに更新する際に、更新情報を事前 に通知する必要がなく、提供者間の独立性を 維持した上で個別に新しいフトウェアモジュ ールを提供することが出来る。

 なお、上記で説明した連携証明書の更新 おいて連携証明書更新部135が行っている処 の一部を、第1のセキュリティモジュールが 行うようにしても良い。具体的には、第1の 成照合値の算出(S713)、証明書#21の構成照合 を第2の構成照合値に設定(S714)、証明書#21の ジュール計測値をモジュール計測値に設定( S715)の何れかまたはすべての処理を第1のセキ ュリティモジュールが行う。

 この場合、これらの処理を、耐タンパ化 れた第1のセキュリティモジュールが行うこ とで、連携証明書に不正な照合値が設定され るといった改竄行為を防止することができ、 安全性が向上する。

 なお、連携証明書を格納する連携証明書 憶部131を、第1の記憶部111の中に設け、連携 証明書更新部135を第1の情報処理部110の中に けるようにしてもよい。

 この場合、連携証明書を格納するために 要な記憶領域を第1の記憶部の中に確保する ことで、連携証明書を格納する記憶領域を確 保するための分の新たなコストアップを回避 できる。

 また、連携証明書を格納する連携証明書 憶部131を、第2の記憶部121の中に設け、連携 証明書更新部135を第2の情報処理部120の中に けるようにしてもよい。

 この場合、連携証明書を格納するために 要な記憶領域を第2の記憶部の中に確保する ことで、連携証明書を格納する記憶領域を確 保するための分の新たなコストアップを回避 できる。また、この場合には、連携証明書の 電子証明508は、第2のセキュリティモジュー が生成する。

 なおまた、連携処理部130に第3のセキュアブ ート制御部、第3のセキュリティモジュール 設けて、上記において、図6を用いて説明し セキュアブートを第1のセキュアブート制御 部の代わりに第3のセキュアブート制御部を いて行うようにしてよい。
(第2の実施形態)
 本発明の第2の実施形態は、ソフトウェアモ ジュールの証明書と連携証明書のデータ構造 を共通化して、セキュリティモジュールにお いて証明書の検証処理と連携証明書の検証処 理を共通化できるように構成したものである 。

 本発明の第2の実施形態における端末100の 構成は、第1の実施形態と同じであり、説明 省略する。

 図11は、本発明の第2の実施形態における フトウェアモジュールに対応する証明書1100 のデータ構造を示している。拡張データダイ ジェスト1107のフィールドが追加されている 外は、本発明の第1の実施形態のソフトウェ モジュールに対応する証明書400と同じであ 。

 証明書1100は、その証明書が対応付けられ たソフトウェアモジュールを識別する情報で あるラベル1101と、ソフトウェアモジュール バージョンを示す参照カウンタ値1102と、ソ トウェアモジュールが実行される前の端末1 00の状態においてセキュリティモジュールの 成情報保持部(217、227)に保持されるべき累 ハッシュ値を示す構成照合値1103と、ソフト ェアモジュールのダイジェストとしてモジ ールのコードイメージをハッシュ演算した 合の値を示すモジュール計測値1105と、モジ ュール計測値1105が示す値を累積ハッシュ演 する構成情報保持部(217、227)のレジスタ番号 を指定するレジスタインデックス1104と、証 書の署名を検証する鍵を示す検証鍵ID1106と 拡張データダイジェスト1107と、検証鍵ID1106 示す鍵に対応する秘密鍵によるラベル1101か ら拡張データダイジェスト1107までのデータ 対する電子署名1108と、から構成される。

 この拡張データダイジェスト1107には、証 明書の拡張データのハッシュ値が設定される 。この証明書に複数の拡張データを対応付け る場合には、複数の拡張データを連結したデ ータに対するハッシュ値が拡張データダイジ ェスト1107に設定される。

 本発明の第2の実施形態における連携証明 書のデータ構造は、図11に示したソフトウェ モジュールに対応する証明書のデータ構造 同じであり、この拡張データダイジェスト1 107に連携証明書の拡張データのハッシュ値が 設定されることにより、連携証明書となる。

 図12は、本発明の第2の実施形態における 携証明書1200のデータ構造と連携証明書の拡 張データを模式的に示している。

 拡張データには、拡張データの種類を示 拡張データ名が含まれ、拡張データのデー 構造は、拡張データの種類によって決まる

 連携証明書の拡張データの場合は、連携 明書の拡張データであることを示す拡張デ タ名1201と、連携証明書によるセキュアブー トにおいて起動されるモジュールの証明書の ハッシュ値を示す証明書ダイジェスト1202と 依存リストのハッシュ値を示す依存リスト イジェスト1203から構成される。

 第1の記憶部に図3(a)に示すモジュールと 明書が、第2の記憶部に図3(b)に示すモジュー ルと証明書がそれぞれ格納される場合、証明 書ダイジェスト1202には証明書#21のハッシュ (Hash(証明書#21))が、依存リストダイジェスト 1203には、図9に示した依存リストのハッシュ (Hash(依存リスト))がそれぞれ設定される。

 図3(d)に示すように、本発明の第2の実施 態の場合、拡張データは連携証明書と共に 携証明書記憶部131に保持されている。

 また、連携証明書のラベル1101には、第2 モジュール群の先頭のモジュールであるモ ュール#21を識別するラベルが設定される。

 参照カウンタ値1102は、第1のセキュリテ モジュールのカウンタ部に格納されるカウ タ値以上の値が設定される。

 構成照合値1103には、第1のセキュリティ ジュール113の構成情報保持部に保持される き累積ハッシュ値が設定される。

 レジスタインデックス1104には、証明書#21 が示すレジスタインデックスが設定される。

 モジュール計測値1105には、証明書#21が示 すモジュール計測値が設定される。

 次に、本発明の第2の実施形態の端末100の 詳細な動作を、第1の記憶部に図3(a)に示すモ ュールと証明書が、第2の記憶部に図3(b)に すモジュールと証明書がそれぞれ格納され 場合について説明する。

 まず、図13を用いて、本発明の第2の実施 態における連携証明書を用いたセキュアブ トの動作について説明する。

 まず、第1のセキュアブート制御部112は、 第1のモジュール群の非特許文献4及び非特許 献5に示されている方式に基づくセキュアブ ートを実行し、モジュール#11、モジュール#12 、モジュール#13を順次起動した後、連携証明 書記憶部131から連携証明書1200及び連携証明 拡張データを読み出し(S1301)、第1のセキュリ ティモジュールに読み出した連携証明書1200 検証を要求する検証要求を送信する(S1302)。

 検証要求を受信した第1のセキュリティモ ジュール113は、証明書検証部が受信した連携 証明書を検証する(S1303)。

 この場合、証明書と連携証明書のデータ構 は同じなので、第1のセキュリティモジュー ル113は、証明書を検証する場合と同じ機能を 用いて連携証明書を検証する。
この連携証明書の検証では、まず、第1のセ ュリティモジュールが保持する連携証明書12 00の検証鍵ID1106が示す鍵を用いて電子署名1108 が検証される。
さらに、連携証明書1200の参照カウンタ値1102 、カウンタ部214が保持するカウンタ値以上 あることを判定し、連携証明書1200がリボー クされた古い連携証明書ではないことが検証 される。

 次に、照合部213が、構成情報保持部217が 持する累積ハッシュ値と連携証明書1200の中 の構成照合値1103とを照合し、モジュール#21 実行する前の状態として第1の情報処理部側 正しい状態(その前に実行されているモジュ ール#11、#12、#13が有効なソフトウェアモジュ ールであり、正しい順番で実行されている) あることを検証する。

 照合部213による検証結果を受信した証明書 証部は、この検証結果を第1のセキュアブー ト制御部112に送信する(S1304)。
検証結果を受信した第1のセキュアブート制 部112は、何れかの検証処理でエラーが検出 れた場合にはセキュアブートを中止し、す ての検証処理の結果が成功であった場合に 第2の記憶部121から第2のモジュール群のモジ ュール#21を読み出す(S1305)。

 第1のセキュアブート制御部112は、読み出 したモジュール#21のコードイメージのハッシ ュ演算を行い、その結果と連携証明書1200の ジュール計測値1105とを照合することで読み したモジュール#21が連携証明書1200に対応す る正当なモジュール#21であることを検証する (S1306)。

 第1のセキュアブート制御部112は、このモ ジュール#21の検証の結果、エラーが検出され た場合には、セキュアブートを中止し、検証 の結果が成功であった場合に、第2の記憶部12 1からモジュール#21に対応する証明書#21を読 出す(S1307)。

 第1のセキュアブート制御部112は、読み出 した証明書#21のハッシュ演算を行い、その結 果と連携証明書拡張データの証明書ダイジェ スト1201とを照合し、さらに、連携証明書拡 データのハッシュ演算を行い、その結果と 携証明書1200の拡張データダイジェスト1107と 照合することで連携証明書拡張データが改竄 されていないことを検証する(S1308)。

 第1のセキュアブート制御部112は、この連 携証明書拡張データの検証の結果、エラーが 検出された場合には、セキュアブートを中止 し、検証の結果が成功であった場合に、第2 セキュリティモジュールに読み出した証明 #21の検証を要求する検証要求を送信する(S130 9)。

 検証要求を受信した第2のセキュリティモ ジュール123は、証明書検証部が受信した証明 書を検証する(S1310)。

 この証明書の検証では、まず、第2のセキ ュリティモジュールが保持する証明書#21の検 証鍵ID1106が示す鍵を用いて電子署名1108が検 される。

 さらに、証明書#21の参照カウンタ値1102が 、カウンタ部224が保持するカウンタ値以上で あることを判定し、証明書#21がリボークされ た古い証明書ではないことが検証される。

 次に、照合部223が、構成情報保持部227が 持する累積ハッシュ値と証明書#21の中の構 照合値1103とを照合し、モジュール#21を実行 する前の状態として第2の情報処理部側が正 い状態(第2のモジュール群のモジュールが起 動されていない状態)であることを検証する

 照合部223による検証結果を受信した証明 検証部は、この検証結果を第1のセキュアブ ート制御部112に送信する(S1311)。

 検証結果を受信した第1のセキュアブート 制御部112は、何れかの検証処理でエラーが検 出された場合にはセキュアブートを中止し、 すべての検証処理の結果が成功であった場合 に、モジュール#21を起動し、CPU101がモジュー ル#21のコードイメージを実行する(S1312)。

 この後、第2のセキュアブート制御部122に より第2のモジュール群のセキュアブートが 始される。

 以上のように、連携証明書を用いて、セ ュアブートを行うことで、2つのセキュアブ ートを一連のセキュアブートとして実行する ことが出来る。

 次に、図14、15を用いて、連携証明書1200 更新処理の動作について説明する。

 連携証明書1200の更新処理は、第2のモジ ール群において最初に起動されるべきモジ ール#21の証明書#21が更新された場合、また 、連携証明書1200の依存リスト507に示されて るモジュール#11、#12、#13の何れかが更新さ た場合に開始される。

 証明書#21が更新された場合には、ダウン ード更新部124から連携証明書更新部135に証 書#21が更新されたことが通知され、モジュ ル#11、#12、#13の何れかが更新された場合に 、ダウンロード更新部114から連携証明書更 部135に更新されたことが通知される。

 まず、更新の通知を受信した連携証明書 新部135は、連携証明書記憶部131から連携証 書1200と連携証明書拡張データを読み出し(S1 401)、第1のセキュリティモジュールに読み出 た連携証明書1200の検証を要求する検証要求 を送信する(S1402)。

 検証要求を受信した第1のセキュリティモ ジュール113は、証明書検証部が受信した連携 証明書を検証する(S1403)。

 この連携証明書の検証では、まず、連携 明書1200の電子署名1108が検証され、さらに 連携証明書1200の参照カウンタ値1102が、カウ ンタ部214が保持するカウンタ値以上であるこ とを判定し、連携証明書1200がリボークされ 古い連携証明書ではないことが検証される

 証明書検証部は、この検証結果を第1のセ キュアブート制御部112に送信する(S1404)。

 検証結果を受信した連携証明書更新部135 、検証処理でエラーが検出された場合には エラーが検出された連携証明書をもとに連 証明書の更新処理を行うことは出来ないの 更新処理を中止し、検証処理の結果が成功 あった場合に、第2の記憶部121からモジュー ル#21に対応する証明書#21を読み出す(S1405)。

 連携証明書更新部135は、連携証明書拡張 ータのハッシュ演算を行い、その結果と連 証明書1200の拡張データダイジェスト1107と 合することで連携証明書拡張データが改竄 れていないことを検証する(S1406)。

 連携証明書更新部135は、この連携証明書 張データの検証の結果、エラーが検出され 場合には、セキュアブートを中止し、検証 結果が成功であった場合に、第2のセキュリ ティモジュールに読み出した証明書#21の検証 を要求する検証要求を送信する(S1407)。

 検証要求を受信した第2のセキュリティモ ジュール123は、証明書検証部が受信した証明 書#21を検証する(S1408)。

 この証明書#21の検証では、まず、証明書# 21の電子署名1108が検証され、さらに、証明書 #21の参照カウンタ値1102が、カウンタ部224が 持するカウンタ値以上であることを判定し 証明書#21がリボークされた古い証明書では いことが検証される。

 証明書検証部は、この検証結果を連携証 書更新部135に送信する(S1409)。

 検証結果を受信した連携証明書更新部135 、検証処理でエラーが検出された場合には 新処理を中止し、検証処理の結果が成功で った場合に、第1の記憶部111から連携証明書 拡張データの依存リストが示す全ての証明書 を読み出し(S1410)、第1のセキュリティモジュ ルに読み出した証明書の検証を要求する検 要求を送信する(S1411)。

 検証要求を受信した第1のセキュリティモ ジュール113は、証明書検証部が受信した証明 書を検証する(S1412)。

 この証明書の検証では、まず、証明書の 子署名1108が検証され、さらに、証明書の参 照カウンタ値1102が、カウンタ部214が保持す カウンタ値以上であることを判定し、証明 がリボークされた古い証明書ではないこと 検証される。

 証明書検証部は、この検証結果を連携証 書更新部135に送信する(S1413)。

 検証結果を受信した連携証明書更新部135 、検証処理でエラーが検出された場合には 新処理を中止し、検証処理の結果が成功で った場合に、連携証明書拡張データの依存 ストをもとに新しい連携証明書の構成照合 1103を算出する(S1414)。具体的には、連携証 書拡張データの依存リストが示す各証明書 モジュール計測値を、依存リストが示す順 で、各証明書のレジスタインデックスが示 レジスタに対して累積ハッシュ演算を仮想 に実行した場合の累積ハッシュ値を算出す 。

 次に、連携証明書更新部135は、証明書#21 ハッシュ演算を行い、連携証明書拡張デー の証明書ダイジェストを更新し、さらに、 携証明書拡張データのハッシュ演算を行い 携証明書の拡張データダイジェスト1107を算 出する(S1415)。

 さらに、連携証明書更新部135は、証明書# 21のモジュール計測値1105を新しい連携証明書 のモジュール計測値505に設定し(S1416)、第1の キュリティモジュール113に電子署名の生成 要求する署名要求を送信する(S1417)。

 署名要求を受信した第1のセキュリティモ ジュール113は、電子署名を生成し(S1418)、生 した電子署名を連携証明書更新部135に送信 る(S1419)。

 連携証明書更新部135は、受信した電子署 を新しい連携証明書の電子署名1108に設定し 、連携証明書記憶部131に保持されている連携 証明書と連携証明書拡張データをそれぞれ新 しい連携証明書と連携証明書拡張データに更 新して、更新処理を完了する(S1420)。

 この後、端末100は、新しい連携証明書を いて、第1のモジュール群と第2のモジュー 群の2つのセキュアブートを一連のセキュア ートとして実行することが出来る。

 以上のように、連携証明書の依存リスト 基づき、証明書を参照して構成照合値を算 することで、新しい連携証明書を端末100の 部で生成することができる。

 これにより、第1のモジュール群のソフト ウェアモジュールを提供する第1の提供者、 び、第2のモジュール群のソフトウェアモジ ールを提供する第2の提供者は、提供するソ フトウェアモジュールを新しいソフトウェア モジュールに更新する際に、更新情報を事前 に通知する必要がなく、提供者間の独立性を 維持した上で個別に新しいソフトウェアモジ ュールを提供することが出来る。

 本発明の第2の実施形態の場合、セキュリ ティモジュールにおける証明書の検証処理と 連携証明書の検証処理を共通化できるため、 メモリ等のセキュリティモジュールにおいて 必要となるリソースを削減できるため、セキ ュリティモジュールを低コストで提供できる というメリットがある。

 なお、上記で説明した連携証明書の更新 おいて連携証明書更新部135が行っている処 の一部を、第1のセキュリティモジュールが 行うようにしても良い。具体的には、構成照 合値の算出(S1413)、証明書#21の構成照合値を 2の構成照合値に設定(S1414)、拡張データダイ ジェストの算出(S1415)、証明書#21のモジュー 計測値をモジュール計測値に設定(S1416)の何 かまたはすべての処理を第1のセキュリティ モジュールが行う。

 この場合、これらの処理を、耐タンパ化 れた第1のセキュリティモジュールが行うこ とで、連携証明書に不正な照合値が設定され るといった改竄行為を防止することができ、 安全性が向上する。

 なお、連携証明書を格納する連携証明書 憶部131を、第1の記憶部111の中に設け、連携 証明書更新部135を第1の情報処理部110の中に けるようにしてもよい。

 この場合、連携証明書を格納するために 要な記憶領域を第1の記憶部の中に確保する ことで、連携証明書を格納する記憶領域を確 保するための分の新たなコストアップを回避 できる。

 また、連携証明書を格納する連携証明書 憶部131を、第2の記憶部121の中に設け、連携 証明書更新部135を第2の情報処理部120の中に けるようにしてもよい。

 この場合、連携証明書を格納するために 要な記憶領域を第2の記憶部の中に確保する ことで、連携証明書を格納する記憶領域を確 保するための分の新たなコストアップを回避 できる。また、この場合には、連携証明書の 電子証明508は、第2のセキュリティモジュー が生成する。

 なおまた、連携処理部130に第3のセキュア ブート制御部、第3のセキュリティモジュー を設けて、上記において、図6を用いて説明 たセキュアブートを第1のセキュアブート制 御部の代わりに第3のセキュアブート制御部 用いて行うようにしてよい。

 (実施の形態3)
 本発明の実施の形態3では、上述してきた実 施の形態1をTrusted Computing Group(TCG)で規定し いる仕様に基づいて実現してもよい。

 この場合、セキュリティモジュールは、TCG 規定しているTPMモジュールまたはMTMモジュ ルであり(以降のTPMとは、TPMあるいはMTMを意 味するものとする)、構成情報保持部は、TPM 備えるPCRであり、カウンタ部は、TPMが備え Monotonic Counterであり、累積部、証明書検証 、照合部は、TPMコマンド処理を含んだTCG機 を実現する部であり、証明書#11、#12、#13、 明書#21、#22、#23は、External RIM_Cert、もしく Internal RIM_Certである。これによって、TCG仕 に基づいて安全にソフトウェアの更新が可 となる。
(その他変形例)
 なお、本発明を上記実施の形態に基づいて 明してきたが、本発明は、上記の実施の形 に限定されないのはもちろんである。以下 ような場合も本発明に含まれる。

 (1)上記の各装置は、具体的には、マイク プロセッサ、ROM、RAM、ハードディスクユニ ト、ディスプレイユニット、キーボード、 ウスなどから構成されるコンピュータシス ムである。前記RAMまたはハードディスクユ ットには、コンピュータプログラムが記憶 れている。前記マイクロプロセッサが、前 コンピュータプログラムにしたがって動作 ることにより、各装置は、その機能を達成 る。ここでコンピュータプログラムは、所 の機能を達成するために、コンピュータに する指令を示す命令コードが複数個組み合 されて構成されたものである。なお、各装 は、マイクロプロセッサ、ROM、RAM、ハード ィスクユニット、ディスプレイユニット、 ーボード、マウスなどの全てを含むコンピ ータシステムには限らず、これらの一部か 構成されているコンピュータシステムであ てもよい。

 (2)上記の各装置を構成する構成要素の一 または全部は、1個のシステムLSI(Large Scale  Integration:大規模集積回路)から構成されてい としてもよい。システムLSIは、複数の構成 を1個のチップ上に集積して製造された超多 能LSIであり、具体的には、マイクロプロセ サ、ROM、RAMなどを含んで構成されるコンピ ータシステムである。前記RAMには、コンピ ータプログラムが記憶されている。前記マ クロプロセッサが、前記コンピュータプロ ラムにしたがって動作することにより、シ テムLSIは、その機能を達成する。

 また、上記の各装置を構成する構成要素 各部は、個別に1チップ化されていても良い し、一部又は全てを含むように1チップ化さ てもよい。

 また、ここでは、システムLSIとしたが、 積度の違いにより、IC、LSI、スーパーLSI、 ルトラLSIと呼称されることもある。また、 積回路化の手法はLSIに限るものではなく、 用回路又は汎用プロセッサで実現してもよ 。LSI製造後に、プログラムすることが可能 FPGA(Field Programmable Gate Array)や、LSI内部の回 路セルの接続や設定を再構成可能なリコンフ ィギュラブル・プロセッサーを利用しても良 い。

 さらには、半導体技術の進歩又は派生す 別技術によりLSIに置き換わる集積回路化の 術が登場すれば、当然、その技術を用いて 能ブロックの集積化を行ってもよい。バイ 技術の適用等が可能性としてありえる。

 (3)上記の各装置を構成する構成要素の一 または全部は、各装置に脱着可能なICカー または単体のモジュールから構成されてい としてもよい。前記ICカードまたは前記モジ ュールは、マイクロプロセッサ、ROM、RAMなど から構成されるコンピュータシステムである 。前記ICカードまたは前記モジュールは、上 の超多機能LSIを含むとしてもよい。マイク プロセッサが、コンピュータプログラムに たがって動作することにより、前記ICカー または前記モジュールは、その機能を達成 る。このICカードまたはこのモジュールは、 耐タンパ性を有するとしてもよい。

 (4)本発明は、上記に示す方法であるとし もよい。また、これらの方法をコンピュー により実現するコンピュータプログラムで るとしてもよいし、前記コンピュータプロ ラムからなるデジタル信号であるとしても い。

 また、本発明は、前記コンピュータプロ ラムまたは前記デジタル信号をコンピュー 読み取り可能な記録媒体、例えば、フレキ ブルディスク、ハードディスク、CD-ROM、MO DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、半導体メ リなどに記録したものとしてもよい。また これらの記録媒体に記録されている前記デ タル信号であるとしてもよい。

 また、本発明は、前記コンピュータプロ ラムまたは前記デジタル信号を、電気通信 線、無線または有線通信回線、インターネ トを代表とするネットワーク、データ放送 を経由して伝送するものとしてもよい。

 また、本発明は、マイクロプロセッサと モリを備えたコンピュータシステムであっ 、前記メモリは、上記コンピュータプログ ムを記憶しており、前記マイクロプロセッ は、前記コンピュータプログラムにしたが て動作するとしてもよい。

 また、前記プログラムまたは前記デジタ 信号を前記記録媒体に記録して移送するこ により、または前記プログラムまたは前記 ジタル信号を前記ネットワーク等を経由し 移送することにより、独立した他のコンピ ータシステムにより実施するとしてもよい

 (5)セキュリティモジュールは、耐タンパ フトウェアまたはソフトウェア及びハード ェアにより実施されるとしてもよい。

 (6)CPUは特別な動作モード(セキュアモード など)を備え、CPUによって実行されるソフト ェアはその特別な動作モード(セキュアモー など)で動作することで安全に実行されると してもよい。

 (7)上記実施の形態及び上記変形例をそれ れ組み合わせるとしてもよい。

 本発明は、パーソナルコンピュータや携 電話、オーディオプレーヤ、テレビ受像機 ビデオレコーダなど、プログラムデータの 新を行う情報通信機器や家電機器に広く利 することができる。

 本発明の端末と同様の構成にすることに って、端末のソフトウェアが、複数の提供 が提供するモジュール群から構成される場 において、モジュール及び証明書を、提供 間の依存関係がない形態で各提供者から個 に提供することが可能となり、提供者間の 立性を維持した上で、モジュール群間を跨 セキュアブートを継続的に行うことが可能 なる。

 100  端末
 101  CPU
 110  第1の情報処理部
 111  第1の記憶部
 112  第1のセキュアブート制御部
 113  第1のセキュリティモジュール
 114  第1のダウンロード更新部
 120  第2の情報処理部
 121  第2の記憶部
 122  第2のセキュアブート制御部
 123  第2のセキュリティモジュール
 124  第2のダウンロード更新部
 130  連携処理部
 131  連携証明書記憶部
 135  連携証明書更新部