首页 / 专利库 / 专利权 / 实施例 / 保护在处理器封装之间的数据传输

保护在处理器封装之间的数据传输

阅读:98发布:2020-07-13

专利汇可以提供保护在处理器封装之间的数据传输专利检索,专利查询,专利分析的服务。并且公开了用于保护在处理器封装之间的传输的 发明 的各 实施例 。在一种实施例中,一种装置包括加密单元,其加密要直接通过点对点链路从装置传输给处理器封装的第一内容。,下面是保护在处理器封装之间的数据传输专利的具体信息内容。

1.一种装置,包括:
加密单元,其加密要直接通过点对点链路从所述装置传输给处理器封装的第一内容。
2.如权利要求1所述的装置,其特征在于,在一个或多个分组中传输所述第一内容。
3.如权利要求1所述的装置,进一步包括用于把认证元数据追加到所述第一内容的认证单元。
4.如权利要求1所述的装置,进一步包括用于把防重放值追加到所述第一内容的重放保护单元。
5.如权利要求1所述的装置,其特征在于,所述加密单元也解密直接通过所述点对点链路从所述处理器封装接收的第二内容。
6.如权利要求3所述的装置,其特征在于,所述认证单元也验证所述第二内容的真实性。
7.如权利要求4所述的装置,其特征在于,所述重放保护单元也保护所述第二内容免遭重放攻击。
8.如权利要求1所述的装置,其特征在于,进一步包括用于确定所述第一内容与安全存储器请求相关联的逻辑。
9.如权利要求1所述的装置,其特征在于,进一步包括被用来确定所述第一内容与对安全存储器的请求相关联的范围寄存器。
10.一种方法,包括:
在第一处理器封装内加密要直接通过点对点链路从第一处理器封装传输给第二处理器封装的内容。
11.如权利要求10所述的方法,其特征在于,进一步包括在加密所述内容之前确定所述内容与安全存储器请求相关联。
12.如权利要求11所述的方法,其特征在于,进一步包括通过所述点对点链路在一个或多个分组中传输所述经加密的内容。
13.如权利要求12所述的方法,其特征在于,进一步包括把认证元数据追加到所述内容。
14.如权利要求12所述的方法,其特征在于,进一步包括把防重放值追加到所述内容。
15.如权利要求12所述的方法,其特征在于,进一步包括在所述第二处理器封装内解密所述经加密的内容。
16.如权利要求12所述的方法,其特征在于,进一步包括在所述第二处理器封装内使用所述认证元数据来验证所述内容的真实性。
17.如权利要求13所述的方法,其特征在于,进一步包括在所述第二处理器封装内使用所述防重放值来验证接收所述内容不与重放攻击相关联。
18.一种系统,包括;
第一处理器封装;
第二处理器封装;
在所述第一处理器封装和所述第二处理器封装之间的点对点链路;
其中,所述第一处理器封装包括第一加密委托代理,用于加密直接通过所述点对点链路从所述第一处理器封装传输给所述第二处理器封装的内容;以及
其中,所述第二处理器封装包括第二加密委托代理,用于解密直接通过所述点对点链路从所述第一处理器封装接收的所述经加密的内容。
19.如权利要求18所述的系统,其特征在于,所述第一处理器封装也包括:
缓存代理;以及
用于确定所述内容与来自所述缓存代理的安全存储器请求相关联的逻辑。
20.如权利要求18所述的方法,其特征在于,所述第二处理器封装也包括:
归属代理;以及
用于确定所述经解密内容与对所述归属代理的安全存储器请求相关联的逻辑。

说明书全文

保护在处理器封装之间的数据传输

[0001] 背景
[0002] 1.领域
[0003] 本公开内容涉及信息处理的领域,且尤其涉及信息处理系统中的安全的领域。
[0004] 2.相关领域的描述
[0005] 恶意攻击是对信息处理系统的安全的严重威胁。已经开发了多种技术来防止这些攻击,但是随着信息处理系统开发的继续,还需要更多技术。
[0006] 附图简述
[0007] 作为示例而非限制在附图中阐释本发明
[0008] 图1阐释一种系统,其中根据本发明的一种实施例在处理器封装之间的数据传输可以受到保护。
[0009] 图2阐释根据本发明的一种实施例的处理器。
[0010] 图3阐释根据本发明的一种实施例的加密委托代理(encryption proxy agent)。
[0011] 图4阐释根据本发明的一种实施例用于保护在处理器封装之间的数据传输的方法。
[0012] 详细描述
[0013] 描述用于保护在处理器封装之间的数据传输的发明的各实施例。在本描述中,可以陈述诸如组件和系统配置之类的众多特定细节,以便提供对本发明的更透彻的理解。然而,本领域中的技术人员应明白,无需这样的特定细节就可以实践本发明。另外,没有详细示出一些众所周知的结构、电路和其他特征,以免不必要地模糊本发明。
[0014] 在下列描述中,对“一个实施例”、“实施例”、“示例实施例”、“各种实施例”等等的引用表示这样描述的本发明的(多个)实施例可以包括具体的特征、结构或特性,但是多于一种实施例可以包括且并非每一实施例必定包括这些具体的特征、结构或特性。进一步,一些实施例可以拥有针对其他实施例所描述的特征中的一些、全部,或者没有这些特征。
[0015] 如权利要求中所使用的,除非另外指出,否则,使用顺序形容词“第一”、“第二”、“第三”等等来描述元素仅仅表示提及元素的具体实例或类似元素的不同实例,且不旨在暗示这样描述的元素必须遵守具体的序列,无论是时间上、空间上、排名上还是以任何其他方式。
[0016] 图1阐释系统100,系统100是本发明的一种实施例可以在其中出现和/或操作的信息处理系统。系统100可以表示任何类型的信息处理系统,例如服务器、台式计算机、便携式计算机、机顶盒、手持式设备或嵌入式控制系统。系统100包括处理器封装110、封装间链路(inter-package link)120、处理器封装130、存储器接口140、系统存储器150和信息存储设备160。处理器封装110和处理器封装130通过封装间链路120相互耦合。处理器封装130和系统存储器150通过存储器接口140相互耦合。实施本发明的系统可以包括任何数量的这些组件和任何其他组件或其他元素中的每一种,例如信息存储设备、外围设备和输入/输出设备。除非另外指出,这一系统实施例或任何系统实施例中的组件或其他元素中的任何或全部,例如存储设备160,可以通过任何数量的总线、点对点或其他有线或无线接口或连接来连接、耦合或以另外方式相互通信。
[0017] 处理器封装110可以包括被封装在单个封装内的一个或多个处理器,其中的每一个都可以包括以任何组合的多个线程和/或多个执行核。每一处理器可以是任何类型的处理器,包括通用微处理器,例如 处理器系列、 处理器系列、或来自 公司的其他处理器系列中的处理器,或者是来自另一公司的另一处理器、或专用处理器或微控制器
[0018] 处理器封装110包括缓存代理(caching agent)111、高速缓冲存储器(cache memory)112、存储器控制器113、加密委托代理114和链路单元115。缓存代理111可以表示上面所陈述的任何处理器,在这一实施例中它充当用于本描述的目的的缓存代理。高速缓冲存储器112可以表示系统100的存储器分层结构中以静态随机存取存储器或任何其他存储器技术实现的任何一级或多级高速缓冲存储器。高速缓冲存储器112可以包括根据在信息处理系统中缓存的任何已知方法的、专用于在处理器封装110内的任何一个或多个执行核或处理器或者在它们当中共享的高速缓冲存储器的任何组合。
[0019] 加密委托代理114可以包括执行一种或多种加密算法和相应的解密算法的任何逻辑、电路或其他硬件。链路单元115可以包括处理器封装110可以借助其通过点对点链路与系统100中的另一处理器封装通信的任何电路或其他硬件。
[0020] 封装间链路120可以表示点对点接口,它可以是根据任何系统互连架构的互连织物中的点对点链路,例如 快速通道互连,或者在于2012年10月22日提交的、标题为“用于高性能互连架构的方法、装置、系统(Apparatus,System for a High Performance Interconnect Architecture)”的共同待决的美国专利申请第61/717,091号中描述的高性能互连的实施例,该专利申请通过引用合并于此。根据任何这样的架构的协议,可以在分组中把数据、控制信息或其他信息从处理器封装110传输或发送给处理器封装130。
[0021] 处理器封装130包括归属代理131、高速缓冲存储器132、存储器控制器133、加密委托代理134和链路单元135。归属代理131可以表示上面所陈述的任何处理器。在这一实施例中它充当用于本描述的目的的归属代理。高速缓冲存储器132可以表示系统100的存储器分层结构中以静态随机存取存储器或任何其他存储器技术实现的任何一级或多级高速缓冲存储器。高速缓冲存储器132可以包括根据在信息处理系统中缓存的任何已知方法的、专用于在处理器封装130内的任何一个或多个执行核或处理器或者在它们当中共享的高速缓冲存储器的任何组合。
[0022] 加密委托代理134可以包括执行一种或多种加密算法和相应的解密算法并且提供下面描述的其他功能的任何逻辑、电路或其他硬件。链路单元135可以包括处理器封装130可以借助其通过点对点链路与系统100中的另一处理器封装通信的任何电路或其他硬件。
[0023] 存储器接口140可以表示在存储器和处理器之间的任何类型的接口。系统存储器150可以包括可由处理器110和/或130访问动态随机存取存储器和/或任何其他类型的介质,且可以被用来存储由处理器110、处理器130和/或任何其他组件使用或产生的数据和/或指令。存储器接口140被示出为处于处理器封装130和系统存储器150之间;然而,系统存储器150可以表示更大的系统存储器的一部分,其中可以通过存储器接口140把该部分本地附加到处理器封装130。类似地,也可以通过存储器接口140和/或未示出的另一存储器接口把更大的系统存储器的一部分本地附加到处理器封装110。信息存储设备
160可以表示任何类型的非易失性信息存储设备,例如哈希存储器或硬盘驱动器
[0024] 图1也阐释安全软件116和136,它们可以是分别在缓存代理111和归属代理131上或者在其中运行、执行、加载或出现的安全软件或固件。安全软件模块116可以用密钥编程加密委托代理114,且安全软件模块136可以用相同的或相应的密钥编程加密委托代理134,以使得加密委托代理134可以解密由加密委托代理114加密的数据,且反之亦然。在本发明的范围内可以使用任何类型的密钥或密钥。本发明的各实施例可以包括使用由安全软件模块提供的第一密钥或其他数据来导出用于加密和解密的第二密钥。
[0025] 图2阐释处理器200,处理器200的实施例可以充当缓存代理111,且缓存代理111的实施例可以充当系统100中的归属代理131。处理器200可以包括指令单元210、执行单元220、处理器存储230、处理器控制单元240和安全飞地(enclave)单元250。处理器200也可以包括图2中未示出的任何其他电路、结构或逻辑。例如,分别可以充当高速缓冲存储器112或132、存储器控制器113或133、加密委托代理114或134以及链路单元115或135的实施例的高速缓冲存储器、存储器控制器、加密委托代理和/或链路单元可以被集成在处理器200的衬底上。
[0026] 指令单元210可以表示诸如用于提取、接收、解码和/或调度指令的指令解码器之类的任何电路、结构或其他硬件。可以在本发明的范围内使用任何指令格式;例如,指令可以包括操作码和一个或多个操作数,其中操作码可以被解码成一个或多个微指令或微操作以供由执行单元220执行。
[0027] 执行单元220可以包括诸如用于处理数据和执行指令、微指令和/或微操作的运算单元、逻辑单元、浮点单元、移位器等等的任何电路、结构或其他硬件。
[0028] 处理存储230可以表示在处理器200内的可用于任何目的的任何类型的存储;例如,它可以包括任何数量的数据寄存器、指令寄存器、状态寄存器、配置寄存器、控制寄存器、其他可编程或硬编码寄存器或寄存器堆、或任何其他存储结构。
[0029] 处理器控制单元240可以包括任何逻辑、电路、硬件或其他结构,包括微代码、静态编程逻辑或可编程逻辑,以便控制处理器200的各单元和其他元素的操作以及在处理器200内、进入处理器200和离开处理器200的数据传输。例如,通过引起处理器200执行由指令单元210接收到的指令和从由指令单元210接收到的指令导出的微指令或微操作,处理器控制单元240可以引起处理器200执行本发明的各方法实施例或参与本发明的各方法实施例的执行,例如下面描述的方法实施例。
[0030] 安全飞地单元250可以表示用于创建和维护安全的、受保护的或隔离的环境的任何逻辑、电路、硬件或其他结构,例如在此描述的安全飞地,在诸如系统100之类的信息处理系统内应用或其他软件可以在安全飞地中运行、执行、加载或存在。对于本描述的目的,这样的环境的每一实例都可以被称为安全飞地,但本发明的各实施例不限于把安全飞地用作安全的、受保护的或隔离的环境的那些。在一种实施例中,可以使用 处理器系列或来自 公司的其他处理器系列中的处理器的指令集中的指令来创建和维护安全飞地。
[0031] 安全飞地单元120的全部或部分可以被包括在处理器200的任何一个或多个其他单元中,例如对应于指令单元210、执行单元220、处理器存储230和处理器控制单元240的那些单元。安全飞地单元250可以包括加密单元252,加密单元252可以包括执行一种或多种加密算法和相应的解密算法的任何逻辑、电路或其他硬件,且可以包括与诸如加密委托代理114和/或134之类的另一加密单元共享的逻辑、电路或其他硬件。
[0032] 可以在系统存储器150支持的系统存储器空间内给在系统100内创建的每一安全飞地分配安全的或受保护的空间。安全存储器152表示一个或多个这样的安全的或受保护的存储器空间。可以使用已知的虚拟存储器、安全飞地或其他系统存储器编址技术来创建、分配和维护每一个这样的存储器空间,以使得可以在各个时刻把在每一个这样的存储器空间内的信息存储在信息存储设备160、系统存储器150、高速缓冲存储器112和/或132中的任何、由处理器存储230表示的缓存代理110和/或归属代理130中的任何处理器存储和/或在信息处理系统100内的任何其他存储器或存储区域的任何组合内。
[0033] 安全存储器152可以包括被称为处理器保留存储器(PRM)的一个或多个物理上邻近的存储器范围。在一种实施例中,PRM自然对齐,且具有2的整数幂的大小。诸如基本输入/输出系统之类的系统固件可以保留PRM,例如通过设置一对型号专用寄存器(MSR),两者一起被称为PRM范围寄存器(PRMRR)。在图2的实施例中,安全飞地逻辑250可以包括PRMRR 254,PRMRR 254的实施例可以充当图1中的PRMRR 116和PRMRR 136。PRMRR 116可以被用来为缓存代理111保留PRM 154,且PRMRR 136可以被用来为归属代理131保留PRM156。
[0034] 安全飞地单元250也可以包括访问控制单元256,访问控制单元256可以包括使用PRMRR 254来强加加载和访问限制的任何逻辑、电路、硬件或其他结构,以使得在安全飞地的存储器空间内信息仅可由在该安全飞地中运行的应用访问。例如,在存储到系统存储器150、信息存储设备150或处理器200外的任何其他存储器或存储中之前,可以由加密单元252加密在被分配给安全飞地的存储器页面上的信息。尽管被存储在处理器200之外,但该信息受到加密和完整性检查技术的保护。在存储器页面由应用或进程(该应用或进程在处理器110上、在该页面被分配到其中的安全飞地内运行)加载到处理器的高速缓冲存储器时,由加密单元152解密它,然后,未加密信息仅可由在安全飞地内运行的应用或进程访问。
[0035] 图3阐释加密委托代理(EPA)300,其实施例可以充当系统100中的EPA 114和EPA134。在一种实施例中,EPA 300中的硬件是专用的或非共享的,这意味着不与相同的衬底或相同的封装上的任何处理器执行核中的硬件共享。在其他实施例中,可以在EPA和一个或多个处理器核之间共享硬件。
[0036] EPA 300可以包括执行一种或多种加密算法和相应的解密算法的加密单元310。在本发明的范围内可以使用任何一种或多种密码算法。加密单元310可以包括传输单元
312,以便加密要直接通过点对点链路以一个或多个分组从一个处理器封装传输或发送给另一处理器封装的内容。加密单元310也可以包括接收单元314,以便解密直接通过点对点链路以一个或多个分组从一个处理器封装接收到另一处理器封装的内容。加密单元310也可以包括安全密钥存储316,以便存储要使用的密钥,以便加密和解密要直接通过点对点链路以一个或多个分组从一个处理器封装传输或发送给另一处理器封装的内容。加密单元
350也可以包括密钥导出单元318,以便从第一密钥或EPA 300所接收的其他数据导出第二密钥。
[0037] EPA 300也可以包括认证单元320,以便认证直接通过点对点链路在处理器封装之间传输的数据或其他信息。在本发明的范围内可以使用任何认证技术。认证单元320可以包括传输单元322,以便产生认证元数据,例如头部或签名,并将其追加或以其他方式提供给要直接通过点对点链路以一个或多个分组从一个处理器封装传输或发送给另一处理器封装的内容。认证单元320也可以包括接收单元324,以便验证直接通过点对点链路以一个或多个分组由一个处理器封装从另一处理器封装接收的内容的真实性。
[0038] EPA 300也可以包括重放(replay)保护单元330,以便防止直接通过点对点链路在处理器封装之间传输的重放攻击数据或其他信息。在本发明的范围内可以使用任何重放保护技术。重放保护单元320可以包括传输单元332,以便产生重放保护信息,例如单调计数器值、随机数和/或完整性检查值,并将其追加或以其他方式提供给直接通过点对点链路以一个或多个分组从一个处理器封装传输或发送给另一处理器封装的内容。重放保护单元320也可以包括接收单元334,以便验证直接通过点对点链路以一个或多个分组由一个处理器封装从另一处理器封装接收的内容的重放保护信息。
[0039] EPA 300也可以包括EPA控制单元340,EPA控制单元340可以包括控制EPA 300的各单元和其他元素的操作的任何逻辑、电路、硬件、固件、其他结构、微代码、状态机逻辑和/或可编程逻辑。EPA控制单元340可以引起EPA 300执行本发明的各方法实施例或参与本发明的各方法实施例的执行,例如下面所描述的各方法实施例。
[0040] 图4阐释根据本发明的一种实施例用于保护在处理器封装之间的数据传输的方法400。尽管本发明的各方法实施例不限于在这一方面,但可对图1、2和3的元素进行引用,以便帮助描述图4的方法实施例。
[0041] 在框410,安全软件模块116用密钥编码EPA 114。在框412,安全软件模块136用相同的或相应的密钥编程EPA 134,以使得EPA 134可以解密由EPA 114加密的数据,且反之亦然。
[0042] 在方法400的框420,在处理器封装110内的处理器的操作产生要存储在第一存储器地址的数据。在框422,缓存代理111执行高速缓存请求,以便判断第一存储器地址是否在高速缓冲存储器112内。在框424,高速缓存请求未命中,这是因为第一存储器地址不是在高速缓冲存储器112内。在框426,响应于未命中的高速缓存请求,发起把数据写到系统存储器150的存储器请求。
[0043] 在框430,判断存储器请求是安全存储器请求还是非安全存储器请求。例如,使用PRMRR 116,可以判断第一存储器地址是否在安全存储器152的地址范围内,在这种情况中,判断该存储器请求是安全存储器请求。如果存储器请求是安全存储器请求,那么,方法400在框440继续。如果存储器请求是非安全存储器请求,那么,方法400在框432继续。
[0044] 在框432,存储器请求被路由到链路单元115。在框434,链路单元115产生包括经加密的数据的一个或多个分组以便传输。离开框434,方法400继续进行到框452。
[0045] 在框440,存储器请求被路由到EPA 154。在框442,EPA 114加密数据。在框444,EPA 114把认证元数据追加到经加密的数据。在框446,EPA 114把防重放(anti-replay)值追加到经加密的数据。在框448,存储器请求被路由到链路单元155。在框450,链路单元115产生包括表示经加密的数据、认证元数据和防重放值的内容的一个或多个分组以便传输。
[0046] 在框452,通过封装间链路120传输一个或多个分组。在框454,由链路单元135接收一个或多个分组。在框456,链路单元135判断一个或多个分组对应于存储器请求。在框458,判断存储器请求是安全存储器请求还是非安全存储器请求。例如,通过使用PRMRR136,可以判断存储器请求是否针对在安全存储器152的地址范围内的地址,在这种情况中判断该存储器请求是安全存储器请求。如果存储器请求是安全存储器请求,那么,方法400在框460继续,如果存储器请求是非安全存储器请求,那么,方法400在框470继续。
[0047] 在框460,存储器请求被路由到EPA 134。在框462,EPA 134使用认证数据来验证存储器请求的可信性。在框464,EPA 134使用防重放值来验证存储器请求不与重放攻击相关联。在框466,EPA 134解密经加密的数据。
[0048] 在框470,存储器请求被路由到归属代理131。在框472,归属代理131向系统存储器150传输存储器请求。
[0049] 在本发明的各种实施例中,可以以不同的次序执行图4中所阐释的方法,且可以组合或省略所阐释的框,且可以添加额外的框,或者带有重新排序的、组合的、省略的或附加的框的组合。例如,可以在框442之前执行框444和/或446,以使得也可以加密认证元数据和/或防重放值。此外,在本发明的范围内,多种其他方法实施例也是可能的,包括保护从归属代理到高速缓存代理的数据传输、在高速缓存代理之间的数据传输、在任何其他类型的代理之间的数据传输和对应于读取或其他事务的数据传输的实施例。
[0050] 如上所述,本发明的各实施例或各实施例的部分可以被存储在任何形式的机器可读介质上。例如,可以以被存储在处理器200和/或EPA 300可读的介质上的软件或固件指令实现方法200的全部或部分,在由处理器200和/或EPA 300执行时,这些软件或固件指令引起处理器200和/或EPA 300执行本发明的一种实施例。而且,可以以被存储在机器可读介质上的数据实现本发明的各方面,其中该数据表示可用于制造处理器200和/或EPA 300的全部或部分的设计或其他信息。
[0051] 因而,已经描述了用于保护在处理器封装之间的数据传输的发明的各实施例。尽管已经描述且在附图中示出了某些实施例,但应理解,这样的实施例仅仅是说明而非限制广泛的发明,且本发明不限于所示出和描述的特定的构造和布置,这是由于本领域中的普通技术人员在研读本公开内容后可以看出各种其他修改。在快速发展且不容易预测进一步的进展的诸如本领域的技术领域中,可以容易地在布置和细节方面修改所公开的各实施例,通过允许不偏离本公开内容的原理或所附权利要求的范围的技术进步,可以促进这一点。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈