信息处理装置的制作方法

文档序号:6592934阅读:234来源:国知局
专利名称:信息处理装置的制作方法
技术领域
本发明涉及一种信息处理装置,该装置具备多个使用了虚拟化技术的参与方(stakeholder),基于各参与方之间的依赖关系进行安全引导(secureboot)处理。
背景技术
近年来,随着信息安全意识的提高,对数据保护技术的需求不断增加。在该背景下,设立了可信计算组织(TCG =Trusted Computing Group),致力于安全 的计算机平台的开发和普及。在TCG中,利用被称为可信平台模块(TPM=Trusted Platform Module)的核心安全模块实现了安全的终端环境(参照非专利文献1 3)。TCG的基本 功能包括2个特征性功能。首先是可信引导(Trusted Boot)功能,该功能对从终端启动 时刻开始到OS和应用程序启动完成为止的各模块的完整性信息进行计测,并将计测值与 其前一个模块的完整性信息关联起来进行累积处理(与TCG的TPM_EXtend命令相当的 处理),将该累积值保存到TPM内被称为平台配置寄存器(PCR =Platform Configuration Registers)的寄存器中。另一个是证明(Attestation)功能,该功能将PCR中蓄积的值作 为终端环境信息通知外部的服务器,在外部服务器中验证该终端环境信息是否是所期望的 环境信息。利用这些功能能够远程验证终端环境的真实性,这是TCG技术的优点之一。另外,TCG将移动电话也作为搭载TPM终端的目标,面向移动电话的TPM的技 术规格也正在被标准化(非专利文献3、4)。面向移动电话的TPM被称为移动可信模块 (MTM =Mobile Trusted Module)。MTM既实现了 TPM的功能,也面向移动电话对一部分命 令进行了修改,增加了新的命令。作为其追加功能,定义了安全引导功能和多参与方模型 (multi-stakeholder model)0安全引导指的是这样一种引导方式,该方式一边进行引导一边对从移动电话的终 端启动时刻开始到OS和应用程序启动完成为止的各模块的完整性信息进行计测,并在本 地终端内验证计测值是否是所期望的值。另外,多参与方模型指的是为了使设备制造商、电信运营商、应用服务提供者、用 户等与移动电话终端有关的多个参与方安全地使用各自所拥有的权利物而定义的实施 模型。作为各参与方的权利物,例如,就设备制造商而言是国际移动设备识别码(IMEI: International Mobile Equipmentldentity),就电信运营商而言是用户识别模块(SIM: Subscriber IdentificationModule),就应用服务提供者而言是用于提供服务的数据;就 用户而言是地址簿等。总而言之,多参与方模型就是分别单独地分配各个参与方所使用的 MTM,从而使各参与方安全地使用各自的权利物的模型。使用虚拟化技术,能够在1个终端 内虚拟式实现多个MTM。专利文献1公开了一种使用虚拟化技术实现虚拟TPM的技术。专利文献1 日本特表2008-500651号公报非专利文献 1 :TPM Main, Partl Design Principles, Specification versionl. 2 Level2 Rivisionl03(9 July 2007)
非专利文献 2:TPM Main, Part2 TPM Structures, Specification versionl. 2 Level2 Revisionl03(9 July 2007)非专利文献 3:TPM Main Part3 Commands, Specification version 1. 2Level2 Rivisionl03(9 July 2007)非专利文献4 :TCG Mobile Trusted Module Specification version 1. ORevisionl (12 June 2007)非专利文献5 :TCG Mobile Reference Architecture Specification versionl. 0 Revisionl (12 June 2007)专利文献1是 一种使用虚拟化技术在虚拟机监视器上实现虚拟机动作的方法,虚 拟机所使用的TPM被实现为虚拟TPM。另外使用终端内所具备的物理TPM来保护该虚拟TPM 所持的密钥(鍵、key)或证书等敏感信息。在该专利文献1的实施模型中,从终端启动时刻 开始到虚拟机监视器层的完整性校验值经过关联处理后得到的值被保存到物理TPM的PCR 中。另外,虚拟机的完整性校验值经过关联处理后得到的值被保存到分配给各个虚拟机的 虚拟TPM的PCR中。这里,虚拟化技术是一种能够使虚拟机宛如一台真实的机器一样工作 的技术,因此,TCG中的安全引导处理的完整性校验值的关联处理封闭在虚拟机内执行。即, 从虚拟机监视器到虚拟机启动为止的完整性的关联在中途就会中断。因此,存在这样一个 课题,即,即使试图利用完整性校验值的确认来验证终端环境的真实性,也无法验证虚拟机 的下层环境即虚拟机监视器层的环境的真实性。另外,多参与方模型中定义了使参与方之间带有依赖关系的信任模型。信任模型 是指用于具体地实现电信运营商使用设备制造商的MTM来参照作为设备制造商的权利物 的IMEI数据等这一类实例的模型。在这种情况下,电信运营商在信任设备制造商环境的基 础上使用设备制造商的MTM功能。但是,专利文献1中存在这样一个课题,即,这是一种以 虚拟机之间没有信赖关系为前提的技术,因而无法实施定义了上述信任模型的多参与方模 型,也无法验证是否正在以规定的信任模型进行启动。

发明内容
因此,本发明是为了解决这些课题而提出的,利用虚拟化技术实现了在实现了多 参与方模型并保持了多参与方模型中定义的参与方之间的信赖关系(信任模型)的状态下 进行安全引导的方法,还实现了能够验证包含虚拟机监视器的环境在内的终端真实性的方法。为了解决上述课题,本发明的信息处理装置是一种使多个虚拟机动作的信息处理 装置,其具备依赖信息保存部,针对所述多个虚拟机中的每个虚拟机来保存依赖信息,该 依赖信息表示所述多个虚拟机各自使用其他虚拟机所具备的1个以上功能之中的某个,或 者表示所述多个虚拟机各自不使用其他虚拟机的功能;以及虚拟机管理部,用于管理所述 多个虚拟机的启动,在应启动的虚拟机的依赖信息表示所述应启动的虚拟机使用其他虚拟 机的功能的情况下,判断为所述应启动的虚拟机依赖所述其他虚拟机,在所述应启动的虚 拟机依赖其他虚拟机的情况下,控制所述多个虚拟机的启动顺序,以便在启动了所述其他 虚拟机之后再启动所述应启动的虚拟机。发明效果
本发明的一个实施方式的信息处理装置具备上述结构,因而能够在多个虚拟机之 中确定使用其他虚拟机的功能的虚拟机,一定在所述其他虚拟机达到启动状态之后才启动 所确定的虚拟机,从而能够使所述被确定的虚拟机可靠地使用所述其他虚拟机的功能。因 此,能够使多个虚拟机在保持预定的信赖关系的状态下启动。


图1是表示本发明的实施方式1中的多参与方模型中的信任模型的图。图2是表示本发明的实施方式1中的信息处理终端的图。图3是表示本发明的实施方式1中的虚拟机的结构的图。图4是表示本发明的实施方式1中的虚拟机监视器的结构的图。图5是表示本发明的实施方式1中的TPM证书的图。图6是表示利用本发明的实施方式1中的TPM证书来表达信任模型的图。图7是表示本发明的实施方式1中的模块证书的图。图8是基于本发明的实施方式1中的信任模型的安全引导的流程9是本发明的实施方式1中的PCR的初始值设定的流程10是本发明的实施方式1中的安全引导详细流程11是表示本发明的实施方式2中的证明模型的图。图12是本发明的实施方式2中的证明模型的序列图。图13是表示本发明的实施方式3中的信息处理终端的结构的图。附图标记说明101、102、111、112、121、122 参与方103、104、113、114、123 TPM10、1000、1200 信息处理终端11、1280 CPU12、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 Guest OS (客机操作系统)23,33 OS 加载器(OS loader)40、1030、1203 虚拟机监视器41,1260 设备驱动器42、1250 TPM 接口50、1033、1202 虚拟 TPM 控制部60、70、1230、1240 虚拟 TBB61、71、1231、1241 虚拟计测验证部
62、72、1031、1032、1232、1242 虚拟 TPM80、1270 TBB81、1271 计测验证部82、1040、1272 TPM63、73、83 PCR410 信任模型管理部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 索弓 I707 验证密钥识别信息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个以上功能之中的某个,或者表示所述多个虚拟机各自不使用其他虚拟机的功能; 所述集成电路管理所述多个虚拟机的启动,在应启动的虚拟机的依赖信息表示出所述应启 动的虚拟机使用其他虚拟机的功能的情况下,判断为所述应启动的虚拟机依赖所述其他虚 拟机;在所述应启动的虚拟机依赖其他虚拟机的情况下,控制所述多个虚拟机的启动顺序,
11以便在启动了所述其他虚拟机之后再启动所述应启动的虚拟机。根据这种结构,能够在多个虚拟机之中确定使用其他虚拟机的功能的虚拟机,一 定在所述其他虚拟机达到启动状态之后才启动所确定的虚拟机,从而能够使所述被确定的 虚拟机可靠地使用所述其他虚拟机的功能。下面,参照

本发明的实施方式。(实施方式1)说明本发明的实施方式。以后,本实施方式中所示的TPM作为具有由TCG标准化 的可信平台模块的功能的核心安全模块进行说明。<多参与方模型中的信任模型>首先,针对多参与方模型以移动电话为例进行说明。移动电话涉及到设备制造 商、电信运营商、应用服务提供者、用户等多个参与方。各参与方拥有各自的权利物。例 如,就设备制造商而言是国际移动设备识别码(IMEI international Mobile Equipment Identity),就电信运营商而言是用户识别模块(SIM Subscriber Identification Module),就应用服务提供者而言是服务被提供的数据;就用户而言是地址簿等。多参与方 模型指的是分别单独地分配各个参与方所使用的TPM从而使各参与方安全地使用各自的 权利物的模型。图1是表示多参与方模型中的信任模型的图。信任模型被定义为3个模型。另外,虽然图1中并未示出,但各参与方分别管理各 自的参与方权利物,利用与各参与方相关联的TPM,安全地访问参与方所拥有的权利物。下 面分别说明3个模型。图1 (a)表示的是Ind印endent Model (独立模型)。该模型是各参与方之间不存 在信任依赖关系的模型。例如,这是一种参与方1(101)使用TPMl (103)而参与方2 (102) 使用TPM2(104)的模型。图1 (b)表示的是Interd印endent Model (相互依赖模型)。该模型是参与方之 间存在部分依赖关系的模型。例如,参与方1(111)使用TPMl (113)而参与方2(112)使用 TPM2(114)。虽然这与Ind印endent Model相同,但如图1 (b)所示,其中存在局部区域重合 的部分。这表明,参与方2(112)除了使用TPM2(114)以外,也使用TPMl (113)的功能。例 如,如果是移动电话,在参与方2(112)是电信运营商而参与方1(111)是设备制造商的情况 下,电信运营商需要访问设备制造商的权利物即IMEI。图1 (c)表示的是D印endent Model (依赖模型)。该模型是在参与方之间某个参与 方完全依赖别的参与方的模型。这是一种参与方1(121)使用TPMl (123)而参与方2 (122) 也使用TPM2(123)的模型。如果是移动电话,在参与方2是电信运营商而参与方1是设备 制造商的情况下,设备制造商的权利物即IMEI被TPMl (123)的功能保护,电信运营商的权 利物SIM信息也利用TPMl (123)的功能而加以安全保护。〈信息处理终端〉图2是在利用虚拟化技术实现了多参与方模型的情况下的信息处理终端的整体 结构图。信息处理终端10由CPUl 1、1/0设备12、RAM等易失性存储器13、ROM或闪存等非 易失性存储器14等硬件组以及包含TPM(82)的可信构建模块80 (以后简称为TBB)、包含虚拟TPM控制部50和虚拟可信构建模块(60、70)(以后简称为虚拟TBB)等的虚拟机监视器 40和虚拟机(20、30)的软件组构成。虚拟机(20、30)或虚拟机监视器40等的软件是通过 CPUll对存储在非易失性存储器或非易失性存储器中的程序加以执行而实现的。另外,图 1中表示的是TPM(82)不包含在硬件组中的结构,毋庸赘言,TPM(82)也可以包含在硬件组 中。另外,如果信息处理终端10具备安全的执行环境,那么也可以利用软件实现TPM(82)。 在本实施方式1中,将TPM(82)当做硬件进行说明。TBB80由TPM82和计测验证部81构成。TPM80是具有由TCG标准化的可信平台 模块的功能的安全模块。计测验证部81是TCG中的可信测量根(RTM:Root of Trust for Measurement)和可信验证根(RTV =Root ofTrust for Verification),是安全引导处理过 程中最先启动的模块。如果终端本身不支持安全引导而仅支持可信引导,则不存在RTV,也 可以是可信测量核心根(CRTM :Core Root of Trust for Measurement)。计测验证部81被 包含在存储有图2中未示出的初始程序加裁程序(IPL =Initial ProgramLoader)等的引导 ROM中。进而,这里所说的引导ROM优选是不可改写的安全的ROM。虚拟机监视器40包含虚拟TPM控制部50、虚拟TBB(60、70)、设备驱动器41、TPM 接口 42,是用于提供用来使虚拟机(20、30)工作的基础设施的软件。虚拟TBBl (60)是虚拟机1 (20)所使用的可信构建模块,包含虚拟计测验证部(61) 和虚拟TPM1(62)。虚拟TBB1(60)是以虚拟方式实现了与TBB80同等功能的部件,虚拟 TPMl (62)是以虚拟方式实现了与TPM82同等功能的部件,虚拟计测验证部61是以虚拟方式 实现了与计测验证部81同等功能的部件。这里所说的以虚拟方式实现指的是通过软件实 现。虚拟TBB2(70)是供虚拟机2 (30)使用的可信构建模块。虚拟TBB2 (70)以及构成 虚拟TBB2(70)的虚拟计测验证部71、虚拟TPM2(72)具有与上述虚拟TBBl (60)同等的功 能,因此省略其说明。虚拟TPM控制部50是所谓的虚拟TPM管理部件,其将虚拟机(20、30)经由虚拟 TPM接口(21、22)发出的TPM命令分配给适当的虚拟TPM(62、72)加以执行,并将虚拟TPM 的处理结果返回给适当的虚拟机(20、30)。TPM接口(42)是用于访问TPM(82)的接口,例如,是TCG的软件协议栈即可信软件 找(TSS Trusted Software Stack)0设备驱动器41是用于访问硬件组中的1/0设备等硬件的驱动软件。虚拟机1 (20)、虚拟机2 (30)是在虚拟机监视器40上运行的虚拟机,1个虚拟机作 为1个参与方环境而运行。使用图3详细说明虚拟机1、虚拟机2。〈虚拟机〉如上所述,虚拟机1 (20)作为1个参与方而运行,其结构包含OS加载器1 (20)、 Guest OSl (24)、应用程序1(25)、虚拟TPM接口(21)。虚拟TPM接口(21)是用于访问虚拟 TPM(62)的接口,是TCG中的TSS接口。TSS的实体未作图示说明,假定其安装在虚拟机监 视器40上。虚拟机1 (20)在虚拟机监视器(40)启动后被启动。虚拟机的启动顺序是0S加 载器1 (23) ,Guest OSl (24)、应用程序1 (25)。虚拟机1 (20)在虚拟机1 (30)启动时一边经 由虚拟TPM接口 21使用虚拟TPMl (62)的功能一边进行引导。
虚拟机2(20)也在虚拟机监视器(40)启动后被启动。虚拟机的启动顺序是0S加 载器2(33)、Guest 0S2 (34)、应用程序1 (35)。虚拟机2 (30)在虚拟机2 (30)启动时一边经 由虚拟TPM接口 31使用虚拟TPM2 (72)的功能一边进行引导。引导序列的详细内容将在后 文使用图8、图9进行叙述。〈虚拟机监视器〉下面使用图4说明虚拟机监视器的详细情况。以下仅对在图2的说明中未作说明 的结构要素进行说明。虚拟TPM控制部40由信任模型管理部410和引导控制部420构成。信任模型管理部410管理图1中所说明的多参与方模型中的信任模型。具体而言, 其利用将在后文使用图5进行叙述的TPM证书来表达图1的3个信任模型,并对这些TPM证 书(411、412、413)进行管理。TPM证书(411、412、413)是赋予各TPM的证书,在本实施方式 1中,TPM82被赋予TPM证书411,虚拟TPMl (62)被赋予虚拟TPMl证书412,虚拟TPM2 (72) 被赋予虚拟TPM2证书413。引导控制部420由模块证书保存部421、引导验证部423和PCR初始值设定部422 构成。模块证书保存部421中保存模块证书,该模块证书用于在各虚拟机的安全引导序 列(secure boot sequence)过程中验证应启动的模块是否是以未经篡改的方式被引导的。 模块证书是包含认证用完整性校验值和认证用完整性信息的证书,相当于TCG中的参照完 整性度量(RIM =ReferenceIntegrity Metrics)证书。在后文将使用图7对模块证书进行 叙述。1 11(82)、虚拟1 11(62、63)分别具备16个?0 。PCR是被称为平台配置寄存器的 寄存器,用于保存由TCG的TPM_EXtend命令生成的完整性校验值。另外,PCR的个数并不 限于16个,也可以多于或少于16个。此外,在本实施方式中,假定具备大于等于TCG的标 准所决定的个数的PCR。PCR初始值设定部422基于由信任模型管理部410管理的TPM证书或虚拟TPM证 书,设定虚拟机各自使用的TPM的PCR83、虚拟TPM的PCR (63、73)的初始值。引导验证部423基于由信任模型管理部410管理的TPM证书或虚拟TPM证书,在 各虚拟机启动前验证其是否保持了基于信任模型的信赖关系而启动。〈定义了信任模型的TPM证书>接着,使用图5说明定义了信任模型的TPM证书。假定TPM证书411、虚拟TPMl证 书412、虚拟TPM2证书413的格式都相同。具体而言,使用X. 509标准的格式。TPM证书由 以下部分构成证书版本501,表示X. 509标准的版本;序列号502,其是由颁发者分配的具 有唯一性的值;签名算法信息503,表示证书的签名验证过程中使用的签名算法;颁发者信 息504 ;证书有效期间505 ;主体506,表示接受证书的对象;公开密钥信息507,表示密钥值 和/或公开密钥算法;TPM版本508 ;信任模型识别信息509、依赖TPM证书识别信息510和 依赖TPM-PCR号码511 ;扩展区域512 ;以及这些数据的签名数据513。扩展区域512中既可以记载CRL或IS090000等制造流程或EAL等通用评估准则 (Common Criteria)之类的安全性关联信息,也可以记载功能控制的条件和功能控制的内 容。
14
在本实施方式中,为了定义信任模型而在证书中包含信任模型识别信息509、依赖 TPM证书识别信息510和依赖TPM-PCR号码511。下面详细说明这些结构。信任模型识别信息509中记载用于识别3个信任模型即IncbpendentMode 1、 Interdependent Model、Dependent Model 的信息。依赖TPM证书识别信息510保存有指向信任模型中存在信赖关系的TPM证书的指
针fe息。依赖TPM-PCR号码511表示的是基于信任模型而在启动完成后的环境中的TPM或 虚拟TPM存在信任依赖关系的PCR号码。在本实施方式中,各TPM或虚拟TPM将依赖TPM证书识别信息510所指示的TPM 或虚拟TPM所具有的PCR之中由依赖TPM-PCR号码511所指示的PCR的值设定为自身的 PCR的初始值,在此基础上进行安全引导。这里,考虑某个虚拟机B依赖另一个虚拟机A的 情形,即必须在虚拟机A启动之后才能启动虚拟机B的模型。在这种情况下,如果仅确认虚 拟机B已经正常启动,并不能确定虚拟机B是在虚拟机A正常启动之后才启动的。因此,如 下所示,必须在虚拟机B的验证值中继承使用虚拟机A的验证值(PCR值)。这可以通过将 虚拟机A模块启动完成之后的PCR值代入虚拟机B的TPM的PCR作为其初始值而实现。虚 拟机B的PCR值也可以继承虚拟机A的PCR值。在安全引导中的PCR累积处理过程中,每 当各模块启动时,计算出反映了当前PCR中保存的值和根据该模块计算出来的完整性校验 值的数值,作为新的PCR值保存到PCR中。因此,只要将虚拟机A的PCR值设定为初始值, 就能够将虚拟机A的PCR值反映到虚拟机B的PCR值中。此外,在虚拟机监视器和虚拟机 之间继承PCR值时也同样如此。如前所述,各TPM具有多个PCR。这里,各PCR分别保存不同模块的PCR值。这里, 各虚拟机根据信任模型使用自身所依赖的虚拟机或虚拟机监视器的不同功能。因此,各虚 拟机的信任模型不同,其要继承的PCR值就不同。首先,在Ind印endent Model的情况下,虚拟机仅依赖虚拟机监视器。因此,其继 承虚拟机监视器的环境信息即保存有完整性信息的PCR值。在本实施方式1中,假定虚拟 机监视器的环境信息被保存在PCRO至PCR2中,下面使用图6至图8进行说明。另外,在Intercbpendent Model的情况下,虚拟机仅使用自身所依赖的虚拟机中 的一部分功能。因此,只要继承与该功能相关的PCR值即可。另外,在D印endent Model的情况下,虚拟机使用自身所依赖的虚拟机的全部功 能。因此,必须继承与全部功能相关的PCR值,所以必须继承全部PCR值。在本实施方式中,为了实现这种控制,使用被包含在TPM证书中的信任模型信息 识别信息509、依赖TPM证书识别信息510、依赖TPM-PCR号码511。关于这些信息的使用方 法,将使用图6至图8进行具体说明。此外,这里所说明的TPM证书是公开密钥证书,但并不限于公开密钥证书,也可 以是属性证书。如果是公开密钥证书,那么也可以将信任模型表达为TCG中的签注密钥 (EK indorsement Key)证书;如果是属性证书,那么也可以将信任模型表达为TCG中的 Platform 证书。此外,证书格式采用了 X. 509标准进行说明,但并不限于此。证书只要包含必要的 信息即可,也可以使用其他格式。
15
<表达信任模型的TPM证书的实例>图6是表达信任模型的TPM证书的具体实例。此外,在本实施方式1中假定虚拟机监视器启动时计测得到的累积完整性校验 值被记录在TPM82的PCR83中,虚拟机1 (20)启动时计测得到的累积完整性校验值被记录 在虚拟TPMl (62)的?0 63中,虚拟机2(30)启动时计测得到的累积完整性校验值被记录在 虚拟TPM2 (72)的PCR73中。另外,将TPM证书的识别信息表示为“CERT000”、虚拟TPMl证 书的识别信息表示为“CERT001”、虚拟TPM2证书的识别信息表示为“CERT002”进行说明。 图6的TPM证书仅对与信任模型相关的信息进行了图示说明,实际上各TPM证书具有图5 所说明的格式。IH 6 (a) Mi Independent Model 的具体实例。在该实例中,将表示 Inckpendent Model的信任模型识别信息表示为“001”。另外,该实例表示出CERT001对CERT000存在信 任依赖关系、CERT002也对CERT000存在信任依赖关系。这表示,虚拟机1信任虚拟机监视 器,虚拟机2也信任虚拟机监视器。换句话说,这表示必须在虚拟机监视器启动后虚拟机1、 虚拟机2才能启动。在该实例中,CERTOO1的依赖TPM证书识别信息510是“CERT000”,依赖 TPM-PCR号码511是“PCR
”。这表示,与CERTOO1对应的虚拟TPMl对与CERT000对应 的TPM存在依赖关系,在虚拟机1启动之前,虚拟TPMl的PCR
、PCR[1]、PCR[2]的初始值 被设定为TPM的PCR
、PCR[1]、PCR[2]。同样地,CERT002的各字段的值表示,与CERT002 对应的虚拟TPM2对与CERT000对应的TPM存在依赖关系,在虚拟机1启动之前,虚拟TPMl 的 PCR
、PCR[1]、PCR[2]的初始值被设定为 TPM 的 PCR
、PCR[1]、PCR[2]。另外,在该 实例中表示的是,CERTOO1和CERT002的信任模型识别信息511是“001”,虚拟机1和虚拟 机2都按照Incbpendent Model动作。图6(b)是Interdependent Model的具体实例。其中,该实例说明的是图1 (b)的 模型中的参与方1和参与方2重叠部分的模块(即被参与方2使用的参与方1的模块)的 完整性校验值关联后的值被记录在TPMl的PCR [7]中。在该实例中,将表示Intercbpendent Model的信任模型识别信息表示为“002”。另外,该实例表示CERT002对CERT001存在信任 依赖关系、CERT001对CERT000存在信任依赖关系。这表达出虚拟机2信任虚拟机1、虚拟机 1信任虚拟机监视器这样一种信任链。换句话说,这表示必须在虚拟机监视器启动完成后虚 拟机1才能启动、接着在虚拟机1启动完成后虚拟机2才能启动。在该实例中,CERT002的 依赖TPM证书识别信息510是“CERT000”,依赖TPM-PCR号码511是“PCRW-2] ”。这表示, 与CERT001对应的虚拟TPMl对与CERT000对应的TPM存在依赖关系,在虚拟机1启动之前, 虚拟 TPMl 的 PCR
、PCR[1]、PCR[2]的初始值被设定为 TPM 的 PCR
、PCR[1]、PCR[2]。 另外,在该实例中,CERT002的依赖TPM证书识别信息510是“CERT001 ”,依赖TPM-PCR号码 511是“PCR
”。这表示,与CERT002对应的虚拟TPM2对与CERT000对应的TPM存在 依赖关系,在虚拟机1启动之前,虚拟TPMl的PCR
、PCR[1]、PCR[2]和PCR[7]的初始值被 设定为TPM的PCR
、PCR[1]、PCR[2]和PCR[7]。另外,在该实例中表示的是,CERT001和 CERT002的信任模型识别信息511是“002”,虚拟机_1和虚拟机2都按照Interd印endent Model动作。图6(c)是D印endent Model的具体实例。在该实例中,将表示D^endentModel 的信任模型识别信息表示为“003”。另外,该实例表示CERT002对CERT001存在信任依赖关系、CERTOO1对CERTO00存在信任依赖关系。这表达出虚拟机2信任虚拟机1、虚拟机1 信任虚拟机监视器这样一种信任链。换句话说,这表示必须在虚拟机监视器启动完成后虚 拟机1才能启动、在虚拟机1启动完成后虚拟机2才能启动。在该实例中,CERT002的依赖 TPM证书识别信息510是“CERT000”,依赖TPM-PCR号码511是“PCRW-2] ”。这表示,在虚 拟机1启动之前将虚拟TPMl的PCR
、PCR[1]、PCR[2]的初始值设定为TPM的PCR
、 PCR[1]、PCR[2]的值。另外,因为这是一种参与方2依赖参与方1的全部环境的模型,所 以在CERT002的依赖TPM-PCR号码512中记载“ALL”。这表示,在虚拟机2启动之前将虚 拟TPM2的全部PCR(PCR
、PCR[1]、PCR[2]、……PCR[15])的初始值设定为TPMl的全部 PCR(PCR
、PCR[1]、PCR[2]、……PCR[15])的值。关于这些PCR的初始值的设定流程,将 使用图9在后文进行叙述。〈模块证书〉接着进行模块证书的说明。图7表示的是进行安全引导处理时所使用的模块证 书。模块证书700是赋予每个作为安全引导对象的模块的证书,其由以下部分构成模块识 别信息701 ;模块版本信息702 ;签名算法信息703,该信息表示对该证书进行验证时所使用 的签名算法;认证完整性校验值704,该校验值是所期望的模块的完整性校验值;认证PCR 值705,该值表示保存着所期望的关联处理后的完整性校验值的PCR的值;PCR索引706,该 索引表示作为关联处理对象的PCR值号码;验证密钥信息707,该信息用于识别对模块证 书本身进行验证时使用的验证密钥;以及签名数据708,该签名数据用于验证证书自身的 完整性。模块证书700也可以作为TCG中的参照完整性度量(RIM Reference Integrity Metrics)证书而实现。<基于信任模型的安全引导概要>接着,使用图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,确定应启动的虚拟机的特定方法。接着,如果S804中对要执行的虚拟机的虚拟 TPM证书进行签名验证的结果为验证NG(失败),则中止引导处理(步骤S808)。否则,如果 S805的虚拟TPM证书的签名验证结果为验证OK (成功),则移至步骤S805的处理。接着,虚拟TPM控制部的引导控制部420的PCR初始值设定部422基于在S805中 经过签名验证后的虚拟TPM证书的依赖TPM证书识别信息510和依赖TPM-PCR号码512,设定与该虚拟TPM证书相对应的虚拟TPM的PCR的初始值(步骤S805)。使用图9说明PCR 的初始值的详细设定流程。接着,对与步骤S804中进行了验证的虚拟TPM证书相对应的虚拟机进行安全引导 (步骤 S806)。接着,确认全部虚拟机的安全引导是否都已经完成(步骤S809)。此外,在引导验 证部中采用标志位等实现对全部虚拟机的安全引导是否都已经完成的确认。<使用了 TPM证书的PCR设定处理>这里对图8的S802、S805的TPM和虚拟TPM的PCR的设定方法的流程进行说明。首先,参照TPM证书或虚拟TPM证书的信任模型识别信息509,以其识别信息的值 作为TRUST_M0DEL进行管理(步骤S901)。这里所说的TRUST_M0DEL既可以是特定的寄存 器,也可以是RAM中的临时变量。只要在安全引导之间能够以不挥发的形式进行管理即可。接着,参照S901中所参照的证书的依赖TPM识别信息510 (步骤S902)。如果依赖 TPM识别信息510是“NULL”,则表示该证书没有信任对象,即该证书是其环境内的信任根。 在本实施方式1中,所有信任模型中的所有虚拟机都在虚拟机监视器上动作,因此,与虚拟 机监视器层的TPM相对应的TPM证书的依赖TPM识别信息510是NULL。因此,如果S902的 结果是NULL,则PCR初始值设定部422识别该证书为TPM证书、从此被启动的环境是虚拟 机监视器(步骤S903)。否则,如果S902的结果不是NULL,则PCR初始值设定部422识别 该证书是与虚拟机所使用的虚拟TPM相对应的虚拟TPM证书、从此被启动的环境是虚拟机 (步骤 S906)。接着,在S903的处理中,PCR初始值设定部422在启动虚拟机监视器环境之前,为 了设定TPM的初始值而对依赖TPM-PCR号码511进行检验(check)(步骤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)。如果S904的结果为依赖 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_M0DEL 是否是 INTERDEPENDENTMODEL(步骤 S914)。如果 S914 的结 果是YES (信任模型识别信息509是INTERDEPENDENT MODEL),则从依赖对象的虚拟TPM 中读出由依赖TPM-PCR号码511所指定的PCR值,将该PCR值设定为作为依赖方的虚拟 TPM的PCR的初始值(步骤S915)。如果S914的结果是NO(信任模型识别信息509不是 INTERDEPENDENT MODEL),则执行报错处理(步骤S912)。这里执行报错处理的原因在于,所 谓依赖特定的PCR号码,本来表示的是INTERDEPENDENT MODEL,而如果信任模型识别信息 不是INTERDEPENDENT MODEL,那么作为证书来说就会产生矛盾。否则,根据S912的结果,如果TPM-PCR号码511表示“ALL”,则确认在S901中设定 的TRUST_M0DEL是否是DEPENDENT MODEL (步骤S916)。如果S916的结果是YES (信任模型 识别信息509是DEPENDENTM0DEL),则从依赖对象的虚拟TPM中读出全部PCR值,将该值设 定为作为依赖方的虚拟TPM的全部PCR的初始值(步骤S915)。如果S914的结果是NO (信 任模型识别信息509不是DEPENDENT 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”,而在本实施方式1中,根据信任模型的不同,有时候设定为非“0”初始值。根据这种结 构,在虚拟机监视器和虚拟机之间、或者各虚拟机之间实现了完整性校验值信息的关联,这 一点与非专利文献4的内容有所不同。下面使用图10说明本实施方式中的安全引导处理流程。首先,对最早应启动的模块的完整性校验值进行计测(步骤S1001)。例如,如果是 S803的虚拟机监视器的安全引导处理,则TBB80的计测验证部81首先启动,计测虚拟机监 视器40的完整性校验值。如果是S806中的“安全引导虚拟机”的处理,则虚拟TBB的计测 验证部首先启动,对OS加载器进行验证。接着,对S1001中计测得到的完整性校验值和图8中所说明的模块证书中记载的 认证完整性校验值704进行核对(步骤S1002)。根据S1002的核对结果,如果两者的值不 相等,则移至步骤S1008的处理,中止安全引导。否则,根据S1002的核对结果,如果两者的 值相等,则移至步骤S903的处理。接着进行模块证书的签名验证(步骤S1003)。如果S1003的签名验证的结果为验 证NG,则移至步骤S1008的处理,中止安全引导。
否则,如果S1003的签名验证的结果为验证0K,则移至步骤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加载器、Guest OS乃 至应用程序,也可以不包含应用程序而仅止于Guest OS。(实施方式2)在本实施方式2中说明这样一种模型,在该模型中,将终端环境信息通知经由网 络连接的外部服务器,在服务器端验证终端环境的真实性。该验证模型以TCG中的证明 (Attestation)功能为基础。本实施方式所说明的模型中能够在服务器端验证多参与方模 型终端是否是以设想的信任模型启动的,这是现有的证明功能中所不具备的功能。<证明处理的概要>图11采用与实施方式1的信息处理终端1000相同的结构,但有一点不同之处在 于,其能够经由网络3000将终端环境信息通知外部的服务提供服务器2000。具体而言, 信息处理终端1000中的虚拟机1(1010)、虚拟机2(1020)分别具备通知部(1011,1021) 进而,虚拟TPM1 (1031)、虚拟TPM2 (1021)生成签名数据,作为来自外部服务提供服务器 2000的证明处理请求的结果。具体而言,使用未图示的身份证明密钥(AIK Attestation Identity Key)针对TPM的PCR值生成签名。AIK是公开密钥加密中的密钥对,秘密密钥被 安全地保存在信息处理终端内,与该秘密密钥对应的公开密钥则由外部业务服务器保存。 可以使用由CA(CertificationAuthority 认证中心)生成的公开密钥证书(AIK证书)对 AIK的公开密钥的真实性进行验证。证书的颁发流程或使用公开密钥证书的密钥的检验方 法通常使用广为人知的公开密钥基础设施(PKI :Public Key Infrastructure)技术,因此 省略其说明。〈证明序列〉接着,使用图12说明本实施方式2中的证明的序列。在该图12的序列中说明的 实例是,信息处理终端向外部的服务提供服务器发出服务请求,服务提供服务器则使用证 明功能确认信息处理终端的真实性,在此基础上提供服务。首先,信息处理终端向服务提供服务器发送用于识别信息处理终端的终端识别信
20息以及服务请求(步骤S1101)。接着,服务提供服务器访问信任模型管理数据库,读出与终端识别信息相对应的 TPM证书和虚拟TPM证书,辨别信息处理终端的信任模型。辨别出信任模型后,决定服务提 供服务器想要验证的PCR号码。例如,在图6 (c)的信任模型中,如果要验证虚拟机监视器和 虚拟机1之间的信任模型,则指定虚拟机1的TPM证书识别信息CERT001、识别信息和PCR 号码 0、1、2(步骤 S1102)。接着,服务提供服务器生成随机数(nonce),将在S1101中决定的虚拟TPM证书ID 和PCR号码以及随机数发送到信息处理终端(步骤S1103)。接着,提出了服务请求的虚拟机接收S1103的信息,并将接收到的信息通知虚拟 机监视器1030的虚拟TPM控制部1033 (步骤S1104)。接着,虚拟TPM控制部根据在S1104接收到的信息,向虚拟TPM发出签名生成请 求,要求生成针对随机数和所指定的PCR的签名,虚拟TPM则使用AIK秘密密钥生成针对所 指定的PCR值信息和随机数的签名(步骤S1105)。在S1105中执行的签名生成处理使用由 TCG 标准化的 TPM_Quote 或 TPM_Quote2 命令。接着,信息处理终端使用通知部将签名后的数据和随机数、PCR以及AIK证书发送 给服务提供服务器(步骤S1106)。接着,服务提供服务器对AIK证书的真实性进行检验(步骤S1107)。AIK证书是 由CA(Certificate Authority)颁发的,因此使用CA的公开密钥进行验证。如果S1107的 验证结果是检验NG,则向信息处理终端发送出错报告(步骤S1111)。否则,如果S1107的 验证结果为检验0K,则移至步骤S1108的处理。接着,验证随机数的数据。服务提供服务器确认其是否是指定的随机数(步骤 S1108)。如果S1108的结果是检验NG,则向信息处理终端发送出错报告(步骤S1111)。否 则,如果S1108的验证结果为检验0K,则移至步骤S1109的处理。 接着,服务提供服务器访问认证PCR数据库2002,对与S1103中指定的虚拟TPM证 书的识别信息相对应的认证PCR和从信息处理终端发送过来的PCR的值进行比较,由此验 证信息处理终端的真实性(步骤S1109)。如果S1109的验证结果为检验NG,则发送出错报 告(步骤S1111)。否则,如果S1109的验证结果为0K,即两者的PCR相等,服务提供服务器 就判断认为这是在由服务提供服务器指定的虚拟机环境中保持了信任模型的状态下正常 启动的,并向信息处理终端提供服务。这样一来,服务提供服务器就能够仅向通过了真实性验证的信息处理终端提供服 务。进而,在现有技术中,服务提供服务器无法辨别提出了服务请求的终端是否是在虚拟机 监视器上运行的,而本发明的信任模型管理数据库中保存有定义了信任模型的TPM证书/ 虚拟TPM证书,因此能够辨别在虚拟机监视器上运行的机器。进而,在具有多参与方模型之 类的虚拟机之间存在依赖关系的结构的终端中,也能够通过读出信任模型管理数据库内的 证书来辨别所使用的信任模型,并继而基于所期望的信任模型辨别是否已经启动,服务提 供者能够更灵活地验证信息处理终端内的环境的真实性。实施方式2的说明到此结束。以上说明了在服务提供服务器端执行的验证步骤S1107至S1109,但也可以不限 于这些验证步骤。例如,也可以针对认证PCR数据库的认证PCR和在S1101中发送的随机数信息生成认证哈希值,并利用AIK证书中记载的公开密钥对在S1106中接收到的签名数 据进行译码,通过比较上述认证哈希值和译码得到的哈希值进行验证。(实施方式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这种证明处理的情况下,虚拟机利用图12中未图示的虚 拟机的通知部,能够将虚拟机的环境信息与虚拟机监视器和管理机的完整性校验值关联在 一起的值发送到外部的服务提供服务器。由此,能够在外部的服务提供服务器中验证信息 处理终端的全部环境信息的真实性。此外,也可以不使虚拟机具有通知部,而是使管理机内具有通知部。由此,如果来 自外部服务提供服务器的证明处理结果是表示虚拟机不合法的结果,则管理机既可以停止虚拟机,也可以限制虚拟机的功能。实施方式3的说明到此结束。此外,也可以不在虚拟机之间或者虚拟机与虚拟机监视器/管理机之间关联完整 性校验值,而是将关联处理封闭在各个机器内部。在这种情况下,利用TPM证书仅对启动顺 序进行控制。这样一来,以机器为单位的独立的环境信息被记录到各自的TPM的PCR中,能 够单独地验证各个机器环境。另外,也可以设置2组TPM的PCR。在这种情况下,一组PCR记录将存在依赖关系 的环境信息关联而成的完整性信息,另一组PCR记录未将存在依赖关系的环境信息进行关 联的完整性信息。另外,在这种情况下,在模块证书中也设置2组记载认证PCR的区域,一 个区域中记载的认证PCR值表示将存在依赖关系的环境信息关联而成的完整性信息,另一 个区域中记载的认证PCR值表示未将存在依赖关系的环境信息进行关联的完整性信息。这 样一来,能够实现对信息处理终端内单独的机器环境信息的真实性验证和对对信息处理终 端的整个环境的真实性验证这样2个验证,安全引导所作的验证和证明所作的验证变得更 加灵活。(其他变形例)此外,基于上述实施方式对本发明进行了说明,但本发明当然并不限于上述实施 方式。本发明也包含以下情况。(1)上述各装置具体而言是由微处理器、R0M、RAM、硬盘单元、显示器单元、键盘、鼠 标等构成的计算机系统。所述RAM或硬盘单元中存储有计算机程序。所述微处理器按照所 述计算机程序执行动作,从而使各装置实现其功能。这里,为了实现预定的功能,将许多针 对计算机的指令代码组合起来构成计算机程序。另外,各装置也可以不包含微处理器、ROM、 RAM、硬盘单元、显示器单元、键盘、鼠标等所有部件,而是仅由其中的一部分构成。(2)构成上述各装置的一部分或全部结构要素也可以由1个系统LSI (Large Scale Integration:大规模集成电路)构成。系统LSI是将多个构成部件集成到1个芯片 上制造而成的超多功能LSI,具体而言,是一种包含微处理器、ROM、RAM等而构成的计算机 系统。所述RAM中存储有计算机程序。所述微处理器按照所述计算机程序执行动作,从而 使系统LSI实现其功能。另外,构成上述各装置的结构要素的各部分既可以分别单独地做成1个芯片,也 可以将一部分或全部包含在1个芯片上。另外,这里称之为系统LSI,但根据集成度的不同,有时候也称为IC、LSI、Super LSI.Ultra LSI。另外,电路集成化的方法也不限于LSI,也可以通过专用电路或通用处理器 实现。也可以使用能够在制造出LSI后进行编程的FPGA(Field Programmable Gate Array 现场可编程门阵列)或能够对LSI内部的电路单元的连接或设定重新进行设置的可重构处理器。进而,随着半导体技术的进步或其他派生技术的产生,如果出现了取代LSI的集 成电路技术,当然也可以使用这些技术实现功能块的集成化。也有可能应用生物技术等。(3)构成上述各装置的一部分或全部结构要素也可以由在各装置上可拆装的IC 卡或单独的模块构成。所述IC卡或所述模块是由微处理器、R0M、RAM等构成的计算机系统。 所述IC卡或所述模块也可以包含上述超多功能LSI。微处理器按照所述计算机程序执行动
23作,从而使所述IC卡或所述模块实现其功能。该IC卡或该模块也可以具有防篡改性。(4)本发明也可以是上述所展示的方法。另外,既可以是利用计算机实现这些方法 的计算机程序,也可以是所述计算机程序形成的数字信号。另外,本发明也可以将所述计算机程序或所述数字信号记录到例如软盘、硬盘、 CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD (Blu-rayDisc 蓝光盘)、半导体存储器等计算机可 读记录介质中而形成。另外,也可以是这些记录介质中所记录的所述数字信号。另外,本发明也可以将所述计算机程序或所述数字信号经由电气通信线路、无线 或有线通信线路、以因特网为代表的网络、数据广播等进行传输。另外,本发明也可以是具备微处理器和存储器的计算机系统,所述存储器存储上 述计算机程序,所述微处理器按照所述计算机程序执行动作。另外,也可以将所述程序或所述数字信号记录到所述记录介质中进行转运,或者 将所述程序或所述数字信号经由所述网络等进行转运,从而利用独立的其他计算机系统进 行实施。(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参与方模型,该模型中的某个参与方不具有 与其对应的防篡改模块,而是使用与其他参与方对应的防篡改模块的全部区域;多个虚拟 机分别使用表达了多个参与方各自的参与方模型并在多个虚拟机相互之间以及多个虚拟 机与管理部相互之间建立了依赖关系的证书,按照证书的依赖关系所确立的顺序启动。
26
根据这种结构,当多个虚拟机分别启动时,会使用表达了包含管理部在内的多个 参与方各自的参与方模型并在多个虚拟机相互之间建立了依赖关系的证书,按照证书的依 赖关系所确立的顺序启动,从而能够得到包含管理部在内的多个虚拟机各自相互关联的验 证值,作为利用这种按照证书的依赖关系所确立的顺序的启动而最终得到的验证值,因此 能够防止包含管理部在内的多个虚拟机以参与方为单位进行启动而产生的启动链条的中 断。另外,在所述信息处理装置中,设置有与管理部相对应的第2防篡改模块,证书包 含参与方模型的种类;指向与自身虚拟机关联的其他虚拟机的指针;表示与自身虚拟机 关联的其他虚拟机所对应的防篡改模块内的寄存器的PCR号码;以及表示所述第2防篡改 模块内的寄存器的PCR号码。另外,本发明的一个实施方式的信息处理装置是具备所述信息处理装置的功能的 移动式终端装置。另外,本发明的一个实施方式的控制方法是一种信息处理装置的控制方法,该信 息处理装置具备多个虚拟机,与多个参与方分别对应;多个防篡改模块,与多个虚拟机分 别对应;以及管理部,该管理部管理多个虚拟机和多个防篡改模块之间的处理;多个虚拟 机分别具有在多个虚拟机相互之间建立了依赖关系的证书,按照证书的依赖关系所确立的 顺序启动,多个虚拟机分别使用在多个虚拟机相互之间建立了依赖关系的证书,按照证书 的依赖关系所确立的顺序启动,具有利用这种按照证书的依赖关系所确立的顺序的启动而 最终得到的验证值的防篡改模块基于验证值对所述多个虚拟机进行整体验证。根据这种结构,使用证书对多个虚拟机各自的依赖关系进行管理,从而保证了多 个虚拟机各自的依赖关系不被篡改,因此能够保证多个虚拟机按照期望的依赖关系执行标 准化动作。另外,当多个虚拟机分别启动时,会参照用于证明多个虚拟机相互之间的依赖关 系的证书,按照证书的依赖关系所确立的顺序启动,因此,能够保证多个虚拟机按照预先确 定的期望的顺序彼此关联地启动。另外,本发明的一个实施方式的控制程序是一种信息处理装置的控制程序,该信 息处理装置具备多个虚拟机,与多个参与方分别对应;多个防篡改模块,与所述多个虚拟 机分别对应;以及管理部,该管理部管理所述多个虚拟机和所述多个防篡改模块之间的处 理;所述多个虚拟机分别具有在所述多个虚拟机相互之间建立了依赖关系的证书,所述控 制程序使用在所述多个虚拟机相互之间建立了依赖关系的所述证书,按照所述证书的依赖 关系所确立的顺序分别启动所述多个虚拟机,并使防篡改模块基于所述验证值对所述多个 虚拟机进行整体验证,该防篡改模块具有上述按照所述证书的依赖关系所确立的顺序进行 启动而最终得到的验证值。根据这种结构,使用证书对多个虚拟机各自的依赖关系进行管理,从而保证了多 个虚拟机各自的依赖关系不被篡改,因此能够保证多个虚拟机按照期望的依赖关系执行标 准化动作。另外,当多个虚拟机分别启动时,会参照用于证明多个虚拟机相互之间的依赖关 系的证书,按照证书的依赖关系所确立的顺序启动,因此,能够保证多个虚拟机按照预先确 定的期望的顺序彼此关联地启动。
另外,本发明的一个实施方式的集成电路是一种信息处理装置中使用的集成电 路,其具备多个虚拟机,与多个参与方分别对应;多个防篡改模块,与所述多个虚拟机分 别对应;以及管理部,该管理部管理所述多个虚拟机和所述多个防篡改模块之间的处理; 所述多个虚拟机分别具有在所述多个虚拟机相互之间建立了依赖关系的证书。根据这种结构,使用证书对所述多个虚拟机各自的依赖关系进行管理,从而保证 了所述多个虚拟机各自的依赖关系不被篡改,因此能够保证所述多个虚拟机按照期望的依 赖关系执行标准化动作。 (6)也可以将上述实施方式及上述变形例分别进行组合。工业实用性利用本发明的虚拟机的安全引导控制方法,在多个虚拟机分别启动时,使用在多 个虚拟机相互之间建立了依赖关系的证书,并按照证书的依赖关系所确立的顺序启动,从 而能够得到多个虚拟机各自相互关联的验证值,作为按照证书的依赖关系所确立的顺序进 行启动而最终得到的验证值,因此能够防止多个虚拟机以参与方为单位进行启动而产生的 启动链条的中断。
权利要求
一种信息处理装置,是使多个虚拟机动作的信息处理装置,其特征在于,具备依赖信息保存部,针对所述多个虚拟机中的每个虚拟机来保存依赖信息,该依赖信息表示所述多个虚拟机各自使用其他虚拟机所具备的1个以上功能中的某个,或者表示所述多个虚拟机各自不使用其他虚拟机的功能;以及虚拟机管理部,用于管理所述多个虚拟机的启动,在应启动的虚拟机的依赖信息表示所述应启动的虚拟机使用其他虚拟机的功能的情况下,判断为所述应启动的虚拟机依赖所述其他虚拟机,在所述应启动的虚拟机依赖其他虚拟机的情况下,控制所述多个虚拟机的启动顺序,以便在启动了所述其他虚拟机之后再启动所述应启动的虚拟机。
2.如权利要求1所述的信息处理装置,其特征在于,所述信息处理装置还具备多个状态保存部,该多个状态保存部与所述多个虚拟机分别 对应,分别保存在所述多个虚拟机各自具有的功能的完整性验证中所使用的验证信息;在所述应启动的虚拟机依赖其他虚拟机的情况下,所述虚拟机管理部从所述其他虚拟 机的状态保存部读出所述应启动的虚拟机所使用的功能的验证信息,并反映到所述应启动 的虚拟机的状态保存部中。
3.如权利要求2所述的信息处理装置,其特征在于,所述多个状态保存部分别具有多个记录区域,针对与所述多个状态保存部分别对应的 虚拟机,将在所述虚拟机所具有的1个以上功能的完整性验证中使用的验证信息保存到所 述多个记录区域的某个中;在所述应启动的虚拟机的依赖信息表示使用所述其他虚拟机所具有的1个以上功能 之中的一部分功能的情况下,所述虚拟机管理部将在所述其他虚拟机的状态保存部中所保 存的验证信息之中被记录在与所述应启动的虚拟机所使用的功能相对应的记录区域内的 验证信息反映到所述应启动的虚拟机的状态保存部中,与所述应启动的虚拟机所使用的功 能不对应的记录区域内的验证信息不反映到所述应启动的虚拟机的状态保存部。
4.如权利要求3所述的信息处理装置,其特征在于,所述信息处理装置还具备与所述多个虚拟机分别对应的多个防篡改模块, 所述多个状态保存部分别被包含在所述多个防篡改模块中的各防篡改模块中, 所述多个虚拟机各自所具有的功能通过与所述多个虚拟机分别对应的防篡改模块来 实现。
5.如权利要求3所述的信息处理装置,其特征在于, 所述多个虚拟机分别与多个参与方相对应,所述多个参与方分别与以下某一个参与方模型相对应,包括第1参与方模型,仅使用 各参与方所对应的虚拟机所具有的功能;第2参与方模型,使用其他虚拟机所具有功能中 的一部分功能;以及第3参与方模型,使用其他虚拟机所具有的全部功能;所述依赖信息表示所述依赖信息所对应的虚拟机的参与方模型是所述第1参与方模 型、所述第2参与方模型和所述第3参与方模型之中的某一个;所述虚拟机管理部基于所述依赖信息来判断所述应启动的虚拟机的参与方模型。
6.如权利要求5所述的信息处理装置,其特征在于,所述依赖信息包含表示具有与所述依赖信息相对应的虚拟机所使用的功能的其他虚 拟机的信息;以及表示记录区域的信息,该记录区域保存了与所述依赖信息相对应的虚拟机所使用的功能的验证信息。
7.如权利要求6所述的信息处理装置,其特征在于,当所述应启动的虚拟机的依赖信息表示出保存有所述应启动的虚拟机所使用的功能 的验证信息的记录区域是其他虚拟机的记录区域的一部分的情况下,所述虚拟机管理部将 所述应启动的虚拟机的参与方模型判断为第2参与方模型。
8.如权利要求6所述的信息处理装置,其特征在于,当所述应启动的虚拟机的依赖信息表示出保存有所述应启动的虚拟机所使用的功能 的验证信息的记录区域是其他虚拟机的整个记录区域的情况下,所述虚拟机管理部将所述 应启动的虚拟机的参与方模型判断为第3参与方模型。
9.如权利要求2所述的信息处理装置,其特征在于,所述虚拟机所具有的功能通过1个以上模块来实现,所述多个状态保存部分别针对自身所对应的虚拟机所具有的功能,每当实现所述功能 的模块启动时,将表示所述启动的模块的信息累积到所述多个状态保存部分别保存的验证 信息中,由此更新所述验证信息;所述虚拟机管理部将所述应启动的虚拟机所使用的功能的验证信息作为所述验证信 息的初始值保存到所述应启动的虚拟机的状态保存部中,由此将所述应启动的虚拟机所使 用的功能的验证信息反映到所述应启动的虚拟机的状态保存部中。
10.如权利要求9所述的信息处理装置,其特征在于,所述信息处理装置在所述多个虚拟机按照由所述虚拟机管理部控制的顺序完成启动 后,基于所述多个状态保存部中所保存的验证信息对所述信息处理装置整体的完整性进行 验证。
11.如权利要求9所述的信息处理装置,其特征在于,所述信息处理装置还具备用于接收来自外部服务器的认证请求的接收部,一旦接收到 所述认证请求,就在所述多个虚拟机按照由所述虚拟机管理部控制的顺序完成启动后,将 保存在所述多个状态保存部中的验证信息向所述外部服务器发送。
12.如权利要求2所述的信息处理装置,其特征在于,所述信息处理装置还具备管理状态保存部,该管理状态保存部针对所述虚拟机管理 部,保存在所述虚拟机管理部所具有的1个以上功能的完整性验证中使用的验证信息;所述依赖信息还包含管理依赖信息,该管理依赖信息针对所述多个虚拟机中的每个虚 拟机,表示所述多个虚拟机各自使用所述虚拟机管理部所具有的功能中的某个,或者表示 所述多个虚拟机各自不使用所述虚拟机管理部的功能;如果在启动所述多个虚拟机的某个时应启动的虚拟机的依赖信息表示出所述应启动 的虚拟机使用虚拟机管理部的功能中的某个,则所述虚拟机管理部还从所述虚拟机管理部 的管理状态保存部中读出所述应启动的虚拟机使用的功能的验证信息,并反映到所述应启 动的虚拟机的状态保存部。
13.—种移动终端,是使多个虚拟机动作的移动终端,其特征在于,具备依赖信息保存部,针对所述多个虚拟机中的每个虚拟机来保存依赖信息,该依赖信息 表示所述多个虚拟机各自使用其他虚拟机所具备的1个以上功能之中的某个,或者表示所 述多个虚拟机各自不使用其他虚拟机的功能;以及虚拟机管理部,用于管理所述多个虚拟机的启动,在应启动的虚拟机的依赖信息表示 所述应启动的虚拟机使用其他虚拟机的功能的情况下,判断为所述应启动的虚拟机依赖所 述其他虚拟机,在所述应启动的虚拟机依赖其他虚拟机的情况下,控制所述多个虚拟机的 启动顺序,以便在启动了所述其他虚拟机之后再启动所述应启动的虚拟机。
14.一种控制方法,是使多个虚拟机动作的信息处理装置的控制方法,其特征在于,所述信息处理装置具备依赖信息保存部,该依赖信息保存部针对所述多个虚拟机中的每个虚拟机来保存依赖信息,该依赖信息表示所述多个虚拟机各自使用其他虚拟机所具备 的1个以上功能之中的某个,或者表示所述多个虚拟机各自不使用其他虚拟机的功能;所述控制方法包括判断步骤,在应启动的虚拟机的依赖信息表示出所述应启动的虚拟机使用其他虚拟机 的功能的情况下,判断为所述应启动的虚拟机依赖所述其他虚拟机;以及控制步骤,管理所述多个虚拟机的启动,在所述应启动的虚拟机依赖其他虚拟机的情 况下,控制所述多个虚拟机的启动顺序,以便在启动了所述其他虚拟机之后再启动所述应 启动的虚拟机。
15.一种记录介质,是记录有使多个虚拟机动作的信息处理装置的控制程序的记录介 质,其特征在于,所述信息处理装置具备依赖信息保存部,该依赖信息保存部针对所述多个虚拟机中的 每个虚拟机来保存依赖信息,该依赖信息表示所述多个虚拟机各自使用其他虚拟机所具备 的1个以上功能之中的某个,或者表示所述多个虚拟机各自不使用其他虚拟机的功能;所述控制程序包括判断步骤,在应启动的虚拟机的依赖信息表示出所述应启动的虚拟机使用其他虚拟机 的功能的情况下,判断为所述应启动的虚拟机依赖所述其他虚拟机;以及控制步骤,管理所述多个虚拟机的启动,在所述应启动的虚拟机依赖其他虚拟机的情 况下,控制所述多个虚拟机的启动顺序,以便在启动了所述其他虚拟机之后再启动所述应 启动的虚拟机。
16.一种集成电路,对使多个虚拟机动作的信息处理装置进行控制,该集成电路的特征 在于,所述信息处理装置具备依赖信息保存部,该依赖信息保存部针对所述多个虚拟机中的 每个虚拟机来保存依赖信息,该依赖信息表示所述多个虚拟机各自使用其他虚拟机所具备 的1个以上功能之中的某个,或者表示所述多个虚拟机各自不使用其他虚拟机的功能;所述集成电路管理所述多个虚拟机的启动,在应启动的虚拟机的依赖信息表示出所述 应启动的虚拟机使用其他虚拟机的功能的情况下,判断为所述应启动的虚拟机依赖所述其 他虚拟机,在所述应启动的虚拟机依赖其他虚拟机的情况下,控制所述多个虚拟机的启动 顺序,以便在启动了所述其他虚拟机之后再启动所述应启动的虚拟机。
全文摘要
针对具有与多个参与方分别对应的多个虚拟机的终端,一边保持该终端内的虚拟机与虚拟机监视器之间的信任依赖关系一边启动终端。本发明的信息处理装置具备与多个参与方分别对应的多个虚拟机;与虚拟机和各虚拟机相对应的防篡改模块;以及对虚拟机和防篡改模块之间进行控制的管理部,在各虚拟机之间使用带有信任依赖关系的证书进行安全引导。
文档编号G06F21/57GK101960464SQ20098010630
公开日2011年1月26日 申请日期2009年2月23日 优先权日2008年2月25日
发明者伊藤孝幸, 前田学, 松岛秀树, 芳贺智之, 高山久 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1