用于客户提供的完整性的双重签名可执行镜像的制作方法

文档序号:15575476发布日期:2018-09-29 05:25阅读:288来源:国知局

本申请要求于2016年2月10日递交的美国临时申请no.62/293,692的优先权,其全部内容通过引用被结合于此。

本公开涉及提供网络设备上的安全软件安装和更新。



背景技术:

随着企业计算和网络的不断增长,这些系统的管理员/所有者经常需要确保在网络设备上加载和执行的镜像(image)不会被与我方对立的恶意方改变或篡改。在某些部署(例如,政府和金融网络)中,例如要求网络设备提供安全且持续的服务。但是,这可能难以实施,特别是当出于安全考量而需对运行在客户驻地设备(“cpe”)上的软件进行更新或修补时。因此,鉴于网络设备在对关键基础设施的操作中的核心作用,网络设备的所有者/管理员可能需要在对将在设备上运行的任意软件进行部署之前对其进行认证。

附图说明

图1是示出根据示例实施例的其中对网络设备上的镜像进行验证的网络安全管理系统的高级示图。

图2是根据示例实施例的被配置为参与网络安全管理系统的操作的客户驻地设备装置的框图。

图3是根据示例实施例的客户驻地设备装置中的写入受保护的密钥存储库的示图。

图4是示出根据示例实施例的将企业和/或所有者/管理员密钥材料写入到客户驻地设备装置中的密钥存储库的示图。

图5是示出根据示例实施例的处于设置模式的客户驻地设备装置的流程图。

图6是示出根据示例实施例的镜像的启动序列的流程图。

图7是示出根据示例实施例的用于对镜像进行双重签名的方法的流程图。

图8是示出根据示例实施例的用于对镜像进行重新签名的方法的流程图。

图9是示出根据示例实施例的用于在设置模式下安全地写入密钥存储库的方法的流程图。

图10a和图10b是描绘根据示例实施例的为了在客户驻地设备装置上对镜像进行双重签名所执行的操作的流程图。

图11是描绘根据示例实施例的为了在客户驻地设备装置上验证和安装镜像所执行的操作的流程图。

具体实施方式

概述

本发明的各个方面在独立权利要求中阐述,并且优选的特征在从属权利要求中阐述。一个方面的特征可以单独或与其他方面结合应用于这些方面。

根据一个实施例,计算设备接收已用第一密钥签名的镜像,其中,镜像包括与其相关联的第一计算值。确定与镜像相关联的第二计算值,并且使用第二密钥对镜像进行签名以产生包括第一和第二计算值两者的双重签名镜像。在加载双重签名镜像之前,计算设备尝试使用第一和第二计算值来验证该双重签名镜像,并且如果成功,则安装该双重签名镜像。

还描述了用于实现本文描述的方法的系统和装置,包括网络节点、计算机程序、计算机程序产品、计算机可读介质以及编码在有形介质上的用于实现这些方法的逻辑。

示例实施例

首先参考图1,其描绘了包括客户网络105的客户驻地实体(“cpe”)安全管理系统100的框图,客户网络105又包括cpe设备110、客户密钥材料设备120、和网络控制器130。企业服务器140和可信权限机构(trustedauthority)150也是系统100的一部分,它们连接到cpe设备110与之具有连接性的外部网络160。如图1所示,cpe设备110与密钥材料设备120直接通信并且与网络控制器130通信。cpe设备110还通过外部网络160与企业密钥服务器140和可信权限机构150通信。cpe设备110可以是由网络控制器130监控的模块化客户系统中的现场可更换单元(fru),并且可以在客户网络105中移动。cpe设备110可以直接从密钥材料设备120接收与cpe设备110的所有者/管理员相关联的密钥材料,该密钥材料设备可以是可以直接插入cpe设备110的通用串行总线(usb)棒或其他存储器设备。cpe设备110还可以从企业服务器140接收与已知企业实体相关联的公共密钥材料,并且还可以从企业服务器140接收用与已知企业实体相关联的私有密钥材料签名的镜像和/或镜像的更新。应该理解,企业实体可以是cpe设备110的制造商或者cpe设备110的所有者/管理员已知的任何其他可信源。系统100可以被配置为使得无论是企业服务器140还是可信权限机构150都不处于客户用来安装存储于密钥材料设备120的密钥材料或者修改先前存储于cpe110的加密密钥的关键路径。因此,客户可以以每设备为基础来在cpe设备110上安装加密密钥和证书,使得cpe设备110上的破解(compromise)并不会影响客户网络130中的其他客户设备。

在诸如图1中所示的那些部署之类的部署中,客户或系统管理员可能希望能够将在cpe设备上的镜像安装限制为仅那些经过验证的并由制造商和cpe设备的管理员/所有者签名的镜像。为了加强安全性和数据完整性,在将密钥材料加载到cpe设备上之前,还需要用户/管理员的物理参与。

通常,用户/管理员可以将存储在客户密钥材料设备120上的多个平台密钥(pk)和密钥交换密钥或密钥加密密钥(kek)添加到cpe设备110上的密钥存储库,使得在将镜像安装到cpe设备110上之前,与已知的企业实体和cpe设备110的所有者/管理员两者相关联的并被存储在cpe设备110上的pk和kek可以被用于对该镜像进行认证。应该理解,企业实体可以是作为可信源的任何实体,包括但不限于cpe设备110的制造商,并且所有者/管理员可以是具有cpe设备110的物理主导权和控制的任何实体,包括但不限于购买cpe设备110的客户。还应理解,任何一组合适的证书或密钥可以被用于在镜像或应用被安装在cpe设备110上之前对其进行认证。

此外,如果cpe设备110在客户网络130中移动,则客户/管理员可以修改密钥存储库的内容以重新初始化cpe设备110上的镜像。根据实施例,如下面更详细讨论的,系统100可以被配置为可以使得客户被要求在被允许修改或定制驻留于cpe设备110的一个或多个密钥存储库的内容之前建立物理参与。

系统100可以被配置为使得企业密钥材料可以被预先填充到cpe设备110上,或者还可被配置为使得企业密钥服务器140可以经由外部网络160在cpe设备110上安装或修改企业密钥材料。cpe设备110还可经由外部网络160向可信权限机构150请求有效证书以认证企业密钥材料,从而使cpe设备110能够验证存储于cpe设备110的可启动镜像已由已知企业实体签名。在cpe设备认证了企业密钥材料之后,如下面进一步讨论的,cpe设备可以使用企业密钥材料来解密镜像的签名散列值以确定镜像是否已被第三方篡改或改变。

应该理解,图1中可以有多个客户站点/网络130,其中,每个客户站点/网络130可以包括一个或多个cpe设备110。

cpe安全管理系统100允许所有者/管理员实体对一个或多个cpe设备110上的可启动镜像进行签名与认证,并且在镜像被安装在一个或多个cpe设备110上之前验证镜像已由企业实体和所有者/管理员实体双方签名。系统100还提供了一种机制,用以在与所有者/管理员实体相关联的密钥材料可以在cpe设备110上被安装或修改之前,要求物理接近cpe设备110。

现在参考图2,其更详细地示出了图1的cpe设备110。cpe设备110是计算设备。如图2中所示,cpe设备110包括一个或多个处理器210、存储器220、一个或多个网络接口单元270、以及具有容纳一个或多个插槽卡290(n)的一个或多个线卡插槽的机箱280。为此,存储器210存储用于认证模块230、硬件安全模块215和启动加载程序模块240的可执行软件指令,并存储用于密钥存储库250和镜像数据存储库260的数据。一个或多个处理器210可以是微处理器或微控制器。一个或多个网络接口单元270可以采取网络接口卡的形式,其使得网络通信(诸如有线或无线网络通信)能够与客户网络130、企业密钥服务器140、和/或可信权限机构150中的其他设备进行通信。一个或多个插槽卡290(n)可以各自具有能够独立处理交换和/或路由功能的各种硬件。因此虽然在图2中未这样示出,可行的是,每个插槽卡290(1)-290(n)都可以包括处理器210、存储认证模块230、启动加载程序240、密钥存储库250和镜像数据存储库260的存储器220、以及网络接口270。根据实施例,cpe设备可以是能够在客户网络105内交换和/或路由流量的网络设备,例如交换机、路由器等。存储器220可以包括只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质设备、光存储介质设备、闪存设备、电、光或其他物理/有形存储设备。因此,通常,存储器210可以包括用包含计算机可执行指令的软件编码的一个或多个有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(由处理器210)时可操作来执行本文描述的cpe设备110的操作。

认证模块230包括用于认证镜像已被已知企业实体和所有者/管理员实体双方签名的指令,并且启动加载程序模块240负责在认证模块230对镜像进行认证之后启动该镜像。处理器210可以执行用于认证模块230和启动加载程序模块240的指令。例如,处理器210可以执行使得认证模块230认证存储在镜像数据存储库260中的镜像的指令。

硬件安全模块215被配置为生成要被应用于镜像和/或镜像的计算值(例如,散列)的数字签名。具体而言,硬件安全模块215被配置为使用与设备110相关联的私有密钥生成签名,并提供与该私有密钥唯一相关联的公共密钥,其使得验证模块230能够验证给定签名是由硬件安全模块215生成的。硬件安全模块215还被配置为保护和管理用于认证企业实体和cpe设备110的所有者/管理员二者的数字密钥。根据实施例,硬件安全模块215可以是驻留在cpe设备110上的插入卡(plug-incard),或者可以是直接附接到cpe设备110的外部设备。根据另一实施例,硬件安全模块215的功能可由制造或企业实体离线执行,例如,在制造或企业实体驻地处进行的cpe设备110的构建过程期间。

通常,所公开的实施例提供了一种安全环境,其中,所有者/管理员可以通过生成所有者设备特定的证书、下载和验证可信镜像和包、对可信包和镜像进行签名、以及在镜像被安装在cpe设备110上之前对镜像进行认证和准备来取得cpe设备的“所有权”。所有者设备特定的证书可以包括客户pk、客户kek、和整合客户-企业密钥材料。根据实施例,可以用双重签名可信包、双重签名基本输入/输出操作系统(bios)、所有者设备特定的证书和由可信权限机构150(图1)提供的证书导入工具包来准备镜像。

现在参考图3,其示出了根据示例实施例的cpe设备110中的密钥存储库250的框图。如图3所示,密钥存储库250可以是写入受保护的并且可以存储与一个或多个企业实体平台密钥310和一个或多个企业实体密钥交换密钥320相关联的一个或多个数字证书,例如x.509证书,以及与一个或多个客户平台密钥330和一个或多个客户密钥交换密钥340相关联的一个或多个数字证书。x.509是用于管理数字证书和公共密钥加密的公共密钥基础设施(pki)的标准示例,也是用于保护web和电子邮件通信安全的传输层安全协议的一部分。x.509是itu-t标准,并规定了用于公共密钥证书的格式、证书撤销列表、属性证书、和证书路径验证算法。根据实施例,cpe设备110可以从可信权限机构160接收与已知企业实体和/或所有者/管理员实体相关联的一个或多个x.509证书。密钥存储库250还可包括数据库350和关系数据库360。

如图3进一步所示,数据库350可以存储与cpe设备110的操作系统(“os”)的镜像相关联并且由已知企业实体签名的证书352。密钥存储库250还可以存储与客户网络的所有者/管理员相关联的一个或多个安全证书354。根据实施例,证书352可以与针对cpe设备110的操作系统的镜像相关联,并且使用公共-私有密钥对进行签名,该公共-私有密钥对的公共密钥可以作为x.509终端实体(ee)证书被呈现给所有者/管理员。根据另一实施例,cpe设备110的所有者/管理员可使用标准工具(例如openssl)离线地验证与证书352相关联的镜像。

现在参考图4,其为写入环境400的框图,并且示出了根据示例性实施例的企业和/或所有者/管理员将密钥材料写入可以容纳在例如线卡290(1)上的密钥存储库250。如图4所示,写入环境400包括拨码开关(dipswitch)410、密钥存储库250、和统一可扩展固件接口(uefi)基本输入/输出系统(bios)接口420。uefibios接口420被配置为运载多个pk和kek,使得所有者/管理员能够将pk和kek添加到cpe设备110中的密钥存储库250。也就是说,通过到cpe设备110的uefibios420接口,所有者/管理员可被允许修改或定制密钥存储库250中的密钥材料。

如图4进一步所示,容纳在线卡290(1)上的密钥存储库250是写入受保护的,并经由线412和414与拨码开关410通信。当拨码开关410被设置到“开启”时,例如“1”,可以使得所有者/管理员能够将密钥材料写入密钥存储库250。根据实施例,如果设置到“开启”,则线412使得密钥材料能够被写入到cpe设备110中的所有线卡290(1)-290(n),而线414使得密钥材料仅能够被写入到特定的线卡,例如290(1)。根据另一实施例,cpe设备110中的线卡290(1)-290(n)中的每一者可包括仅启用关于该特定线卡的写入操作的单个拨码开关。

通常,写入环境400以安全的方式将管理员/所有者密钥材料(例如,pk和kek)传输到密钥存储库250中,并且通过添加证书作为认证变量而将所有者设备特定证书随后添加到密钥存储数据库350中。根据实施例,密钥存储库250的默认设置是写入受保护的,即,密钥材料不可被写入密钥存储库250。因此,为了将密钥材料写入密钥存储库250,必须首先将拨码开关410上的适当开关设置到“开启”,从而允许将写入操作写入密钥存储库250中。因此,所公开的实施例提供了一种机制,籍此在将密钥材料写入到密钥存储库250之前需要所有者/管理员的物理参与,从而确保密钥材料的完整性。

现在参考图5,示出了根据实施例的在设置模式环境500中的cpe设备110的流程图。也可以结合图5的描述来参考图1-图4。如图5所示,设置模式环境500中的cpe设备110可以包括存储器210中的两个数据结构,其可以分别存储包括安全证书的密钥材料502和503以用于认证加载到cpe设备110上的镜像(例如,软件和应用)。例如,存储器210中的第一数据结构可以在cpe设备110的在厂房中构建时(即,在设备110被运送给客户之前)初始填充有企业密钥材料(eepk)502,并且存储器210中的第二数据存储器结构稍后可以填充有客户密钥材料506。根据实施例,企业密钥材料502可以被烧制到存储器210中以防止第三方篡改密钥材料502。可选地,企业服务器140可以将企业密钥材料(例如,密钥材料502)传送到cpe设备110,该cpe设备可以基本在cpe设备110的初始安装的同时将企业密钥材料(例如,502)存储在存储器210中。应该理解,密钥材料502和503可以包括但不限于从可信权限机构130接收的平台密钥、密钥交换密钥、公共-私有密钥对、和x.509安全证书。

根据实施例,cpe可以以三种不同的模式操作,每种模式具有不同配置的预先存储的密钥材料。例如,在设置模式中,单个企业实体的密钥材料(例如密钥材料502)可被存储在设备110上;在客户签名镜像模式中,企业密钥材料502和客户密钥材料506都可被加载并存储到设备110上,使得设备110能够使用客户和制造商密钥材料两者来验证镜像;并且在制造商签名镜像模式下,只有企业密钥材料(例如密钥材料502和504)被加载并存储到设备110上,使得设备110仅使用企业密钥材料来验证镜像。

如图5进一步所示,在步骤520处,设备110的企业实体或所有者/管理员最初可请求企业服务器140将企业密钥材料传输到设备110上,该企业密钥材料在步骤530处可以作为密钥材料502存储在设备110上。之后,当cpe设备110被启动时,即接通电源时,其可进入设置模式,在该模式中cpe设备110具有确定密钥材料502和503是否已被成功加载到设备110上的有限功能。如果设备110确定两个密钥材料502和503还没有被成功加载到设备110上,则设备110的所有者/管理员可以选择在步骤540处使其自己的密钥材料(例如密钥材料506)从设备120被传送,并且在步骤550处将其作为密钥材料503加载到设备110上。可选地,在步骤560处,设备110的所有者/管理员可以从企业服务器140请求原始企业密钥材料(诸如密钥材料502),其可以作为密钥材料503被加载到设备110上。一旦完成,cpe设备110可退出设置模式,从而允许成功地安装相关联的镜像。

如下面进一步讨论的,驻留在cpe设备110上的所有系统和软件在被加载到cpe设备110上之前需要与这些系统和/或软件相关联的两个签名和/或证书。根据实施例,如果包含和管理用于cpe设备110的启动框架的uefibios420已被修改,使得其仅确定一组密钥材料(例如密钥材料502),并且另一密钥材料503被标记为空,则将不会进展到启动cpe设备110。相反,cpe设备110将继续执行bios420,其中,cpe设备110将等待所有者/管理员提供可用于认证镜像的密钥材料503。根据实施例,如果cpe设备110的所有者/管理员出于安全原因想要将cpe设备110返回到企业实体,则所有者/管理员可以使用其密钥材料进行认证,指示cpe设备110擦除设备110上的密钥材料(例如cpepk506),并且恢复到设置模式。可选地,诸如cpepk506之类的所有者/管理员密钥材料可以用诸如eepk502之类的企业密钥材料替换。

总之,第一次启动时,cpe设备110在将镜像加载到系统上之前需要来自某个外部源的与镜像相关联的两组密钥材料。如此,在初始启动之后加载到cpe设备110上的任何后续镜像(例如,软件和/或应用)在它将由cpe设备110安装之前必须由企业实体和cpe设备110的所有者/管理员两者共同签名的两组密钥材料进行签名。例如,cpe设备110最初可以设置为“启用”,并且诸如记忆棒设备之类的密钥材料设备120可被插入或连接到cpe设备110,以利用与cpe设备110的所有者/管理员相关联的密钥材料来填充设备。根据实施例,可以使用与企业实体相关联的公共密钥和与操作系统镜像相关联的证书来验证cpe设备110的启动。根据另一实施例,操作系统镜像可以使用与企业实体和cpe设备110的所有者/管理员相关联的可被导入到密钥存储库250(图4)中的证书来认证。在操作系统镜像已经被认证之后,该操作系统镜像可以被加载到cpe设备110上并且可以发生重新启动。

参考图6,示出了图示出根据示例实施例的cpe设备110上的可执行镜像的启动序列600的系统流程图。也可以结合图5的描述来参考图1-图5。如图6所示,系统镜像、启动加载程序镜像612、操作系统(“os”)镜像614、和基础设施(“infra”)镜像616中的每一个具有与其相关联的两个签名和/或证书,而应用(apps)镜像618只有与其相关的所有者/管理员签名和/或证书。例如,系统镜像612、614、和616中的每一者具有与已用企业实体和cpe设备110的所有者/管理员的公共密钥两者共同签名的镜像相关联的散列值。然而,如下面进一步讨论的,因为与镜像618相关联的企业签名已被认证并且被移除,所以镜像618可以仅具有与cpe设备110的所有者/管理员相关联的一个签名和/或证书。

在620处,uefibios420验证启动加载程序镜像612。bios420可以通过使用与已知企业实体相关联的公共密钥来验证镜像612,以解密与启动加载程序镜像612相关联的企业散列值。然后,bios420可以使用所有者/管理员公共密钥来解密与镜像612相关联的所有者/管理员散列值,并且将这两个散列值与计算出的与镜像612相关联的散列值进行比较。如果bios420确定这两个散列值等于与镜像612相关联的计算出的散列值,则可以发生重新启动,其中bios420将启动加载程序镜像612加载并安装到cpe设备110上以生成启动加载程序模块240(图2)。在630处,启动加载程序模块240通过解密与镜像614一起存储的企业和所有者/管理员散列值两者来验证os镜像614,并将两个解密的散列值与计算出的与os镜像614相关联的散列值进行比较。如果启动加载程序模块240验证这两个散列值均与镜像614相关联的散列值相同,则可以发生重新启动,其中,启动加载程序模块240将os镜像614加载到cpe设备110上并将与os镜像614相关联的操作系统安装在cpe设备110上。

在镜像614存储的操作系统被验证并安装之后,os614中的内核进程可以在640处验证环境镜像,例如infra镜像616。如上所述,在镜像616可被加载并安装到cpe设备110上之前需要两个经签名的散列值。例如,内核进程可以计算与镜像616相关联的散列值,并且将计算出的散列值与和infra镜像616一起存储的两个散列值进行比较,并且如果两个散列值等于计算出的与镜像616相关联的散列值,则内核进程可以允许环境镜像616被加载并安装在cpe设备110上。

在启动加载程序镜像612、os镜像614和infra镜像616已被成功验证并安全安装之后,可能期望将cpe设备110设置到可选的“所有者”模式中,在该模式中cpe设备110的所有者/管理员可以将应用镜像安装到设备110上。与操作系统和基础设施镜像一样,应用镜像在被安装在cpe设备110上之前必须被认证。然而,因为所有者/管理员正在将程序直接加载到cpe设备110上,所以最初与apps镜像618一起存储的企业签名在cpe设备110的所有者/管理员重新分配具有与apps镜像618的散列值相关联的apps镜像618之前被认证并被移除。例如,如图6所示,在650处可以仅使用与cpe设备110的所有者/管理员相关联的签名散列值来验证apps镜像618。如果apps镜像618被成功验证,则infra镜像616可以允许apps镜像618被加载并安装在cpe设备110上。

参考图7,示出了图示出根据示例实施例的用于双重签名镜像的方法700的系统流程图。如上所述,镜像在被加载并被安装到cpe设备110上之前,必须由两个实体签名。相应地,如图7所示,签名对象(sobj)镜像710可以包括目标文件(obj)705、与obj文件705相关联的加密散列值707(其可用与已知企业实体相关联的私有密钥签名)、以及与已签名散列值707的已知企业实体相关联的安全证书709。在720处,从经签名的sobj镜像710中提取obj文件705,并且在730处生成与对象(obj)文件705相关联的散列值735。例如,对目标文件(obj)705执行安全散列算法(“sha”),例如sha2,以生成散列值735。然而,应该理解,可对obj文件705执行任何单向算法来生成可用于验证obj文件705的计算值。

在740处,从签名sobj镜像710提取加密散列值707,并且使用至少包括在证书709中的信息来验证与签名散列值707的企业实体相关联的证书709。根据实施例,证书709可以由可信权限机构150(图1)生成,并且可以包括标识与特定企业实体相关联的公共密钥和证书709在其期间有效的有效时间段的信息。根据另一实施例,已知企业实体可以生成加密散列值707、用与已知企业实体唯一关联的私有密钥对该经加密散列值707进行签名、并将签名加密散列值707和证书709附加到obj文件705以生成签名sobj镜像710,其在运送cpe设备110之前可由企业实体存储在密钥存储库250中。

如果与加密散列值707和企业实体相关联的证书709被验证,则在750处,使用与用于加密散列值707的私有企业密钥相关联的公共密钥来解密该加密散列值707以生成加密散列值755。在760处,比较散列值735和755以确定它们是否相等。如果它们相等,则在770处,使用与cpe设备110的所有者/管理员相关联的私有加密密钥来加密散列值755以产生散列值775,并且生成与cpe设备110的所有者/管理员相关联的证书777。在780处,将散列值775附加到签名sobj镜像710,并且在790处,证书777还被附加到签名sobj镜像710以生成双重签名对象(dobj)镜像795。双重签名dobj镜像795因此可以包括obj文件705、由已知企业实体签名的加密散列值707、与已知企业实体和散列值707相关联的证书709、由cpe设备110的所有者/管理员签名的加密散列值775、以及与所有者/管理员和散列值775相关联的证书777。因此,由于双重签名dobj镜像795是由已知的企业实体和cpe设备110的所有者管理员双方签名的,dobj镜像795可以被加载到cpe设备110上并且使用本文所描述的技术进行认证。

因此,通常,允许cpe设备110的部分功能被在未授权的入侵时被有效地关闭,从而保持在cpe设备110上运行的硬件和软件(诸如bios420、启动加载程序镜像612、os镜像614、和infra镜像616)的完整性。本文公开的双重签名镜像方法还向客户提供供应链完整性,同时提供了一种允许信任被向软件堆栈告知的可信平台。

参考图8,示出了图示出根据示例实施例的用于重新签名镜像的方法800的系统流程图。如上所述,在“所有者”模式中,应用镜像在被加载并安装在cpe设备110上之前可以由所有者/管理员重新签名。相应地,如图8所示,由已知企业实体签名的企业对象(eobj)镜像810可以包括目标文件(obj)805、与obj文件805相关联的加密散列值807(其可以用与已知企业实体相关联的私有密钥签名)、以及与已签名散列值807的已知企业实体相关联的证书809。在820处,obj文件805被从eobj镜像810提取出,并在830处生成与obj文件805相关联的散列值835。例如,对对象文件805执行诸如sha2之类的安全散列算法(“sha”)以生成散列值835。然而,应该理解,可以对对象文件805执行任何单向算法来生成可以用于认证对象文件805的计算值。

在840处,从eobj镜像810提取加密散列值807,并且使用至少包括在证书809中的信息来验证与已签名散列值807的企业实体相关联的证书809。如果证书被验证,则在850处,使用与用于加密散列值807的私有企业密钥相关联的公共密钥来解密经加密散列值807以生成加密散列值855。在860处,比较散列值835和855以确定它们是否相等。如果它们相等,则在870处,使用与cpe设备110的所有者/管理员相关联的私有加密密钥来加密散列值855以产生散列值875,并且生成与cpe设备110的所有者/管理员相关联的证书877。在880处,散列值875被附加到obj文件805,并且在890处,证书877也被附加到obj文件805以生成包括与已由cpe设备110的所有者/管理员重新签名的obj文件805相关联的单个加密散列值的客户对象(cobj)镜像895。

一般而言,在infra镜像616已被认证并安装之后,结合图8描述的实施例允许可选的“所有者”模式,在该模式中cpe设备110的所有者/管理员可以在所有者/管理员的驻地中将应用安全地安装在cpe设备110上。

参照图9,示出了根据一个实施例的用于将密钥材料安全地写入密钥存储库250以认证并加载cpe设备110上的os镜像614的方法900的流程图。如图9所示,密钥存储库250可以是写入受保护的并可存储与一个或多个企业实体平台密钥(eepk)310和一个或多个企业实体密钥交换密钥(eekek)320相关联的一个或多个x.509证书,以及与一个或多个客户平台密钥(cpepk)330和一个或多个客户密钥交换密钥(cpekek)340相关联的一个或多个x.509证书。密钥存储库250还可包括数据库350和关系数据库360。如图3进一步所示,数据库350可以存储与由企业实体签名的可启动镜像相关联的证书(osee)352和与所有者/管理员相关联的一个或多个安全证书(cpeee)354。如图所示,与证书352相关联的可启动镜像可以是操作系统(“os”)。

如图9进一步所示,密钥存储库250是写入受保护的,并且通过线910与拨码开关410通信,当被设置到“开启”(例如,“1”)时,可以允许所有者/管理员将密钥材料写入密钥存储库250。根据实施例,cpe设备110的所有者/管理员不需要可信源来对他们的任何凭证签名,以便将密钥材料部署到cpe设备110上。通常,如果密钥存储库250例如通过uefibios420的经更新的要求授权双重签名镜像,则cpe设备110将仅安装双重签名的并且能够使用密钥存储库250中的证书进行验证的启动加载程序。类似的过程可以用于cpe设备110上的软件更新。

根据实施例,可以使用bios封装更新来执行对uefibios420的更新,并且可以由可信源(例如,已知的企业实体)来提供签名uefibios420。可信源还可以提供可用于向更新添加额外的(例如,所有者/管理员特定的)签名的工具,使得可以生成新的更新封装(updatecapsule)。然后经更新的uefibios可以通过uefibios420被放置在cpe设备110(图2)的存储器220中的已知位置中,并且bios中的系统管理模式(smm)可以通过新的uefibios420拷贝并进行复位。

在将线卡290(n)插入到cpe设备110中时,本地拨码开关410可被设置到“开启”,使得密钥存储库250能够用例如来自密钥材料设备120的密钥材料进行填充并使得cpe设备110发起基本的操作系统启动。例如,当线卡290(n)被插入到cpe设备110中时,每卡拨码开关可随着卡290(n)被插入而被切换至“开启”。如图6中所示,镜像启动可以在os镜像614处保持复位,并且用户或操作员可以从密钥材料设备120将所有者/管理员特定的密钥材料导入到线卡上。在需要时,uefibios420和/或启动加载程序镜像612可以被更新。在更新bios420和/或启动加载程序镜像612时,拨码开关410可被复位并且线卡290(n)可被重新启动,并且操作系统可以将其自身重新镜像至参考镜像。

一般而言,本文中呈现的实施例允许在密钥存储库250中存在多个密钥材料。例如,当cpe设备110被运送给客户时,其可以和与企业实体相关联的密钥材料和凭证(例如,企业密钥加密密钥、企业公共密钥、以及与企业实体相关联的证书)一起被运送。密钥材料和凭证被存储在数据库350中。当cpe设备110的所有者/管理员接收到cpe设备110时,所有者/管理员可以将他们的密钥材料(例如,公共密钥、密钥加密密钥、和证书)填充到数据库350中。然而,因为密钥存储库250是写入受保护的,所以必须将拨码开关410设置到“开启”,从而使得拨码开关410经由线910向密钥存储库250发送信号,使得cpe设备110的所有者/管理员能够将其密钥材料写入密钥存储库250。应该理解,可以使用任何合适的基于硬件的机制来将密钥存储库250转换到写入启用模式。例如,可以使用cpe设备110上的按钮或螺丝刀(screwdriver)。由拨码开关生成和发送的该信号充当用于确定外部设备(拨码开关或按钮)被直接连接到cpe设备110的授权信号。

在cpe设备110的所有者/管理员完成密钥材料到数据库350中的写入操作之后,cpe设备110的所有者/管理员可以将拨码开关410上的设置恢复到“关闭”,从而将密钥存储库250转换回写入-保护模式。因此,如果相关联的机械/硬件设置被设置为准许软件写入到设备110上,则软件可以仅被写入到cpe设备110上。如果机械/硬件设置未被设置为允许写入操作发生,则对cpe设备110的任何写入操作都会失败。

根据实施例,当密钥存储库250从写入受保护转变为写入启用时,警报从cpe设备110向网络控制器130(图1)被发送,以警告网络控制器130cpe设备可能被篡改。此外,一旦cpe设备110上的写入操作完成,cpe设备110将继续反复警告所有者/管理员和网络控制器130密钥存储库250保持在写入启用模式中。可选地,cpe设备110将自动地将密钥存储库250恢复到写入受保护模式,并将cpe设备置于具有有限功能的“安全”模式。

因此,一般而言,拨码开关410或任何合适的硬件/机械机构确保cpe设备110的所有者/管理员在允许对cpe设备110的写入操作之前具有对cpe设备110的物理控制。此外,如果在设备110上发起未经授权的写入操作,则向网络控制器130发送向网络控制器130警告该写入操作的警报,并且作为响应,控制器130可以在集中位置远程监视cpe设备110,为cpe设备110提供额外的安全措施以确保设备110不受基于远程的攻击。另外,关于cpe设备110上的软件更新,可以使用本文公开的双重签名实施例以及针对由cpe设备110的所有者/管理员安装的应用包进行的可选的重新签名来执行标准的、传统的软件更新。

对于卡移除和远程存储器访问(“rma”),所有者/管理员可以使用uefibios420认证的变量来更新他们已经填充在数据库350和/或数据库360中的kek密钥或凭证。此外,当从cpe设备110移除线卡290(n)时,可以使用经认证的变量顺序地移除所有者/管理员特定的凭证,例如证书354。例如,证书354以及使用cpekek340生成的数据库350的基本上任何附加内容都可以被移除。然后可以使用cpepk330移除cpekek340,然后cpepk330可被移除。应该理解,在某些情况下,移除可能是不可行的。

如果移除是不可行的,则可以将线卡插入cpe设备110中的空机箱中,其中卡特定的写入启用拨码开关被开启。使用由可信源提供的工具,可以擦除cpepk330和cpekek340,并且可以清除数据库350的内容。根据实施例,可信源可以提供经认证的变量,其可以用于恢复与数据库350中的企业实体相关联的证书。根据另一实施例,可信源(例如,已知的企业实体)也可以清除数据库350的内容。例如,如果可信源接收具有额外凭证的卡,则该卡可以被放置在空机箱中,并且在继续之前可以将过量的凭证从密钥存储库240移除。密钥无冲程序(keyrollover)可以使用标准的uefi认证变量来实现。然而,应该理解,可信源和恶意代理都不可以在客户的设备上部署任何东西或者改变客户的凭证。此外,cpe设备110的所有者/管理员通常不可篡改可信源的凭证(例如,证书310和320),并且因此可以确保cpe设备110的供应链完整性。

参考图10a和图10b,示出了图描绘根据示例实施例的在诸如前述cpe设备110之类的计算设备上对可执行镜像进行双重签名所执行的示例操作1000和1050的流程图。具体而言,图10a首先描绘由制造或企业实体执行以将由企业实体签名的启动加载程序对象文件填充到cpe设备110上的过程1000。图10b描绘了被执行以认证经签名的启动加载重新对象文件的过程1050,并且如果认证成功,则在将对象文件安装在cpe设备110上之前将客户的签名附加到启动加载程序对象文件上。应该理解,虽然图10a和图10b描绘了对加载程序对象文件进行双重签名所执行的操作,但是可以在由制造商或其他企业实体提供的被设计为安装到cpe设备110上的任何软件镜像或文件(包括但不限于操作系统镜像(例如os镜像614)和/或平台镜像(例如镜像616))上执行处理1000和1050。也可以结合图10a和图10b的描述来参考图1至图9。

如图10a所示,最初在1010处,在(例如由制造或企业实体进行的)构建过程期间,cpe设备110验证启动加载程序源代码。如果在1015处,启动加载程序源代码被成功验证,则操作进行到1025,否则操作进行到1020。在1020处,生成新的迭代启动加载程序源代码并且操作返回到1010。

在1025处,使用散列算法(例如,sha2)来生成启动加载程序对象文件的散列值,并且例如由硬件安全模块215利用与设备110相关联的加密密钥来对其进行签名。在1030处,将与设备110唯一关联的公共密钥附加到所生成的散列值。

在1035处,启动加载程序对象文件和/或启动加载程序对象文件的签名散列值被填充到设备110上,并且方法1000结束。根据实施例,启动加载程序对象文件和/或启动加载程序对象文件的签名散列值可以由制造或企业实体填充在设备110上。根据另一实施例,设备110的所有者/管理员可以将启动加载程序对象文件和/经签名散列值从企业服务器140下载到设备110上。

如图10b所示,最初在1060处,硬件安全模块215生成与启动加载程序对象文件相关联的散列值,并且在1065处,认证模块230验证启动加载程序对象文件的真实性。例如,认证模块230可通过将由硬件安全模块215生成的启动加载程序对象文件的散列值与被填充到设备110上的散列值进行比较以确定它们是否相同,来验证启动加载程序对象文件的真实性。在1070处,如果认证模块230成功地验证了启动加载程序对象文件,则操作前进到步骤1075,否则方法1050结束。

在1075处,硬件安全模块215重新生成启动加载程序镜像的散列值,并且在1080处,利用与cpe设备110的所有者/管理员相关联的加密密钥来共同签名启动加载程序对象文件的重新生成的散列值。根据实施例,硬件安全模块240可以生成与设备110相关联的公共密钥/私有密钥对,并且使用与设备110相关联的私有密钥对重新生成的散列值进行签名。在1085处,硬件安全模块215通过附加与cpe设备110相关联的公共密钥来生成新的启动加载程序镜像文件612,其包括由企业实体和cpe设备110的所有者/管理员两者签名的散列值。在1090处,新启动加载程序镜像文件612被安装在cpe设备110上,并且方法1050结束。

参考图11,其示出了描绘在计算设备上验证和安装镜像而执行的示例操作1100的流程图。出于说明的目的,参考图1-图9。

最初,在1110处,计算设备接收利用第一密钥签名的镜像,其中,镜像包括与该镜像相关联的第一计算值。在1120处,计算设备确定与该镜像相关联的第二计算值。

在1130处,计算设备用第二密钥对镜像进行签名以产生包括与该镜像相关联的第二计算值的签名镜像。

在1140处,计算设备使用第一和第二计算值两者来认证该镜像,并且如果该镜像被成功认证,则操作进行到1160,否则操作1100结束。在1160处,计算设备安装该镜像并且操作1100结束。

本文公开的实施例允许计算设备的拥有者/管理员将可启动镜像安全地安装到计算设备上。例如,所有者/管理员可以将与计算设备通信的拨码开关设置到“开启”,将计算设备上的密钥存储库转换为写入启用状态,从而允许与所有者/管理员相关联的密钥材料被写入密钥存储库。通过使用密钥存储库中的密钥材料,计算设备可以创建镜像,该镜像是由企业实体和cpe设备110的所有者/管理员双方签名的双重签名镜像。然后可以用该双重签名镜像重新启动计算设备。额外地,可以提供双重签名基础设施包以用于所有者/管理员特定设备的软件更新,并且还可以提供可选的重新签名应用包。

实施例的优点包括提供额外的安全层以控制/限制第三方恶意攻击客户拥有的网络设备的能力。在某些部署中,例如政府和金融机构,要求网络设备提供安全的、持续的服务。因此,本文所指的计算设备(cpe设备)可以是将被部署在期望该额外安全层的某些环境中的网络交换机、路由器、防火墙等。根据本文给出的实施例,如果软件已经散列化并被网络设备的企业实体和所有者/管理员两者签名,则该软件可以仅被安装在网络设备上。与企业实体和所有者/管理员两者相关联的签名可以被认证并且相关联的散列值比较确保软件和/或更新未被第三方更改。通过这样做,网络设备验证软件的真实性,确保只有经过验证的镜像被安装在网络设备上。

根据实施例,公开了一种方法和系统,其中,双重签名镜像在被安装到客户驻地设备之前进行验证。该镜像由(a)客户驻地设备的制造商和(b)客户驻地设备的所有者/管理员(即,可信源)两者签名。通过这样做,设备的所有者/管理员能够验证镜像是由生产实体(即镜像的来源)和企业实体(即设备的所有者/管理员)两者认证的,以确定该镜像是可以被安全安装的有效安装/更新镜像。

本文呈现的实施例还提供了一种方法,用于确保存储在网络设备上并被用于认证要被加载到设备上的镜像的密钥材料的完整性。例如,在将任何密钥材料写入网络设备上的密钥存储库之前,需要将与网络设备通信的拨码开关或合适的硬件/机械装置设置为“开启”,以确保试图将密钥材料写入设备的所有者/管理员的物理参与。此外,如果在写入操作完成之后,拨码开关没有转为“关闭”,则向集中式网络控制器发送警报,提醒控制器该网络设备可能被破解,从而保护客户网络内的网络设备的完整性。

在一种形式中,提供了一种方法,包括:在计算设备处:接收已用第一密钥签名的镜像,其中,所述镜像包括与该镜像相关联的第一计算值;确定与该镜像相关联的第二计算值;用第二密钥对镜像进行签名以产生包括与该镜像相关联的第二计算值的经签名镜像;使用第一和第二计算值两者来认证镜像;并且基于该认证,将镜像安装在计算设备上。

在另一种形式中,提供了一种装置,包括:网络接口单元,用于实现网络通信;以及处理器,其被耦合到所述网络接口单元,并且被配置为:接收已经用第一密钥签名的镜像,其中,所述镜像包括与该镜像相关联的第一计算值;确定与镜像相关联的第二计算值;用第二密钥对镜像进行签名以产生包括与该镜像相关联的第二计算值的经签名镜像;使用第一和第二计算值两者来认证镜像;并基于该认证来安装镜像。

在又一种形式中,提供了存储指令的非暂态处理器可读介质,这些指令在由处理器执行时使得处理器:接收已用第一密钥签名的镜像,其中,镜像包括与该镜像相关联的第一计算值;确定与镜像相关联的第二计算值;用第二密钥对镜像进行签名以产生包括与该镜像相关联的第二计算值的经签名镜像;使用第一和第二计算值两者来认证镜像;并基于该认证,将镜像安装在计算设备上。

在一个实施例中,设置统一可扩展固件接口(uefi)基本输入/输出系统(bios)密钥库以承载多个平台密钥(pk)和密钥交换密钥(kek),并且允许用户(例如,运营商或客户)将pk和kek添加到密钥库。也就是说,客户可能被允许修改密钥库。应该理解,可以有效地要求客户在他们被允许修改密钥库的内容之前建立物理参与。通过在系统首次驱动(onboard)时实现过程和/或处理,客户可在模块化系统中的现场可更换单元(fru)移动时、以及在与备份有关的其他处理时被允许修改密钥库的内容。

对于驱动,基本上需要操作员来建立物理参与,然后使用根据本公开的系统来更新密钥库。在一个实施例中,通过使用linux架构,可以针对由可信实体(例如,根据本公开提供系统的实体)签名的、但是在文件系统中的操作系统来使用存储器启动。镜像和软件包还可以运载除通常的可信签名或来自可信实体的签名之外的客户签名。根据本公开的系统可以被配置为验证签名镜像(如由可信源签名)、添加额外的签名以及重新打包所签名的软件,并且因此可以在设备上运行。另外,在存储器启动过程中,双重签名镜像可以被基本上安装到硬盘上。一旦修改完成,客户可能会重新启动系统。在一个实施例中,系统将基本上仅保证启动到由可信实体和客户双方签名的os中。

对于fru动作,当基本上出于任何目的(例如,oir或rma)移除卡时,这些机制可允许客户清除卡上的密钥,并且当卡插入系统中时将密钥添加回去。

使用密钥对来对来自加利福尼亚州圣何塞的思科系统公司的ios-xr的典型镜像进行签名,该密钥对的公共密钥可以作为x.509ee证书呈现给客户。客户可以使用标准工具(例如,诸如openssl中的标准工具)离线验证镜像。写入受保护的密钥库中的设备随x.509证书运载csco-pk、针对其所派生出的kek、以及数据库(db)中的ngos平台密钥。图1是根据实施例的架构的图示。

在一个实施例中,在架控制器(sc)卡中可存在两个拨码开关,当其被设置至“开启”时,可允许密钥库被写入。假设可建立物理参与来切换该拨码开关。一个拨码开关允许机箱中的所有密钥库都是可写入的,而第二个拨码开关基本上只允许该sc卡上的本地密钥库。机箱中的每个线卡(lc)可以是单个拨码开关,其只允许对该线卡的写入操作。

在一个实施例中,密钥库是写入受保护的,并且具有来自sc卡的两个线。一个线在架上的所有卡上是写入启用的,而另一个线仅在sc卡上是写入启用的。可以以安全的方式输入pk(例如,r2-pk)和kek(例如,r2-kek),并且将r2特定证书随后添加到数据库中是通过将证书添加为经认证的变量来完成的。为了让用户获得所有权,驱动系统上的典型用户准备可包括生成r2特定证书、下载和验证可信的(例如,思科)镜像和包、对可信包签名、以及准备可启动的通用串行总线(usb)。r2特定证书可包括r2-pk、r2-kek和r2-ee。可信包可以使用r2-ee进行签名。可启动usb可以使用双重签名可信包、双重签名bios、r2特定的证书、以及可信实体提供的证书导入工具箱来准备。

在可操作r2系统中,可信的(例如cisco)和r2证书两者可用于有效地启动基础架构。应该理解,应用通常可以使用任何合适的证书或密钥。

当双重签名镜像时,系统的某些部分可有效地关闭以维护硬件和软件(例如,bios、启动加载程序、ngos、和nginfra)的完整性。双重签名镜像还向客户提供了供应链完整性,并提供了一种允许向堆栈告知信任的可信平台。除nginfra之外,双重签名镜像允许应用安装在客户的驻地中。

通常,所有权转让可涉及创建usb镜像的客户的用户,该镜像至少包含可启动镜像、客户证书、双重签名基础架构镜像、客户认为重要的任何重新签名的应用、以及更新密钥库的工具包。在转移所有权的过程中,机箱最初可以设置为“启用”,然后usb可以基本被插入机箱,然后可以发生重新启动。在一个实施例中,启动可以使用cscongosee公共密钥来验证。r2证书可以被导入到密钥库中,并且可以使用双重签名镜像完成系统的重新激活(rebake)。最后,可发生另一重新启动。

客户不需要可信源来对他们的任何凭证进行签名来使这些凭证部署到他们的设备中。这通常需要经更新的uefibios,如果密钥库要求双重签名镜像,则实质上只会运行进行双重签名的且可使用其密钥库中的证书进行验证的启动加载程序。这通常也扩展到bios更新封装要求。类似的过程可以用于软件更新。

对于卡移除和rma条件,客户可以使用uefibios验证的变量来更新其kek密钥、或其填充的凭据以及数据库(db)和/或数据库(dbx)。客户通常不会篡改可信源的凭证,因此可以确保供应链完整性。应该理解,可信源和恶意代理都不可以在客户的设备上部署任何东西或者改变客户的凭证。

在卡插入时,可以设置本地拨码开关,可以填充密钥库,并且系统可以等待基本的os启动。这对于其中每个卡都运行相同的os实例的ios-xr来说是正常的。

备份和rmas解决方案与此方法脱节。如果可信源接收到具有额外凭证的卡,则可以将该卡放置在空机箱中,并且在继续之前可以将超出的凭证从密钥库中移除。根据本公开的密钥无冲程序可以使用标准uefi认证变量来实现。

关于软件更新,可以为r2特定的设备提供双重签名基础设施包。也可以提供可选的重新签名应用包。标准的传统软件更新可以使用双重签名基础设施包和可选的重新签名应用包来执行。

uefibios更新可以使用bios封装更新来执行,并且经签名的uefibios可以由可信源(例如,思科)提供。可信源还可以提供可以用来向更新添加额外的(例如,r2特定的)签名的工具,使得可以生成新的更新封装。新的更新封装可被放置在bios已知的位置,并且bios中的系统管理模式(smm)可对新的bios进行复制并复位。

如前所述,当卡被移除时,可以使用经认证的变量依次移除r2特定的凭证。r2-ee和使用r2-kek生成的数据库中的大部分内容都可能被删除。可以使用r2-pk来移除r2-kek,然后r2-pk可被移除。应该理解,在某些情况下,移除可能是不可行的。如果无法移除,可以将卡插入空的机箱中,其中特定于卡的写入启用拨码开关开启。通过使用由可信源提供的工具,可以擦除r2-pk和r2-kek,并且可以清除数据库的内容。可信源可提供经验证的变量,这些变量可用于恢复数据库中的ee证书。

插入卡时,每卡拨码开关可在该卡被插入时切换。一般来说,卡可能试图自己进行镜像,尽管所有镜像都可运载基本上强制性的双重签名。镜像启动可以在ngos中保持复位,并且用户或操作员可以将r2特定的密钥导入到卡中。如果需要,可以更新bios和/或启动加载程序。在更新bios和/或启动加载程序时,可以复位拨码开关,并且该卡可被重新启动。最后,操作系统可将自身重新镜像为参考镜像。

对于rma过程,如果在rma之前未清除r2证书,则可信源可删除基本上所有的r2-pk和r2-kek。可信源也可能会清除数据库的内容。

对于密钥无冲程序,可以使用uefi验证的变量将ee证书或数据库(db)中的其他变量移动到另一数据库(dbx)中。r2-pk证书可用于翻覆r2-kek证书。r2-pk可以使用经验证的变量进行翻覆。可信源不得从密钥库中移除任何r2特定的证书或密钥,但物理占有(例如,rma)除外。

以上描述仅作为示例。可以在其中进行各种修改和结构改变而不偏离本文所描述的概念的范围以及与权利要求等同的范围和界限内。

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