靶向安全软件部署的制作方法

文档序号:16852565发布日期:2019-02-12 22:52阅读:213来源:国知局
靶向安全软件部署的制作方法

诸如操作系统的软件可以由设备制造商安装在计算设备上并且可以在计算设备上操作以提供各种功能。如果用户想要对设备执行工厂重置或者想要使操作系统升级具有新功能,则用户可能不得不使用由设备制造商提供的物理介质来安装新软件。然而,在一些情况下,软件可以通过网络从设备制造商远程地被递送,或者在企业内从计算管理员被递送到计算设备。在这样的情景中,计算设备可能需要许多机制来确定软件的安全未受到危害。此外,这样的远程软件递送通常将数据暴露于被泄漏或者对软件的未经授权的复制。



技术实现要素:

本文所描述的技术和系统实现计算环境中的靶向安全软件部署。本文所描述的技术和系统帮助核实计算设备是尚未被恶意软件更改或危害的经授权的计算设备,并且帮助防止软件在经授权的计算设备上的任何安装之前或之后被复制或被提供给未经授权方。

在一些情景中,要被安装在计算设备上的软件要求未由传统安装技术提供的高安全级别。传统上,派遣技术人员来核实计算机的身份,核实计算机未被修改,从安全存储器模块(例如,加密的硬盘驱动器)安装软件,并且核实没有软件的复制本被分布在预期的设备之外是成本高的且在大尺寸上是不可行的。使用本文所描述的技术和系统,管理员可以使用各种复杂加密方案来保护数据或软件以将软件提供给计算设备,软件在设备已经被篡改的情况下不可以被安装在设备上,并且软件不可以被安装在未经授权的设备上。

在一些实例中,服务提供商可以利用与计算设备的可信平台模块(tpm)相关联的一个或多个加密密钥(诸如存储根密钥(srk))来以受保护的方式加密软件更新。因为tpm可以被物理地绑定到计算设备(例如,目标设备),所以仅仅目标设备将能够访问由服务提供商提供的软件更新。在一些实例中,tpm可以作为服务被提供给计算设备。

为了核实目标设备还没有被恶意软件所危害,例如,服务提供商可以创建一系列策略来核实目标设备的状态还没有从已知的可信配置改变。tpm内的各种平台配置寄存器(pcr)可以被用来确定指示与目标设备相关联的固件、软件和硬件的各种“指纹”或签名。被包括在软件更新中的策略可以包括目标设备的各种固件、软件和硬件配置的指纹,使得如果目标设备还没有被更改,则(例如,在运行时间确定的)目标设备的指纹将匹配由服务提供商提供的指纹以解锁软件更新。服务提供商可以生成与软件更新相关联的预期的指纹以进一步核实要被安装在目标计算机上的软件更新正确地操作。当软件更新被加载到目标设备处的启动管理器中时,与软件更新相关联的运行时指纹可以与由服务提供商生成的预期的指纹进行比较以进一步核实计算设备的配置保持处在可信配置中。因此,通过核实目标设备的身份并且通过核实目标设备还没有从可信配置被更改,目标设备和被提供给目标设备的软件更新的完整性可以在远程软件部署期间被维持。

在对目标设备的身份和目标设备的配置的核实之后,软件更新可以被导入到目标设备的可信平台模块(tpm)。例如,软件更新可以使用服务提供商与目标设备的tpm之间的各种密钥来解密,并且使用目标设备的对称存储根密钥(srk)来加密。因此,软件更新可以进一步通过被绑定到tpm和目标设备而得到保护,其帮助防止对软件更新的未经授权的分布。

本文所讨论的靶向安全软件部署可以通过改进安全性来改进计算机的功能,通过防止未经授权的软件操作于计算设备上并且通过防止软件操作于除了目标设备的计算设备上来改进安全性。

提供本发明内容从而以简化的形式介绍下面在具体实施方式中进一步描述的一系列概念。本发明内容不旨在标识所要求保护的主题内容的关键或必要特征,也不旨在被用作确定所要求保护的主题内容的范围的辅助。此外,所要求保护的主题内容不限于解决在本公开内容的任何部分中提到的任何或所有优点的实现方式。

附图说明

参考附图描述详细的说明。在附图中,附图标记的最左边的(多个)数字标识该附图标记首次出现的附图。在不同的附图中相同的附图标记的使用指示相似或相同的项。

图1图示了用于计算环境中的靶向安全软件部署的过程的图示流程图。

图2图示了用于实现靶向安全软件部署的示例环境。

图3a-3d图示了用于实现计算环境中的靶向安全软件部署的过程的图示流程图。

图4是用于证实计算设备的可信度的过程。

图5是用于确定计算设备要接收软件更新并且准备针对计算设备的加密的软件包的过程。

图6是用于在计算设备处接收加密的软件包并且核实计算设备还没有受到危害的过程。

具体实施方式

本文所描述的技术和系统提供靶向安全软件部署。例如,当计算设备位于服务提供商或软件储存库的远程时,软件更新可以被提供到计算设备。计算设备的身份可以使用计算设备的可信平台模块(tpm)来确定和核实,并且软件更新可以被明确地配置为仅仅在计算设备上操作。此外,计算设备的配置可以被查明以确定计算设备还没有被修改、被篡改、或另外以任何方式被更改。例如,如果恶意软件或未经授权的软件操作于计算设备上,则可以防止软件更新被安装。此外,软件更新可以被定向用于特定计算设备(其也可以被称为目标设备)。因此,当在目标设备处接收到软件更新时,软件更新可以不被复制并且提供给附加的未经授权的机器。

在一个特定实施方式中,本文所讨论的靶向安全软件部署可以用来向物联网(iot)环境中的传感器提供软件更新。因为iot环境可以包括任何数目的远程定位的传感器,所以具有以可信的方式远程地且安全地更新传感器的软件、参数和/或配置以核实设备的完整性并且核实所提供的软件的完整性的手段可以是重要的。通过示例而非限制,占用传感器可以位于停车场中并且占用传感器可以被配置为确定停车场的特定区域的占用。在一些实例中,如果传感器的软件要被更新,不是将技术人员派遣到传感器来更新软件,而是软件可以(例如,经由有线或无线网络)从服务提供商被远程地提供到传感器。软件可以被加密和/或供应以操作于传感器和其他设备上。此外,软件可以被加密以防止在运输期间对软件的未经授权的篡改并且核实内容的安全性和完整性。当软件由传感器接收到时,传感器的状态可以在安装软件之前被确定。在传感器的状态被确定(例如,以免受恶意软件或未经授权的改变)之后,软件更新可以被应用到传感器。此外,因为软件更新可以与传感器唯一地相关联,所以软件更新被防止免受未经授权的复制和/或分布。

服务提供商可以准备经由可信平台模块(tpm)与计算设备(或传感器)唯一地相关联的软件更新。在一些实例中,tpm是被物理地绑定到包括一个或多个加密密钥的计算设备的专用微处理器。在一些实例中,tpm可以作为服务被提供给计算设备。每个tpm包括唯一地标识tpm的签注密钥,并且相应地,tpm唯一地标识计算设备。tpm还可以包括可以被配置为唯一地标识tpm和计算设备的用户的一个或多个存储根密钥(srk)。srk可以包括可以被用来提供可由计算设备唯一地访问的数据的非对称密钥(例如,包括公钥和私钥)。此外,tpm可以包括可以由tpm使用以访问与tpm相关联的数据的对称srk。在一些实例中,对称srk决不在tpm外部被共享。

tpm可以包括可以创建计算设备的固件、软件和硬件配置的几乎不可忘记的散列键摘要的一个或多个平台控制寄存器(pcr)。在至少一个示例中,计算设备可以将散列键摘要提供给第三方(例如,服务提供商)例如作为核实计算设备上的软件还没有被恶意软件更改的基准测量。在计算设备的每次启动时,tpm可以测量固件pcr并且将散列键摘要与已知值进行比较以确定计算设备保持未受到危害。因此,tpm的密钥可以唯一地标识tpm的身份,而pcr可以唯一地标识计算设备的状态(例如,设备的固件、软件或硬件是否已经被更改)。

根据本公开的实施例,服务提供商可以包括将软件更新提供到目标设备的远程计算系统。在一些实例中,服务提供商可以存储与服务提供商相关联的计算设备的身份以及与目标设备的可信配置相关联的设备的初始配置设置(例如,“指纹”)。也就是说,服务提供商可以标识与目标设备的可信固件、软件和硬件配置相对应的目标设备的平台控制寄存器(pcr)。在一些实例中,服务提供商可以确定软件包以提供给目标设备,并且可以在将软件更新加载在目标设备上后确定一个或多个预期的或预料的配置设置。服务提供商可以以加密的包准备软件更新以提供给目标设备。例如,服务提供商可以经由与目标设备的tpm相关联的一个或多个存储根密钥(srk)来获得目标设备的身份。软件更新可以利用随机对称密钥(rsk)来加密,并且加密的软件更新和配置设置可以被准备在导入投影器中并且使用与tpm的非对称srk相关联的公共srk来加密。加密的包可以被提供到目标设备用于核实和/或安装。

目标设备可以经由网络(诸如互联网)或借助于传输数据的任何手段接收加密的包。加密的包可以被存储在目标设备处并且被处理以在安装之前确定数据的有效性,以及目标设备的完整性。加密的包可以使用目标设备的私有srk来解密,并且目标设备的固件指纹(例如,与固件或bios(基本输入/输出系统)相关联的pcr值)可以被核实为未被改变。在一些实例中,目标设备的私有srk可以解密与加密的数据相关联的随机对称密钥(rsk)。在一些实例中,软件更新可以以加密的形式被提供到目标设备,使得数据以加密的形式被存储在与目标设备相关联的存储器中。因此,在一些实例中,加密的包可以包括任何数目的密钥以提供针对数据的各种级别的安全性和/或加密。

在确定目标设备的固件pcr指示目标设备要被信任后,软件更新可以使用与加密的包相关联的导入投影器被导入到目标设备中。例如,软件包可以使用目标设备的对称srk被加密、密封和/或包装,对称srk核实软件不可以被迁移到另一设备,并且允许目标设备的tpm使用软件更新。在一些实例中,导入操作可以包括个体投影器的生成,个体投影器将软件绑定到目标设备。在加密的包被导入到目标设备之后,与软件更新相关联的导入投影器可以被删除以保存存储器并且进一步防止未经授权的分布。

本文所描述的技术和系统可以通过改进传输数据的安全性、确保数据仅对可信设备可访问并且防止对来自目标设备的软件的未经授权的分布来改进计算设备的功能。例如,在传输期间被加密的数据不能够在传输期间由未经授权方拦截和解密,同时在安装软件更新之前核实目标设备的状态保护秘密免于在安装之后被分布。将软件更新绑定到目标设备防止在软件已经被提供到目标设备之后软件或数据被泄漏(或以其他方式被传送)给未经授权的设备。

本文参考图1-6描述用于将靶向安全软件部署实施在计算环境中的各种示例。

图1图示了用于计算环境中的靶向安全软件部署的过程100的图示流程图。图1图示了高级图示流程图,并且在本公开中给出了该实施方式的附加细节。

在102处,操作可以包括确定目标设备要接收软件。例如,示例104图示了将软件更新108提供到目标设备110的服务提供商106。在一些实施例中,操作102可以包括在服务提供商106处从目标设备110接收请求以提供软件更新108。在一些实施例中,操作102可以包括接收软件更新108可用于目标设备110的指示并且在服务提供商106处初始化软件更新108。在一些实例中,将软件更新108提供到目标设备110的确定可以部分地基于确定目标设备110的固件、软件和/或硬件已经受到危害。也就是说,在一些实例中,软件更新108可以在确定目标设备110的一个或多个平台配置寄存器(pcr)值不对应于可信状态后被提供。

在112处,操作可以包括确定针对目标设备110的一个或多个配置设置。配置设备114被表示为包括固件设置和启动管理器设置,但是任何定量或定性设置可以被用作配置设置114。例如,服务提供商106可以存储与目标设备110的可信状态相对应的pcr值的记录。在一些实例中,目标设备110的可信状态可以至少部分地基于与目标设备110相关联的可信平台模块(tpm)的身份(例如,一个或多个密钥)来确定。在一些实例中,操作112可以包括确定与在软件更新108以可信配置被安装在目标设备110处时在目标设备110处的值或设置相对应的一个或多个预期的或预料的pcr值。即,操作112可以包括(在将软件更新108安装在目标设备110上之前)确定目标设备110的预期的指纹,其表示具有其中目标设备110的固件、软件和硬件还没有从可信配置更改的已安装的软件更新108的目标设备110的状态。在一些实例中,针对目标设备110的配置设置114可以对应于pcr的一个或多个散列键。

在116处,操作可以包括创建针对目标设备110的加密的包。如所图示的,加密的包118可以包括被加密以用于由目标设备110使用的软件更新和一个或多个配置设备114。在一些实例中,加密的包118使用tpm的公共存储根密钥(srk)来加密,其可以仅使用tpm的私有srk来解密。在一些实例中,加密的包118可以包括被配置为允许目标设备110的tpm将加密的包118导入到目标设备110中的导入投影器。如在本公开的上下文中可以理解的,与目标设备110的tpm相关联的加密密钥的使用可以防止未经授权的设备访问软件更新108。此外,因为加密密钥(例如,srk)可以对tpm是唯一的,所以服务提供商106可以确信仅目标设备110可以访问加密的包118。

在120处,操作可以包括将加密的包118传输到目标设备110。示例122图示了加密的包118正从服务提供商106被传输到目标设备110。在一些实例中,加密的包118可以经由任何有线或无线网络被传输到目标设备110。在一些实例中,加密的包118可以被存储在诸如硬盘驱动器、usb闪存驱动器、cd-rom等的存储器设备上,被物理地运输到目标设备110,并且被传输到目标设备110。

在124处,操作可以包括核实加密的包118与目标设备110唯一地相关联。如示例126中所图示的,例如,与加密的包118相关联的密钥可以与可信平台模块(tpm)的存储根密钥(srk)进行比较。例如,因为srk与tpm唯一地相关联,其又被绑定到目标设备110,所以目标设备110是可以对加密的包118进行解密的唯一设备。在一些实例中,试图访问加密的包118的除了目标设备110之外的任何设备可以被拒绝访问。

在128处,操作可以包括至少部分地基于加密的包118中的配置设备114来核实目标设备110的状态。如示例130中所图示的,来自加密的包118的配置设置114可以与和目标设备110的平台配置寄存器(pcr)相关联的一个或多个值进行比较。例如,tpm可以将存在于目标设备110中的固件pcr与被提供在配置设置114中的固件pcr进行比较。此外,tpm可以(例如,结合将软件更新108加载到目标设备110中)将与启动管理器相关联的pcr进行比较以确定目标设备110的状态。如果pcr测量与配置设置114不匹配,则目标设备110可能受到危害,并且目标设备110可以被禁止进一步访问加密的包118。

如果操作128核实目标设备110要被信任(例如,没有恶意软件存在和/或固件或软件还没有被修改),则在132处,操作可以包括准许目标设备110访问加密的包118。示例134图示了目标设备110能够访问被包括在加密的包118中的软件更新108。在一些实例中,软件更新108可以在被存储在目标设备110上时受盘加密保护,使得仅目标设备110能够访问软件更新108。

图2图示了用于实现靶向安全软件部署的示例环境200。环境200包括(多个)计算设备202,其具有(多个)处理器204和包括启动管理器208的存储器206。在各种实例中,启动管理器208可以执行操作以启动计算设备202的任何操作系统或软件并且将操作的指示提供到可信平台模块(tpm)210。在一些实例中,可信平台模块(tpm)210可以包括一个或多个密钥212(包括但不限于(多个)存储根密钥)以及一个或多个平台配置寄存器(pcr)214。环境200还包括一个或多个传感器216,其可以生成数据以经由(多个)计算设备202和/或网络220提供给一个或多个服务提供商218。在一些实例中,(多个)服务提供商218将一个或多个服务提供到计算设备202,诸如升级与计算设备202和/或传感器216相关联的软件。为此,服务提供商218可以包括(多个)处理器222和存储器224,该存储器包括加密的包生成模块226、随机对称密钥(rsk)模块228、可信平台模块(tpm)库230以及证实模块232。加密的包生成模块226可以包括(和/或生成)可信平台模块(tpm)导入投影器234、加密的包密钥236、一个或多个导入策略238以及加密的包240。

计算设备202可以包括但不限于各种计算设备中的任何一种,诸如智能电话、移动电话、个人数字助理(pda)、电子书设备、膝上型计算机、台式计算机、平板计算机、便携式计算机、游戏设备、个人媒体播放器设备、服务器计算机、可穿戴设备、或者任何其他电子设备。

如以上所介绍的,计算设备202可以包括一个或多个处理器204和存储器206。(多个)处理器204可以是单个处理单元或者许多单元,其中的每个处理器可以包括多个不同的处理单元。(多个)处理器204可以包括一个或多个微处理器、微计算机、微控制器、数字信号处理器、中央处理单元(cpu)、图形处理单元(gpu)、安全性处理器(例如,安全密码处理器)和/或其他处理器。备选地或另外,本文所描述的技术中的一些或全部可以至少部分地由一个或多个硬件逻辑部件执行。例如但不是限制性的,可以被使用的说明性类型的硬件逻辑部件包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、状态机、复杂可编程逻辑器件(cpld)、其他逻辑电路、片上系统(soc)、和/或基于软件和/或硬件编码的指令来执行操作的任何其他设备。除了其他功能之外,(多个)处理器204可以被配置为提取和/或执行被存储在存储器206中的计算机可读指令。

存储器206可以包括计算机可读介质中的一个或其组合。如本文所使用的,“计算机可读介质”包括计算机存储介质和通信介质。

计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据的信息的任何方法或技术实现的易失性的和非易失性的、可移除的和不可移除的介质。计算机存储介质包括但不限于:相位变化存储器(pcm)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦可编程rom(eeprom)、闪速存储器或其他存储器技术、压缩盘rom(cd-rom)、数字多用盘(dvd)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储设备、或者可以被用来存储用于供计算设备访问的信息的任何其他介质。

相比之下,通信介质包括经调制的数据信号(诸如载波)中的计算机可读指令、数据结构、程序模块或其他数据。如本文所定义的,计算机存储介质不包括通信介质。

一个或多个传感器216还可以包括类似于结合(多个)计算设备202所描述的那些的处理器和存储器,并且还可以包括任何处理、硬件和/或电路以生成数据用于提供给计算设备202和/或服务提供商218。在一些实例中,一个或多个传感器216可以以如结合计算设备202所描述的类似的方式接收软件更新。

在各种实施例中,计算设备202和/或传感器216可以经由诸如互联网、移动电话网络(mtn)、或其他各种通信技术的一个或多个有线或无线网络220与服务提供商218通信。在一些实例中,网络220可以包括经由一个或多个无线协议进行通信的任何wan或lan,一个或多个无线协议包括但不限于:rfid、近场通信、光学(ir)通信、蓝牙、蓝牙低能量、zigbee、z-波、线程、lte、高级lte、wifi、wifi-direct、lora、homeplug、moca、以太网、等等。

在各种实施例中,存储器206可以包括被配置为为了其他部件和其他服务的益处管理计算设备202内并且被耦合到计算设备202的硬件和服务的操作系统。

环境200的各种部件可以包括硬件和/或软件部件。例如,启动管理器208、加密的包生成模块226、随机对称密钥(rsk)模块228、可信平台模块(tpm)库230以及证实模块232可以分别由被存储在存储器206或224中的一个或多个模块和/或分别由(多个)处理器204或222的一个或多个部件实现。如本文所使用的,出于讨论的目的,术语“模块”旨在表示软件和/或固件的示例分区,并且不旨在表示任何类型的要求或所要求的方法、方式或组织。相应地,尽管讨论了各种“模块”,但是它们的功能和/或类似的功能可以被不同地布置(例如,被组合到更少数目的模块中,被分解到更大数目的模块中等)。此外,尽管某些功能在本文中被描述为被实现为被配置用于由处理器执行的软件模块,但是在其他实施例中,功能中的任何或全部可以整体或部分地由诸如fpga、asic、assp、状态机、cpld、其他逻辑电路、soc等的硬件逻辑部件来实现(例如,执行)。

启动管理器208可以执行操作以将固件、操作系统和/或其他软件部件加载到存储器206中以由处理器204操作。在一些实例中,启动管理器208可以结合tpm210操作以确定计算设备202中的固件、软件和/或硬件的状态。

可信平台模块(tpm)210可以包括被设计为确保硬件安全和/或核实计算设备202的固件或软件的安全密码处理器。在一些实例中,tpm210可以提供用于密码密钥的安全生成的功能,密码密钥可以被用来对与tpm210唯一地相关联并且对应地与计算设备202唯一地相关联的数据进行加密和解密。在一些实例中,密钥212可以包括但不限于(多个)签注密钥、(多个)存储根密钥、(多个)证实身份密钥和/或(多个)存储密钥中的一个或多个。在一些实例中,签注密钥可以在制造tpm210时与tpm210唯一地相关联。在一些实例中,各种证书和/或密钥可以部分地基于签注密钥以唯一地加密、解密、或以其他方式访问数据和/或软件。此外,tpm210可以包括平台配置寄存器(pcr)214,其可以包括任何数目的寄存器(例如,16或24个寄存器,每个寄存器存储20个字节)以执行散列操作来确定操作于计算设备202上的固件、软件和硬件的唯一散列键摘要。

根据本公开的实施例,加密的包生成模块226可以执行操作以生成tpm导入投影器234(包括加密的包密钥236和导入策略238)和加密的包240。加密的包生成模块226可以结合服务提供商218的其他模块操作以生成加密的包240,例如,其可以对应于软件更新以提供给目标设备,诸如计算设备202或传感器216。在一些实例中,加密的包240可以利用密钥进行加密,使得加密的包240可以被传送并存储在计算设备202的存储器(例如,存储器206)中。在一些实例中,加密的包240可以由目标设备的tpm(例如,计算设备202的tpm210)经由包括加密的包密钥236和导入策略238的tpm导入投影器234来访问。在一些实例中,加密的包密钥236可以至少部分地基于与tpm210或随机对称密钥(rsk)模块228相关联的一个或多个密钥。在一些实例中,tpm导入投影器234可以包括一个或多个导入策略238,其可以设置、确定和/或控制各种密钥从计算设备202上的加密的包240被释放和/或解密的条件。例如,导入策略238可以指定针对计算设备202(或传感器216)的tpm210的一个或多个配置设置以核实计算设备202的固件或软件还没有受到危害。在一些实例中,并且如下面更详细地解释的,tpm导入投影器234中的一些或全部可以在将加密的包240导入到计算设备202中后从计算设备202被删除、归档或以其他方式移除。

随机对称密钥(rsk)模块228可以将一个或多个随机对称密钥(rsk)提供到加密的包生成模块226,以促进加密的包240的生成。在一些实例中,不同的rsk可以针对由服务提供商218生成的每个加密的包而被生成。

可信平台库230可以存储各种计算设备202和与服务提供商218相关联的传感器216的指示。例如,可信平台库230可以存储各种设备的密钥、证书、身份信息、配置设置等。在一些实例中,tpm库230可以在每个设备处于可信状态时存储与各种设备相关联的pcr的配置参数。例如,tpm库230可以存储与处于可信状态的tpm210相关联的固件、软件和/或硬件pcr(例如,服务提供商218可以以合理的确定性说明计算设备202或传感器216免受恶意软件或未被更改等)。

证实模块232可以执行操作以用密码方式向证书机构证明tpm中的密钥(诸如rsa密钥)由受证书机构信任的tpm保护。例如,证实模块232可以被用来在服务提供商218与服务提供商218从未见过的或者与之不相关联的设备之间建立信任。例如,证书机构可以包括签注证书,对于每个制造的tpm,签注证书可以基于签注密钥。证实模块232可以核实tpm的身份,或者核实另一可信机构信任tpm,其继而可以提供一定量的信任来允许服务提供商218将软件更新提供到任何数目的设备。因此,服务提供商218不限于将服务提供到与服务提供商218相关联的(例如,被存储在tpm库230中的)设备,并且可以被扩展到为任何数目的设备提供信任。

服务提供商218可以包括一个或多个计算设备,诸如一个或多个台式计算机、膝上型计算机、服务器等。一个或多个计算设备可以以集群、数据中心、云计算环境或其组合来配置。在一个示例中,一个或多个计算设备提供在计算设备202远程操作的云计算资源,包括计算资源、存储资源等。

环境200还包括一个或多个用户242来采用计算设备202。一个或多个用户242可以与计算设备202(和/或传感器216)交互以执行各种操作。

结合本公开的图1以及图3至图6进一步解释这些部件的操作。

图3a至图3d图示了用于实现计算环境中的靶向安全软件部署的过程的图示流程图。

图3a图示了用于实现靶向安全软件部署的初始操作300。图3a图示了计算设备202与服务提供商218之间的操作。通常,下面每个图示分别提供与计算设备202或服务提供商218相关联的操作和/或部件,尽管可以提供其他实施方式。在一些实例中,虽然图3a是指计算设备202,但是图3a至图3d的操作可以在例如物联网(iot)环境中的服务提供商218与传感器216之间被执行。

在302处,操作可以包括确定目标设备(例如,计算设备202)要接收包304。在一些实例中,包304可以包括软件更新,诸如针对计算设备202的操作系统。操作302可以包括接收与计算设备202相关联的软件过期(例如,早期版本的软件)或者受到危害并且需要被重新安装的指示。在一些实例中,包304可以对应于要被提供到计算设备202的任何数据,并且不限于软件。例如,包304可以包括任何数目的数字文件,诸如音频、文本和/或视频。

在306处,操作包括确定存储根密钥(srk)并且确定目标设备的平台配置寄存器(pcr)配置。例如,与目标设备(例如,计算设备202)相关联的可信平台模块(tpm)308包括存储根密钥310,其包括非对称密钥312(包括公钥和私钥)和对称密钥314。在一些实例中,非对称密钥312(例如,经由公钥)可以由服务提供商218使用以加密要被发送到计算设备202的信息,而非对称密钥312的私钥可以对加密的信息进行解密。对称密钥314可以对要由tpm308访问的信息进行解密。

tpm308包括一个或多个平台配置寄存器(pcr)316,其可以被用来确定tpm308的配置设置。在一些实例中,与pcr316相关联的配置设置可以被用来核实计算设备202的状态,其可以指示计算设备202上的任何固件、软件和/或硬件是否已经被更改或受到危害。在一些实例中,tpm308可以对应于图2的tpm210。

非对称密钥312的公钥和/或pcr316可以被提供到服务提供商218并且被存储在存储器318中。例如,srk310的非对称密钥312可以在tpm库320中被表示为公共srk322。在一些实例中,存储器318可以对应于图2的存储器224。

被存储于存储器318中的证实模块324可以包括可信固件(fw)pcr326和/或预期的启动管理器pcr328。在一些实例中,当计算设备202处于可信环境(诸如初始化)中时,可信fwpcr326可以对应于计算设备202的固件的签名。在一些实例中,如当尚未在计算设备202与服务提供商218之间建立信任关系时,可信fwpcr326可以基于预期的pcr,预期的pcr基于计算设备202的配置和tpm308的一个或多个密钥(例如,由证书机构提供的签注密钥或签注证书,和/或基于一个或多个证实身份密钥)的配置。

在一些实例中,预期的启动管理器pcrs328可以对应于预期的pcr值,预期的pcr值基于要被提供到计算设备202的包304。例如,服务提供商218可以基于1)软件更新的配置、2)与计算设备202相关联的固件和/或3)一个或多个srk来确定要被预期为将由tpm在包304由计算设备202的启动管理器加载到存储器中时观察的pcr值328。

尽管图3a图示了从计算设备202的tpm308到服务提供商218的存储器318的路径330和332,但是应当理解,公共srk322和/或可信fwpcr326可以通过任何手段来确定。也就是说,路径330和332图示了tpm308的元件与存储器318之间的逻辑关系,而不一定表示物理或虚拟连接。例如,公共srk322可以在初始化时由计算设备202提供到服务提供商。在一些实例中,计算设备202可以在由服务提供商318请求后将公共srk322提供到服务提供商318。

在334处,操作可以包括利用被表示为公共包密钥336的公共包密钥来加密包304。因此,在一些实施例中,包304可以被表示为加密的包338,其可以在由计算设备202接收时保持被加密。例如,计算设备202可以使用公共包密钥336将加密提供到被存储在存储器中的数据中的一些或全部。

在340处,操作可以包括利用随机对称密钥(rsk)来加密私有包密钥。例如,私有包密钥342可以利用对称rsk344来加密。因此,能够对加密的包338进行解密的私有包密钥342由对称rsk344加密。在一些实例中,对称rsk344可以由图2的rsk模块228生成。

接下来,图3b图示了用于实施如本文所讨论的靶向安全软件部署的进一步的操作346。如所图示的,图3b中的操作可以由服务提供商218的一个或多个部件执行。

在348处,操作可以包括利用随机对称密钥(rsk)344来加密平台配置寄存器(pcr)配置。因此,如所图示的,对称rsk344可以加密可信fwpcr326和在操作306中被确定的预期的启动管理器pcr328。

在350处,操作可以包括利用公共srk322来加密对称rsk344。因此,以这种方式,本文所讨论的各种密钥和包与srk310(以及tpm308)唯一地相关联,srk310与计算设备202相关联。

在352处,操作包括创建针对加密的包的卷354,包括生成导入投影器。通常,卷354可以包括但不限于利用公共包密钥336来加密的加密的包338和利用对称rsk344来加密的私有包密钥342。此外,卷354可以包括导入投影器356,其可以包括利用公共srk322来加密的对称rsk344以及利用对称rsk344来加密的可信fwpcr326和预期的启动管理器328。在一些实例中,卷或包可以指数据的汇集,而在一些实例中,卷可以包括包,反之亦然。

在一些实例中,因为公共srk322提供最外层的加密,所以仅srk310的私有非对称密钥312可以访问卷354。以这种方式,导入投影器356(以及卷354)可以与tpm308唯一地相关联,使得仅仅与计算设备202相关联的tpm308可以访问数据。

图3c图示了用于实现靶向安全软件部署的操作358。图3c图示了在计算设备202与服务提供商218之间的操作358。

在360处,操作包括将卷354(包括导入投影器356)从服务提供商218传输到计算设备202。在一些实例中,操作360可以包括通过任何已知的手段(包括经由有线或无线网络)传输卷354。在一些实例中,操作360可以包括在计算设备202处接收卷354。

在362处,操作可以包括确定卷354是否与目标设备存储根密钥(srk)相关联,也就是说,操作362可以包括利用对应于公共srk322的私有srk364来解密体积354的至少一部分。在一些实例中,私有srk364可以对应于图3a的私有非对称密钥312。在一些实例中,如果未经授权的计算设备接收卷354,则未经授权的计算设备将不能够访问卷354,因为未经授权的计算设备将不与私有srk364相关联。

在366处,操作可以包括使用启动管理器368来启动目标设备(例如,计算设备202)上的加密的卷354。例如,启动管理器368可以执行操作以将包304或加密的包338的至少一部分加载到计算设备202的存储器中。

在370处,操作可以包括确定目标设备平台配置寄存器(pcr)是否匹配与导入投影器356相关联的pcr。例如,目标设备可以包括pcr372,其可以包括fwpcr和/或尚未被核实的启动管理器pcr。通过确定pcr372并且将所生成的pcr372与可信fwpcr326和/或预期的启动管理器pcr328进行比较,操作370可以确定计算设备202的状态是否已经(例如,经由恶意软件、启动日志记录器、密钥日志记录器等)被更改,或者计算设备202的固件、软件和/或硬件的一些方面是否已经被改变。在一些实例中,操作370可以包括任何密钥管理操作以对各种其他密钥进行解码和/或对各种加密的数据应用密钥以获得对各种数据的访问。

继续来说,图3d图示了如本文所讨论的用于实施靶向安全软件部署的进一步的操作374。如所图示的,图3d中的操作可以由计算设备202的一个或多个部件执行。

在376处,操作可以包括将卷354导入到目标设备(例如,计算设备202)的可信平台模块(tpm)308中,其可以包括利用对称存储根密钥(srk)314来密封卷354,由此创建导入的卷378。在一些实施例中,导入的卷378可以包括由公共包密钥336加密的加密的包338,以及由对称srk314加密的私有包密钥342。以这种方式,导入的卷378仅对与对称srk314相关联的tpm308可访问。

导入的卷378可以包括个体投影器380,其可以替换与卷354相关联的导入投影器356。个体投影器380可以包括可信fwpcr326和/或利用对称srk314来加密的预期的启动管理器pcr328。因此,tpm308可以仅访问个体投影器380。

在382处,操作可以包括将具有个体投影器380的导入的卷378提供到启动管理器368。相应地,启动管理器368可以启动被包含在导入的卷378内的软件更新的至少一部分。因为导入的卷的所有方面可以由tpm308(并且在一些实例中,仅仅tpm308)加密且可访问,所以本文所描述的操作通过提供增加的网络安全性来改进计算机的功能。此外,包被提供到目标设备而不允许未经授权的计算设备获得对本文所包含的信息的访问,并且本文所讨论的技术和系统防止对数据的任何未经授权的复制或分布。

(例如,图1、图3a至图3d和图4至图6中的)示例过程被图示为逻辑流程图,其中的每个操作表示可以采用硬件、软件或其组合来实施的操作的序列。在软件的上下文中,操作表示被存储在一个或多个计算机可读存储介质上的计算机可执行指令,其在由一个或多个处理器执行时将设备配置为执行所记载的操作。通常,计算机可执行指令包括执行特定功能的例程、程序、对象、部件、数据结构等。各操作被描述的顺序不旨在被理解为限制,并且任何数目的所描述的操作可以以任何顺序和/或与实施该过程并行地来组合。此外,可以省略各个操作中的任何操作。

图4是用于证实计算设备的可信度的过程400。在一个实施方式中,过程400可以由图2的服务提供商218执行。然而,过程可以在其他环境中被执行并且还可以由其他设备执行。

在一些实例中,过程400可以被用来建立未受信任远程设备(例如,计算设备或传感器)与服务提供商之间的信任。通过示例而非限制,过程400可以在其中工作者在他们远离他们的办公室时丧失他或她的计算设备的情况下被使用。工作者可以获取未受信任的计算设备并且可以建立该远程设备与服务提供商之间的信任以允许服务提供商将专属软件或其他数据提供到新的可信远程设备。

在402处,操作可以包括接收与未受信任远程设备相关联的公共签注密钥。例如,未受信任远程设备可以包括可信平台模块(tpm),其包括唯一地标识未受信任远程设备的签注密钥。在一些实例中,公共签注密钥可以由未受信任远程设备提供给服务提供商。

在404处,操作可以包括确定公共签注密钥是否与有效可信平台模块相对应。在一些实例中,该操作404可以包括经由受服务提供商信任的证书机构来核实公共签注密钥的有效性。在一些实施例中,证书机构可以存储与公共签注密钥相关联的证书,公共签注密钥与未受信任远程设备的tpm相关联,并且可以确认或否定公共签注密钥是否与有效tpm相关联。

在406处,操作可以包括确定未受信任远程设备是否控制对应于公共签注密钥的私有签注密钥。在一些实例中,操作406可以包括未受信任远程设备与服务提供商之间的任何数目的消息操作,诸如使用公共签注密钥来加密指示,将加密的指示提供到未受信任远程设备,并且从未受信任远程设备接收解密的指示(或者基于指示的响应)。

在408处,如果未受信任远程设备在以上操作处未发生故障,则操作可以包括确定未受信任远程设备应为可信设备。因此,以这种方式,例如,服务提供商可以与未受信任计算设备或者未受信任传感器建立信任并且执行本文所描述的软件更新操作。

图5是用于确定远程设备(例如,计算设备或传感器)要接收软件更新并且准备针对远程设备的加密的软件包的过程500。在一个实施方式中,过程500可以由图2的服务提供商218执行。例如,结合图1和图3a至图3d提供图5的示例性实施方式。然而,过程可以在其他环境中被执行并且还可以由其他设备执行。

在502处,操作可以包括确定远程设备要接收软件更新。如本文所讨论的,操作502可以包括确定与远程设备相关联的软件的当前版本并且确定更新的版本可用。在一些实例中,该操作可以包括从远程设备接收请求以提供更新的软件。

在504处,操作可以包括标识远程设备的存储根密钥(srk)。在一些实例中,远程设备的srk是公钥。在一些实例中,服务提供商218可以从远程设备请求公共srk,并且在一些实例中,远程设备可以发起公共srk的传送。

在506处,操作可以包括确定包括远程设备的固件平台配置寄存器(pcr)和针对软件更新的启动操作的一个或多个预期的pcr的一个或多个配置参数。例如,固件pcr可以包括(诸如在由服务提供商218的供应或初始化期间)处于可信状态中的远程设备的操作的签名或指纹。在一些实例中,针对软件更新的启动操作的预期的pcr基于远程设备的可信平台模块(tpm)的pcr中的预期的数字签名,使得如果软件更新要被提供到远程设备并且远程设备要安装软件,则将得到预期的pcr。

在508处,操作可以包括确定随机对称密钥(rsk)。在一些实例中,唯一rsk可以被提供用于每个软件更新和/或用于每个远程设备。在一些实例中,确定随机rsk允许软件更新在各种操作中被加密。

在510处,操作可以包括使用rsk将软件更新加密为加密的软件包。因为rsk是对称密钥,所以加密的软件也可以使用rsk来解密。

在512处,操作可以包括使用rsk将配置参数加密为加密的配置参数。例如,配置参数可以包括在操作560中被确定的配置参数。因此,基于操作510和512,软件更新和配置参数两者都可以使用相同的rsk来加密。

在514处,操作可以包括利用远程设备的srk来将rsk加密为加密的rsk。在一些实例中,远程设备的srk对应于与远程设备的tpm相关联的公共srk。因此,在该操作514之后,软件更新和配置参数可以使用远程设备的私有srk来解密。因此,加密的软件与远程设备的tpm唯一地相关联。

在516处,操作可以包括将加密的软件包、加密的配置参数、以及加密的rsk传输到远程设备。例如,加密的软件包、加密的配置参数、以及加密的rsk可以被提供为仅对包含私有srk的tpm可访问的加密的卷。加密的卷可以经由任何有线或无线网络(诸如互联网)被提供到远程设备,或者经由存储器模块(例如,硬盘驱动器或usb存储设备)被运输到与远程设备相关联的位置。以这种方式,服务提供商218可以准备加密的卷以提供到远程设备。

图6是用于在计算设备处接收加密的软件包并且核实计算设备还没有受到危害的过程600。在一个实施方式中,过程600可以由图2的计算设备202执行。例如,结合图1和图3a至图3d提供图6的示例性实施方式。然而,过程可以在其他环境中被执行并且还可以由其他设备执行。

在602处,操作可以包括在远程设备处接收加密的软件包、加密的配置参数、以及加密的rsk作为所接收的卷。在一些实例中,所接收的卷可以经由被耦合到远程设备的任何有线或无线网络(诸如互联网)来接收。在一些实例中,所接收的卷可以经由存储器模块(诸如硬盘驱动器)被运输到远程设备。

在604处,操作可以包括使用远程设备的存储根密钥(srk)来解密所接收的卷的至少一部分。在一些实例中,远程设备可以使用私有srk来解密所接收的卷的至少一部分以确认所接收的卷旨在用于远程设备。在未经授权的计算设备接收了所接收的卷的情况下,未经授权的计算设备将不能够解密所接收的卷的一部分,因为未经授权的计算设备缺少对应于解密所接收的卷的一部分的公共srk的私有srk。

在606处,操作可以包括将所接收的卷的至少一部分加载到远程设备的启动管理器中。例如,操作606可以包括初始化操作以生成一个或多个平台配置寄存器(pcr)值。

在608处,操作可以包括将远程设备的平台配置寄存器(pcr)值与所接收的卷的pcr值进行比较。例如,基于在操作606中所确定的pcr,并且基于被包括在所接收的卷中的pcr,操作608可以确定在可信pcr与远程设备的pcr之间是否存在匹配。

在610处,操作可以包括确定远程设备是否是目标设备并且远程设备是否未被修改。在一些实例中,如果私有srk对应于被用来加密所接收的卷的公共srk,则远程设备是目标设备。在一些实例中,如果远程设备的pcr对应于所接收的卷的pcr,则远程设备未被修改。也就是说,远程设备的fwpcr对应于远程设备的可信fwpcr,并且启动管理器pcr对应于所接收的卷的预期的启动管理器pcr。

在612处,操作可以包括利用远程设备的对称srk来加密解密的所接收的卷。在一些实例中,该操作将所接收的卷导入到远程设备中,使得要求远程设备的tpm访问所接收的卷。在一些实例中,该操作612可以包括丢弃、归档或删除利用随机对称密钥(rsk)来加密的所接收的卷的至少一部分,并且利用使用对称srk来加密的数据来替换那些部分。

在614处,操作可以包括利用更新的软件来操作远程设备。在一些实例中,该操作可以包括访问软件更新,安装软件更新,并且利用软件更新来操作设备。以这种方式,本文所描述的技术和系统提供计算环境中的靶向安全软件部署。

示例条款

示例a、一种系统包括:一个或多个处理器;以及存储器,其存储模块,模块在由一个或多个处理器执行时使系统执行包括以下的操作:确定远程设备要接收软件更新;标识与远程设备相关联的公共存储根密钥(srk);确定与操作于远程设备上的固件的可信操作相关联的平台配置寄存器(pcr)的第一集合;确定与远程设备上的软件更新的至少部分的预期的操作相关联的pcr的第二集合;确定随机对称密钥(rsk);使用rsk将软件更新加密为加密的软件包;使用rsk将pcr的第一集合和pcr的第二集合加密为加密的配置设置;利用远程设备的公共srk将rsk加密为加密的rsk;以及将加密的软件包、加密的配置设置、以及加密的rsk传输到远程设备,其中,加密的软件包的至少部分由远程设备至少部分地基于远程设备的私有srk来导入。

示例b、根据示例a的系统,操作还包括:从远程设备接收加密的软件包与远程设备唯一地相关联的第一指示;以及从远程设备接收远程设备处于可信状态的第二指示。

示例c、根据示例a或示例b的系统,操作还包括在由服务提供商对远程设备的初始化期间确定pcr的第一集合。

示例d、根据示例a至示例c中的任一项的系统,其中远程设备的公共srk与远程设备的可信平台模块(tpm)相关联。

尽管以上关于一种系统来描述示例a至示例d,但是应当理解,在本文档的上下文中,示例a至示例d的内容也可以经由一种设备、计算机可读介质和/或一种方法来实现。

示例e、一种计算机实现的方法,包括:在设备处接收加密的卷;至少部分地基于与远程设备相关联的私有存储根密钥(srk)来解密加密的卷的至少第一部分;确定加密的卷的至少第一部分与设备唯一地相关联;确定设备处于可信状态;以及将加密的卷的至少第二部分作为导入的卷导入到设备,导入至少部分地基于设备的私有srk。

示例f、根据示例e的计算机实现的方法,其中加密的卷包括至少加密的软件包以及一个或多个加密的密钥,并且其中导入包括至少以下:至少部分地基于设备的私有srk来将一个或多个加密的密钥解密为一个或多个解密的密钥;至少部分地基于一个或多个解密的密钥来将加密的软件包的至少部分解密为解密的软件包;以及至少部分地基于与设备相关联的对称srk来将解密的软件包的至少部分加密为导入的软件包。

示例g、根据示例f的计算机实现的方法,其中,导入还包括删除与在导入的软件包中被加密的至少部分相对应的加密的软件包的至少部分。

示例h、根据示例e至示例g中的任一项的计算机实现的方法,其中,加密的卷包括至少一个或多个加密的配置设置以及一个或多个加密的密钥,并且其中确定设备处于可信状态包括:至少部分地基于设备的私有srk来将一个或多个加密的密钥解密为一个或多个解密的密钥;至少部分地基于一个或多个解密的密钥来将一个或多个加密的配置设置的至少部分解密为解密的配置设置;将被包括在加密的配置设置中的至少第一平台配置寄存器(pcr)配置与由设备的可信平台模块(tpm)确定的至少第二pcr配置进行比较;以及确定至少第一pcr配置与至少第二pcr配置相对应。

示例i、根据示例e至示例h中的任一项的计算机实现的方法,还包括在初始化设备时至少部分地基于与设备的固件的操作相关联的平台配置寄存器(pcr)值来确定设备处于可信状态。

示例j、根据示例e至示例i中的任一项的计算机实现的方法,还包括:至少部分地基于设备的私有srk来将加密的卷的至少部分解密为解密的部分;将解密的部分加载到设备的启动管理器中;以及至少部分地基于加载,确定与启动管理器相关联的至少一个平台配置寄存器(pcr)。

示例k、根据示例e至示例j中的任一项的计算机实现的方法,还包括至少部分地基于与设备相关联的公共签注密钥来建立设备与服务提供商之间的信任。

示例l、根据示例e至示例k中的任一项的计算机实现的方法,还包括将导入的卷的至少部分以加密的形式存储在设备的存储器中。

示例m、根据示例e至示例l中的任一项的计算机实现的方法,其中计算机实现的方法的至少部分结合与设备相关联的可信平台模块(tpm)来执行。

示例n、根据示例e至示例m中的任一项的计算机实现的方法,还包括:确定与操作于设备上的固件的可信操作相关联的平台配置寄存器(pcr)的集合;将pcr的该集合加密在加密的卷内;以及由服务提供商将加密的卷传送到设备。

示例o、根据示例e至示例n中的任一项的计算机实现的方法,还包括:确定设备要接收软件更新;确定与设备上的软件更新的至少部分的预期的操作相关联的平台配置寄存器(pcr)的集合;将pcr的该集合加密在加密的卷内;以及由服务提供商将加密的卷传送到远程设备。

尽管以上关于一种方法来描述示例e至示例o,但是应当理解,在本文档的上下文中,示例e至示例o的内容也可以经由一种设备、系统和/或计算机可读介质来实现。

示例p、一种系统包括:一个或多个处理器;以及存储器,其存储模块,模块在由一个或多个处理器执行时使系统执行包括以下的操作:接收加密的卷;至少部分地基于与设备相关联的私有存储根密钥(srk)来解密加密的卷的至少第一部分;确定加密的卷的至少第一部分与设备唯一地相关联;确定设备处于可信状态;以及将加密的卷的至少第二部分作为导入的卷导入到设备,导入至少部分地基于设备的私有srk。

示例q、根据示例p的系统,其中,加密的卷包括至少加密的软件包以及一个或多个加密的密钥,并且其中导入包括至少以下:至少部分地基于设备的私有srk来将一个或多个加密的密钥解密为一个或多个解密的密钥;至少部分地基于一个或多个解密的密钥来将加密的软件包的至少部分解密为解密的软件包;以及至少部分地基于与设备相关联的对称srk来将解密的软件包的至少部分加密为导入的软件包。

示例r、根据示例p或示例q的系统,操作还包括在初始化设备时至少部分地基于与远程设备的固件的操作相关联的平台配置寄存器(pcr)值来确定设备处于可信状态。

示例s、根据示例p至示例r中的任一项的系统,还包括将数据提供给服务提供商的多个传感器,操作还包括将多个传感器中的至少一个传感器确定为要接收软件更新的设备。

示例t、根据示例p至示例s中的任一项的系统,操作还包括:确定设备要接收软件更新;确定与设备上的软件更新的至少部分的预期的操作相关联的平台配置寄存器(pcr)的集合;将pcr的该集合加密在加密的卷内;以及由服务提供商将加密的卷传送到设备。

尽管以上关于一种系统来描述示例p至示例t,但是应当理解,在本文档的上下文中,示例p至示例t的内容也可以经由一种设备、计算机可读介质和/或一种方法来实现。

结论

尽管本公开可以使用特定于结构特征和/或方法操作的语言,但是本公开不限于本文所描述的特定特征或操作。相反,特定特征和操作被公开为实施本公开的说明性形式。

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