处理系统中的直接存储器访问授权技术方案

技术编号:21282440 阅读:38 留言:0更新日期:2019-06-06 12:28
一种处理器[102]在输入/输出装置[106]和存储器[104]之间的存储器访问路径中采用硬件加密模块[120]以加密地隔离安全信息。在一些实施方案中,所述加密模块位于所述处理器的存储器控制器[116]中,并且提供给所述存储器控制器的每个存储器访问请求包括识别所述存储器访问请求的源的VM标签值。基于识别所述存储器访问请求的所述源的请求程序id来确定VM标签。所述加密模块基于与所述VM标签相关联的加密密钥来对与存储器访问相关联的数据执行加密(用于写入访问)或解密(用于读取访问)。

Direct Memory Access Authorization in Processing System

A processor [102] uses hardware encryption module [120] in the memory access path between input/output device [106] and memory [104] to encrypt and isolate security information. In some implementations, the encryption module is located in the memory controller [116] of the processor, and each memory access request provided to the memory controller includes a VM tag value identifying the source of the memory access request. The VM tag is determined based on the requester ID identifying the source of the memory access request. The encryption module performs encryption (for write access) or decryption (for read access) of data associated with memory access based on the encryption key associated with the VM tag.

【技术实现步骤摘要】
【国外来华专利技术】处理系统中的直接存储器访问授权
技术介绍
相关技术说明在许多处理器应用中,保护信息安全是一项重要特征。例如,处理器可以用在基础架构即服务(IAAS)环境中的服务器中,其中处理器执行一个或多个虚拟机(VM)并执行管理程序以在VM之中分割服务器硬件并将VM彼此隔离。因为可以代表不同的客户来执行不同的VM,所以需要保护每个VM所使用的信息(指令和数据)不被其他VM访问。常规上,管理程序通过为每个VM保持单独的存储器页表和其他逻辑实体来保持VM信息的隔离。然而,管理程序中的缺陷(例如,错误)可能导致管理程序本身易受攻击,使得一个VM可以访问另一个VM的信息。即使在诸如个人计算机的更私密的安全环境中,存储在存储器模块中的数据也可能被盗取,并且存储在其中的数据可能受到未经授权的访问。在一些安全环境中,由于难以识别DMA请求的发起者,所以从装置对安全存储器空间的直接存储器访问(DMA)是不可信的。例如,未授权实体可以经由未授权装置来请求DMA以访问安全存储器空间。附图说明通过参照附图,可以更好地理解本公开,并且本公开的诸多特征和优点对于本领域技术人员而言是显而易见的。在不同附图中使用相同的附图标记来表示相似或相同项。图1是根据一些实施方案的在存储器控制器处采用加密模块以安全地隔离信息的处理系统的框图。图2是示出根据一些实施方案的用于提供信息隔离的图1的处理系统的示例性实现方式的框图。图3是示出根据一些实施方案的用于提供信息隔离的图1的处理系统的另一示例性实现方式的框图。图4是示出根据一些实施方案的在图1-3的处理系统处使用转换后备缓冲器和页表来识别安全存储器访问的框图。图5是根据一些实施方案的在图1-3的处理系统处处理存储器访问请求以保护加密保护的信息的方法的流程图。具体实施方式图1-5示出了通过在处理器的存储器访问路径中采用硬件加密模块来加密地隔离安全信息以在处理系统处保护安全信息的技术。处理器在输入/输出装置和存储器之间的存储器访问路径中采用硬件加密模块以加密地隔离安全信息。在一些实施方案中,加密模块位于处理器的存储器控制器处,并且提供给处理器处的输入/输出存储器管理单元(IOMMU)的每个存储器访问请求包括识别存储器访问请求的源的请求程序ID值。在一些实施方案中,处理器用于在处理系统中在输入/输出(IO)装置上执行不同的虚拟功能(VF)。例如,在一些实施方案中,加密模块为在IO装置上执行的每个VF存储唯一的密钥。在一些情况中,VF的密钥可以由与处理系统的处理器核心分开的安全模块生成,使得在处理器核心处执行的软件(包括管理程序)无法访问密钥。响应于在IOMMU处接收DMA请求,基于存储器访问请求所包括的请求程序ID值来识别请求程序VF的源。IOMMU使用请求程序ID值、使用装置表来查找与请求程序VF相关联的VMTAG值。VMTAG值识别应与DMA请求一起使用以对写入到存储器的数据加密或对从存储器读取的数据解密的特定加密密钥。在一些实施方案中,在物理上并不安全的环境中采用的处理系统中实施本文所述的技术,其中,处理系统的存储器受到未经授权的物理访问(例如,盗取硬件存储器模块或对存储器进行物理探测)。然而,因为加密模块使安全数据以加密形式存储在存储器中,所以即使安全数据受到未经授权的物理访问,安全数据也不易于使用。举例而言,即使授权的VF尝试DMA请求检索存储在分配给另一个VM/VF的存储器位置的数据,该数据仍将被不正确的加密密钥访问,导致不正确的密钥用于加密/解密(即,并未响应于存储器访问而返回数据的真实纯文本/明文)。图1示出了根据一些实施方案的提供信息的密码保护的处理系统100。处理系统100包括处理器102和存储器104。处理系统100可以被包含在诸如服务器、个人计算机、平板电脑、机顶盒、游戏系统等各种电子装置中的任何一种中。处理器102通常被配置成执行操作处理器102的电路以实施所定义的任务的指令集(例如,计算机程序)。存储器104通过存储处理器102使用的数据来促进执行这些任务。存储器104可以是随机访问存储器(RAM)、诸如闪速存储器的非易失性存储器或硬盘驱动器(HDD)等或其组合。处理系统100还包括物理输入/输出(I/O)装置106。物理I/O装置106可以是例如网络接口卡(NIC)、主机总线适配器(HBA)等。处理器102包括安全模块108。安全模块108是通用处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC),处理器核心的操作模式或者被设计和配置成执行处理系统100的安全操作的其他模块,所述安全操作包括:要在处理器102处执行的实体(例如,虚拟机、计算机程序等)的注册、要执行的实体的安全密钥的生成和识别、处理系统100对安全操作的授权等。在一些实施方案中,安全模块108可以在被允许执行其操作之前经历安全注册过程,并且可以使其操作仅限于安全操作,使得安全模块无法执行使其易受攻击的操作。如本文进一步描述,安全模块108通过生成安全密钥、识别被注册为在处理系统100处执行的实体以及实现密码隔离的其他操作来支持处理系统100处的信息的这种密码隔离。处理器102还包括处理器核心110和112、高速缓存114、存储器控制器(例如,北桥)116和安全模式寄存器118。处理器核心110和112是单独与同时执行指令的处理单元。在一些实施方案中,处理器核心110和112中的每一个包括单独的指令管线,指令管线获取指令,将所获取的指令解码成相应的操作,并且使用处理系统100的源来执行各种操作。处理器102还包括用于将装置(诸如图1所示的I/O装置106)连接到存储器控制器116的输入/输出存储器管理单元(IOMMU)120。在一些实施方案中,处理系统100实施安全方案,其中基于与在存储器104处在其中存储信息的位置相对应的或与信息的类型(例如,指令或数据)相对应的存储器地址中包括的控制位来分配信息的安全性指定(信息是否将得到加密保护)。这允许将大量数据集轻松地分类为安全信息,从而提供有效的信息保护。例如,在一些实施方案中,处理系统100设置控制位,以便将诸如指令信息或页表信息的特定类型的信息指定为安全信息,从而加密地保护这些信息,其中页表信息提供虚拟地址到存储器104的物理地址的映射。可以基于例如在处理器102处执行的程序所请求的指定以更细粒的方式指定分配给数据的地址的控制位。该安全方案提供了对关键数据的保护(例如,防止未经授权执行虚拟机或其程序),同时仍为更通用的数据提供灵活性。在一些实施方案中,因为基于信息的相应存储器地址指定分配给信息的安全类型,所以处理系统100使用页表本身来指示每个存储器地址的安全类型。因此,如下文进一步描述,IOMMU120在识别对应于存储器访问请求的存储器地址的过程中识别存储器访问请求的类型。特别地,如果存储器地址被指示为存储安全信息,则相应的存储器访问被识别为安全存储器访问。类似地,如果存储器地址被指示为存储非安全信息,则相应的存储器访问被识别为非安全存储器访问。存储器控制器116为I/O装置106提供用于与存储器104通信的接口。IOMMU120从I/O装置106接收存储器访问请求(例如,直接存储器访问请求),并且控制经由存储器控制器116向存储器104提供那些本文档来自技高网...

【技术保护点】
1.一种方法,其包括:在处理器[102]的输入/输出存储器管理单元(IOMMU)[120]处从输入/输出(IO)装置接收存储器访问请求以访问存储器[104]内的存储器空间,其中所述存储器访问请求包括存储器地址值和请求程序ID;在所述IOMMU处确定与所述请求程序ID相关联的识别标签值;以及使用对应于所述识别标签值的安全密钥[124]来访问所述存储器空间的所述存储器地址值处的数据。

【技术特征摘要】
【国外来华专利技术】2016.10.19 US 15/297,8681.一种方法,其包括:在处理器[102]的输入/输出存储器管理单元(IOMMU)[120]处从输入/输出(IO)装置接收存储器访问请求以访问存储器[104]内的存储器空间,其中所述存储器访问请求包括存储器地址值和请求程序ID;在所述IOMMU处确定与所述请求程序ID相关联的识别标签值;以及使用对应于所述识别标签值的安全密钥[124]来访问所述存储器空间的所述存储器地址值处的数据。2.根据权利要求1所述的方法,其中从所述IO装置接收所述存储器访问请求包括:从在所述IO装置上配置的虚拟功能(VF)[218]接收所述存储器访问请求。3.根据权利要求1所述的方法,其中确定识别标签值包括:基于所述请求程序ID,使用装置表[236]来查找所述识别标签值。4.根据权利要求1所述的方法,其还包括:识别与所述存储器访问请求相关联的虚拟机(VM)[204],其中所述安全密钥对应于所识别的VM。5.根据权利要求4所述的方法,其还包括:从与所述处理器分开的安全模块[108]接收所述安全密钥。6.根据权利要求1所述的方法,其还包括:响应于确定所述存储器访问请求将访问非安全存储器空间的所述存储器地址值处的数据,在不使用所述安全密钥的情况下访问所述非安全存储器空间处的数据。7.根据权利要求1所述的方法,其还包括:响应于确定所述存储器访问请求是访问安全存储器空间的所述存储器地址值处的数据的写入访问请求,使用所述安全密钥对用于写入到所述安全存储器空间的数据进行加密。8.根据权利要求1所述的方法,其还包括:响应于确定所述存储器访问请求是被授权来访问安全存储器空间的所述存储器地址值处的数据的读取访问请求,使用所述安全密钥对从所述安全存储器空间读取的数据进行解密。9.根据权利要求1所述的方法,其还包括:响应于在IOMMU处接收访问存储器映射I/O(MMIO)寄存器的请求,允许基于所述识别标签值来访问所述MMIO寄存器。10.根据权利要求1所述的方法,其还包括:将命令从虚拟机中写入到所述安全存储器空间;响应于所述命令,在所述IOMMU处执行所述命令;响应于执行所述命令,由所述IOMMU利用指定值重写所述存储器空间处的所述命令;以及所述虚拟机响应于读取所述安全存储器空间处的所述指定值来认证所述IO...

【专利技术属性】
技术研发人员:大卫·卡普兰玛吉·陈菲利普·恩吉
申请(专利权)人:超威半导体公司ATI科技无限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1