CN105453103B - 按照参考平台清单和数据封装的安全操作系统启动 - Google Patents

按照参考平台清单和数据封装的安全操作系统启动 Download PDF

Info

Publication number
CN105453103B
CN105453103B CN201480045238.4A CN201480045238A CN105453103B CN 105453103 B CN105453103 B CN 105453103B CN 201480045238 A CN201480045238 A CN 201480045238A CN 105453103 B CN105453103 B CN 105453103B
Authority
CN
China
Prior art keywords
health value
equipment
hardware
user
health
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.)
Active
Application number
CN201480045238.4A
Other languages
English (en)
Other versions
CN105453103A (zh
Inventor
S·汤姆
R·艾格纳
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN202310326629.4A priority Critical patent/CN116361747A/zh
Priority to CN201811258859.7A priority patent/CN109614769A/zh
Publication of CN105453103A publication Critical patent/CN105453103A/zh
Application granted granted Critical
Publication of CN105453103B publication Critical patent/CN105453103B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • 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
    • 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/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Virology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Tone Control, Compression And Expansion, Limiting Amplitude (AREA)

Abstract

使用一个或多个设备健康值以指示计算设备的健康状态可以使得操作系统开发者能够直接管理计算设备的安全配置。生成设备健康值涉及在计算设备的启动期间根据配置设置来初始化计算设备的硬件组件并加载操作系统。接着基于在启动时的硬件组件的状态和/或包括操作系统的软件栈的状态而生成设备健康值。可以将设备健康值与参考健康值进行比较以确定计算设备是否处于安全状态。

Description

按照参考平台清单和数据封装的安全操作系统启动
背景技术
典型地,计算设备利用安全模块以在启动期间监测计算设备的硬件平台和操作系统。安全模块通常是在计算设备启动时从计算设备的各个组件接收状态输入的专用处理芯片。进而,安全模块向计算设备上的应用程序提供状态输入。应用程序总体上使用状态输入来验证该计算设备对于执行应用程序来说是安全的平台,例如,操作系统是最新的并且没有已知的安全问题。
然而,在许多实例中,由于初始化了大量的硬件组件,因此安全模块在启动期间从硬件和软件平台接收了大量的输入。此外,许多应用程序不能够处理从安全模块接收到的状态输入。开发能够处理来自具有各种硬件配置的过多的计算设备的状态输入以对安全的计算设备和受到威胁的(compromised)计算设备进行区分的应用程序,典型地需要大量的资源支出。通常,应用程序开发者缺少或另外不愿意投入这样的资源。由此,虽然安全模块旨在协助创建安全的计算平台,但是计算设备上大量的应用程序经常忽略由安全模块提供的状态输入。
由此,尽管事实上状态输入反映了受到威胁的计算设备,但是应用程序仍在该计算设备上执行。执行这样的应用程序经常无意中允许恶意的一方控制该计算设备和/或从计算设备窃取用户数据。
发明内容
本文中描述了用于使用由计算设备上的信任模块推导的一个或多个设备健康值来确定计算设备的健康状态的技术。这些技术可以生成计算设备的一个或多个参考健康值。该一个或多个参考健康值是可以提前使用具有与计算设备相同的硬件和/或软件配置的一个或多个参考计算设备来生成的。该参考健康值可以表示在参考计算设备启动时的硬件平台的状态和/或包括参考计算设备的操作系统的软件栈的状态。参考健康值可以反映已知参考计算设备的硬件平台和/或操作系统处于安全状态的事实。处于安全状态的参考计算设备可以不存在已知的安全问题。在一些实施例中,相对于外围硬件组件(例如,外部键盘、鼠标、扩展坞(Docking Station)等),可以关于硬件平台的不变硬件组件(例如,图形处理器、闪速存储器等)来测量硬件平台的状态,其中该不变硬件组件影响计算设备的安全背景。
计算设备上的信任模块可以生成表示在启动时计算设备的硬件平台和/或操作系统的状态的一个或多个设备健康值。当每个设备健康值与相对应的参考健康值匹配时,计算设备上的启动处理组件可以确定计算设备处于安全状态。相反,当任意设备健康值与其相对应的参考健康值不相同时,该组件可以确定计算设备处于非期望状态。在发现计算设备处于非期望状态的情况下,启动处理组件可以通过执行恢复环境(例如,包括维护模块的并行安全软件栈)而发起对计算设备上的软件组件的修复。例如,恢复环境可以发起对损坏的数据文件的修理、对恶意软件或病毒的移除、操作系统的重映射、针对一个或多个硬件组件安装新的固件等,使得可以使计算设备回到安全状态。
相反,在安全状态中运行的计算设备可以执行众多应用程序。例如,计算设备可以使用相对应的健康证书以向另一实体证明其安全状态。进而,在接受健康证书之后,该实体可以向计算设备提供所请求的服务。在另一示例中,计算设备可以使用被分发给计算设备并被绑定到一个或多个参考健康值的一个或多个密钥来执行任务,例如调控对存储在计算设备上的用户数据的访问。该一个或多个密钥可以唯一地标识计算设备。在一些实例中,计算设备上的机制可以为分配给计算设备的一个或多个密钥提供过期日期以确保对计算设备的完全访问取决于计算设备被利用最新的补丁和软件更新来周期性地更新。
在至少一个实施例中,生成一个或多个设备健康值涉及在计算设备的启动期间,根据配置设置来初始化计算设备的硬件组件并加载操作系统。接着,基于在启动时的硬件组件的状态和/或包括操作系统的软件栈的状态而生成一个或多个设备健康值。可以将设备健康值与相对应的参考健康值进行比较以确定计算设备是否处于安全状态。
由此,这些技术可以使得操作系统开发者能够直接管理计算设备的配置作为安全计算平台。以这种方式,用户可以免于监测计算设备的健康的任务、确保安装了最新的更新和补丁、并且验证操作系统处于维护状态。虽然处于维护状态,但是操作系统可以没有已知的恶意软件、病毒和其它恶意代码。相反,可以向用户保证从启动时起,计算设备处于安全状态并且用户能够信任计算设备以保持机密的用户数据的安全。
提供本发明内容而以简化的方式减少了在下文具体实施方式中进一步描述的精选的概念。本发明内容不是要标识要求保护的主题的关键特征或必要特征,也不用于限制要求保护的主题的范围。
附图说明
通过参考附图描述了具体实施方式。在图中,附图标记最左边的数位标识第一次出现该附图标记的图。在不同的图中使用相同的附图标记指示相似或相同的项。
图1为示出了用于评估用户计算设备的健康状态的示例方案的框图,在该方案中,所评估的健康状态用于授权对用户计算设备的访问和/或用于授权从服务提供者获取服务。
图2为示出了生成用于评估用户计算设备的健康状态的参考健康状态的参考计算设备的示例组件的示意图。
图3为示出了具有信任模块用户计算设备的示例组件的示意图,该信任模块至少部分地基于设备健康值与所存储的参考健康值的比较而评估用户计算设备的健康状态。
图4为示出了用于使用一个或多个参考计算设备生成参考健康值的示例过程的流程图。
图5为示出了用于基于用户计算设备的健康值与参考健康值的比较而确定用户计算设备的健康状态的示例过程的流程图。
图6为示出了用于针对用户计算设备生成设备健康值的示例过程的流程图。
图7为示出了用于使用一个或多个密钥和参考健康值来保护存储在用户计算设备上的用户数据的示例过程的流程图。
图8为示出了用于使用与参考健康值相关联的一个或多个密钥以命令更新用户计算设备的操作系统的示例过程的流程图。
具体实施方式
本文中描述了用于使用由计算设备上的信任模块推导的一个或多个设备健康值来确定计算设备的健康状态的技术。这些技术可以生成计算设备的一个或多个参考健康值。该一个或多个参考健康值是可以提前使用具有与计算设备相同的硬件和/或软件配置的参考计算设备来生成的。该一个或多个参考健康值可以表示在参考计算设备启动时的硬件平台的状态和/或包括参考计算设备的操作系统的软件栈的状态,其中已知该参考计算设备的硬件平台和操作系统不存在已知的安全问题。
计算设备上的信任模块可以生成一个或多个设备健康值,该一个或多个设备健康值表示在启动时的硬件平台的状态和/或包括计算设备的操作系统的软件栈的状态。计算设备上的启动处理组件可以将每个设备健康值与相对应的参考健康值进行比较以确定计算设备处于安全状态还是非期望状态。非期望状态可以指示计算设备在某种程度上受到威胁。在发现计算设备处于非期望状态的情况下,启动处理组件通过执行恢复环境而发起对计算设备上的软件组件的修复。相反,在安全状态中运行的计算设备可以执行众多应用程序。例如,计算设备可以使用被分发给计算设备并被绑定到一个或多个参考健康值的一个或多个密钥来执行任务,例如调控对存储在计算设备上的用户数据的访问。
在一些实例中,计算设备上的机制可以为分发给计算设备的一个或多个密钥提供过期日期以确保对计算设备的完全访问取决于计算设备被利用最新的补丁和软件更新来周期性地更新。在下文参照图1-8描述了格局各个实施例的用于使用由计算设备上的信任模块推导的设备健康值来确定计算设备的健康状态的技术。
示例方案
图1为示出了用于评估计算设备的健康状态的示例方案的框图,在该方案中,所评估的健康状态用于授权对用户计算设备的访问并且用于授权从服务提供者获取服务。示例方案100可以包括验证实体102、用户计算设备104、以及服务提供者106。验证实体102可以是操作系统开发者、硬件平台制造者,例如原始设备制造商(OEM)、或操作系统开发者和硬件平台制造者两者均信任的第三方。
验证实体102可以负责生成用户计算设备104的参考健康值108。验证实体102可以使用具有与用户计算设备104相同的硬件和软件配置的参考计算设备110来生成参考健康值108。例如,参考计算设备110可以具有与用户计算设备104相同的硬件组件,其中硬件组件被设置成以相同的方式工作。此外,参考计算设备110可以根据与用户计算设备104相同的配置设置来执行相同的操作系统。
参考健康值108可以表示在参考计算设备启动时的硬件平台的状态和/或包括参考计算设备的操作系统的软件栈的状态,其中已知参考计算设备的硬件平台和操作系统处于维护状态(maintained state),不存在已知的安全问题。在一些实施例中,计算设备110上的健康值模块可以生成参考健康值108。健康值模块可以是收集与参考计算设备110的硬件平台以及在启动时在硬件平台上执行的软件栈的状态有关的测量的单独处理器。由参考计算设备110的健康值模块将测量转换成参考健康值。然而,在其它实施例中,健康值模块可以被实施为运行受保护的环境(即,由参考计算设备110的一个或多个处理器执行、来自参考计算设备110的受保护的系统存储器)的软件。
在一些实施例中,针对参考计算设备110的硬件平台的测量可是相对于外围硬件组件(例如,外部键盘、鼠标、扩展坞等)而关于硬件平台的不变(invariant)硬件组件(例如,图形处理器、闪速存储器等)来进行的,其中该不变硬件组件影响计算设备的安全背景。以这种方式,参考健康值不受相对于参考计算设备100而附接或移除这种次要硬件组件的影响。
验证实体102可以经由网络112向用户计算设备104提供参考健康值。例如,由验证实体102操作的服务器114可以向用户计算设备104传输参考健康值108。在各个实施例中,网络112可以是局域网(“LAN”)、诸如广域网(“WAN”)的更大的网络、和/或诸如互联网的许多网络。用于网络通信的协议(例如,TCP/IP)可以用于实施网络112。可以使用各种无线通信接口技术(例如,蜂窝、Wi-Fi、超宽带、蓝牙、卫星传输)等来实施网络112。替代地或同时,还可以使用诸如LAN以太网、WAN以太网、通用串行总线(USB)、高速串行总线等的各种有线通信技术来实施网络112。
用户计算设备102可以使用信任模块116来生成设备健康值118。在各个实施例中,信任模块116可以是安装在用户计算设备104上以促成平台安全的单独处理器。例如,信任模块116可以类似于符合由可信计算组织(TCG)概括的可信平台模块(TPM)规范的可信平台模块(TPM)模块。然而,在其它实施例中,信任模块116可以被实施为运行受保护的环境(即,由用户计算设备104的一个或多个处理器执行、来自用户计算设备104的受保护的系统存储器)的软件。
信任模块116可以获取与在用户计算设备104启动时的用户计算设备104的硬件平台的状态以及包括在硬件平台上执行的操作系统的软件栈的状态有关的测量。信任模块116可以基于这些测量而生成设备健康值118。当设备健康值118与参考健康值108匹配时,启动处理组件可以确定用户计算设备处于安全状态。相反,当设备健康值118与参考健康值108不相同时,启动处理组件可以确定用户计算设备104处于非期望状态。非期望状态可以指示计算设备在某种程度上受到威胁。在发现用户计算设备104处于非期望状态的情况下,启动处理组件可以发起对计算设备上的软件组件的修复。例如,启动处理组件可以执行恢复环境以发起对损坏的数据文件的修理、对恶意软件的移除、操作系统的重映射等,使得可以使用户计算设备104回到安全状态。在至少一个实施例中,恢复环境可以是包括维护模块的并行安全软件栈。相反,在安全状态下运行的用户计算设备104可以被信任模块116允许执行进行任务的众多应用程序。
例如,只要用户计算设备104处于安全状态,用户计算设备104就可以使用分发给用户计算设备104的一个或多个密钥120来保护用户计算设备104上的数据文件。在各个实施例中,一个或多个密钥120可以是密码密钥。验证实体102可以向用户计算设备104分发一个或多个密钥120以及参考健康值108。在一些实例中,一个或多个密钥120可以唯一地标识用户计算设备104。信任模块106可以基于一个或多个密钥120和参考健康值108的组合而生成访问密钥。信任模块116可以使用访问模块来保护存储在用户计算设备104上的用户数据。由此,仅可以在一个或多个密钥120有效且在启动时由信任模块116所获取的健康值118与所存储的参考健康值108匹配时,由用户计算设备104上的应用程序访问计算设备上的用户数据。
在另一示例中,验证实体102可以向用户计算设备104提供健康证书122以及参考健康值108。健康证书122可以由用户计算设备104使用以向诸如服务提供者106的服务提供者证明其安全状态。进而,服务提供者106可以经由一个或多个服务器124向用户计算设备104提供服务。例如,服务提供者可以接受在用户计算设备104处发起的支付、向用户计算设备104传输数据文件、或开通与用户计算设备104的安全通信信道。在一些实施例中,健康证书122可以包括用于唯一地标识用户计算设备104的一个或多个密钥120。
在一些实施例中,一个或多个密钥120可以具有过期日期。由此,由用户计算设备104提供的一些服务可以变为禁用。例如,在一个或多个密钥120过期之后,使用该一个或多个密钥120来保护的数据文件可以变为不可访问。当利用一个或多个新密钥来更新用户计算设备104时,服务可以恢复。然而,可以取决于用户计算设备104接受软件更新126而将一个或多个密钥120更新为新密钥。软件更新126可以包括对操作系统的更新、对硬件平台的一个或多个硬件组件的固件的更新、对安装在用户计算设备104上的一个或多个应用程序的更新、代替健康证书122的替代证书等。以这种方式,一个或多个密钥120的过期可以用于激励用户计算设备104的用户利用最新的安全补丁和软件更新而将设备保持为最新。
示例组件
图2是示出了参考计算设备110的示例组件的示意图,该参考计算设备110生成用于评估计算设备的健康状态的参考健康值。在各个实施例中,参考计算设备110可以是台式计算机、平板计算机、膝上型计算机、智能电话、游戏机、个人数字助理(PDA)等。
参考计算设备110可以包括硬件平台202、平台固件204、存储器206、健康值模块208。硬件平台202可以包括使得参考计算设备110上的软件能够执行应用程序的一个或多个硬件组件,例如一个或多个处理器210。一个或多个处理器210可以包括中央处理单元(CPU)、通信处理单元(GPU)、微处理器、数字信号处理器等。此外,虽然某些功能和模块在本文中被描述为由可以在处理器上执行的软件和/或固件来实施,但是在其它实施例中,可以部分或全部由硬件将任意或全部模块实施(例如,成为ASIC、专用处理单元等)来执行所描述的功能。所描述的功能可以被实施为一个或多个硬件逻辑组件,例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统系统(SOC)、复杂可编程逻辑器件(CPLD)等。硬件平台的其它硬件组件可以包括网络接口卡(NIC)、声卡、相机、显示接口、新申请、用户接口等。尽管为了示出的目的单独进行了示出,但是存储器206可以是硬件平台202的一部分。平台固件204可以包括使得操作系统214能够与硬件平台202的硬件组件接合的程序指令。由此,操作系统214可以指示硬件组件来执行任何和/或生成数据。硬件组件的固件可以存储在硬件组件的持久存储器中。
可以使用诸如计算机存储介质的计算机可读介质来实施存储器206。计算机可读介质至少包括两种类型的计算机可读介质,即计算机存储介质和通信介质。计算机存储介质包括以用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,该信息可以是例如计算机可读指令、数据结构、程序模块、或其它数据。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)、或其它光学存储设备、盒式磁带、磁带、磁盘存储设备或其它磁存储设备、或可以用于存储信息以供由计算设备访问的任意其它有形介质。相反,通信介质可以实现计算机可读指令、数据结构、程序模块、或经调制的数据信号(例如,载波、或其它传输机制)中的其它数据。如在本文中所定义的,计算机存储介质不包括通信介质。
参考计算设备110的存储器206可以存储包括操作系统214和启动加载器216的软件组件。启动加载器216可以将硬件平台202的一个或多个硬件组件初始化。在各个实施例中,启动加载器216就可以通过给每个硬件组件上电和/或通过其固件硬件组件而向每个硬件组件提供指令来执行这样的初始化。在一些实施例中,启动加载器216可以使用启动设置218来将硬件平台202初始化。启动设置218可以指定在启动时要被初始化的硬件平台202的特定硬件组件。例如,启动设置218可以指定将经批准的硬件组件的特定列表来通电。替代地,启动设置218可以指定用于选择要被初始化的硬件组件的一个或多个标准。例如,启动设置218可以将初始化限于硬件平台202的其固件被验证实体102批准(例如,数字签名)的每个硬件组件。启动设置218还可以包括用于将硬件平台202的硬件组件初始化的特定配置。例如,配置可以针对硬件组件指定功率等级、数据传送速率、存储器分配等。特定配置可以是由验证实体102批准的配置。
一旦硬件组件被初始化,启动加载器216就可以将操作系统214加载到工作存储器(例如,RAM)中以将计算环境实例化。计算环境可以支持一个或多个应用程序的执行。在一些实施例中,启动加载器216可以根据操作系统配置设置220来加载操作系统214。操作系统配置设置220可以指定要被加载的操作系统214的一个或多个数据文件222(例如,库、驱动程序、配置等)。对一个或多个数据文件222的加载可以定制操作系统214以执行特定的服务、提供具体功能、或显示定制的视觉效果。
健康值模块208可以在参考计算设备110启动时从硬件平台202和/或操作系统214收集配置值。针对硬件平台202的每个配置值可以表示特定硬件组件的状态。类似地,针对操作系统214的每个配置值表示操作系统214的具体背景。健康值模块208可以是安装在参考计算设备110上的单独处理器模块。例如,处理器模块可以类似于符合由TCG概括的TPM规范的TPM模块。在一些实施例中,硬件平台202和/或操作系统214可以经由专用接口向健康值模块208提供配置值。在一些实施例中,硬件平台202可以被配置为关于硬件平台202的不变硬件组件来提供配置值。相对于外围硬件组件(例如,外部键盘、鼠标、扩展坞等),这样的硬件组件是影响计算设备的安全背景的组件(例如,图形处理器、闪速存储器等)。
健康值模块208可以将配置值存储在配置寄存器212中。在一些实例中,健康值模块208可以将外围硬件组件的配置值从配置寄存器212中丢弃。在各个实施例中,配置寄存器212可以包括两个寄存器部分。配置寄存器212的第一部分可以存储与硬件平台202相关联的配置值,而第二部分可以存储与操作系统214相关联的配置值。
健康值模块208可以基于存储在配置寄存器212中的值来生成参考健康值108。在至少一个实施例中,健康值模块208可以通过将与硬件平台202和操作系统214相关联的配置值合成参考健康值108来生成参考健康值108。健康值模块208可以使用一个或多个算术运算和/或一个或多个数据转换操作来执行该生成,只要所得到的参考值108唯一地标识输入配置值的组合。参考健康值108可以表示处于安全状态的计算设备。
在其它实施例中,健康值模块208可以仅根据与硬件平台202或操作系统214相关联的配置值来生成参考健康值108。再一次,健康值模块208可以使用一个或多个算术运算和/或一个或多个数据转换操作来执行该合成,只要所得到的参考值108唯一地标识输入配置值的组合。
由此,在一些实例中,健康值模块208可以生成针对参考计算设备110的多个参考健康值。例如,健康值模块208可以根据与硬件平台202相关联的配置值来生成第一参考健康值,并且根据与操作系统214相关联的配置值来生成第二参考健康值。此外,在其它实例中,可以由驻留于两个不同的参考计算设备上的两个分离的健康值模块来执行第一参考健康值和第二参考健康值的生成。例如,第一参考健康值可以是由硬件制造者使用第一参考计算设备而生成的,而第二参考健康值可以是由软件开发者使用第二参考计算设备而生成的。
验证实体102可以将诸如参考健康值108的参考健康值存储在服务器114中。验证实体102可以针对多个参考计算设备生成多个参考健康值,其中每个参考计算设备具有唯一的硬件和操作系统配置。在一些实例中,验证实体102可以将根据与硬件平台相关联的配置值来生成的第一参考健康值和根据与操作系统相关联的配置值来生成的第二参考健康值进行结合,以产生组合的参考健康值。在各个实施例中,验证实体102可以使用一个或多个算术运算和/或一个或多个数据转换运算来产生组合的参考健康值。以这种方式,验证实体102可以针对由多个供应商发布的多个计算设备而产生众多参考健康值。以相同的方式,验证实体102还可以针对特定计算设备的不同版本而生成参考值。例如,验证实体102可以针对具有原始版本操作系统的参考计算设备生成参考健康值,并且针对配备有更新的版本的操作系统的相同参考计算设备生成另一参考健康值。验证实体102可以向诸如用户计算设备104的用户计算设备分发参考健康值。
图3是示出了用户计算设备104的示例组件的示意图。用户计算设备104包括信任模块116,该信任模块116基于计算设备的设备健康值与所存储的参考健康值的比较来评估用户计算设备104的健康状态。在各个实施例中,用户计算设备104可以是台式计算机、平板计算机、膝上型计算机、智能电话、游戏机、个人数字助理(PDA)等。
用户计算设备104可以包括硬件平台302、平台固件304、存储器306、以及信任模块116。硬件平台302可以包括使得用户计算设备104上的软件能够执行的一个或多个硬件组件,例如,一个或多个处理器308。一个或多个组件308可以包括中央处理单元(CPU)、通信处理单元(GPU)、微处理器、数字信号处理器等。此外,虽然某些功能和模块在本文中被描述为由可以在处理器上执行的软件和/或固件来实施,但是在其它实施例中,可以部分或全部由硬件将任意或全部模块实施(例如,成为ASIC、专用处理单元等)来执行所描述的功能。所描述的功能可以被实施为一个或多个硬件逻辑组件,例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统系统(SOC)、复杂可编程逻辑器件(CPLD)等。
硬件平台的其它硬件组件可以包括网络接口卡(NIC)、图像处理单元(GPU)、声卡、相机、显示接口、新申请、用户接口等。尽管为了示出的目的单独进行了示出,但是存储器306可以是硬件平台302的一部分。用户计算设备104的用户接口可以包括但不限于以下中的一个或多个的组合:小键盘、键盘、鼠标设备、接受手势的触摸屏、麦克风、语音或话音识别设备、以及任何其它合适的识别或其它电子/软件选择方法。
平台固件304可以包括使得操作系统310能够与硬件平台302的硬件组件接合的程序指令。由此,操作系统310可以指示硬件组件来执行任何和/或生成数据。硬件组件的固件可以存储在硬件组件的持久存储器中。
可以使用诸如计算机存储介质的计算机可读介质来实施存储器306。计算机可读介质至少包括两种类型的计算机可读介质,即计算机存储介质和通信介质。计算机存储介质包括以用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,该信息可以是例如计算机可读指令、数据结构、程序模块、或其它数据。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)、或其它光学存储设备、盒式磁带、磁带、磁盘存储设备或其它磁存储设备、或可以用于存储信息以供由计算设备访问的任意其它有形介质。相反,通信介质可以实现计算机可读指令、数据结构、程序模块、或经调制的数据信号(例如,载波、或其它传输机制)中的其它数据。如在本文中所定义的,计算机存储介质不包括通信介质。
参考计算设备104的存储器306可以存储包括操作系统310、启动加载器312、维护模块314、和数据保护模块316的软件组件。启动加载器312可以将硬件平台302的一个或多个硬件组件初始化。在各个实施例中,启动加载器312就可以通过执行与每个硬件组件相关联的固件来执行这样的初始化。在一些实施例中,启动加载器312可以使用启动设置318来将硬件平台202初始化。在各个实施例中,启动设置318可以指定在启动时要被初始化的硬件平台302的特定硬件组件。例如,启动设置318可以指定将经批准的硬件组件的特定列表来通电。
替代地,启动设置318可以指定用于选择要被初始化的硬件组件的一个或多个标准。例如,启动设置318可以将初始化限于硬件平台202的其固件被验证实体102批准(例如,数字签名)的每个硬件组件。启动设置318还可以包括用于将硬件平台202的硬件组件初始化的特定配置。例如,配置可以针对硬件组件指定功率等级、数据传送速率、存储器分配等。特定配置可以是由验证实体102批准的配置。
用户计算设备104可以将操作系统310存储在存储器306的系统卷320中。一旦硬件组件被初始化,启动加载器312就可以将操作系统310加载到工作存储器(例如,RAM)中以将计算环境实例化。计算环境可以支持一个或多个应用程序322的执行。在一些实施例中,启动加载器312可以根据操作系统配置设置324来加载操作系统310。操作系统配置设置324可以指定要被加载的操作系统310的一个或多个数据文件326(例如,库、驱动程序、配置等)。对一个或多个数据文件326的加载可以定制操作系统310以执行特定的服务、提供具体功能、或显示定制的视觉效果。
在一些实施例中,硬件平台302可以与硬件平台202相同,并且操作系统310可以与操作系统214相同。此外,启动设置318可以与启动设置218相同,并且操作系统配置设置324可用与操作系统配置设置220相同。
用户数据卷328可以存储用户数据330。用户数据330可以包括代表诸如用户128的用户生成的数据。例如,用户数据330可以包括由用户使用安装在用户计算设备104上的应用程序起草的文档、由用户存储到存储器306的照片等。用户数据330可以由数据保护模块316保护。在一些实施例中,可以使用访问密钥332来对用户数据330进行加密或密码保护。
信任模块116可以在用户计算设备104启动时从硬件平台302和/或操作系统310收集配置值。信任模块116可以是安装在用户计算设备104上的单独处理器模块。例如,处理器模块可以类似于符合由TCG概括的TPM规范的TPM模块。信任模块116可以具有诸如加密算法的保护机制,其保护存储在信任模块116上的数据以免受侵入。在各个实施例中,信任模块116可以以与参考计算设备110的健康值模块208相似的方式操作。由此,信任模块116可以以与健康值模块208相同的方式从硬件平台302和/或操作系统310来收集配置值。信任模块116可以将配置值存储在配置寄存器334中。在一些实例中,所存储的配置值可以排除与外围硬件组件(例如,外部键盘、鼠标、扩展坞等)相关联的配置值。
随后,信任模块116还可以以与健康值模块208相同的方式,基于从硬件平台302和/或操作系统310获取的配置值来生成设备健康值118。驻留于信任模块116中的计算算法可以生成设备健康值118。然而,在一些实施例中,参考健康值108和设备健康值118可以是仅根据与硬件平台或操作系统相关联的配置值来生成的。替代地,信任模块116可以生成多个设备健康值,例如根据与硬件平台302相关联的配置值来生成第一设备健康值,并且根据与操作系统310相关联的配置值来生成第二设备健康值。例如,以这样的方式获取的健康值在以下情况中确定健康状态时可以是有用的:不同的操作系统是在相同的硬件平台上实施的,或相反。
状态评价器338可以将设备健康值118与参考健康值108进行比较以确定用户计算设备104是否处于安全状态或非期望状态。在各个实施例中,状态评价器338可以是启动处理组件,例如启动加载器312的组件。替代地,状态评价器338可以是嵌入在信任模块116中的软件组件。信任模块116可以从服务器114接收由验证实体102保存的参考健康值。进而,信任模块116可以向状态评价器338提供参考健康值。替代地,状态评价器338可以直接从服务器114接收参考健康值。在各个实施例中,当设备健康值118与参考健康值108匹配时,状态评价器338可以确定用户计算设备104处于安全状态。相反,当设备健康值118与参考健康值108不相同时,状态评价器338可以确定用户计算设备104处于非期望状态。替代地,在存在多个参考健康值和多个设备健康值的实例中,当每个设备健康值与相对应的参考健康值相同时,状态评价器338可以确定用户计算设备104处于安全状态。否则,状态评价器338可以确定用户计算设备104处于非期望状态。
在各个实施例中,信任模块116可以将一个或多个密钥120与一个或多个参考健康值绑定。由此,参考健康值可以是可访问的,只要用户计算设备104的每个设备健康值与其所定义的参考健康值匹配。由此,状态评价器338可以通过尝试访问存储在信任模块116中的密钥120来检查一个或多个设备健康值是否与一个或多个参考健康值匹配。如果密钥120是可访问的,则状态评价器338可以确定这些值匹配。然而,如果状态评价器338不能访问密钥120,则状态评价器338可以确定设备健康值中的每个与相对应的参考健康值不匹配。然而,在其它实施例中,状态评价器338可以将一个或多个设备健康值与一个或多个参考健康值直接进行比较。
在发现用户计算设备104处于非期望状态的情况下,状态评价器338可以停止操作系统310的执行,以便阻止用户128访问由操作系统310提供的计算环境。另外,状态评价器310可以执行包括维护模块314的恢复环境。在各个实施例中,恢复环境可以由被一个或多个处理器308执行的并行安全软件栈提供。在恢复环境中,维护模块314可以执行对在计算设备上的软件组件的修复。例如,维护模块314可以在用户计算设备104的显示器上显示提示用户来发起修复的通知。该修复可以包括修理损坏的数据文件、移除恶意软件或病毒、重映射操作系统、针对一个或多个硬件组件安装新的固件等,使得用户计算设备可以回到安全状态。关于操作系统310和应用程序322执行的任何修复操作可以指向系统卷320。在各个实施例中,维护模块314可以利用各种维护应用程序来执行修复。这样的维护应用程序可以包括磁盘扫描应用程序、恶意软件扫描应用程序、病毒扫描应用程序、固件刷新应用程序、重映射应用程序等。维护应用程序可以加载到用户计算设备104上和/或从验证实体102的服务器114可用。
例如,维护模块314可以建立经由网络112的与验证实体102的服务器114的通信链路。由此,服务器114上的维护应用程序可以使用通信链路来建立维护会话。在维护会话期间,一个或多个维护应用程序可以扫描用户计算设备104以检测并修复错误。在一些实例中,修复可以涉及利用存储器服务器114上的新的数据文件来替代用户计算设备104上的数据文件,例如操作系统310、数据文件326、应用程序322、和/或平台固件304。由于用户数据330是单独地存储在用户数据卷328中的,因此用户数据330不受由维护模块314进行的对系统卷320的任何修复。这意味着可以在成功修复系统卷320中的应用程序和/或数据之后,恢复对用户数据330的访问。修复,如果信任模块116确定用户计算设备104在安全状态运行,则信任模块116可以允许用户计算设备104正常运行并执行应用程序322。
在一些实施例中,用户计算设备104可以从验证实体102接收一个或多个密钥120和参考健康值108。一个或多个密钥120可以是特别针对用户计算设备104产生的唯一密钥。然而,在其它实例中,一个或多个密钥120可以是被分配给多个相同用户计算设备的密钥。信任模块116可以将一个或多个密钥120传递给数据保护模块316。进而,数据保护模块316可以使用一个或多个密钥120来保护存储在用户数据卷328中的用户数据330。在至少一个实施例中,信任模块116可以使用访问密钥生成器340来根据一个或多个密钥120和参考健康值的组合来生成访问密钥332。该生成可以涉及针对一个或多个密钥120和参考健康值108来执行算术运算和/或哈希操作。信任模块116可以向数据保护模块316提供访问密钥332。进而,数据保护模块316可以使用访问密钥332来对用户数据330进行加密。
随后,期望访问用户数据330的应用程序可以向数据保护模块316提供访问证书342。应用程序可以基于一个或多个密钥120和设备健康值118、使用产生访问密钥332的相同技术来生成访问证书342。由此,如果访问证书342可以由数据保护模块316使用以对用户数据330进行解密,则数据保护模块316可以为应用程序提供对用户数据330的访问。否则,数据保护模块316可以拒绝应用程序对用户数据330的访问。在替代实施例中,数据保护模块316可以使用访问密钥332作为密码来保护用户数据卷328,而并非使用访问密钥332来对用户数据330进行加密。
在其它实施例中,用户计算设备104可以从验证实体102接收健康证书122以及参考健康值108。在一些实施中,健康证书122可以封装唯一地标识用户计算设备104的一个或多个密钥120。这意味着健康证书122是容易识别的,这是因为其被特别分配给用户计算设备104。健康证书122可以由用户计算设备104使用来向其它设备证明用户计算设备104处于安全状态,使得用户计算设备104可以获取服务。例如,用户计算设备104可以使用健康证书122来与另一设备商议安全通信信道,以便交换敏感信息。在另一示例中,用户计算设备104可以使用健康证书122来保护对完成采购交易的允许。在一些实施例中,接收健康证书122的服务提供者可以将其发送给验证实体,例如验证实体102。进而,验证实体可以返回关于对健康证书122的验证的指示。在其它实施例中,期望从服务提供者106获取服务的用户计算设备104起初可以向诸如验证实体102的验证实体发送健康证书122。如果验证实体102确定健康证书122是有效的,例如未过期,则验证实体可以向用户计算设备104发出认证票。随后,用户计算设备104可以使用该认证票从服务提供者106获取服务。
在一些实施例中,一个或多个密钥120可以具有过期日期。过期日期可以用于激励用户128将用户计算设备104保持最新并且保护用户计算设备104免受最新的安全威胁。例如,在一个或多个密钥120过期之后,使用一个或多个密钥120保护的数据文件可以变为不可访问。将一个或多个密钥120更新为新密钥可以取决于用户计算设备104从验证实体102接受软件更新126。例如,软件更新126和对一个或多个密钥120的更新可以作为单个数据包而分发。软件更新126可以包括对操作系统的更新、对硬件平台的固件的更新、对安装在用户计算设备104上的一个或多个应用程序的更新、针对健康证书122的替代健康证书等。被取代的密钥和/或健康证书可以被验证实体102标记为无效。
在其它实施例中,验证实体102可以向用户计算设备104自动发送新的参考健康值108。在更新参考计算设备110上的固件和/或操作系统文件之后,可以生成新的参考健康值108。由此,由于参考健康值108与设备健康值118之间的不匹配,用户计算设备104的一个或多个功能可以变为不可访问的。通过将软件更新126下载到用户计算设备104,用户128可以重新获得对这些功能的访问。
然而,在又一些实施例中,验证实体102可以向用户计算设备104自动提供软件更新126。可以周期性地提供软件更新126和/或在由验证实体102确定的时间提供软件更新126。用户128可以使用维护模块314的应用程序设置来选择这样的自动更新。以这种方式,可以向用户128保证用户计算设备104的安全状态是最新的以及存储在用户计算设备104上的数据是受保护的。
示例过程
图4-8描述了用于使用由计算设备上的信任模块推导(derive)的设备健康值来确定计算设备的健康状态的各种示例过程。在每个示例过程中所描述的操作的顺序并不旨在被解释为限制,并且任意数量的所描述的操作可以以任意顺序组合和/或并行地实施每个过程。另外,图4-8中的每个的操作可以以硬件、软件、和/或其组合来实施。在软件的背景下,操作可以表示计算机可读指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器执行所记载的操作。一个或多个处理器可以包括在个体计算设备中,或包括在作为例如云的一部分的多个计算设备中。总体上,计算机可读指令包括使得特定功能被执行或特定抽象数据类型被实施的例程、程序、对象、组件、数据结构等。在其它实施例中,每个示例过程的操作可以由诸如专用集成电路的硬件逻辑电路来执行。
图4是示出了用于使用一个或多个参考计算设备生成参考健康值的示例过程400。在框402,参考计算设备110的启动加载器216可以初始化参考硬件平台,例如硬件平台202。在各个实施例中,启动加载器216可以通过对每个硬件组件上电和/或通过与每个硬件组件相关联的固件而向每个硬件组件提供指令来执行这样的初始化。在一些实施例中,启动加载器216可以使用启动设置218来初始化硬件平台202。
在框404,参考计算设备110的健康值模块208可以获取一个或多个参考硬件配置值。一个或多个参考硬件配置值可以表示所初始化的参考硬件平台202的状态。在各个实施例中,硬件平台202的应用程序接口可以与健康值模块208接合以向健康值模块208传输一个或多个参考硬件配置值。
在框406,启动加载器216可以加载参考操作系统,例如操作系统214。在一些实施例中,启动加载器216可以根据操作系统配置设置220来加载操作系统214。操作系统配置设置220可以指定要被加载的操作系统214的一个或多个数据文件222(例如,库、驱动程序、配置等)。
在框408,健康值模块208可以获取一个或多个参考操作系统配置值。一个或多个操作系统配置值可以表示包括所加载的操作系统的软件栈的状态。在各个实施例中,操作系统214的应用程序接口可以与健康值模块208接合以向健康值模块208传输一个或多个参考操作系统配置值。
在框410,健康值模块208可以根据一个或多个参考硬件配置值和/或一个或多个参考操作系统配置值来生成参考健康值108。在各个实施例中,健康值模块208可以使用一个或多个算术运算和/或一个或多个数据转换运算来执行该生成,只要所得到的参考健康值108唯一地表示输入配置值的组合。
然而,在其它实施例中,可以由健康值模块208生成多个参考值。例如,健康值模块208可以根据与硬件平台202相关联的配置值来生成第一参考健康值,并且根据与操作系统214相关联的配置值生成第二参考健康值。在一些实例中,硬件平台202和包括操作系统214的软件栈可以驻留在两个不同的参考计算设备上。由此,验证实体102可以向诸如用户计算设备014的用户计算设备发送多个参考健康值。替代地,验证实体102可以将第一参考健康值和第二参考健康值组合成组合的参考健康值以供传递至用户计算设备104。
图5是示出了用于基于用户计算设备的设备健康值与参考健康值的比较来确定用户计算设备的健康状态的示例过程500。在框502,用户计算设备104上的信任模块116可以存储参考健康值,例如参考健康值108。信任模块116可以从验证实体102的服务器114接收参考健康值108。参考健康值108可以是使用参考计算设备110生成的并且可以与安全的设备状态相对应。
在框504,信任模块116可以中的用户计算设备104生成设备健康值,例如设备健康值118。在各个实施例中,可以基于启动时硬件平台302的状态和/或包括操作系统310的软件栈的状态来生成设备健康值118。设备健康值118可以表示用户计算设备104的健康状态。
在决策框506,状态评价器338可以将设备健康值118与参考健康值108进行比较。因此,如果设备健康值118与参考健康值108匹配(决策框506处的“是”),则过程500可以进行至框510。在框510,状态评价器338可以确定用户设备处于安全状态。基于该确定,状态评价器338可以允许用户计算设备104正常运行。例如,用户计算设备104可以在由操作系统310提供的计算环境中执行众多应用程序。
然而,如果状态评价器338确定设备健康值118与参考健康值108不匹配(决策框506处的“否”),则过程500可以进行至框512。在框512,状态评价器338可以确定用户计算设备104处于非期望状态。由此,状态评价器338可以停止操作系统310的执行,以便阻止用户128访问由操作系统310提供的计算环境。另外,状态评价器338可以执行包括维护模块314的恢复环境。在恢复环境中,维护模块314可以执行对在计算设备上的软件组件的修复。该修复可以包括修理损坏的数据文件、移除恶意软件或病毒、重映射操作系统、针对一个或多个硬件组件安装新的固件等。可以使用从验证实体102下载的数据文件来实现重新映射和/或安装新固件。该修复可以使用户计算设备104回到安全状态。在修复之后,过程500可以循环回到框504。
图6是示出了用于针对计算设备生成设备健康值的示例过程600的流程图。示例过程600还示出了过程500的框504。在602,用户计算设备104的启动加载器312可以初始化设备硬件平台,例如硬件平台302。在各个实施例中,启动加载器216可以通过给每个硬件组件上电和/或通过其固件硬件组件而向每个硬件组件提供指令来执行这样的初始化。在一些实施例中,启动加载器312可以使用启动设置318来初始化硬件平台302。
在框604,用户计算设备104的信任模块116可以获取一个或多个设备硬件配置值。一个或多个设备硬件配置值可以表示所初始化的设备硬件平台302的状态。在各个实施例中,硬件平台302的应用程序接口可以与信任模块116接合以向信任模块116传输一个或多个设备硬件配置值。
在框606,启动加载器312可以加载设备操作系统,例如操作系统310。在一些实施例中,启动加载器312可以格局操作系统配置设置324来加载操作系统310。操作系统配置设置324可以指定要被加载的操作系统310的一个或多个数据文件326(例如,库、驱动程序、配置等)。
在框608,启动加载器312可以获取一个或多个设备操作系统配置值。一个或多个设备操作系统配置值可以表示包括所加载的操作系统的软件栈的状态。在各个实施例中,操作系统310的应用程序接口可以与信任模块116接合以向信任模块116传输一个或多个设备操作系统配置值。
在框610,信任模块116可以根据一个或多个设备硬件配置值和/或一个或多个设备操作系统配置值来生成设备健康值118。在各个实施例中,健康值模块208可以使用一个或多个算术运算和/或一个或多个数据转换操作来执行该生成,只要所得到的设备健康值118唯一地表示输入配置值的组合。
图7是示出了用于使用一个或多个密钥和参考健康值来保护存储在用户计算设备上的用户数据的示例过程的流程图。在框702,用户计算设备104上的数据保护模块316可以基于从验证实体102接收到的一个或多个密钥120和参考健康值108来生成访问密钥332。访问密钥332的生成可以涉及对一个或多个密钥120和参考健康值108执行算术运算和/或哈希操作。
在框704,数据保护模块316可以使用访问密钥332来对存储在用户数据卷328中的用户数据330进行密码保护和/或加密。用户数据330可以包括代表用户生成的数据。例如,用户数据330可以包括由用户使用安装在用户计算设备104上的应用程序起草的文档、由用户存储到存储器306的照片等。
在框706,数据保护模块316可以从诸如应用程序322中的一个的应用程序接收访问证书。访问证书342可以是基于一个或多个密钥120和设备健康值118生成的。在各个实施例中,应用程序可以基于一个或多个密钥120和设备健康值118、使用产生访问密钥332的相同技术来生成访问证书342。在框708,数据保护模块316可以将访问证书342与访问密钥332进行比较。
在决策框710,数据保护模块316可以确定访问证书342是否与访问密钥332匹配。因此,如果数据保护模块316确定访问证书342与访问密钥332匹配(在决策框710处的“是”),则过程700可以进行到框712。
在框712,数据保护模块316可以为应用程序提供对存储在用户计算设备104上的用户数据330的访问。例如,数据保护模块316可以对用户数据330进行解密,以便向应用程序提供用户数据330的所请求的部分。
然而,如果数据保护模块316确定访问证书342与访问密钥332不匹配(决策框710处的“否”),则数据保护模块316可以拒绝应用程序对存储在用户计算设备104上的用户数据330的访问。
图8是示出了用于使用与参考健康值相关联的一个或多个密钥以命令更新用户计算设备的操作系统的示例过程800的流程图。在框802,用户计算设备104上的信任模块116可以存储与参考健康值108相关联的一个或多个密钥120。用户计算设备104可以从验证实体102接收这样的数据。
在决策框804,信任模块116可以确定一个或多个密钥是否是可访问的,例如未过期。信任模块116可以在生成设备健康值之前和/或在计算设备104的操作期间周期性地进行这样的确定。由此,如果信任模块116确定一个或多个密钥120是可访问的(决策框804处的“是”),过程800可以继续至框806。在框806,信任模块116可以允许对用户计算设备104的访问。例如,用户计算设备104可以被允许执行众多应用程序。
然而,如果信任模块116确定一个或多个密钥120是不可访问的(决策框804处的“否”),则过程800可以继续至框808。在框808,信任模块可以拒绝对用户计算设备104的访问。例如,信任模块116可以向启动加载器312发送指示。响应于该指示,启动加载器312可以激活恢复环境,并且如果合适,则还可以基于该指示而停止操作系统310的执行。
在框810,维护模块314可以提示用户计算设备104的用户128以发起对用户计算设备104的更新。该更新可以包括对平台固件304的更新和/或对操作系统310的更新。在各个实施例中,维护模块314可以利用呈现在用户计算设备104的显示器上的通知来提示用户128。
在框812,维护模块314可以响应于更新的初始化而接收更新、一个或多个新密钥、以及新参考健康值。在各个实施例中,在从用户128获取了认可的(affirmative)授权之后,维护模块314可以初始化更新和其它内容。用户128可以使用用户计算设备104的用户接口来提供该认可的授权。
在框814,信任模块116可以基于在启动时的硬件平台的状态和/或操作系统310的状态来针对用户计算设备104生成新的设备健康值。在各个实施例中,新的设备健康值是基于与硬件平台的状态和/或操作系统310的状态有关的配置值生成的。
在决策框816,状态评价器338可以确定新的设备健康值是否与新的参考健康值匹配。因此,如果状态评价器338确定新的设备健康值与新的参考健康值匹配(框816处的“是”),则过程800可以循环回到框806。在回到框806时,状态评价器338可以允许对用户计算设备104的访问。
然而,如果状态评价器338确定新的设备健康值与新的参考健康值不匹配(框816处的“否”),则过程800可以循环回到框808。在回到框808时,状态评价器338可以拒绝对用户计算设备104的访问,使得可以进行过程800的其它框。
总之,本技术可以使得操作系统开发者能够直接管理计算设备的配置作为安全计算平台。以这种方式,用户可以免于监测计算设备的健康的任务、确保安装了最新的更新和补丁、并且验证操作系统没有恶意软件、病毒和其它恶意代码。相反,可以向用户保证从启动时起,计算设备处于安全状态,并且用户能够信任计算设备以保持机密的用户数据的安全。
结论
最后,尽管以特定于结构特征和/或方法行为的语言描述了各个实施例,但是应当理解在所附呈现中定义的主题不一定限于所描述的特定特征和行为。相反,特定特征和行为被公开为实施要求保护的主题的示例形式。

Claims (10)

1.存储有计算机可执行指令的一种或多种计算机可读介质,当执行所述指令时,使得一个或多个处理器执行包括以下的操作:
根据由操作系统OS的开发者批准的硬件配置设置而将参考设备的硬件平台中的一个或多个硬件组件初始化;
根据由所述OS的开发者批准的一个或多个OS配置设置而在所述参考设备上加载所述OS;以及
在初始化所述硬件平台以及加载所述参考设备的OS时,至少部分地基于硬件配置值或OS配置值中的一个而生成参考健康值,所述参考健康值表示所述参考设备具有安全状态。
2.根据权利要求1所述的一种或多种计算机可读介质,其中,生成所述参考健康值包括:
获取表示所加载的所述硬件平台的状态的所述一个或多个硬件配置值;
获取表示所加载的所述OS的状态的所述一个或多个OS配置值;并且
基于所述一个或多个硬件配置值和所述一个或多个OS配置值来计算所述参考健康值。
3.根据权利要求1所述的一种或多种计算机可读介质,还包括向用户设备传输所述参考健康值,所述参考健康值由所述用户设备使用以验证所述用户设备上的硬件平台的健康状态或所述用户设备上的OS的健康状态。
4.一种计算机实现的方法,包括:
根据一个或多个硬件配置设置而将参考设备的参考硬件平台初始化,所述参考硬件平台具有影响所述参考设备的安全环境的一个或多个不变硬件组件;
获取表示在所述参考设备上所加载的所述参考硬件平台的状态的一个或多个参考硬件配置值;
根据一个或多个参考操作系统OS配置设置而加载参考OS和相关联的数据,所述参考OS和所述相关联的数据影响所述参考设备的安全环境;
获取表示在所述参考设备上所加载的所述OS的状态的一个或多个参考OS配置值;并且
基于所述一个或多个参考硬件配置值和所述一个或多个参考OS配置值而生成参考健康值,所述参考健康值表示安全地初始化的硬件平台和安全地加载的OS。
5.根据权利要求4所述的计算机实现的方法,还包括:
在用户设备中存储所述参考健康值;
基于所述用户设备的设备硬件平台的状态和在所述用户设备上所加载的设备OS的状态而生成针对所述用户设备的设备健康值;并且
响应于查明所述设备健康值与所述参考健康值匹配,确定所述用户设备处于健康状态。
6.根据权利要求5所述的计算机实现的方法,其中,生成所述设备健康值包括:
获取表示在根据所述一个或多个硬件配置设置的初始化时所述设备硬件平台的状态的一个或多个设备硬件配置值;
获取表示在根据一个或多个设备OS配置设置而加载所述设备OS和所述相关联的数据时所述设备OS的状态的一个或多个设备OS配置值;并且
根据所述一个或多个设备硬件配置值和所述一个或多个设备OS配置值来计算所述设备健康值。
7.根据权利要求5所述的计算机实现的方法,还包括:
在与存储所述设备OS的所述用户设备的第二存储器部分分离的所述用户设备的第一存储器部分中存储用户数据,所述用户数据是由基于一个或多个密钥和所述参考健康值的组合而生成的秘密证书所保护的;
响应于确定所述设备健康值与所述参考健康值不匹配,执行以下中的至少一个:数据文件修复、病毒移除、恶意软件移除、更新所述设备OS、或代替所述第二存储器部分中的所述设备OS;
基于所述设备硬件平台的状态和在所述用户设备上所加载的所述设备OS的状态,生成针对所述用户设备的新的设备健康值;并且
响应于确定基于所述一个或多个密钥和所述新的设备健康值的组合而生成的访问证书与所述秘密证书相匹配,提供对存储在所述第一存储器部分中的所述用户数据的访问。
8.根据权利要求5所述的计算机实现的方法,还包括:
在所述用户设备中存储与所述参考健康值相关联的一个或多个密钥,所述一个或多个密钥具有过期日期;
响应于确定所述一个或多个密钥达到所述过期日期,拒绝对所述设备OS的访问并且提示对所述硬件平台的固件或所述设备OS中的至少一个的更新的初始化;
响应于所述更新的所述初始化,接收对所述固件或所述设备OS中的至少一个的所述更新、一个或多个新的密钥、以及新的参考健康值;
响应于确定所述接收得到了与所述新的参考健康值相匹配的所述用户设备的新的设备健康值,提供对所述OS的访问。
9.一种计算设备,包括:
一个或多个处理器;
包括能够由所述一个或多个处理器执行的多个计算机可执行组件的存储器,所述组件包括:
启动加载器,其将由操作系统OS的开发者批准的硬件平台的一个或多个不变硬件组件初始化并且加载所述OS,所述一个或多个不变硬件组件影响所述设备的安全环境;
信任组件,其在初始化所述硬件平台并在所述设备上加载所述OS时,至少部分地基于硬件配置值或OS配置值中的一个而生成设备健康值;以及
状态评价器,其响应于查明设备健康值与从验证实体接收到的一个或多个参考健康值中的相对应的参考健康值相匹配,确定所述设备是健康的。
10.根据权利要求9所述的计算设备,还包括数据保护组件,其响应于确定根据一个或多个密钥和设备健康值的组合而推导的访问证书与保护存储在所述存储器的数据部分中的数据的秘密证书相匹配,提供对所述数据的访问。
CN201480045238.4A 2013-08-15 2014-08-13 按照参考平台清单和数据封装的安全操作系统启动 Active CN105453103B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202310326629.4A CN116361747A (zh) 2013-08-15 2014-08-13 按照参考平台清单和数据封装的安全操作系统启动
CN201811258859.7A CN109614769A (zh) 2013-08-15 2014-08-13 按照参考平台清单和数据封装的安全操作系统启动

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/968,205 US9167002B2 (en) 2013-08-15 2013-08-15 Global platform health management
US13/968,205 2013-08-15
PCT/US2014/050827 WO2015023723A1 (en) 2013-08-15 2014-08-13 Secure os boot as per reference platform manifest and data sealing

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN202310326629.4A Division CN116361747A (zh) 2013-08-15 2014-08-13 按照参考平台清单和数据封装的安全操作系统启动
CN201811258859.7A Division CN109614769A (zh) 2013-08-15 2014-08-13 按照参考平台清单和数据封装的安全操作系统启动

Publications (2)

Publication Number Publication Date
CN105453103A CN105453103A (zh) 2016-03-30
CN105453103B true CN105453103B (zh) 2018-11-13

Family

ID=51483665

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202310326629.4A Pending CN116361747A (zh) 2013-08-15 2014-08-13 按照参考平台清单和数据封装的安全操作系统启动
CN201811258859.7A Pending CN109614769A (zh) 2013-08-15 2014-08-13 按照参考平台清单和数据封装的安全操作系统启动
CN201480045238.4A Active CN105453103B (zh) 2013-08-15 2014-08-13 按照参考平台清单和数据封装的安全操作系统启动

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202310326629.4A Pending CN116361747A (zh) 2013-08-15 2014-08-13 按照参考平台清单和数据封装的安全操作系统启动
CN201811258859.7A Pending CN109614769A (zh) 2013-08-15 2014-08-13 按照参考平台清单和数据封装的安全操作系统启动

Country Status (5)

Country Link
US (4) US9167002B2 (zh)
EP (1) EP3033710B1 (zh)
KR (2) KR102285236B1 (zh)
CN (3) CN116361747A (zh)
WO (1) WO2015023723A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9167002B2 (en) 2013-08-15 2015-10-20 Microsoft Technology Licensing, Llc Global platform health management
US9448950B2 (en) * 2013-12-24 2016-09-20 Intel Corporation Using authenticated manifests to enable external certification of multi-processor platforms
US9900295B2 (en) 2014-11-05 2018-02-20 Microsoft Technology Licensing, Llc Roaming content wipe actions across devices
WO2016201628A1 (en) * 2015-06-17 2016-12-22 Intel Corporation Platform management method and apparatus including expiration detection
US9853820B2 (en) * 2015-06-30 2017-12-26 Microsoft Technology Licensing, Llc Intelligent deletion of revoked data
US10277407B2 (en) * 2016-04-19 2019-04-30 Microsoft Technology Licensing, Llc Key-attestation-contingent certificate issuance
US10938560B2 (en) 2017-06-21 2021-03-02 Microsoft Technology Licensing, Llc Authorization key escrow
US10440006B2 (en) * 2017-06-21 2019-10-08 Microsoft Technology Licensing, Llc Device with embedded certificate authority
US10558812B2 (en) 2017-06-21 2020-02-11 Microsoft Technology Licensing, Llc Mutual authentication with integrity attestation
US10771439B2 (en) * 2017-06-28 2020-09-08 Microsoft Technology Licensing, Llc Shielded networks for virtual machines
CN112970238A (zh) * 2018-11-07 2021-06-15 瑞典爱立信有限公司 Lwm2m客户端状态同步
US11580089B2 (en) * 2019-05-22 2023-02-14 American Express Travel Related Services Company, Inc. Data management system
US11283678B2 (en) * 2019-06-18 2022-03-22 Level 3 Communications, Llc Adaptive virtual services
TWI804703B (zh) * 2019-12-31 2023-06-11 新唐科技股份有限公司 電腦裝置及基於信任鏈的權限管理方法
WO2022000285A1 (en) * 2020-06-30 2022-01-06 Microsoft Technology Licensing, Llc Health index of a service
EP4441758A1 (en) * 2021-11-30 2024-10-09 Koninklijke Philips N.V. Post-service state validator for medical devices
EP4187550A1 (en) * 2021-11-30 2023-05-31 Koninklijke Philips N.V. Post-service state validator for medical devices
US11949583B2 (en) * 2022-04-28 2024-04-02 Hewlett Packard Enterprise Development Lp Enforcing reference operating state compliance for cloud computing-based compute appliances
US12032462B2 (en) * 2022-10-20 2024-07-09 Dell Products L.P. Preserving hardware status points in operating system environment for use in preboot diagnostics

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201741156U (zh) * 2010-07-23 2011-02-09 北京工业大学 一种可信硬件设备
CN102063591A (zh) * 2011-01-07 2011-05-18 北京工业大学 基于可信平台的平台配置寄存器参考值的更新方法
CN102682235A (zh) * 2011-01-20 2012-09-19 微软公司 可执行程序的信誉检查
CN102693379A (zh) * 2011-03-01 2012-09-26 微软公司 保护操作系统配置值

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501469B1 (en) * 1999-11-30 2002-12-31 International Business Machines Corp. Arrangement of information to allow three-dimensional navigation through information displays with indication of intended starting point
US20040064457A1 (en) * 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
US7587523B2 (en) * 2002-12-02 2009-09-08 Cedar Point Communications, Inc. Distributed systems for determining card status
JP4064914B2 (ja) * 2003-12-02 2008-03-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム
US7672814B1 (en) * 2004-03-03 2010-03-02 Emc Corporation System and method for baseline threshold monitoring
US8190714B2 (en) * 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US7694121B2 (en) 2004-06-30 2010-04-06 Microsoft Corporation System and method for protected operating system boot using state validation
US8266676B2 (en) * 2004-11-29 2012-09-11 Harris Corporation Method to verify the integrity of components on a trusted platform using integrity database services
KR100654446B1 (ko) * 2004-12-09 2006-12-06 삼성전자주식회사 보안 부팅 장치 및 방법
US8112798B2 (en) * 2005-11-09 2012-02-07 Microsoft Corporation Hardware-aided software code measurement
WO2007115116A2 (en) 2006-03-29 2007-10-11 Trend Micro Incorporated Methods and systems for implementing an integrated user assist device
US20080126779A1 (en) 2006-09-19 2008-05-29 Ned Smith Methods and apparatus to perform secure boot
US8060941B2 (en) * 2006-12-15 2011-11-15 International Business Machines Corporation Method and system to authenticate an application in a computing platform operating in trusted computing group (TCG) domain
US20080235754A1 (en) 2007-03-19 2008-09-25 Wiseman Willard M Methods and apparatus for enforcing launch policies in processing systems
US7886335B1 (en) * 2007-07-12 2011-02-08 Juniper Networks, Inc. Reconciliation of multiple sets of network access control policies
EP2017766B1 (en) * 2007-07-17 2014-01-22 Sap Ag Authentication enforcement at resource level
US8104073B2 (en) * 2007-08-10 2012-01-24 Juniper Networks, Inc. Exchange of network access control information using tightly-constrained network access control protocols
CN101458743A (zh) * 2007-12-12 2009-06-17 中国长城计算机深圳股份有限公司 一种保护计算机系统安全的方法
US8255902B1 (en) 2008-03-17 2012-08-28 Symantec Corporation Systems and methods for determining and quantifying the impact of an application on the health of a system
US8458462B1 (en) * 2008-08-14 2013-06-04 Juniper Networks, Inc. Verifying integrity of network devices for secure multicast communications
US8127146B2 (en) 2008-09-30 2012-02-28 Microsoft Corporation Transparent trust validation of an unknown platform
CN101729289B (zh) * 2008-11-03 2012-04-04 华为技术有限公司 平台完整性认证方法及系统、无线接入设备和网络设备
CN101551750A (zh) * 2009-05-15 2009-10-07 中国科学院软件研究所 一种软件过程可信性检测方法及系统
CN101996286B (zh) * 2009-08-10 2013-01-16 北京多思科技发展有限公司 动态安全度量的实现方法、安全度量装置和应用系统
US8505103B2 (en) 2009-09-09 2013-08-06 Fujitsu Limited Hardware trust anchor
US9087198B2 (en) * 2010-02-16 2015-07-21 Nokia Technologies Oy Method and apparatus to reset platform configuration register in mobile trusted module
US8417962B2 (en) 2010-06-11 2013-04-09 Microsoft Corporation Device booting with an initial protection component
JP5557623B2 (ja) * 2010-06-30 2014-07-23 三菱電機株式会社 感染検査システム及び感染検査方法及び記録媒体及びプログラム
CN102479144A (zh) * 2010-11-23 2012-05-30 盛乐信息技术(上海)有限公司 计算机运行能力评估方法
US8375221B1 (en) 2011-07-29 2013-02-12 Microsoft Corporation Firmware-based trusted platform module for arm processor architectures and trustzone security extensions
US8886335B2 (en) 2011-12-07 2014-11-11 Boston Scientific Neuromodulation Corporation Implantable leads with a low profile distal portion
US9167002B2 (en) 2013-08-15 2015-10-20 Microsoft Technology Licensing, Llc Global platform health management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201741156U (zh) * 2010-07-23 2011-02-09 北京工业大学 一种可信硬件设备
CN102063591A (zh) * 2011-01-07 2011-05-18 北京工业大学 基于可信平台的平台配置寄存器参考值的更新方法
CN102682235A (zh) * 2011-01-20 2012-09-19 微软公司 可执行程序的信誉检查
CN102693379A (zh) * 2011-03-01 2012-09-26 微软公司 保护操作系统配置值

Also Published As

Publication number Publication date
US10176330B2 (en) 2019-01-08
CN105453103A (zh) 2016-03-30
US9167002B2 (en) 2015-10-20
WO2015023723A1 (en) 2015-02-19
US9946881B2 (en) 2018-04-17
EP3033710A1 (en) 2016-06-22
EP3033710B1 (en) 2020-09-23
US20150052610A1 (en) 2015-02-19
US20160034691A1 (en) 2016-02-04
US9576134B2 (en) 2017-02-21
KR20210097825A (ko) 2021-08-09
KR20160042897A (ko) 2016-04-20
CN116361747A (zh) 2023-06-30
KR102444625B1 (ko) 2022-09-16
US20170124334A1 (en) 2017-05-04
US20180204012A1 (en) 2018-07-19
CN109614769A (zh) 2019-04-12
KR102285236B1 (ko) 2021-08-04

Similar Documents

Publication Publication Date Title
CN105453103B (zh) 按照参考平台清单和数据封装的安全操作系统启动
CN101488170B (zh) 向受信任平台模块提供可更新密钥绑定的方法和装置
CN101176100B (zh) 提供基于软件的安全协处理器的方法和装置
US20190188394A1 (en) Security engine for a secure operating environment
CN104995627B (zh) 片上系统设备中的密钥撤消
CN1801091B (zh) 用可信处理模块安全地引导计算机的系统和方法
JP5992457B2 (ja) オペレーティングシステムのコンフィグレーション値の保護
CN103038745B (zh) 扩展完整性测量
US8099789B2 (en) Apparatus and method for enabling applications on a security processor
CN102289612B (zh) 用于安全协处理器中的n元局部性的系统和方法
CN106716957A (zh) 高效且可靠的认证
CN109669734A (zh) 用于启动设备的方法和装置
CN104221027A (zh) 硬件和软件关联和认证
KR20110050488A (ko) 티켓 인증 보안 설치 및 부트
CN107077560A (zh) 用于建立安全工作空间的所有权的系统
CN112528242B (zh) 使用用于数据处理加速器的水印算法配置水印单元的系统和方法
KR20220090537A (ko) 정책 적용을 위한 가상 환경 유형 검증
EP3338214B1 (en) Secure computation environment
CN107077571A (zh) 在可信平台模块中的操作系统上下文的表示
Shepherd Techniques for Establishing Trust in Modern Constrained Sensing Platforms with Trusted Execution Environments
JP2013025607A (ja) 情報処理装置及び情報処理方法
Wachsmann Trusted Computing
WO2009127905A1 (en) Apparatus and method for enabling applications on a security processor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant