保护操作系统配置值的制作方法

文档序号:6365628阅读:118来源:国知局
专利名称:保护操作系统配置值的制作方法
保护操作系统配置值
背景技术
经由各种网络,例如因特网,计算机之间变得愈加互连。虽然这种连接性允许用户访问各种不同的业务和数据,但是这种连接性没有摆脱它自身的问题。ー个这种问题就是这种连接性可以允许恶意程序在这些计算机上运行。这些恶意程序可以执行各种不希望的操作,例如发起对其他计算机的攻击、发送私有数据给其他用户的计算机、阻止用户能够使用他的或她的计算机等。当前仍然难以保护计算机免受这样的恶意程序。

发明内容
提供本发明内容而以简化形式对精选的观点进行介绍,在以下具体实施方式
中将进ー步描述这些观点。本发明内容没有打算标识所要求保护的主题的关键特征或必要特 征,也没有打算用来限制所要求保护的主题的范围。依据ー个或多个方面,在装置上的预操作系统环境中,在将操作系统加载并运行在所述装置上之前,获得识别至少ー个操作系统的配置设置的策略(policy)。阻止所述操作系统改变这个策略。将这个策略与由所述操作系统使用的配置值进行比较,并且如果所述配置值满足所述策略,则允许所述操作系统用所述配置值进行引导(boot)。然而,如果所述配置没有满足所述策略,则采取响应动作。依据ー个或多个方面,接收识别配置设置的策略的改变,为了在装置上执行操作系统而由所述操作系统的配置值满足所述配置设置。阻止所述操作系统本身改变这个策略。进行关于所述策略的改变是否被预操作系统环境信赖的实体批准的检查,并且只有当所述策略的改变被预操作系统环境批准时,才改变所述策略。


整个附图中,相同的标记用于引用相同的特征。图I图示了依据ー个或多个实施例的实现保护操作系统配置值的示例性装置。图2图示了依据ー个或多个实施例的示例性策略。图3是图示依据ー个或多个实施例的用于保护操作系统配置值的示例性过程的流程图。图4是图示依据ー个或多个实施例的用于改变装置中策略的示例性过程的流程图。图5图示了依据ー个或多个实施例的可以被配置为实现所述保护操作系统配置值的示例性计算装置。
具体实施例方式本文讨论了保护操作系统配置值。在引导装置的过程期间,由所述装置的ー个或多个操作系统的至少一部分使用的配置值的集合(以及可选地包括由所述装置的预操作系统环境的部件使用的ー个或多个配置值)对照所述装置的策略进行检查。如果所述配置值满足所述策略,则允许所述操作系统在所述装置上运行,但是如果所述配置值没有满足所述策略,则采取一个或多个适当的动作(例如,不运行所述操作系统、改变所述值等)。以防止由所述操作系统和在计算装置上运行的其他应用进行未授权修改的方式来存储所述策略。然而,ー个或多个策略发行者可以更新所述策略,允许所述策略随着时间而改变。本文參考对称密钥密码术、公开密钥密码术和公开/私有密钥对。尽管这种密钥密码术对于那些本领域技术人员来说是公知的,但是在此还是包括了这种密码术的简短概述,以助于读者理解。在公开密钥密码术中,实体(例如用户、硬件或软件部件、装置、域等)具有与它相关联的公开/私有密钥对。将公开密钥设置为公开可用的,但是所述实体对私有密钥进行保密。没有所述私有密钥,在计算上非常难以解密使用所述公开密钥加密的数据。因此,可以由任何实体使用所述公开密钥来加密数据,但是却只能由具有相应私有密钥的实体来解密数据。另外,可以通过使用所述数据和所述私有密钥来生成数据的数字签名。没有所述私有密钥,在计算上非常难以创建可使用所述公开密钥进行验证的签名。通过在所述公开密钥、所述签名和已被签名的数据上执行适当的数字签名验证算法,具有所述公开密钥的任何实体都可以使用所述公开密钥验证所述数字签名。
另ー方面,在对称密钥密码术中,由两个实体知晓共享密钥(也被称为对称密钥),并由这两个实体对其保密。典型地,具有所述共享密钥的任何实体都能够解密用共享密钥加密的数据。没有所述共享密钥,在计算上非常难以解密用所述共享密钥加密的数据。因此,如果两个实体都知晓所述共享密钥,则每个实体都可以加密可由另ー个实体解密的数据,但是如果其他的实体不知晓所述共享密钥,其他的实体就不能解密所述数据。同样,具有共享密钥的实体可以加密可由相同实体解密的数据,但是,如果其他的实体不知晓所述共享密钥,其他的实体不能解密该数据。另外,可以基于对称密钥密码术生成数字签名,例如使用密钥散列消息认证码机制。具有所述共享密钥的任何实体都可以生成和验证所述数字签名。例如,受信赖的第三方可以基于特定实体的身份生成对称密钥,并且然后可以为所述特定实体生成数字签名并且验证所述数字签名(例如,通过使用所述对称密钥加密或解密的数据)。图I图示了依据ー个或多个实施例的实现保护操作系统配置值的示例性装置100。装置100包括固件102、操作系统加载器(loader)104和操作系统内核106,上述每ー个都是允许装置100执行各种操作的一个或多个部件或模块。这些部件或模块包括典型地存储在非易失性内存或存储装置(例如,闪速存储器、只读存储器(ROM)、磁盘、光盘、经由网络访问的远程装置或存储器等)中的指令和/或数据。将这些部件或模块从所述非易失性内存或存储装置加载到ー个或多个易失性存储器(例如,随机存取存储器(RAM)),从中可以由一个或多个处理器重新获得并且执行这些部件或模块。当装置100通电或重置时,引导装置100。装置100的引导指的是装置100的开始操作,典型地,加载并且执行装置100的操作系统。典型地,装置100的引导包括至少两个阶段。在第一阶段中,在装置100上加载并且运行预操作系统环境的部件。在所述预操作系统环境中,运行各种部件或模块而执行包括引导所述操作系统的各种操作。在第二阶段,在装置100上加载并且运行所述操作系统环境的部件。在所述操作系统环境中,所述操作系统正在装置100上运行。部件的加载涉及将所述部件复制到易失性(或者另选地,非易失性)存储器,并且可选地对其他部件或数据存储执行另外的配置。部件的执行涉及通过装置100的处理器或控制器运行(执行)所述部件的指令。在引导装置100之后,可以通过所述操作系统在装置100上运行各种其他程序。装置100可以是各种不同类型的实际装置。例如,装置100可以是台式计算机、膝上型计算机或上网本计算机、笔记本或平板计算机、移动站、娱乐设备、通信地耦合到显示装置上的机顶盒、电视机、蜂窝或其他无线电话,游戏控制台,汽车计算机等。装置100还可以是虚拟装置,例如在实际装置上运行的虚拟机。可以在各种不同类型的实际装置的任意一个上运行虚拟机。
在引导过程期间,由装置100加载并且执行固件102。固件102存储在装置100的非易失性存储器中。固件102可以存储在只读存储器中,或者备选地存储在可写入的非易失性存储器(例如,闪速存储器)中。在固件102被存储在可写入的非易失性存储器中的实施例中,典型地,需要注意以确保不会篡改这种固件102 (并且因此,不会被恶意程序所改变)。例如,可以通过验证存储在可写入的非易失性存储器中的固件102上的签名、将固件102存储在仅能访问固件102的受保护的存储器中、使用各种传统受信赖的引导或安全引导技术等来加以注意。固件102开始操作系统加载器104的执行。典型地,在执行前,由固件102加载并且验证操作系统加载器104。可以以不同方式验证操作系统加载器104,例如,通过验证操作系统加载器104的数字签名(其由固件102被配置(例如,编程)为信赖的实体生成)。操作系统加载器104加载并且执行操作系统内核106。典型地,在执行之前,由操作系统加载器104加载并且验证操作系统内核106。可以以不同方式验证操作系统内核106,例如,通过验证操作系统内核106的数字签名(其由将操作系统加载器104配置(例如,编程)为信赖的实体生成)。然后,操作系统内核106可以着手于加载并且执行各种不同的操作系统部件和/或用户方式部件。可以响应于执行这种部件的用户请求或者响应于来自另ー个部件或模块的请求而执行这些操作系统部件和用户方式部件。操作系统内核106获得各种操作系统配置值112并且根据各种操作系统配置值112操作。尽管图示为可由操作系统内核106进行访问,但是还可以由操作系统加载器104和/或装置100的其他部件或模块来访问操作系统配置值112。操作系统配置值112可以是用于确定操作系统内核106 (和/或操作系统加载器104)如何操作、将要加载和执行操作系统内核106 (和/或操作系统加载器104)的什么部件、它们的组合等的各种不同信息的任意ー个。例如,操作系统配置值112可以是操作系统内核106(和/或操作系统加载器104)是否允许在装置100上执行不可信赖程序或部件、或在装置100上运行程序或部件之前,操作系统内核106 (和/或操作系统加载器104)是否认证所述程序或部件的指示。作为另ー个示例,操作系统配置值112可以是反恶意软件应用(或特定的反恶意软件应用)是否要在装置100上运行的指示。作为另ー个示例,操作系统配置值112可以是用于管理运行在装置100上的虚拟机的虚拟机管理器的配置值或设置的指示。作为又ー个示例,操作系统配置值112可以是要使用的特定处理器或处理器内核设置(例如,将被标记为不可执行的存储器区域)的指示。在一个或多个实施例中,将固件102和操作系统加载器104实现为预执行环境(也被称为预引导环境或预操作系统环境)的一部分,其涉及在结束引导所述操作系统以及运行所述操作系统之前运行在装置100上的环境。在这样的实施例中,固件102和操作系统加载器104可以存储在装置100的部件上(例如,存储在只读存储器(ROM)或闪速存储器中),例如在装置100的网络接ロ卡上。另选地,在所述预执行环境期间,可以从另ー个装置或业务获得固件102和操作系统加载器104。例如,固件102和操作系统加载器104被包括作为从另ー个装置或业务向装置100提供的引导图像的一部分。可以以各种不同方式实现所述预执行环境,并且所述预执行环境可以以各种不同的传统技术作为基础。例如,可以依据预引导执行环境(PXE)标准版本2. O或其他版本实现所述预执行环境。作为另ー个示例,可以依据统ー的可扩展固件接ロ(UEFI)标准版本2. 3或其他版本实现所述预执行环境。作为又ー个示例,可以使用各种不同的个人计算机基本输入/输出系统(BIOS)版本实现所述预执行环境。在所述引导过程期间,操作系统加载器104获得策略记录114,其是装置100将遵照的ー个或多个策略的记录。策略的这个记录包括操作系统配置值112将满足的配置设置 或值。操作系统加载器104将策略记录114中的ー个或多个策略与操作系统配置值112进行比较,并且,如果操作系统配置值112满足策略记录114中的ー个或多个策略继续开始操作系统内核106部件的执行。然而,如果ー个或多个操作系统配置值112没有满足策略记录114中的策略,则采取适当的响应动作。可以采取各种不同的响应动作,例如不加载操作系统内核106、改变操作系统配置值112等。以下将更加详细地讨论这些响应动作。因此,操作系统加载器104保护了操作系统配置值112,识别出恶意程序也许已经改变操作系统配置值112的情況。在一个或多个实施例中,策略记录114中的ー个或多个策略还包括所述装置预操作系统环境的一个或多个部件将满足的配置设置或值。这些将由所述预操作系统环境满足的配置设置或值可以是所述预操作系统环境将如何操作、将加载和执行所述预操作系统环境的什么部件、它们的组合等的各种不同指示的任意ー个。这些配置设置或值被包括作为操作系统配置值112的一部分,或者另选地,这些配置设置或值可以是其他设置或值。例如,这些配置设置或值可以指定仅将加载和执行特定的操作系统。尽管图I中图示了单个操作系统内核106,但是应当注意到,另选地,可以在装置100上加载并执行多个不同操作系统内核106。这些不同的操作系统内核的每ー个都可以具有它自己的操作系统配置值112和它自己的策略记录114(或它自己的位于策略记录114内的策略),并且操作系统加载器104将适当的ー个或多个策略与正被引导的操作系统内核106的适当的操作系统配置值进行比较。另选地,这些不同的操作系统内核的两个或更多个可以共享操作系统配置值112和/或策略记录114 (和/或位于策略记录114内的策略)的至少一部分。图2图示了依据ー个或多个实施例的示例性策略200。例如,策略200可以被包括作为图I的策略记录114中的策略。策略200包括策略标识符202、策略祖先列表(ancestorIist )204和ー个或多个配置值和/或设置206。通过对策略标识符202、策略祖先列表204和配置值/设置206的ー个或多个进行数字签名还生成策略200上的数字签名208。策略标识符202识别策略200,允许不同的策略彼此区分。例如,策略标识符202可以是分配给策略200的全局唯一 ID (⑶ID)。策略祖先列表204是策略200替换的零个或多个其他策略的列表。策略祖先列表204便于阻止某些类型的攻击,如以下将更加详细地讨论的。配置值和/或设置206包括所述操作系统配置值(例如图I的值112)将满足的值。配置值和/或设置206还可以包括如果所述操作系统配置值没有满足策略200中的所述配置值的ー个或多个而采取的响应动作。可选地,可以通过操作系统加载器部件设置配置值和/或设置206的ー个或多个,如以下将更加详细地讨论的。配置值和/或设置206还可以包括对ー个或多个其他策略的标识符的引用。这些ー个或多个其他策略中的配置值和/或设置被包括作为策略200的一部分。因此,策略200可以有效地合并或者包括一个或多个其他策略。配置值和/或设置206还可以包括一个或多个受信赖的策略发行者的标识符。因此,可以在策略200中识别出允许往策略记录(例如,图I的策略记录114)増加策略的新的策略发行者。
返回图I,操作系统加载器104检查操作系统配置值112是否满足策略记录114中的ー个或多个策略。策略记录114可以包括单个策略,如以下更加详细讨论的,其可以由ー个或多个不同的策略发行者进行改变。另选地,策略记录114可以包括多个策略,其每ー个都可以由ー个或多个策略发行者进行改变。因此,例如,不同的策略发行者可以提供不同的策略(它们随后可以改变)以包括在策略记录114中。可以以各种不同方式在所述策略中识别所述配置值。在一个或多个实施例中,策略识别名值对(name-value pair)中的值,所述名值对包括操作系统配置值的名(或其他标识符)和所述操作系统配置值为了满足所述策略而具有的一个或多个值。在其他实施例中,将值以相应的操作系统配置值所固有的次序关系或其他结构包括于策略中。可以以不同方式执行操作系统配置值112是否满足策略记录114中的ー个或多个策略的确定。在一个或多个实施例中,将数学运算符用来确定操作系统配置值是否满足策略。可以使用各种不同的数学运算符,例如等于、大于、小于等。在其他实施例中,将其他运算符或逻辑式用来确定操作系统配置值是否满足策略,例如,所述操作系统配置值是否被包括作为所述策略中的值的集合之一。在将多个策略包括于策略记录114的情形中,确定操作系统配置值112是否满足策略记录114中的策略是确定操作系统配置值112是否满足策略记录114中的多个策略的每ー个。因此,可以把所述多个策略看作是组合的,以为了确定操作系统配置值112是否满足策略记录114中的策略。如果操作系统配置值112满足策略记录114,则操作系统加载器104继续开始操作系统内核106的执行。然而,如果ー个或多个操作系统配置值112没有满足策略记录114,则响应于ー个或多个操作系统配置值112没有满足策略记录114而采取适当的动作。可以为不同的操作系统配置值采取不同的响应动作,或者可以为多个操作系统配置值采取相同的响应动作。这些响应动作可以包括停止所述引导过程的动作,以便不在装置100上加载和运行所述操作系统,以及允许所述引导过程继续的动作,以便在装置100上加载和运行所述操作系统。在一个或多个实施例中,把将要采取的响应动作包括于策略记录114中。策略记录114中的每个策略都可以包括如果没有满足所述策略的至少一部分(例如,特定的操作系统配置值112没有满足所述策略)则所要采取的响应动作的指示(例如,作为图2的配置值/设置206的一部分)。在其他实施例中,把将要采取的响应动作包括于(例如,编程于或设置为配置值)操作系统加载器104中,或通过操作系统加载器104获得所述将要采取的响应动作。所述响应动作可以是停止所述引导过程-操作系统加载器104不开始操作系统内核106的执行,从而不在装置100上加载和运行所述操作系统。另选地,所述响应动作可以是忽视没有满足所述策略的操作系统配置值112,并替代地使用另ー个值(例如,包括在所述策略中的)。另选地,所述响应动作可以是用来自所述策略(或由其识别出)的值来重写操作系统配置值112,并且允许所述引导过程继续。另选地,所述响应动作可以是使用操作系统配置值112并且允许所述引导过程继续,但是汇报ー个事件,例如记录,或发送(例如,到另ー个部件,装置或业务)操作系统配置值112没有满足所述策略的通知(所述特定操作系统配置值和/或策略的指示可以包括于所述通知中)。
另选地,所述响应动作可以是提示装置100的用户(例如,接收用户批准以继续进行所述引导过程)。例如,这个提示可以包括请求所述用户批准当前的操作系统配置值的提示。这个提示还可以包括为了满足所述策略,所述配置值应该是什么的指示。然后,所述用户可以提供各种不同的输入来批准(或不批准)利用当前的操作系统配置值继续,例如按压按钮或键、触摸屏幕特定部分、提供可听得见的输入、提供操作系统加载器104信赖的(或可以由其验证的)安全令牌等。操作系统加载器104务必验证所述输入是接收自装置100的用户(例如,接收自装置100的键盘、触摸屏、麦克风等),而不是远程装置(例如,验证所述用户输入接收自键的按压或本地麦克风,而不是从远程装置接收的请求)。因此,在这样的情形中,只有当用户出现于装置100处并且用户批准继续所述引导过程时,才可以继续所述引导过程-装置100的恶意装置或恶意部件无法批准继续所述引导过程。以安全方式保存策略记录114,在这种安全方式中,操作系统加载器104可以改变策略记录114,但是阻止在操作系统加载器104之后执行的部件(在特定的操作系统内核106以及其他操作系统部件和/或用户方式部件)改变策略记录114。将策略记录114图示为由虚线116包围以反映出它的安全。可以以这个安全方式的各种不同方式保存策略记录114。在一个或多个实施例中,将策略记录114存储在可写入的非易失性存储器中,例如非易失性随机存取存储器(NVRAM)。仅在一定条件下和/或在一定时间可以访问所述可写入的NVRAM。在一个或多个实施例中,经由可信赖平台模块(TPM)访问所述可写入的NVRAM。可以从俄勒冈州的比佛顿(Beaverton)的可信赖计算机组中获得关于TPM的附加信息。所述TPM允许所述可写入的NVRAM的读取和写入,直到某一时间点或某一事件发生,在此之后,所述TPM允许读取所述可写入的NVRAM而不允许写入。例如,这个某一时间点或事件可以是来自部件的关闭或锁定所述可写入的NVRAM的请求。因此,操作系统加载器104可以在所述可写入的NVRAM中进行策略记录114的改变,并且然后锁定所述可写入的NVRAM。因此,操作系统加载器104可以阻止恶意程序篡改策略记录114,这是因为锁定了所述可写入的NVRAM。所述可写入的NVRAM不会被解锁,直到再次引导装置100。下一次引导装置100时解锁所述可写入的NVRAM,但是在恶意程序将能执行并且向所述可写入的NVRAM写入之前,操作系统加载器104再次锁定所述可写入的NVRAM。同样,可以实现其他类型的存储装置(例如,磁盘驱动器),以便仅在一定条件和/或在一定时间访问。另选地,可以以使用其他技术的安全方式保存策略记录114,例如通过仅由受保护接ロ(例如,应用编程接ロ(API))可以访问策略记录114,只有当由受信赖的实体对所述改变进行签名时,受保护接口才允许策略记录114的改变。这种受信赖的实体是受操作系统加载器104信赖的实体(例如,由操作系统加载器104认为是可值得信赖的实体,并且操作系统加载器104具有它的公开密钥)。例如,可以将策略记录114存储为UEFI认证变量,只有当由受信赖的实体对所述改变进行签名时,才可以改变所述UEFI认证变量。将任何请求的策略记录114的改变验证为由受信赖的实体进行签名,并且如果是由受信赖的实体进行签名,则进行所请求的改变,并且如果没有被受信赖的实体签名,则不进行所请求的改变。作为另ー个示例,在将装置100实现为虚拟机的情形中,可以通过管理装置上的一个或多个虚拟机操作的虚拟机管理器以安全的方式保存策略记录114。所述虚拟机管理器可以允许操作系统加载器104,而不是其他部件,改变策略记录114中的策略。策略记录114的改变包括往策略记录114增加策略,从策略记录114移除策略,和/或用新的策略替换策略记录114中的策略。在一个或多个实施例中,通过操作系统加载器104执行策略记录114的改变,如果这种改变接收自受信赖的策略发行者(例如,这些改 变被操作系统加载器104信赖的策略发行者实体数字签名)。可以以不同方式将改变策略记录114中的策略的请求提供给操作系统加载器104。在一个或多个实施例中,操作系统内核106或在装置100上运行的另ー个部件在持久性位置中存储所述策略的改变,在装置100的下次引导时,操作系统加载器104可以访问所述持久性位置。在装置100下次引导时,操作系统加载器104获得所述改变,并且如果所述改变是适当的则实施所述改变。操作系统内核106或在装置100上运行的其他部件还可以存储针对特定类型改变的请求以及这种改变(例如,特定策略将被移除或替换另ー个策略的指示)。另选地,针对特定类型改变的请求可以是固有的(例如,操作系统加载器104将持久性位置中存在的存储的策略视为往策略记录114增加策略的请求)。响应于移除策略的请求(来自策略发行者),操作系统加载器104可以从策略记录114移除该策略。操作系统加载器104验证所述请求是否来自作为受信赖的实体的策略发行者,如果所述请求来自作为受信赖的实体的策略发行者,则移除所述策略,并且如果所述请求不是来自作为受信赖的实体的策略发行者,则不移除所述策略。类似地,响应于増加所述策略的请求(来自策略发行者),操作系统加载器104可以往策略记录114増加新的策略。操作系统加载器104验证所述新的策略(以及,可选地,所述请求)是否来自作为受信赖的实体的策略发行者,并且如果所述新的策略(以及可选地,所述请求)来自作为受信赖的实体的策略发行者,则增加所述新的策略,并且如果所述新的策略(和/或可选地,所述请求)不是来自作为受信赖的实体的策略发行者,则不增加所述新的策略。另外,操作系统加载器104可以用新的策略(也被称为策略的新的版本)替换策略记录114中的策略(也被称为策略的当前版本)。当接收到新的策略时,操作系统加载器104验证所述新的策略(并且可选地,所述请求)是否来自作为受信赖的实体的策略发行者。如果所述新的策略(和/或可选地,所述请求)不是来自作为受信赖的实体的策略发行者,则操作系统加载器104不会用所述策略的新的版本替换所述策略的当前版本。然而,如果所述新的策略(并且可选地,所述请求)来自作为受信赖的实体的策略发行者,则操作系统加载器104检查所述策略的新的版本是否真正是所述策略当前版本的更新的版本。操作系统加载器104可以通过检查所述策略的当前版本是否包括在所述策略新的版本的祖先列表中来检查所述策略的新的版本是否真正是所述策略当前版本的更新的版本。所述策略的新的版本包括策略祖先列表,所述策略祖先列表识别由相同策略发行者发布的、由所述策略的新的版本替换的零个或多个在前的策略。所述策略祖先列表可以通过它们的策略标识符(例如,GUID)识别在前的策略。如果所述策略的新的版本来自作为受信赖的实体的策略发行者,并且所述策略的当前版本被包括在所述策略的新的版本的策略祖先列表中,则操作系统加载器104用所述策略的新的版本替换所述策略的当前版本。否则,操作系统加载器104不会用所述策略的新的版本替换所述策略的当前版本。应当注意到,所述策略祖先列表的使用便于阻止恶意程序或用户的回退(rollback)或重放攻击。例如,恶意程序或用户可能试图用策略的较老版本(例如,其包括过期的安全相关的值或设置,所述值或设置将允许恶意程序或用户获得对装置100的部件的不适当的访问)替换策略的当前版本(例如,包括新的安全相关的值或设置)。通过只有当策略的当前版本被包括在所述策略的新的版本的策略祖先列表中时才用新的策略替换所述策略的当前版本,操作系统加载器104确保所述策略的当前版本不会被所述策略的较老版本替换。虽然作为受信赖的实体的策略发行者使得所述策略的较老版本可获得,但是所述策略的较老版本不会具有包括所述策略当前版本的祖先列表,并且因此操作系统加载器104将不会用策略的较老版本替换策略的当前版本。另外,在一个或多个实施例中,只有当由预操作系统环境信赖(例如,由操作系统加载器104和/或固件102信赖)的实体(例如装置100的用户或其他受信赖的实体)批准改变时,才由操作系统加载器104执行策略记录114的改变。当所述实体是装置100的用户时,操作系统加载器104提示装置100的用户批准所述改变,例如通过在装置100 (或耦合到装置100)的屏幕上显示可视提示、在装置100 (或耦合到装置100)的扬声器上播放可听得见的提示等。所述用户可以通过提供各种不同的输入来批准所述策略的改变,例如按压按钮或键、触摸屏幕的特定部分、提供可听得见的输入等。操作系统加载器104负责验证所述输入是接收自装置100的用户(例如,接收自装置100的键盘、触摸屏、麦克风等),而不是远程装置(例如,验证所述用户输入接收自键的按压或本地麦克风,而不是从远程装置接收的请求)。因此,在这种情形中,只有当用户存在于装置100处并且用户批准所述改变吋,才可以执行策略记录114的改变-装置100的恶意装置或恶意部件无法批准这样的改变。当所述实体是由所述预操作系统环境信赖的另一个实体(而非用户)时,通过所述实体对策略记录114的改变进行数字签名。操作系统加载器104验证所述数字签名,并且只有当所述数字签名被验证为来自所述预操作系统环境信赖(例如,操作系统加载器104信赖)的实体时,才执行策略记录114的改变。如果不验证所述数字签名,则不进行策略记录114的改变。在一个或多个实施例中,策略记录114中的策略具有关联的时间戳(例如,日期和时间)。与策略相关联的时间戳可以被包括作为所述策略的一部分,或者另选地,可以分别保存。例如,操作系统加载器104可以保存策略标识符和时间戳的単独记录,并且以安全方式保存这个记录(例如,以各种不同安全方式,其与以上关于以安全方式保存策略记录114中的策略的那些讨论类似)。 操作系统加载器104可以在确定是否改变策略记录114(例如,在确定所述策略的新的版本是否真正是所述策略当前版本的更新的版本)中使用这些时间戳。策略发行者可能打算用策略的新的版本替换策略的ー个版本,对于所述策略的两个版本使用相同的策略标识符,但是使用不同的时间戳。操作系统加载器104检查策略的新的版本(并且可选地,改变策略的请求)是否来自作为受信赖的实体的策略发行者,并且检查策略的新的版本是否比策略的当前版本具有更近的时间戳。如果策略的新的版本来自作为受信赖的实体的策略发行者,并且策略的新的版本比所述策略的当前版本具有更近的时间戳,则操作系统加载器104用策略的新的版本替换策略的当前版本。否则,操作系统加载器104不会用策略的新的版本替换策略的当前版本。因为策略的当前版本和策略的新的版本具有相同的策略标识符,所以确定是否用策略的新的版本替换策略的当前版本是根据各个策略版本的时间戳,而不是策略的新的版本的祖先列表。 同类似地,策略记录114中的策略可以具有由所述策略发行者分配的关联的版本号。对于策略的每个新的版本递增策略的版本号(或在集合中选择下ー个版本号)。可以与时间戳类似地使用版本号,但是它们只是号(和/或其他特征),而不是时间戳。另选地,操作系统加载器104在确定是否改变策略记录114时无需使用时间戳和/或版本号。在这种情形中,如果策略发行者打算用策略的新的版本替换策略的版本,则策略发行者为所述策略的两个版本使用不同的策略标识符,并且将待替换的策略版本的策略标识符包括在所述策略的新的版本的祖先列表中。在一个或多个实施例中,策略记录114的改变还包括由操作系统加载器104在引导过程期间写入的值。对于策略中的特定配置设置,操作系统加载器104在所述引导过程期间捕获装置100中的一个或多个当前值或设置。将这些捕获的值或设置存储为策略的一部分(或关联到所述策略),并且视为装置100后续引导时将满足的策略的一部分。相应地,在装置100的后续引导时,操作系统加载器104验证操作系统配置值112是否满足这些捕获的设置或值。可以以不同方式识别出在引导过程期间要捕获哪些设置的当前值或设置。例如,策略可以包括设置,指示在所述引导过程期间由操作系统加载器104捕获且存储的特定值。作为另ー个示例,可以用在所述引导过程期间由操作系统加载器104捕获且存储的哪些特定值的指示来配置(或编程)操作系统加载器104,或者操作系统加载器104可以获得所述指示。作为另ー个示例,操作系统加载器104可以检测装置100的安全性何时变得更稳固或得到改进(例如,何时安装反恶意软件程序,何时安装隔火墙程序等),并且可以捕获和存储与更稳固的或得到改进的安全性相关联的值或设置(例如,捕获和存储反恶意软件程序的指示)。由于可以多次引导装置100,可以以不同方式识别出这些多个引导过程的哪ー个是在其持续时间内要捕获并存储值的那个引导过程。可以在装置100第一次被引导期间捕获和存储这些值,而不需要该值已经被捕获和存储(或者如果找不到任何值已经被捕获和存储)。另选地,可以用在装置100的哪次引导时捕获和存储所述值的指示来配置(例如,编程)操作系统加载器104,或者操作系统加载器104可以获得所述指示。另选地,策略记录114中的策略可以包括要在装置100的哪次引导时捕获和存储所述值的指示。另选地,可以接收用户输入,所述用户输入指示操作系统加载器104捕获和存储所述值(例如,在当前引导过程期间或在装置100的下次引导时)。可以以不同方式提供所述用户输入,例如通过所述用户按压按钮或键、触摸屏幕的特定部分、提供可听得见的输入等。操作系统加载器104负责验证所述输入是接收自装置100的用户而不是远程装置(例如,验证所述用户输入接收自键的按压或本地麦克风,而不是从远程装置接收的请求)。因此,在这种情形中,只有当用户存在于装置100处并且用户批准这种捕获和存储时,才可以执行捕获和存储所述值的请求-装置100的恶意装置或恶意部件无法批准这种值的捕获和存储。图3是图示依据ー个或多个实施例的用于保护操作系统配置值的示例性过程300的流程图。由装置(例如图I的装置100)执行过程300,并且可以以软件、固件、硬件或它们的组合来实现过程300。在将操作系统运行在装置上之前,将过程300作为所述装置上的预操作系统环境的一部分而执行。将过程300表示为动作的集合,并且不局限于所示的执行各种动作的操作的次序。过程300是用于保护操作系统配置值的示例性过程;在本文中包括參照不同附图对保护操作系统配置值的另外的讨论。在过程300中,获得识别操作系统的配置设置和/或值的策略(动作302)。可以由 操作系统加载器改变所述策略,但是如上所讨论的,所述操作系统被阻止改变所述策略。将策略与由操作系统使用的配置值进行比较(动作304),并且进行关于由所述操作系统使用的所述配置值是否满足所述策略的检查(动作306)。如上所讨论的,可以以各种不同方式确定由所述操作系统使用的配置值是否满足所述策略。如果配置值满足所述策略,则允许所述操作系统用这些配置值进行引导(动作308)。然而,如果所述配置值没有满足所述策略,则采取响应动作(动作310)。如上所讨论的,可以采取各种不同的响应动作。图4是图示依据ー个或多个实施例的用于改变装置中的策略的示例性过程400的流程图。由装置(例如图I的装置100)执行过程400,并且可以以软件、固件、硬件或它们的组合来实现过程400。在将操作系统运行在所述装置上之前,将过程400作为所述装置上的预操作系统环境的一部分而执行。将过程400表示为动作的集合,并且不局限于所示的执行各种动作的操作的次序。过程400是用于改变装置中的策略的示例性过程;在本文中包括參照不同附图对装置中改变策略的另外的讨论。在过程400中,接收识别操作系统的配置设置和/或值的策略的改变,为了执行或运行所述操作系统而将由所述操作系统的配置值满足所述操作系统的配置设置和/或值(动作402)。如上所讨论的,阻止所述操作系统改变所述策略。进行关于所述策略的改变是否被受信赖的实体批准的检查(动作404)。如上所讨论的,这种受信赖的实体是所述预操作系统环境(例如,操作系统加载器)信赖的实体,并且可以通过提示所述用户批准所述改变、或者验证所述改变是否被受信赖的实体进行数字签名来进行这个检查。如果改变未被受信赖的实体批准,则不改变所述策略。然而,如果改变被受信赖的实体批准,则依据在动作402接收的所述改变来改变所述策略(动作406)。如上所讨论的,除了受信赖的实体的批准之外,在改变所述策略之前,还可以执行各种其他的验证或检查,例如检查时间戳、祖先列表等。本文讨论的保护操作系统配置值技术支持各种使用场景。例如,操作系统配置值和策略可以指示来自多个制造商或开发者之一的反恶意软件程序将运行在装置上,并且将不会在所述装置上加载和运行所述操作系统,除非这种反恶意软件程序正在所述装置上运行。如果恶意程序试图修改操作系统配置值以指示为了加载和运行所述操作系统而没有必要运行反恶意软件程序,则下次引导所述装置时,操作系统加载器部件将检测到所述操作系统配置值没有满足所述策略,并且因此在没有所述反恶意软件程序的情况下就不加载和运行所述操作系统。作为另ー个示例,可以从制造商或经销商用默认的操作系统策略装运(ship)装置。所述装置的购买方可能期望在企业环境中使用所述装置(例如,作为公司网络或家庭网络的一部分),并且具有他或她期望代替所述默认操作系统策略而被使用的企业策略。与所述默认操作系统策略相比,这个企业策略可以具有不同的安全相关的设置等,并且所述企业策略具有包括所述默认操作系统策略标识符的祖先列表。企业环境的管理员可以是受信赖的实体,并且在所述企业策略上生成提供给所述操作系统加载器的数字签名。由于由受信赖的实体对所述企业策略进行签名,并且在它的祖先列表上识别所述默认操作系统,所以所述企业策略替换策略记录中的所述默认操作系统策略。然而,随后的默认操作系统策略不会意外地替换所述企业策略,因为所述随后的默认操作系统策略不能在它祖先列表上识别所述企业策略。
图5图示了依据ー个或多个实施例的可以被配置为实现所述保护操作系统配置值的示例性计算装置500。例如,计算装置500可以是图I的装置100,或者运行实现该装置100的虚拟机。计算装置500包括一个或多个处理器或处理单元502、可以包括一个或多个内存和/或存储部件506的一个或多个计算机可读介质504、一个或多个输入/输出(I/O)装置508、以及允许各种部件和装置彼此间通信的总线510。计算机可读介质504和/或ー个或多个I/O装置508可以被包括作为计算装置500的一部分,或者可选地可以耦合到计算装置500。总线510表示若干类型总线结构的ー个或多个,包括使用各种不同总线体系结构的存储器总线或存储器控制器、外围总线、加速图形端ロ、处理器或本地总线等。总线510可以包括有线和/或无线总线。内存/存储部件506表示一个或多个计算机存储介质。部件506可以包括易失性介质(例如,随机存取存储器(RAM))和/或非易失性介质(例如只读存储器(ROM)、闪速存储器、光盘、磁盘等)。部件506可以包括固定介质(例如,RAM、ROM、固定硬盘等)以及可拆卸介质(例如,闪速存储器驱动器、可拆卸硬盘驱动器、光盘等)。可以以软件用由一个或多个处理単元502执行的指令实现本文所讨论的技木。将意识到,可以将不同的指令存储在计算装置500的不同部件中,例如,存储在处理单元502中、存储在处理单元502的各种高速缓冲存储器中、存储在装置500的高速缓冲存储器(未示出)中、存储在其他计算机可读介质上等。另外,将意识到,计算装置500中存储指令的位置可以随着时间而改变。—个或多个输入/输出装置508允许用户将命令和信息输入到计算装置500,并且还允许将信息呈现给用户和/或其他部件或装置。输入装置的示例包括键盘、光标控制装置(例如,鼠标)、麦克风、扫描仪等。输出装置的示例包括显示装置(例如,监视器或投影仪)、扬声器、打印机、网卡等。本文可以在软件或程序模块的通常上下文中描述各种技术。通常,软件包括执行特定任务或实现特定抽象数据类型的例程、程序、应用、对象、部件、数据结构等。这些模块和技术的实现方式可以存储在某种形式的计算机可读介质上,或者通过所述某种形式的计算机可读介质传送。计算机可读介质可以是由计算装置可以访问的任何可用的媒介或介质。作为示例而不是限制,计算机可读介质可以包含“计算机存储介质”和“传播介质”。“计算机存储介质”包括以任何用于存储信息的方法或技术实现的易失性和非易失性的、可拆卸和不可拆卸的介质,所述信息例如为,计算机可读指令、数据结构、程序模块或其他数据。计算机存储介质包括,但不局限干,RAM、R0M、EEPR0M、闪速存储器或其他存储技术、CD-ROM、数字多用光盘(DVD)或其他光存储器、磁带盒、磁带、磁盘存储器或其他磁存储装置、或可用于存储期望的信息并且可由计算机访问的任何其他介质。典型地,“传播介质”具体化计算机可读指令、数据结构、程序 模块、或已调数据信号中的其他数据,例如载波或其他传送机构。传播介质还包括任何信息分发介质。术语“已调数据信号”是指已经设置或改变其一个或多个特征的信号,用这种方式以将信息编码到所述信号中。作为示例而不是限制,传播介质包括有线介质(例如,有线网络或直线连接)和无线介质(例如,声波、RF、红外线、以及其他无线介质)。上述任意一个的组合也被包括在计算机可读介质的范围内。通常,可使用软件、固件、硬件(例如,固定逻辑电路)、手动处理、或这些实施的组合来实现本文所描述的任一功能或技木。本文所使用的术语“模块”和“部件”通常表示软件、固件、硬件或它们的组合。在软件实现方式的情况下,模块或部件表示当在处理器(例如,ー个或多个CPU)上执行时,执行指定任务的程序代码。所述程序代码可以存储在ー个或多个计算机可读存储装置中,參照图5可以得到其进ー步的描述。本文所描述的保护操作系统配置值技术的特征是平台独立的,这意味着可以在具有各种处理器的各种商业计算平台上实现所述技木。虽然已经以具体到结构特征和/或方法动作的表达方式描述了本主题,但是将理解的是,在附加的权利要求书中限定的主题没有必要局限于以上所述的具体特征或动作。相反,将以上描述的具体特征和动作作为实现权利要求书的示例形式而公开。
权利要求
1.ー种方法,包括 在装置的预操作系统环境中,在将操作系统运行在所述装置上之前,获得识别ー个或多个操作系统的配置设置的策略(302),所述操作系统被阻止改变所述策略; 在所述预操作系统环境中,将所述策略与由所述操作系统使用的配置值进行比较(304); 在所述预操作系统环境中,如果所述配置值满足所述策略,则允许所述操作系统用所述配置值进行引导(308);以及 在所述预操作系统环境中,如果所述配置值没有满足所述策略,则采取响应动作(310)。
2.如权利要求I所述的方法,为了允许引导所述操作系统,所述策略还识别所述预操作系统环境将满足的配置设置。
3.如权利要求I所述的方法,所述方法还包括 在所述预操作系统环境中,捕获所述策略的配置设置的值; 将所捕获的值存储为所述策略的一部分;以及 将所捕获的值用作所述装置随后引导的策略的策略设置的一部分。
4.如权利要求I所述的方法,所述方法还包括只有当策略的新的版本来自作为受信赖的实体的策略发行者并且当策略的新的版本被确定为策略的更新的版本时,才允许由所述策略的新的版本替换所述策略。
5.如权利要求4所述的方法,所述方法还包括如果所述策略的标识符包括在所述策略的新的版本的祖先列表中,则确定所述策略的新的版本是所述策略的更新的版本。
6.如权利要求I所述的方法,其中,所述预操作系统环境是运行在计算装置上的虚拟机的预操作系统环境。
7.如权利要求I所述的方法,其中,以安全的方式保存所述策略,在所述安全的方式中,所述预操作系统环境的部件可以改变所述策略,但是所述操作系统被阻止改变所述策略。
8.如权利要求I所述的方法,所述策略还识别响应动作。
9.一种计算装置,所述计算装置包括 一个或多个处理器(502);以及 一个或多个计算机可读介质(504),在其上存储多个指令,当由所述ー个或多个处理器执行所述多个指令时,使得所述ー个或多个处理器实施所述计算装置的预操作系统环境,其执行动作,包括 接收识别配置设置的策略的改变,为了在所述计算装置上执行所述操作系统而由所述操作系统的配置值满足所述配置设置(402),所述操作系统被阻止改变所述策略; 在所述计算装置处,检查对于策略的改变是否被所述预操作系统环境信赖的实体批准(404);以及 只有对于策略的改变是被所述预操作系统环境信赖的所述实体批准时,才改变所述策略(406)。
10.如权利要求9所述的计算装置,其中,以所述操作系统难以访问的安全方式保存所述策略。
全文摘要
在装置的预操作系统环境中,在将操作系统加载和运行在所述装置上之前,获得识别所述操作系统的配置设置的策略。阻止所述操作系统本身改变这个策略,但是在某种情况下可以由所述预操作系统环境的部件改变所述策略。将这个策略与由所述操作系统使用的配置值进行比较,并且如果所述配置值满足所述策略,则允许所述操作系统用所述配置值进行引导。然而,如果所述配置没有满足所述策略,则采取响应动作。
文档编号G06F21/00GK102693379SQ20121005120
公开日2012年9月26日 申请日期2012年3月1日 优先权日2011年3月1日
发明者D.J.林斯利, D.M.麦艾弗, M.B.G.奈斯特伦, R.K.斯皮格尔, S.D.安德森 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1