CN109614769A - 按照参考平台清单和数据封装的安全操作系统启动 - Google Patents
按照参考平台清单和数据封装的安全操作系统启动 Download PDFInfo
- Publication number
- CN109614769A CN109614769A CN201811258859.7A CN201811258859A CN109614769A CN 109614769 A CN109614769 A CN 109614769A CN 201811258859 A CN201811258859 A CN 201811258859A CN 109614769 A CN109614769 A CN 109614769A
- Authority
- CN
- China
- Prior art keywords
- equipment
- health value
- operating system
- hardware
- state
- 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.)
- Pending
Links
- 230000036541 health Effects 0.000 claims abstract description 328
- 238000000034 method Methods 0.000 claims description 63
- 238000012423 maintenance Methods 0.000 claims description 30
- 238000011156 evaluation Methods 0.000 claims description 29
- 230000004224 protection Effects 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 16
- 241000700605 Viruses Species 0.000 claims description 9
- 230000008439 repair process Effects 0.000 claims description 8
- 241000208340 Araliaceae Species 0.000 claims description 6
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 6
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 6
- 235000008434 ginseng Nutrition 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 2
- 238000009434 installation Methods 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims 6
- 230000003862 health status Effects 0.000 abstract description 18
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000003032 molecular docking Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013501 data transformation Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Abstract
使用一个或多个设备健康值以指示计算设备的健康状态可以使得操作系统开发者能够直接管理计算设备的安全配置。生成设备健康值涉及在计算设备的启动期间根据配置设置来初始化计算设备的硬件组件并加载操作系统。接着基于在启动时的硬件组件的状态和/或包括操作系统的软件栈的状态而生成设备健康值。可以将设备健康值与参考健康值进行比较以确定计算设备是否处于安全状态。
Description
本申请是申请日为2014年8月13日、申请号为201480045238、4的发明专利申请“按照参考平台清单和数据封装的安全操作系统启动”的分案申请。
背景技术
典型地,计算设备利用安全模块以在启动期间监测计算设备的硬件平台和操作系统。安全模块通常是在计算设备启动时从计算设备的各个组件接收状态输入的专用处理芯片。进而,安全模块向计算设备上的应用程序提供状态输入。应用程序总体上使用状态输入来验证该计算设备对于执行应用程序来说是安全的平台,例如,操作系统是最新的并且没有已知的安全问题。
然而,在许多实例中,由于初始化了大量的硬件组件,因此安全模块在启动期间从硬件和软件平台接收了大量的输入。此外,许多应用程序不能够处理从安全模块接收到的状态输入。开发能够处理来自具有各种硬件配置的过多的计算设备的状态输入以对安全的计算设备和受到威胁的(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 (60)
1.一种设备,包括:
一个或多个处理器;
一个或多个计算机可读介质;
存储在所述一个或多个计算机可读介质上并且能够由所述一个或多个处理器执行的启动加载器,所述启动加载器被配置为:
初始化硬件平台的一个或多个硬件组件;以及
加载操作系统;
存储在所述一个或多个计算机可读介质上并且能够由所述一个或多个处理器执行的信任组件,所述信任组件被配置为生成与所述硬件平台或所述操作系统中的至少一个相关联的设备健康值;
存储在所述一个或多个计算机可读介质上并且能够由所述一个或多个处理器执行的状态评价器,所述状态评价器被配置为确定所述设备健康值与从验证实体接收的对应的参考健康值匹配;以及
存储在所述一个或多个计算机可读介质上并且能够由所述一个或多个处理器执行的数据保护组件,所述数据保护组件被配置为至少部分地基于所述设备健康值与所述对应的参考健康值匹配来提供使用从所述验证实体接收的一个或多个密钥而对数据的访问。
2.如权利要求1所述的设备,其中,所述数据被存储在所述一个或多个计算机可读介质的数据部分上。
3.如权利要求1所述的设备,其中,所述信任组件还被配置为从所述验证实体接收所述对应的参考健康值以及所述一个或多个密钥。
4.如权利要求1所述的设备,其中所述信任组件还被配置为:
获取一个或多个硬件配置值,所述一个或多个硬件配置值表示被初始化的硬件平台的状态;以及
获取一个或多个操作系统配置值,所述一个或多个操作系统配置值表示被加载的操作系统的状态。
5.如权利要求4所述的设备,其中,所述信任组件被配置为至少部分地基于所述一个或多个硬件配置值和所述一个或多个操作系统配置值中的至少一个来生成所述设备健康值。
6.如权利要求1所述的设备,其中,所述信任组件在所述硬件平台的初始化或所述操作系统的加载中的至少一个期间生成所述设备健康值。
7.如权利要求1所述的设备,还包括存储在所述一个或多个计算机可读介质上并且能够由所述一个或多个处理器执行的应用程序,所述应用程序被配置为:
至少部分地基于所述设备健康值与所述对应的参考健康值匹配,向服务提供者提供从所述验证实体接收的健康证书;以及
从所述服务提供者获取服务。
8.一种方法,包括:
初始化硬件平台的一个或多个硬件组件;
加载操作系统;
生成设备健康值,所述设备健康值与所述硬件平台或所述操作系统中的至少一个相关联;
确定所述设备健康值与从验证实体接收的对应的参考健康值匹配;
至少部分地基于所述设备健康值与所述对应的参考健康值匹配,向服务提供者提供从所述验证实体接收的健康证书;以及
从所述服务提供者获取服务。
9.如权利要求8所述的方法,其中,所述健康证书包括一个或多个密钥,并且所述方法还包括使用所述一个或多个密钥访问数据。
10.如权利要求8所述的方法,其中,所述健康证书证明设备处于安全状态。
11.如权利要求8所述的方法,还包括至少部分地基于向所述服务提供者提供所述健康证书来接收来自所述服务提供者的认证票,其中,所述认证票用于从所述服务提供者获取所述服务。
12.如权利要求8所述的方法,还包括:
获取一个或多个硬件配置值,所述一个或多个硬件配置值表示被初始化的硬件平台的状态;以及
获取一个或多个操作系统配置值,所述一个或多个操作系统配置值表示被加载的操作系统的状态。
13.如权利要求12所述的方法,其中,生成所述设备健康值包括至少部分地基于所述一个或多个硬件配置值和所述一个或多个操作系统配置值中的至少一个来生成所述设备健康值。
14.存储计算机可执行指令的一个或多个计算机存储设备,所述计算机可执行指令在由一个或多个处理器执行时使所述一个或多个处理器执行包括以下的操作:
生成与硬件平台或操作系统中的至少一个相关联的设备健康值;
确定所述设备健康值与从验证实体接收的对应的参考健康值匹配;以及
至少部分地基于所述设备健康值与所述对应的参考健康值匹配,提供使用从所述验证实体接收的一个或多个密钥而对数据的访问。
15.如权利要求14所述的一个或多个计算机存储设备,其中,所述数据被存储在所述一个或多个计算机存储设备的数据部分上。
16.如权利要求14所述的一个或多个计算机存储设备,所述操作还包括从所述验证实体接收所述对应的参考健康值以及所述一个或多个密钥。
17.如权利要求14所述的一个或多个计算机存储设备,所述操作还包括:
获取一个或多个硬件配置值,所述一个或多个硬件配置值表示被初始化的硬件平台的状态;以及
获取一个或多个操作系统配置值,所述一个或多个操作系统配置值表示被加载的操作系统的状态。
18.如权利要求17所述的一个或多个计算机存储设备,其中,生成所述设备健康值包括至少部分地基于所述一个或多个硬件配置值和所述一个或多个操作系统配置值中的至少一个而生成所述设备健康值。
19.如权利要求14所述的一个或多个计算机存储设备,其中,生成所述设备健康值包括在所述硬件平台的初始化或所述操作系统的加载中的至少一个期间生成所述设备健康值。
20.如权利要求14所述的一个或多个计算机存储设备,所述操作还包括:
至少部分地基于所述设备健康值与所述对应的参考健康值匹配,向服务提供者提供从所述验证实体接收的健康证书;以及
从所述服务提供者获取服务。
21.一种设备,包括:
一个或多个处理器;
一个或多个计算机可读介质;
启动加载器,其被存储在所述一个或多个计算机可读介质中并且能够由所述一个或多个处理器执行以用于:
启动硬件平台的一个或多个硬件组件;以及
加载操作系统;
信任组件,其能够由所述一个或多个处理器执行以生成与所述硬件平台或所述操作系统中的至少一个相关联的设备健康值;以及
状态评价器,其能够由所述一个或多个处理器执行以用于:
确定所述设备健康值与从验证实体接收的对应的参考健康值不匹配;以及
至少部分地基于所述设备健康值与所述对应的参考健康值不匹配,实现恢复环境。
22.如权利要求21所述的设备,还包括维护模块,所述维护模块被存储在所述一个或多个计算机可读介质中并且能够由所述一个或多个处理器执行以至少部分地基于实现所述恢复环境来执行以下中的至少一个:修复损坏的数据文件;移除恶意软件或病毒;重新映射所述操作系统;针对所述一个或多个硬件组件安装固件;或更新所述操作系统。
23.如权利要求21所述的设备,还包括维护模块,所述维护模块被存储在所述一个或多个计算机可读介质中并且能够由所述一个或多个处理器执行以至少部分地基于实现所述恢复环境来建立与所述验证实体的通信链路以便检测并修复所述设备上的错误。
24.如权利要求21所述的设备,其中,所述信任组件还能够由所述一个或多个处理器执行以用于:
获取一个或多个硬件配置值,所述一个或多个硬件配置值表示被初始化的硬件平台的状态;以及
获取一个或多个操作系统配置值,所述一个或多个操作系统配置值表示被加载的操作系统的状态,其中,所述信任组件能够由所述一个或多个处理器执行以至少部分地基于所述一个或多个硬件配置值或所述一个或多个操作系统配置值中的至少一个而生成所述设备健康值。
25.如权利要求21所述的设备,其中,所述信任组件能够由所述一个或多个处理器执行,以在所述硬件平台的初始化或所述操作系统的加载中的至少一个期间生成所述设备健康值。
26.一种方法,包括:
通过电子设备初始化硬件平台的一个或多个硬件组件;
通过所述电子设备加载操作系统;
通过所述电子设备生成设备健康值,所述设备健康值与所述硬件平台或所述操作系统中的至少一个相关联;
通过所述电子设备确定所述设备健康值与参考健康值不匹配;以及
至少部分地基于确定所述设备健康值与所述参考健康值不匹配,通过所述电子设备在所述电子设备上实现恢复环境。
27.如权利要求26所述的方法,还包括至少部分地基于确定所述设备健康值与所述参考健康值不匹配来确定所述电子设备处于非期望状态。
28.如权利要求26所述的方法,还包括至少部分地基于在所述电子设备上实现所述恢复环境来执行以下中的至少一个:修复损坏的数据文件;移除恶意软件或病毒;重新映射所述操作系统;针对所述一个或多个硬件组件安装固件;或更新所述操作系统。
29.如权利要求26所述的方法,还包括至少部分地基于在所述电子设备上实现所述恢复环境来建立与实体的通信链路,以便检测并修复所述电子设备上的错误。
30.如权利要求26所述的方法,还包括至少部分地基于在所述电子设备上实现所述恢复环境来拒绝对存储在所述电子设备上的数据的访问。
31.如权利要求26所述的方法,还包括从验证实体接收所述参考健康值。
32.如权利要求26所述的方法,还包括:
获取一个或多个硬件配置值,所述一个或多个硬件配置值表示被初始化的硬件平台的状态;以及
获取一个或多个操作系统配置值,所述一个或多个操作系统配置值表示被加载的操作系统的状态,其中,生成所述设备健康值包括至少部分地基于所述一个或多个硬件配置值或所述一个或多个操作系统配置值中的至少一个来生成所述设备健康值。
33.如权利要求26所述的方法,其中,生成所述设备健康值包括在所述硬件平台的初始化或所述操作系统的加载中的至少一个期间生成所述设备健康值。
34.如权利要求26所述的方法,还包括:
在实现所述恢复环境之后,生成新的设备健康值,所述新的设备健康值与所述硬件平台或所述操作系统中的至少一个相关联;
确定所述新的设备健康值与所述参考健康值匹配;以及
至少部分地基于确定所述新的设备健康值与所述参考健康值匹配,提供对存储在所述电子设备上的数据的访问。
35.一种电子设备,包括:
一个或多个处理器;以及
存储指令的一个或多个计算机可读介质,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下的操作:
从验证实体接收参考健康值;
生成与硬件平台或操作系统中的至少一个相关联的设备健康值;
确定所述设备健康值与所述参考健康值不对应;以及
确定所述电子设备处于非期望状态。
36.如权利要求35所述的电子设备,所述操作还包括至少部分地基于确定所述设备健康值与所述参考健康值不对应来实现恢复环境。
37.如权利要求35所述的电子设备,所述操作还包括至少部分地基于确定所述设备健康值与所述参考健康值不对应来执行以下操作中的至少一个:修复损坏的数据文件;移除恶意软件或病毒;重新映射所述操作系统;针对所述硬件平台的一个或多个硬件组件安装固件;或更新所述操作系统。
38.如权利要求35所述的电子设备,所述操作还包括至少部分地基于确定所述设备健康值与所述参考健康值不对应,建立与所述验证实体的通信链路以便检测和修复所述电子设备上的错误。
39.如权利要求35所述的电子设备,所述操作还包括:
获取一个或多个硬件配置值,所述一个或多个硬件配置值表示所述硬件平台的状态;以及
获取一个或多个操作系统配置值,所述一个或多个操作系统配置值表示所述操作系统的状态,其中,生成所述设备健康值包括至少部分地基于所述一个或多个硬件配置值或所述一个或多个操作系统配置值中的至少一个来生成所述设备健康值。
40.如权利要求35所述的电子设备,其中,生成所述设备健康值包括在所述硬件平台的初始化或所述操作系统的加载中的至少一个期间生成所述设备健康值。
41.一种计算设备,包括:
一个或多个处理器;
一个或多个计算机可读介质,其具有存储的可执行指令,所述可执行指令在由所述一个或多个处理器执行时能够操作以执行用于保护用户数据的方法,其中,所述方法包括:
所述计算设备从远程系统接收参考健康值,所述参考健康值表示与参考计算系统相关联的硬件状态或软件状态中的至少一个;
所述计算设备接收唯一地识别所述计算设备的一个或多个密钥;
所述计算设备基于所述参考健康值和所述一个或多个密钥而生成访问密钥;
通过至少利用所述访问密钥对所述用户数据进行加密或利用所述访问密钥对所述用户数据进行密码保护,所述计算设备利用所述访问密钥保护所述计算设备上的用户数据;
所述计算设备从所述计算设备上的应用程序接收访问证书以用于访问所述用户数据,所述访问证书基于存储在所述计算设备处的所述一个或多个密钥以及表示与所述计算设备相关联的硬件状态或软件状态中的至少一个的计算设备健康值;以及
所述计算设备在所述访问证书与所述访问密钥匹配时提供对所述用户数据的访问,并且在所述访问证书未能与所述访问密钥匹配时拒绝对所述用户数据的访问。
42.如权利要求41所述的计算设备,其中,所述方法还包括:所述计算设备生成所述计算设备健康值。
43.如权利要求42所述的计算设备,其中,所述计算设备健康值基于所述软件状态,所述软件状态至少包括在所述计算设备处加载所述操作系统期间获取的所述操作系统的状态。
44.如权利要求42所述的计算设备,其中,所述计算设备健康值基于所述硬件状态,所述硬件状态包括在启动所述计算设备期间获取的一个或多个硬件配置值。
45.如权利要求42所述的计算设备,其中,所述计算设备健康值基于(1)所述软件状态以及(2)所述硬件状态两者,所述软件状态包括在所述计算设备处加载所述操作系统期间获取的所述操作系统的状态,所述硬件状态包括在启动所述计算设备期间获取的一个或多个硬件配置值。
46.如权利要求41所述的计算设备,其中,所述访问密钥是所述一个或多个密钥和所述参考健康值的哈希。
47.如权利要求41所述的计算设备,其中,所述一个或多个密钥和所述参考健康值是从同一远程系统获取的。
48.一种用于保护计算设备上的用户数据的计算机实现的方法,其中,所述方法包括:
所述计算设备从远程系统接收参考健康值,所述参考健康值表示与参考计算系统相关联的硬件状态或软件状态中的至少一个;
所述计算设备接收唯一地标识所述计算设备的一个或多个密钥;
所述计算设备基于所述参考健康值和所述一个或多个密钥而生成访问密钥;
通过至少利用所述访问密钥对所述用户数据进行加密或利用所述访问密钥对所述用户数据进行密码保护,所述计算设备利用所述访问密钥保护所述计算设备上的用户数据;
所述计算设备从所述计算设备上的应用程序接收访问证书以用于访问所述用户数据,所述访问证书基于存储在所述计算设备处的所述一个或多个密钥以及表示与所述计算设备相关联的硬件状态或软件状态中的至少一个的计算设备健康值;以及
所述计算设备在所述访问证书与所述访问密钥匹配时提供对所述用户数据的访问,并且在所述访问证书未能与所述访问密钥匹配时拒绝对所述用户数据的访问。
49.如权利要求48所述的方法,其中,所述方法还包括:所述计算设备生成所述计算设备健康值。
50.如权利要求49所述的方法,其中,所述计算设备健康值基于所述软件状态,所述软件状态至少包括在所述计算设备处加载所述操作系统期间获取的所述操作系统的状态。
51.如权利要求49所述的方法,其中,所述计算设备健康值基于所述硬件状态,所述硬件状态包括在启动所述计算设备期间获取的一个或多个硬件配置值。
52.如权利要求49所述的方法,其中,所述计算设备健康值基于(1)所述软件状态以及(2)所述硬件状态两者,所述软件状态包括在所述计算设备处加载所述操作系统期间获取的所述操作系统的状态,所述硬件状态包括在启动所述计算设备期间获取的一个或多个硬件配置值。
53.如权利要求48所述的方法,其中,所述访问密钥是所述一个或多个密钥和所述参考健康值的哈希。
54.如权利要求48所述的方法,其中,所述一个或多个密钥和所述参考健康值是从同一远程系统获取的。
55.一种计算机程序产品,包括具有存储的可执行指令的一个或多个计算机可读硬件存储设备,所述可执行指令在由计算设备的一个或多个处理器执行时能够操作以执行用于在所述计算设备处保护用户数据的方法,其中所述方法包括:
所述计算设备从远程系统接收参考健康值,所述参考健康值表示与参考计算系统相关联的硬件状态或软件状态中的至少一个;
所述计算设备接收唯一地标识所述计算设备的一个或多个密钥;
所述计算设备基于所述参考健康值和所述一个或多个密钥而生成访问密钥;
通过至少利用所述访问密钥对所述用户数据进行加密或利用所述访问密钥对所述用户数据进行密码保护,所述计算设备利用所述访问密钥保护所述计算设备上的用户数据;
所述计算设备从所述计算设备上的应用程序接收访问证书以用于访问所述用户数据,所述访问证书基于存储在所述计算设备处的所述一个或多个密钥以及表示与所述计算设备相关联的硬件状态或软件状态中的至少一个的计算设备健康值;以及
所述计算设备在所述访问证书与所述访问密钥匹配时提供对所述用户数据的访问,并且在所述访问证书未能与所述访问密钥匹配时拒绝对所述用户数据的访问。
56.如权利要求55所述的计算机程序产品,其中,所述方法还包括:所述计算设备生成所述计算设备健康值。
57.如权利要求56所述的计算机程序产品,其中,所述计算设备健康值基于所述软件状态,所述软件状态至少包括在所述计算设备处加载所述操作系统期间获取的所述操作系统的状态。
58.如权利要求56所述的计算机程序产品,其中,所述计算设备健康值基于所述硬件状态,所述硬件状态包括在启动所述计算设备期间获取的一个或多个硬件配置值。
59.如权利要求56所述的计算机程序产品,其中,所述计算设备健康值基于(1)所述软件状态以及(2)所述硬件状态两者,所述软件状态包括在所述计算设备处加载所述操作系统期间获取的所述操作系统的状态,所述硬件状态包括在启动所述计算设备期间获取的一个或多个硬件配置值。
60.如权利要求55所述的计算机程序产品,其中,所述访问密钥是所述一个或多个密钥和所述参考健康值的哈希,并且其中,所述一个或多个密钥和所述参考健康值是从同一远程系统获取的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/968,205 | 2013-08-15 | ||
US13/968,205 US9167002B2 (en) | 2013-08-15 | 2013-08-15 | Global platform health management |
CN201480045238.4A CN105453103B (zh) | 2013-08-15 | 2014-08-13 | 按照参考平台清单和数据封装的安全操作系统启动 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480045238.4A Division CN105453103B (zh) | 2013-08-15 | 2014-08-13 | 按照参考平台清单和数据封装的安全操作系统启动 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109614769A true CN109614769A (zh) | 2019-04-12 |
Family
ID=51483665
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310326629.4A Pending CN116361747A (zh) | 2013-08-15 | 2014-08-13 | 按照参考平台清单和数据封装的安全操作系统启动 |
CN201480045238.4A Active CN105453103B (zh) | 2013-08-15 | 2014-08-13 | 按照参考平台清单和数据封装的安全操作系统启动 |
CN201811258859.7A Pending CN109614769A (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 | 按照参考平台清单和数据封装的安全操作系统启动 |
CN201480045238.4A Active CN105453103B (zh) | 2013-08-15 | 2014-08-13 | 按照参考平台清单和数据封装的安全操作系统启动 |
Country Status (5)
Country | Link |
---|---|
US (4) | US9167002B2 (zh) |
EP (1) | EP3033710B1 (zh) |
KR (2) | KR102444625B1 (zh) |
CN (3) | CN116361747A (zh) |
WO (1) | WO2015023723A1 (zh) |
Families Citing this family (17)
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 |
EP3311319A4 (en) * | 2015-06-17 | 2018-12-12 | 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 |
US10558812B2 (en) | 2017-06-21 | 2020-02-11 | Microsoft Technology Licensing, Llc | Mutual authentication with integrity attestation |
US10440006B2 (en) | 2017-06-21 | 2019-10-08 | Microsoft Technology Licensing, Llc | Device with embedded certificate authority |
US10771439B2 (en) * | 2017-06-28 | 2020-09-08 | Microsoft Technology Licensing, Llc | Shielded networks for virtual machines |
EP3878152B1 (en) * | 2018-11-07 | 2022-10-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Lwm2m client state synchronization |
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 | 新唐科技股份有限公司 | 電腦裝置及基於信任鏈的權限管理方法 |
CN116057902A (zh) * | 2020-06-30 | 2023-05-02 | 微软技术许可有限责任公司 | 服务的健康指数 |
EP4187550A1 (en) * | 2021-11-30 | 2023-05-31 | Koninklijke Philips N.V. | Post-service state validator for medical devices |
WO2023099234A1 (en) * | 2021-11-30 | 2023-06-08 | Koninklijke Philips N.V. | Post-service state validator for medical devices |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040064457A1 (en) * | 2002-09-27 | 2004-04-01 | Zimmer Vincent J. | Mechanism for providing both a secure and attested boot |
US20070107056A1 (en) * | 2005-11-09 | 2007-05-10 | Microsoft Corporation | Hardware-aided software code measurement |
CN101458743A (zh) * | 2007-12-12 | 2009-06-17 | 中国长城计算机深圳股份有限公司 | 一种保护计算机系统安全的方法 |
CN101551750A (zh) * | 2009-05-15 | 2009-10-07 | 中国科学院软件研究所 | 一种软件过程可信性检测方法及系统 |
US7672814B1 (en) * | 2004-03-03 | 2010-03-02 | Emc Corporation | System and method for baseline threshold monitoring |
WO2010060292A1 (zh) * | 2008-11-03 | 2010-06-03 | 华为技术有限公司 | 平台完整性认证方法及系统、无线接入设备和网络设备 |
CN101996286A (zh) * | 2009-08-10 | 2011-03-30 | 北京多思科技发展有限公司 | 动态安全度量的实现方法、安全度量装置和应用系统 |
CN102063591A (zh) * | 2011-01-07 | 2011-05-18 | 北京工业大学 | 基于可信平台的平台配置寄存器参考值的更新方法 |
CN102479144A (zh) * | 2010-11-23 | 2012-05-30 | 盛乐信息技术(上海)有限公司 | 计算机运行能力评估方法 |
CN102693379A (zh) * | 2011-03-01 | 2012-09-26 | 微软公司 | 保护操作系统配置值 |
CN102763113A (zh) * | 2010-02-16 | 2012-10-31 | 诺基亚公司 | 对移动可信模块中的平台配置寄存器进行复位的方法和设备 |
Family Cites Families (26)
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 |
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 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム |
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 | 삼성전자주식회사 | 보안 부팅 장치 및 방법 |
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 |
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 |
US8505103B2 (en) | 2009-09-09 | 2013-08-06 | Fujitsu Limited | Hardware trust anchor |
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 | 三菱電機株式会社 | 感染検査システム及び感染検査方法及び記録媒体及びプログラム |
CN201741156U (zh) * | 2010-07-23 | 2011-02-09 | 北京工业大学 | 一种可信硬件设备 |
US8863291B2 (en) * | 2011-01-20 | 2014-10-14 | Microsoft Corporation | Reputation checking of executable programs |
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 |
-
2013
- 2013-08-15 US US13/968,205 patent/US9167002B2/en active Active
-
2014
- 2014-08-13 EP EP14758738.0A patent/EP3033710B1/en active Active
- 2014-08-13 CN CN202310326629.4A patent/CN116361747A/zh active Pending
- 2014-08-13 KR KR1020217024019A patent/KR102444625B1/ko active IP Right Grant
- 2014-08-13 WO PCT/US2014/050827 patent/WO2015023723A1/en active Application Filing
- 2014-08-13 CN CN201480045238.4A patent/CN105453103B/zh active Active
- 2014-08-13 KR KR1020167003652A patent/KR102285236B1/ko active IP Right Grant
- 2014-08-13 CN CN201811258859.7A patent/CN109614769A/zh active Pending
-
2015
- 2015-10-16 US US14/884,951 patent/US9576134B2/en active Active
-
2017
- 2017-01-17 US US15/408,005 patent/US9946881B2/en active Active
-
2018
- 2018-03-16 US US15/923,959 patent/US10176330B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040064457A1 (en) * | 2002-09-27 | 2004-04-01 | Zimmer Vincent J. | Mechanism for providing both a secure and attested boot |
US7672814B1 (en) * | 2004-03-03 | 2010-03-02 | Emc Corporation | System and method for baseline threshold monitoring |
US20070107056A1 (en) * | 2005-11-09 | 2007-05-10 | Microsoft Corporation | Hardware-aided software code measurement |
CN101458743A (zh) * | 2007-12-12 | 2009-06-17 | 中国长城计算机深圳股份有限公司 | 一种保护计算机系统安全的方法 |
WO2010060292A1 (zh) * | 2008-11-03 | 2010-06-03 | 华为技术有限公司 | 平台完整性认证方法及系统、无线接入设备和网络设备 |
CN101551750A (zh) * | 2009-05-15 | 2009-10-07 | 中国科学院软件研究所 | 一种软件过程可信性检测方法及系统 |
CN101996286A (zh) * | 2009-08-10 | 2011-03-30 | 北京多思科技发展有限公司 | 动态安全度量的实现方法、安全度量装置和应用系统 |
CN102763113A (zh) * | 2010-02-16 | 2012-10-31 | 诺基亚公司 | 对移动可信模块中的平台配置寄存器进行复位的方法和设备 |
CN102479144A (zh) * | 2010-11-23 | 2012-05-30 | 盛乐信息技术(上海)有限公司 | 计算机运行能力评估方法 |
CN102063591A (zh) * | 2011-01-07 | 2011-05-18 | 北京工业大学 | 基于可信平台的平台配置寄存器参考值的更新方法 |
CN102693379A (zh) * | 2011-03-01 | 2012-09-26 | 微软公司 | 保护操作系统配置值 |
Also Published As
Publication number | Publication date |
---|---|
US20180204012A1 (en) | 2018-07-19 |
EP3033710A1 (en) | 2016-06-22 |
US20160034691A1 (en) | 2016-02-04 |
KR102444625B1 (ko) | 2022-09-16 |
CN105453103A (zh) | 2016-03-30 |
US20150052610A1 (en) | 2015-02-19 |
US9167002B2 (en) | 2015-10-20 |
WO2015023723A1 (en) | 2015-02-19 |
US9576134B2 (en) | 2017-02-21 |
CN105453103B (zh) | 2018-11-13 |
KR20210097825A (ko) | 2021-08-09 |
US20170124334A1 (en) | 2017-05-04 |
KR102285236B1 (ko) | 2021-08-04 |
KR20160042897A (ko) | 2016-04-20 |
CN116361747A (zh) | 2023-06-30 |
US9946881B2 (en) | 2018-04-17 |
US10176330B2 (en) | 2019-01-08 |
EP3033710B1 (en) | 2020-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105453103B (zh) | 按照参考平台清单和数据封装的安全操作系统启动 | |
US10796009B2 (en) | Security engine for a secure operating environment | |
EP3446435B1 (en) | Key-attestation-contingent certificate issuance | |
EP3241364B1 (en) | Over-the-air provisioning of application library | |
CN101488170B (zh) | 向受信任平台模块提供可更新密钥绑定的方法和装置 | |
CN103221961B (zh) | 包括用于保护多用户敏感代码和数据的架构的方法和装置 | |
KR101190479B1 (ko) | 티켓 인증 보안 설치 및 부트 | |
CN101176100B (zh) | 提供基于软件的安全协处理器的方法和装置 | |
US8099789B2 (en) | Apparatus and method for enabling applications on a security processor | |
CN108781210A (zh) | 具有可信执行环境的移动设备 | |
CN107251481A (zh) | 利用匿名密钥系统进行可信平台模块认证和证明 | |
CN106716957A (zh) | 高效且可靠的认证 | |
CN101983375A (zh) | 将密码模块绑定到平台 | |
CN111191195A (zh) | 一种用于保护apk的方法和装置 | |
US20240028672A1 (en) | Terminal hardware configuration system | |
US11909882B2 (en) | Systems and methods to cryptographically verify an identity of an information handling system | |
US8972745B2 (en) | Secure data handling in a computer system | |
Paul et al. | Practical attacks on security and privacy through a low-cost android device | |
WO2009127905A1 (en) | Apparatus and method for enabling applications on a security processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |