通过安全硬化管理代理进行的设备证实的制作方法

文档序号:13041986阅读:184来源:国知局
通过安全硬化管理代理进行的设备证实的制作方法与工艺



背景技术:

计算设备在我们生活的许多领域已经变得司空见惯了。鉴于我们可用的计算设备数量及其提供的功能性,通常期望使用计算设备来访问特定环境(比如公司环境)中的其他设备或资源。在基于对特定环境的管理的期望来限制哪些设备或资源可以被访问的同时允许这样的访问仍然是一项困难的任务。



技术实现要素:

提供本发明内容以便以简化的形式介绍下面将在具体实施方式中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

根据一个或多个方面,计算设备被安全地引导,所述安全引导包括,生成反映在所述计算设备上加载的模块或组件以及所述计算设备的安全状态的一个或多个度量(measurement)。设备管理代理作为硬化程序在计算设备上运行,所述硬化程序被保护,以免于让恶意代码注入到程序中。经由网络与证实服务通信,以便验证设备管理代理用于企业中。响应于证实服务验证了设备管理代理用于企业中,在计算设备上的设备管理代理在计算设备上实现经由网络从管理服务接收到的策略。

附图说明

参照附图描述具体实施方式。在附图中,附图标记的最左边的(多个)数字标识出该附图标记首次出现在其中的附图。在具体实施方式和附图中的不同实例中使用相同的附图标记可以指示相似或相同的项目。在附图中表示的实体可以指示一个或多个实体,并且因此可以在讨论中可互换地引用单数或复数形式的实体。

图1图示出了根据一个或多个实施例的通过安全硬化管理代理来实现设备证实的示例系统。

图2以附加细节图示出了根据一个或多个实施例的计算设备。

图3是图示出了根据一个或多个实施例的通过安全硬化管理代理来实现设备证实的示例过程的流程图。

图4图示出了包括示例计算设备的示例系统,所述示例计算设备代表可以实现本文描述的各种技术的一个或多个系统和/或设备。

具体实施方式

本文讨论了通过安全硬化管理代理进行的设备证实。当计算设备引导时,计算设备以安全的方式引导,所述方式允许反映在引导期间哪些组件或模块被加载和运行的度量(例如,标识出哪些组件或模块被加载和运行的度量或者基于其生成的度量)被生成。这些组件或模块以及设备管理代理和计算设备的安全状态的度量也由度量系统获得。设备管理代理针对由管理服务管理的设备或其他资源的集合而访问证实服务,该集合在本文中被称为企业(enterprise)。设备管理代理将来自度量系统的度量提供给证实服务,证实服务对所述度量进行评估,并且基于评估来确定计算设备是否被验证来在企业中使用。可以比如从证实服务或经由设备管理代理向管理系统提供该验证的指示。

设备管理代理接收并实现来自管理服务的策略,并且向管理服务提供计算设备的状态的指示。这些策略可以采取各种形式,比如计算设备将具有的设置的指示(例如,特定的调试模式是否被禁用)、计算设备管理数据(例如,存储在计算设备上的数据被加密)的方式的指示,企业中的哪些资源可以被访问的指示等等。鉴于证实服务所执行的验证,管理服务可以确保设备管理代理正以安全的方式运行,并且正准确地向管理服务提供计算设备的状态的指示以及实现从管理服务接收到的策略。

本文中引用密钥密码学(包括对称密钥密码学、公共密钥密码学、对称密钥和公钥/私钥对)的各方面。尽管这种密钥密码学是本领域技术人员所公知的,但是本文包括这种密码学的简要概述来帮助读者。在公钥密码学中,实体(比如用户、硬件或软件组件、设备、域等)已经将公钥/私钥对与其相关联。可以使公钥公开可用,但实体将私钥保持为秘密。在没有私钥的情况下,在计算上很难解密使用公钥加密的数据。因此,数据可以由具有公钥的任何实体加密,并且只能由具有对应私钥的实体解密。附加地,可以通过使用数据和私钥来生成用于数据的数字签名。在没有私钥的情况下,在计算上很难创建可以使用公钥验证的签名。具有公钥的任何实体可以使用公钥通过在公钥、签名和被签名的数据上执行合适的数字签名验证算法来验证数字签名。

另一方面,在对称密钥密码学中,共享密钥(也称为对称密钥)被这两个实体知道并被保持为秘密的。具有共享密钥的任何实体典型地能够解密利用该共享密钥加密的数据。在没有共享密钥的情况下,在计算上很难解密利用共享密钥加密的数据中。因此,如果两个实体都知道共享密钥,则每个实体都可以对另一个实体能够解密的数据进行加密,但是如果其他实体不知道共享密钥,则其他实体不能解密数据。类似地,具有共享密钥的实体可以加密该同一实体能够解密的数据,但是如果其他实体不知道共享密钥,则其他实体不能解密该数据。附加地,可以比如使用密钥散列消息认证码机制(keyed-hashmessageauthenticationcodemechanism)来基于对称密钥密码学而生成数字签名。具有共享密钥的任何实体可以生成和验证数字签名。例如,可信的第三方可以基于特定实体的身份来生成对称密钥,然后可以生成和验证该特定实体的数字签名(例如,通过使用对称密钥加密或解密数据)。

图1图示出了根据一个或多个实施例的通过安全硬化管理代理实现设备证实的示例系统100。系统100包括可以经由网络108与证实服务104和管理服务106通信的计算设备102。网络108可以是各种不同的网络,包括因特网、局域网(lan)、蜂窝或其他电话网络、内联网、其他公共和/或专有网络、其组合等等。

计算设备102可以是各种不同类型的设备,比如台式计算机、服务器计算机、笔记本计算机或上网本计算机、移动设备(例如,平板设备或者平板手机设备、蜂窝或其他无线电话(例如智能电话)、记事本计算机、移动站)、可穿戴设备(例如,眼镜、手表)、娱乐设备(例如,娱乐器具、通信地耦合到显示设备的机顶盒、游戏控制台)、电视机或其他显示设备、汽车计算机等。因此,计算设备102的范围可以从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)到具有有限的存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持式游戏控制台)。

证实服务104和管理服务106各自是使用一个或多个计算设备实现的,并且每个这样的计算设备可以是各种不同类型的设备中的任何一种。类似于对计算设备102的讨论,实现服务104或106的至少一部分的每个计算设备可以是各种不同类型的设备,范围从具有大量存储器和处理器资源的全资源设备到具有有限的存储器和/或处理资源的低资源设备。尽管被图示为两个单独的服务,但是可替换地,证实服务104和管理服务106可以是同一服务。

计算设备102包括引导系统110和度量系统112。当计算设备102通电或以其他方式重置时,计算设备102引导。计算设备102的引导是指计算设备102的开始操作,典型地加载和执行计算设备102的操作系统。计算设备102的引导包括加载和运行各种不同的模块,其在一个或多个实施例中是各种软件模块或固件模块。这些模块被图示为引导系统110。这些模块可以包括例如以下更详细讨论的基本输入/输出系统(bios)、引导管理器和操作系统(os)加载器。模块的加载是指将模块复制到易失性(或可替换地非易失性)存储器中,并且可选地对其他模块或数据存储库执行附加配置。执行模块是指由计算设备102的处理器或控制器运行(执行)模块的指令。在引导计算设备102之后,可以通过操作系统在计算设备102上运行各种其他程序。

引导系统110包括被度量的多个模块,并且由度量系统112维持度量的指示。模块的度量是指模块的标识符,如果模块改变(例如,如果模块中的指令被改变),则标识符改变。在一个或多个实施例中,模块的度量是通过将散列函数(例如,密码学的散列函数)应用于模块而生成的散列值。度量系统112可选地将不同模块的度量组合(例如,一起进行散列)并提供经组合的度量的指示。该经组合的度量反映了在引导系统110中包括的模块的度量,并且因此也反映了引导系统110中的模块。

度量系统112还维持计算设备102的安全状态的度量,如由计算设备的一组安全设置或配置值所表示的那样。这些安全设置可以是计算设备102的配置寄存器的值,比如是否为计算设备102启用安全引导,是否为计算设备102启用或禁用某些调试模式等等。

计算设备102还包括设备管理代理114。设备管理代理114与管理服务106通信,从而实现由管理服务106提供的策略并提供计算设备102的各种状态的指示。例如,如下面更详细地讨论的,设备管理代理114可以向管理服务106提供关于设备管理代理114从管理服务106接收的策略是否正在计算设备102上实施的指示。如下面更详细地讨论的,设备管理代理114实现的策略被维持在策略存储库116中。设备管理代理114也被度量并包括在由度量系统112维持的度量中。尽管被图示为分开的,但是设备管理代理114也可以是引导系统110的一部分。

设备管理代理114还作为硬化的程序或进程运行,这是指代理114被保护,以免于在运行时让恶意代码注入到程序或进程中。下面将更详细地讨论设备管理代理114的这种保护。

度量系统112生成反映引导系统110中的模块、设备管理代理114以及计算设备102的安全状态的一个或多个度量。设备管理代理114将这些一个或多个度量提供给证实服务104,证实服务104验证度量,以便由管理服务106管理的一组资源(本文中也被称为企业)使用。如果证实服务104验证了从度量系统112接收的度量,则管理服务106允许计算设备102访问由管理服务106管理的资源,以及如果验证服务104没有验证一个或多个度量,则所述管理服务106采取适当的补救动作(比如,拒绝对由管理服务106管理的资源的访问)。管理服务106可以管理对比如数据、存储设备、打印机等各种资源的访问。

由管理服务106管理的资源组可以采取各种不同的形式。在一个或多个实施例中,资源组是公司环境中的资源集合,比如特定公司或其他组织的那些资源。为了使计算设备访问公司环境的资源,管理服务106要求计算设备具有在计算设备上运行的向管理服务106注册了的设备管理代理(其可以被证实为是安全的并且是不被危害的)。

可替换地,资源组可以采取其他形式。例如,该资源组可以是游戏环境中的资源(例如,在线服务器或其他游戏控制台)的集合。在该示例中,为了使计算设备访问游戏环境的这些资源,管理服务106要求计算设备具有在计算设备上运行的向管理服务106注册了的设备管理代理(其可以被证实为是安全的并且不被危害的)。作为另一示例,该资源组可以是教育设置或其中儿童正在使用计算设备的其他设置中的资源的集合。在该示例中,为了使计算设备访问教育或其他设置的这些资源,管理服务106要求计算设备具有在计算设备上运行的向管理服务106注册了的设备管理代理(其可以被证实为是安全的且不被危害的)。进一步接着该示例,可以在计算设备上包括计算设备被儿童使用的指示(例如,bios设置、寄存器值、模块等),并且该指示可以被反映在一个或多个度量中。管理服务106然后可以允许计算设备仅访问不被认为是令人反感(objectionable)的在教育设置或其他设置中的资源(例如,管理服务106可以防止计算设备访问被管理服务106认为是令人反感的内容)。可以以各种方式来确定内容是否被认为是令人反感的,比如基于内容来源(例如,将从其获得内容的网站)、内容的评级、其他规则或准则等。

本文讨论的技术将安全地引导计算设备102的保证扩展到管理服务106对计算设备的管理,从而允许管理服务106确保由设备管理代理114执行的各种不同的管理操作。管理服务106可以管理计算设备102,以确保计算设备102是安全的(基于证实服务104对度量的验证),确保计算设备正在运行设备管理代理114(并且,设备管理代理114以防止恶意代码的硬化方式运行),并确保管理服务106已经向计算设备102提供的何种策略正被实施。管理服务106可以与设备管理代理114通信以确保设备管理代理114是管理服务106所预期的程序或进程而不是恶意代码,并且因此可以依赖于从设备管理代理114接收的信息。

图2以附加细节图示出了根据一个或多个实施例的计算设备102。如上所讨论的,计算设备102包括引导系统110、度量系统112、设备管理代理114和策略存储库116。引导系统106包括bios202、引导管理器204和os加载器206,其中的每一个都由一个或多个模块构成。

度量系统112包括作为可信平台模块(tpm)210的安全密码处理器。tpm210包括各种功能性,比如密钥生成、加密、解密、安全存储(例如,平台配置寄存器)等等。在一个或多个实施例中,tpm210遵照可信计算组可信平台模块规范2.0版,其作为可信平台模块库规范,家族“2.0”,等级00,修订本01.16(2014年10月30日),第1-4部分进行公布。尽管本文参照tpm210讨论,但是可替换地,度量系统112可以使用提供与tpm相似的功能性的一个或多个其他密码处理器。

在操作期间,当引导计算设备102时,加载并执行多个模块。在一个或多个实施例中,这多个模块包括设备管理代理114。被加载的第一模块生成(或获得)自身的度量,并将该度量提供给度量系统112。该度量被加载到tpm210中并且还被记录在事件日志212中,事件日志212是文件(例如,文本文件)或其他度量记录。应当注意,事件日志212可以是具有进入tpm的所有度量的拷贝的不受保护的日志(例如,未加密的且计算设备102的任何模块可访问的日志)。

在引导计算设备102时加载的第一模块还生成将被加载到计算设备102上的下一个模块的度量,向度量系统112提供度量(度量系统112将度量加载到tpm210中并将度量记录在事件日志212中),并将控制转移到下一个模块。可以对引导系统106中的任何数量的模块重复该过程,其中每个模块生成将要加载到计算设备102上的下一个模块的度量,向度量系统112提供度量(度量系统112将度量加载到tpm210中并将度量记录在事件日志212中),并将控制转移到下一个模块。在引导系统106的所有模块都被加载到计算设备102上之后,tpm210中的经组合的度量是被加载的模块和这些模块的加载顺序的指示。

tpm210组合其接收的度量以生成经组合的度量。可以以各种不同的方式组合度量,比如通过连结(concatenate)和散列所述度量。例如,由tpm210接收到的初始度量a可以由tpm210维持。当接收到下一个度量b时,可以通过以下步骤生成经组合的度量:连结初始度量a和下一个度量b,通过将单向函数(例如,密码学的散列函数)应用于经连结的值来生成散列值,以生成经组合的度量。当接收到下一个度量c时,可以通过以下步骤生成新的经组合的度量:连结先前的经组合的度量和下一个度量c并通过将单向函数(例如,密码学的散列函数)应用于经练结的值来生成散列值,以生成新的经组合的度量。可替换地,tpm210可以以各种其他方式中的任何一种来组合度量。

tpm210中的经组合的度量还可以包括影响被加载的模块的执行的配置的指示(例如,引导配置数据(bcd)设置))。如果被加载的模块(及其配置)和这些模块的加载顺序对于不同的引导是相同的,则针对所述不同引导的经组合的度量将是相同的。每次重新引导计算设备102时,期望tpm210中的经组合的度量具有相同的值。如果值在引导之间改变,则可以假定对引导系统106做出了一些改变(例如,模块未被加载,模块被改变,附加的模块被加载,模块被以不同的顺序加载,相同的模块被加载但具有不同的配置等)。

tpm210中的经组合的度量还包括由计算设备102的一组安全设置(例如,配置值)表示的计算设备102的安全状态的指示。这些安全设置可以是tpm210的配置寄存器或计算设备102的其他寄存器的值。这些安全设置的示例包括,是否为计算设备102启用了安全引导(例如,并且因此是否由度量系统112生成了基于引导系统110的组件的度量),对于计算设备102是否启用或禁用了一个或多个调试模式,是否为计算设备102启用或禁用了存储设备加密,等等。度量系统112(例如,tpm210)可以确定计算设备102的各种设置,这些设置中的哪些设置包括在tpm210中的经组合的度量中的指示。安全状态的指示可以是计算设备102中的各种寄存器或其他配置值的设置,或者可替换地,计算设备102中的各种寄存器或其他配置值的设置的度量(例如,通过将密码学的散列函数应用于计算设备102中的各种寄存器或其他配置值的设置而生成的度量值)。

度量系统112还包括引导计数器216,引导计数器216是每当引导计算设备102时就增加的单调计数器。引导计数器216的值可以被提供给其他服务(例如,图1的证实服务104或管理服务106),并且被这些服务使用以便用密码学确定计算设备102报告来自该引导的状态。

下面图示出了计算设备102的引导的更具体的示例。在上电或重置事件时,控制被传递到bios202,bios202执行硬件初始化,并且最终继续启动引导管理器204。然而,在引导管理器204开始执行之前,引导管理器的代码由bios202度量并存储在tpm210和事件日志212中。引导管理器204然后执行,决定要启动什么样的特定操作系统(在存在可以启动的多个操作系统的情况下),以及加载os加载器206并且将控制转移到os加载器206。然而,在将控制传递给os加载器206之前,os加载器206的代码由引导管理器204度量,引导管理器204向tpm210(其生成经组合的度量)和事件日志212提供度量。os加载器206还加载并执行设备管理代理114。设备管理代理114的代码由os加载器206度量,os加载器206向tpm210(其生成经组合的度量)和事件日志212提供度量。os加载器206还加载初始的一组操作系统模块。这些操作系统模块中的每一个由os加载器206度量,os加载器206向tpm210(其生成经组合的度量)和事件日志212提供度量。然后,os加载器206将控制传递给安全边界110或112中的一个中的os模块。

附加地,在上电或重置事件时,引导计数器216递增。引导计数器216可以由bios202、引导管理器204、os加载器206或引导系统110的其他模块递增。可替换地,引导计数器216可以包括或具有与其相关联的专用电路或逻辑,其响应于上电或重置事件而自动地递增引导计数器216。

附加地,在计算设备102的引导期间的某个时刻,计算设备102的安全状态的指示被包括在由tpm210生成的经组合的度量中。在一个或多个实施例中,安全状态的指示由设备管理代理114或os加载器206提供给tpm210,但是可替换地,该指示可以由其他模块提供。

在本文的讨论中,参照生成单个经组合的度量值的tpm210。在一个或多个实施例中,经组合的度量值是由引导系统110加载的组件或模块的度量以及计算设备102的安全状态的指示的组合。可替换地,并非是生成单个经组合的度量值,而是可以生成多个度量值。例如,可以生成一个度量值,其是由引导系统110加载的组件或模块的度量的组合,并且可以生成另一个度量值,其是计算设备102的安全状态的指示。作为另一示例,tpm210可以对于由引导系统110加载的每个组件或模块维持单独的度量值(而不是经组合的度量值)。

图3是图示出根据一个或多个实施例的用于通过安全硬化管理代理来实现设备证实的示例过程300的流程图。过程300由比如图1或图2的计算设备102之类的设备执行,并且可以以软件、固件、硬件或其组合来实现。过程300被示出为一组动作,并且不限于用于执行各种动作的操作的所示顺序。过程300是通过安全硬化管理代理来实现设备证实的示例过程;本文中参照不同的图来包括关于通过安全硬化管理代理来实现设备证实的附加讨论。

在过程300中,计算设备被安全地引导(动作302)。如上所讨论的,该安全引导包括,生成反映在计算设备上加载的模块或组件(包括设备管理代理)以及计算设备的安全状态的一个或多个度量。这一个或多个度量由例如度量系统的tpm维持。

设备管理代理作为计算设备上的硬化程序运行(动作304)。将设备管理代理作为硬化程序运行是指,在运行时,设备管理代理被保护,而免于让恶意代码注入到该程序(或程序的进程)中。设备管理代理可以以各种不同的方式作为硬化程序运行。

在一个或多个实施例中,设备管理代理通过由操作系统作为受保护的进程运行,而作为硬化程序运行。设备管理代理通过操作系统私钥进行数字签名,并且操作系统公钥通过操作系统证书(例如,特定操作系统或操作系统的制造商或分发者的证书)来标识。只有在操作系统能够验证数字签名(并因此验证设备管理代理自从被数字签名以来没有被篡改)时,操作系统才会加载和运行设备管理代理。操作系统还支持以安全模式运行这种数字签名的程序,其中操作系统防止其他运行的进程访问分配给程序的存储器空间,从而防止恶意进程将代码注入正在运行的程序中。操作系统可以防止所有其他进程访问分配给程序的存储器空间。可替换地,操作系统可以仅防止也没有通过操作系统证书进行数字签名的其他进程访问分配给该程序的存储器空间。

设备管理代理还与证实服务通信,以进行设备管理代理的企业验证(动作306)。企业验证是指,计算设备被验证以用于由管理服务管理的企业或其他资源组中。在动作306中,设备管理代理将在动作302中生成的一个或多个度量提供给证实服务(度量反映在计算设备上加载的模块或组件(包括设备管理代理)以及计算设备的安全状态)。证实服务转而验证一个或多个度量。因此,证实服务还验证设备管理代理以及计算设备的附加引导模块(例如,引导系统110的模块)和计算设备的安全状态。引导计数器(如果其不作为一个或多个度量中的一个进行包括的话)也在动作302中被提供给证实服务。

证实服务可以以各种不同的方式验证所述一个或多个度量。在一个或多个实施例中,证实服务被预先配置或可以以其他方式访问一个或多个可接受的度量的记录。如果从设备管理代理接收到的一个或多个度量被包括在可接受度量的记录中,则计算设备被验证以用于由管理服务管理的企业或其他资源组中。然而,如果从设备管理代理接收到的一个或多个度量不包括在可接受度量的记录中,则计算设备不被验证用于由管理服务管理的企业或其他资源组中。例如,如果设备管理代理被篡改,则从设备管理代理接收到的一个或多个度量(其反映设备管理代理的度量)将不被包括在可接受度量的记录中,并且计算设备(具有被篡改的设备管理代理)不被验证用于由管理服务管理的企业或其他资源组中。

可替换地,证实服务可以以与通过可接受度量的记录不同的方式验证一个或多个度量。例如,可以将一个或多个规则或算法应用于所接收的一个或多个度量,以确定计算设备是否被验证或不被验证用于由管理服务管理的企业或其他资源组中。

在一个或多个实施例中,证实服务还记录一个或多个度量以及引导计数器。这允许比如图1的管理服务106之类的其他企业服务来验证计算设备的当前引导会话与以前被证实的设备的引导会话相同。例如,企业中的附加服务可以从计算设备获得当前引导计数器值,并且还从证实服务获得引导计数器值。如果两个引导计数器值相同,则附加服务确保计算设备的当前引导会话是被证实服务验证的引导会话。

附加地或可替换地,证实服务可以向计算设备返回证实状态。证实状态包括计算设备是否健康并且未受危害的指示(例如,计算设备是否被证实服务验证),并且可选地包括引导计数器值。证实状态还可以可选地包括,证实服务在确定计算设备是否被验证用于由管理服务管理的资源组中使用的一个或多个度量。设备管理代理维持证实状态的记录,并且可以根据需要向企业中的其他服务(例如,管理服务)提供证实状态,以向这样的其他服务证明计算设备是健康的并且未受危害。所记录的证实状态也可以可选地由计算设备上的其他程序使用。例如,在计算设备上运行的程序(例如,银行应用或访问敏感或机密数据的其他应用)可以访问证实状态,并验证计算设备是健康的并且未受危害,以便允许程序继续运行,以便使程序访问企业的服务等等。

证实状态可以以各种不同的方式加密或以其他方式保护。在一个或多个实施例中,使用企业的密钥(例如,对称密钥或公钥)来加密证实状态。企业中的证实服务和其他服务具有密钥的知识,可以轻易地解密证实状态。可替换地,使用设备管理代理的密钥(例如,对称密钥或公钥)来存储加密证实状态。设备管理代理可以轻易地解密证实状态,并根据需要向企业中的其他服务提供经解密的证实状态。还可以可选地使用证实服务的私钥对证实状态进行数字签名,以便允许企业中的其他服务验证证实状态自被证实服务进行数字签名以来未被更改。

附加地或替代地,设备管理代理可以使用各种公共和/或专有技术中的任何一种(例如,通过生成证实状态的密码学散列)来从证实状态导出密钥。然后,设备管理代理可以使用该证实状态导出的密钥对计算设备上的数据进行加密。然后,只有当计算设备仍具有相同的证实状态时,这些数据随后才可以被解密。该证实状态导出的密钥可用于跨计算设备的引导而保护数据(在证实状态不包括引导计数器的情况下),从而允许设备管理代理从证实服务获得证实状态,导出密钥和加密数据。当随后重新引导设备时,设备管理代理再次从证实服务获得证实状态,导出密钥,并且只有在重新引导之前和重新引导之后的证实状态相同时,才能对重新引导之前加密的数据进行解密。

设备管理代理可以在动作306中在各种不同的时间与证实服务通信,以便对设备管理代理进行企业验证。在一个或多个实施例中,设备管理代理在引导过程结束时(例如,在设备管理代理在动作304中作为硬化程序运行之后)与证实服务通信以便对设备管理代理进行企业验证。可替换地,设备管理代理可以在其他时间与证实服务通信以便对设备管理代理进行企业验证,比如响应于设备管理代理访问企业的资源的请求,响应于包括设备管理代理的计算设备耦合到企业的网络(例如,登录到有线或无线网络中),响应于管理服务指示证实被需要,响应于计算设备上的另一程序指示证实被需要,等等。

设备管理代理向管理服务注册(动作308)。向管理服务注册是指,设备管理代理向管理服务请求注册,并且管理服务确认计算设备是否被验证用于由管理服务管理的资源组中。可以基于从证实服务或从设备管理代理接收的在动作306中由证实服务执行的验证的指示来执行该确认。一旦向管理服务注册了,如下面更详细地讨论的,设备管理代理就可以访问管理服务所许可的企业的资源。尽管被图示为两个单独的动作306和308,但是可替换地,可以将证实服务和管理服务实现为单个服务,并且动作306的证实和动作308的注册可以作为同一动作的一部分来执行。

在一个或多个实施例中,在计算设备不被验证用于由管理服务管理的资源组中的情况下,管理服务采取各种补救动作中的一种或多种。一种这样的补救动作是管理服务不让计算设备注册。可以采取的另一补救动作是从由管理服务维持的经批准的设备列表(例如,如下文更详细地讨论的设备的白名单)中移除计算设备的标识。可以采取的另一补救动作是将命令或其他指示发送到计算设备(例如,计算设备上的设备管理代理或计算设备上的tpm)以至少删除tpm的私钥(并因此有效地使计算设备不可用于依赖于由tpm执行的加密或安全性的任何目的)。附加地或可替换地,可以采取其他补救动作,比如向证实服务提供计算设备未在管理服务中注册的指示。

一旦注册,设备管理代理还从管理服务接收并实现策略,并且向管理服务提供计算设备的状态的指示(动作310)。该策略标识出计算设备的各种不同的设置、配置或操作方式,以便计算设备访问企业的资源。设备管理代理还向管理服务提供计算设备的状态的指示。这些指示包括例如计算设备正在遵守特定策略的指示。

管理服务信任其从设备管理代理接收的关于计算设备的状态的指示。管理服务信任这些指示,原因在于计算设备已被安全地引导,并且设备管理代理已经被证实服务验证。

在一个或多个实施例中,设备管理代理接收按照加密的方式的(例如,使用设备管理代理的公钥加密的)和/或按照数字签名的方式的(例如,使用管理服务的私钥进行数字签名的)策略。

由设备管理代理接收的策略被存储在计算设备的策略存储库(例如,图1或图2的策略存储库116)中。策略以安全的方式存储,从而保护策略不被计算设备102上的恶意代码更改。可以使用各种不同技术中的任何一种来以安全的方式存储策略。在一个或多个实施例中,由设备管理代理使用计算设备(例如,tpm210)的安全处理器的公钥/私钥对中的公钥对策略进行加密。设备管理代理能够使用设备管理代理公钥/私钥对中的私钥来检索和解密策略,但恶意代码不具有私钥,因此不能解密策略。

从管理服务接收到的策略可选地也由管理服务进行数字签名。设备管理代理验证策略上的数字签名,并且只有在数字签名被验证时才将策略添加到策略存储库中。

可替换地,可以以不同的方式存储策略。例如,策略存储库可以以硬件实现,并且只能由设备管理代理访问。操作系统或硬件本身可以控制对策略存储库的写入访问,使得只有设备管理代理才能将策略写入策略存储库。因此,恶意代码不能访问或改变策略存储库中的策略。各种程序(包括设备管理代理)都可以从策略存储库读取策略,但策略可以由设备管理代理进行数字签名,从而允许检测到由恶意代码执行的对策略的任何改变或提供错误策略的尝试。

实现过程300的计算设备然后能够访问由管理服务许可的企业的资源(动作312)。管理服务可以基于在动作310中提供给管理服务的计算设备的状态的指示来许可或拒绝对各种资源的访问。例如,除非计算设备的状态的指示表示计算设备的存储设备被加密了,否则管理服务可以不允许计算设备访问特定文件或存储设备。管理服务也可以基于设备的当前引导计数器值来许可或拒绝对各种资源的访问。例如,只有当设备的引导计数器的当前值与在动作306中提供给证实服务的引导计数器值相同时,管理服务才可以允许计算设备访问特定文件或存储设备。

可以以各种不同的方式许可或拒绝对资源的访问。在一个或多个实施例中,管理服务作为企业的帐户登录管理器操作。管理服务可以通过允许计算设备登录到企业来许可访问,并且通过阻止计算设备登录到企业来拒绝访问。可替换地,管理服务维持访问资源所需的信息,比如密钥、资源标识符(例如统一资源标识符)等等。管理服务可以通过向计算设备提供这样的信息来许可访问,并且通过回绝向计算设备提供这样的信息来拒绝访问。

在一个或多个实施例中,计算设备具有分配给计算设备的相关联的认可密钥,使得可以将计算设备与其他计算设备区分开(例如,认可密钥对于计算设备是唯一的)。在一个或多个实施例中,该认可密钥是在制造计算设备(或至少度量系统)时分配给tpm(例如,图2的tpm210)的tpm认可密钥。tpm认可密钥被包括作为tpm的一部分,从而保护tpm认可密钥不被计算设备上的恶意代码修改。附加地,由可信实体(例如,被管理服务信任的第三方)进行数字签名并且证实计算设备的tpm认可密钥的证书被分配给tpm(例如,在计算设备或至少度量系统被制造时)。该证书可以由计算设备提供给管理服务,用于向管理系统证明,计算设备的确是其声称的计算设备。

在一个或多个实施例中,图1的证实服务104和管理服务106中的一个或两个维持经批准的设备列表(例如,设备的白名单)。例如通过计算设备的tpm认可密钥来标识计算设备。服务104和/或106可以被预先配置有经批准的设备列表,或者可替换地,可以从其他服务、设备或其他来源获得经批准的设备列表。在证实服务104维持经批准的设备列表的情况下,只有在计算设备在经批准的设备列表上(例如,如证实该计算设备的tpm认可密钥的证书所指示的)时,在动作306中,证实服务才验证计算设备用于由管理服务管理的企业或其他资源组中。在管理服务106维持经批准的设备列表的情况下,管理服务允许计算设备在动作312中仅在计算设备在经批准的设备列表上(例如,如证实该计算设备的tpm认可密钥的证书所指示的)时才访问由管理服务管理的企业的资源。

此外,tpm认可密钥可用于对由设备管理代理(例如,在动作310或312中)向管理服务提供的计算设备的状态的指示(或任何其他信息)进行数字签名。这允许管理服务验证,正在从管理服务期望从其接收指示或其他信息的计算设备接收指示或其他信息。因此,tpm认可密钥可用于标识计算设备,以及知道计算设备是否是健康的并且未受危害。

在一个或多个实施例中,在计算设备的硬件组件和tpm(例如,图2的tpm210)之间建立附加的信任。这些附加的硬件组件可以是例如照相机、麦克风、存储设备等。可以在引导计算设备之前(比如在计算设备的制造期间)建立该附加的信任。该附加的信任可以以不同的方式建立,比如通过向tpm提供与硬件组件相关联的值(例如,硬件组件的标识符)。这为管理服务(或企业的其他服务)提供了附加的信任级别,这是因为设备管理代理可以证实硬件组件被tpm信任,并因此证实硬件组件的设置(例如,关闭麦克风,关闭照相机等)实际上由硬件组件执行。设备管理代理可以可选地从硬件组件中获得与硬件组件相关联的值,并验证所获得的值是否与先前提供给tpm的值相同,以证实硬件组件被tpm信任。

因此,当访问企业的资源时,使用本文讨论的技术,计算设备可以被管理服务信任为安全的。如上所讨论的,计算设备被安全地引导,其中,组件作为引导系统的一部分被加载,并且包括设备管理代理的计算设备的安全信息由tpm度量。证实服务对tpm度量的验证确保了可信的设备管理代理正在计算设备上运行。可信的设备管理代理被管理服务信任,以便以安全的方式访问和存储从管理服务接收的策略。这允许管理服务信任,管理服务期望在计算设备上实施来访问由管理服务管理的企业资源的策略实际上正在计算设备上实施。因此,计算设备上的引导过程的安全性被有效地扩展到管理服务,从而允许管理服务在允许计算设备访问企业的资源之前确定所期望的设备管理代理是否正在运行,并且所期望的策略是否正在计算设备上实现。

尽管本文中参照特定模块讨论了特定功能性,但是应当注意,本文讨论的各个模块的功能性可以分为多个模块,和/或多个模块中的至少一些功能性可以组合成单个模块。附加地,特定模块在本文中被讨论为执行动作包括,该特定模块本身执行动作,或者可替换地,该特定模块调用或以其他方式访问执行该动作的(或与该特定模块结合地执行动作的)另一个组件或模块。因此,特定模块执行动作包括,该特定模块本身执行动作和/或由该特定模块调用或以其他方式访问的另一模块执行动作。

图4一般地在400处图示出了包括示例计算设备402的示例系统,示例计算设备402代表可以实现本文描述的各种技术的一个或多个系统和/或设备。计算设备402可以是例如服务提供商的服务器、与客户端(例如,客户端设备)相关联的设备、片上系统和/或任何其他合适的计算设备或计算系统。

如图所示的示例计算设备402包括彼此通信地耦合的处理系统404、一个或多个计算机可读介质406和一个或多个i/o接口408。虽然未示出,但是计算设备402还可以包括系统总线或者将各种组件彼此耦合的其他数据和命令传送系统。系统总线可以包括不同总线结构中的任何一个或组合,比如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用各种总线架构中的任何一种的处理器或局部总线。还考虑了各种其他示例,比如控制线和数据线。

处理系统404代表使用硬件执行一个或多个操作的功能性。因此,处理系统404被图示为包括可以被配置为处理器、功能块等的硬件元件410。这可以包括作为专用集成电路或使用一个或多个半导体形成的其他逻辑器件的硬件中的实现。硬件元件410不受形成其的材料或其中采用的处理机构的限制。例如,处理器可以包括(多个)半导体和/或晶体管(例如,电子集成电路(ic)))。在这种情境下,处理器可执行指令可以是电子可执行指令。

计算机可读介质406被图示为包括存储器/存储装置412。存储器/存储装置412表示与一个或多个计算机可读介质相关联的存储器/存储装置容量。存储器/存储装置412可以包括易失性介质(比如随机存取存储器(ram))和/或非易失性介质(比如只读存储器(rom)、闪速存储器、光盘、磁盘等)。存储器/存储装置412可以包括固定介质(例如,ram、rom、固定硬驱动器等)以及可移除介质(例如,闪速存储器、可移除硬驱动器、光盘等)。计算机可读介质406可以以下面进一步描述的各种其他方式配置。

一个或多个输入/输出接口408代表通过使用各种输入/输出设备来允许用户将命令和信息录入到计算设备402并且还允许将信息呈现给用户和/或其他组件或设备的功能性。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描器、触摸功能性(例如,被配置为检测物理触摸的电容或其他传感器)、照相机(例如,其可以采用可见或不可见的波长(比如红外频率)来检测不涉及作为手势的触摸的移动)、等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备402可以以下面进一步描述的各种方式进行配置,以支持用户交互。

计算设备402还包括引导系统414、度量系统416和设备管理代理418。引导系统414、度量系统416和设备管理代理418提供了本文讨论的各种功能性,包括如上所讨论的,生成和维持引导系统414的模块和设备管理代理418的度量,与证实服务和管理服务通信等。引导系统414、度量系统416和设备管理代理418可以分别实现图1和图2的引导系统110,度量系统12和设备管理代理114。

本文可以在软件、硬件元件或程序模块的一般情境中描述各种技术。一般地,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、组件,数据结构等。本文所使用的术语“模块”、“功能性”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,这意味着所述技术可以在具有各种处理器的各种计算平台上实现。

所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或跨某种形式的计算机可读介质传送。计算机可读介质可以包括可由计算设备402访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。

与单纯的信号传送、载波或信号本身相反,“计算机可读存储介质”是指,使得能够持续存储信息的介质和/或设备和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括以适合于存储比如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据之类的信息的方法或技术实现的硬件,比如易失性的和非易失性的、可移除的和不可移除的介质和/或存储设备。计算机可读存储介质的示例可以包括但不限于ram、rom、eeprom、闪速存储器或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光学存储装置、硬盘、磁盒、磁带、磁盘存储设备或其他磁存储设备,或适合于存储所期望的信息并可由计算机访问的其他存储设备、有形介质或制品。

“计算机可读信号介质”是指,被配置为比如经由网络将指令传送到计算设备402的硬件的信号承载介质。信号介质典型地可以在比如载波、数据信号或其他传输机制之类的经调制的数据信号中具体体现计算机可读指令、数据结构、程序模块或其他数据。信号介质还包括任何信息递送介质。术语“经调制的数据信号”是指,以在其中编码信息这样的方式设置或改变其特征中的一个或多个的信号。作为示例而非限制,通信介质包括比如有线网络或直接有线连接之类的有线介质以及比如声学、rf、红外和其他无线介质之类的无线介质。

如前所描述的,硬件元件410和计算机可读介质406代表以硬件形式实现的指令、模块、可编程设备逻辑和/或固定设备逻辑,在一些实施例中,其可以被采用来实现本文描述的技术的至少一些方面。硬件元件可以包括以下设备的组件:集成电路或片上系统、专用集成电路(asic)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)以及硅中的其他实现或其他硬件设备。在该情境下,硬件元件可以作为执行由硬件元件所具体体现的指令、模块和/或逻辑所定义的程序任务的处理设备以及用于存储用于执行的指令的硬件设备(例如,先前描述的计算机可读存储介质)来操作。

前述内容的组合也可以用于实现本文所描述的各种技术和模块。因此,可以将软件、硬件或程序模块和其他程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件410具体体现的一个或多个指令和/或逻辑。计算设备402可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,可以例如通过使用处理系统的计算机可读存储介质和/或硬件元件410,至少部分地在硬件上实现作为可由计算设备402执行为软件的模块的模块的实现。指令和/或功能可以是可由一个或多个制品(例如,一个或多个计算设备402和/或处理系统404)执行的/操作的,以实现本文描述的技术、模块和示例。

如图4中进一步所图示的,当在个人计算机(pc)、电视机设备和/或移动设备上运行应用时,示例系统400能够实现用于无缝用户体验的普遍存在的环境。服务和应用在所有三个环境中基本类似地运行,以便在利用应用、播放视频游戏、观看视频等的同时在从一个设备转换到下一个设备时,得到共同的用户体验。

在示例系统400中,通过中央计算设备将多个设备互连。中央计算设备可以是多个设备本地的,或者可以远离多个设备定位。在一个或多个实施例中,中央计算设备可以是通过网络、因特网或其他数据通信链路连接到多个设备的一个或多个服务器计算机的云。

在一个或多个实施例中,该互连架构使得能够跨多个设备递送功能性以向多个设备的用户提供公共和无缝的体验。多个设备中的每一个可以具有不同的物理要求和能力,并且中央计算设备使用平台来使得能够将针对设备定制并且对于所有设备而言又是共同的体验递送到设备。在一个或多个实施例中,创建目标设备类别,并且针对通用设备类别来定制体验。设备类别可以通过设备的物理特征、使用类型或其他共同特征来定义。

在各种实现中,计算设备402可以比如对于计算机420、移动装置422和电视机424用途采用各种不同的配置。这些配置中的每一个包括可能具有一般不同的构造和能力的设备,因此可以根据不同设备类别中的一个或多个来配置计算设备402。例如,计算设备402可以被实现为计算机420类设备,其包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。

计算设备402还可以被实现为移动装置422类设备,其包括移动设备,比如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等。计算设备402还可以被实现为电视机424类设备,其包括具有或连接至在休闲观看环境中的一般更大的屏幕的设备。这些设备包括电视机、机顶盒、游戏控制台等。

本文描述的技术可以被计算设备402的这些各种配置支持,并且不限于本文所描述的技术的具体示例。也可以通过使用分布式系统,比如通过如下所描述的平台428在“云”426上,全部或部分地实现该功能性。

云426包括和/或代表用于资源430的平台428。平台428抽象化云426的硬件(例如,服务器)和软件资源的底层功能性。资源430可以包括在远离计算设备402的服务器上执行计算机处理时可以利用的应用和/或数据。资源430还可以包括通过因特网和/或通过比如蜂窝或wi-fi网络之类的订户网络提供的服务。

平台428可以抽象化将计算设备402与其他计算设备相连的资源和功能。平台428还可以用于抽象化资源的规模以便针对所遇到的对于经由平台428实现的资源430的需求提供对应级别的规模。因此,在互连设备实施例中,本文描述的功能性的实现可以分布在整个系统400中。例如,该功能性可以部分地在计算设备402上实现,以及通过抽象云426的功能性的平台428来实现。

在本文的讨论中,描述了各种不同的实施例。应当意识并理解,本文描述的每个实施例可以单独使用或与本文所描述的一个或多个其他实施例相结合地使用。本文讨论的设备、方法等中的任何一个可以结合本文讨论的任何其他设备、方法等来使用。本文讨论的技术的另外的方面涉及以下实施例中的一个或多个。

一种在计算设备中实现的方法,所述方法包括:安全引导所述计算设备,安全引导包括,生成反映在所述计算设备上加载的模块或组件以及所述计算设备的安全状态的一个或多个度量;在计算设备上运行作为硬化程序的设备管理代理,所述硬化程序被保护而免于让恶意代码注入到程序中;通过网络与证实服务通信,以验证设备管理代理用于企业中;以及响应于证实服务验证设备管理代理用于企业中,由设备管理代理在计算设备上实现通过网络从管理服务接收的策略,该验证向管理服务确保了设备管理代理是安全的并且未受到危害。

作为以上描述的方法中的任何一种的可替换方案或附加方案,以下各项中的任何一项或组合:所述方法还包括访问管理服务所许可的企业的资源;所述方法还包括向所述管理服务提供正被所述计算设备遵守的一个或多个策略的指示,对所述企业的资源的访问由管理服务至少部分地基于哪些策略正在被计算设备遵守来许可;所述方法还包括向所述管理服务提供所述计算设备的可信平台模块认可密钥的指示,并且仅响应于所述计算设备的可信平台模块认可密钥被包括在管理服务的经批准的设备列表中,才被许可访问企业的资源;所述方法还包括:每当引导所述计算设备时,就递增作为单调计数器的引导计数器,向所述证实服务提供所述引导计数器的当前值,以及将所述引导计数器的当前值提供给所述管理服务,以便允许管理服务验证提供给证实服务的引导计数器的值与提供给管理服务的引导计数器的值相同;所述实现包括仅当所接收的策略由所述管理服务进行了数字签名时才由所述设备管理代理实现经由所述网络接收的策略;所述方法还包括将由所述管理服务进行了数字签名的所接收到的策略存储在所述计算设备的硬件策略存储库中;所述方法还包括所述设备管理代理对从所述管理服务接收的策略进行数字签名并将经数字签名的策略存储在所述计算设备的策略存储库中;所述方法还包括从所述证实服务接收所述计算设备的证实状态,所述证实状态包括所述计算设备是否被所述证实服务验证的指示以及所述一个或多个度量中的至少一个度量,以及向所述企业中的一个或多个附加服务提供所述证实状态以向所述一个或多个附加服务证明所述计算设备已经被所述证实服务验证用于所述企业中;所述方法还包括由所述设备管理代理从所述证实状态导出密钥,以及使用从证实状态导出的密钥对所述计算设备上的数据进行加密;所述一个或多个度量反映设备管理代理;所述方法还包括由所述设备管理代理获得与所述计算设备的硬件组件相关联的值,验证所获得的值与先前提供给所述计算设备的可信平台模块的值相同,以及响应于所获得的值与先前提供给可信平台模块的值相同,向管理服务证实硬件组件被可信平台模块信任;所述方法还包括向所述管理服务提供注册请求,以及响应于所述证实服务已验证所述设备管理代理用于所述企业中,接收向所述管理服务注册了计算设备的指示,响应于所述证实服务没有验证所述设备管理代理用于所述企业中,所述管理服务采取补救动作。

一种计算设备,包括:策略存储库;包括可信平台模块的度量系统;引导系统,其被配置为安全引导所述计算设备,安全引导包括生成反映在所述计算设备上加载的模块或组件以及所述计算设备的安全状态的一个或多个度量并将其提供给度量系统;以及设备管理代理,其被配置为在计算设备上作为硬化程序运行,所述硬化程序被保护而免于让恶意代码注入到程序中,经由网络与证实服务通信,以验证设备管理代理用于企业中,将经由网络从管理系统接收到的策略维持在策略存储库中,并且在计算设备上实现策略,该验证向管理服务确保了,设备管理代理是安全的并且未受到危害。

作为以上描述的计算设备中的任何一种的可替换方案或附加方案,以下各项中的任何一项或组合:策略存储库包括可由设备管理代理写入但在计算设备上运行的其他程序不能写入的硬件策略存储库;所述一个或多个度量反映设备管理代理;所述度量系统还被配置为每当引导所述计算设备时就递增作为单调计数器的引导计数器,所述设备管理代理还被配置为向所述证实服务提供所述引导计数器的当前值,以及向管理服务提供引导计数器的当前值,从而允许管理服务验证提供给证实服务的引导计数器的值与提供给管理服务的引导计数器的值相同。

一种计算设备,包括:一个或多个处理器;以及一个或多个计算机可读存储介质,其上存储有多个指令,所述多个指令在被所述一个或多个处理器执行时导致所述一个或多个处理器执行动作,包括:安全引导所述计算设备,安全引导包括生成反映在计算设备上加载的模块或组件以及计算设备的安全状态一个或多个度量;在计算设备上运行作为硬化程序的设备管理代理,所述硬化程序被保护而免于让恶意代码注入到程序中;经由网络与证实服务通信,以验证设备管理代理用于企业中;以及响应于证实服务验证所述设备管理代理用于所述企业中,由所述设备管理代理在所述计算设备上实现经由所述网络从所述管理服务接收的策略。

作为以上描述的计算设备中的任何一种的可替换方案或附加方案,以下各项中的任何一项或组合:所述动作还包括访问管理服务所许可的企业的资源;所述一个或多个度量还反映出所述计算设备被一个或多个儿童使用的指示,以及所述动作还包括向所述管理服务提供注册请求,以及响应于证实服务已经验证了设备管理代理用于企业中,接收向所述管理服务注册了计算设备的指示,管理服务防止计算设备访问被管理服务认为是令人反感的内容。

尽管已经以特定于结构特征和/或方法动作的语言描述了本主题,但是应当理解,所附权利要求中定义的主题不一定限于以上描述的特定特征或动作。相反,以上描述的特定特征和动作被公开为实现权利要求的示例形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1