首页> 中国专利> 现场可编程门阵列码的微扰以防止边信道攻击

现场可编程门阵列码的微扰以防止边信道攻击

摘要

提供了自动改变布置成配置现场可编程门阵列(FPGA)的网表计算的结构的技术。在示例场景中,可从客户机接收FPGA网表以配置FPGA。响应于检测到一个或者多个与网表相关联的安全风险因素,可以激活微扰生成器。可通过经设计以修复一个或者多个FPGA的方案来更改网表。修复方案可用于修复FPGA以围绕故障的单元和故障的子单元工作。微扰生成器可生成故障的单元的虚假映射。虚假映射可用于生成与网表相关联的不同的时序和不同的中间值以生成替代网表。替代网表可用于配置FPGA以防止边信道攻击。

著录项

  • 公开/公告号CN105281892A

    专利类型发明专利

  • 公开/公告日2016-01-27

    原文格式PDF

  • 申请/专利权人 英派尔科技开发有限公司;

    申请/专利号CN201510300259.2

  • 发明设计人 E·克鲁格里克;

    申请日2015-06-03

  • 分类号H04L9/06;

  • 代理机构北京市铸成律师事务所;

  • 代理人孟锐

  • 地址 美国特拉华州

  • 入库时间 2023-12-18 13:43:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-22

    未缴年费专利权终止 IPC(主分类):H04L9/06 授权公告日:20181102 终止日期:20190603 申请日:20150603

    专利权的终止

  • 2018-11-02

    授权

    授权

  • 2016-02-24

    实质审查的生效 IPC(主分类):H04L9/06 申请日:20150603

    实质审查的生效

  • 2016-01-27

    公开

    公开

说明书

背景技术

除非本文另有指明,在该部分描述的材料不是本申请中权利要求的现有技术并且也不由于包含在该部分就承认其为现有技术。

基于云的基础设施可向客户机和机构提供对客户在本地不可获得的计算资源的访问。云计算提供商可在一个或者多个物理机上复用分配给客户的虚拟机,以确保物理资源的有效使用。然而,对于将应用部署到基于云的基础设施的客户来说,安全性会是一个重大忧虑。特别地,基于云的基础设施可能容易遭受利用定时器从在基于云的基础设施中执行的处理中收集信息的边信道时序攻击。

概述

本公开总体描述了现场可编程门阵列(FPGA)码的微扰(perturbation)以防止在数据中心处的边信道攻击的方法、设备、系统、装置和/或计算机程序产品。

根据一些示例,描述了微扰现场可编程门阵列(FPGA)码以防止边信道攻击的方法。示例方法可包括:接收与FPGA处理器相关联的一组电路设计指令;分析与该组电路设计指令相关联的安全因素以确定是否存在与该组电路设计指令相关联的一个或多个安全风险因素;以及响应于确认存在安全风险因素,执行该组电路设计指令的微扰。

根据其他示例,描述了配置成微扰现场可编程门阵列(FPGA)码以防止边信道攻击的数据中心。示例数据中心可包括通信地耦接到配置成存储指令的存储器的FPGA处理器以及通信地耦接到FPGA处理器的服务器。示例服务器可被配置成接收与FPGA处理器相关联的FPGA网表;分析与FPGA网表相关联的安全因素以确定是否存在与FPGA网表相关联的一个或多个安全风险因素;和/或响应于存在安全风险因素,执行FPGA网表的微扰。

根据一些示例,系统可被描述。示例系统可包括被配置为微扰现场可编程门阵列(FPGA)码以防止边信道攻击的服务器。示例系统的服务器可包括被配置成存储指令的存储器和耦接到存储器的处理器。示例系统的处理器可被配置成接收与服务器的FPGA处理器相关联的FPGA网表;分析与FPGA网表相关联的安全因素以确定是否存在与FPGA网表相关联的一个或多个安全风险因素;和/或响应于确认存在安全风险因素,执行FPGA网表的微扰。

根据另外的实施方式,描述了其上存储有防止边信道攻击的指令的计算机可读存储介质。示例计算机可读存储介质(当在一个或者多个计算装置上被执行时)执行微扰现场可编程门阵列(FPGA)码以防止边信道攻击的方法。示例方法可包括上述动作。

前述的概述仅仅是说明性的并且不意于以任何方式进行限制。除了上述的说明性的方面、实施方式以及特征,通过参考附图和下文的详细描述,另外的方面、实施方式和特征将显而易见。

附图说明

结合附图,根据下文的描述和随附的权利要求,本公开的前述和其他特征将更加显而易见。应当理解,这些附图仅描述了根据本公开的若干实施方式,因此不应当将其视为是本公开的范围的限制,通过对附图的使用,将借助附加的特性和细节来描述本公开,其中:

图1示出了配置成在数据中心处微扰现场可编程门阵列(FPGA)码以防止边信道攻击的系统的示例系统结构图;

图2示出了配置成微扰FPGA码以防止边信道攻击的数据中心的示例组件图;

图3示出了经微扰以防止边信道攻击的数据中心的FPGA的示例图;

图4示出了在数据中心处实施对FPGA码的改变以防止边信道攻击的示例配置;

图5示出了通用计算装置,其可用于在数据中心处微扰FPGA码以防止边信道攻击;

图6示出了说明在数据中心处微扰FPGA码以防止边信道攻击的示例方法的流程图;

图7示出了在数据中心处微扰FPGA码以防止边信道攻击的示例计算机程序产品的块图,

所有附图都根据本文描述的至少一些实施方式布置。

具体实施方式

在下文的详细描述中,参考了形成该详细描述的一部分的附图。在附图中,除非下文另有指明,相似的符号一般身份相似的组件。在详细描述、附图和权利要求中描述的说明性实施方式不意味着是限制性的。在不脱离本文呈现的主题的精神或范围的情况下,可以利用其他实施方式并且可以做出其他改变。在本文中大体描述和在附图中示出的本公开的方面,可以以多种多样不同的配置布置、替代、组合、分离和设计,所有这些都明确地涵盖于本文。

公开大体涉及,并且尤其涉及在数据中心处现场可编程门阵列码的微扰以防止边信道攻击的方法、设备、系统、装置和/或计算机程序产品。

简言之,提供了自动改变被布置成配置现场可编程门阵列(FPGA)的网表计算的结构的技术。在示例场景中,可从客户机接收FPGA网表以配置FPGA。响应于检测到一个或者多个与网表相关联的安全风险因素,可以激活微扰生成器。可通过经设计以修复一个或者多个FPGA的方案来更改网表。修复方案可用于修复FPGA以围绕故障的单元和故障的子单元工作。微扰生成器可生成故障的单元的虚假映射。虚假映射可用于生成与网表相关联的不同的时序和不同的中间值以生成替代网表。替代网表可用于配置FPGA以防止边信道攻击。

本文使用的“边信道攻击”涉及利用计算的实现的数据依赖的行为特征的攻击。可在基于输入而变化的时间段内执行计算机中的逻辑运算。攻击者可利用时间段的精确测量来逆向工作以发现该输入。攻击者可基于密码系统设计的属性来评估测量的相关性。密码系统设计的属性(尤其)可包括配置成执行操作系统的中央处理单元(CPU)、由数据中心使用的一个或者多个计算、电磁泄露、各种实现细节、时序攻击对策、测量的精确性。边信道时序攻击可针对具有数据依赖的时序变化的数据中心的计算。

本文使用的“FPGA”可以是通信地耦接到计算机或者控制器的单独装置,计算机或者控制器配置成管理FPGA的编程或者运算。FPGA也可以是在数据中心中用作加速器的复数个FPGA中的一个。本文使用的“数据中心”可指这样的实体,其通过物理服务器装置和在这些服务器装置中执行的虚拟机为客户托管(host)服务和应用。数据中心的客户机(或者称为租户)可以是提供让多个客户对它们服务的访问的组织。示例基于数据中心的服务配置可包括向客户机提供零售服务的网上零售服务。零售服务可利用可由数据中心托管的多个应用(例如,零售货物的展示、购买管理、运送管理、存货管理等)。租户可在分派给他们(专用或者共享)的虚拟机上执行应用或者模块。在一些场景中,一些应用或者模块也可被编程到为数据中心的部分的FPGA中。

图1示出了配置成在数据中心微扰现场可编程门阵列(FPGA)码以防止边信道攻击的系统的示例系统结构图,其根据本文描述的至少一些实施方式布置。

如图100所示,数据中心102可配置成微扰FPGA码以防止边信道攻击。数据中心102可包括多个组件。例如,如描述的,组件可包括服务器集群104、存储装置106、客户机装置108和服务器109。存储装置106可包括专用于数据存储的装置。这样的装置可包括基于硬盘驱动器(HDD)的装置、基于固态驱动器(SSD)的装置、托管SSD和HDD组合的装置、控制器、管理器和基于其他存储技术的装置。服务器109可提供访问由存储装置106存储的数据的应用和服务。

服务器集群104可用于提供与存储在存储装置106的数据相关联的资源密集型的服务(比如,数据挖掘和类似的服务)。客户机装置108可被允许访问由数据中心102提供的数据、服务和应用。在一些示例中,服务器集群104可用于基于服务器集群104的配置来提供其他应用和服务。服务可包括在远程装置处执行或者正在执行的应用,该远程装置可通过对客户机装置108的网络接入使用该服务来提供功能。

根据一些实施方式,云计算提供商可允许客户机装置108执行在服务器集群104上的虚拟机。虚拟机可能易于遭受一个或者多个边信道攻击。

根据其他实施方式,数据中心102内的通信可在安全信道(比如,限制接入的专用网络)上传输。然而,数据中心102内的通信也可在不安全信道上传输。可以使用多个信道用于客户机装置108之间的通信,其中所利用的信道中的一些可能是安全的而其他信道可能是不安全的。在一些场景中,可由服务器109集中地管理/促进通信。在通信在不安全的信道上的情况下,进行通信的各方可尝试通过加密来确保任何交换安全。

通信的加密的一个缺点可包括在计算资源上加密的附加成本。加密的成本可通过被配置成在数据中心102内提供加密的FPGA得以减轻。然而,FPGA可能会易于受到边信道时序攻击。FPGA可具有可由共驻处理易存取的硬线RAM。边信道攻击可使用定时器来从处理时间收集信息。例如,密钥散列的经过时间可用于确定加密中使用的密钥的特性。经过时间可以通过反复评估共享内存是否已经被改写而提取。在示例场景中,根据实施方式,FPGA可配置成返回较少的可预测时序以防止边信道检测和边信道时序攻击。

图2示出了配置成微扰FPGA码以防止边信道攻击的数据中心的示例组件图,其根据本文描述的至少一些实施方式布置。

如图200所示,客户机202可提交FPGA网表206以在数据中心208中进行处理。FPGA网表206可包括被布置成配置FPGA218的一组电路设计指令。

数据中心208可接收FPGA网表206。FPGA网表206可包括网表属性222。网表属性222可(尤其)包括防御细节以及与FPGA218相关联的电路设计指令。另外,数据中心208可将FPGA网表206存储在储存器212中。

根据一些实施方式,FPGA网表206可被传输到数据中心208的安全选择器214。安全选择器214可分析与FPGA网表206相关联的安全条件210以确定是否存在与FPGA网表206相关联的一个或者多个安全风险因素。安全条件210的示例可(尤其)包括同位客户机的身份,共享硬件上的实例的类型、通过主机操作系统对管理程序(hypervisor)的攻击、通过客机操作系统对管理程序的攻击、虚拟库登出、迁移(migration)攻击和加密攻击。

微扰系统220可基于在安全条件210中存在的安全风险因素的评估来配置FPGA218。可选地或者另外,微扰系统220可基于来自客户机202的安全请求204来配置FPGA218。安全请求204可包括配置FPGA218以抵抗一个或者多个边信道攻击的消息。

FPGA218可包括逻辑块的阵列、互连资源和其他组件。逻辑块的阵列可用于数字逻辑实现。互连资源可用于连接逻辑块。逻辑块的阵列可包括k输入查找表(LUT)使用表230和触发器(FF)。FF可是以时序逻辑的存储器212的基本元件。FF可包括具有两种稳定状态的电路。该电路可用于存储状态信息。FF可通过施加到控制输入的信号改变状态。在一些实施方式中,FPGA218可包括逻辑块的阵列连同输入/输出(I/O)块和固定功能块。功能块可配置成提供一般功能,(尤其)包括存储、I/O和信号处理。

根据一些实施方式,FPGA218可被配置成提供被配置成执行应用的组合逻辑电路的互连布置。该组合逻辑电路可包括在LUT使用表230中制成表的逻辑以及沿互连路径连接的其他模块。在FPGA218的不同部分之间的互连路径可将延迟引入应用的执行路径。延迟可起因于通过可变数量的开关盒(switchbox)的互连路径。通过在FPGA218的不同部分之间的互连路径的应用的执行可改变组合子组件的时序。

根据一些实施方式,安全选择器214可评估与FPGA网表206相关联的安全因素。安全选择器214可确定是否存在与FPGA网表相关联的一个或者多个安全风险因素。响应于否定的确定,安全选择器214可将FPGA网表206传输到编译器216。编译器216可通过编译和编程模块处理FPGA网表206以配置FPGA218。

响应于肯定的确定,可将FPGA网表206传输到网表计算224。微扰系统220的网表计算224可对FPGA网表206执行微扰。包括FPGA218的电路设计指令的网表属性222可通过网表计算224进行处理。网表计算224可以是基于网表驱动的进化修正计算的进化计算,其可通过微扰生成器228被更改。

微扰生成器228可基于FPGA网表206的特征描述将FPGA218的LUT使用表230确定为缺陷单元。LUT使用表230可包括与配置成在FPGA218中执行的应用相关联的逻辑。LUT使用表230的随机化网格可具有在FPGA218的可用位置处被虚假地报告为不可用的部分。

根据一些实施方式,数据中心208可通过由逻辑的新位置导致的延迟来更改与应用的执行相关联的时间。数据中心208将不可用的LUT使用表、几何约束、逻辑约束和类似约束中的一个或者多个作为网表属性222应用于FPGA网表206的电路设计指令。网表属性222可被添加到FPGA网表206以生成与网表属性222相关联的修改的组合逻辑和修改的布置。

修改的组合逻辑可被馈入在最终编译过程中通过更改模块的放置位置来随机化组合子组件的时序的随机放置程序226中。在一些实施方式中,可以通过改变在排布(permutations)中的数据顺序和位置来修改FPGA218的架构。在排布中的位置可以是随机的。更改的排布可掩盖(obscure)边信道攻击者尝试从FPGA218提取信息。

图3示出了经微扰以防止边信道攻击的数据中心的FPGA的示例图,其根据本文描述的至少一些实施方式布置。

如图3所示,示图300可代表数据中心的FPGA。该FPGA可包括非现场可编程门和硬线元件。硬线元件(尤其)可包括数字信号处理器(DSP)316、RAM318和通信控制器。通信控制器(尤其)可耦接到存储器和处理器308。通信控制器(尤其)可包括DRAM控制器302、USB控制器304和以太网控制器306。

DRAM可包括随机存取存储器的一种类型,其在集成电路内的分离的电容器中存储数据位。DRAM控制器302可管理动态存储器和易失性存储器。DRAM控制器302可包括使存储器的周期性刷新自动化的逻辑。DRAM的示例(尤其)可包括双倍数据速率同步动态随机存取存储器(DDRSDRAM)和静态随机存取存储器(SRAM)。USB控制器304和以太网控制器306(尤其)可由千兆位以太网(GigE)、控制器区域网络(CAN)总线、集成电路间(I2C)总线、通用异步接收器/发射器(UART)和通用输入输出(GPIO)替换。

根据一些实施方式,数据中心可从客户机接收FPGA网表。可分析与FPGA网表相关联的安全因素以确定是否存在与FPGA网表相关联的一个或多个安全风险因素。响应于确认,可以执行FPGA网表的微扰以配置FPGA。

基于FPGA网表的网表属性的评估,FPGA的查找表(LUT)可以被指示为缺陷单元。LUT可以是FPGA的单位或者子单元。LUT可管理与配置成在处理器308中执行的应用312相关联的逻辑。应用312可包括分布在一个或者多个LUT之间的逻辑。微扰生成器可处理网表属性以将应用312的第一查找表(LUT)320确定为模拟的缺陷(simulateddefect)。在具有模拟的缺陷的第一LUT320内的应用312的逻辑可以通过网表计算被移动到第二LUT322。到达第二LUT322的延迟可影响利用包括第一LUT320的组合逻辑路线的其他应用或计算。延迟可将时间改变引入包括组合逻辑路线的计算或应用。该改变可防止边信道时序攻击。

根据一些实施方式,可使用微扰生成器来生成故障LUT的模拟组。微扰生成器可基于数据中心的网表属性来产生微扰映射。微扰生成器可将故障LUT映射到LUT使用表以在应用312中强制修复重新配置。微扰生成器可提供适于防止边信道攻击的重新配置。在示例场景中,来自微扰生成器的对于应用312的微扰可占FPGA空间的一半。微扰可随机地指示LUT中的一些为故障的LUT。该动作的结果可包括配置成在FPGA上执行的应用的逻辑、布局、时序和类似的属性的修改。数据中心可利用由按照计划表上生成并重编译的微扰提供的一个或者多个变化(例如每天一次),通过应用的连续和随机化的时序和逻辑来防止边信道攻击。

图4示出了在数据中心处实施对FPGA实施的改变以防止边信道攻击的示例配置,其根据本文描述的至少一些实施方式布置。

如图400所示,数据中心可在存在故障的查找表(LUT)子单元时递送示例逻辑微扰。在配置1(402)中示出函数Q和其真值表410。“存储器边界”405可以是时序逻辑区域(sequentiallogicregion)之间的边界并且这些可认为是在计算过程中存储在存储器中的值。配置1中的中间值(X,Y)408不同于配置2(412)中的中间值(L,M)418(越过存储器边界415,尽管最终的计算可能是相同的),使得如果这些是用于更复杂的运算中的值或指针,则它们可击败读取边信道攻击(比如功率信道攻击)的各种值。放置中的改变和以后的不同的中间输出的计算时间的改变两者促成随机化时序。配置1(402)和配置2(412)可根据相同的输入A、B和C(分别地,表404、406和414、416)产生相同的输出Q。

在示例场景中,按照德摩根定律(DeMorgan’slaw)执行转换,德摩根定律也可应用于更大电路的更大的模块化部分以导致模块的大规模重布置。德摩根定律改变没有引起重布置,但是它们引起中间值改变以掩盖存储在易受攻击的存储器中的中间值的含义。

德摩根定律是用于数据电子器件的逻辑定理。德摩根定律可描述:如果运算数变成其补数(例如,AND运算可变为OR运算,OR运算可变为AND运算)并且从逻辑二进制表达式获得补数,那么任何逻辑二进制表达式可维持不变。德摩根定律的示例应用(尤其)可包括与非(NAND)门组合、NOR门组合、利用NAND的异或(XOR)门和负逻辑门。

图400中的真值表呈现对于变量A、B、X、Y(在配置2中的L、M)和C、Z的可能值。真值表的每行/列可包括变量的一个可能配置(例如,A=真=1,B=假=0)。

在一些实施方式中,转换也可应用于导致模块的大规模重布置的更大电路的更大的模块化部分。通过德摩根定律的或类似转换的使用,可改变中间值以掩盖存储在易受攻击的存储器中的中间值的含义,而最终结果不改变。这样,可以防止读取边信道攻击(例如,功率信道攻击)的值识别FPGA配置。

已经使用具体的系统和处理描述了图1到图4的示例,在所述具体的系统和处理中可在数据中心处实施防止边信道攻击的FPGA码的微扰。在数据中心处防止边信道攻击的FPGA码的微扰的实施例不限于根据这些示例的系统和处理。

图5示出了通用计算装置,其可用于微扰FPGA码以防止数据中心处的边信道攻击,其根据本文描述的至少一些实施方式布置。图5的计算装置500可以是数据中心(102、208)的一个或者多个组件,或者是未在图1、2、3和4中示出的某些其他装置。在非常基本的配置502中,计算装置500可包括一个或者多个处理器504和系统存储器506。存储器总线508可用于处理器504和系统存储器506之间的通信。

取决于特定的配置,处理器504可以是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或者其任意组合。处理器504可包括一级或者多级缓存(比如,级别高速缓存存储器512)、处理器核514和寄存器516。示例处理器核514可包括算数逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSPCore)或者其任意组合。示例存储器控制器518还可与处理器504一块使用,或者在某些实现方式中,存储器控制器518可以是处理器504的内部部件。

取决于特定的配置,系统存储器506可以是任何类型,包括但不限于:易失性存储器(比如,RAM)、非易失性存储器(比如,ROM、快闪存储器等)或者是其任意组合。系统存储器506可以包括操作系统520、FPGA计算522、程序数据524、FPGA应用526和网表属性528。FPGA计算522可包括FPGA应用526,FPGA应用526可包括数据中心内的组合逻辑电路的互连布置。程序数据524可包括网表属性528和在上面结合至少图1、2、3和4讨论的类似数据。网表属性528可包括防御细节,(尤其)比如,指针和数据以及与FPGA处理器相关联的电路设计指令。描述的基本配置502通过在内部虚线内的那些组件在图5中示出。

计算装置600可具有附加的特征或者功能,以及促进在基本配置502和任何装置和接口之间的通信的附加的接口。例如,总线/接口控制器530可用于促进经由存储接口总线534的在基本配置502和一个或者多个数据存储装置532之间的通信。数据存储装置532可以是可拆卸式存储装置536、不可拆卸式存储装置538或者其组合。可拆卸式存储装置和不可拆卸式存储装置的示例包括磁盘装置(比如,软盘驱动器和硬盘驱动器(HDD))、光盘驱动器(比如,高密度盘(CD)驱动器或数字化通用盘(DVD)驱动器)、固态驱动器(SSD)和磁带驱动器(列出了若干个示例)。示例计算机存储介质可包括以用于信息(比如,计算机可读指令、数据结构、程序模块或其他数据)的存储的任何方法或技术实施的易失性和非易失性、可拆卸式和不可拆卸式的介质。

系统存储器506、可拆卸式存储装置536和不可拆卸式存储装置538是计算机存储介质的示例。计算机存储介质包括但不限于:RAM、ROM、EEPROM、快闪存储器或者其他存储器技术、CD-ROM、数字化通用磁盘(DVD)或者其他光学存储、磁带盒、磁带、磁盘存储或者其他磁存储装置或者可用于存储想要的信息并且可由计算装置500存取的任何其他介质。任何这样的计算机存储介质可以是计算装置500的部分。

计算装置500还可包括用于促进经由总线/接口控制器530的从各种接口装置(例如,输出装置542、外围接口544以及通信装置566)到基本配置502的通信。输出装置542的示例包括图形处理单元548和音频处理单元550,其可被配置成经由一个或者多个A/V端口552与各种外部装置(比如,显示器或者扬声器)通信。外围接口544的示例包括串行接口控制器554或者并行接口控制器546,其可配置成经由一个或者多个I/O端口558与比如输入装置(例如,键盘、鼠标、笔、语音输入装置、触摸输入装置等)的外部装置通信或者与其他外围装置(例如,打印机、扫描仪等)通信。通信装置566的示例包括网络控制器560,其可布置成促进经由一个或者多个通信端口564通过网络通信链路与一个或者多个其他计算装置562的通信。

网络通信链路可以是通信介质的一个示例。通信介质可由计算机可读指令、数据结构、程序模块或者在调制的数据信号中的其他数据实施,调制的数据信号比如载波或者其他传送机制,并且可包括任何信息递送介质。“调制的数据信号”可以是具有调制的数据信号的特征集合中的一个或者多个特征或者以在信号中对信息编码的方式发生改变的信号。举例来说但没有限制,通信介质可包括有线介质(比如,有线网络或者直接有线连接)和无线介质(比如,声波、射频(RF)、微波、红外(IR)和其他无线介质)。本文中使用的术语“计算机可读介质”可包括存储介质和通信介质。

计算装置500可实施为物理服务器、虚拟服务器、计算云、或者包括任意上述功能的混合装置的一部分。计算装置500也可实施为个人计算机,包括膝上型轻便计算机和非膝上型轻便计算机配置。另外,计算装置500可实施为网络化系统或者作为通用或者专用服务器的部分。

包括计算装置500的用于网络化系统的网络可包括任意拓扑结构的服务器、客户机、交换机、路由器、调制解调器、因特网服务提供商以及任何合适通信介质(例如,有线通信或无线通信)。根据实施方式的系统可具有静态或者动态的网络拓扑结构。网络可包括安全网络(比如,企业网络,例如,LAN、WAN或者WLAN)、不安全网络比如无线开放网络(例如,IEEE802.11无线网络)或者全球范围的网络(比如,因特网)。网络也可包括可适于一起工作的不同网络。这样的网络可配置成在本文描述的节点之间提供通信。举例来说但没有限制,这些网络可包括诸如声波、RF和红外的无线介质和其他无线介质。另外,网络可以是相同的网络或者分离的网络的部分。

图6是示出了说明数据中心处微扰FPGA码以防止边信道攻击的示例方法的流程图,该方法可由计算装置610(比如,图5中的计算装置500)执行,其根据本文描述的至少一些实施方式布置。

计算装置610可实现为计算装置500或者执行用于执行方法的存储在非暂态计算机可读介质620中的指令的类似装置。与在数据中心处防止边信道攻击的FPGA码的微扰相关的处理可包括如由块622、624和/或626中的一个或多个所示的一个或者多个操作、功能或者动作。

一些示例处理可以以操作622开始,操作622:“接收与FPGA处理器相关联的一组电路设计指令”。该组电路设计指令可被包括在网表属性222中。电路设计指令可包括防御细节,(尤其)比如指针和数据。处理器308还可接收FPGA网表206的特征描述。

操作622后可以是操作624,操作624:“分析与该组电路设计指令相关联的安全因素以确定是否存在与该组电路设计指令相关联的一个或多个安全风险因素”。可针对安全条件210分析与FPGA网表206(例如,该组电路设计指令)相关联的安全因素。安全条件210可(尤其)包括同位客户机的身份,共享硬件上的实例的类型、通过主机操作系统对管理程序的攻击、通过客户机操作系统对管理程序的攻击、虚拟库登出、迁移攻击和加密攻击。

操作624后可以是操作626,操作626:“响应于确认存在安全风险因素,执行该组电路设计指令的微扰”,其中处理器308可通过FPGA网表206确定变量在FPGA的存储器中的位置。变量可与配置成在FPGA上执行的应用相关联。变量可被确定为被配置为通过微扰进行保护。处理器308可基于微扰将变量移动到存储器中的其他位置并且可基于微扰重布置变量。处理器308可通过网表计算224处理FPGA网表206。处理器308可附加地生成FPGA的查找表(LUT)使用表230的网格。该网格在FPGA的可用的LUT使用表230处被报告为不可用。

包括在上述处理中的块用于说明目的。可以由具有较少或者附加的块的相似处理来实施利用与防止在数据中心处的边信道攻击的FPGA码的微扰相关的产品。在一些实施方式中,块可以以不同的顺序执行。在一些其他实施方式中,可以消除各种块。在另外的实施方式中,各种块可以分成附加的块,或者组合在一起成为较少的块。

图7示出了微扰FPGA码以防止数据中心处的边信道攻击的示例计算机程序产品的块图,其根据本文所述的至少一些实施方式布置。

在如图7所示的一些示例中,计算机程序产品700可包括信号承载介质702,信号承载介质702还可包括机器可读指令704,机器可读指令704可响应于由(例如)处理器的执行提供上面关于图1到图6描述的功能。举例来说,参考计算装置500,图7中示出的任务中一个或者多个可以响应于通过介质702传递到计算装置500的指令704而进行,以执行与FPGA码的微扰相关联的动作来防止数据中心处的边信道攻击。那些指令中的一些可(尤其)包括:接收一组与FPGA处理器相关联的电路设计指令,分析与该组电路设计指令相关联的安全因素以确定是否存在与该组电路设计指令相关联的一个或多个安全风险因素,以及响应于确认存在安全风险因素执行该组电路设计指令的微扰。

在一些实现方式中,图7中描绘的信号承载介质702可包含非暂态计算机可读介质706,计算机可读介质706例如包括但不限于:硬盘驱动器、高密度盘(CD)、数字化通用盘(DVD)、数字磁带、存储器等。在一些实现方式中,信号承载介质702可包含可记录介质708,可记录介质708(比如)但不限于:存储器、读/写(R/W)CD、R/WDVD等。在一些实现方式中,信号承载介质702可包含通信介质710,通信介质710(比如)但不限于:数字和/或模拟通信介质(例如,光缆、波导、有线通信链路、无线通信链路等)。举例来说,可通过RF信号承载介质702将计算机程序产品700传递到图5中的处理器504,其中通过无线通信介质710(例如,符合IEEE802.11标准的无线通信介质)传送信号承载介质702。

根据其他示例,分析安全因素可包括针对数据中心安全条件评估该组电路设计指令。数据中心安全条件可包括同位客户机的身份,共享硬件上的实例的类型和安全请求中的一个或者多个。执行微扰可包括通过进化计算来处理该组电路设计指令。该组电路设计指令可包括FPGA网表。

根据进一步的示例,所述方法还可包括生成FPGA处理器的查找表(LUT)装置的随机化网格。所述方法还可包括将随机化网格在FPGA处理器的可用LUT表处报告为不可用。所述方法还可包括接收该组电路设计指令的特征描述并通过该组电路设计指令确定变量在FPGA处理器的存储器中的位置,其中变量与执行在FPGA处理器中的应用相关联并且变量被确定为通过微扰而进行保护。

根据其他的示例,所述方法可包括基于微扰将每个变量移动到存储器中的其他位置以及基于微扰重新配置每个变量。所述方法还可包括基于微扰确定消去的查找表(LUT)、几何约束和逻辑约束,并将消去的LUT、几何约束和逻辑约束中的一个或者多个应用到该组电路设计指令,以生成与变量相关联的修改的组合逻辑和修改的布置,其中变量与在FPGA处理器中执行的应用相关联并且变量存储在FPGA处理器的存储器中。所述方法还可包括将修改的组合逻辑和修改的布置提供给随机化计算以通过更改与在存储器中的应用相关联的模块的位置来随机化与应用相关联的时序。

根据其他示例,描述了配置成微扰现场可编程门阵列(FPGA)码以防止边信道攻击的数据中心。示例数据中心可包括通信地耦接到配置成存储指令的存储器的FPGA处理器以及通信地耦接到FPGA处理器的服务器。示例服务器可被配置成接收与FPGA处理器相关联的FPGA网表;分析与FPGA网表相关联的安全因素以确定是否存在与FPGA网表相关联的一个或多个安全风险因素;和/或响应于存在安全风险因素,执行FPGA网表的微扰。

根据一些示例,服务器可基于FPGA网表的特征描述将FPGA处理器的查找表(LUT)装置确定为缺陷单元,其中该LUT装置管理与在FPGA处理器中执行的应用相关联的逻辑。服务器还可基于微扰将该逻辑移动到另一LUT装置内的新位置。服务器进一步可通过由逻辑的该新位置导致的延迟更改与执行应用相关联的时间。

根据进一步的示例,服务器可接收与所述FPGA网表的所述LUT装置重叠的另一FPGA网表并在所述FPGA网表和所述另一FPGA网表之间共享LUT装置,以通过将该LUT装置确定为缺陷单元来最小化与放弃(forgo)所述LUT装置相关联的损失。

根据一些示例,系统可被描述。示例系统可包括被配置为微扰现场可编程门阵列(FPGA)码以防止边信道攻击的服务器。示例系统的服务器可包括配置成存储指令的存储器和耦接到存储器的处理器。示例系统的处理器可配置成接收与服务器的FPGA处理器相关联的FPGA网表;分析与FPGA网表相关联的安全因素以确定是否存在与FPGA网表相关联的一个或多个安全风险因素;和/或响应于确认存在安全风险因素,执行FPGA网表的微扰。

根据其他示例,处理器可利用NOT运算来修改第一查找表(LUT)装置的第一逻辑并利用另一NOT运算来修改第二LUT装置的第二逻辑。处理器还可将德摩根定律运算应用到该第一逻辑和第二逻辑以生成结果逻辑,其中该结果逻辑产生执行通路,该执行通路基本上和与在所述NOT运算之前的第一逻辑和在所述另一NOT运算之前的第二逻辑相关联的另一执行通路相同。

根据其他示例,指令进一步可使处理器针对数据中心安全条件评估FPGA网表,其中数据中心安全条件包括同位客户机的身份,共享硬件上的实例的类型和客户机的安全请求中的一个或者多个。指令还可使处理器通过进化计算来处理FPGA网表。指令可进一步使处理器生成FPGA处理器的查找表(LUT)装置的随机化网格并将该随机化网格在FPGA处理器的可用LUT表处报告为不可用。

根据进一步的示例,指令进一步可使处理器接收FPGA网表的特征描述;通过FPGA网表确定变量在FPGA处理器的存储器中的位置,其中变量与在FPGA处理器中执行的应用相关联并且变量被确定为通过微扰而进行保护;基于微扰将每个变量移动到存储器中的其他位置;并基于微扰重新配置每个变量。

根据其他示例,指令进一步可使处理器基于微扰确定消去的查找表(LUT)、几何约束和逻辑约束;将消去的LUT、几何约束和逻辑约束中的一个或者多个应用到FPGA网表,以生成与变量相关联的修改的组合逻辑和修改的布置,其中变量与在FPGA处理器中执行的应用相关联并且变量被存储在FPGA的存储器中;以及将修改的组合逻辑和修改的布置提供给随机化计算以通过更改与在存储器中的应用相关联的模块的位置来随机化与应用相关联的时序。

在系统的各个方面的硬件和软件实现之间几乎没有区别;硬件和软件的使用大体上(但不是总是,原因在于在某些环境中,硬件和软件之间的选择可能是有意义的)是体现成本-效能折中的设计选择。存在各种可影响本文描述的过程和/或系统和/或其他技术的载体(例如,硬件、软件和/或固件),并且优选的载体将随所述过程和/或系统和/或其他技术部署的环境而变化。例如,如果实施人员确定速度和精确度是最重要的,则实施人员可主要选择硬件和/或固件载体;如果灵活性是最重要的,则实施人员可主要选择软件实施;或者,再可选地,实施人员可选择硬件、软件和/或固件的某种组合。

前面的详细描述通过使用块图、流程图和/或示例已经阐明了装置和/或处理的各种实施方式。在这些块图、流程图和/或示例的范围内,包含一个或者多个功能和/或操作,所属领域的技术人员将了解,这些块图、流程图和/或示例中的每个功能和/或操作可通过宽广范围的硬件、软件或者实际上它们的任意组合单独地和/或者共同地实施。在一种实施方式中,本文描述的主题的若干部分可以通过专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或者其他集成格式来实施。然而,所属领域的技术人员将认识到,本文公开的实施方式的某些方面,整体地或者部分地,可以等同地实施在集成电路中、实施为运行在一个或者多个计算机上的一个或者多个计算机程序(例如,在一个或者多个计算机系统上的一个或者多个程序)、实施为运行在一个或者多个处理器上的一个或者多个程序(例如,在一个或者多个微处理器上运行的一个或者多个程序)、实施为固件或者实际上实施为它们的任意组合,并且根据公开,设计电路和/或编写软件和/或固件的代码将落在所属领域的技术人员技能之内。

本公开在本申请中描述的特定实施方式方面不受限制,在本申请中描述的特定实施方式旨在作为各个方面的说明。本领域技术人员将明了,在不背离本申请的精神和范围的条件下可以做出许多修改和变型。根据前面的描述,除了本文枚举的方法和设备之外的在本公开范围内的功能上等同的方法和设备对于本领域技术人员将是明显的。这些修改和变型意于落在随附的权利要求的范围内。本公开仅由随附的权利要求的词句、以及这些权利要求被赋予的等同物的完整范围的限制。应当理解,本公开不限定于特定的方法、系统或组件,所述方法、系统或组件当然可以变化。还应当理解,在本文使用的术语仅仅是出于描述特定实施方式的目的,其意不在于进行限制。

另外,所属技术领域的人员将理解,本文描述的主题的机制能够被分布为多种多样的形式的程序产品,并且本文描述的主题的说明性实施方式都适用,而不管用于实际执行该分布的特定类型的信号承载介质。信号承载介质的示例包括但不限于下列:可记录型介质,比如软盘、硬盘驱动器、高密度盘(CD)、数字化通用盘(DVD)、计算机存储器等;以及传输型介质,比如,数字和/或模拟通信介质(例如,光缆、波导、有线通信链路、无线通信链路等)。

所属技术领域的人员将认识到,以本文阐述的方式描述装置和/或过程并且此后使用工程实践以将这些装置和/或过程集成到数据处理系统是常见的。即,经由合理量的实验,可以将本文描述的装置和/或过程中的至少一部分集成到数据处理系统。所属技术领域的人员将认识到,典型的数据处理系统一般包括系统单元壳、视频显示装置、诸如易失性和非易失性存储器的存储器、诸如微处理器和数字信号处理的处理器、诸如操作系统的计算实体、驱动器、图形用户界面、和应用程序、一个或者多个交互装置(比如触摸板或屏)和/或包括反馈回路的控制系统中一个或者多个。

典型的数据处理系统可利用任何合适的商业上可获得组件来实施,这些组件比如那些一般在数据计算/通信和/或网络计算/通信系统中找到的组件。本文描述的主题有时示意了包含在不同的其他组件内或者与不同的其他组件连接的不同组件。应当理解,所描述的这些架构仅仅是说明性的,并且实际上可以实施取得相同功能的许多其他架构。在概念性意义上,实现相同功能的组件的布置被有效地“相关联”使得实现特定功能。因此,不管架构或中间组件,本文中经组合以实现特定功能的任何两个组件可被视为彼此“相关联”使得实现特定功能。同样地,这样地相关联的任何两个组件也可视为彼此“可操作地连接”,或者“可操作地耦接”以实现特定的功能,并且可以这样地相关联的任何两个组件也可以被视为彼此“可以可操作地耦接”以取得特定功能。可以可操作地耦接的具体示例包括但不限于物理上可连接和/或物理上交互的组件和/或无线地可交互和/或无线地交互的组件和/或逻辑上交互和/或逻辑上可交互的组件。

针对本文中在大致的任意多个和/或单个的术语的使用,本领域的技术人员可以在适合于上下文和/或应用时将多个转换为单个和/或从单个转换为多个。为了清楚起见,可能在本文中明确地说明各种单数/复数变换。

本领域的技术人员将理解,大体上,本文、特别是在随附的权利要求(例如,随附的权利要求的正文)中使用的术语总体上意为“开放式”术语(例如,术语“包括”应当解读为“包括但不限于”,术语“有/具有”应当解读为“至少有/具有”,术语“包含”应当解读为“包含但是其不限于”等)。本领域的技术人员还将理解,如果意在表达导入的权利要求的记载内容的特定数量,则这样的意图将在该权利要求中明确地记载,并且在没有这种记载的情况下将没有这种意图。例如,作为对理解的帮助,下面随附的权利要求可包含引导权利要求记载内容的短语“至少一个”和“一个或者多个”的引导语的使用。然而,这样的短语的使用不应被解释为暗示了通过不定冠词“a”或“an”引导权利要求的记载内容将包含这样的引导的权利要求的记载内容的特定权利要求限制到仅包含一个这样的记载内容的实施方式,甚至是在相同的权利要求包括引导语“一个或者多个”和“至少一个”,以及不定冠词(比如,“a”或“an”)(例如,“a”和/或“an”应当解读成意味着“至少一个”或“一个或者多个”);这同样适用于用于引导权利要求的记载内容的定冠词的使用。另外,即使明确记载了引导的权利要求的记载内容的特定数量,但是本领域技术人员将认识到,这种记载应当被解读为意味着至少是记载的数量(例如,只记载“两个记载内容”,而没有其他修饰语,意味着至少两个记载内容,或者两个或多个记载内容)。

另外,在使用类同于“A、B和C等中的至少一个”的常规用法的实例中,通常这种结构意在本领域的技术人员将对该常规用法理解的意义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于只具有A、只具有B、只具有C、具有A和B、具有A和C、具有B和C和/或具有A和B和C等)。本领域技术人员还将理解,实质上任何呈现两个或者更多个可选术语的分离的词和/或短语,不管是在说明书中、在权利要求中或在附图中,都应当理解为涵盖了包括:术语中的一个、术语中的任何一个,或者包括两个术语的可能性。例如,短语“A或B”将被理解为包括“A”或“B”或“A和B”的可能性。

如将由本领域的技术人员理解的,出于任何或者所有目的(比如,就提供书面描述来说),本文公开的所有范围还包含这些范围的任何或者所有子范围和子范围的组合。任何列出的范围可被容易理解为充分描述并使得相同的范围被分解成至少相等的两半、三分之一、四分之一、五分之一、十分之一等。作为非限制性的示例,本文讨论的每个范围可以被容易地分解为下三分之一、中三分之一和上三分之一等。如还将由本领域的技术人员理解的,比如“高达”、“至少”、“大于”、“少于”等的语句包括记载的数量并涉及随后可分解成如上所讨论的子范围的范围。最后,如将由本领域的技术人员理解的,范围包括每个单独的成员。因此,例如,具有1-3个单元的群组涉及具有1个、2个或者3个单元的群组。类似地,具有1-5个单元的群组涉及具有1个、2个、3个、4个或者5个单元的群组,诸如此类。

尽管已经在本文中公开了各种方面和实施方式,但是其他方面和实施方式对于本领域的技术人员将是清楚的。本文描述的各种方面和实施方式是示出的目的并且不意在进行限制,真正的范围和精神由下面的权利要求指明。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号