JPWO2009107349A1 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JPWO2009107349A1
JPWO2009107349A1 JP2010500554A JP2010500554A JPWO2009107349A1 JP WO2009107349 A1 JPWO2009107349 A1 JP WO2009107349A1 JP 2010500554 A JP2010500554 A JP 2010500554A JP 2010500554 A JP2010500554 A JP 2010500554A JP WO2009107349 A1 JPWO2009107349 A1 JP WO2009107349A1
Authority
JP
Japan
Prior art keywords
virtual machine
virtual
tpm
information
started
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010500554A
Other languages
English (en)
Other versions
JP5411122B2 (ja
Inventor
芳賀 智之
智之 芳賀
松島 秀樹
秀樹 松島
高山 久
久 高山
伊藤 孝幸
孝幸 伊藤
前田 学
学 前田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2010500554A priority Critical patent/JP5411122B2/ja
Publication of JPWO2009107349A1 publication Critical patent/JPWO2009107349A1/ja
Application granted granted Critical
Publication of JP5411122B2 publication Critical patent/JP5411122B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Abstract

複数のステークホルダーの各々に対応する複数の仮想マシンを有する端末において、仮想マシンと仮想マシンモニター間の信頼の依存関係を維持しつつ端末を起動させる。複数のステークホルダー各々に対応する複数の仮想マシンと、仮想マシンと各仮想マシンに対応する耐タンパーモジュールと、仮想マシンと耐タンパーモジュール間との間を制御する管理部とを備え、各仮想マシン間では、信頼の依存関係を持たせた証明書を用いてセキュアブートする。

Description

本発明は、仮想化技術を利用した複数のステークホルダーを備える装置において、各ステークホルダー間の依存関係に基づきセキュアブート処理する情報処理装置に関するものである。
近年、情報セキュリティへの意識の高まりと共に、データを保護する技術ニーズが高まってきている。
これを背景として、セキュアなコンピュータプラットフォームを開発、普及させることを目的として、Trusted Computing Group(TCG)が設立された。TCGでは、Trusted Platform Module(TPM)と呼ばれるセキュリティコアモジュールを利用し、安全な端末環境を実現している(非特許文献1〜3参照)。TCGの基本機能として、特徴的な機能が2つある。まず、端末起動時から、OSやアプリケーションが起動するまでの各モジュールのインテグリティ情報を計測し、計測した値を、それより前のモジュールのインテグリティ情報を連鎖させる累積処理(TCGのTPM_Extendコマンドに相当する処理)をし、その累積値をTPM内のPlatform Configration Registers(PCR)と呼ばれるレジスタに格納するTrusted Boot機能がある。また、PCRに蓄積した値を端末環境情報として、外部のサーバーに通知し、外部のサーバーでは、期待される環境情報であるかどうかを検証するというAttestation機能がある。これらの機能を利用し、リモートで端末の環境の正当性を検証可能であることが、TCG技術のメリットの1つである。
また、TCGは、TPM搭載端末として、携帯電話もターゲットとしており、携帯電話向けのTPMの仕様も規格化されている(非特許文献3、4)。携帯電話向けのTPMは、Mobile Trusted Module(MTM)と呼ばれている。MTMは、TPMの機能を実現しながらも、一部のコマンドを携帯電話向けにコマンドを修正したり、新規コマンドが追加されている。その追加機能として、セキュアブート機能と、マルチステークホルダーモデルを定義している。
セキュアブートとは、携帯電話の端末起動時から、OSやアプリケーションが起動するまでの各モジュールのインテグリティ情報を計測し、計測した値が期待される値であるかを、ローカル端末内で検証しながらブートする方式である。
また、マルチステークホルダーモデルとは、デバイスメーカー、キャリア、アプリケーションサービス提供者、ユーザーといった携帯電話端末内に存在する複数のステークホルダーが所有する権利物を安全に利用するための実装モデルを定義したものである。各ステークホルダーの権利物として、例えば、デバイスメーカーであれば、International Mobile Equipment Identity(IMEI)であり、キャリアであれば、Subscriber Identification Module(SIM)関連情報であり、アプリケーションサービス提供者であれば、サービス提供されたデータであり、ユーザーであれば、アドレス帳が挙げられる。要するに、マルチステークホルダーモデルとは、それぞれのステークホルダーが利用するMTMを、個別に割り当てることでそれぞれの権利物を安全に利用するモデルである。仮想化技術を用いることで、1つの端末内に、複数のMTMを仮想的に実現することが可能となる。
特許文献1は、仮想化技術を利用して仮想TPMを実現する技術を開示している。
特表2008−500651号公報 TPM Main,Part1 Design Principles,Specification version 1.2 Level2 Rivision103(9 July 2007) TPM Main,Part2 TPM Structures,Specification version1.2 Level2 Revision103(9 July 2007) TPM Main Part3 Commands,Specification version 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 version1.0 Revision1(12 June 2007)
特許文献1は、仮想化技術を利用し、仮想マシンモニター上で仮想マシンを動作させる方法であって、仮想マシンが利用するTPMは、仮想TPMとして実現される。その仮想TPMが持つ鍵や証明書などのセンシティブな情報は、別途、端末内に備える物理TPMを利用して保護される。この特許文献1の実装モデルでは、端末起動時から仮想マシンモニター層までのインテグリティ値を連鎖処理した値は、物理TPMのPCRに格納される。また、仮想マシンのインテグリティ値を連鎖処理した値は、それぞれの仮想マシンに割り当てられた仮想TPMのPCRに格納される。ここで、仮想化技術は、仮想マシンが、あたかも1台の実マシンのように振る舞うことを可能にする技術であるため、TCGにおけるセキュアブート処理のインテグリティ値の連鎖処理が、仮想マシンで閉じてしまうことになる。すなわち、仮想マシンモニターから仮想マシンが起動するまでのインテグリティの連鎖が、途中で切れてしまうことになる。したがって、インテグリティ値の確認によって、端末環境の正当性を検証しようとしても、仮想マシンより下の層の環境、すなわち仮想マシンモニター層の環境の正当性を検証することができないという課題があった。
また、マルチステークホルダーモデルでは、ステークホルダー間で依存関係を持たせるという、トラストモデルを定義している。トラストモデルとは、具体的には、キャリアがデバイスメーカーのMTMを利用して、デバイスメーカーの権利物であるIMEIデータを参照するなどといった例を実現するためのモデルである。この場合、キャリアは、デバイスメーカー環境を信頼した上で、デバイスメーカーのMTM機能を利用する。しかしながら、特許文献1では、仮想マシン間の信頼関係はないという前提における技術であるので、このようなトラストモデルを定義したマルチステークホルダーモデルの実装、および所定のトラストモデルで起動しているかどうか検証することができないという課題があった。
そこで、本発明はこれらの課題を解決するもので、仮想化技術により、マルチステークホルダーモデルを実現しつつ、マルチステークホルダーモデルで定義されるステークホルダー間の信頼関係(トラストモデル)を維持した状態でセキュアブートさせる方法と、さらには、仮想マシンモニターの環境も含めて端末の正当性検証が可能になる方法を実現する。
上記の課題を解決するために、本発明に係る情報処理装置は、複数の仮想マシンを動作させる情報処理装置であって、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を格納する依存情報格納部と、前記複数の仮想マシンの起動を管理し、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御する仮想マシン管理部とを備える。
本発明の一実施態様である情報処理装置は、上述の構成を備えることにより、複数の仮想マシンのうち、他の仮想マシンの機能を使用するものを特定でき、特定された仮想マシンを、前記他の仮想マシンが必ず起動状態になってから起動させ、前記特定された仮想マシンに前記他の仮想マシンの機能を確実に使用させることができる。したがって、複数の仮想マシンを所定の信頼関係を維持した状態で起動させることができる。
本発明の実施の形態1におけるマルチステークホルダーモデルにおけるトラストモデルを示す図 本発明の実施の形態1における情報処理端末を示す図 本発明の実施の形態1における仮想マシンの構成を示す図 本発明の実施の形態1における仮想マシンモニターの構成を示す図 本発明の実施の形態1におけるTPM証明書を示す図 本発明の実施の形態1におけるTPM証明書によるトラストモデル表現を示した図 本発明の実施の形態1におけるモジュール証明書を示した図 本発明の実施の形態1におけるトラストモデルに基づいたセキュアブートのフローチャート 本発明の実施の形態1におけるPCRの初期値設定のフローチャート 本発明の実施の形態1におけるセキュアブート詳細フローチャート 本発明の実施の形態2におけるAttestationモデルを示す図 本発明の実施の形態2におけるAttestationモデルのシーケンス図 本発明の実施の形態3における情報処理端末の構成を示す図
符号の説明
101、102、111、112、121、122 ステークホルダー
103、104、113、114、123 TPM
10、1000、1200 情報処理端末
11、1280 CPU
12、1281 I/Oデバイス
13、1282 揮発メモリ
14、1283 不揮発メモリ
20、30、1010、1020、1210、1220 仮想マシン
21、31、1211、1222 仮想TPMインターフェース
22、32、1212、1223 仮想デバイスドライバ
25、35 アプリケーション
24、34 ゲストOS
23、33 OSローダー
40、1030、1203 仮想マシンモニター
41、1260 デバイスドライバ
42、1250 TPMインターフェース
50、1033、1202 仮想TPM制御部
60、70、1230、1240 仮想TBB
61、71、1231、1241 仮想計測・検証部
62、72、1031、1032、1232、1242 仮想TPM
80、1270 TBB
81、1271 計測・検証部
82、1040、1272 TPM
63、73、83 PCR
410 トラストモデル管理部
411 TPM証明書
412、413 仮想TPM証明書
420 ブート制御部
421 モジュール証明書格納部
422 PCR初期値設定部
423 ブート制御部
501 証明書バージョン
502 シリアルナンバー
503、703 署名アルゴリズム
504 発行者情報
505 有効期間
506 サブジェクト
507 公開鍵情報
508 TPMバージョン
509 トラストモデル識別情報
510 依存TPM証明書識別情報
511 依存TPM−PCR番号
512 拡張領域
513、708 署名データ
701 モジュール識別情報
702 モジュールバージョン情報
704 認証インテグリティ値
705 認証PCR値
706 PCRインデックス
707 検証鍵識別情報
2000 サービス提供サーバー
3000 ネットワーク
2001 AIK証明書データベース
2002 認証PCRデータベース
2003 トラストモデル管理データベース
1011、1021 通知部
1021 管理マシン
1204 仮想TPM制御通知部
請求項1に記載の態様である情報処理装置は、複数の仮想マシンを動作させる情報処理装置であって、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を格納する依存情報格納部と、前記複数の仮想マシンの起動を管理し、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御する仮想マシン管理部とを備える。
また、前記情報処理装置は、更に、前記複数の仮想マシンそれぞれに対応し、前記複数の仮想マシンそれぞれの持つ機能の完全性の検証に用いる検証情報をそれぞれ格納する複数の状態格納部を備え、前記仮想マシン管理部は、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンの状態格納部から前記起動すべき仮想マシンが使用する機能の検証情報を読み出し、前記起動すべき仮想マシンの状態格納部に反映することとしてもよい。
この構成によれば、複数の仮想マシンのそれぞれを、前記検証情報に係る機能を持つ他の仮想マシンの完全性を引き継いだ状態で起動し、動作させることができる。したがって、仮想マシン間の信頼関係を維持した状態で、検証情報を用いた検証を行うことができる。これにより、仮想マシンが所定の信頼関係を維持した状態で起動しているか検証することができ、信頼関係を維持した状態でのセキュアブートが可能となる。
また、前記複数の状態格納部はそれぞれ複数の記録領域を持ち、前記複数の状態格納部それぞれに対応する仮想マシンについて、前記仮想マシンの持つ1以上の機能の完全性の検証に用いる検証情報を前記複数の記録領域のいずれかに格納し、前記仮想マシン管理部は、前記起動すべき仮想マシンの依存情報が、前記他の仮想マシンの持つ1以上の機能のうち一部を使用することを示している場合、前記他の仮想マシンの状態格納部に格納されている検証情報のうち、前記起動すべき仮想マシンが使用する機能に対応する記録領域に記録されている検証情報を前記起動すべき仮想マシンの状態格納部に反映し、前記起動すべき仮想マシンが使用する機能に対応しない記録領域の検証情報は前記起動すべき仮想マシンの状態格納部に反映しないこととしてもよい。
この構成によれば、他の仮想マシン1以上の機能のうち一部を使用する場合には、使用する機能に対応する検証情報のみを引き継ぐ。したがって、起動すべき仮想マシンの機能のうち、他の仮想マシンの機能を用いる機能については、当該他の仮想マシンの機能も含めて正当性を検証しつつ、他の仮想マシンの機能を用いない機能については、起動すべき仮想マシンのみで正当性の検証を完結させることができる。これにより、各機能の検証に、仮想マシン間の信頼関係を適切に反映することができる。
また、前記情報処理装置は、更に、前記複数の仮想マシンそれぞれに対応する複数の耐タンパーモジュールを備え、前記複数の状態格納部はそれぞれ、前記複数の耐タンパーモジュールのそれぞれに含まれ、前記複数の仮想マシンそれぞれの持つ機能は、前記複数の仮想マシンそれぞれに対応する耐タンパーモジュールによって実現されることとしてもよい。
この構成によれば、検証情報を改ざんされることなく仮想マシン間で受け渡し、改ざんない状態で機能を実施することができる。
また、前記複数の仮想マシンそれぞれは、複数のステークホルダーそれぞれに対応しており、前記複数のステークホルダーそれぞれは、各ステークホルダーが対応する仮想マシンの持つ機能のみを使用する第1ステークホルダーモデル、他の仮想マシンの持つ機能の一部を使用する第2ステークホルダーモデル、および、他の仮想マシンの持つ機能の全てを使用する第3ステークホルダーモデルのいずれかのステークホルダーモデルに対応し、前記依存情報は、前記依存情報が対応する仮想マシンのステークホルダーモデルが前記第1ステークホルダーモデル、前記第2ステークホルダーモデル、第3ステークホルダーモデルのいずれであるかを示し、前記仮想マシン管理部は、前記依存情報に基づいて前記起動すべき仮想マシンのステークホルダーモデルを判断することとしてもよい。
また、前記依存情報は、前記依存情報に対応する仮想マシンが使用する機能を持つ他の仮想マシンを示す情報と、前記依存情報に対応する仮想マシンが使用する機能の検証情報が格納されている記録領域を示す情報とを含むこととしてもよい。
また、前記仮想マシン管理部は、前記起動すべき仮想マシンの依存情報が、前記起動すべき仮想マシンが使用する機能の検証情報が格納されている記録領域として、他の仮想マシンの記録領域の一部を示している場合、前記起動すべき仮想マシンのステークホルダーモデルを第2ステークホルダーモデルであると判断することとしてもよい。
また、前記仮想マシン管理部は、前記起動すべき仮想マシンの依存情報が、前記起動すべき仮想マシンが使用する機能の検証情報が格納されている記録領域として、他の仮想マシンの記録領域の全部を示している場合、前記起動すべき仮想マシンのステークホルダーモデルを第3ステークホルダーモデルであると判断することとしてもよい。
この構成によれば、仮想マシンのステークホルダーモデルを正確に特定し、特定したステークホルダーモデルに基づいて、前記仮想マシンを起動させることができる。
また、前記仮想マシンの持つ機能は1以上のモジュールによって実現されており、前記複数の状態格納部は、それぞれ、自身が対応する仮想マシンの持つ機能について、前記機能を実現するモジュールが起動する毎に、前記起動したモジュールを示す情報を、前記複数の状態格納部それぞれに格納されている検証情報に累積することで、前記検証情報を更新し、前記仮想マシン管理部は、前記検証情報の初期値として、前記起動すべき仮想マシンが使用する機能の検証情報を前記起動すべき仮想マシンの状態格納部に格納することで、前記起動すべき仮想マシンの状態格納部に、前記起動すべき仮想マシンが使用する機能の検証情報を反映することとしてもよい。
この構成によれば、各仮想マシンそれぞれは、自仮想マシンの検証情報を生成する場合に、他の仮想マシンの検証情報を初期値として受け継ぐことができるので、他の仮想マシンの完全性をも保証できる自仮装マシンの検証情報を生成することができる。
また、前記情報処理装置は、前記仮想マシン管理部によって制御された順序に従った前記複数の仮想マシンの起動が完了すると、前記複数の状態格納部に格納されている検証情報に基づいて前記情報処理装置全体の完全性を検証することとしてもよい。
この構成によれば、仮想マシンを使用する構成において、装置全体としての完全性を確認することができる。
また、前記情報処理装置は、更に、外部のサーバからの認証要求を受け付ける受信部と、前記認証要求が受け付けられると、前記仮想マシン管理部によって制御された順序に従った前記複数の仮想マシンの起動が完了した後で、前記複数の状態格納部に格納されている検証情報を前記外部のサーバへ送信することとしてもよい。
この構成によれば、サービスを提供するサーバー装置側において、情報処理装置内の完全性についての検証をすることができる。
また、前記情報処理装置は、更に、前記仮想マシン管理部について、前記仮想マシン管理部の持つ1以上の機能の完全性の検証に用いる検証情報を格納する管理状態格納部を備え、前記依存情報は、更に、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが前記仮想マシン管理部の持つ機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが前記仮想マシン管理部の機能を使用しないことを示す管理依存情報を含み、前記仮想マシン管理部は、更に、前記複数の仮想マシンのいずれかを起動する際に、起動すべき仮想マシンの依存情報が、前記起動すべき仮想マシンが仮想マシン管理部の機能のいずれかを使用することを示していれば、前記仮想マシン管理部の管理状態格納部から前記起動すべき仮想マシンが使用する機能の検証情報を読み出し、前記起動すべき仮想マシンの状態格納部に反映することとしてもよい。
この構成によれば、複数の仮想マシンのそれぞれを、各仮想マシンの依存情報が示す他の仮想マシン若しくは仮想マシン管理部の機能についての完全性を引き継いだ状態で起動し、動作させることができる。したがって、仮想マシンモニター(仮想マシン管理部)の環境も含めて端末の正当性検証が可能になる。
請求項13に記載の態様である携帯端末は、複数の仮想マシンを動作させる携帯端末であって、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を格納する依存情報格納部と、前記複数の仮想マシンの起動を管理し、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御する仮想マシン管理部とを備える。
請求項14に記載の態様である制御方法は、複数の仮想マシンを動作させる情報処理装置の制御方法であって、前記情報処理装置は、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を含んだ依存情報を格納する依存情報格納部を備え、前記制御方法は、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断するステップと、前記複数の仮想マシンの起動を管理し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御するステップとを含む。
請求項15に記載の態様である記録媒体は、複数の仮想マシンを動作させる情報処理装置の制御プログラムを記録した記録媒体であって、前記情報処理装置は、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を含んだ依存情報を格納する依存情報格納部を備え、前記制御プログラムは、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断するステップと、前記複数の仮想マシンの起動を管理し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御するステップとを含む。
請求項16に記載の態様である集積回路は、複数の仮想マシンを動作させる情報処理装置を制御する集積回路であって、前記情報処理装置は、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を含んだ依存情報を格納する依存情報格納部を備え、前記集積回路は、前記複数の仮想マシンの起動を管理し、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御する。
この構成によれば、複数の仮想マシンのうち、他の仮想マシンの機能を使用するものを特定でき、特定された仮想マシンを、前記他の仮想マシンが必ず起動状態になってから起動させ、前記特定された仮想マシンに前記他の仮想マシンの機能を確実に使用させることができる。

以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
本発明の実施の形態について、説明する。以降、本実施の形態で示すTPMは、TCGで仕様化されているTrusted Platform Moduleの機能を有するセキュリティコアモジュールであるとして、以降説明する。
<マルチステークホルダーモデルにおけるトラストモデル>
まず、マルチステークホルダーについて携帯電話を例として説明する。携帯電話には、デバイスメーカー、キャリア、アプリケーションサービス提供者、ユーザーといった複数のステークホルダーが存在する。各ステークホルダーは、各自の権利物を所有している。各ステークホルダーの権利物は、例えば、デバイスメーカーであれば、International Mobile Equipment Identity(IMEI)であり、キャリアであれば、Subscriber Identification Module(SIM)関連情報であり、アプリケーションサービス提供者であれば、サービス提供されたデータであり、ユーザーであれば、アドレス帳が挙げられる。マルチステークホルダーモデルとは、それぞれのステークホルダーが利用するTPMを、個別に割り当てることでそれぞれの権利物を安全に利用するモデルである。
図1は、マルチステークホルダーモデルにおけるトラストモデルを示した図である。
トラストモデルとして、3つのモデルが定義される。また、図1には図示していないが、各ステークホルダーは、各自のステークホルダーの権利物を管理しており、ステークホルダーの所有する権利物は、各ステークホルダーに対応づけられたTPMを利用して、安全にアクセスする。以下、それぞれ3つのモデルについて説明する。
図1(a)は、Independent Modelを示している。このモデルは、各ステークホルダー間に信頼の依存関係はないモデルである。例えば、ステークホルダー1(101)が、TPM1(103)を利用し、ステークホルダー2(102)は、TPM2(104)を利用するモデルである。
図1(b)は、Interdependent Modelを示している。このモデルは、ステークホルダー間で、部分的に依存関係のあるモデルである。例えば、ステークホルダー1(111)は、TPM1(113)を利用し、ステークホルダー2(112)は、TPM2(114)を利用する。ここまでは、Independent Modelと同じであるが、図1(b)に示しているように、一部領域が重なっている部分が存在する。これは、ステークホルダー2(112)が、TPM2(114)以外に、TPM1(113)の機能を利用することを表している。例えば、携帯電話の場合、ステークホルダー2(112)が、キャリアであって、ステークホルダー1(111)がデバイスメーカーであった場合、キャリアが、デバイスメーカーの権利物であるIMEIにアクセスするといった例である。
図1(c)は、Dependent Modelを示している。このモデルは、ステークホルダー間で、あるステークホルダーが、別のステークホルダーに完全に依存するモデルである。これは、ステークホルダー1(121)がTPM1(123)を利用し、ステークホルダー2(122)もTPM1(123)を利用するモデルである。携帯電話の場合、ステークホルダー2が、キャリアであって、ステークホルダー1がデバイスメーカーであった場合、デバイスメーカーの権利物であるIMEIは、TPM1(123)の機能により保護され、キャリアの権利物であるSIM情報もTPM1(123)の機能を利用して安全に保護される。
<情報処理端末>
図2は、マルチステークホルダーモデルを仮想化技術で実現した場合の情報処理端末の全体構成図である。
情報処理端末10は、CPU11、I/Oデバイス12、RAMなどの揮発メモリ13、ROMやFlashなどの不揮発メモリ12などのハードウェア群と、TPM(82)を含んだトラステッドビルディングブロック80(以降、TBBと省略)、そして、仮想TPM制御部50と仮想トラステッドビルディングブロック(60、70)(以降、仮想TBBと省略)等を含んだ仮想マシンモニター40と仮想マシン(20、30)のソフトウェア群から構成される。仮想マシン(20,30)や仮想マシンモニター40等のソフトウェアは、不揮発性メモリ、もしくは不揮発メモリに記憶されているプログラムをCPU11によって実行することによって実現される。また、図1では、TPM(82)は、ハードウェア群には含まない構成となっているが、言うまでもなくTPM(82)もハードウェア群に含まれてもよい。また、情報処理端末10がセキュアな実行環境を備えるのであれば、TPM(82)をソフトウェアで実現してもよい。本実施の形態1では、TPM(82)は、ハードウェアとして説明する。
TBB80は、TPM82と、計測・検証部81からなる。TPM80は、TCGで仕様化されるTrusted Platform Moduleの機能を有するセキュリティモジュールである。計測・検証部81は、TCGにおける、Root of Trust for Measurement(RTM)とRoot of Trust for Verification(RTV)であり、セキュアブート処理の最初に起動するモジュールである。端末自身がセキュアブートでなくトラステッドブートのみをサポートするのであれば、RTVは存在せず、Core Root of Trust for Measurement(CRTM)であってもよい。計測・検証部81は、図2には記載しないInitital Program Loader(IPL)などを記憶しているブートROMに含まれる。さらに、ここでのブートROMは、書き換え不可能なセキュアなROMであることが望ましい。
仮想マシンモニター40は、仮想TPM制御部50、仮想TBB(60、70)、デバイスドライバ41、TPMインターフェース42を含んでおり、仮想マシン(20、30)を動作させるためのインフラストラクチャを提供するソフトウェアである。
仮想TBB1(60)は、仮想マシン1(20)が利用するトラスデットビルディングブロックであり、仮想計測・検証部(61)と仮想TPM1(62)を含む。仮想TBB1(60)は、TBB80と同等の機能を仮想的に実現している部であり、仮想TPM1(62)は、TPM82と同等の機能を仮想的に実現している部であり、仮想計測・検証部61は、計測・検証部81と同等の機能を仮想的に実現している部である。ここでの仮想的に実現とは、ソフトウェアで実現していることを示す。
仮想TBB2(70)は、仮想マシン2(30)が利用するためのトラスデットビルディングである。仮想TBB2(70)およびそれを構成する仮想計測・検証部71、仮想TPM2(72)は、上述した仮想TBB1(60)と同等な機能を有するので、説明を省略する。
仮想TPM制御部50は、仮想マシン(20、30)から仮想TPMインターフェース(21、22)を介して要求されたTPMコマンドを、適切な仮想TPM(62、72)に処理依頼を振り分けたり、仮想TPMからの処理結果を、適切な仮想マシン(20、30)に返したりする、いわゆる仮想TPMをマネージメントする部である。
TPMインターフェース(42)は、TPM(82)へアクセスするためのインターフェースであって、例えば、TCGのソフトウェアスタックであるTrusted Software Stack(TSS)である。
デバイスドライバ41は、ハードウェア群にあるI/Oデバイスなどのハードウェアにアクセスするためのドライバソフトウェアである。
仮想マシン1(20)、仮想マシン2(30)は、仮想マシンモニター40上で動作する仮想マシンであり、1つの仮想マシンが、1つのステークホルダー環境として動作する。仮想マシン1、仮想マシン2については、図3を用いて詳細を説明する。
<仮想マシン>
仮想マシン1(20)は、上述したように1つのステークホルダーとして動作し、それぞれ、OSローダー1(20)、ゲストOS1(24)、アプリケーション1(25)、仮想TPMインターフェース(21)を含む構成としている。仮想TPMインターフェース(21)は、仮想TPM(62)へのアクセスするためのインターフェースであり、TCGにおけるTSSインターフェースである。TSSの実体は、図示していないが、仮想マシンモニター40に実装されるものとする。
仮想マシン1(20)は、仮想マシンモニター(40)起動後に起動される。仮想マシンの起動順としては、OSローダー1(23)、ゲストOS1(24)、アプリケーション1(25)の順である。仮想マシン1(20)は、仮想マシン1(30)の起動の際に、仮想TPMインターフェース21を介して、仮想TPM1(62)の機能を利用しながら、ブートする。
仮想マシン2(20)も、仮想マシンモニター(40)起動後に起動される。仮想マシンの起動順としては、OSローダー2(33)、ゲストOS2(34)、アプリケーション1(35)の順である。仮想マシン2(30)は、仮想マシン2(30)の起動の際に、仮想TPMインターフェース31を介して、仮想TPM2(72)の機能を利用しながら、ブートする。ブートシーケンス詳細については、図8、9を用いて後述する。
<仮想マシンモニター>
次に、図4を用いて、仮想マシンモニターの詳細について説明する。なお、以下では、図2の説明において説明していない構成要素についてのみ説明する。
仮想TPM制御部40は、トラストモデル管理部410とブート制御部420から構成される。
トラストモデル管理部410は、図1で説明したマルチステークホルダーモデルにおけるトラストモデルを管理している。具体的には、図1の3つのトラストモデルを、図5を用いて後述するTPM証明書で表現し、それらのTPM証明書(411、412、413)を管理する。TPM証明書(411、412、413)は、各TPMに付与される証明書であって、本実施の形態1では、TPM82はTPM証明書411が付与され、仮想TPM1(62)は仮想TPM1証明書412が付与され、仮想TPM2(72)は仮想TPM2証明書413が付与される。
ブート制御部420は、モジュール証明書格納部421、ブート検証部423と、PCR初期値設定部422、から構成される。
モジュール証明書格納部421には、各仮想マシンのセキュアブートシーケンスの際に、起動すべきモジュールが改竄されずにブートされているかどうかを検証する際に利用されるモジュール証明書を格納する。モジュール証明書は、認証用のインテグリティ値および、認証用の累積インテグリティ情報を含んだ証明書であり、TCGにおけるRefernece Integtiry Metrics(RIM)証明書に相当するものである。モジュール証明書については、図7を用いて後述する。
TPM(82)、仮想TPM(62、63)は、それぞれ16個のPCRを備えている。PCRは、Platform Configration Registersと呼ばれるレジスタであり、TCGのTPM_Extendコマンドにより生成されたインテグリティ値が格納される。また、なお、PCRの個数は、16個に限定されるわけではなく、それより多くても少なくても良い。なお、本実施の形態では、TCGの仕様で決められている個数以上の数を備えるものとする。
PCR初期値設定部422は、トラストモデル管理部410にて管理されているTPM証明書もしくは仮想TPM証明書に基づき、仮想マシンモニターおよび、仮想マシンそれぞれが利用するTPMのPCR83、仮想TPMのPCR(63、73)の初期値を設定する。
ブート検証部423は、トラストモデル管理部410にて管理されているTPM証明書もしくは仮想TPM証明書に基づき、各仮想マシンの起動前に、トラストモデルに基づいた信頼関係を維持しつつ起動しているかどうかを検証する部である。
<トラストモデルを定義したTPM証明書>
次に、図5を用いて、トラストモデルを定義したTPM証明書について説明する。TPM証明書のフォーマットは、TPM証明書411、仮想TPM1証明書412、仮想TPM2証明書413は、すべて同じフォーマットであるとする。具体的には、X.509形式のフォーマットを利用する。TPM証明書は、X.509のバージョンを示す証明書バージョン501、発行者によって一意な値を割り振られたシリアルナンバー502、証明書の署名検証に用いる署名アルゴリズムを示す署名アルゴリズム情報503、発行者情報504、証明書の有効期間505、証明書を受ける対象を示したサブジェクト506、鍵値や公開鍵アルゴリズムを示す公開鍵情報507、TPMバージョン508、トラストモデル識別情報509と依存TPM証明書識別情報510と依存TPM−PCR番号511、拡張領域512、そしてこれらのデータに対する署名データ513から構成される。
拡張領域512には、CRLやISO90000などの製造プロセスや、EALなどのコモンクライテリアといったセキュリティ関連情報を載せてもよいし、機能制御の条件と機能制御の内容が記載されてもよい。
本実施の形態では、トラストモデルを定義するため、トラストモデル識別情報509と依存TPM証明書識別情報510と依存TPM−PCR番号511とを証明書に含ませている。以下、これらの構成について詳細に説明する。
トラストモデル情報識別情報509は、3つのトラストモデルであるIndependent Model、Interdependent Model、Dependent Modelを識別するため情報が記載される。
依存TPM証明書識別情報510は、トラストモデルにおける信頼関係のあるTPM証明書へのポインタ情報を格納する。
依存TPM−PCR番号511は、トラストモデルに基づき、起動済み環境のTPMもしくは仮想TPMの信頼の依存関係のあるPCR番号を示している。
本実施の形態では、各TPMまたは仮想TPMは、依存TPM証明書識別情報510が示すTPMまたは仮想TPMの持つPCRのうち、依存TPM−PCR番号511が示すPCRの値を、自身のPCRの初期値として設定した上でセキュアブートを行う。ここで、ある仮想マシンBが別の仮想マシンAに依存する場合、すなわち、仮想マシンAの起動後に仮想マシンBを起動させる必要があるモデルを考える。この場合、仮想マシンBが正しく起動しているかを確認するだけでは仮想マシンAが正しく起動した後に、仮想マシンBが起動しているのかが分からない。そこで、以下のようにして、仮想マシンAの検証に用いる値(PCR値)を仮想マシンBの検証に用いる値に引き継ぐ必要がある。これは、仮想マシンBのTPMのPCR値の初期値として、仮想マシンAのモジュールの起動が完了した後のPCR値を代入することで実現できる。仮想マシンBのPCR値にも仮想マシンAのPCR値を引き継ぐことが出来る。セキュアブートにおけるPCRの累積処理では、各モジュールの起動のたびに、現在PCRに入っている値とそのモジュールから計算したインテグリティ値とを反映した値を計算し、新たなPCR値としてPCRに格納する。そのため、仮想マシンAのPCR値を初期値とすれば、仮想マシンBのPCR値に仮想マシンAのPCR値が反映されることとなる。なお、仮想マシンモニターと仮想マシンの間でPCR値を引き継ぐ場合も同様である。
前述の通り、各TPMは複数個のPCRを持つ。ここで、各PCRは、それぞれが異なるモジュールについてのPCR値を格納する。ここで、各仮想マシンは、トラストモデルに応じて自身が依存する仮想マシンまたは仮想マシンモニターの機能のどれを使用するかが異なる。そのため、各仮想マシンのトラストモデルがどのモデルかによって、どのPCR値を引き継ぐべきかが異なる。
まず、Independent Modelの場合、仮想マシンは仮想マシンモニターにのみ依存する。そのため、仮想マシンモニターの環境情報であるインテグリティ情報が格納されているPCR値を引き継ぐ。本実施の形態1では、仮想マシンモニターの環境情報がPCR0からPCR2に格納されているものとして、以降、図6から図8を用いて説明する。
また、Interdependent Modelの場合は、仮想マシンは自分自身が依存する仮想マシンのうちの一部の機能のみを使う。そのため、その機能についてのPCR値のみを引き継げばよい。
また、Dependent Modelの場合、仮想マシンは自分自身が依存する仮想マシンの全ての機能を使う。そのため、全ての機能についてのPCR値を引き継ぐ必要があるので、全PCR値を引き継ぐ必要がある。
本実施の形態では、このような制御を実現するため、TPM証明書に含ませたトラストモデル情報識別情報509、依存TPM証明書識別情報510、依存TPM−PCR番号511を用いる。これらの情報の利用方法については、図6から図8を用いて具体的に説明する。
なお、ここではTPM証明書を、公開鍵証明書として説明していたが、公開鍵証明書に限定されることなく、属性証明書であってもよい。公開鍵証明書であれば、TCGにおけるEndorsement Key(EK)証明書としてトラストモデルを表現してもよいし、属性証明書であればTCGにおけるPlatform証明書としてトラストモデルを表現してもよい。
なお、証明書のフォーマットとしてX.509形式であると説明したが、これに限定されない。証明書として必要な情報を含んでいればよく、他のフォーマットを用いてもよい。
<トラストモデルを表現したTPM証明書の例>
図6は、トラストモデルを表現したTPM証明書の具体例である。
なお、本実施の形態1では、仮想マシンモニターが起動する際に、計測された累積インテグリティ値は、TPM82のPCR83に記録され、仮想マシン1(20)が起動する際に、計測された累積インテグリティ値は、仮想TPM1(62)のPCR63に記録され、仮想マシン2(30)が起動する際に、計測された累積インテグリティ値は、仮想TPM2(72)のPCR73に記録されるものとする。また、TPM証明書の識別情報を「CERT000」、仮想TPM1証明書の識別情報を「CERT001」、仮想TPM2証明書の識別情報を「CERT002」として説明する。図6のTPM証明書は、トラストモデルに関する情報しか図示していないが、各TPM証明書は、実際には、図5で説明したフォーマットを持つ。
図6(a)は、Independent Modelの具体例である。この例では、Independent Modelを示すトラストモデル識別情報を「001」としている。また、この例は、CERT001がCERT000に信頼の依存関係があることを示し、CERT002もCERT000に信頼の依存関係があることを示している。これは、仮想マシン1が、仮想マシンモニターを信頼し、仮想マシン2も仮想マシンモニターを信頼することを示している。言い換えると、仮想マシンモニター起動後、仮想マシン1、仮想マシン2が起動されなければならないということを示している。この例では、CERT001の依存TPM証明書識別情報510が「CERT000」に、依存TPM−PCR番号511が「PCR[0−2]」になっている。これは、CERT001対応する仮想TPM1が、CERT000に対応するTPMに対して依存関係があり、仮想マシン1が起動する前に、仮想TPM1のPCR[0]、PCR[1]、PCR[2]の初期値として、TPMのPCR[0]、PCR[1]、PCR[2]が設定されることを示す。同様にCERT002の各フィールドの値は、CERT002に対応する仮想TPM2が、CERT000に対応するTPMに対して依存関係があり、仮想マシン1が起動する前に、仮想TPM1のPCR[0]、PCR[1]、PCR[2]の初期値として、TPMのPCR[0]、PCR[1]、PCR[2]が設定されることを示す。また、この例では、CERT001とCERT002のトラストモデル識別情報511が「001」となっており、仮想マシン1も仮想マシン2もIndependent Modelで動作していることが示されている。
図6(b)は、Interdependent Modelの具体例である。なお、この例は、図1(b)のモデルにおけるステークホルダー1と、ステークホルダー2が重なっている部分のモジュール(すなわち、ステークホルダー2から利用されるステークホルダー1のモジュール)のインテグリティ値が連鎖した値が、TPM1のPCR[7]に記録されるものとして説明する。この例では、Interdependent Modelを示すトラストモデル識別情報を「002」としている。また、CERT002がCERT001に信頼の依存関係があることを示し、CERT1がCERT000に信頼の依存関係があることを示している。これは、仮想マシン2が仮想マシン1を信頼し、仮想マシン1が仮想マシンモニターを信頼しているという信頼のチェーンを表している。言い換えると、仮想マシンモニター起動完了後に仮想マシン1が起動し、その次に仮想マシン1起動完了後に仮想マシン2が起動されなければならないということを示している。この例では、CERT002の依存TPM証明書識別情報510が「CERT000」に、依存TPM−PCR番号511が「PCR[0−2]」になっている。これは、CERT001に対応する仮想TPM1が、CERT000に対応するTPMに対して依存関係があり、仮想マシン1が起動する前に、仮想TPM1のPCR[0]、PCR[1]、PCR[2]の初期値として、TPMのPCR[0]、PCR[1]、PCR[2]が設定されることを示す。また、この例では、CERT002の依存TPM証明書識別情報510が「CERT001」に、依存TPM−PCR番号511が「PCR[0−2、7]」になっている。これは、CERT002に対応する仮想TPM2が、CERT000に対応するTPMに対して依存関係があり、仮想マシン1が起動する前に、仮想TPM1のPCR[0]、PCR[1]、PCR[2]とPCR[7]の初期値として、TPMのPCR[0]、PCR[1]、PCR[2]とPCR[7]が設定されることを示す。また、この例では、CERT001とCERT002のトラストモデル識別情報511が「002」となっており、仮想マシン1も仮想マシン2もInterdependent Modelで動作していることが示されている。
図6(c)は、Dependent Modelの具体例である。この例では、Dependent Modelを示すトラストモデル識別情報を「003」としている。また、この例は、CERT002がCERT001に信頼の依存関係があることを示し、CERT001がCERT000に信頼の依存関係があることを示している。これは、仮想マシン2が、仮想マシン1を信頼し、仮想マシン1が仮想マシンモニターを信頼しているという信頼のチェーンを表している。言い換えると、仮想マシンモニター起動完了後に仮想マシン1が起動し、仮想マシン1起動完了後に仮想マシン2が起動されなければならないということを示している。この例では、CERT002の依存TPM証明書識別情報510が「CERT000」に、依存TPM−PCR番号511が「PCR[0−2]」になっている。これは、仮想マシン1が起動する前に、仮想TPM1のPCR[0]、PCR[1]、PCR[2]の初期値を、TPMのPCR[0]、PCR[1]、PCR[2]の値に設定することを示す。また、ステークホルダー2がステークホルダー1の全環境に依存するモデルであるため、CERT002の依存TPM−PCR番号512には、「ALL」と記載される。これは、仮想マシン2が起動する前に、仮想TPM2の全PCR(PCR[0]、PCR[1]、PCR[2]、・・・、PCR[15])の初期値を、仮想TPM1の全PCR(PCR[0]、PCR[1]、PCR[2]、・・・、PCR[15])に設定することを示す。これらPCRの初期値の設定フローについては、図9を用いて後述する。
<モジュール証明書>
次に、モジュール証明書の説明を行う。図7は、セキュアブート処理の際に利用するモジュール証明書を示したものである。モジュール証明書700は、セキュアブートの対象となるモジュール毎に付与される証明書であり、モジュール識別情報701、モジュールバージョン情報702、この証明書を検証するために使われる署名アルゴリズムを示す署名アルゴリズム情報703、期待されるモジュールのインテグリティ値である認証インテグリティ値704、期待される連鎖処理されたインテグリティ値が格納されたPCRの値を示す認証PCR値705、連鎖処理する対象となるPCR値番号を示すPCRインデックス706、モジュール証明書自身を検証するために利用する検証鍵を識別するための検証鍵情報707、そして、証明書自身の完全性を検証するために利用される署名データ708から構成される。モジュール証明書700は、TCGにおけるReference Integrity Metrics(RIM)証明書として実現してもよい。
<トラストモデルに基づいたセキュアブート概要>
次に、図8を用いてトラストモデルに基づいてマルチステークホルダー環境におけるセキュアブートの全体シーケンスについて説明する。
まず、電源起動後、図2で示すTBB80の計測・検証部81が起動し、TPM証明書411を署名検証する。すなわち、署名データ513と予め保持している検証鍵を用いて署名検証を行うことでTPM証明書に対する改竄の有無を確認する。なお、以下で述べるTPM証明書およびモジュール証明書の署名検証も同様の処理である。(ステップS801)。
次に、TPM証明書411の依存TPM証明書識別情報510および依存TPM−PCR番号511に基づき、TPMのPCRの初期値を設定する。依存TPM証明書情報および依存TPM−PCR番号がNULLを示していれば、TPM80のPCR83をゼロで初期化する(ステップS802)。
次に、仮想マシンモニターの環境をセキュアブートする(ステップS803)。セキュアブートの詳細ステップについては、図10を用いて後述する。
次に、仮想TPM制御部のブート制御部420のブート検証部423が、トラストモデル管理部410から仮想TPM証明書を参照し、次にブートすべき仮想マシンに対応する仮想TPM証明書に対して署名検証する(ステップS804)。次にブートすべき仮想マシンの特定方法は、TPM証明書の信頼関係を示すトラストモデル識別情報509や、依存TPM証明書識別情報510を参照することでなされる。次に実行すべき仮想マシンに対する仮想TPM証明書について、S804の署名検証結果が検証NGであれば、ブート処理を中止する(ステップS808)。そうでなく、S805の仮想TPM証明書の署名検証結果が検証OKであれば、ステップS805へ処理を移す。
次に、仮想TPM制御部のブート制御部420のPCR初期値設定部422が、S805にて署名検証した仮想TPM証明書の依存TPM証明書識別情報510および依存TPM−PCR番号512に基づき、その仮想TPM証明書に対応する仮想TPMのPCRの初期値を設定する(ステップS805)。PCRの初期値の設定の詳細なフローは、図9を用いて説明する。
次に、ステップS804にて検証した仮想TPM証明書に対応する仮想マシンをセキュアブートする(ステップS806)。
次に、全ての仮想マシンのセキュアブートが完了したかどうかを確認する(ステップS809)。なお、全ての仮想マシンのセキュアブートが完了したか否かの確認は、ブート検証部において、フラグを用いた実装などで実現する。
<TPM証明書を用いたPCR設定処理>
ここでは、図8のS802、S805のTPMおよび仮想TPMのPCRの設定方法のフローについて説明する。
まず、TPM証明書もしくは仮想TPM証明書のトラストモデル識別情報509を参照し、その識別情報の値をTRUST_MODELとして管理する(ステップS901)。ここでのTRUST_MODELは、特定のレジスタであってもよいし、RAM上の一時変数であってもよい。セキュアブートの間、不揮発しない形で管理できればよいものとする。
次に、S901で参照している証明書の依存TPM識別情報510を参照する(ステップS902)。依存TPM識別情報510が「NULL」であれば、その証明書からは、信頼先がない、すなわち、その環境内における信頼根となることを示している。本実施の形態1においては、全てのトラストモデルにおいて、全ての仮想マシンは、仮想マシンモニター上で動作するので、仮想マシンモニター層のTPMに対応するTPM証明書の依存TPM識別情報510は、NULLとなる。したがって、S902の結果、NULLであれば、その証明書がTPM証明書であり、これから起動される環境が、仮想マシンモニターであるとPCR初期値設定部422が認識する(ステップS903)。そうでなく、S902の結果、NULLでなければ、その証明書は、仮想マシンが利用する仮想TPMに対応付けられた仮想TPM証明書であり、これから起動される環境が、仮想マシンであるとPCR初期値設定部422が認識する(ステップS906)。
次に、S903の処理において、PCR初期値設定部422は、仮想マシンモニター環境を起動前に、TPMの初期値を設定するために、依存TPM−PCR番号511をチェックする(ステップS904)。S904の結果、依存TPM−PCR番号511が、「NULL」であれば、TPMのPCRを0で初期化する(ステップS905)。S904の結果、NULLでないならば、エラー処理を行う(ステップS913)。なぜなら、本来、TPM証明書は信頼の依存先がない証明書であるので、依存TPM−PCR番号が設定されていないはずであり、設定されていれば証明書の内容に矛盾が生じるためエラーとする。
次に、S906以降の処理について説明する。
S906において起動対象となる仮想マシンの仮想TPM証明書の依存関係を調べる。依存TPM識別情報を参照し、依存先がTPM証明書であるのか、もしくは、仮想TPM証明書であるのかを判別する(ステップS907)。S907の結果、依存TPM識別情報がTPM証明書を示していれば、S908へ処理を移す。そうでなく、S907の結果、依存TPMが仮想TPM証明書を示していれば、S912へ処理を移す。
次に、依存TPM−PCR番号511をチェックする(ステップS908)。S908の結果、依存TPM−PCR番号511が、「NULL」であれば、仮想TPMのPCRの初期値を0で初期化する(ステップS909)。そうでなく、S908の結果、依存TPM−PCR番号が、特定のPCR番号を示していれば、依存先のTPMから、依存TPM−PCR番号511で指定されたPCR値を参照し、そのPCR値を仮想TPMのPCRの初期値として設定する(ステップS910)。そうでなく、S908の結果、依存TPM−PCR番号511が、「ALL」を示していれば、TPMの全PCRの値を参照し、そのPCR値を仮想TPMのPCRの初期値として設定する(ステップS911)。
続いて、S907の結果、依存TPMが仮想TPM証明書を示していれば、S912以降のフローについて説明する。S912では、S904、S908と同様に、証明書内のTPM−PCR番号511をチェックする(ステップS912)。S912の結果、依存TPM−PCR番号が「NULL」であれば、エラー処理を行う(ステップS913)。なぜなら、S907にて仮想TPM証明書に依存先があると判別されているため、依存先があるにもかかわらず、「NULL」となっているのは、証明書として矛盾を示すためである。
そうでなく、S912の結果、TPM−PCR番号511が特定のPCR番号を示していれば、S901で設定したTRUST MODELがINTERDEPENDENT MODELであるかどうかを確認する(ステップS914)。S914の結果、YES(トラストモデル識別情報509がINTERDEPENDENT MODELである)ならば、依存先の仮想TPMから、依存TPM−PCR番号511で指定されたPCR値を参照し、そのPCR値を依存元となる仮想TPMのPCRの初期値として設定する(ステップS915)。S914の結果、NO(トラストモデル識別情報509がINTERDEPENDNT MODELでない)ならば、エラー処理を行う(ステップS912)。ここでエラー処理を行う理由は、特定のPCR番号に依存しているということは、INTERDEPENDENT MODELを示すことになるはずであるが、トラストモデル識別情報とINTERDEPENDENT MODELでないのであれば、それは証明書として矛盾が生じるからである。
そうでなく、S912の結果、TPM−PCR番号511が「ALL」を示していれば、S901で設定したTRUST_MODELがDEPENDENT MODELであるかどうかを確認する(ステップS916)。S916の結果、YES(トラストモデル識別情報509がDEPENDENT MODELである)ならば、依存先の仮想TPMから、全てのPCR値を参照して、その値を依存元となる仮想TPMの全てのPCRの初期値として設定する(ステップS915)。S914の結果、NO(トラストモデル識別情報509がDEPENDNT MODELでない)ならば、エラー処理を行う(ステップS912)。ここでエラー処理を行う理由は、全てのPCR番号に依存しているということは、DEPENDENT MODELを示すことになるはずであるが、トラストモデル識別情報とDEPENDENT MODELでないのであれば、それは証明書として矛盾が生じるからである。
なお、図9におけるS913のエラー処理の例としては、ブート処理を中止することが考えられる。また、ブート処理を中止することなく、情報処理端末として利用できる機能を制限した形で端末を起動させるようにしてもよい。例えば、携帯電話であれば、エマージェンシーコールだけ可能な状態となるように起動するようにしてもよい。
<セキュアブート処理詳細>
図10は、図8におけるS803やS806のセキュアブート処理の詳細を示したフローである。基本的には、TCGの非特許文献4にて記載されるセキュアブート処理と同等のブート手法であるが、本実施の形態1では、図7、図8で示したように、仮想マシンモニターと、各仮想マシンの起動において、TPM・仮想TPMのPCRに設定される初期値が異なる。非特許文献4では、TPM・仮想TPMのPCRに設定される初期値は常に「0」であるが、本実施の形態ではトラストモデルによっては「0」ではない初期値が設定される。このような構成によって、仮想マシンモニターと仮想マシン間、また各仮想マシン間でインテグリティ値情報を連鎖させるという点が非特許文献4の内容と異なる。
以下、図10を用いて、本実施の形態におけるセキュアブート処理フローを説明する。
まず、最初に起動すべきモジュールのインテグリティ値を計測する(ステップS1001)。例えば、S803の仮想マシンモニターのセキュアブート処理であれば、まずTBB80の計測・検証部81が起動し、仮想マシンモニター40のインテグリティ値を計測する。S806における「仮想マシンをセキュアブート」の処理であれば、まず仮想TBBの計測・検証部が起動し、OSローダーを検証する。
次に、S1001で計測したインテグリティ値と、図8で説明したモジュール証明書に記載される認証インテグリティ値704と照合する(ステップS1002)。S1002の照合の結果、両者の値が等しくなければ、S1008へ処理を移しセキュアブートを中止する。そうでなく、S1002の照合の結果、両者の値が等しければ、S903へ処理を移す。
次に、モジュール証明書の署名検証をする(ステップS1003)。S1003の署名検証の結果が、検証NGであれば、S1008へ処理を移しセキュアブートを中止する。
そうでなく、S1003の署名検証の結果が、検証OKであれば、S1004へ処理を移す。ここでの署名検証処理は、モジュール証明書に記載される検証鍵識別情報707に対応する鍵を用いて検証を行う。
次に、TPMもしくは仮想TPMのPCRの値と、モジュール証明書に記載される認証PCR705が等しいかどうかを照合する(ステップS1004)。S803における「仮想マシンモニターのセキュアブート」の処理であれば、TPMのPCRの値と、モジュール証明書に記載される認証PCR705の値が等しいかどうかを照合し、S805における「仮想マシンのセキュアブート」の処理であれば、仮想TPMのPCRの値と、モジュール証明書700に記載される認証PCR705の値が等しいかどうかを照合する。S1004の照合の結果、等しくないと判断されれば、S908へ処理を移し、セキュアブート処理を中止する。そうでなく、S1004の照合の結果、等しいと判断されれば、S905へ処理を移す。
次に、モジュール証明書700内の認証インテグリティ値704と、PCRインデックス706に指定された番号のPCR値を利用して連鎖処理を行い、連鎖した結果をPCRインデックス706で指定されたPCR番号に格納する(ステップS1005)。
次に、S1001、S1002で検証されたモジュールを実行する(ステップS1006)。
次に、セキュアブートが完了したかどうかを確認する(ステップS1007)。セキュアブートが完了せず、セキュアブート対象のモジュールがブートされずに残っていれば、S1001へ処理を移し、セキュアブート処理を継続する。全てのセキュアブート対象のモジュールが検証され、実行されていればセキュアブート処理は終了する。
ここでの仮想マシンのセキュアブートの対象とするモジュールは、OSローダー、ゲストOS、そしてアプリケーションまで含めても良いし、アプリケーションまで含めずゲストOS環境までとしても良い。
(実施の形態2)
本実施の形態2では、ネットワーク経由の外部のサーバーに端末環境情報を通知し、サーバー側で端末の環境の正当性を検証するモデルを説明する。この検証モデルは、TCGにおけるAttestation機能をベースとする。本実施の形態で説明するモデルは、従来のAttestation機能にはない、マルチステークホルダーモデル端末が想定されるトラストモデルで起動しているかどうかをサーバー側で検証することを可能にするモデルである。
<Attestation処理の概要>
図11は、実施の形態1の情報処理端末1000と同等の構成をとるが、ネットワーク3000経由で、外部のサービス提供サーバー2000に対して端末環境情報を通知できる点が異なる。具体的には、情報処理端末1000は、仮想マシン1(1010)、仮想マシン2(1020)にそれぞれ通知部(1011、1021)を備える。さらに、仮想TPM1(1031)、仮想TPM2(1021)は、外部のサービス提供サーバー2000からAttestation処理要求の結果として署名データを生成する。具体的には、TPMのPCR値に対して、図示しないAttestation Identity Key(AIK)を用いて、署名を生成する。AIKは、公開鍵暗号における鍵ペアであり秘密鍵は情報処理端末内でセキュアに保持し、その秘密鍵に対応する公開鍵は、外部のサービスサーバーが保持する。AIKの公開鍵の正当性については、CA(Certification Authority)が作成した公開鍵証明書(AIK証明書)を利用することで検証できる。証明書の発行プロセスや公開鍵証明書を利用した鍵の検証方法は、一般に広く知られるPublic Key Infrastructure(PKI)技術を用いるので、説明を省略する。
<Attestationシーケンス>
続いて、図12を用いて本実施の形態2におけるAttestationのシーケンスについて説明する。この図12のシーケンスでは、情報処理端末が、外部のサービス提供サーバーに対して、サービスを要求し、サービス提供サーバーは、Attestation機能を利用し、情報処理端末の正当性を確認した上で、サービスを提供する例で説明する。
まず、情報処理端末が、情報処理端末を識別するための端末識別情報と共に、サービス提供サーバーに対して、サービス要求を行う(ステップS1101)。
次に、サービス提供サーバーは、トラストモデル管理データベースにアクセスし、端末識別情報に対応するTPM証明書および仮想TPM証明書を参照し、情報処理端末のトラストモデルを判別する。トラストモデル判別後、サービス提供サーバーが検証したいPCR番号を決定する。例えば、図6(c)のトラストモデルにおいて、仮想マシンモニターと仮想マシン1の間のトラストモデルを検証する場合、仮想マシン1のTPM証明書識別情報であるCERT001と、識別情報と、PCR番号0、1、2を指定する(ステップS1102)。
次に、サービス提供サーバーは、ノンス(乱数)を生成し、S1101で決定した仮想TPM証明書IDとPCR番号とノンスを情報処理端末へ送信する(ステップS1103)。
次に、サービスを要求した仮想マシンが、S1103の情報を受信し、受信した情報を仮想マシンモニター1030の仮想TPM制御部1033に通知する(ステップS1104)。
次に、仮想TPM制御部は、S1104で受信した情報から、仮想TPMに対して、ノンスと、指定されたPCRに対して署名生成依頼し、仮想TPMで指定されたPCR値情報とノンスに対してAIK秘密鍵を利用し、署名生成を行う(ステップS1105)。S1105における署名生成は、TCGで仕様化されているTPM_QuoteやTPM_Quote2コマンドを利用する。
次に、情報処理端末は、通知部を利用し、署名したデータとノンス、PCR、そしてAIK証明書をサービス提供サーバーに送信する(ステップS1106)。
次に、サービス提供サーバーは、AIK証明書の正当性をチェックする(ステップS1107)。AIK証明書は、CA(Certificate Authority)が発行しているので、CAの公開鍵で検証する。S1107の検証の結果、チェックNGであれば、情報処理端末にエラーを送信する(ステップS1111)。そうでなく、S1107の検証の結果、チェックOKであれば、ステップS1108へ処理を移す。
次に、ノンスのデータを検証する。サービス提供サーバーが指定したノンスであるかどうかを確認する(ステップS1108)。S1108にて、チェックNGであれば、情報処理端末にエラーを送信する(ステップS1111)。そうでなく、S1108の検証の結果、チェックOKであれば、ステップS1109へ処理を移す。
次に、サービス提供サーバーは、認証PCRデータベース2002にアクセスし、S1103で指定した仮想TPM証明書の識別情報に対応する認証PCRと、情報処理端末から送信されたPCRの値とを比較することで情報処理端末の正当性を検証する(ステップS1109)。S1109の検証結果が、チェックNGであれば、エラーを送信する(ステップS1111)。そうでなく、S1109の検証結果が、OKであれば、すなわち、両者のPCRが等しければ、サービス提供サーバーは、サービス提供サーバーが指定した仮想マシン環境においてトラストモデルが維持された形で、正常に起動していると判断し、情報処理端末に対してサービスを提供する。
このようにすることで、サービス提供サーバーは、正当性の検証された情報処理端末にのみサービスを提供することができる。さらには、サービス提供サーバーは、従来技術においては、サービスを要求してきた端末が、仮想マシンモニター上で動作しているかの判別ができなかったが、トラストモデル管理データベース内でトラストモデルを定義したTPM証明書・仮想TPM証明書を保持しているので、仮想マシンモニター上で動作しているマシンの判別が可能になる。さらには、マルチステークホルダーモデルのような仮想マシン間で依存関係のある構成の端末においても、トラストモデル管理データベース内の証明書を参照することで、どのトラストモデルで動作しているかどうか、そして、期待されるトラストモデルに基づいて、起動しているかどうかを判別することができ、サービス提供者は、より柔軟に情報処理端末内の環境の正当性を検証できる。
以上で、実施の形態2の説明を終わる。
S1107からS1109のサービス提供サーバー側での検証ステップについて説明したが、これらの検証のステップに限定されなくてもよい。例えば、認証PCRデータベースの認証PCRとS1101で送信したノンス情報に対して生成した認証ハッシュ値と、S1106にて受け付けた署名データをAIK証明書に記載される公開鍵で復号し、復号されたハッシュ値とを、比較することで検証してもよい。
(実施の形態3)
本実施の形態3では、情報処理端末1200は、実施の形態1、2の仮想マシンとは別に、さらに管理用のマシン環境(管理マシン1201)を備える。図13は、管理用マシンを備えた情報処理端末1200の全体構成図である。実施の形態1、2と大きく異なる点は、仮想マシンモニター内に存在した仮想TPM制御部1202、仮想トラステッドビルディングブロック(1230,1240)が管理マシン1201内に、そして仮想マシンモニター1203に、仮想TPM制御通知部1204が新規に構成されている点である。実施の形態1、2で説明した機能と同一の機能を実現する部分については説明を省略し、実施の形態1、2と異なる機能を有する部分のみについて説明をする。
仮想TPM制御通知部1204は、仮想マシン(1211、1220)の仮想TPMインターフェース(1211、1222)から仮想TPMの処理要求を受付け、受付けた仮想TPM処理要求を、管理マシン1201の仮想TPM制御部1202に通知する。
仮想TPM管理部1202は、仮想TPM制御通知部1204から通知された仮想TPM処理要求を、適切な仮想TBB内の仮想TPMに対して処理要求をする。図13の例では、仮想マシン1210からの仮想TPM処理要求であれば、仮想TPM1(1232)へ、また、仮想マシン1220からの仮想TPM処理要求であれば、仮想TPM2(1242)へ処理要求を行う。
仮想TPMによる仮想TPM処理要求の結果は、仮想TPM管理部1202から仮想TPM制御通知部を介し、要求元である仮想マシンへ処理結果を返す。図11の例では、仮想TPM1(1232)からの仮想TPM処理結果であれば、仮想マシン1(1210)へ、そして仮想TPM2(1242)からの仮想TPM処理結果であれば、仮想マシン2(1220)へ、処理結果を返す。
また、仮想マシンからデバイスへの処理用要求は、仮想デバイスドライバ(1212、1223)から仮想マシンモニター1203を経由し、管理マシン1201のデバイスドライバ1260に処理が依頼され、デバイスドライバ1260がデバイスに対する処理を行う。デバイスの処理結果は、デバイスへの処理用要求と逆のフローで処理結果が返るので、詳細説明は省略する。
また、本実施の形態3において、管理マシンは、TPM1272を利用してセキュアな処理を実行する。したがって、管理マシンの環境情報となるインテグリティ値は、TPM1272に記録される。この場合、仮想マシンモニターのインテグリティ値と、管理マシンのインテグリティ値とを連鎖し、連鎖した値は、TPM1272に記録される。また、図12に図示しないTPM証明書は、仮想マシンモニターと管理マシンが利用するTPM1272に対応づけられた証明書とする。これにより、仮想マシンを、仮想マシンモニターに対してだけでなく管理マシンに対しても信頼の依存関係を持たせることが可能となる。このTPM証明書を利用して、セキュアブートすることで、仮想マシンモニターのインテグリティ値だけでなく、管理マシンのインテグリティ値も、仮想マシンのインテグリティ値に連鎖させることができ、連鎖した値は、仮想TPMのPCRに記録される。このように仮想マシン環境および管理マシンの正当性を検証しながら、情報処理端末を起動させることが可能になる。
また、実施の形態2のようなAttestation処理を行う場合、仮想マシンは、図12に図示しない仮想マシンの通知部により、仮想マシンの環境情報と、仮想マシンモニターおよび管理マシンのインテグリティ値とを連鎖させた値を外部のサービス提供サーバーに送信することが可能となる。これにより外部のサービス提供サーバーにて、情報処理端末の全環境情報の正当性を検証することが可能となる。
なお、仮想マシンに通知部を持たせず、管理マシン内に通知部を持たせるようにしてもよい。これにより、外部サービス提供サーバーからのAttestation処理結果が、仮想マシンが正当でないという結果であった場合に、管理マシンが、仮想マシンの停止や、仮想マシンに対する機能を制限させてもよい。
以上で、実施の形態3の説明を終わる。
なお、仮想マシン間、あるいは仮想マシンと仮想マシンモニター・管理マシン間でインテグリティ値を連鎖させず、それぞれのマシン内だけで連鎖処理を閉じるようにしてもよい。この場合、TPM証明書によって起動の順序だけを制御する。このようにすることで、マシンごとに独立した環境情報がそれぞれのTPMのPCRに記録されるようになり、個々のマシン環境を個別に検証することも可能となる。
また、TPMのPCRを2重に持たせるようにしてもよい。この場合、依存関係のある環境情報を連鎖させたインテグリティ情報を記録するPCR群と、依存関係のある環境情報を連鎖させないインテグリティ情報を記録するPCR群とを持たせる。また、この場合、モジュール証明書に記載される認証PCRの領域も2重に持つようにし、1つは依存関係のある環境情報を連鎖させたインテグリティ情報を示した認証PCR値と、もう1つは依存関係のある環境情報を連鎖させないインテグリティ情報を示した認証PCR値とする。このようにすることで、情報処理端末内の個別のマシン環境情報の正当性検証と、情報処理端末の全環境の正当性検証の2つの検証が可能となり、セキュアブートによる検証およびAttestationによる検証が、より柔軟になる。
(その他変形例)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(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)本発明の一実施態様である情報処理装置は、複数のステークホルダーの各々に対応する複数の仮想マシンと、前記複数の仮想マシンの各々に対応する複数の耐タンパモジュールと、前記複数の仮想マシンと前記複数の耐タンパモジュールとの間の処理を管理する管理部とを具備し、前記複数の仮想マシンの各々は、前記複数の仮想マシンの相互間において依存関係を持たせた証明書を有するものである。
この構成によると、前記複数の仮想マシンの各々の依存関係を、証明書を用いて管理することにより、前記複数の仮想マシンの各々の依存関係は改竄されたものではないことが保証されるので、前記複数の仮想マシンが所望の依存関係で正規に動作することを保証できる。
また、本発明の一実施態様である情報処理装置は、前記情報処理装置において、複数の仮想マシンの各々が、複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動するものである。
この構成によると、複数の仮想マシンの各々が起動する際、複数の仮想マシンの相互間において依存関係を証明する証明書を参照して証明書の依存関係に従った順序で起動するので、予め定められた所望の順序で前記複数の仮想マシンが相互に関連して起動するのを保証できる。
また、本発明の一実施態様である情報処理装置は、前記情報処理装置において、複数の仮想マシンの各々が、複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動し、証明書の依存関係に従った順序による起動により最終的に得られた検証値を有する耐タンパモジュールは、前記検証値に基づいて前記複数の仮想マシン全体の検証を行うものである。
この構成によると、複数の仮想マシンの各々が起動する際、複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動することにより、複数の仮想マシンの各々が相互に関連した検証値を、証明書の依存関係に従った順序による起動によって最終的に得られた検証値として得ることができるので、複数の仮想マシンの起動がステークホルダー単位となって起動の連鎖が途切れるのを防止できる。
また、前記情報処理装置において、複数のステークホルダーの各々が、各ステークホルダーが対応する耐タンパモジュールのみを利用する第1ステークホルダーモデル、あるステークホルダーが対応する耐タンパモジュール及び他のステークホルダーに対応する耐タンパモジュールの一領域を利用する第2ステークホルダーモデル、及びあるステークホルダーが対応する耐タンパモジュールを有さず他のステークホルダーに対応する耐タンパモジュールの全領域を利用する第3ステークホルダーモデルの中のいずれかのステークホルダーモデルに対応し、複数の仮想マシンの各々は、複数のステークホルダーの各々のステークモデルを表現した証明書であって前記複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動するものである。
この構成によると、複数の仮想マシンの各々が起動する際、前記複数のステータスホルダーの各々のステークホルダーモデルを表現した証明書であって複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動することにより、複数の仮想マシンの各々が相互に関連した検証値を、証明書の依存関係に従った順序による起動によって最終的に得られた検証値として得ることができるので、複数の仮想マシンの起動がステークホルダー単位となって起動の連鎖が途切れるのを防止できる。
また、複数のステータスホルダーの各々のステークモデルを表現した証明書であって複数のステータスホルダーの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動することにより、各仮想マシンは対応するステークホルダーモデルに従って起動していることが保証されるので、正しいステークホルダーモデルで動作していることの判別を確実にできる。
また、前記情報処理装置において、証明書が、ステークモデルのタイプ、自己の仮想マシンが連鎖する他の仮想マシンを示すポインタ、自己の仮想マシンが連鎖する他の仮想マシンに対応する耐タンパモジュール内のレジスタを示すPCR番号を含むものである。
また、前記情報処理装置において、複数の仮想マシンの各々が、証明書に基づいて連鎖する仮想マシンのステークホルダーモデルを判断する場合であって、証明書のポインタが示すステークホルダーモデルが第2ステークホルダーモデル及び第3ステークホルダーモデルのいずれであることを示す場合、証明書のPCR番号に基づいて自己の仮想マシンのステークホルダーモデルが第2ステークホルダーモデル又は第3ステークホルダーモデルかを判断するものである。
この構成によると、証明書を用いてセキュアブートする際に、第2ステークホルダー及び第3ステークホルダーが、他のステークホルダーに対応する耐タンパモジュールを利用するという共通する性格を有するために、証明書が第2ステークホルダーモデル及び第3ステークホルダーモデルの双方を示すことになる場合であっても、証明書のPCR番号に基づいて自己のステークホルダーが第2ステークホルダーモデル又は第3ステークホルダーモデルかを判断することにより、いずれのステークホルダーモデルかの判断が可能となるので、各仮想マシンは対応するステークホルダーモデルの誤判断を簡易な構成により容易に防止できる。
また、前記情報処理装置において、複数の仮想マシンの各々が、証明書のPCR番号が連鎖する仮想マシンに対応する耐タンパモジュール内のレジスタの一領域を示す場合、自己の仮想マシンのステークホルダーモデルが第2ステークホルダーモデルであると判断するものである。
また、前記情報処理装置において、連鎖する仮想マシンの耐タンパモジュール内のレジスタの一領域は、前記複数の仮想マシンの一が、連鎖する仮想マシンに対応する耐タンパモジュール内のレジスタを重複して利用する領域である。
また、前記情報処理装置において、前記複数の仮想マシンの各々が、前記証明書のPCR番号が連鎖する仮想マシンに対応する耐タンパモジュール内のレジスタの全領域を示す場合、自己のステークホルダーモデルが第3ステークホルダーモデルであると判断するものである。
また、前記情報処理装置において、前記管理部が、外部のサーバー装置から認証要求(ATTESTATION)があった場合、前記証明書の依存関係に従った順序による起動により最終的に得られた検証値を前記サーバー装置に送信するものである。
この構成によると、サービスを提供するサーバー装置側において、情報処理装置内の複数の仮想マシンが正しいステークホルダーモデルで動作していることを確実に検証できる。
また、前記情報処理装置において、複数の仮想マシンの各々が、起動する際に所定の検証用演算により改ざんチェックするものである。
また、前記情報処理装置において、複数の仮想マシンの各々が、所定の検証用演算により改ざんチェックする際、前記管理部の検証により得られた検証値に基づいて、前記複数の仮想マシンの各々の検証値を連鎖させて前記所定の検証用演算を行うものである。
この構成によると、管理部の検証により得られた検証値に基づいて、複数の仮想マシンの各々の検証値を連鎖させて前記所定の検証用演算を行うことにより、管理部の検証値を前記前記複数の仮想マシンにおける検証用演算に反映させるので、複数の仮想マシンが正しい管理部を介在して動作していることを確認できる。
また、前記情報処理装置において、複数の仮想マシン中で、セキュアブートにより最終的に得られた検証値を有する耐タンパモジュールが、耐タンパモジュール内に前記検証値を保持するものである。
また、前記情報処理装置において、セキュアブートにより最終的に得られた検証値を有する耐タンパモジュールが、前記検証値に基づいて前記複数の仮想マシン及び前記管理部を含めた全体の検証を行うものである。
また、前記情報処理装置において、所定の検証用演算はハッシュ演算であり、検証値はハッシュ値としたものである。
また、前記情報処理装置において、証明書が、複数の仮想マシンの相互間および複数の仮想マシンと管理部との相互間における依存関係を証明しているものである。
この構成によると、証明書に、複数の仮想マシンの相互間および複数の仮想マシンと管理部との相互間における依存関係を証明させることにより、証明書は管理部を含めた複数の仮想マシンの各々の依存関係を証明することになるので、管理部を含めた複数の仮想マシンの各々の依存関係は改竄されたものではないことが保証され、管理部を含めた複数の仮想マシンが所望の依存関係で正規に動作することを保証できる。
また、前記情報処理装置において、複数の仮想マシンの各々が、複数の仮想マシンの相互間、および複数の仮想マシンと管理部との相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動するものである。
この構成によると、前記複数の仮想マシンの各々が起動する際、管理部を含めた複数の仮想マシンの相互間において依存関係を証明する証明書を参照して証明書の依存関係に従った順序で起動するので、予め定められた所望の順序で管理部を含めて複数の仮想マシンが相互に関連して起動するのを保証できる。
また、前記情報処理装置において、複数の仮想マシンの各々は、複数の仮想マシンの相互間、および複数の仮想マシンと管理部との相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動し、証明書の依存関係に従った順序による起動により最終的に得られた検証値を有する耐タンパモジュールは、検証値に基づいて複数の仮想マシン全体の検証を行うものである。
この構成によると、複数の仮想マシンの各々が起動する際、管理部を含めた複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動することにより、管理部を含めた複数の仮想マシンの各々が相互に関連した検証値を、証明書の依存関係に従った順序による起動によって最終的に得られた検証値として得ることができるので、管理部を含めて複数の仮想マシンの起動がステークホルダー単位となって起動の連鎖が途切れるのを防止できる。
また、前記情報処理装置において、複数のステークホルダーの各々が、各ステークホルダーが対応する耐タンパモジュールのみを利用する第1ステークホルダーモデル、あるステークホルダーが対応する耐タンパモジュール及び他のステークホルダーに対応する耐タンパモジュールの一領域を利用する第2ステークホルダーモデル、及びあるステークホルダーが対応する耐タンパモジュールを有さず他のステークホルダーに対応する耐タンパモジュールの全領域を利用する第3ステークホルダーモデルの中のいずれかのステークホルダーモデルに対応し、複数の仮想マシンの各々が、複数のステークホルダーの各々のステークモデルを表現した証明書であって複数の仮想マシンの相互間および複数の仮想マシンと管理部との相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動するものである。
この構成によると、複数の仮想マシンの各々が起動する際、管理部を含めた複数のステータスホルダーの各々のステークホルダーモデルを表現した証明書であって複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動することにより、管理部を含めて複数の仮想マシンの各々が相互に関連した検証値を、証明書の依存関係に従った順序による起動によって最終的に得られた検証値として得ることができるので、管理部を含めて複数の仮想マシンの起動がステークホルダー単位となって起動の連鎖が途切れるのを防止できる。
また、前記情報処理装置において、管理部に対応する第2の耐タンパーモジュールを設け、証明書が、ステークモデルのタイプ、自己の仮想マシンが連鎖する他の仮想マシンを示すポインタ、自己の仮想マシンが連鎖する他の仮想マシンに対応する耐タンパモジュール内のレジスタを示すPCR番号、及び前記第2の耐タンパモジュール内のレジスタを示すPCR番号を含むものである。
また、本発明の一実施態様である情報処理装置は、前記情報処理装置の機能を備えた携帯端末機器である。
また、本発明の一実施態様である制御方法は、複数のステークホルダーの各々に対応する複数の仮想マシンと、複数の仮想マシンの各々に対応する複数の耐タンパモジュールと、複数の仮想マシンと複数の耐タンパモジュールとの間の処理を管理する管理部とを具備した情報処理装置の制御方法であって、複数の仮想マシンの各々は、複数の仮想マシンの相互間において依存関係を持たせた証明書を有し、複数の仮想マシンの各々は、複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動し、証明書の依存関係に従った順序による起動により最終的に得られた検証値を有する耐タンパモジュールは、検証値に基づいて前記複数の仮想マシン全体の検証を行うものである。
この構成によると、複数の仮想マシンの各々の依存関係を、証明書を用いて管理することにより、複数の仮想マシンの各々の依存関係は改竄されたものではないことが保証されるので、複数の仮想マシンが所望の依存関係で正規に動作することを保証できる。
また、複数の仮想マシンの各々が起動する際、複数の仮想マシンの相互間において依存関係を証明する証明書を参照して証明書の依存関係に従った順序で起動するので、予め定められた所望の順序で複数の仮想マシンが相互に関連して起動するのを保証できる。
また、本発明の一実施態様である制御プログラムは、複数のステークホルダーの各々に対応する複数の仮想マシンと、前記複数の仮想マシンの各々に対応する複数の耐タンパモジュールと、前記複数の仮想マシンと前記複数の耐タンパモジュールとの間の処理を管理する管理部とを具備した情報処理装置の制御プログラムであって、前記複数の仮想マシンの各々は、前記複数の仮想マシンの相互間において依存関係を持たせた証明書を有し、前記制御プログラムは、前記複数の仮想マシンの各々を、前記複数の仮想マシンの相互間において依存関係を持たせた前記証明書を用いて、前記証明書の依存関係に従った順序で起動し、前記証明書の依存関係に従った順序による起動により最終的に得られた検証値を有する耐タンパモジュールに、前記検証値に基づいて前記複数の仮想マシン全体の検証を行わせるものである。
この構成によると、複数の仮想マシンの各々の依存関係を、証明書を用いて管理することにより、複数の仮想マシンの各々の依存関係は改竄されたものではないことが保証されるので、複数の仮想マシンが所望の依存関係で正規に動作することを保証できる。
また、複数の仮想マシンの各々が起動する際、複数の仮想マシンの相互間において依存関係を証明する証明書を参照して証明書の依存関係に従った順序で起動するので、予め定められた所望の順序で複数の仮想マシンが相互に関連して起動するのを保証できる。
また、本発明の一実施態様である集積回路は、情報処理装置で用いられる集積回路であって、複数のステークホルダーの各々に対応する複数の仮想マシンと、前記複数の仮想マシンの各々に対応する複数の耐タンパモジュールと、前記複数の仮想マシンと前記複数の耐タンパモジュールとの間の処理を管理する管理部とを具備し、前記複数の仮想マシンの各々は、前記複数の仮想マシンの相互間において依存関係を持たせた証明書を有するものである。
この構成によると、前記複数の仮想マシンの各々の依存関係を、証明書を用いて管理することにより、前記複数の仮想マシンの各々の依存関係は改竄されたものではないことが保証されるので、前記複数の仮想マシンが所望の依存関係で正規に動作することを保証できる。
(6)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明にかかる仮想マシンのセキュアブート制御方法を利用により、複数の仮想マシンの各々が起動する際、複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動することにより、複数の仮想マシンの各々が相互に関連した検証値を、証明書の依存関係に従った順序による起動によって最終的に得られた検証値として得ることができるので、複数の仮想マシンの起動がステークホルダー単位となって起動の連鎖が途切れるのを防止できる。
本発明は、仮想化技術を利用した複数のステークホルダーを備える装置において、各ステークホルダー間の依存関係に基づきセキュアブート処理する情報処理装置に関するものである。
近年、情報セキュリティへの意識の高まりと共に、データを保護する技術ニーズが高まってきている。
これを背景として、セキュアなコンピュータプラットフォームを開発、普及させることを目的として、Trusted Computing Group(TCG)が設立された。TCGでは、Trusted Platform Module(TPM)と呼ばれるセキュリティコアモジュールを利用し、安全な端末環境を実現している(非特許文献1〜3参照)。TCGの基本機能として、特徴的な機能が2つある。まず、端末起動時から、OSやアプリケーションが起動するまでの各モジュールのインテグリティ情報を計測し、計測した値を、それより前のモジュールのインテグリティ情報を連鎖させる累積処理(TCGのTPM_Extendコマンドに相当する処理)をし、その累積値をTPM内のPlatform Configration Registers(PCR)と呼ばれるレジスタに格納するTrusted Boot機能がある。また、PCRに蓄積した値を端末環境情報として、外部のサーバーに通知し、外部のサーバーでは、期待される環境情報であるかどうかを検証するというAttestation機能がある。これらの機能を利用し、リモートで端末の環境の正当性を検証可能であることが、TCG技術のメリットの1つである。
また、TCGは、TPM搭載端末として、携帯電話もターゲットとしており、携帯電話向けのTPMの仕様も規格化されている(非特許文献3、4)。携帯電話向けのTPMは、Mobile Trusted Module(MTM)と呼ばれている。MTMは、TPMの機能を実現しながらも、一部のコマンドを携帯電話向けにコマンドを修正したり、新規コマンドが追加されている。その追加機能として、セキュアブート機能と、マルチステークホルダーモデルを定義している。
セキュアブートとは、携帯電話の端末起動時から、OSやアプリケーションが起動するまでの各モジュールのインテグリティ情報を計測し、計測した値が期待される値であるかを、ローカル端末内で検証しながらブートする方式である。
また、マルチステークホルダーモデルとは、デバイスメーカー、キャリア、アプリケーションサービス提供者、ユーザーといった携帯電話端末内に存在する複数のステークホルダーが所有する権利物を安全に利用するための実装モデルを定義したものである。各ステークホルダーの権利物として、例えば、デバイスメーカーであれば、International Mobile Equipment Identity(IMEI)であり、キャリアであれば、Subscriber Identification Module(SIM)関連情報であり、アプリケーションサービス提供者であれば、サービス提供されたデータであり、ユーザーであれば、アドレス帳が挙げられる。要するに、マルチステークホルダーモデルとは、それぞれのステークホルダーが利用するMTMを、個別に割り当てることでそれぞれの権利物を安全に利用するモデルである。仮想化技術を用いることで、1つの端末内に、複数のMTMを仮想的に実現することが可能となる。
特許文献1は、仮想化技術を利用して仮想TPMを実現する技術を開示している。
特表2008−500651号公報
TPM Main,Part1 Design Principles,Specification version 1.2 Level2 Rivision103(9 July 2007) TPM Main,Part2 TPM Structures,Specification version1.2 Level2 Revision103(9 July 2007) TPM Main Part3 Commands,Specification version 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 version1.0 Revision1(12 June 2007)
特許文献1は、仮想化技術を利用し、仮想マシンモニター上で仮想マシンを動作させる方法であって、仮想マシンが利用するTPMは、仮想TPMとして実現される。その仮想TPMが持つ鍵や証明書などのセンシティブな情報は、別途、端末内に備える物理TPMを利用して保護される。この特許文献1の実装モデルでは、端末起動時から仮想マシンモニター層までのインテグリティ値を連鎖処理した値は、物理TPMのPCRに格納される。また、仮想マシンのインテグリティ値を連鎖処理した値は、それぞれの仮想マシンに割り当てられた仮想TPMのPCRに格納される。ここで、仮想化技術は、仮想マシンが、あたかも1台の実マシンのように振る舞うことを可能にする技術であるため、TCGにおけるセキュアブート処理のインテグリティ値の連鎖処理が、仮想マシンで閉じてしまうことになる。すなわち、仮想マシンモニターから仮想マシンが起動するまでのインテグリティの連鎖が、途中で切れてしまうことになる。したがって、インテグリティ値の確認によって、端末環境の正当性を検証しようとしても、仮想マシンより下の層の環境、すなわち仮想マシンモニター層の環境の正当性を検証することができないという課題があった。
また、マルチステークホルダーモデルでは、ステークホルダー間で依存関係を持たせるという、トラストモデルを定義している。トラストモデルとは、具体的には、キャリアがデバイスメーカーのMTMを利用して、デバイスメーカーの権利物であるIMEIデータを参照するなどといった例を実現するためのモデルである。この場合、キャリアは、デバイスメーカー環境を信頼した上で、デバイスメーカーのMTM機能を利用する。しかしながら、特許文献1では、仮想マシン間の信頼関係はないという前提における技術であるので、このようなトラストモデルを定義したマルチステークホルダーモデルの実装、および所定のトラストモデルで起動しているかどうか検証することができないという課題があった。
そこで、本発明はこれらの課題を解決するもので、仮想化技術により、マルチステークホルダーモデルを実現しつつ、マルチステークホルダーモデルで定義されるステークホルダー間の信頼関係(トラストモデル)を維持した状態でセキュアブートさせる方法と、さらには、仮想マシンモニターの環境も含めて端末の正当性検証が可能になる方法を実現する。
上記の課題を解決するために、本発明に係る情報処理装置は、複数の仮想マシンを動作させる情報処理装置であって、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を格納する依存情報格納部と、前記複数の仮想マシンの起動を管理し、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御する仮想マシン管理部とを備える。
本発明の一実施態様である情報処理装置は、上述の構成を備えることにより、複数の仮想マシンのうち、他の仮想マシンの機能を使用するものを特定でき、特定された仮想マシンを、前記他の仮想マシンが必ず起動状態になってから起動させ、前記特定された仮想マシンに前記他の仮想マシンの機能を確実に使用させることができる。したがって、複数の仮想マシンを所定の信頼関係を維持した状態で起動させることができる。
本発明の実施の形態1におけるマルチステークホルダーモデルにおけるトラストモデルを示す図 本発明の実施の形態1における情報処理端末を示す図 本発明の実施の形態1における仮想マシンの構成を示す図 本発明の実施の形態1における仮想マシンモニターの構成を示す図 本発明の実施の形態1におけるTPM証明書を示す図 本発明の実施の形態1におけるTPM証明書によるトラストモデル表現を示した図 本発明の実施の形態1におけるモジュール証明書を示した図 本発明の実施の形態1におけるトラストモデルに基づいたセキュアブートのフローチャート 本発明の実施の形態1におけるPCRの初期値設定のフローチャート 本発明の実施の形態1におけるセキュアブート詳細フローチャート 本発明の実施の形態2におけるAttestationモデルを示す図 本発明の実施の形態2におけるAttestationモデルのシーケンス図 本発明の実施の形態3における情報処理端末の構成を示す図
請求項1に記載の態様である情報処理装置は、複数の仮想マシンを動作させる情報処理装置であって、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を格納する依存情報格納部と、前記複数の仮想マシンの起動を管理し、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御する仮想マシン管理部とを備える。
また、前記情報処理装置は、更に、前記複数の仮想マシンそれぞれに対応し、前記複数の仮想マシンそれぞれの持つ機能の完全性の検証に用いる検証情報をそれぞれ格納する複数の状態格納部を備え、前記仮想マシン管理部は、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンの状態格納部から前記起動すべき仮想マシンが使用する機能の検証情報を読み出し、前記起動すべき仮想マシンの状態格納部に反映することとしてもよい。
この構成によれば、複数の仮想マシンのそれぞれを、前記検証情報に係る機能を持つ他の仮想マシンの完全性を引き継いだ状態で起動し、動作させることができる。したがって、仮想マシン間の信頼関係を維持した状態で、検証情報を用いた検証を行うことができる。これにより、仮想マシンが所定の信頼関係を維持した状態で起動しているか検証することができ、信頼関係を維持した状態でのセキュアブートが可能となる。
また、前記複数の状態格納部はそれぞれ複数の記録領域を持ち、前記複数の状態格納部それぞれに対応する仮想マシンについて、前記仮想マシンの持つ1以上の機能の完全性の検証に用いる検証情報を前記複数の記録領域のいずれかに格納し、前記仮想マシン管理部は、前記起動すべき仮想マシンの依存情報が、前記他の仮想マシンの持つ1以上の機能のうち一部を使用することを示している場合、前記他の仮想マシンの状態格納部に格納されている検証情報のうち、前記起動すべき仮想マシンが使用する機能に対応する記録領域に記録されている検証情報を前記起動すべき仮想マシンの状態格納部に反映し、前記起動すべき仮想マシンが使用する機能に対応しない記録領域の検証情報は前記起動すべき仮想マシンの状態格納部に反映しないこととしてもよい。
この構成によれば、他の仮想マシン1以上の機能のうち一部を使用する場合には、使用する機能に対応する検証情報のみを引き継ぐ。したがって、起動すべき仮想マシンの機能のうち、他の仮想マシンの機能を用いる機能については、当該他の仮想マシンの機能も含めて正当性を検証しつつ、他の仮想マシンの機能を用いない機能については、起動すべき仮想マシンのみで正当性の検証を完結させることができる。これにより、各機能の検証に、仮想マシン間の信頼関係を適切に反映することができる。
また、前記情報処理装置は、更に、前記複数の仮想マシンそれぞれに対応する複数の耐タンパーモジュールを備え、前記複数の状態格納部はそれぞれ、前記複数の耐タンパーモジュールのそれぞれに含まれ、前記複数の仮想マシンそれぞれの持つ機能は、前記複数の仮想マシンそれぞれに対応する耐タンパーモジュールによって実現されることとしてもよい。
この構成によれば、検証情報を改ざんされることなく仮想マシン間で受け渡し、改ざんない状態で機能を実施することができる。
また、前記複数の仮想マシンそれぞれは、複数のステークホルダーそれぞれに対応しており、前記複数のステークホルダーそれぞれは、各ステークホルダーが対応する仮想マシンの持つ機能のみを使用する第1ステークホルダーモデル、他の仮想マシンの持つ機能の一部を使用する第2ステークホルダーモデル、および、他の仮想マシンの持つ機能の全てを使用する第3ステークホルダーモデルのいずれかのステークホルダーモデルに対応し、前記依存情報は、前記依存情報が対応する仮想マシンのステークホルダーモデルが前記第1ステークホルダーモデル、前記第2ステークホルダーモデル、第3ステークホルダーモデルのいずれであるかを示し、前記仮想マシン管理部は、前記依存情報に基づいて前記起動すべき仮想マシンのステークホルダーモデルを判断することとしてもよい。
また、前記依存情報は、前記依存情報に対応する仮想マシンが使用する機能を持つ他の仮想マシンを示す情報と、前記依存情報に対応する仮想マシンが使用する機能の検証情報が格納されている記録領域を示す情報とを含むこととしてもよい。
また、前記仮想マシン管理部は、前記起動すべき仮想マシンの依存情報が、前記起動すべき仮想マシンが使用する機能の検証情報が格納されている記録領域として、他の仮想マシンの記録領域の一部を示している場合、前記起動すべき仮想マシンのステークホルダーモデルを第2ステークホルダーモデルであると判断することとしてもよい。
また、前記仮想マシン管理部は、前記起動すべき仮想マシンの依存情報が、前記起動すべき仮想マシンが使用する機能の検証情報が格納されている記録領域として、他の仮想マシンの記録領域の全部を示している場合、前記起動すべき仮想マシンのステークホルダーモデルを第3ステークホルダーモデルであると判断することとしてもよい。
この構成によれば、仮想マシンのステークホルダーモデルを正確に特定し、特定したステークホルダーモデルに基づいて、前記仮想マシンを起動させることができる。
また、前記仮想マシンの持つ機能は1以上のモジュールによって実現されており、前記複数の状態格納部は、それぞれ、自身が対応する仮想マシンの持つ機能について、前記機能を実現するモジュールが起動する毎に、前記起動したモジュールを示す情報を、前記複数の状態格納部それぞれに格納されている検証情報に累積することで、前記検証情報を更新し、前記仮想マシン管理部は、前記検証情報の初期値として、前記起動すべき仮想マシンが使用する機能の検証情報を前記起動すべき仮想マシンの状態格納部に格納することで、前記起動すべき仮想マシンの状態格納部に、前記起動すべき仮想マシンが使用する機能の検証情報を反映することとしてもよい。
この構成によれば、各仮想マシンそれぞれは、自仮想マシンの検証情報を生成する場合に、他の仮想マシンの検証情報を初期値として受け継ぐことができるので、他の仮想マシンの完全性をも保証できる自仮装マシンの検証情報を生成することができる。
また、前記情報処理装置は、前記仮想マシン管理部によって制御された順序に従った前記複数の仮想マシンの起動が完了すると、前記複数の状態格納部に格納されている検証情報に基づいて前記情報処理装置全体の完全性を検証することとしてもよい。
この構成によれば、仮想マシンを使用する構成において、装置全体としての完全性を確認することができる。
また、前記情報処理装置は、更に、外部のサーバからの認証要求を受け付ける受信部と、前記認証要求が受け付けられると、前記仮想マシン管理部によって制御された順序に従った前記複数の仮想マシンの起動が完了した後で、前記複数の状態格納部に格納されている検証情報を前記外部のサーバへ送信することとしてもよい。
この構成によれば、サービスを提供するサーバー装置側において、情報処理装置内の完全性についての検証をすることができる。
また、前記情報処理装置は、更に、前記仮想マシン管理部について、前記仮想マシン管理部の持つ1以上の機能の完全性の検証に用いる検証情報を格納する管理状態格納部を備え、前記依存情報は、更に、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが前記仮想マシン管理部の持つ機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが前記仮想マシン管理部の機能を使用しないことを示す管理依存情報を含み、前記仮想マシン管理部は、更に、前記複数の仮想マシンのいずれかを起動する際に、起動すべき仮想マシンの依存情報が、前記起動すべき仮想マシンが仮想マシン管理部の機能のいずれかを使用することを示していれば、前記仮想マシン管理部の管理状態格納部から前記起動すべき仮想マシンが使用する機能の検証情報を読み出し、前記起動すべき仮想マシンの状態格納部に反映することとしてもよい。
この構成によれば、複数の仮想マシンのそれぞれを、各仮想マシンの依存情報が示す他の仮想マシン若しくは仮想マシン管理部の機能についての完全性を引き継いだ状態で起動し、動作させることができる。したがって、仮想マシンモニター(仮想マシン管理部)の環境も含めて端末の正当性検証が可能になる。
請求項13に記載の態様である携帯端末は、複数の仮想マシンを動作させる携帯端末であって、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を格納する依存情報格納部と、前記複数の仮想マシンの起動を管理し、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御する仮想マシン管理部とを備える。
請求項14に記載の態様である制御方法は、複数の仮想マシンを動作させる情報処理装置の制御方法であって、前記情報処理装置は、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を含んだ依存情報を格納する依存情報格納部を備え、前記制御方法は、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断するステップと、前記複数の仮想マシンの起動を管理し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御するステップとを含む。
請求項15に記載の態様である記録媒体は、複数の仮想マシンを動作させる情報処理装置の制御プログラムを記録した記録媒体であって、前記情報処理装置は、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を含んだ依存情報を格納する依存情報格納部を備え、前記制御プログラムは、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断するステップと、前記複数の仮想マシンの起動を管理し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御するステップとを含む。
請求項16に記載の態様である集積回路は、複数の仮想マシンを動作させる情報処理装置を制御する集積回路であって、前記情報処理装置は、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を含んだ依存情報を格納する依存情報格納部を備え、前記集積回路は、前記複数の仮想マシンの起動を管理し、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御する。
この構成によれば、複数の仮想マシンのうち、他の仮想マシンの機能を使用するものを特定でき、特定された仮想マシンを、前記他の仮想マシンが必ず起動状態になってから起動させ、前記特定された仮想マシンに前記他の仮想マシンの機能を確実に使用させることができる。

以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
本発明の実施の形態について、説明する。以降、本実施の形態で示すTPMは、TCGで仕様化されているTrusted Platform Moduleの機能を有するセキュリティコアモジュールであるとして、以降説明する。
<マルチステークホルダーモデルにおけるトラストモデル>
まず、マルチステークホルダーについて携帯電話を例として説明する。携帯電話には、デバイスメーカー、キャリア、アプリケーションサービス提供者、ユーザーといった複数のステークホルダーが存在する。各ステークホルダーは、各自の権利物を所有している。各ステークホルダーの権利物は、例えば、デバイスメーカーであれば、International Mobile Equipment Identity(IMEI)であり、キャリアであれば、Subscriber Identification Module(SIM)関連情報であり、アプリケーションサービス提供者であれば、サービス提供されたデータであり、ユーザーであれば、アドレス帳が挙げられる。マルチステークホルダーモデルとは、それぞれのステークホルダーが利用するTPMを、個別に割り当てることでそれぞれの権利物を安全に利用するモデルである。
図1は、マルチステークホルダーモデルにおけるトラストモデルを示した図である。
トラストモデルとして、3つのモデルが定義される。また、図1には図示していないが、各ステークホルダーは、各自のステークホルダーの権利物を管理しており、ステークホルダーの所有する権利物は、各ステークホルダーに対応づけられたTPMを利用して、安全にアクセスする。以下、それぞれ3つのモデルについて説明する。
図1(a)は、Independent Modelを示している。このモデルは、各ステークホルダー間に信頼の依存関係はないモデルである。例えば、ステークホルダー1(101)が、TPM1(103)を利用し、ステークホルダー2(102)は、TPM2(104)を利用するモデルである。
図1(b)は、Interdependent Modelを示している。このモデルは、ステークホルダー間で、部分的に依存関係のあるモデルである。例えば、ステークホルダー1(111)は、TPM1(113)を利用し、ステークホルダー2(112)は、TPM2(114)を利用する。ここまでは、Independent Modelと同じであるが、図1(b)に示しているように、一部領域が重なっている部分が存在する。これは、ステークホルダー2(112)が、TPM2(114)以外に、TPM1(113)の機能を利用することを表している。例えば、携帯電話の場合、ステークホルダー2(112)が、キャリアであって、ステークホルダー1(111)がデバイスメーカーであった場合、キャリアが、デバイスメーカーの権利物であるIMEIにアクセスするといった例である。
図1(c)は、Dependent Modelを示している。このモデルは、ステークホルダー間で、あるステークホルダーが、別のステークホルダーに完全に依存するモデルである。これは、ステークホルダー1(121)がTPM1(123)を利用し、ステークホルダー2(122)もTPM1(123)を利用するモデルである。携帯電話の場合、ステークホルダー2が、キャリアであって、ステークホルダー1がデバイスメーカーであった場合、デバイスメーカーの権利物であるIMEIは、TPM1(123)の機能により保護され、キャリアの権利物であるSIM情報もTPM1(123)の機能を利用して安全に保護される。
<情報処理端末>
図2は、マルチステークホルダーモデルを仮想化技術で実現した場合の情報処理端末の全体構成図である。
情報処理端末10は、CPU11、I/Oデバイス12、RAMなどの揮発メモリ13、ROMやFlashなどの不揮発メモリ12などのハードウェア群と、TPM(82)を含んだトラステッドビルディングブロック80(以降、TBBと省略)、そして、仮想TPM制御部50と仮想トラステッドビルディングブロック(60、70)(以降、仮想TBBと省略)等を含んだ仮想マシンモニター40と仮想マシン(20、30)のソフトウェア群から構成される。仮想マシン(20,30)や仮想マシンモニター40等のソフトウェアは、不揮発性メモリ、もしくは不揮発メモリに記憶されているプログラムをCPU11によって実行することによって実現される。また、図1では、TPM(82)は、ハードウェア群には含まない構成となっているが、言うまでもなくTPM(82)もハードウェア群に含まれてもよい。また、情報処理端末10がセキュアな実行環境を備えるのであれば、TPM(82)をソフトウェアで実現してもよい。本実施の形態1では、TPM(82)は、ハードウェアとして説明する。
TBB80は、TPM82と、計測・検証部81からなる。TPM80は、TCGで仕様化されるTrusted Platform Moduleの機能を有するセキュリティモジュールである。計測・検証部81は、TCGにおける、Root of Trust for Measurement(RTM)とRoot of Trust for Verification(RTV)であり、セキュアブート処理の最初に起動するモジュールである。端末自身がセキュアブートでなくトラステッドブートのみをサポートするのであれば、RTVは存在せず、Core Root of Trust for Measurement(CRTM)であってもよい。計測・検証部81は、図2には記載しないInitital Program Loader(IPL)などを記憶しているブートROMに含まれる。さらに、ここでのブートROMは、書き換え不可能なセキュアなROMであることが望ましい。
仮想マシンモニター40は、仮想TPM制御部50、仮想TBB(60、70)、デバイスドライバ41、TPMインターフェース42を含んでおり、仮想マシン(20、30)を動作させるためのインフラストラクチャを提供するソフトウェアである。
仮想TBB1(60)は、仮想マシン1(20)が利用するトラスデットビルディングブロックであり、仮想計測・検証部(61)と仮想TPM1(62)を含む。仮想TBB1(60)は、TBB80と同等の機能を仮想的に実現している部であり、仮想TPM1(62)は、TPM82と同等の機能を仮想的に実現している部であり、仮想計測・検証部61は、計測・検証部81と同等の機能を仮想的に実現している部である。ここでの仮想的に実現とは、ソフトウェアで実現していることを示す。
仮想TBB2(70)は、仮想マシン2(30)が利用するためのトラスデットビルディングである。仮想TBB2(70)およびそれを構成する仮想計測・検証部71、仮想TPM2(72)は、上述した仮想TBB1(60)と同等な機能を有するので、説明を省略する。
仮想TPM制御部50は、仮想マシン(20、30)から仮想TPMインターフェース(21、22)を介して要求されたTPMコマンドを、適切な仮想TPM(62、72)に処理依頼を振り分けたり、仮想TPMからの処理結果を、適切な仮想マシン(20、30)に返したりする、いわゆる仮想TPMをマネージメントする部である。
TPMインターフェース(42)は、TPM(82)へアクセスするためのインターフェースであって、例えば、TCGのソフトウェアスタックであるTrusted Software Stack(TSS)である。
デバイスドライバ41は、ハードウェア群にあるI/Oデバイスなどのハードウェアにアクセスするためのドライバソフトウェアである。
仮想マシン1(20)、仮想マシン2(30)は、仮想マシンモニター40上で動作する仮想マシンであり、1つの仮想マシンが、1つのステークホルダー環境として動作する。仮想マシン1、仮想マシン2については、図3を用いて詳細を説明する。
<仮想マシン>
仮想マシン1(20)は、上述したように1つのステークホルダーとして動作し、それぞれ、OSローダー1(20)、ゲストOS1(24)、アプリケーション1(25)、仮想TPMインターフェース(21)を含む構成としている。仮想TPMインターフェース(21)は、仮想TPM(62)へのアクセスするためのインターフェースであり、TCGにおけるTSSインターフェースである。TSSの実体は、図示していないが、仮想マシンモニター40に実装されるものとする。
仮想マシン1(20)は、仮想マシンモニター(40)起動後に起動される。仮想マシンの起動順としては、OSローダー1(23)、ゲストOS1(24)、アプリケーション1(25)の順である。仮想マシン1(20)は、仮想マシン1(30)の起動の際に、仮想TPMインターフェース21を介して、仮想TPM1(62)の機能を利用しながら、ブートする。
仮想マシン2(20)も、仮想マシンモニター(40)起動後に起動される。仮想マシンの起動順としては、OSローダー2(33)、ゲストOS2(34)、アプリケーション1(35)の順である。仮想マシン2(30)は、仮想マシン2(30)の起動の際に、仮想TPMインターフェース31を介して、仮想TPM2(72)の機能を利用しながら、ブートする。ブートシーケンス詳細については、図8、9を用いて後述する。
<仮想マシンモニター>
次に、図4を用いて、仮想マシンモニターの詳細について説明する。なお、以下では、図2の説明において説明していない構成要素についてのみ説明する。
仮想TPM制御部40は、トラストモデル管理部410とブート制御部420から構成される。
トラストモデル管理部410は、図1で説明したマルチステークホルダーモデルにおけるトラストモデルを管理している。具体的には、図1の3つのトラストモデルを、図5を用いて後述するTPM証明書で表現し、それらのTPM証明書(411、412、413)を管理する。TPM証明書(411、412、413)は、各TPMに付与される証明書であって、本実施の形態1では、TPM82はTPM証明書411が付与され、仮想TPM1(62)は仮想TPM1証明書412が付与され、仮想TPM2(72)は仮想TPM2証明書413が付与される。
ブート制御部420は、モジュール証明書格納部421、ブート検証部423と、PCR初期値設定部422、から構成される。
モジュール証明書格納部421には、各仮想マシンのセキュアブートシーケンスの際に、起動すべきモジュールが改竄されずにブートされているかどうかを検証する際に利用されるモジュール証明書を格納する。モジュール証明書は、認証用のインテグリティ値および、認証用の累積インテグリティ情報を含んだ証明書であり、TCGにおけるRefernece Integtiry Metrics(RIM)証明書に相当するものである。モジュール証明書については、図7を用いて後述する。
TPM(82)、仮想TPM(62、63)は、それぞれ16個のPCRを備えている。PCRは、Platform Configration Registersと呼ばれるレジスタであり、TCGのTPM_Extendコマンドにより生成されたインテグリティ値が格納される。また、なお、PCRの個数は、16個に限定されるわけではなく、それより多くても少なくても良い。なお、本実施の形態では、TCGの仕様で決められている個数以上の数を備えるものとする。
PCR初期値設定部422は、トラストモデル管理部410にて管理されているTPM証明書もしくは仮想TPM証明書に基づき、仮想マシンモニターおよび、仮想マシンそれぞれが利用するTPMのPCR83、仮想TPMのPCR(63、73)の初期値を設定する。
ブート検証部423は、トラストモデル管理部410にて管理されているTPM証明書もしくは仮想TPM証明書に基づき、各仮想マシンの起動前に、トラストモデルに基づいた信頼関係を維持しつつ起動しているかどうかを検証する部である。
<トラストモデルを定義したTPM証明書>
次に、図5を用いて、トラストモデルを定義したTPM証明書について説明する。TPM証明書のフォーマットは、TPM証明書411、仮想TPM1証明書412、仮想TPM2証明書413は、すべて同じフォーマットであるとする。具体的には、X.509形式のフォーマットを利用する。TPM証明書は、X.509のバージョンを示す証明書バージョン501、発行者によって一意な値を割り振られたシリアルナンバー502、証明書の署名検証に用いる署名アルゴリズムを示す署名アルゴリズム情報503、発行者情報504、証明書の有効期間505、証明書を受ける対象を示したサブジェクト506、鍵値や公開鍵アルゴリズムを示す公開鍵情報507、TPMバージョン508、トラストモデル識別情報509と依存TPM証明書識別情報510と依存TPM−PCR番号511、拡張領域512、そしてこれらのデータに対する署名データ513から構成される。
拡張領域512には、CRLやISO90000などの製造プロセスや、EALなどのコモンクライテリアといったセキュリティ関連情報を載せてもよいし、機能制御の条件と機能制御の内容が記載されてもよい。
本実施の形態では、トラストモデルを定義するため、トラストモデル識別情報509と依存TPM証明書識別情報510と依存TPM−PCR番号511とを証明書に含ませている。以下、これらの構成について詳細に説明する。
トラストモデル情報識別情報509は、3つのトラストモデルであるIndependent Model、Interdependent Model、Dependent Modelを識別するため情報が記載される。
依存TPM証明書識別情報510は、トラストモデルにおける信頼関係のあるTPM証明書へのポインタ情報を格納する。
依存TPM−PCR番号511は、トラストモデルに基づき、起動済み環境のTPMもしくは仮想TPMの信頼の依存関係のあるPCR番号を示している。
本実施の形態では、各TPMまたは仮想TPMは、依存TPM証明書識別情報510が示すTPMまたは仮想TPMの持つPCRのうち、依存TPM−PCR番号511が示すPCRの値を、自身のPCRの初期値として設定した上でセキュアブートを行う。ここで、ある仮想マシンBが別の仮想マシンAに依存する場合、すなわち、仮想マシンAの起動後に仮想マシンBを起動させる必要があるモデルを考える。この場合、仮想マシンBが正しく起動しているかを確認するだけでは仮想マシンAが正しく起動した後に、仮想マシンBが起動しているのかが分からない。そこで、以下のようにして、仮想マシンAの検証に用いる値(PCR値)を仮想マシンBの検証に用いる値に引き継ぐ必要がある。これは、仮想マシンBのTPMのPCR値の初期値として、仮想マシンAのモジュールの起動が完了した後のPCR値を代入することで実現できる。仮想マシンBのPCR値にも仮想マシンAのPCR値を引き継ぐことが出来る。セキュアブートにおけるPCRの累積処理では、各モジュールの起動のたびに、現在PCRに入っている値とそのモジュールから計算したインテグリティ値とを反映した値を計算し、新たなPCR値としてPCRに格納する。そのため、仮想マシンAのPCR値を初期値とすれば、仮想マシンBのPCR値に仮想マシンAのPCR値が反映されることとなる。なお、仮想マシンモニターと仮想マシンの間でPCR値を引き継ぐ場合も同様である。
前述の通り、各TPMは複数個のPCRを持つ。ここで、各PCRは、それぞれが異なるモジュールについてのPCR値を格納する。ここで、各仮想マシンは、トラストモデルに応じて自身が依存する仮想マシンまたは仮想マシンモニターの機能のどれを使用するかが異なる。そのため、各仮想マシンのトラストモデルがどのモデルかによって、どのPCR値を引き継ぐべきかが異なる。
まず、Independent Modelの場合、仮想マシンは仮想マシンモニターにのみ依存する。そのため、仮想マシンモニターの環境情報であるインテグリティ情報が格納されているPCR値を引き継ぐ。本実施の形態1では、仮想マシンモニターの環境情報がPCR0からPCR2に格納されているものとして、以降、図6から図8を用いて説明する。
また、Interdependent Modelの場合は、仮想マシンは自分自身が依存する仮想マシンのうちの一部の機能のみを使う。そのため、その機能についてのPCR値のみを引き継げばよい。
また、Dependent Modelの場合、仮想マシンは自分自身が依存する仮想マシンの全ての機能を使う。そのため、全ての機能についてのPCR値を引き継ぐ必要があるので、全PCR値を引き継ぐ必要がある。
本実施の形態では、このような制御を実現するため、TPM証明書に含ませたトラストモデル情報識別情報509、依存TPM証明書識別情報510、依存TPM−PCR番号511を用いる。これらの情報の利用方法については、図6から図8を用いて具体的に説明する。
なお、ここではTPM証明書を、公開鍵証明書として説明していたが、公開鍵証明書に限定されることなく、属性証明書であってもよい。公開鍵証明書であれば、TCGにおけるEndorsement Key(EK)証明書としてトラストモデルを表現してもよいし、属性証明書であればTCGにおけるPlatform証明書としてトラストモデルを表現してもよい。
なお、証明書のフォーマットとしてX.509形式であると説明したが、これに限定されない。証明書として必要な情報を含んでいればよく、他のフォーマットを用いてもよい。
<トラストモデルを表現したTPM証明書の例>
図6は、トラストモデルを表現したTPM証明書の具体例である。
なお、本実施の形態1では、仮想マシンモニターが起動する際に、計測された累積インテグリティ値は、TPM82のPCR83に記録され、仮想マシン1(20)が起動する際に、計測された累積インテグリティ値は、仮想TPM1(62)のPCR63に記録され、仮想マシン2(30)が起動する際に、計測された累積インテグリティ値は、仮想TPM2(72)のPCR73に記録されるものとする。また、TPM証明書の識別情報を「CERT000」、仮想TPM1証明書の識別情報を「CERT001」、仮想TPM2証明書の識別情報を「CERT002」として説明する。図6のTPM証明書は、トラストモデルに関する情報しか図示していないが、各TPM証明書は、実際には、図5で説明したフォーマットを持つ。
図6(a)は、Independent Modelの具体例である。この例では、Independent Modelを示すトラストモデル識別情報を「001」としている。また、この例は、CERT001がCERT000に信頼の依存関係があることを示し、CERT002もCERT000に信頼の依存関係があることを示している。これは、仮想マシン1が、仮想マシンモニターを信頼し、仮想マシン2も仮想マシンモニターを信頼することを示している。言い換えると、仮想マシンモニター起動後、仮想マシン1、仮想マシン2が起動されなければならないということを示している。この例では、CERT001の依存TPM証明書識別情報510が「CERT000」に、依存TPM−PCR番号511が「PCR[0−2]」になっている。これは、CERT001対応する仮想TPM1が、CERT000に対応するTPMに対して依存関係があり、仮想マシン1が起動する前に、仮想TPM1のPCR[0]、PCR[1]、PCR[2]の初期値として、TPMのPCR[0]、PCR[1]、PCR[2]が設定されることを示す。同様にCERT002の各フィールドの値は、CERT002に対応する仮想TPM2が、CERT000に対応するTPMに対して依存関係があり、仮想マシン1が起動する前に、仮想TPM1のPCR[0]、PCR[1]、PCR[2]の初期値として、TPMのPCR[0]、PCR[1]、PCR[2]が設定されることを示す。また、この例では、CERT001とCERT002のトラストモデル識別情報511が「001」となっており、仮想マシン1も仮想マシン2もIndependent Modelで動作していることが示されている。
図6(b)は、Interdependent Modelの具体例である。なお、この例は、図1(b)のモデルにおけるステークホルダー1と、ステークホルダー2が重なっている部分のモジュール(すなわち、ステークホルダー2から利用されるステークホルダー1のモジュール)のインテグリティ値が連鎖した値が、TPM1のPCR[7]に記録されるものとして説明する。この例では、Interdependent Modelを示すトラストモデル識別情報を「002」としている。また、CERT002がCERT001に信頼の依存関係があることを示し、CERT1がCERT000に信頼の依存関係があることを示している。これは、仮想マシン2が仮想マシン1を信頼し、仮想マシン1が仮想マシンモニターを信頼しているという信頼のチェーンを表している。言い換えると、仮想マシンモニター起動完了後に仮想マシン1が起動し、その次に仮想マシン1起動完了後に仮想マシン2が起動されなければならないということを示している。この例では、CERT002の依存TPM証明書識別情報510が「CERT000」に、依存TPM−PCR番号511が「PCR[0−2]」になっている。これは、CERT001に対応する仮想TPM1が、CERT000に対応するTPMに対して依存関係があり、仮想マシン1が起動する前に、仮想TPM1のPCR[0]、PCR[1]、PCR[2]の初期値として、TPMのPCR[0]、PCR[1]、PCR[2]が設定されることを示す。また、この例では、CERT002の依存TPM証明書識別情報510が「CERT001」に、依存TPM−PCR番号511が「PCR[0−2、7]」になっている。これは、CERT002に対応する仮想TPM2が、CERT000に対応するTPMに対して依存関係があり、仮想マシン1が起動する前に、仮想TPM1のPCR[0]、PCR[1]、PCR[2]とPCR[7]の初期値として、TPMのPCR[0]、PCR[1]、PCR[2]とPCR[7]が設定されることを示す。また、この例では、CERT001とCERT002のトラストモデル識別情報511が「002」となっており、仮想マシン1も仮想マシン2もInterdependent Modelで動作していることが示されている。
図6(c)は、Dependent Modelの具体例である。この例では、Dependent Modelを示すトラストモデル識別情報を「003」としている。また、この例は、CERT002がCERT001に信頼の依存関係があることを示し、CERT001がCERT000に信頼の依存関係があることを示している。これは、仮想マシン2が、仮想マシン1を信頼し、仮想マシン1が仮想マシンモニターを信頼しているという信頼のチェーンを表している。言い換えると、仮想マシンモニター起動完了後に仮想マシン1が起動し、仮想マシン1起動完了後に仮想マシン2が起動されなければならないということを示している。この例では、CERT002の依存TPM証明書識別情報510が「CERT000」に、依存TPM−PCR番号511が「PCR[0−2]」になっている。これは、仮想マシン1が起動する前に、仮想TPM1のPCR[0]、PCR[1]、PCR[2]の初期値を、TPMのPCR[0]、PCR[1]、PCR[2]の値に設定することを示す。また、ステークホルダー2がステークホルダー1の全環境に依存するモデルであるため、CERT002の依存TPM−PCR番号512には、「ALL」と記載される。これは、仮想マシン2が起動する前に、仮想TPM2の全PCR(PCR[0]、PCR[1]、PCR[2]、・・・、PCR[15])の初期値を、仮想TPM1の全PCR(PCR[0]、PCR[1]、PCR[2]、・・・、PCR[15])に設定することを示す。これらPCRの初期値の設定フローについては、図9を用いて後述する。
<モジュール証明書>
次に、モジュール証明書の説明を行う。図7は、セキュアブート処理の際に利用するモジュール証明書を示したものである。モジュール証明書700は、セキュアブートの対象となるモジュール毎に付与される証明書であり、モジュール識別情報701、モジュールバージョン情報702、この証明書を検証するために使われる署名アルゴリズムを示す署名アルゴリズム情報703、期待されるモジュールのインテグリティ値である認証インテグリティ値704、期待される連鎖処理されたインテグリティ値が格納されたPCRの値を示す認証PCR値705、連鎖処理する対象となるPCR値番号を示すPCRインデックス706、モジュール証明書自身を検証するために利用する検証鍵を識別するための検証鍵情報707、そして、証明書自身の完全性を検証するために利用される署名データ708から構成される。モジュール証明書700は、TCGにおけるReference Integrity Metrics(RIM)証明書として実現してもよい。
<トラストモデルに基づいたセキュアブート概要>
次に、図8を用いてトラストモデルに基づいてマルチステークホルダー環境におけるセキュアブートの全体シーケンスについて説明する。
まず、電源起動後、図2で示すTBB80の計測・検証部81が起動し、TPM証明書411を署名検証する。すなわち、署名データ513と予め保持している検証鍵を用いて署名検証を行うことでTPM証明書に対する改竄の有無を確認する。なお、以下で述べるTPM証明書およびモジュール証明書の署名検証も同様の処理である。(ステップS801)。
次に、TPM証明書411の依存TPM証明書識別情報510および依存TPM−PCR番号511に基づき、TPMのPCRの初期値を設定する。依存TPM証明書情報および依存TPM−PCR番号がNULLを示していれば、TPM80のPCR83をゼロで初期化する(ステップS802)。
次に、仮想マシンモニターの環境をセキュアブートする(ステップS803)。セキュアブートの詳細ステップについては、図10を用いて後述する。
次に、仮想TPM制御部のブート制御部420のブート検証部423が、トラストモデル管理部410から仮想TPM証明書を参照し、次にブートすべき仮想マシンに対応する仮想TPM証明書に対して署名検証する(ステップS804)。次にブートすべき仮想マシンの特定方法は、TPM証明書の信頼関係を示すトラストモデル識別情報509や、依存TPM証明書識別情報510を参照することでなされる。次に実行すべき仮想マシンに対する仮想TPM証明書について、S804の署名検証結果が検証NGであれば、ブート処理を中止する(ステップS808)。そうでなく、S805の仮想TPM証明書の署名検証結果が検証OKであれば、ステップS805へ処理を移す。
次に、仮想TPM制御部のブート制御部420のPCR初期値設定部422が、S805にて署名検証した仮想TPM証明書の依存TPM証明書識別情報510および依存TPM−PCR番号512に基づき、その仮想TPM証明書に対応する仮想TPMのPCRの初期値を設定する(ステップS805)。PCRの初期値の設定の詳細なフローは、図9を用いて説明する。
次に、ステップS804にて検証した仮想TPM証明書に対応する仮想マシンをセキュアブートする(ステップS806)。
次に、全ての仮想マシンのセキュアブートが完了したかどうかを確認する(ステップS809)。なお、全ての仮想マシンのセキュアブートが完了したか否かの確認は、ブート検証部において、フラグを用いた実装などで実現する。
<TPM証明書を用いたPCR設定処理>
ここでは、図8のS802、S805のTPMおよび仮想TPMのPCRの設定方法のフローについて説明する。
まず、TPM証明書もしくは仮想TPM証明書のトラストモデル識別情報509を参照し、その識別情報の値をTRUST_MODELとして管理する(ステップS901)。ここでのTRUST_MODELは、特定のレジスタであってもよいし、RAM上の一時変数であってもよい。セキュアブートの間、不揮発しない形で管理できればよいものとする。
次に、S901で参照している証明書の依存TPM識別情報510を参照する(ステップS902)。依存TPM識別情報510が「NULL」であれば、その証明書からは、信頼先がない、すなわち、その環境内における信頼根となることを示している。本実施の形態1においては、全てのトラストモデルにおいて、全ての仮想マシンは、仮想マシンモニター上で動作するので、仮想マシンモニター層のTPMに対応するTPM証明書の依存TPM識別情報510は、NULLとなる。したがって、S902の結果、NULLであれば、その証明書がTPM証明書であり、これから起動される環境が、仮想マシンモニターであるとPCR初期値設定部422が認識する(ステップS903)。そうでなく、S902の結果、NULLでなければ、その証明書は、仮想マシンが利用する仮想TPMに対応付けられた仮想TPM証明書であり、これから起動される環境が、仮想マシンであるとPCR初期値設定部422が認識する(ステップS906)。
次に、S903の処理において、PCR初期値設定部422は、仮想マシンモニター環境を起動前に、TPMの初期値を設定するために、依存TPM−PCR番号511をチェックする(ステップS904)。S904の結果、依存TPM−PCR番号511が、「NULL」であれば、TPMのPCRを0で初期化する(ステップS905)。S904の結果、NULLでないならば、エラー処理を行う(ステップS913)。なぜなら、本来、TPM証明書は信頼の依存先がない証明書であるので、依存TPM−PCR番号が設定されていないはずであり、設定されていれば証明書の内容に矛盾が生じるためエラーとする。
次に、S906以降の処理について説明する。
S906において起動対象となる仮想マシンの仮想TPM証明書の依存関係を調べる。依存TPM識別情報を参照し、依存先がTPM証明書であるのか、もしくは、仮想TPM証明書であるのかを判別する(ステップS907)。S907の結果、依存TPM識別情報がTPM証明書を示していれば、S908へ処理を移す。そうでなく、S907の結果、依存TPMが仮想TPM証明書を示していれば、S912へ処理を移す。
次に、依存TPM−PCR番号511をチェックする(ステップS908)。S908の結果、依存TPM−PCR番号511が、「NULL」であれば、仮想TPMのPCRの初期値を0で初期化する(ステップS909)。そうでなく、S908の結果、依存TPM−PCR番号が、特定のPCR番号を示していれば、依存先のTPMから、依存TPM−PCR番号511で指定されたPCR値を参照し、そのPCR値を仮想TPMのPCRの初期値として設定する(ステップS910)。そうでなく、S908の結果、依存TPM−PCR番号511が、「ALL」を示していれば、TPMの全PCRの値を参照し、そのPCR値を仮想TPMのPCRの初期値として設定する(ステップS911)。
続いて、S907の結果、依存TPMが仮想TPM証明書を示していれば、S912以降のフローについて説明する。S912では、S904、S908と同様に、証明書内のTPM−PCR番号511をチェックする(ステップS912)。S912の結果、依存TPM−PCR番号が「NULL」であれば、エラー処理を行う(ステップS913)。なぜなら、S907にて仮想TPM証明書に依存先があると判別されているため、依存先があるにもかかわらず、「NULL」となっているのは、証明書として矛盾を示すためである。
そうでなく、S912の結果、TPM−PCR番号511が特定のPCR番号を示していれば、S901で設定したTRUST MODELがINTERDEPENDENT MODELであるかどうかを確認する(ステップS914)。S914の結果、YES(トラストモデル識別情報509がINTERDEPENDENT MODELである)ならば、依存先の仮想TPMから、依存TPM−PCR番号511で指定されたPCR値を参照し、そのPCR値を依存元となる仮想TPMのPCRの初期値として設定する(ステップS915)。S914の結果、NO(トラストモデル識別情報509がINTERDEPENDNT MODELでない)ならば、エラー処理を行う(ステップS912)。ここでエラー処理を行う理由は、特定のPCR番号に依存しているということは、INTERDEPENDENT MODELを示すことになるはずであるが、トラストモデル識別情報とINTERDEPENDENT MODELでないのであれば、それは証明書として矛盾が生じるからである。
そうでなく、S912の結果、TPM−PCR番号511が「ALL」を示していれば、S901で設定したTRUST_MODELがDEPENDENT MODELであるかどうかを確認する(ステップS916)。S916の結果、YES(トラストモデル識別情報509がDEPENDENT MODELである)ならば、依存先の仮想TPMから、全てのPCR値を参照して、その値を依存元となる仮想TPMの全てのPCRの初期値として設定する(ステップS915)。S914の結果、NO(トラストモデル識別情報509がDEPENDNT MODELでない)ならば、エラー処理を行う(ステップS912)。ここでエラー処理を行う理由は、全てのPCR番号に依存しているということは、DEPENDENT MODELを示すことになるはずであるが、トラストモデル識別情報とDEPENDENT MODELでないのであれば、それは証明書として矛盾が生じるからである。
なお、図9におけるS913のエラー処理の例としては、ブート処理を中止することが考えられる。また、ブート処理を中止することなく、情報処理端末として利用できる機能を制限した形で端末を起動させるようにしてもよい。例えば、携帯電話であれば、エマージェンシーコールだけ可能な状態となるように起動するようにしてもよい。
<セキュアブート処理詳細>
図10は、図8におけるS803やS806のセキュアブート処理の詳細を示したフローである。基本的には、TCGの非特許文献4にて記載されるセキュアブート処理と同等のブート手法であるが、本実施の形態1では、図7、図8で示したように、仮想マシンモニターと、各仮想マシンの起動において、TPM・仮想TPMのPCRに設定される初期値が異なる。非特許文献4では、TPM・仮想TPMのPCRに設定される初期値は常に「0」であるが、本実施の形態ではトラストモデルによっては「0」ではない初期値が設定される。このような構成によって、仮想マシンモニターと仮想マシン間、また各仮想マシン間でインテグリティ値情報を連鎖させるという点が非特許文献4の内容と異なる。
以下、図10を用いて、本実施の形態におけるセキュアブート処理フローを説明する。
まず、最初に起動すべきモジュールのインテグリティ値を計測する(ステップS1001)。例えば、S803の仮想マシンモニターのセキュアブート処理であれば、まずTBB80の計測・検証部81が起動し、仮想マシンモニター40のインテグリティ値を計測する。S806における「仮想マシンをセキュアブート」の処理であれば、まず仮想TBBの計測・検証部が起動し、OSローダーを検証する。
次に、S1001で計測したインテグリティ値と、図8で説明したモジュール証明書に記載される認証インテグリティ値704と照合する(ステップS1002)。S1002の照合の結果、両者の値が等しくなければ、S1008へ処理を移しセキュアブートを中止する。そうでなく、S1002の照合の結果、両者の値が等しければ、S903へ処理を移す。
次に、モジュール証明書の署名検証をする(ステップS1003)。S1003の署名検証の結果が、検証NGであれば、S1008へ処理を移しセキュアブートを中止する。
そうでなく、S1003の署名検証の結果が、検証OKであれば、S1004へ処理を移す。ここでの署名検証処理は、モジュール証明書に記載される検証鍵識別情報707に対応する鍵を用いて検証を行う。
次に、TPMもしくは仮想TPMのPCRの値と、モジュール証明書に記載される認証PCR705が等しいかどうかを照合する(ステップS1004)。S803における「仮想マシンモニターのセキュアブート」の処理であれば、TPMのPCRの値と、モジュール証明書に記載される認証PCR705の値が等しいかどうかを照合し、S805における「仮想マシンのセキュアブート」の処理であれば、仮想TPMのPCRの値と、モジュール証明書700に記載される認証PCR705の値が等しいかどうかを照合する。S1004の照合の結果、等しくないと判断されれば、S908へ処理を移し、セキュアブート処理を中止する。そうでなく、S1004の照合の結果、等しいと判断されれば、S905へ処理を移す。
次に、モジュール証明書700内の認証インテグリティ値704と、PCRインデックス706に指定された番号のPCR値を利用して連鎖処理を行い、連鎖した結果をPCRインデックス706で指定されたPCR番号に格納する(ステップS1005)。
次に、S1001、S1002で検証されたモジュールを実行する(ステップS1006)。
次に、セキュアブートが完了したかどうかを確認する(ステップS1007)。セキュアブートが完了せず、セキュアブート対象のモジュールがブートされずに残っていれば、S1001へ処理を移し、セキュアブート処理を継続する。全てのセキュアブート対象のモジュールが検証され、実行されていればセキュアブート処理は終了する。
ここでの仮想マシンのセキュアブートの対象とするモジュールは、OSローダー、ゲストOS、そしてアプリケーションまで含めても良いし、アプリケーションまで含めずゲストOS環境までとしても良い。
(実施の形態2)
本実施の形態2では、ネットワーク経由の外部のサーバーに端末環境情報を通知し、サーバー側で端末の環境の正当性を検証するモデルを説明する。この検証モデルは、TCGにおけるAttestation機能をベースとする。本実施の形態で説明するモデルは、従来のAttestation機能にはない、マルチステークホルダーモデル端末が想定されるトラストモデルで起動しているかどうかをサーバー側で検証することを可能にするモデルである。
<Attestation処理の概要>
図11は、実施の形態1の情報処理端末1000と同等の構成をとるが、ネットワーク3000経由で、外部のサービス提供サーバー2000に対して端末環境情報を通知できる点が異なる。具体的には、情報処理端末1000は、仮想マシン1(1010)、仮想マシン2(1020)にそれぞれ通知部(1011、1021)を備える。さらに、仮想TPM1(1031)、仮想TPM2(1021)は、外部のサービス提供サーバー2000からAttestation処理要求の結果として署名データを生成する。具体的には、TPMのPCR値に対して、図示しないAttestation Identity Key(AIK)を用いて、署名を生成する。AIKは、公開鍵暗号における鍵ペアであり秘密鍵は情報処理端末内でセキュアに保持し、その秘密鍵に対応する公開鍵は、外部のサービスサーバーが保持する。AIKの公開鍵の正当性については、CA(Certification Authority)が作成した公開鍵証明書(AIK証明書)を利用することで検証できる。証明書の発行プロセスや公開鍵証明書を利用した鍵の検証方法は、一般に広く知られるPublic Key Infrastructure(PKI)技術を用いるので、説明を省略する。
<Attestationシーケンス>
続いて、図12を用いて本実施の形態2におけるAttestationのシーケンスについて説明する。この図12のシーケンスでは、情報処理端末が、外部のサービス提供サーバーに対して、サービスを要求し、サービス提供サーバーは、Attestation機能を利用し、情報処理端末の正当性を確認した上で、サービスを提供する例で説明する。
まず、情報処理端末が、情報処理端末を識別するための端末識別情報と共に、サービス提供サーバーに対して、サービス要求を行う(ステップS1101)。
次に、サービス提供サーバーは、トラストモデル管理データベースにアクセスし、端末識別情報に対応するTPM証明書および仮想TPM証明書を参照し、情報処理端末のトラストモデルを判別する。トラストモデル判別後、サービス提供サーバーが検証したいPCR番号を決定する。例えば、図6(c)のトラストモデルにおいて、仮想マシンモニターと仮想マシン1の間のトラストモデルを検証する場合、仮想マシン1のTPM証明書識別情報であるCERT001と、識別情報と、PCR番号0、1、2を指定する(ステップS1102)。
次に、サービス提供サーバーは、ノンス(乱数)を生成し、S1101で決定した仮想TPM証明書IDとPCR番号とノンスを情報処理端末へ送信する(ステップS1103)。
次に、サービスを要求した仮想マシンが、S1103の情報を受信し、受信した情報を仮想マシンモニター1030の仮想TPM制御部1033に通知する(ステップS1104)。
次に、仮想TPM制御部は、S1104で受信した情報から、仮想TPMに対して、ノンスと、指定されたPCRに対して署名生成依頼し、仮想TPMで指定されたPCR値情報とノンスに対してAIK秘密鍵を利用し、署名生成を行う(ステップS1105)。S1105における署名生成は、TCGで仕様化されているTPM_QuoteやTPM_Quote2コマンドを利用する。
次に、情報処理端末は、通知部を利用し、署名したデータとノンス、PCR、そしてAIK証明書をサービス提供サーバーに送信する(ステップS1106)。
次に、サービス提供サーバーは、AIK証明書の正当性をチェックする(ステップS1107)。AIK証明書は、CA(Certificate Authority)が発行しているので、CAの公開鍵で検証する。S1107の検証の結果、チェックNGであれば、情報処理端末にエラーを送信する(ステップS1111)。そうでなく、S1107の検証の結果、チェックOKであれば、ステップS1108へ処理を移す。
次に、ノンスのデータを検証する。サービス提供サーバーが指定したノンスであるかどうかを確認する(ステップS1108)。S1108にて、チェックNGであれば、情報処理端末にエラーを送信する(ステップS1111)。そうでなく、S1108の検証の結果、チェックOKであれば、ステップS1109へ処理を移す。
次に、サービス提供サーバーは、認証PCRデータベース2002にアクセスし、S1103で指定した仮想TPM証明書の識別情報に対応する認証PCRと、情報処理端末から送信されたPCRの値とを比較することで情報処理端末の正当性を検証する(ステップS1109)。S1109の検証結果が、チェックNGであれば、エラーを送信する(ステップS1111)。そうでなく、S1109の検証結果が、OKであれば、すなわち、両者のPCRが等しければ、サービス提供サーバーは、サービス提供サーバーが指定した仮想マシン環境においてトラストモデルが維持された形で、正常に起動していると判断し、情報処理端末に対してサービスを提供する。
このようにすることで、サービス提供サーバーは、正当性の検証された情報処理端末にのみサービスを提供することができる。さらには、サービス提供サーバーは、従来技術においては、サービスを要求してきた端末が、仮想マシンモニター上で動作しているかの判別ができなかったが、トラストモデル管理データベース内でトラストモデルを定義したTPM証明書・仮想TPM証明書を保持しているので、仮想マシンモニター上で動作しているマシンの判別が可能になる。さらには、マルチステークホルダーモデルのような仮想マシン間で依存関係のある構成の端末においても、トラストモデル管理データベース内の証明書を参照することで、どのトラストモデルで動作しているかどうか、そして、期待されるトラストモデルに基づいて、起動しているかどうかを判別することができ、サービス提供者は、より柔軟に情報処理端末内の環境の正当性を検証できる。
以上で、実施の形態2の説明を終わる。
S1107からS1109のサービス提供サーバー側での検証ステップについて説明したが、これらの検証のステップに限定されなくてもよい。例えば、認証PCRデータベースの認証PCRとS1101で送信したノンス情報に対して生成した認証ハッシュ値と、S1106にて受け付けた署名データをAIK証明書に記載される公開鍵で復号し、復号されたハッシュ値とを、比較することで検証してもよい。
(実施の形態3)
本実施の形態3では、情報処理端末1200は、実施の形態1、2の仮想マシンとは別に、さらに管理用のマシン環境(管理マシン1201)を備える。図13は、管理用マシンを備えた情報処理端末1200の全体構成図である。実施の形態1、2と大きく異なる点は、仮想マシンモニター内に存在した仮想TPM制御部1202、仮想トラステッドビルディングブロック(1230,1240)が管理マシン1201内に、そして仮想マシンモニター1203に、仮想TPM制御通知部1204が新規に構成されている点である。実施の形態1、2で説明した機能と同一の機能を実現する部分については説明を省略し、実施の形態1、2と異なる機能を有する部分のみについて説明をする。
仮想TPM制御通知部1204は、仮想マシン(1211、1220)の仮想TPMインターフェース(1211、1222)から仮想TPMの処理要求を受付け、受付けた仮想TPM処理要求を、管理マシン1201の仮想TPM制御部1202に通知する。
仮想TPM管理部1202は、仮想TPM制御通知部1204から通知された仮想TPM処理要求を、適切な仮想TBB内の仮想TPMに対して処理要求をする。図13の例では、仮想マシン1210からの仮想TPM処理要求であれば、仮想TPM1(1232)へ、また、仮想マシン1220からの仮想TPM処理要求であれば、仮想TPM2(1242)へ処理要求を行う。
仮想TPMによる仮想TPM処理要求の結果は、仮想TPM管理部1202から仮想TPM制御通知部を介し、要求元である仮想マシンへ処理結果を返す。図11の例では、仮想TPM1(1232)からの仮想TPM処理結果であれば、仮想マシン1(1210)へ、そして仮想TPM2(1242)からの仮想TPM処理結果であれば、仮想マシン2(1220)へ、処理結果を返す。
また、仮想マシンからデバイスへの処理用要求は、仮想デバイスドライバ(1212、1223)から仮想マシンモニター1203を経由し、管理マシン1201のデバイスドライバ1260に処理が依頼され、デバイスドライバ1260がデバイスに対する処理を行う。デバイスの処理結果は、デバイスへの処理用要求と逆のフローで処理結果が返るので、詳細説明は省略する。
また、本実施の形態3において、管理マシンは、TPM1272を利用してセキュアな処理を実行する。したがって、管理マシンの環境情報となるインテグリティ値は、TPM1272に記録される。この場合、仮想マシンモニターのインテグリティ値と、管理マシンのインテグリティ値とを連鎖し、連鎖した値は、TPM1272に記録される。また、図12に図示しないTPM証明書は、仮想マシンモニターと管理マシンが利用するTPM1272に対応づけられた証明書とする。これにより、仮想マシンを、仮想マシンモニターに対してだけでなく管理マシンに対しても信頼の依存関係を持たせることが可能となる。このTPM証明書を利用して、セキュアブートすることで、仮想マシンモニターのインテグリティ値だけでなく、管理マシンのインテグリティ値も、仮想マシンのインテグリティ値に連鎖させることができ、連鎖した値は、仮想TPMのPCRに記録される。このように仮想マシン環境および管理マシンの正当性を検証しながら、情報処理端末を起動させることが可能になる。
また、実施の形態2のようなAttestation処理を行う場合、仮想マシンは、図12に図示しない仮想マシンの通知部により、仮想マシンの環境情報と、仮想マシンモニターおよび管理マシンのインテグリティ値とを連鎖させた値を外部のサービス提供サーバーに送信することが可能となる。これにより外部のサービス提供サーバーにて、情報処理端末の全環境情報の正当性を検証することが可能となる。
なお、仮想マシンに通知部を持たせず、管理マシン内に通知部を持たせるようにしてもよい。これにより、外部サービス提供サーバーからのAttestation処理結果が、仮想マシンが正当でないという結果であった場合に、管理マシンが、仮想マシンの停止や、仮想マシンに対する機能を制限させてもよい。
以上で、実施の形態3の説明を終わる。
なお、仮想マシン間、あるいは仮想マシンと仮想マシンモニター・管理マシン間でインテグリティ値を連鎖させず、それぞれのマシン内だけで連鎖処理を閉じるようにしてもよい。この場合、TPM証明書によって起動の順序だけを制御する。このようにすることで、マシンごとに独立した環境情報がそれぞれのTPMのPCRに記録されるようになり、個々のマシン環境を個別に検証することも可能となる。
また、TPMのPCRを2重に持たせるようにしてもよい。この場合、依存関係のある環境情報を連鎖させたインテグリティ情報を記録するPCR群と、依存関係のある環境情報を連鎖させないインテグリティ情報を記録するPCR群とを持たせる。また、この場合、モジュール証明書に記載される認証PCRの領域も2重に持つようにし、1つは依存関係のある環境情報を連鎖させたインテグリティ情報を示した認証PCR値と、もう1つは依存関係のある環境情報を連鎖させないインテグリティ情報を示した認証PCR値とする。このようにすることで、情報処理端末内の個別のマシン環境情報の正当性検証と、情報処理端末の全環境の正当性検証の2つの検証が可能となり、セキュアブートによる検証およびAttestationによる検証が、より柔軟になる。
(その他変形例)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(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)本発明の一実施態様である情報処理装置は、複数のステークホルダーの各々に対応する複数の仮想マシンと、前記複数の仮想マシンの各々に対応する複数の耐タンパモジュールと、前記複数の仮想マシンと前記複数の耐タンパモジュールとの間の処理を管理する管理部とを具備し、前記複数の仮想マシンの各々は、前記複数の仮想マシンの相互間において依存関係を持たせた証明書を有するものである。
この構成によると、前記複数の仮想マシンの各々の依存関係を、証明書を用いて管理することにより、前記複数の仮想マシンの各々の依存関係は改竄されたものではないことが保証されるので、前記複数の仮想マシンが所望の依存関係で正規に動作することを保証できる。
また、本発明の一実施態様である情報処理装置は、前記情報処理装置において、複数の仮想マシンの各々が、複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動するものである。
この構成によると、複数の仮想マシンの各々が起動する際、複数の仮想マシンの相互間において依存関係を証明する証明書を参照して証明書の依存関係に従った順序で起動するので、予め定められた所望の順序で前記複数の仮想マシンが相互に関連して起動するのを保証できる。
また、本発明の一実施態様である情報処理装置は、前記情報処理装置において、複数の仮想マシンの各々が、複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動し、証明書の依存関係に従った順序による起動により最終的に得られた検証値を有する耐タンパモジュールは、前記検証値に基づいて前記複数の仮想マシン全体の検証を行うものである。
この構成によると、複数の仮想マシンの各々が起動する際、複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動することにより、複数の仮想マシンの各々が相互に関連した検証値を、証明書の依存関係に従った順序による起動によって最終的に得られた検証値として得ることができるので、複数の仮想マシンの起動がステークホルダー単位となって起動の連鎖が途切れるのを防止できる。
また、前記情報処理装置において、複数のステークホルダーの各々が、各ステークホルダーが対応する耐タンパモジュールのみを利用する第1ステークホルダーモデル、あるステークホルダーが対応する耐タンパモジュール及び他のステークホルダーに対応する耐タンパモジュールの一領域を利用する第2ステークホルダーモデル、及びあるステークホルダーが対応する耐タンパモジュールを有さず他のステークホルダーに対応する耐タンパモジュールの全領域を利用する第3ステークホルダーモデルの中のいずれかのステークホルダーモデルに対応し、複数の仮想マシンの各々は、複数のステークホルダーの各々のステークモデルを表現した証明書であって前記複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動するものである。
この構成によると、複数の仮想マシンの各々が起動する際、前記複数のステータスホルダーの各々のステークホルダーモデルを表現した証明書であって複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動することにより、複数の仮想マシンの各々が相互に関連した検証値を、証明書の依存関係に従った順序による起動によって最終的に得られた検証値として得ることができるので、複数の仮想マシンの起動がステークホルダー単位となって起動の連鎖が途切れるのを防止できる。
また、複数のステータスホルダーの各々のステークモデルを表現した証明書であって複数のステータスホルダーの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動することにより、各仮想マシンは対応するステークホルダーモデルに従って起動していることが保証されるので、正しいステークホルダーモデルで動作していることの判別を確実にできる。
また、前記情報処理装置において、証明書が、ステークモデルのタイプ、自己の仮想マシンが連鎖する他の仮想マシンを示すポインタ、自己の仮想マシンが連鎖する他の仮想マシンに対応する耐タンパモジュール内のレジスタを示すPCR番号を含むものである。
また、前記情報処理装置において、複数の仮想マシンの各々が、証明書に基づいて連鎖する仮想マシンのステークホルダーモデルを判断する場合であって、証明書のポインタが示すステークホルダーモデルが第2ステークホルダーモデル及び第3ステークホルダーモデルのいずれであることを示す場合、証明書のPCR番号に基づいて自己の仮想マシンのステークホルダーモデルが第2ステークホルダーモデル又は第3ステークホルダーモデルかを判断するものである。
この構成によると、証明書を用いてセキュアブートする際に、第2ステークホルダー及び第3ステークホルダーが、他のステークホルダーに対応する耐タンパモジュールを利用するという共通する性格を有するために、証明書が第2ステークホルダーモデル及び第3ステークホルダーモデルの双方を示すことになる場合であっても、証明書のPCR番号に基づいて自己のステークホルダーが第2ステークホルダーモデル又は第3ステークホルダーモデルかを判断することにより、いずれのステークホルダーモデルかの判断が可能となるので、各仮想マシンは対応するステークホルダーモデルの誤判断を簡易な構成により容易に防止できる。
また、前記情報処理装置において、複数の仮想マシンの各々が、証明書のPCR番号が連鎖する仮想マシンに対応する耐タンパモジュール内のレジスタの一領域を示す場合、自己の仮想マシンのステークホルダーモデルが第2ステークホルダーモデルであると判断するものである。
また、前記情報処理装置において、連鎖する仮想マシンの耐タンパモジュール内のレジスタの一領域は、前記複数の仮想マシンの一が、連鎖する仮想マシンに対応する耐タンパモジュール内のレジスタを重複して利用する領域である。
また、前記情報処理装置において、前記複数の仮想マシンの各々が、前記証明書のPCR番号が連鎖する仮想マシンに対応する耐タンパモジュール内のレジスタの全領域を示す場合、自己のステークホルダーモデルが第3ステークホルダーモデルであると判断するものである。
また、前記情報処理装置において、前記管理部が、外部のサーバー装置から認証要求(ATTESTATION)があった場合、前記証明書の依存関係に従った順序による起動により最終的に得られた検証値を前記サーバー装置に送信するものである。
この構成によると、サービスを提供するサーバー装置側において、情報処理装置内の複数の仮想マシンが正しいステークホルダーモデルで動作していることを確実に検証できる。
また、前記情報処理装置において、複数の仮想マシンの各々が、起動する際に所定の検証用演算により改ざんチェックするものである。
また、前記情報処理装置において、複数の仮想マシンの各々が、所定の検証用演算により改ざんチェックする際、前記管理部の検証により得られた検証値に基づいて、前記複数の仮想マシンの各々の検証値を連鎖させて前記所定の検証用演算を行うものである。
この構成によると、管理部の検証により得られた検証値に基づいて、複数の仮想マシンの各々の検証値を連鎖させて前記所定の検証用演算を行うことにより、管理部の検証値を前記前記複数の仮想マシンにおける検証用演算に反映させるので、複数の仮想マシンが正しい管理部を介在して動作していることを確認できる。
また、前記情報処理装置において、複数の仮想マシン中で、セキュアブートにより最終的に得られた検証値を有する耐タンパモジュールが、耐タンパモジュール内に前記検証値を保持するものである。
また、前記情報処理装置において、セキュアブートにより最終的に得られた検証値を有する耐タンパモジュールが、前記検証値に基づいて前記複数の仮想マシン及び前記管理部を含めた全体の検証を行うものである。
また、前記情報処理装置において、所定の検証用演算はハッシュ演算であり、検証値はハッシュ値としたものである。
また、前記情報処理装置において、証明書が、複数の仮想マシンの相互間および複数の仮想マシンと管理部との相互間における依存関係を証明しているものである。
この構成によると、証明書に、複数の仮想マシンの相互間および複数の仮想マシンと管理部との相互間における依存関係を証明させることにより、証明書は管理部を含めた複数の仮想マシンの各々の依存関係を証明することになるので、管理部を含めた複数の仮想マシンの各々の依存関係は改竄されたものではないことが保証され、管理部を含めた複数の仮想マシンが所望の依存関係で正規に動作することを保証できる。
また、前記情報処理装置において、複数の仮想マシンの各々が、複数の仮想マシンの相互間、および複数の仮想マシンと管理部との相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動するものである。
この構成によると、前記複数の仮想マシンの各々が起動する際、管理部を含めた複数の仮想マシンの相互間において依存関係を証明する証明書を参照して証明書の依存関係に従った順序で起動するので、予め定められた所望の順序で管理部を含めて複数の仮想マシンが相互に関連して起動するのを保証できる。
また、前記情報処理装置において、複数の仮想マシンの各々は、複数の仮想マシンの相互間、および複数の仮想マシンと管理部との相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動し、証明書の依存関係に従った順序による起動により最終的に得られた検証値を有する耐タンパモジュールは、検証値に基づいて複数の仮想マシン全体の検証を行うものである。
この構成によると、複数の仮想マシンの各々が起動する際、管理部を含めた複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動することにより、管理部を含めた複数の仮想マシンの各々が相互に関連した検証値を、証明書の依存関係に従った順序による起動によって最終的に得られた検証値として得ることができるので、管理部を含めて複数の仮想マシンの起動がステークホルダー単位となって起動の連鎖が途切れるのを防止できる。
また、前記情報処理装置において、複数のステークホルダーの各々が、各ステークホルダーが対応する耐タンパモジュールのみを利用する第1ステークホルダーモデル、あるステークホルダーが対応する耐タンパモジュール及び他のステークホルダーに対応する耐タンパモジュールの一領域を利用する第2ステークホルダーモデル、及びあるステークホルダーが対応する耐タンパモジュールを有さず他のステークホルダーに対応する耐タンパモジュールの全領域を利用する第3ステークホルダーモデルの中のいずれかのステークホルダーモデルに対応し、複数の仮想マシンの各々が、複数のステークホルダーの各々のステークモデルを表現した証明書であって複数の仮想マシンの相互間および複数の仮想マシンと管理部との相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動するものである。
この構成によると、複数の仮想マシンの各々が起動する際、管理部を含めた複数のステータスホルダーの各々のステークホルダーモデルを表現した証明書であって複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動することにより、管理部を含めて複数の仮想マシンの各々が相互に関連した検証値を、証明書の依存関係に従った順序による起動によって最終的に得られた検証値として得ることができるので、管理部を含めて複数の仮想マシンの起動がステークホルダー単位となって起動の連鎖が途切れるのを防止できる。
また、前記情報処理装置において、管理部に対応する第2の耐タンパーモジュールを設け、証明書が、ステークモデルのタイプ、自己の仮想マシンが連鎖する他の仮想マシンを示すポインタ、自己の仮想マシンが連鎖する他の仮想マシンに対応する耐タンパモジュール内のレジスタを示すPCR番号、及び前記第2の耐タンパモジュール内のレジスタを示すPCR番号を含むものである。
また、本発明の一実施態様である情報処理装置は、前記情報処理装置の機能を備えた携帯端末機器である。
また、本発明の一実施態様である制御方法は、複数のステークホルダーの各々に対応する複数の仮想マシンと、複数の仮想マシンの各々に対応する複数の耐タンパモジュールと、複数の仮想マシンと複数の耐タンパモジュールとの間の処理を管理する管理部とを具備した情報処理装置の制御方法であって、複数の仮想マシンの各々は、複数の仮想マシンの相互間において依存関係を持たせた証明書を有し、複数の仮想マシンの各々は、複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動し、証明書の依存関係に従った順序による起動により最終的に得られた検証値を有する耐タンパモジュールは、検証値に基づいて前記複数の仮想マシン全体の検証を行うものである。
この構成によると、複数の仮想マシンの各々の依存関係を、証明書を用いて管理することにより、複数の仮想マシンの各々の依存関係は改竄されたものではないことが保証されるので、複数の仮想マシンが所望の依存関係で正規に動作することを保証できる。
また、複数の仮想マシンの各々が起動する際、複数の仮想マシンの相互間において依存関係を証明する証明書を参照して証明書の依存関係に従った順序で起動するので、予め定められた所望の順序で複数の仮想マシンが相互に関連して起動するのを保証できる。
また、本発明の一実施態様である制御プログラムは、複数のステークホルダーの各々に対応する複数の仮想マシンと、前記複数の仮想マシンの各々に対応する複数の耐タンパモジュールと、前記複数の仮想マシンと前記複数の耐タンパモジュールとの間の処理を管理する管理部とを具備した情報処理装置の制御プログラムであって、前記複数の仮想マシンの各々は、前記複数の仮想マシンの相互間において依存関係を持たせた証明書を有し、前記制御プログラムは、前記複数の仮想マシンの各々を、前記複数の仮想マシンの相互間において依存関係を持たせた前記証明書を用いて、前記証明書の依存関係に従った順序で起動し、前記証明書の依存関係に従った順序による起動により最終的に得られた検証値を有する耐タンパモジュールに、前記検証値に基づいて前記複数の仮想マシン全体の検証を行わせるものである。
この構成によると、複数の仮想マシンの各々の依存関係を、証明書を用いて管理することにより、複数の仮想マシンの各々の依存関係は改竄されたものではないことが保証されるので、複数の仮想マシンが所望の依存関係で正規に動作することを保証できる。
また、複数の仮想マシンの各々が起動する際、複数の仮想マシンの相互間において依存関係を証明する証明書を参照して証明書の依存関係に従った順序で起動するので、予め定められた所望の順序で複数の仮想マシンが相互に関連して起動するのを保証できる。
また、本発明の一実施態様である集積回路は、情報処理装置で用いられる集積回路であって、複数のステークホルダーの各々に対応する複数の仮想マシンと、前記複数の仮想マシンの各々に対応する複数の耐タンパモジュールと、前記複数の仮想マシンと前記複数の耐タンパモジュールとの間の処理を管理する管理部とを具備し、前記複数の仮想マシンの各々は、前記複数の仮想マシンの相互間において依存関係を持たせた証明書を有するものである。
この構成によると、前記複数の仮想マシンの各々の依存関係を、証明書を用いて管理することにより、前記複数の仮想マシンの各々の依存関係は改竄されたものではないことが保証されるので、前記複数の仮想マシンが所望の依存関係で正規に動作することを保証できる。
(6)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明にかかる仮想マシンのセキュアブート制御方法を利用により、複数の仮想マシンの各々が起動する際、複数の仮想マシンの相互間において依存関係を持たせた証明書を用いて、証明書の依存関係に従った順序で起動することにより、複数の仮想マシンの各々が相互に関連した検証値を、証明書の依存関係に従った順序による起動によって最終的に得られた検証値として得ることができるので、複数の仮想マシンの起動がステークホルダー単位となって起動の連鎖が途切れるのを防止できる。
101、102、111、112、121、122 ステークホルダー
103、104、113、114、123 TPM
10、1000、1200 情報処理端末
11、1280 CPU
12、1281 I/Oデバイス
13、1282 揮発メモリ
14、1283 不揮発メモリ
20、30、1010、1020、1210、1220 仮想マシン
21、31、1211、1222 仮想TPMインターフェース
22、32、1212、1223 仮想デバイスドライバ
25、35 アプリケーション
24、34 ゲストOS
23、33 OSローダー
40、1030、1203 仮想マシンモニター
41、1260 デバイスドライバ
42、1250 TPMインターフェース
50、1033、1202 仮想TPM制御部
60、70、1230、1240 仮想TBB
61、71、1231、1241 仮想計測・検証部
62、72、1031、1032、1232、1242 仮想TPM
80、1270 TBB
81、1271 計測・検証部
82、1040、1272 TPM
63、73、83 PCR
410 トラストモデル管理部
411 TPM証明書
412、413 仮想TPM証明書
420 ブート制御部
421 モジュール証明書格納部
422 PCR初期値設定部
423 ブート制御部
501 証明書バージョン
502 シリアルナンバー
503、703 署名アルゴリズム
504 発行者情報
505 有効期間
506 サブジェクト
507 公開鍵情報
508 TPMバージョン
509 トラストモデル識別情報
510 依存TPM証明書識別情報
511 依存TPM−PCR番号
512 拡張領域
513、708 署名データ
701 モジュール識別情報
702 モジュールバージョン情報
704 認証インテグリティ値
705 認証PCR値
706 PCRインデックス
707 検証鍵識別情報
2000 サービス提供サーバー
3000 ネットワーク
2001 AIK証明書データベース
2002 認証PCRデータベース
2003 トラストモデル管理データベース
1011、1021 通知部
1021 管理マシン
1204 仮想TPM制御通知部

Claims (16)

  1. 複数の仮想マシンを動作させる情報処理装置であって、
    前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を格納する依存情報格納部と、
    前記複数の仮想マシンの起動を管理し、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御する仮想マシン管理部と
    を備えることを特徴とする情報処理装置。
  2. 前記情報処理装置は、更に、
    前記複数の仮想マシンそれぞれに対応し、前記複数の仮想マシンそれぞれの持つ機能の完全性の検証に用いる検証情報をそれぞれ格納する複数の状態格納部を備え、
    前記仮想マシン管理部は、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンの状態格納部から前記起動すべき仮想マシンが使用する機能の検証情報を読み出し、前記起動すべき仮想マシンの状態格納部に反映する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記複数の状態格納部はそれぞれ複数の記録領域を持ち、前記複数の状態格納部それぞれに対応する仮想マシンについて、前記仮想マシンの持つ1以上の機能の完全性の検証に用いる検証情報を前記複数の記録領域のいずれかに格納し、
    前記仮想マシン管理部は、前記起動すべき仮想マシンの依存情報が、前記他の仮想マシンの持つ1以上の機能のうち一部を使用することを示している場合、前記他の仮想マシンの状態格納部に格納されている検証情報のうち、前記起動すべき仮想マシンが使用する機能に対応する記録領域に記録されている検証情報を前記起動すべき仮想マシンの状態格納部に反映し、前記起動すべき仮想マシンが使用する機能に対応しない記録領域の検証情報は前記起動すべき仮想マシンの状態格納部に反映しない
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記情報処理装置は、更に、前記複数の仮想マシンそれぞれに対応する複数の耐タンパーモジュールを備え、
    前記複数の状態格納部はそれぞれ、前記複数の耐タンパーモジュールのそれぞれに含まれ、
    前記複数の仮想マシンそれぞれの持つ機能は、前記複数の仮想マシンそれぞれに対応する耐タンパーモジュールによって実現される
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記複数の仮想マシンそれぞれは、複数のステークホルダーそれぞれに対応しており、
    前記複数のステークホルダーそれぞれは、各ステークホルダーが対応する仮想マシンの持つ機能のみを使用する第1ステークホルダーモデル、他の仮想マシンの持つ機能の一部を使用する第2ステークホルダーモデル、および、他の仮想マシンの持つ機能の全てを使用する第3ステークホルダーモデルのいずれかのステークホルダーモデルに対応し、
    前記依存情報は、前記依存情報が対応する仮想マシンのステークホルダーモデルが前記第1ステークホルダーモデル、前記第2ステークホルダーモデル、第3ステークホルダーモデルのいずれであるかを示し、
    前記仮想マシン管理部は、前記依存情報に基づいて前記起動すべき仮想マシンのステークホルダーモデルを判断する
    ことを特徴とする請求項3に記載の情報処理装置。
  6. 前記依存情報は、前記依存情報に対応する仮想マシンが使用する機能を持つ他の仮想マシンを示す情報と、前記依存情報に対応する仮想マシンが使用する機能の検証情報が格納されている記録領域を示す情報とを含む
    ことを特徴とする請求項5に記載の情報処理装置。
  7. 前記仮想マシン管理部は、前記起動すべき仮想マシンの依存情報が、前記起動すべき仮想マシンが使用する機能の検証情報が格納されている記録領域として、他の仮想マシンの記録領域の一部を示している場合、前記起動すべき仮想マシンのステークホルダーモデルを第2ステークホルダーモデルであると判断する
    ことを特徴とする請求項6に記載の情報処理装置。
  8. 前記仮想マシン管理部は、前記起動すべき仮想マシンの依存情報が、前記起動すべき仮想マシンが使用する機能の検証情報が格納されている記録領域として、他の仮想マシンの記録領域の全部を示している場合、前記起動すべき仮想マシンのステークホルダーモデルを第3ステークホルダーモデルであると判断する
    ことを特徴とする請求項6に記載の情報処理装置。
  9. 前記仮想マシンの持つ機能は1以上のモジュールによって実現されており、
    前記複数の状態格納部は、それぞれ、自身が対応する仮想マシンの持つ機能について、前記機能を実現するモジュールが起動する毎に、前記起動したモジュールを示す情報を、前記複数の状態格納部それぞれに格納されている検証情報に累積することで、前記検証情報を更新し、
    前記仮想マシン管理部は、前記検証情報の初期値として、前記起動すべき仮想マシンが使用する機能の検証情報を前記起動すべき仮想マシンの状態格納部に格納することで、前記起動すべき仮想マシンの状態格納部に、前記起動すべき仮想マシンが使用する機能の検証情報を反映する
    ことを特徴とする請求項2に記載の情報処理装置。
  10. 前記情報処理装置は、前記仮想マシン管理部によって制御された順序に従った前記複数の仮想マシンの起動が完了すると、前記複数の状態格納部に格納されている検証情報に基づいて前記情報処理装置全体の完全性を検証する
    ことを特徴とする請求項9に記載の情報処理装置。
  11. 前記情報処理装置は、更に、
    外部のサーバからの認証要求を受け付ける受信部と、
    前記認証要求が受け付けられると、前記仮想マシン管理部によって制御された順序に従った前記複数の仮想マシンの起動が完了した後で、前記複数の状態格納部に格納されている検証情報を前記外部のサーバへ送信する
    ことを特徴とする請求項9に記載の情報処理装置。
  12. 前記情報処理装置は、更に、
    前記仮想マシン管理部について、前記仮想マシン管理部の持つ1以上の機能の完全性の検証に用いる検証情報を格納する管理状態格納部を備え、
    前記依存情報は、更に、前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが前記仮想マシン管理部の持つ機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが前記仮想マシン管理部の機能を使用しないことを示す管理依存情報を含み、
    前記仮想マシン管理部は、更に、前記複数の仮想マシンのいずれかを起動する際に、起動すべき仮想マシンの依存情報が、前記起動すべき仮想マシンが仮想マシン管理部の機能のいずれかを使用することを示していれば、前記仮想マシン管理部の管理状態格納部から前記起動すべき仮想マシンが使用する機能の検証情報を読み出し、前記起動すべき仮想マシンの状態格納部に反映する
    ことを特徴とする請求項2に記載の情報処理装置。
  13. 複数の仮想マシンを動作させる携帯端末であって、
    前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を格納する依存情報格納部と、
    前記複数の仮想マシンの起動を管理し、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御する仮想マシン管理部と
    を備えることを特徴とする携帯端末。
  14. 複数の仮想マシンを動作させる情報処理装置の制御方法であって、
    前記情報処理装置は、
    前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を含んだ依存情報を格納する依存情報格納部を備え、
    前記制御方法は、
    起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断するステップと、
    前記複数の仮想マシンの起動を管理し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御するステップと
    を含むことを特徴とする制御方法。
  15. 複数の仮想マシンを動作させる情報処理装置の制御プログラムを記録した記録媒体であって、
    前記情報処理装置は、
    前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を含んだ依存情報を格納する依存情報格納部を備え、
    前記制御プログラムは、
    起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断するステップと、
    前記複数の仮想マシンの起動を管理し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御するステップと
    を含むことを特徴とする記録媒体。
  16. 複数の仮想マシンを動作させる情報処理装置を制御する集積回路であって、
    前記情報処理装置は、
    前記複数の仮想マシンそれぞれについて、前記複数の仮想マシンそれぞれが他の仮想マシンの持つ1以上の機能のうちのいずれかを使用すること、若しくは、前記複数の仮想マシンそれぞれが他の仮想マシンの機能を使用しないことを示す依存情報を含んだ依存情報を格納する依存情報格納部を備え、
    前記集積回路は、
    前記複数の仮想マシンの起動を管理し、起動すべき仮想マシンの依存情報が前記起動すべき仮想マシンが他の仮想マシンの機能を使用することを示す場合、前記起動すべき仮想マシンは前記他の仮想マシンに依存すると判断し、前記起動すべき仮想マシンが他の仮想マシンに依存する場合、前記他の仮想マシンを起動した後で前記起動すべき仮想マシンを起動するよう前記複数の仮想マシンの起動の順序を制御する
    ことを特徴とする集積回路。
JP2010500554A 2008-02-25 2009-02-23 情報処理装置 Active JP5411122B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010500554A JP5411122B2 (ja) 2008-02-25 2009-02-23 情報処理装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008043007 2008-02-25
JP2008043007 2008-02-25
JP2010500554A JP5411122B2 (ja) 2008-02-25 2009-02-23 情報処理装置
PCT/JP2009/000757 WO2009107349A1 (ja) 2008-02-25 2009-02-23 情報処理装置

Publications (2)

Publication Number Publication Date
JPWO2009107349A1 true JPWO2009107349A1 (ja) 2011-06-30
JP5411122B2 JP5411122B2 (ja) 2014-02-12

Family

ID=41015756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010500554A Active JP5411122B2 (ja) 2008-02-25 2009-02-23 情報処理装置

Country Status (5)

Country Link
US (1) US20100325628A1 (ja)
EP (1) EP2261832A4 (ja)
JP (1) JP5411122B2 (ja)
CN (1) CN101960464B (ja)
WO (1) WO2009107349A1 (ja)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4950195B2 (ja) * 2006-07-03 2012-06-13 パナソニック株式会社 証明装置、検証装置、検証システム、コンピュータプログラム及び集積回路
JP5365051B2 (ja) * 2008-03-31 2013-12-11 富士通株式会社 管理プログラム、管理装置及び管理方法
JP4924514B2 (ja) * 2008-03-31 2012-04-25 富士通株式会社 仮想マシン管理プログラム、管理サーバ装置及び仮想マシン管理方法
US9621584B1 (en) * 2009-09-30 2017-04-11 Amazon Technologies, Inc. Standards compliance for computing data
WO2011152910A1 (en) * 2010-06-02 2011-12-08 Vmware, Inc. Securing customer virtual machines in a multi-tenant cloud
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
CN103124973B (zh) 2010-09-22 2015-09-30 国际商业机器公司 证明引导过程期间交互式组件的使用
US8869264B2 (en) 2010-10-01 2014-10-21 International Business Machines Corporation Attesting a component of a system during a boot process
US8832686B2 (en) * 2010-10-29 2014-09-09 Microsoft Corporation Inherited product activation for virtual machines
CN103201747B (zh) * 2010-11-18 2015-11-25 国际商业机器公司 用于验证多个数据处理系统的方法和设备
TW201241662A (en) * 2010-12-21 2012-10-16 Ibm Virtual machine validation
US20180074843A1 (en) * 2011-03-31 2018-03-15 P4tents1, LLC System, method, and computer program product for linking devices for coordinated operation
MY176908A (en) * 2011-04-26 2020-08-26 Mimos Berhad An apparatus and method for determining level of integrity
US8910156B1 (en) * 2011-04-29 2014-12-09 Netapp, Inc. Virtual machine dependency
EP2710509A4 (en) 2011-05-18 2015-02-25 Nokia Corp SECURE PRIMER WITH TRUSTED COMPUTER GROUP PLATFORM REGISTERS
US8474056B2 (en) * 2011-08-15 2013-06-25 Bank Of America Corporation Method and apparatus for token-based virtual machine recycling
US9069943B2 (en) 2011-08-15 2015-06-30 Bank Of America Corporation Method and apparatus for token-based tamper detection
US8566918B2 (en) 2011-08-15 2013-10-22 Bank Of America Corporation Method and apparatus for token-based container chaining
US8752123B2 (en) 2011-08-15 2014-06-10 Bank Of America Corporation Apparatus and method for performing data tokenization
US8812830B2 (en) 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
JP5903822B2 (ja) * 2011-09-30 2016-04-13 富士通株式会社 設定制御装置、設定制御方法および設定制御プログラム
US8494585B2 (en) 2011-10-13 2013-07-23 The Boeing Company Portable communication devices with accessory functions and related methods
US8843650B2 (en) * 2012-01-09 2014-09-23 Fujitsu Limited Trusted network booting system and method
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US8793504B2 (en) * 2012-02-22 2014-07-29 International Business Machines Corporation Validating a system with multiple subsystems using trusted platform modules and virtual platform modules
US8954964B2 (en) 2012-02-27 2015-02-10 Ca, Inc. System and method for isolated virtual image and appliance communication within a cloud environment
US8839447B2 (en) * 2012-02-27 2014-09-16 Ca, Inc. System and method for virtual image security in a cloud environment
JP5722281B2 (ja) * 2012-06-18 2015-05-20 日本電信電話株式会社 ネットワークシステム及び判定方法
CN103514038B (zh) * 2012-06-26 2018-11-27 中兴通讯股份有限公司 一种虚拟系统的平滑关闭方法及系统
US9389898B2 (en) 2012-10-02 2016-07-12 Ca, Inc. System and method for enforcement of security controls on virtual machines throughout life cycle state changes
US8700898B1 (en) * 2012-10-02 2014-04-15 Ca, Inc. System and method for multi-layered sensitive data protection in a virtual computing environment
US8997187B2 (en) * 2013-03-15 2015-03-31 Airwatch Llc Delegating authorization to applications on a client device in a networked environment
US20160132681A1 (en) * 2013-06-14 2016-05-12 Nec Europe Ltd. Method for performing a secure boot of a computing system and computing system
US9497221B2 (en) * 2013-09-12 2016-11-15 The Boeing Company Mobile communication device and method of operating thereof
US9819661B2 (en) 2013-09-12 2017-11-14 The Boeing Company Method of authorizing an operation to be performed on a targeted computing device
US10064240B2 (en) 2013-09-12 2018-08-28 The Boeing Company Mobile communication device and method of operating thereof
US9361335B2 (en) 2013-10-11 2016-06-07 Vmware, Inc. Methods and apparatus to manage virtual machines
US9519498B2 (en) 2013-12-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual machine assurances
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
CA3218009A1 (en) * 2014-05-08 2015-11-12 Block, Inc. Establishment of a secure session between a card reader and a mobile device
US8990121B1 (en) 2014-05-08 2015-03-24 Square, Inc. Establishment of a secure session between a card reader and a mobile device
US9575793B1 (en) 2014-08-26 2017-02-21 Amazon Technologies, Inc. Identifying kernel data structures
US9507621B1 (en) 2014-08-26 2016-11-29 Amazon Technologies, Inc. Signature-based detection of kernel data structure modification
US9530007B1 (en) * 2014-08-26 2016-12-27 Amazon Technologies, Inc. Identifying tamper-resistant characteristics for kernel data structures
US9767276B1 (en) 2014-08-26 2017-09-19 Amazon Technologies, Inc. Scanning kernel data structure characteristics
US9652276B2 (en) 2014-09-17 2017-05-16 International Business Machines Corporation Hypervisor and virtual machine protection
US10229272B2 (en) 2014-10-13 2019-03-12 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US9584317B2 (en) 2014-10-13 2017-02-28 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US9519787B2 (en) 2014-11-14 2016-12-13 Microsoft Technology Licensing, Llc Secure creation of encrypted virtual machines from encrypted templates
US9424067B2 (en) 2014-12-11 2016-08-23 Amazon Technologies, Inc. Managing virtual machine instances utilizing an offload device
US9292332B1 (en) 2014-12-11 2016-03-22 Amazon Technologies, Inc. Live updates for virtual machine monitor
US9400674B2 (en) 2014-12-11 2016-07-26 Amazon Technologies, Inc. Managing virtual machine instances utilizing a virtual offload device
US9886297B2 (en) 2014-12-11 2018-02-06 Amazon Technologies, Inc. Systems and methods for loading a virtual machine monitor during a boot process
US9535798B1 (en) 2014-12-19 2017-01-03 Amazon Technologies, Inc. Systems and methods for maintaining virtual component checkpoints on an offload device
CN104580188B (zh) * 2014-12-29 2017-11-07 中国科学院信息工程研究所 一种在虚拟化环境中保护根ca证书的方法与系统
CN104539622B (zh) * 2014-12-31 2018-01-23 华为技术有限公司 虚拟机的深度证明方法、计算设备和计算机系统
US10243739B1 (en) 2015-03-30 2019-03-26 Amazon Technologies, Inc. Validating using an offload device security component
US10211985B1 (en) 2015-03-30 2019-02-19 Amazon Technologies, Inc. Validating using an offload device security component
US9667414B1 (en) * 2015-03-30 2017-05-30 Amazon Technologies, Inc. Validating using an offload device security component
US10057223B2 (en) 2015-09-26 2018-08-21 Intel Corporation Data protection keys
US10169591B2 (en) * 2015-12-07 2019-01-01 Amazon Technologies, Inc. Chained security systems
US11593780B1 (en) 2015-12-10 2023-02-28 Block, Inc. Creation and validation of a secure list of security certificates
CN107015820A (zh) * 2016-01-27 2017-08-04 阿里巴巴集团控股有限公司 应用启动方法、装置及服务器
US10803461B2 (en) 2016-09-30 2020-10-13 Square, Inc. Fraud detection in portable payment readers
US9940612B1 (en) 2016-09-30 2018-04-10 Square, Inc. Fraud detection in portable payment readers
WO2018162060A1 (en) * 2017-03-08 2018-09-13 Huawei Technologies Co., Ltd. Methods and devices for attesting an integrity of a virtual machine
EP3692460B1 (en) * 2017-10-06 2021-07-28 Private Machines Inc. Computer server device and methods for initiating and running a computer process
US10033756B1 (en) * 2017-10-26 2018-07-24 Hytrust, Inc. Methods and systems for holistically attesting the trust of heterogeneous compute resources
JP6584487B2 (ja) * 2017-12-20 2019-10-02 キヤノン株式会社 情報処理装置、その制御方法およびプログラム
JP7179482B2 (ja) * 2018-04-19 2022-11-29 キヤノン株式会社 情報処理装置、制御方法、およびそのプログラム
US10853498B2 (en) * 2018-09-19 2020-12-01 Dell Products L.P. Secure boot orchestration device in a virtual desktop infrastructure
US11029967B2 (en) 2019-03-08 2021-06-08 International Business Machines Corporation Secure boot of a virtual machine
JP7463947B2 (ja) 2020-11-13 2024-04-09 住友電装株式会社 車載ecu、プログラム、及び情報処理方法
DE102021207628A1 (de) * 2021-07-16 2023-01-19 Siemens Mobility GmbH Rechenanlage und Verfahren zu deren Betrieb
EP4187418A1 (de) * 2021-11-29 2023-05-31 Siemens Aktiengesellschaft Verfahren und vorrichtung zur autorisierung einer einen zugang anfragenden applikation

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04370838A (ja) * 1991-06-20 1992-12-24 Hitachi Ltd 仮想計算機の起動方式
JP3278885B2 (ja) * 1992-03-06 2002-04-30 富士通株式会社 コンピュータシステム
JP2004185226A (ja) * 2002-12-02 2004-07-02 Nec Corp アプリケーションプログラム動的置換方式
US7222062B2 (en) * 2003-12-23 2007-05-22 Intel Corporation Method and system to support a trusted set of operational environments using emulated trusted hardware
US8838743B2 (en) * 2004-02-13 2014-09-16 Intel Corporation Apparatus and method for a dynamically extensible virtual switch
US7480804B2 (en) * 2004-04-29 2009-01-20 International Business Machines Corporation Method and system for hierarchical platform boot measurements in a trusted computing environment
US7380119B2 (en) * 2004-04-29 2008-05-27 International Business Machines Corporation Method and system for virtualization of trusted platform modules
US7590867B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US8037318B2 (en) * 2004-11-17 2011-10-11 Oracle America, Inc. System and methods for dependent trust in a computer system
US7836299B2 (en) * 2005-03-15 2010-11-16 Microsoft Corporation Virtualization of software configuration registers of the TPM cryptographic processor
US8074262B2 (en) * 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
US8949364B2 (en) * 2005-09-15 2015-02-03 Ca, Inc. Apparatus, method and system for rapid delivery of distributed applications
US20070079120A1 (en) * 2005-10-03 2007-04-05 Bade Steven A Dynamic creation and hierarchical organization of trusted platform modules
US7930733B1 (en) * 2006-04-10 2011-04-19 At&T Intellectual Property Ii, L.P. Method and system for execution monitor-based trusted computing
US7840801B2 (en) * 2007-01-19 2010-11-23 International Business Machines Corporation Architecture for supporting attestation of a virtual machine in a single step
US8074218B2 (en) * 2007-03-29 2011-12-06 International Business Machines Corporation Method and system for constructing virtual resources
US8151262B2 (en) * 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
US8984504B2 (en) * 2007-06-22 2015-03-17 Red Hat, Inc. Method and system for determining a host machine by a virtual machine
US8032741B2 (en) * 2007-08-22 2011-10-04 Intel Corporation Method and apparatus for virtualization of a multi-context hardware trusted platform module (TPM)
US8064605B2 (en) * 2007-09-27 2011-11-22 Intel Corporation Methods and apparatus for providing upgradeable key bindings for trusted platform modules
US8249257B2 (en) * 2007-09-28 2012-08-21 Intel Corporation Virtual TPM keys rooted in a hardware TPM

Also Published As

Publication number Publication date
CN101960464A (zh) 2011-01-26
CN101960464B (zh) 2013-01-16
WO2009107349A1 (ja) 2009-09-03
EP2261832A1 (en) 2010-12-15
EP2261832A4 (en) 2012-09-26
US20100325628A1 (en) 2010-12-23
JP5411122B2 (ja) 2014-02-12

Similar Documents

Publication Publication Date Title
JP5411122B2 (ja) 情報処理装置
JP7086908B2 (ja) 対象のコンピューティング装置で実施される動作を認証する方法
JP5385148B2 (ja) セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
TWI662432B (zh) 行動通信裝置及其操作方法
US8560823B1 (en) Trusted modular firmware update using digital certificate
KR100746012B1 (ko) 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치
CN103914658A (zh) 终端设备的安全启动方法及终端设备
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
US20130031371A1 (en) Software Run-Time Provenance
CN107045611B (zh) 安全启动方法及装置
CN101630353A (zh) 在移动因特网设备上安全引导uefi固件和uefi感知操作系统的系统和方法
KR20160055208A (ko) 모바일 통신 디바이스 및 그 작동 방법
CN103080904A (zh) 提供多阶段锁步完整性报告机构
JP2013519929A (ja) 情報処理装置、情報処理システム、ソフトウェアルーチン実行方法およびリモート認証方法
CN109086578A (zh) 一种软件授权使用的方法、设备及存储介质
CN111177709A (zh) 一种终端可信组件的执行方法、装置及计算机设备
TW201602835A (zh) 允許測試金鑰用於bios安裝之技術
CN108345805B (zh) 验证固件的方法及装置
JP5443498B2 (ja) 情報処理装置および情報処理方法
CN113448681A (zh) 一种虚拟机监控器公钥的注册方法、设备和存储介质
JP6354438B2 (ja) 情報処理装置、情報処理システム及び処理プログラム
US20230010319A1 (en) Deriving independent symmetric encryption keys based upon a type of secure boot using a security processor
US20230015519A1 (en) Automatically evicting an owner of a security processor
US11977639B2 (en) Indicating a type of secure boot to endpoint devices by a security processor
US11816252B2 (en) Managing control of a security processor in a supply chain

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130919

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131015

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131107

R150 Certificate of patent or registration of utility model

Ref document number: 5411122

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150