按照参考平台清单和数据封装的安全操作系统启动的制作方法_2

文档序号:9693266阅读:来源:国知局
取与在用户计算设备104启动时的用户计算设备104的硬件平台的状态以及包括在硬件平台上执行的操作系统的软件栈的状态有关的测量。信任模块116可以基于这些测量而生成设备健康值118。当设备健康值118与参考健康值108匹配时,启动处理组件可以确定用户计算设备处于安全状态。相反,当设备健康值118与参考健康值108不相同时,启动处理组件可以确定用户计算设备104处于非期望状态。非期望状态可以指示计算设备在某种程度上受到威胁。在发现用户计算设备104处于非期望状态的情况下,启动处理组件可以发起对计算设备上的软件组件的修复。例如,启动处理组件可以执行恢复环境以发起对损坏的数据文件的修理、对恶意软件的移除、操作系统的重映射等,使得可以使用户计算设备104回到安全状态。在至少一个实施例中,恢复环境可以是包括维护模块的并行安全软件栈。相反,在安全状态下运行的用户计算设备104可以被信任模块116允许执行进行任务的众多应用程序。
[0030]例如,只要用户计算设备104处于安全状态,用户计算设备104就可以使用分发给用户计算设备104的一个或多个密钥120来保护用户计算设备104上的数据文件。在各个实施例中,一个或多个密钥120可以是密码密钥。验证实体102可以向用户计算设备104分发一个或多个密钥120以及参考健康值108。在一些实例中,一个或多个密钥120可以唯一地标识用户计算设备104。信任模块106可以基于一个或多个密钥120和参考健康值108的组合而生成访问密钥。信任模块116可以使用访问模块来保护存储在用户计算设备104上的用户数据。由此,仅可以在一个或多个密钥120有效且在启动时由信任模块116所获取的健康值118与所存储的参考健康值108匹配时,由用户计算设备104上的应用程序访问计算设备上的用户数据。
[0031]在另一示例中,验证实体102可以向用户计算设备104提供健康证书122以及参考健康值108。健康证书122可以由用户计算设备104使用以向诸如服务提供者106的服务提供者证明其安全状态。进而,服务提供者106可以经由一个或多个服务器124向用户计算设备104提供服务。例如,服务提供者可以接受在用户计算设备104处发起的支付、向用户计算设备104传输数据文件、或开通与用户计算设备104的安全通信信道。在一些实施例中,健康证书122可以包括用于唯一地标识用户计算设备104的一个或多个密钥120。
[0032]在一些实施例中,一个或多个密钥120可以具有过期日期。由此,由用户计算设备104提供的一些服务可以变为禁用。例如,在一个或多个密钥120过期之后,使用该一个或多个密钥120来保护的数据文件可以变为不可访问。当利用一个或多个新密钥来更新用户计算设备104时,服务可以恢复。然而,可以取决于用户计算设备104接受软件更新126而将一个或多个密钥120更新为新密钥。软件更新126可以包括对操作系统的更新、对硬件平台的一个或多个硬件组件的固件的更新、对安装在用户计算设备104上的一个或多个应用程序的更新、代替健康证书122的替代证书等。以这种方式,一个或多个密钥120的过期可以用于激励用户计算设备104的用户利用最新的安全补丁和软件更新而将设备保持为最新。
[0033]示例组件
[0034]图2是示出了参考计算设备110的示例组件的示意图,该参考计算设备110生成用于评估计算设备的健康状态的参考健康值。在各个实施例中,参考计算设备110可以是台式计算机、平板计算机、膝上型计算机、智能电话、游戏机、个人数字助理(PDA)等。
[0035]参考计算设备110可以包括硬件平台202、平台固件204、存储器206、健康值模块208。硬件平台202可以包括使得参考计算设备110上的软件能够执行应用程序的一个或多个硬件组件,例如一个或多个处理器210。一个或多个处理器210可以包括中央处理单元(CPU)、通信处理单元(GPU)、微处理器、数字信号处理器等。此外,虽然某些功能和模块在本文中被描述为由可以在处理器上执行的软件和/或固件来实施,但是在其它实施例中,可以部分或全部由硬件将任意或全部模块实施(例如,成为ASIC、专用处理单元等)来执行所描述的功能。所描述的功能可以被实施为一个或多个硬件逻辑组件,例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统系统(S0C)、复杂可编程逻辑器件(CPLD)等。硬件平台的其它硬件组件可以包括网络接口卡(NIC)、声卡、相机、显示接口、新申请、用户接口等。尽管为了示出的目的单独进行了示出,但是存储器206可以是硬件平台202的一部分。平台固件204可以包括使得操作系统214能够与硬件平台202的硬件组件接合的程序指令。由此,操作系统214可以指示硬件组件来执行任何和/或生成数据。硬件组件的固件可以存储在硬件组件的持久存储器中。
[0036]可以使用诸如计算机存储介质的计算机可读介质来实施存储器206。计算机可读介质至少包括两种类型的计算机可读介质,即计算机存储介质和通信介质。计算机存储介质包括以用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,该信息可以是例如计算机可读指令、数据结构、程序模块、或其它数据。计算机存储介质包括但不限于RAM、R0M、EEPR0M、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)、或其它光学存储设备、盒式磁带、磁带、磁盘存储设备或其它磁存储设备、或可以用于存储信息以供由计算设备访问的任意其它有形介质。相反,通信介质可以实现计算机可读指令、数据结构、程序模块、或经调制的数据信号(例如,载波、或其它传输机制)中的其它数据。如在本文中所定义的,计算机存储介质不包括通信介质。
[0037]参考计算设备110的存储器206可以存储包括操作系统214和启动加载器216的软件组件。启动加载器216可以将硬件平台202的一个或多个硬件组件初始化。在各个实施例中,启动加载器216就可以通过给每个硬件组件上电和/或通过其固件硬件组件而向每个硬件组件提供指令来执行这样的初始化。在一些实施例中,启动加载器216可以使用启动设置218来将硬件平台202初始化。启动设置218可以指定在启动时要被初始化的硬件平台202的特定硬件组件。例如,启动设置218可以指定将经批准的硬件组件的特定列表来通电。替代地,启动设置218可以指定用于选择要被初始化的硬件组件的一个或多个标准。例如,启动设置218可以将初始化限于硬件平台202的其固件被验证实体102批准(例如,数字签名)的每个硬件组件。启动设置218还可以包括用于将硬件平台202的硬件组件初始化的特定配置。例如,配置可以针对硬件组件指定功率等级、数据传送速率、存储器分配等。特定配置可以是由验证实体102批准的配置。
[0038]一旦硬件组件被初始化,启动加载器216就可以将操作系统214加载到工作存储器(例如,RAM)中以将计算环境实例化。计算环境可以支持一个或多个应用程序的执行。在一些实施例中,启动加载器216可以根据操作系统配置设置220来加载操作系统214。操作系统配置设置220可以指定要被加载的操作系统214的一个或多个数据文件222(例如,库、驱动程序、配置等)。对一个或多个数据文件222的加载可以定制操作系统214以执行特定的服务、提供具体功能、或显示定制的视觉效果。
[0039]健康值模块208可以在参考计算设备110启动时从硬件平台202和/或操作系统214收集配置值。针对硬件平台202的每个配置值可以表示特定硬件组件的状态。类似地,针对操作系统214的每个配置值表示操作系统214的具体背景。健康值模块208可以是安装在参考计算设备110上的单独处理器模块。例如,处理器模块可以类似于符合由TCG概括的TPM规范的TPM模块。在一些实施例中,硬件平台202和/或操作系统214可以经由专用接口向健康值模块208提供配置值。在一些实施例中,硬件平台202可以被配置为关于硬件平台202的不变硬件组件来提供配置值。相对于外围硬件组件(例如,外部键盘、鼠标、扩展坞等),这样的硬件组件是影响计算设备的安全背景的组件(例如,图形处理器、闪速存储器等)。
[0040]健康值模块208可以将配置值存储在配置寄存器212中。在一些实例中,健康值模块208可以将外围硬件组件的配置值从配置寄存器212中丢弃。在各个实施例中,配置寄存器212可以包括两个寄存器部分。配置寄存器212的第一部分可以存储与硬件平台202相关联的配置值,而第二部分可以存储与操作系统214相关联的配置值。
[0041]健康值模块208可以基于存储在配置寄存器212中的值来生成参考健康值108。在至少一个实施例中,健康值模块208可以通过将与硬件平台202和操作系统214相关联的配置值合成参考健康值108来生成参考健康值108。健康值模块208可以使用一个或多个算术运算和/或一个或多个数据转换操作来执行该生成,只要所得到的参考值108唯一地标识输入配置值的组合。参考健康值108可以表示处于安全状态的计算设备。
[0042]在其它实施例中,健康值模块208可以仅根据与硬件平台202或操作系统214相关联的配置值来生成参考健康值108。再一次,健康值模块208可以使用一个或多个算术运算和/或一个或多个数据转换操作来执行该合成,只要所得到的参考值108唯一地标识输入配置值的组合。
[0043]由此,在一些实例中,健康值模块208可以生成针对参考计算设备110的多个参考健康值。例如,健康值模块208可以根据与硬件平台202相关联的配置值来生成第一参考健康值,并且根据与操作系统214相关联的配置值来生成第二参考健康值。此外,在其它实例中,可以由驻留于两个不同的参考计算设备上的两个分离的健康值模块来执行第一参考健康值和第二参考健康值的生成。例如,第一参考健康值可以是由硬件制造者使用第一参考计算设备而生成的,而第二参考健康值可以是由软件开发者使用第二参考计算设备而生成的。
[0044]验证实体102可以将诸如参考健康值108的参考健康值存储在服务器114中。验证实体102可以针对多个参考计算设备生成多个参考健康值,其中每个参考计算设备具有唯一的硬件和操作系统配置。在一些实例中,验证实体102可以将根据与硬件平台相关联的配置值来生成的第一参考健康值和根据与操作系统相关联的配置值来生成的第二参考健康值进行结合,以产生组合的参考健康值。在各个实施例中,验证实体102可以使用一个或多个算术运算和/或一个或多个数据转换运算来产生组合的参考健康值。以这种方式,验证实体102可以针对由多个供应商发布的多个计算设备而产生众多参考健康值。以相同的方式,验证实体102还可以针对特定计算设备的不同版本而生成参考值。例如,验证实体102可以针对具有原始版本操作系统的参考计算设备生成参考健康值,并且针对配备有更新的版本的操作系统的相同参考计算设备生成另一参考健康值。验证实体102可以向诸如用户计算设备104的用户计算设备分发参考健康值。
[0045]图3是示出了用户计算设备104的示例组件的示意图。用户计算设备104包括信任模块116,该信任模块116基于计算设备的设备健康值与所存储的参考健康值的比较来评估用户计算设备104的健康状态。在各个实施例
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1