CN109643284B - 用于存储级存储器的多租户加密 - Google Patents

用于存储级存储器的多租户加密 Download PDF

Info

Publication number
CN109643284B
CN109643284B CN201780052414.0A CN201780052414A CN109643284B CN 109643284 B CN109643284 B CN 109643284B CN 201780052414 A CN201780052414 A CN 201780052414A CN 109643284 B CN109643284 B CN 109643284B
Authority
CN
China
Prior art keywords
tenant
scm
physical address
indication
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780052414.0A
Other languages
English (en)
Other versions
CN109643284A (zh
Inventor
H·M·科斯拉维
B·帕特尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN109643284A publication Critical patent/CN109643284A/zh
Application granted granted Critical
Publication of CN109643284B publication Critical patent/CN109643284B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

各种实施例总体上涉及提供对多方数据的相互认证和安全分布式处理。特别地,可以提交实验以包括对多个不信任实体拥有的私有数据的分布式处理。私有数据提供者可以授权实验并且安全地传输私有数据以供可信计算节点池中的可信计算节点进行处理。

Description

用于存储级存储器的多租户加密
相关申请的交叉引用
本申请要求享有于2016年9月30日提交且分配序列号15/283,104的题为“MULTI-TENANT ENCRYPTION FOR STORAGE CLASS MEMORY”的先前提交的美国专利申请的权益和优先权,其中的每个的全部内容由此通过引用并入。
技术领域
本文描述的实施例总体上涉及存储器加密,并且特别地涉及用于虚拟化环境和存储级存储器的多租户加密。
背景技术
现代服务器可以包括具有随机存取存储器(RAM)类似特性的非易失性存储介质。例如,这种非易失性存储介质可以具有类似于RAM的低时延和高带宽,但是可以以非易失性方式维护数据。这种存储介质经常被称为存储级存储器(SCM)。SCM系统在没有DMA的情况下提供直接存取存储(DAS)模式。换言之,具有SCM的服务器可以允许应用在不使用直接存储器存取(DMA)的情况下对存储在SCM上的数据进行存取,例如,通过使用零复制存取。然而,由于零复制存取绕过存储软件栈中的常规层中的一些层,因此常规加密技术可能对于以DAS模式操作的SCM不可实现。
附图说明
图1A-1B示出了根据实施例的用于以直接存取模式(DAS)对存储级存储器(SCM)进行存取的多租户系统的框图。
图2更详细地示出了图1A-1B的多租户系统的一部分的框图。
图3更详细地描绘了根据实施例的图1-2的多租户系统的一部分的框图。
图4更详细地描绘了根据实施例的图1-2的多租户系统的一部分的框图。
图5更详细地描绘了根据实施例的图1-2的多租户系统的一部分的框图。
图6更详细地描绘了根据实施例的图1-2的多租户系统的一部分的框图。
图7-9各自示出了根据各种实施例的逻辑流程。
图10示出了计算机可读存储介质的实施例的框图。
图11示出了处理架构的实施例的框图。
具体实施方式
各种实施例总体上涉及针对以直接存取存储(DAS)模式操作的存储级存储器(SCM)提供加密。特别地,提供了对用于多租户使用的SCM的加密。例如,可以提供SCM或SCM的阵列来存储与多租户系统相对应的信息,该多租户系统可以包括操作系统、虚拟机管理器和个体租户数据(例如,虚拟机)。
SCM可以耦合到存储器控制器和实现以用于针对租户(例如,虚拟机)提供计算环境的处理元件。通常,本公开提供了使用单独的密钥对SCM中的个体租户数据进行加密,并且利用每个租户的唯一标识指示符来引用密钥。SCM中的经加密的存储器位置(例如,页等)可以利用物理地址来引用,该物理地址包括对租户唯一标识指示符和SCM中的经加密的数据的物理地址的指示。密钥可以存储在例如处理元件高速缓存或可信执行环境中。因此,在操作期间,可以使用DAS以及物理地址的基于利用租户标识指示组件引用加密密钥而加密和/或解密的数据对SCM进行存取。
通常参考本文所使用的记号和命名,以下具体实施方式的部分可以关于在计算机或计算机的网络上执行的程序过程来呈现。本领域技术人员使用这些过程描述和表示最高效地将其工作的实质传达给本领域其他技术人员。在这里并且通常,过程被认为是产生期望结果的操作的自一致序列。这些操作是要求对物理量进行物理操纵的操作。通常(虽然并非必须地),这些量采取能够被存储、传输、组合、比较以及以其他方式操纵的电信号、磁信号或光信号的形式。有时主要是出于常见使用的原因,将这些信号称为位、值、元素、符号、字符、术语、数字等证明是方便的。然而,应当注意,所有这些术语和类似术语都与适当的物理量相关联,并且仅是应用于这些量的方便标签。
此外,在通常与人类操作者执行的心理操作相关联的术语(例如,添加或比较)中经常涉及这些操纵。然而,在形成一个或多个实施例的一部分的本文描述的操作中的任何操作中,人类操作者的这种能力在大多数情况下不是必须的或者所期望的。相反,这些操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机,该通用数字计算机由存储在其中的根据本文的教导编写的计算机程序选择性地激活或配置,和/或包括出于所要求的目的而特别构造的装置。各种实施例还涉及用于执行这些操作的装置或系统。装置可以是出于所要求的目的而特别构造的,或者可以包含通用计算设备。各种这些机器的所要求的结构从给出的说明书中展现。
现在参考附图,其中同样的附图标记始终用于指代同样的元素。在下面的描述中,出于说明的目的,阐述了许多具体细节以便提供对其的透彻理解。然而,显然,可以在没有这些具体细节的情况下实践新颖的实施例。在其他实例中,以框图形式示出了已知结构和设备,以便促进其描述。意图在于提供全面描述,以使得充分地描述在权利要求的范围内的所有修改、等同方案以及替代方案。
另外,可以引用诸如“a”、“b”、“c”之类的变量,其用于表示组件,其中可以实现多于一个组件。重要的是注意到不一定需要多个组件,并且进一步地,在实现多个组件的情况下,这些组件不一定相同。相反,为了方便且清楚的呈现而使用变量来引用图中的组件。
图1A-1B和图2描绘了多租户系统100,其包括处理元件110、存储器控制器120和存储级存储器130。现在参考图1A,多租户系统100可以被实现为执行与诸如虚拟机、容器等之类的多个租户相对应的应用和/或线程。重要的是注意到,尽管系统100被描绘为包括分立元件(例如,处理器元件110和SCM 130),但实际上系统100可以由分解的物理元件的组合构成,例如,这些物理元件来自数据中心等。换言之,处理器元件110可以是中央处理单元、包括多个核心的中央处理单元、多个中央处理单元的组合、来自中央处理单元的多个核心、来自专用处理器的处理核心等。另外,SCM 130可以是存储级存储器元件的任何组合,例如,动态随机存取存储器(DRAM)、NAND存储器、NOR存储器、三维交叉点存储器、铁电存储器、氧化硅氮氧化硅(SONOS)存储器、聚合物存储器(例如,铁电聚合物存储器)、铁电晶体管随机存取存储器(FeTRAM或FeRAM)、纳米线、相变存储器、磁阻随机存取存储器(MRAM)、自旋移矩MRAM(STT-MRAM)存储器等。
存储器控制器120可以被布置为提供对SCM 130的存取。特别地,存储器控制器120可以经由DAS模式提供对SCM的存取,例如,零复制等。可以加密SCM 130的部分以针对SCM130中指示的信息提供安全性。例如,对应于主机150(例如,操作系统(OS)、租户管理器等)的信息的第一部分可以被加密。另外,可以加密对应于个体租户的信息的部分,以提供安全性以及个体租户数据之间的隔离。例如,可以提供SCM 130的部分以存储与租户160-1、160-2和160-3相关的数据。重要的是注意到,系统100可以被实现为托管和/或支持任何数量的个体租户。仅出于清楚呈现的目的而非限制性地描绘了三个租户160-1、160-2和160-3。重要的是注意到,SCM 130的经加密的部分可能不会穿过SCM 130蔓延性地定位。例如,对应于租户160-1的信息可以位于SCM 130的各种物理存储器位置。这在图4中更清楚地示出。
通常,主机150可以是被配置为托管租户的任何实体。例如,主机150可以是操作系统和对应的租户管理器,例如,被设置为托管租户160-1至160-3的虚拟机管理器。通常,租户160-1至160-3可以是由系统100托管和/或支持的实体的任何组合。例如,租户160-1可以是虚拟机、容器、两者的某种组合等。SCM的每个部分(例如,OS/TM 150、租户160-1、租户160-2、租户160-3等)可以利用加密密钥200中的一个进行加密(例如,参考图2)。在一些示例中,加密密钥200可以存储在处理单元110上,例如,存储在高速缓存中,存储在安全寄存器中,存储在可信执行环境中,等等。
更具体地转向图1B,描绘了包括主机150的节点的应用栈101。注意,系统100可以在节点结构中跨多个节点实现。也就是说,系统100可以在被构造为形成计算节点的分解的物理计算资源上实现。每个计算节点可以具有各种计算资源并且可以托管租户或系统100的部分。然而,为了清楚起见,处理器元件110被描绘为具有应用栈101,应用栈101包括主机150、虚拟机管理器(VMM)170以及租户160-1、160-2和160-3。通常,主机150可以包括主机操作系统(OS)内核。在一些示例中(例如,如所描绘的),VMM 170可以在主机OS内核下面实现(所谓的类型1模型)。在其他示例中,VMM 170可以被配置为作为KVM或管理程序来操作(所谓的类型2模型),以管理针对由处理器元件100托管(或者,也就是说,由对应于处理器元件110的节点托管)的租户(例如,VM、容器等)的各种操作和/或配置。主机OS内核可以被布置为实现VMM 170。注意,VMM 170未被描绘为在栈101中在主机150上方。然而,VMM 170在主机150上方的概念仍然可以适用。VMM可以管理向租户160-1、160-2和160-3供应计算资源和/或处理任务,并且可以管理租户160-1、160-2和160-3与主机150之间的路由联网连接。此外,VMM 170可以管理租户160-1、160-2和160-3(或租户160的实例)的供应和配置。注意,这是一些示例,本文描述的用于提供通过租户160对SCM 130进行DAS模式存取的操作可以由主机150和/或VMM 170实现。然而,出于清楚的目的,从主机150的角度描述示例,主机150可以实现VMM,或者可以执行VMM。然而,可以提供独立的VMM以提供如本文描述的DAS模式存取。示例不限于此上下文。
注意,SCM 130不执行主机150或租户160。相反,SCM可以存储与主机150和租户160相关的数据和/或信息。因此,如图1A-1B中描绘的,在主机150和租户160在栈101中在处理器元件110上执行时SCM存储与主机150和租户160相关的数据。
更具体地转向图2,给出了更详细描绘的密钥200。如所描绘的,密钥200可以包括OS/TM密钥201和多个租户密钥211。特别地,针对图1中描绘的每个租户描绘了租户密钥211。因此,描绘了对应于租户160-1的租户密钥211-1、对应于租户160-2的租户密钥211-2以及对应于租户160-3的租户密钥211-3。租户密钥211可以存储在密钥表210中。在一些示例中,密钥表210可以存储在处理元件110的高速缓存中,存储在处理器元件110的安全寄存器中,或者存储在处理器元件110的可信执行环境中。
密钥表210可以包括信息元素以包括对密钥211的指示,并且还可以包括每个密钥211的索引212或标识符。例如,密钥211-1可以具有指示或索引212-1,密钥211-2可以具有指示或索引212-2,并且密钥211-3可以具有指示或索引212-3。通常,索引212可以映射到每个租户160。因此,每个租户160可以具有通过标识符(例如,索引212)在密钥表中引用的唯一密钥。在一些示例中,每个索引212可以对应于每个租户的唯一标识符,例如,虚拟机标识(VMID),其可以是虚拟机控制结构(VMCS)的字段或信息元素等。
图3更详细地描绘了图1的多租户系统100的实施例。特别地,该图描绘了包括主机150的实施例,主机150被布置为生成密钥200并且配置SCM 130。在一些示例中,主机150可以包括密钥打包器152和页表配置单元154。注意,关于一些实施例,主机150可以包括引导加载程序(例如,基本输入/输出系统(BIOS)等)以实现密钥打包器152或页表配置单元154。通常,主机150可以接收初始密钥211'并且根据初始密钥211'生成密钥ID 212和租户密钥211。例如,如所描绘的,主机150可以从租户160-1接收初始密钥211'-1并且生成密钥ID212-1和租户密钥211-1。
例如,主机150可以被布置为在租户的初始化期间生成密钥ID 212和租户密钥211。特别地,主机150可以在租户160-1的初始化(例如,供应、第一次引导等)期间从租户160-1接收初始密钥211'-1,并且可以生成密钥ID 212-1(例如,对应于租户160-1的唯一ID等)和租户密钥211-1。在一些示例中,初始密钥211'可以由租户160生成。在一些示例中,初始密钥211'可以由主机150生成。在一些示例中,租户密钥211'-1可以是初始密钥211'-1的经打包的版本。租户密钥211可以经由密钥打包方案使用例如主机密钥201或系统100特定的另一密钥对初始密钥211'进行打包。关于一些示例,密钥打包器152可以被布置为接收初始密钥211'并且生成经打包的密钥211。
主机150还可以被布置为针对租户160初始化SCM 130的部分(例如,存储器页等)。例如,主机150可以被布置为初始化SCM 130或SCM的部分的页表300。特别地,主机150可以将SCM 130中的页的页表300中的对应于租户160-1的条目设置为指向租户密钥211-1。更具体地,主机150可以将页表300的物理地址组件301设置为引用密钥ID 212-1和SCM物理地址303(例如,实际物理地址)。在一些示例中,页表配置单元154可以配置SCM 130的与租户160-1相对应的页表。
例如,在一些实施例中,租户160-1可以是虚拟机。因此,在虚拟机的初始化期间,虚拟机的安全性组件(例如,BitLocker等)可以生成初始密钥211'-1并且将初始密钥211'-1提供给密钥打包器152。例如,通过对初始密钥211'-1进行打包,密钥打包器152可以生成密钥211-1。另外,虚拟机或密钥主机150可以生成虚拟机的唯一标识(例如,VMID等)作为密钥ID 212-1。页表配置单元154可以将虚拟机存储器(例如,SCM 130上的租户160-1存储器等)的页表300配置为引用租户密钥211-1。特别地,页表配置单元154可以将页表300中的物理地址301的初始部分配置为引用密钥ID 212-1,而物理地址301的余量对应于SCM物理地址303。
通常,SCM 130可以利用任何数量的页表级别或页表方案来实现。然而,出于清楚的目的给出了特定示例。关于一些实施例,SCM 130可以被布置为具有5级页表方案和对应的52位物理地址。本公开可以利用前5个位或5个最高有效位来表示密钥ID 212,留下46个位来表示SCM物理地址。因此,SCM 130可以具有由SCM物理地址303引用的多达64太字节的存储,同时仍然提供对密钥ID 212的引用,以提供在SCM 130以DAS模式操作时的加密和解密技术。
图4-5更详细地描绘了图1的多租户系统100的实施例。特别地,这些图描绘了包括存储器控制器120的实施例,存储器控制器120被布置为基于密钥200对SCM 130的部分进行加密和解密。
更具体地转向图4,存储器控制器可以包括物理地址解析器122和存储器加密/解密单元124。通常,存储器控制器120可以被布置为基于密钥200对SCM 130的部分进行加密和解密。特别地,存储器控制器120可以基于由要加密的存储器页的存储器页表中的对应密钥ID 212引用的加密密钥对SCM 130存储器的部分(例如,存储器页等)进行加密。同样地,存储器控制器120可以基于由要解密的存储器页的存储器页表中的对应密钥ID 212引用的加密密钥对SCM 130存储器的部分(例如,存储器页等)进行解密。
特别地,物理地址解析器122可以接收要加密或解密的存储器位置的物理地址301,并且可以根据物理地址301的部分来确定密钥ID 212和SCM物理地址303。
存储器控制器120可以接收与物理地址301中引用的密钥ID相对应的租户密钥211,并且可以基于接收到的租户密钥211对SCM 130中的存储器(例如,在位置303处等)进行加密或解密。例如。存储器加密/解密单元124可以接收与密钥ID 212相对应的租户密钥211,并且可以基于接收到的租户密钥211和SCM物理地址303对要存储在SCM 130的存储器中的信息元素310进行加密。作为另一示例,存储器加密/解密单元124可以接收与密钥ID212相对应的租户密钥211,并且可以基于接收到的租户密钥211和SCM物理地址303对来自SCM 130的经加密的存储器的信息元素310进行解密。
因此,SCM 130的部分可以在DAS模式操作期间由存储器控制器基于密钥200进行加密和解密,并且特别地,基于由物理地址301中的密钥ID 212引用的租户密钥211进行加密和解密。这在图5中更清楚地示出。更具体地转向图5,更清楚地描绘了存储在SCM 130中的与租户160-1相关的信息。注意,该图仅描绘了与租户160-1相关的信息。然而,如图1中描绘并且在本文中描述的,SCM 130可以存储与OS/TM 150、租户160-2、租户160-3或这些图中未描绘的附加租户相关的信息。
SCM 130的部分存储与租户160-1相关的信息元素310。在该示例中,描绘了信息元素310-1、310-2、310-3、310-4、310-5、310-6和310-7。注意,信息元素310以促进理解的量来描绘,并且在实践期间,更多或更少的信息元素310可以存储在SCM 130上。通常,这样的信息元素可以是存储在SCM 130上的任何数据,例如,数据结构、软件应用、数据“文件”等。示例不限于此上下文。如所描绘的,与租户160-1相关的信息元素310可以位于SCM 130内的各种位置(例如,页、物理地址301等)。因此,在操作期间,与租户160-1相关的信息元素可以使用物理地址301来定址。如所描述的,每个物理地址301包括对租户标识符(例如,密钥ID212)的指示和对SCM 130上的物理地址(例如,SCM物理地址303)的指示。例如,物理地址301可以包括对与信息元素310-1相对应的租户ID 212-1和SCM物理地址301-1的指示。
图6更详细地描绘了图1的多租户系统100的实施例。特别地,该图描绘了系统100的实施例,系统100包括用于针对I/O操作提供加密的主机控制器600。在一些示例中,主机控制器600可以包括存储器管理单元(MMU)610,例如,输入/输出存储器管理单元(IOMMU)等。关于一些示例,主机控制器600可以体现为处理单元110的一部分。在一些示例中,主机控制器600可以体现为主机150的一部分。在一些示例中,主机控制器600可以与处理单元110和主机150分离。示例不限于此上下文。
通常,主机控制器(并且特别是MMU 610)可以将物理存储器地址从一个域(例如,租户域)转换到另一个域(例如,主机域),以用于租户与可操作地耦合到主机的设备之间的I/O的目的。另外,MMU 610可以将上下文条目表或页转换表(例如,VT-d表、AMD-Vi等)配置为包括对加密密钥的指示。更特别地,MMU 610可以将上下文表601配置为包括对来自密钥表200的密钥ID 212的指示。
例如,主机控制器600可以被布置为在租户160中的一个租户(例如,租户160-1、租户160-2、租户160-3等)与I/O设备660之间提供存取。在操作期间,租户160可以向I/O设备660写入数据或从I/O设备660接收数据。本公开提供存储器控制器120以用于对与I/O设备660相对应的数据进行加密或解密。例如,存储器控制器120可以对用于I/O设备660的直接存储器存取(DMA)缓冲器的数据进行加密或解密。MMU 610可以在上下文条目表601中配置密钥ID 212,存储器控制器120可以使用密钥ID 212从密钥表200中引用用于对I/O设备数据进行加密或解密的加密密钥211。特别地,MMU 610可以在上下文表601中引用的物理地址的未使用的位内配置密钥ID 212-n。重要的是注意到,MMU 610可以将上下文条目表601配置为引用与租户相对应的密钥ID(例如,密钥ID 212-1)或与I/O设备相对应的密钥ID。在密钥与I/O设备相对应的情况下,关于一些示例,密钥可以由在租户上执行的软件(例如,BitLocker等)或由处理元件110生成。然而,通常,利用如本文描述的密钥表200中引用的密钥ID和经打包的密钥,可以生成、打包密钥,并且生成密钥ID。
图7-9示出了在DAS模式期间提供对存储在SCM上的数据的加密和解密的逻辑流程的实施例。例如,该逻辑流程可以由多租户系统100的元件实现,用于针对可以以DAS模式操作的SCM 130提供加密和数据安全性。应认识到,参考图1-6描述逻辑流程。然而,示例不限于此上下文,并且特别地,包括与图1-6中描绘的组件类似或不同的组件的系统和/或设备可以实现逻辑流程。
更具体地转向图7,描绘了生成用于多租户SCM的加密密钥的逻辑流程700。逻辑流程700可以在框710处开始。在框1210处,“将租户加密密钥添加到处理器元件的密钥表,该租户加密密钥对应于多个租户中的租户”,主机150可以将租户加密密钥211添加到密钥表210,租户加密密钥211是多个租户加密密钥211中的一个。例如,主机150的密钥打包器152可以将租户密钥211-1添加到密钥表210。
继续到框720,“将唯一租户标识添加到密钥表以识别租户加密密钥”,主机150可以将唯一租户ID 212添加到租户加密密钥211和/或将唯一租户ID 212与租户加密密钥211进行关联,租户加密密钥211在框710处被添加到密钥表210。例如,主机150的密钥打包器152可以将与租户加密密钥211-1和租户160-1相关联的密钥ID 212-1添加到密钥表210。
继续到框730,“将存储级存储器(SCM)页表的至少一个存储器页配置为包括对唯一租户标识的指示”,主机150可以将页表配置为包括对唯一租户ID的指示。例如,主机150的页表配置单元154可以配置页表300,并且特别地,将页表300的物理地址301配置为包括对密钥ID 212-1的指示。
更具体地转向图8,描绘了使用DAS对SCM系统中的存储器进行存取的逻辑流程800。逻辑流程800可以在框810处开始。在框810处,“接收包括对物理地址的指示的存储器存取请求,该物理地址包括对唯一租户标识和SCM的物理地址的指示”,存储器控制器120可以接收包括对物理地址的指示的存储器存取请求,该物理地址包括对唯一租户ID的指示。例如,存储器控制器120的物理地址解析器122可以接收包括对密钥ID 212-1的指示(例如,在物理地址的多个最高有效位中等)的物理地址301。
继续到框820,“基于SCM的物理地址和与唯一租户标识相对应的租户密钥对SCM进行存取”,存储器控制器120可以基于物理地址和唯一租户ID对SCM进行存取。例如,存储器控制器120的物理地址解析器122可以基于密钥ID 212(例如,密钥ID 212-1等)根据物理地址301和租户加密密钥211(例如,租户加密密钥211-1等)来确定SCM物理地址303。另外,存储器加密/解密单元124可以使用SCM物理地址303对SCM中的数据进行存取,并且基于租户加密密钥211对数据进行加密或解密。
更具体地转向图9,描绘了在SCM系统中提供存储器I/O的逻辑流程900。逻辑流程900可以在框910处开始。在框910处,“接收包括对物理地址的指示的存储器存取请求,该物理地址包括对唯一租户标识和SCM的物理地址的指示”,主机控制器600可以接收包括对物理地址的指示的存储器存取请求,该物理地址包括对唯一租户ID的指示。例如,主机控制器600可以接收包括对密钥ID 212-1的指示(例如,在物理地址的多个最高有效位中等)的物理地址301。
继续到框920,“将物理SCM地址从第一域转换到第二域”,存储器管理单元(MMU)610(例如,IOMMU等)可以将在存储器存取请求中指示的物理SCM地址从第一域转换到第二域(例如,从虚拟域或租户域转换到主机域等)。
继续到框930,“将转换后的物理SCM地址添加到用于输入输出(I/O)存储器存取的上下文表”,存储器管理单元(MMU)610(例如,IOMMU等)可以将转换物理SCM地址添加到用于I/O存储器存取的上下文表,例如,上下文表601。
继续到框940,“将对第二唯一租户标识的指示添加到上下文表”,存储器管理单元(MMU)610(例如,IOMMU等)可以将对第二租户ID(例如,密钥ID 212-2等)的指示添加到上下文表601。
图10示出了存储介质2000的实施例。存储介质2000可以包括制品。在一些示例中,存储介质2000可以包括任何非暂时性计算机可读介质或机器可读介质,例如,光学、磁、或半导体存储装置。存储介质2000可以存储各种类型的计算机可执行指令(例如,2002)。例如,存储介质2000可以存储用于实现逻辑流程700的各种类型的计算机可执行指令。在一些示例中,存储介质2000可以存储用于实现逻辑流程800的各种类型的计算机可执行指令。在一些示例中,存储介质2000可以存储用于实现逻辑流程900的各种类型的计算机可执行指令。
计算机可读或机器可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写入或可重写存储器等。计算机可执行指令的示例可以包括任何合适类型的代码,例如,源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等。示例不限于此上下文。
图11示出了适于实现如先前描述的各种实施例的示例性处理架构3000的实施例。更具体地,可以将处理架构3000(或其变型)实现为系统100的一部分。
处理架构3000包括通常在数字处理中使用的各种元件,包括但不限于一个或多个处理器、多核心处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。如本应用中所使用的,术语“系统”和“组件”旨在指示其中执行数字处理的计算设备的实体,该实体是硬件、硬件和软件的组合、软件、或执行软件,其示例由该所描绘的示例性处理架构提供。例如,组件可以是但不限于在处理器元件上运行的进程、处理器元件本身、可以采用光学和/或磁存储介质的存储设备(例如,硬盘驱动器、阵列中的多个存储驱动器等)、软件对象、可执行指令序列、执行线程、程序和/或整个计算设备(例如,整个计算机)。通过说明的方式,在服务器上运行的应用和该服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以本地化在一个计算设备上和/或分布在两个或更多个计算设备之间。此外,组件可以通过各种类型的通信介质彼此通信地耦合以协调操作。协调可以涉及信息的单向或双向交换。例如,组件可以以通过通信介质传送的信号的形式来传送信息。信息可以实现为被分配给一个或多个信号线的信号。每个消息可以是串行或者基本上并行发送的信号或多个信号。
如所描绘的,在实现处理架构3000时,计算设备至少包含处理器元件3910、存储装置3930、到其他设备的接口3990以及耦合件3915。根据实现处理架构3000的计算设备的各种方面(包括其预期用途和/或使用条件),这样的计算设备可以进一步包含附加的组件,例如但不限于计数器元件3915。
耦合件3915包括一条或多条总线、点对点互连、收发器、缓冲器、交叉点开关和/或至少将处理器元件3910通信地耦合到存储装置3930的其他导体和/或逻辑。耦合件3915还可以将处理器元件3910耦合到接口3990和显示接口3955中的一个或多个(取决于这些组件和/或其他组件中的哪些组件也存在)。在处理器元件3910通过耦合件3915如此耦合的情况下,处理器元件3910能够执行用于处理架构3000的上面详细描述的任务中的各种任务。可以利用各种技术或技术的组合中的任何一种来实现耦合件3915,信号通过这些技术光学地和/或电地传达。此外,耦合件3915的至少一部分可以采用符合多种工业标准中的任何一种的定时和/或协议,包括但不限于加速图形端口(AGP)、CardBus、扩展工业标准架构(E-ISA)、微通道架构(MCA)、NuBus、外围部件互连(扩展)(PCI-X)、快速PCI(PCI-E)、个人计算机存储卡国际协会(PCMCIA)总线、HyperTransportTM、QuickPath等。
如先前讨论的,处理器元件3910可以包括多种商业可用的处理器中的任何一种,其采用多种技术中的任何一种并且实现为其中一个或多个核心以多种方式中的任何一种物理地组合。
如先前讨论的,存储装置3930可以包括基于多种技术或技术的组合中的任何一种的一个或多个不同的存储设备。更具体地,如所描绘的,存储装置3930可以包括易失性存储装置3931(例如,基于一种或多种形式的RAM技术的固态存储装置)、非易失性存储装置3932(例如,固态存储装置、铁磁存储装置或不要求恒定地提供电力来保存其内容的其他存储装置)以及可移除介质存储装置3933(例如,可移除盘存储装置或固态存储器卡存储装置,信息可以通过其在计算设备之间传达)中的一个或多个。这样将存储装置3930描绘为可能包括多种不同类型的存储是由于认识到在计算设备中常见地使用多于一种类型的存储设备,其中一种类型提供相对快速的读取能力和写入能力,使得能够由处理器元件3910更快速地操纵数据(但是可能使用恒定地要求电力的“易失性”技术),而另一种类型提供相对高密度的非易失性存储(但是可能提供相对慢的读取能力和写入能力)。
考虑到采用不同技术的不同存储设备的经常不同的特性,这些不同的存储设备通过不同的存储控制器耦合到计算设备的其他部分也是常见的,存储控制器通过不同的接口耦合到其不同的存储设备。通过示例的方式,在易失性存储装置931存在并且是基于RAM技术的情况下,易失性存储装置931可以通过存储控制器935a通信地耦合到耦合件915,向可能采用行和列寻址的易失性存储装置931提供适当的接口,并且其中存储控制器935a可以执行行刷新和/或其他维护任务以帮助保留存储在易失性存储装置931内的信息。通过另一示例的方式,在非易失性存储装置932存在并且包括一个或多个铁磁和/或固态磁盘驱动器的情况下,非易失性存储装置932可以通过存储控制器935b通信地耦合到耦合件915,向可能采用对信息块进行寻址和/或对柱面和扇区进行寻址的非易失性存储装置932提供适当的接口。通过又一示例的方式,在可移除介质存储装置933存在并且包括采用一块或多块可移除机器可读存储介质939的一个或多个光学和/或固态磁盘驱动器的情况下,可移除介质存储装置933可以通过存储控制器935c通信地耦合到耦合件915,向可能采用对信息块进行寻址的可移除介质存储装置933提供适当的接口,并且其中存储控制器935c可以以特定于延长机器可读存储介质939的寿命的方式来协调读取操作、擦除操作以及写入操作。
易失性存储装置931或非易失性存储装置932中的一个或另一个可以包括以机器可读存储介质形式的制品,其上可以存储包括可由处理器元件910执行的指令序列的例程,这取决于每个存储装置基于的技术。通过示例的方式,在非易失性存储装置932包括基于铁磁的磁盘驱动器(例如,所谓的“硬盘驱动器”)的情况下,每个这样的磁盘驱动器典型地采用一个或多个旋转盘片,在一个或多个旋转盘片上,磁响应粒子的涂层以各种模式进行沉积和磁定向,以便以近似于诸如软盘之类的可移除存储介质的方式存储诸如指令序列之类的信息。通过另一示例的方式,非易失性存储装置932可以由固态存储设备的存储体(bank)组成,以便以近似于紧凑闪存卡的方式存储诸如指令序列之类的信息。再次,在计算设备中在不同的时间采用不同类型的存储设备来存储可执行例程和/或数据是常见的。因此,包括要由处理器元件910执行的指令序列的例程可以初始地存储在机器可读存储介质939上,并且可移除介质存储装置933可以随后用于将该例程复制到非易失性存储装置932以用于长期存储,而不要求机器可读存储介质939和/或易失性存储装置931持续存在,以使得该例程在被执行时能够由处理器元件910更快速地访问。
如先前讨论的,接口990可以采用各种信令技术中的任何一种,这样的信令技术对应于可以用于将计算设备通信地耦合到一个或多个其他设备的各种通信技术中的任何一种。再次,可以采用各种形式的有线信令或无线信令中的一者或两者来使得处理器元件910能够与输入/输出设备(例如,所描绘的示例键盘940或打印机945)和/或其他计算设备进行交互,可能通过网络(例如,网络999)或互连的网络集合。为了识别经常必须受到任何一个计算设备支持的、多种类型的信令和/或协议的经常大不相同的特性,将接口990描绘为包括多个不同的接口控制器995a、995b以及995c。接口控制器995a可以采用各种类型的有线数字串行接口或射频无线接口中的任何一种来接收来自用户输入设备(例如,所描绘的键盘940)的串行传输的消息。接口控制器995b可以采用各种基于布线的或无线的信令、定时和/或协议中的任何一种来通过所描绘的网络999(可能是包括一个或多个链路的网络、较小的网络、或者可能是互联网)访问其他计算设备。接口995c可以采用各种导电布线中的任何一种,使得能够使用串行信号传输或并行信号传输来将数据传达到所描绘的打印机945。可以通过接口990的一个或多个接口控制器通信地耦合的设备的其他示例包括但不限于麦克风、遥控器、手写笔、读卡器、指纹读取器、虚拟现实交互手套、图形输入平板、操纵杆、其他键盘、视网膜扫描器、触摸屏的触摸输入组件、轨迹球、各种传感器、激光打印机、喷墨打印机、机械机器人、铣床等。
在计算设备通信地耦合到(或者可能实际上包含)显示器(例如,所描绘的示例显示器950)的情况下,实现处理架构3000的这种计算设备还可以包含显示接口955。尽管更广泛类型的接口可以用于通信地耦合到显示器,但是在显示器上视觉地显示各种形式的内容经常要求在某种程度上专门的附加处理,以及所使用的基于布线的接口的在某种程度上专门的性质经常使得期望提供不同的显示接口。在显示器950的通信耦合中可以由显示接口955采用的有线和/或无线信令技术可以利用符合各种行业标准中的任何一种的信令和/或协议,包括但不限于各种模拟视频接口、数字视频接口(DVI)、显示端口(DisplayPort)等中的任何一种。
更一般地,本文描述的设备的各种元件可以包括各种硬件元件、软件元件、或两者的组合。硬件元件的示例可以包括设备、逻辑器件、组件、处理器、微处理器、电路、处理器元件、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任何组合。然而,确定使用硬件元件和/或软件元件来实现实施例可以根据任何数量的因素而变化,例如,期望的计算速率、功率水平、热容差、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及如对于给定实现方式所期望的其他设计或性能约束。
该公开现在转向提供说明性示例:
示例1.一种用于向存储级存储器提供经加密的多租户直接存取存储的存储器控制器的装置,该装置包括逻辑,逻辑的至少一部分用硬件实现,该逻辑用于:将租户加密密钥添加到处理器元件的密钥表,租户加密密钥与多个租户中的租户相对应;将租户标识添加到密钥表以识别租户加密密钥;以及将存储级存储器(SCM)页表的至少一个存储器页配置为包括对租户标识的指示。
示例2.示例1的装置,至少一个存储器页包括对物理SCM地址的指示,该逻辑用于:将对租户标识的指示添加到物理地址的一部分。
示例3.示例2的装置,其中,物理地址包括52个位,并且租户标识包括6个位,该逻辑用于:将对租户标识的指示添加到物理地址的6个最高有效位。
示例4.示例1的装置,该逻辑用于:部分地基于租户加密密钥对与至少一个存储器页相对应的SCM进行加密。
示例5.示例1的装置,该逻辑用于:接收包括对物理地址的指示的存储器存取请求,物理地址包括对租户标识和物理SCM地址的指示;以及基于物理SCM地址和与租户标识相对应的租户密钥对SCM进行存取。
示例6.示例5的装置,该逻辑用于:对SCM进行存取包括使用租户密钥对SCM的存储器页进行加密或解密。
示例7.示例1的装置,该逻辑用于:接收包括对物理地址的指示的存储器存取请求,物理地址包括对租户标识和物理SCM地址的指示;将物理SCM地址从第一域转换到第二域;将转换后的物理SCM地址添加到用于输入输出(I/O)存储器存取的上下文表;以及将对第二租户标识的指示添加到上下文表。
示例8.示例7的装置,该逻辑用于:基于对物理SCM地址的存储器存取和与租户标识相对应的租户密钥,从SCM取回信息元素;以及基于与第二租户标识相对应的租户密钥对信息元素进行加密。
示例9.示例8的装置,该逻辑用于:将经加密的信息元素添加到I/O设备的直接存储器存取(DMA)缓冲器,I/O设备与第二租户标识相对应。
示例10.示例9的装置,该逻辑用于:生成初始加密密钥;以及对初始加密密钥进行打包以生成租户加密密钥。
示例11.至少一种机器可读存储介质,包括用于向存储级存储器提供经加密的多租户直接存取存储的指令,该指令当由处理器元件执行时使得处理器元件进行以下操作:将租户加密密钥添加到处理器元件的密钥表,租户加密密钥与多个租户中的租户相对应;将租户标识添加到密钥表以识别租户加密密钥;以及将存储级存储器(SCM)页表的至少一个存储器页配置为包括对租户标识的指示。
示例12.示例11的至少一种机器可读存储介质,至少一个存储器页包括对物理SCM地址的指示,该介质包括进一步使得处理器元件进行以下操作的指令:将对租户标识的指示添加到物理地址的一部分。
示例13.示例12的至少一种机器可读存储介质,其中,物理地址包括52个位,并且租户标识包括6个位,该介质包括进一步使得处理器元件进行以下操作的指令:将对租户标识的指示添加到物理地址的6个最高有效位。
示例14.示例11的至少一种机器可读存储介质,包括进一步使得处理器元件进行以下操作的指令:部分地基于租户加密密钥对与至少一个存储器页相对应的SCM进行加密。
示例15.示例11的至少一种机器可读存储介质,包括进一步使得处理器元件进行以下操作的指令:接收包括对物理地址的指示的存储器存取请求,物理地址包括对租户标识和物理SCM地址的指示;以及基于物理SCM地址和与租户标识相对应的租户密钥对SCM进行存取。
示例16.示例15的至少一种机器可读存储介质,包括进一步使得处理器元件进行以下操作的指令:对SCM进行存取包括使用租户密钥对SCM的存储器页进行加密或解密。
示例17.示例11的至少一种机器可读存储介质,包括进一步使得处理器元件进行以下操作的指令:接收包括对物理地址的指示的存储器存取请求,物理地址包括对租户标识和物理SCM地址的指示;将物理SCM地址从第一域转换到第二域;将转换后的物理SCM地址添加到用于输入输出(I/O)存储器存取的上下文表;以及将对第二租户标识的指示添加到上下文表。
示例18.示例17的至少一种机器可读存储介质,包括进一步使得处理器元件进行以下操作的指令:基于对物理SCM地址的存储器存取和与租户标识相对应的租户密钥,从SCM取回信息元素;以及基于与第二租户标识相对应的租户密钥对信息元素进行加密。
示例19.示例18的至少一种机器可读存储介质,包括进一步使得处理器元件进行以下操作的指令:将经加密的信息元素添加到I/O设备的直接存储器存取(DMA)缓冲器,I/O设备与第二租户标识相对应。
示例20.示例11的至少一种机器可读存储介质,包括进一步使得处理器元件进行以下操作的指令:生成初始加密密钥;以及对初始加密密钥进行打包以生成租户加密密钥。
示例21.一种用于向存储级存储器提供经加密的多租户直接存取存储的系统,该系统包括:存储级存储器(SCM);存储器控制器,其耦合到存储级存储器以对SCM进行存取;以及逻辑,其至少一部分用硬件实现,该逻辑用于:将租户加密密钥添加到处理器元件的密钥表,租户加密密钥与多个租户中的租户相对应;将租户标识添加到密钥表以识别租户加密密钥;以及将存储级存储器(SCM)页表的至少一个存储器页配置为包括对租户标识的指示。
示例22.示例21的系统,至少一个存储器页包括对物理SCM地址的指示,该逻辑用于:将对租户标识的指示添加到物理地址的一部分。
示例23.示例22的系统,其中,物理地址包括52个位,并且租户标识包括6个位,该逻辑用于:将对租户标识的指示添加到物理地址的6个最高有效位。
示例24.示例21的系统,存储器控制器用于:部分地基于租户加密密钥对与至少一个存储器页相对应的SCM进行加密。
示例25.示例21的系统,存储器控制器用于:接收包括对物理地址的指示的存储器存取请求,物理地址包括对租户标识和物理SCM地址的指示;以及基于物理SCM地址和与租户标识相对应的租户密钥对SCM进行存取。
示例26.示例25的系统,存储器控制器用于:对SCM进行存取包括使用租户密钥对SCM的存储器页进行加密或解密。
示例27.示例21的系统,该逻辑用于:接收包括对物理地址的指示的存储器存取请求,物理地址包括对租户标识和物理SCM地址的指示;将物理SCM地址从第一域转换到第二域;将转换后的物理SCM地址添加到用于输入输出(I/O)存储器存取的上下文表;以及将对第二租户标识的指示添加到上下文表。
示例28.示例27的系统,存储器控制器用于:基于对物理SCM地址的存储器存取和与租户标识相对应的租户密钥,从SCM取回信息元素;以及基于与第二租户标识相对应的租户密钥对信息元素进行加密。
示例29.示例28的系统,存储器控制器用于:将经加密的信息元素添加到I/O设备的直接存储器存取(DMA)缓冲器,I/O设备与第二租户标识相对应。
示例30.示例21的系统,该逻辑用于:生成初始加密密钥;以及对初始加密密钥进行打包以生成租户加密密钥。
示例31.一种用于向存储级存储器提供经加密的多租户直接存取存储的计算机实现的方法,该方法包括:将租户加密密钥添加到处理器元件的密钥表,租户加密密钥与多个租户中的租户相对应;将租户标识添加到密钥表以识别租户加密密钥;以及将存储级存储器(SCM)页表的至少一个存储器页配置为包括对租户标识的指示。
示例32.示例31的计算机实现的方法,至少一个存储器页包括对物理SCM地址的指示,该方法包括:将对租户标识的指示添加到物理地址的一部分。
示例33.示例32的计算机实现的方法,其中,物理地址包括52个位,并且租户标识包括6个位,该方法包括:将对租户标识的指示添加到物理地址的6个最高有效位。
示例34.示例31的计算机实现的方法,包括:部分地基于租户加密密钥对与至少一个存储器页相对应的SCM进行加密。
示例35.示例31的计算机实现的方法,包括:接收包括对物理地址的指示的存储器存取请求,物理地址包括对租户标识和物理SCM地址的指示;以及基于物理SCM地址和与租户标识相对应的租户密钥对SCM进行存取。
示例36.示例35的计算机实现的方法,对SCM进行存取包括使用租户密钥对SCM的存储器页进行加密或解密。
示例37.示例31的计算机实现的方法,包括:接收包括对物理地址的指示的存储器存取请求,物理地址包括对租户标识和物理SCM地址的指示;将物理SCM地址从第一域转换到第二域;将转换后的物理SCM地址添加到用于输入输出(I/O)存储器存取的上下文表;以及将对第二租户标识的指示添加到上下文表。
示例38.示例37的计算机实现的方法,包括:基于对物理SCM地址的存储器存取和与租户标识相对应的租户密钥,从SCM取回信息元素;以及基于与第二租户标识相对应的租户密钥对信息元素进行加密。
示例39.示例38的计算机实现的方法,包括:将经加密的信息元素添加到I/O设备的直接存储器存取(DMA)缓冲器,I/O设备与第二租户标识相对应。
示例40.示例31的计算机实现的方法,包括:生成初始加密密钥;以及对初始加密密钥进行打包以生成租户加密密钥。
示例41.一种用于设备的装置,该装置包括用于执行示例31至40中任一项的方法的单元。
示例42.一种用于向存储级存储器提供经加密的多租户直接存取存储的装置,该装置包括:存储器控制器,其通信地耦合到处理器元件,该存储器控制器用于:将租户加密密钥添加到处理器元件的密钥表,租户加密密钥与多个租户中的租户相对应;将租户标识添加到密钥表以识别租户加密密钥;以及将存储级存储器(SCM)页表的至少一个存储器页配置为包括对租户标识的指示。
示例43.示例42的装置,包括处理器元件,该处理器元件通信地耦合到存储器控制器。
示例44.示例42的装置,至少一个存储器页包括对物理SCM地址的指示,存储器控制器用于:将对租户标识的指示添加到物理地址的一部分。
示例45.示例44的装置,其中,物理地址包括52个位,并且租户标识包括6个位,存储器控制器用于:将对租户标识的指示添加到物理地址的6个最高有效位。
示例46.示例42的装置,存储器控制器用于:部分地基于租户加密密钥对与至少一个存储器页相对应的SCM进行加密。
示例47.示例42的装置,存储器控制器用于:接收包括对物理地址的指示的存储器存取请求,物理地址包括对租户标识和物理SCM地址的指示;以及基于物理SCM地址和与租户标识相对应的租户密钥对SCM进行存取。
示例48.示例42的装置,存储器控制器用于:使用租户密钥对SCM的至少一个存储器页进行加密或解密。
示例49.示例42的装置,存储器控制器用于:接收包括对物理地址的指示的存储器存取请求,物理地址包括对租户标识和物理SCM地址的指示;将物理SCM地址从第一域转换到第二域;将转换后的物理SCM地址添加到用于输入输出(I/O)存储器存取的上下文表;以及将对第二租户标识的指示添加到上下文表。
示例50.示例49的装置,存储器控制器用于:基于对物理SCM地址的存储器存取和与租户标识相对应的租户密钥,从SCM取回信息元素;以及基于与第二租户标识相对应的租户密钥对信息元素进行加密。
示例51.示例50的装置,存储器控制器用于:将经加密的信息元素添加到I/O设备的直接存储器存取(DMA)缓冲器,I/O设备与第二租户标识相对应。
示例52.示例51的装置,存储器控制器用于:生成初始加密密钥;以及对初始加密密钥进行打包以生成租户加密密钥。
可以使用表达“一个实施例”或“实施例”及其衍生词来描述一些实施例。这些术语表示结合实施例描述的特定特征、结构或特性包括在至少一个实施例中。在说明书中的各处出现的短语“在一个实施例中”不一定都指代同一实施例。此外,可以使用表达“耦合”和“连接”及其衍生词来描述一些实施例。这些术语不一定旨在彼此同义。例如,可以使用术语“连接”和/或“耦合”来描述一些实施例,以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦合”也可以表示两个或更多个元件彼此不直接接触,但仍然彼此协作或交互。
要强调的是,提供本公开的摘要以允许读者快速确定技术公开的性质。摘要在理解其不用于解释或限制权利要求的范围或含义的情况下提交。此外,在前面的具体实施方式中,可以看出,出于使得本公开流畅的目的,在单个实施例中将各种特征组合在一起。这种公开的方法不应被解释为反映以下意图:所要求保护的实施例要求比每项权利要求中明确叙述的更多的特征。相反,如所附权利要求反映的,创造性的主题在于少于单个公开的实施例的所有特征。因此,所附权利要求由此并入具体实施方式中,其中每项权利要求独立地作为单独的实施例。在所附权利要求中,术语“包括(including)”和“其中(in which)”分别用作相应的术语“包含(comprising)”和“其中(wherein)”的简明英文等同物。此外,术语“第一”、“第二”、“第三”等仅用作标签,而并非旨在对其对象施加数字要求。
上面描述的内容包括所公开的架构的示例。当然,不可能描述组件和/或方法的每种可设想的组合,但是本领域普通技术人员可以认识到许多另外的组合和变换是可能的。因此,新颖的架构旨在包含落在所附权利要求的精神和范围内的所有这样的改变、修改以及变型。本公开现在转向提供各种示例实现方式。

Claims (23)

1.一种用于存储级存储器的多租户加密的装置,包括:
存储器控制器,其通信地耦合到处理器元件,所述存储器控制器用于:
将租户加密密钥添加到所述处理器元件的密钥表,所述租户加密密钥与多个租户中的租户相对应;
将唯一租户标识添加到所述密钥表以识别所述租户加密密钥;以及
将针对存储级存储器(SCM)的至少一个存储器页的页表中的包括一组位的物理地址配置为包括对所述唯一租户标识的指示和SCM物理地址,其中,对所述唯一租户标识的所述指示包括所述一组位的第一子集,并且所述SCM物理地址包括所述一组位的第二子集。
2.如权利要求1所述的装置,包括所述处理器元件,所述处理器元件通信地耦合到所述存储器控制器。
3.如权利要求1所述的装置,所述存储器控制器用于将对唯一租户标识的所述指示添加到所述物理地址的一部分。
4.如权利要求1所述的装置,其中,所述物理地址的所述一组位包括52个位,所述唯一租户标识包括6个位,并且所述一组位的第一子集包括所述物理地址的6个最高有效位,所述存储器控制器用于将对所述唯一租户标识的所述指示添加到所述物理地址的6个最高有效位。
5.如权利要求1所述的装置,所述存储器控制器用于部分地基于所述租户加密密钥对与所述至少一个存储器页相对应的SCM进行加密。
6.如权利要求1所述的装置,所述存储器控制器用于:
接收包括对所述物理地址的指示的存储器存取请求,所述物理地址包括对所述唯一租户标识的所述指示和所述SCM物理地址;以及
基于所述SCM物理地址和与所述唯一租户标识相对应的所述租户加密密钥对所述SCM进行存取。
7.如权利要求1所述的装置,所述存储器控制器用于使用所述租户加密密钥对SCM的至少一个存储器页进行加密或解密。
8.如权利要求1所述的装置,所述存储器控制器用于:
接收包括对所述物理地址的指示的存储器存取请求,所述物理地址包括对所述唯一租户标识的所述指示和所述SCM物理地址;
将所述SCM物理地址从第一域转换到第二域;
将转换后的SCM物理地址添加到用于输入输出(I/O)存储器存取的上下文表;以及
将对第二唯一租户标识的指示添加到所述上下文表。
9.如权利要求8所述的装置,所述存储器控制器用于:
基于对所述SCM物理地址的存储器存取和与所述唯一租户标识相对应的所述租户加密密钥,从SCM取回信息元素;以及
基于与所述第二唯一租户标识相对应的租户密钥对所述信息元素进行加密。
10.如权利要求9所述的装置,其中,所述存储器控制器用于将经加密的信息元素添加到I/O设备的直接存储器存取(DMA)缓冲器,所述I/O设备与所述第二唯一租户标识相对应。
11.如权利要求10所述的装置,所述存储器控制器用于:
生成初始加密密钥;以及
对所述初始加密密钥进行打包以生成所述租户加密密钥。
12.至少一种非暂时性机器可读存储介质,包括指令,所述指令当由处理器元件执行时使得所述处理器元件进行以下操作:
将租户加密密钥添加到所述处理器元件的密钥表,所述租户加密密钥与多个租户中的租户相对应;
将租户标识添加到所述密钥表以识别所述租户加密密钥;以及
将针对存储级存储器(SCM)的至少一个存储器页的页表中的包括一组位的物理地址配置为包括对所述租户标识的指示和SCM物理地址,其中,对所述租户标识的所述指示包括所述一组位的第一子集,并且所述SCM物理地址包括所述一组位的第二子集。
13.如权利要求12所述的至少一种非暂时性机器可读存储介质,所述介质包括进一步使得所述处理器元件进行以下操作的指令:将对所述租户标识的所述指示添加到物理地址的一部分。
14.如权利要求12所述的至少一种非暂时性机器可读存储介质,其中,所述物理地址的所述一组位包括52个位,所述租户标识包括6个位,并且所述一组位的第一子集包括所述物理地址的6个最高有效位,所述介质包括进一步使得所述处理器元件进行以下操作的指令:将对所述租户标识的所述指示添加到所述物理地址的6个最高有效位。
15.如权利要求12所述的至少一种非暂时性机器可读存储介质,包括进一步使得所述处理器元件进行以下操作的指令:部分地基于所述租户加密密钥对与所述至少一个存储器页相对应的SCM进行加密。
16.如权利要求12所述的至少一种非暂时性机器可读存储介质,包括进一步使得所述处理器元件进行以下操作的指令:
接收包括对所述物理地址的指示的存储器存取请求,所述物理地址包括对所述租户标识的所述指示和所述SCM物理地址;以及
基于所述SCM物理地址和与所述租户标识相对应的所述租户加密密钥对SCM进行存取。
17.如权利要求16所述的至少一种非暂时性机器可读存储介质,包括进一步使得所述处理器元件进行以下操作的指令:对所述SCM进行存取包括使用所述租户加密密钥对所述SCM的存储器页进行加密或解密。
18.如权利要求12所述的至少一种非暂时性机器可读存储介质,包括进一步使得所述处理器元件进行以下操作的指令:
接收包括对所述物理地址的指示的存储器存取请求,所述物理地址包括对所述租户标识的所述指示和所述SCM物理地址;
将所述SCM物理地址从第一域转换到第二域;
将转换后的SCM物理地址添加到用于输入输出(I/O)存储器存取的上下文表;以及
将对第二租户标识的指示添加到所述上下文表。
19.如权利要求18所述的至少一种非暂时性机器可读存储介质,包括进一步使得所述处理器元件进行以下操作的指令:
基于对所述SCM物理地址的存储器存取和与所述租户标识相对应的所述租户加密密钥,从SCM取回信息元素;以及
基于与所述第二租户标识相对应的租户密钥对所述信息元素进行加密。
20.如权利要求19所述的至少一种非暂时性机器可读存储介质,包括进一步使得所述处理器元件进行以下操作的指令:将经加密的信息元素添加到I/O设备的直接存储器存取(DMA)缓冲器,所述I/O设备与所述第二租户标识相对应。
21.一种用于存储级存储器的多租户加密的系统,包括:
存储级存储器(SCM);
存储器控制器,其耦合到所述存储级存储器以对所述SCM进行存取;以及
逻辑,所述逻辑中的至少一部分是用硬件实现的,所述逻辑用于:
将租户加密密钥添加到处理器元件的密钥表,所述租户加密密钥与多个租户中的租户相对应;
将租户标识添加到所述密钥表以识别所述租户加密密钥;以及
将针对所述SCM的至少一个存储器页的页表中的包括一组位的物理地址配置为包括对所述租户标识的指示和SCM物理地址,其中,对所述租户标识的所述指示包括所述一组位的第一子集,并且所述SCM物理地址包括所述一组位的第二子集。
22.如权利要求21所述的系统,所述逻辑用于将对所述租户标识的所述指示添加到物理地址的一部分。
23.如权利要求21所述的系统,所述逻辑用于:
接收包括对所述物理地址的指示的存储器存取请求,所述物理地址包括对所述租户标识的所述指示和SCM物理地址;
将所述SCM物理地址从第一域转换到第二域;
将转换后的SCM物理地址添加到用于输入输出(I/O)存储器存取的上下文表;以及
将对第二租户标识的指示添加到所述上下文表。
CN201780052414.0A 2016-09-30 2017-09-07 用于存储级存储器的多租户加密 Active CN109643284B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/283,104 US10255202B2 (en) 2016-09-30 2016-09-30 Multi-tenant encryption for storage class memory
US15/283,104 2016-09-30
PCT/US2017/050463 WO2018063768A1 (en) 2016-09-30 2017-09-07 Multi-tenant encryption for storage class memory

Publications (2)

Publication Number Publication Date
CN109643284A CN109643284A (zh) 2019-04-16
CN109643284B true CN109643284B (zh) 2024-01-02

Family

ID=61758209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780052414.0A Active CN109643284B (zh) 2016-09-30 2017-09-07 用于存储级存储器的多租户加密

Country Status (4)

Country Link
US (2) US10255202B2 (zh)
CN (1) CN109643284B (zh)
DE (1) DE112017005008T5 (zh)
WO (1) WO2018063768A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740466B1 (en) 2016-09-29 2020-08-11 Amazon Technologies, Inc. Securing interfaces of a compute node
US10474359B1 (en) 2017-02-28 2019-11-12 Amazon Technologies, Inc. Write minimization for de-allocated memory
US10901627B1 (en) 2017-02-28 2021-01-26 Amazon Technologies, Inc. Tracking persistent memory usage
US10404674B1 (en) * 2017-02-28 2019-09-03 Amazon Technologies, Inc. Efficient memory management in multi-tenant virtualized environment
JP2018156289A (ja) * 2017-03-16 2018-10-04 東芝メモリ株式会社 共有メモリコントローラ、共有メモリモジュールおよびメモリ共有システム
US11687654B2 (en) 2017-09-15 2023-06-27 Intel Corporation Providing isolation in virtualized systems using trust domains
US10936212B2 (en) * 2018-01-04 2021-03-02 Montage Technology Co., Ltd. Memory controller, method for performing access control to memory module
US10983711B2 (en) * 2018-01-04 2021-04-20 Montage Technology Co., Ltd. Memory controller, method for performing access control to memory module
US11275587B2 (en) 2018-05-02 2022-03-15 Micron Technology, Inc. Static identifications in object-based memory access
US10871983B2 (en) 2018-05-31 2020-12-22 Intel Corporation Process-based multi-key total memory encryption
WO2020000401A1 (en) * 2018-06-29 2020-01-02 Intel Corporation Transparent Encryption
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US11500665B2 (en) 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US11481241B2 (en) 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US10915465B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US10915457B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory access control through permissions specified in page table entries for execution domains
US11182507B2 (en) 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US10769062B2 (en) 2018-10-01 2020-09-08 Western Digital Technologies, Inc. Fine granularity translation layer for data storage devices
US10956071B2 (en) 2018-10-01 2021-03-23 Western Digital Technologies, Inc. Container key value store for data storage devices
US11544069B2 (en) 2018-10-25 2023-01-03 Micron Technology, Inc. Universal pointers for data exchange in a computer system having independent processors
US11836091B2 (en) * 2018-10-31 2023-12-05 Advanced Micro Devices, Inc. Secure memory access in a virtualized computing environment
US10740231B2 (en) * 2018-11-20 2020-08-11 Western Digital Technologies, Inc. Data access in data storage device including storage class memory
US11138320B2 (en) * 2018-12-20 2021-10-05 Intel Corporation Secure encryption key management in trust domains
US11461244B2 (en) * 2018-12-20 2022-10-04 Intel Corporation Co-existence of trust domain architecture with multi-key total memory encryption technology in servers
US10868887B2 (en) * 2019-02-08 2020-12-15 Palantir Technologies Inc. Systems and methods for isolating applications associated with multiple tenants within a computing platform
US11016905B1 (en) 2019-11-13 2021-05-25 Western Digital Technologies, Inc. Storage class memory access
US11436342B2 (en) 2019-12-26 2022-09-06 Intel Corporation TDX islands with self-contained scope enabling TDX KeyID scaling
US11249921B2 (en) 2020-05-06 2022-02-15 Western Digital Technologies, Inc. Page modification encoding and caching
WO2022133860A1 (en) * 2020-12-24 2022-06-30 Intel Corporation Key management for crypto processors attached to other processing units
US20220229683A1 (en) * 2021-01-21 2022-07-21 Vmware, Inc. Multi-process virtual machine migration in a virtualized computing system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103946810A (zh) * 2011-09-30 2014-07-23 英特尔公司 具有包含可配置分区的非易失性随机访问存储器的平台储存层次结构
CN104104513A (zh) * 2014-07-22 2014-10-15 浪潮电子信息产业股份有限公司 一种云端多租户数据存储安全隔离方法
CN104601571A (zh) * 2015-01-14 2015-05-06 浪潮电子信息产业股份有限公司 一种租户与云服务器存储交互的数据加密系统及方法
CN105187425A (zh) * 2015-09-02 2015-12-23 南京理工大学紫金学院 面向云计算通信系统安全的无证书门限解密方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6047624B2 (ja) * 1982-06-30 1985-10-22 富士通株式会社 アドレス変換制御方式
JP3627384B2 (ja) * 1996-01-17 2005-03-09 富士ゼロックス株式会社 ソフトウェアの保護機能付き情報処理装置及びソフトウェアの保護機能付き情報処理方法
US6826662B2 (en) * 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7142540B2 (en) * 2002-07-18 2006-11-28 Sun Microsystems, Inc. Method and apparatus for zero-copy receive buffer management
US8037281B2 (en) * 2005-04-07 2011-10-11 Advanced Micro Devices, Inc. Miss-under-miss processing and cache flushing
US7415575B1 (en) * 2005-12-08 2008-08-19 Nvidia, Corporation Shared cache with client-specific replacement policy
US8060718B2 (en) * 2006-06-20 2011-11-15 International Business Machines Updating a memory to maintain even wear
US20080229117A1 (en) * 2007-03-07 2008-09-18 Shin Kang G Apparatus for preventing digital piracy
US9742564B2 (en) * 2010-05-14 2017-08-22 Oracle International Corporation Method and system for encrypting data
US20110307695A1 (en) * 2010-06-14 2011-12-15 Salesforce.Com, Inc. Methods and systems for providing a secure online feed in a multi-tenant database environment
US9116634B2 (en) * 2011-06-10 2015-08-25 International Business Machines Corporation Configure storage class memory command
US9350536B2 (en) 2012-08-16 2016-05-24 Digicert, Inc. Cloud key management system
US20140082313A1 (en) * 2012-09-14 2014-03-20 International Business Machines Corporation Storage class memory evacuation
US9342353B2 (en) * 2012-10-06 2016-05-17 International Business Machines Corporation Techniques for implementing information services with tenant specific service level agreements
US9262342B2 (en) 2012-12-20 2016-02-16 Rambus Inc. Process authenticated memory page encryption
US9292673B2 (en) 2013-03-15 2016-03-22 International Business Machines Corporation Virtual key management and isolation of data deployments in multi-tenant environments
US9225636B2 (en) * 2013-04-04 2015-12-29 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for exchanging IP packets among network layer 2 peers
US9411973B2 (en) 2013-05-02 2016-08-09 International Business Machines Corporation Secure isolation of tenant resources in a multi-tenant storage system using a security gateway
US20140344450A1 (en) * 2013-05-08 2014-11-20 Connectloud, Inc. Method and Apparatus for Deterministic Cloud User Service Impact Reporting
US9282122B2 (en) * 2014-04-30 2016-03-08 Intuit Inc. Method and apparatus for multi-tenancy secrets management
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9436847B2 (en) * 2014-09-26 2016-09-06 Intel Corporation Cryptographic pointer address encoding
US9619401B2 (en) * 2015-02-20 2017-04-11 Wisconsin Alumni Research Foundation Efficient memory management system for computers supporting virtual machines
US9678665B2 (en) * 2015-03-06 2017-06-13 Western Digital Technologies, Inc. Methods and systems for memory page allocation
US9749319B2 (en) * 2015-05-20 2017-08-29 Google Inc. Address validation using signatures
US11126565B2 (en) * 2016-06-27 2021-09-21 Hewlett Packard Enterprise Development Lp Encrypted memory access using page table attributes
US10691482B2 (en) * 2016-08-11 2020-06-23 Intel Corporation Systems, methods, and apparatus for securing virtual machine control structures

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103946810A (zh) * 2011-09-30 2014-07-23 英特尔公司 具有包含可配置分区的非易失性随机访问存储器的平台储存层次结构
CN104104513A (zh) * 2014-07-22 2014-10-15 浪潮电子信息产业股份有限公司 一种云端多租户数据存储安全隔离方法
CN104601571A (zh) * 2015-01-14 2015-05-06 浪潮电子信息产业股份有限公司 一种租户与云服务器存储交互的数据加密系统及方法
CN105187425A (zh) * 2015-09-02 2015-12-23 南京理工大学紫金学院 面向云计算通信系统安全的无证书门限解密方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
刘宇涛等.基于体系结构扩展的云计算安全增强研究.《集成技术》.2012,(第04期),全文. *
裴华艳等.基于可信计算的多租户隐私数据保护.《计算机系统应用》.2015,(第10期),全文. *
邢彬 ; 韩臻 ; 常晓林 ; 刘吉强 ; .基于虚拟机监控技术的可信虚拟域.信息安全学报.2016,(01),全文. *

Also Published As

Publication number Publication date
DE112017005008T5 (de) 2019-07-04
US20190196983A1 (en) 2019-06-27
US10255202B2 (en) 2019-04-09
US20180095898A1 (en) 2018-04-05
CN109643284A (zh) 2019-04-16
WO2018063768A1 (en) 2018-04-05
US11138133B2 (en) 2021-10-05

Similar Documents

Publication Publication Date Title
CN109643284B (zh) 用于存储级存储器的多租户加密
US10176122B2 (en) Direct memory access authorization in a processing system
KR101802806B1 (ko) 커널 모드 애플리케이션에 의한 사용을 위한 보안 엔클레이브
US10565370B2 (en) System and method for enabling secure memory transactions using enclaves
US10938559B2 (en) Security key identifier remapping
CN106716435B (zh) 设备与安全处理环境之间的接口
US10664178B2 (en) Integrity protection for system management mode
US11048644B1 (en) Memory mapping in an access device for non-volatile memory
EP4195054A1 (en) Cryptographic computing with legacy peripheral devices
US9674141B2 (en) Techniques for implementing a secure mailbox in resource-constrained embedded systems
EP4254203A1 (en) Device memory protection for supporting trust domains
US10331453B2 (en) System management mode trust establishment for OS level drivers
US20160026567A1 (en) Direct memory access method, system and host module for virtual machine
US11836094B2 (en) Cryptographic data objects page conversion
US20220123930A1 (en) Process object re-keying during process creation in cryptographic computing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant