CN110659521A - 用于信任域的具有高可用性的低开销完整性保护 - Google Patents

用于信任域的具有高可用性的低开销完整性保护 Download PDF

Info

Publication number
CN110659521A
CN110659521A CN201910451950.9A CN201910451950A CN110659521A CN 110659521 A CN110659521 A CN 110659521A CN 201910451950 A CN201910451950 A CN 201910451950A CN 110659521 A CN110659521 A CN 110659521A
Authority
CN
China
Prior art keywords
memory
mac
target data
instruction
write operation
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.)
Pending
Application number
CN201910451950.9A
Other languages
English (en)
Inventor
S·查伯拉
R·阿加瓦尔
B·帕特尔
K·叶
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 CN110659521A publication Critical patent/CN110659521A/zh
Pending legal-status Critical Current

Links

Images

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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

描述了用于提供低开销密码存储器隔离以减轻多用户虚拟化计算环境中的攻击漏洞的技术。针对目标数据的存储器读和存储器写操作,每个操作经由与特定虚拟机(VM)相关联的指令发起,包括至少基于VM特定的密码密钥和目标数据的物理存储器地址的消息认证代码的生成和/或验证。这样的操作还可以包括经由包含在包括目标数据的数据行内的多个辅助比特来发送所生成的消息认证码。在验证失败的情况下,可以基于相关联的虚拟机的操作模式生成一个或多个错误码并将其提供给不同的信任域架构实体。

Description

用于信任域的具有高可用性的低开销完整性保护
技术领域
本公开涉及用于多用户计算环境的密码存储器隔离,并且更具体地, 涉及用于防止关于这种密码存储器隔离的完整性故障的技术。
背景技术
对强大的计算机安全性的不断增长的需求导致密码学在主流计算机系 统和网络中的广泛使用,以及日益复杂和安全的现代密码技术的发展。例 如,磁盘加密可用于保护驻留在永久磁盘存储设备上的数据,而网络加密 可用于保护通过网络发送的数据。然而,驻留在系统存储器中的数据通常 以明文存储和/或发送,因此可能易受攻击。例如,攻击者可以使用各种技 术来恶意访问存储在存储器中的数据,例如总线扫描和/或存储器扫描,以 及其他示例。此外,在某些情况下,这些恶意技术可用于访问包含以明文 形式存储的加密密钥的存储器位置,例如用于磁盘加密的加密密钥,从而 有助于进一步未经授权地访问受加密保护的其他数据。
因此,用于用户工作负载的加密存储器隔离在云计算和其他多用户场 景中是非常有利的,例如防止由一个或多个计算系统的一个用户发起的获 得对由(或以其他方式与其相关联)那些相同计算系统的其他用户拥有的 处理和数据的访问的处理。关于现有处理和数据保护中的各种缺陷的最近 公开披露强调了这种加密隔离的重要性。
在这种情况下确保用户数据和处理的完整性的传统方法通常具有各种 缺点。例如,将消息认证码(MAC)与每条数据行相关联的存储器完整性 方法通常需要通过每次数据行访问来加载和验证这种MAC,从而导致显著 的存储、性能和带宽开销。此外,在这种方法下对完整性故障检测的典型 响应导致安全性异常,这通常导致停止目标计算系统内的所有进程的操作。 虽然此解决方案通常在单访客端平台中认为是可接受的,但多用户平台中的这种中断可能直接和负面地影响平台可用性-并且可能导致重大数据、 收入和/或生产力损失。
因此,需要解决方案来为多用户计算场景提供和实施加密隔离,同时 最小化由这种加密隔离产生的额外开销,并且以相关联的计算系统或所涉 及的系统的最小中断来这样做。
附图说明
所要求保护的主题的各种实施例的特征和优点将随着以下详细描述的 进行而变得显而易见,并且参考附图,其中类似的附图标记表示类似的部 分,并且其中:
图1是根据本文描述的至少一些技术的实施例的示例性联网计算环境 的示意图。
图2示出了根据本文给出的至少一些技术的多密钥密码存储器保护系 统的示例性实施例;
图3是适合于根据本文描述的至少一些技术执行操作的示例性主机计 算设备的框图;
图4示出了根据本文给出的至少一些技术来管理加密数据的示例性处 理流程;
图5A-图5B描绘了示出根据本文给出的至少一些技术的示例性计算系 统的各方面的框图,每个示例性计算系统实现信任域架构;以及
图6描绘了根据本文给出的至少一些技术的用于经由一个或多个信任 域架构来处理存储器完整性错误的示例性执行流程。
尽管以下详细描述将参考说明性实施例进行,但是许多替换、修改和 变化对于本领域技术人员将是显而易见的。
具体实施方式
在本文的描述中,阐述了许多具体细节,例如可以包括特定类型的处 理器和系统配置的示例,特定硬件结构、特定架构和微架构细节、特定寄 存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流 水线级和操作等,以便提供对本发明的透彻理解。然而,对于本领域技术 人员显而易见的是,不需要采用这些具体细节来实施本发明。在其他实例 中,众所周知的组件或方法,例如特定和替代处理器架构、用于所描述的 算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、 特定制造技术和材料、特定编译器实现、以代码形式的算法的特定表达、 特定的断电和门控技术/逻辑以及计算机系统的其他特定操作细节没有详细 描述,以便避免不必要地模糊本发明,。
本文描述的技术通常涉及密码存储器保护的各种实施例。这些实施例 可用于提供存储器加密保护,从而通过减轻与未受保护或不安全的存储器 相关联的漏洞来提供额外的安全层。例如,在一些实施例中,可以通过在 存储器路径或存储器总线上实现密码引擎或控制器来提供存储器加密。以 这种方式,数据可以在驻留在存储器中以及去往和来自存储器的传输期间 (例如,当经由存储器总线或存储器路径从存储器发送到处理器,反之亦 然)时被加密和保护。然而,虽然存储器加密对于某些用户和/或用例可能 是必要的,但是在某些情况下,计算系统上的统一存储器保护可能是不充 分的。例如,CSP通常为多个用户或第三方托管数据和/或应用(或工作负 载)。此外,CSP可以使用存储器加密来为所有托管的用户工作负载提供统 一保护,例如,使用单个加密密钥。但是,简单地为所有托管的工作负载 提供统一的存储器加密保护而不区分不同用户的工作负载可能是不够的。 例如,CSP和/或其用户可能不愿意针对所有用户共享相同的加密密钥。相 反,CSP和/或其用户可能更喜欢基于每个租户(例如,每个用户或每个虚 拟机)提供存储器加密,以确保使用唯一加密密钥单独地保护和隔离每个 用户工作负载。
因此,所描述的实施例提供支持多个密钥的并且是可配置的或可编程 的存储器加密。例如,支持的键的数量可以取决于实现。在一些实施例中, 例如,可以对存储器保护引擎配置或编程(例如,通过软件),以使用不同 的加密密钥和/或算法来加密存储器的不同区域或页面。例如,在一些实施 例中,用户或租户(例如,CSP或用户)可以将特定区域或存储器页面的 保护模式指定为明文(例如,未加密)、标准或默认加密保护(例如,使用 默认或全局加密密钥加密)或定制加密保护(例如,使用唯一加密密钥加 密)。以这种方式,可以针对不同的租户、用户或保护域单独提供和配置存 储器加密。在一些实施例中,例如,“域”可以被视为与特定工作负载相关 联的资源的集合,其可以包括存储器的包含与工作负载相关联的数据的任 何区域。此外,可以针对每个域单独地配置存储器加密,从而允许使用单 独的加密密钥来保护每个域或工作负载。以这种方式,可以针对不同用户 的工作负载实现加密隔离。此外,工作负载还可以与(例如,CSP的)管 理软件隔离,例如虚拟机管理器。域也可以以明文模式配置,因为在某些 情况下可能不希望执行针对特定域的存储器加密(例如,为了避免存储器 加密、不同实体之间的共享存储器(和I/O)、回收存储器的性能影响,等 等)。
所描述的实施例可以提供许多特征和优点,包括密码存储器保护(例 如,经由存储器路径上的密码引擎)、多密钥加密支持以及软件可编程可配 置性和灵活性。这些功能使用针对不同域、存储器区域、工作负载、租户 和/或用户的单独密钥实现隔离的加密保护,从而为多个密码隔离的保护域 提供支持。以这种方式,所描述的实施例可用于满足针对某些用户和/或用 例的增强的安全性要求,例如具有多个第三方或用户的托管的工作负载的 CSP。所描述的实施例还可以用于利用使用用于持久数据存储的存储器(例 如,NVDIMM或其他存储级存储器(SCM))的性能益处而不牺牲安全性。
因此,本公开涉及用于在多用户计算系统内提供密码存储器隔离的技 术,所述多用户计算系统诸如用于“云计算”或其他分布式计算平台的计 算系统,并且诸如可以与多个加密密钥和/或同MKTME(多密钥全存储器 加密)操作有关的其他技术的结合使用。这些技术可以包括用提供具有最 小性能开销的消息认证码(MAC)构造,以及向任何完整性故障的信任的 软件应用提供安全通知,允许这种可信软件采取纠正措施(例如基于一个 或多个软件策略)。此类技术还可用于防止诸如拼接、欺骗(或重定位)和 跨域攻击之类的存储器入侵攻击。
在至少一些实施例中,本文描述的技术可以包括通过重新利用或以其 他方式利用辅助比特(诸如纠错码(ECC)比特或与存储器总线上的数据 一起发送的其他比特而不是要求从附加存储的单独取指)来发送MAC而不 会产生与单独取相关联的操作开销来实现低开销存储器完整性解决方案。 作为一个非限制性示例,各种服务器平台实现若干RAS特征和性能优化, 其需要通过存储器总线与数据行一起行进的比特。如本文其他地方更详细描述的,这些比特可以被重用以包括嵌入式MAC。此外,在各种实施例中, 可以使一个或多个用户能够明确地“选择”这样的技术,例如,如果认为 用于安全MAC传输的这种辅助比特的利用不如可以利用的针对这些辅助 比特的其他特征所希望的那样。然而,利用与数据一起行进的这种辅助比 特可能不会引起任何额外的存储器访问(以及相对应的带宽资源)。因此, 在这样的实施例中,所描述的技术可能不需要使用额外的ECC或其他存储 器,因此可以消除或减少与这种使用相关联的各种成本。
在至少一些实施例中,可以专门构造经由这样的辅助比特发送的MAC, 以便减轻或防止各种类型的攻击,例如可以由具有对多用户系统的物理访 问的一个或多个攻击者执行的攻击。作为非限制性示例,这种攻击可以包 括欺骗(其中攻击者能够修改存储器中或存储器总线上的高速缓存行);拼 接(攻击者能够在不同的物理位置之间交换高速缓存行);以及跨域攻击(其 中攻击者能够记录一个用户或VM的密文和/或相对应的MAC,并在以后 有效地将其用于另一个用户或VM)。
在某些实施例中,本文描述的技术还可以包括以页面错误码的形式提 供对存储器完整性失败的新颖响应,以向信任的软件应用指示这种存储器 完整性失败的发生。以这种方式,可以使信任的软件应用能够响应存储器 完整性信任的,并且还避免可能由此类失败导致的系统重置。在至少一些 实施例中,本文描述的技术被提供为密码安全的并且包括针对多个加密密 钥/MKTME(多密钥总存储器加密)、重放防止和密码加强数据损坏检测的支持,甚至由具有对计算系统的物理访问的攻击者进行的。
如这里所使用的,术语“设备”可以指代基于存储器的集成电路或其 他电路组件,并且可以包括用于在存储设备中存储预定数量的比特的任何 合适的硬件或逻辑芯片。除非上下文另有明确说明,否则如本文所使用的, 术语“用户”、“访客”和“租户”可以互换使用。同样如本文所用,“per-tena” 密钥和/或工作负载可以指每个用户、每个域或这些密钥和/或工作负载的其 他适当分段。如这里所使用的,系统的可信计算基础(TCB)是指一组硬件、固件和/或软件组件,其具有用于影响对系统的整体操作的信任的能力。 同样如这里所使用的,“域”可以被视为与特定工作负载或执行上下文相关 联的资源的集合,其可以包括存储器的包含与工作负载相关联的数据的任 何区域。
本文描述的技术提供密码安全存储器隔离方法,同时保持错误校正能 力,以提供可以减轻随机比特错误、基于存储器的集成电路失败和恶意攻 击者的高性能存储器。基于存储器的集成电路,在此也称为设备,可以包 括用于在存储设备中存储预定数量的比特的任何合适的硬件或逻辑芯片。 这里描述的技术是密码安全的并且确保存储器完整性,包括经由支持多种 加密密钥方法,例如MKTME(多密钥全存储器加密)、重放防止以及甚至 由物理对手进行的密码加强数据损坏检测。另外,这里描述的技术可能不 需要使用额外的ECC存储器,因此降低了存储器成本。因此,这些技术可 以结合或代替其他ECC检测机制用于各种实施例中。
在一些实施例中,计算设备可以响应于对系统存储器的写操作,基于 存储在系统存储器中的数据来存储第一MAC。这里提到的MAC可以包括 涉及密码散列函数和秘密密码密钥的任何合适的消息认证码。在一些实施 例中,计算设备还可以检测与存储在系统存储器中的数据相对应的读操作, 并基于存储在系统存储器中的数据来计算第二MAC。计算设备还可以确定 第二MAC与第一存储的MAC不匹配并且重新计算第二MAC(在各种实 施例中随后是校正操作)。此外,计算设备可以响应于检测到重新计算的第 二MAC与第一MAC匹配而解密存储在系统存储器中的数据,并将解密的 数据发送到高速缓存。
图1示出了根据本文描述的各种技术的实施例的示例性联网计算环境 100的示意图。在各种实施例中,联网计算环境100和/或其底层组件可以 包括某些密码存储器保护功能,如贯穿本公开所描述的。例如,云服务提 供商(CSP)120可以为多个用户或第三方托管工作负载130(例如,数据 和/或应用)。因此,在一些实施例中,CSP 120可以实现多密钥密码存储器 保护以基于每个租户提供存储器加密,从而确保使用唯一加密密钥单独地 保护和隔离每个用户工作负载130。密码存储器保护也可以由联网计算环境 100的其他组件(例如,边缘设备110)实现。贯穿整个本公开进一步描述 了密码存储器保护的示例性实施例。
边缘设备110可以包括在通信网络150的“边缘”附近部署或连接的 任何装置和/或设备。在所示实施例中,边缘设备110包括终端用户设备112 (例如,台式机、膝上型计算机、移动设备)、物联网(IoT)设备114,以 及网关和/或路由器116,以及其他示例。边缘设备110可以通过一个或多 个网络和/或通信协议(例如通信网络150)彼此通信和/或与其他远程网络 和服务(例如,云服务120)通信。此外,边缘中的一个或多个设备110可 以包括贯穿本公开描述的密码存储器保护功能的一个或多个实施例。
终端用户设备112可以包括启用或促进与计算联网计算环境100的用 户交互的任何设备,包括例如台式计算机、膝上型计算机、平板电脑、移 动电话和其他移动设备,以及可穿戴设备(例如,智能手表、智能眼镜、 耳机以及其他示例。
IoT设备114可以包括能够在物联网(IoT)系统或网络中通信和/或参 与的任何设备。IoT系统可以指由针对特定应用或用例互操作和协同的多个 不同设备(例如,IoT设备114)组成的新的或改进的自适应系统和网络。 随着越来越多的产品和装置发展成“智能”,这种自适应系统正在出现,这 意味着它们由计算机处理器控制或监视,并且能够与其他设备通信。例如, IoT设备114可以包括计算机处理器和/或通信接口,以允许与联网计算环境100的其他组件互操作,例如与云服务120和/或其他边缘设备110互操 作。IoT设备114可以是从开端具有IoT能力开发的“绿地”设备,或通过 将IoT能力集成到最初在没有IoT能力的情况下开发的现有传统设备而创建 的“棕地”设备。例如,在一些情况下,IoT设备114可以由集成在“物体” 中或附接到“物体”的传感器和通信模块构建,所述“物体”例如设备、玩具、工具、车辆、生物(例如,植物、动物、人类),以及等等。替代地 或另外地,某些IoT设备114可以依赖于中间组件,例如边缘网关或路由 器116,以与联网计算环境100的各种组件通信。
IoT设备114可以包括各种类型的传感器,用于监视、检测、测量和生 成与其环境的特征相关联的传感器数据和信号。例如,给定的传感器可以 被配置为检测一个或多个相应的特征,例如移动、重量、物理接触、生物 特征、温度、风、噪声、光、位置、湿度、辐射、液体、特定化合物、电 池寿命、无线信号、计算机通信和带宽以及其他示例。传感器可以包括物 理传感器(例如,物理监视组件)和虚拟传感器(例如,基于软件的监视 组件)。IoT设备114还可以包括致动器,用于在它们各自的环境中执行各 种动作。例如,致动器可用于选择性地激活某些功能,例如切换安全系统 (例如,警报器、摄像机、锁)或家用电器(例如,音频系统、照明、HVAC 设备、车库门)的电源或操作,以及其他示例。
实际上,本公开考虑使用潜在无限的IoT设备114和相关联的传感器/ 致动器。IoT设备114可以包括,例如,与任何类型的联网计算环境100和 /或工业相关联的任何类型的设备和/或设备,包括运输(例如,汽车、航空 公司)、工业制造、能源(例如,发电厂)、电信(例如,互联网、蜂窝和 电视服务提供商)、医疗(例如,医疗保健、药品)、食品加工和/或零售业 以及其他。例如,在运输行业中,IoT设备114可以包括与飞机、汽车或船 舶相关联的装置和设备,诸如导航系统、自主飞行或驱动系统、交通传感 器和控制器,和/或由传感器(例如,引擎)监控的任何内部机械或电气组 件。IoT设备114还可以包括与如下相关联的装置、设备和/或基础结构: 工业制造和生产、运输(例如,货物跟踪)、通信网络(例如,网关、路由 器、服务器、蜂窝塔)、服务器群、电力设施、风电场、石油和天然气管道、 水处理和分配、废水收集和处理,以及天气监测(例如,温度、风和湿度 传感器)以及其他示例。IoT设备114还可以包括,例如,任何类型的“智 能”设备或系统,例如智能娱乐系统(例如,电视、音频系统、视频游戏 系统)、智能家用或办公设备(例如,热通风空气-空调(HVAC)电器、冰箱、洗衣机和烘干机、咖啡机)、电源控制系统(如自动电、灯和HVAC控 制)、安全系统(如报警器、锁、相机、运动探测器、指纹扫描仪、面部识 别系统)和其他家庭自动化系统,以及其他示例。IoT设备114可以静态地 定位,例如安装在建筑物上、地板、地面、灯柱、标志、水塔或任何其他 固定或静态结构。IoT设备114也可以是移动的,例如车辆或飞机中的设备、 无人机、包裹(例如,用于跟踪货物)、移动设备和可穿戴设备以及其他示 例。此外,IoT设备114还可以是任何类型的边缘设备110,包括终端用户 设备112和边缘网关和路由器116。
边缘网关和/或路由器116可以用于促进去往以及来自边缘设备110的 通信。例如,网关116可以向最初开发时没有任何这种能力的现有传统设 备(例如,“棕地”IoT设备)提供通信能力。网关116还可用于利用短程、 专有或其他有限的通信能力来扩展边缘设备110的地理范围,例如具有蓝 牙或ZigBee通信能力的IoT设备114。例如,网关116可以用作IoT设备 114和远程网络或服务之间的中介,通过使用它们的本地通信能力(例如, 蓝牙、ZigBee)向IoT设备114提供前传,并且使用另一有线或无线通信介 质(例如,以太网、Wi-Fi、蜂窝)向其他网络150和/或云服务120提供回 程。在一些实施例中,网关116可以由专用网关设备或者由通用设备实现, 所述通用设备例如另一IoT设备114、终端用户设备112或其他类型的边缘 设备110。
在一些实例中,网关116还可以单独地或结合其他组件(诸如云服务 120和/或其他边缘设备110)来实现某些网络管理和/或应用功能(例如,IoT 设备114的IoT管理和/或IoT应用功能)。例如,在一些实施例中,可以将 配置参数和/或应用逻辑推送到网络设备116或从网关设备116拉出,允许 IoT设备114(或其他边缘设备110)在被配置用于特定的IoT应用或用例 的网关116的范围或接近范围内。
云服务120可以包括通过网络150或“云”远程托管的服务。在一些 实施例中,例如,云服务120可以远程托管在数据中心的服务器(例如, 应用服务器或数据库服务器)上。云服务120可以包括可以由边缘设备110 使用或用于边缘设备110的任何服务,包括但不限于数据和应用托管、计 算服务(例如,数据分析、搜索、诊断和故障管理)、安全服务(例如,监 控、警报、用户认证)、地图和导航、地理定位服务、网络或基础结构管理、 IoT应用和管理服务、支付处理、音频和视频流、消息传递、社交网络、新 闻和天气以及其他示例。此外,在一些实施例中,某些云服务120可以包 括贯穿本公开描述的密码存储器保护功能。例如,CSP 120通常托管针对多 个用户或第三方的工作负载130(例如,数据和/或应用)。因此,在一些实 施例中,CSP 120可以实现多密钥加密存储器保护以基于每个租户提供存储 器加密,从而确保使用唯一加密密钥单独地保护和隔离每个用户工作负载 130。
网络150可以用于促进计算联网计算环境100的组件之间的通信。例 如,诸如终端用户设备112和IoT设备114的边缘设备110可以使用网络 150来彼此通信和/或访问一个或多个远程云服务120。网络150可以包括任 何数量或类型的通信网络,包括例如局域网、广域网、公共网络、因特网、 蜂窝网络、Wi-Fi网络、短程网络(例如,蓝牙或ZigBee),和/或任何其他 有线或无线网络或通信介质。
联网计算环境100的任何、全部或一些计算设备可以适于执行任何操 作系统,包括Linux或其他基于UNIX的操作系统、Microsoft Windows、 Windows Server、MacOS、AppleiOS、Google Android或任何定制的和/或 专有的操作系统,以及适于虚拟化特定操作系统的执行的虚拟机。
虽然图1被描述为包含多个元件或与多个元件相关联,但是并非图1 的联网计算环境100内所示的所有元件都可以用于本公开的每个替代实施 方式中。另外,结合图1的示例描述的一个或多个元件可以位于联网计算 环境100的外部,而在其他实例中,某些元件可以包括在其他所描述的元 件以及在示出的实施方式中未描述的其他元件中的一个或多个中或者作为 其一部分。此外,图1中示出的某些元件可以与其他组件组合,以及除了 本文描述的那些目的之外还用于替代或附加目的。
图2示出了多密钥加密存储器保护系统200的示例性实施例。在所示 实施例中,存储器保护系统200包括处理器202、系统代理204和存储器 210。如下面进一步描述的,存储器保护系统200提供存储在存储器210上 的数据密码保护。
处理器202可用于执行指令、代码和/或任何其他形式的逻辑或软件, 例如与软件应用相关联的指令。处理器202可包括可操作以执行指令的逻 辑或处理元件的任何组合,无论是从存储器加载还是直接在硬件中实现, 所述硬件例如微处理器、数字信号处理器、现场可编程门阵列(FPGA)、 图形处理单元(GPU)、可编程逻辑阵列(PLA)或专用集成电路(ASIC) 以及其他示例。在一些实施例中,例如,处理器202和/或存储器保护系统 200可以使用本文所述的各种计算机架构来实现。
存储器210可用于存储信息,例如处理器202在执行期间使用的代码 和/或数据,和/或与系统200的应用或用户相关联的持久数据。存储器210 可包括能够存储信息的任何类型的组件或组件的组合,包括易失性存储器 (例如,随机存取存储器(RAM),例如动态RAM(DRAM)、同步动态 RAM(SDRAM)和静态RAM(SRAM))和/或非易失性存储器(例如, 存储类存储器(SCM)、直接存取存储(DAS)存储器、非易失性双列直插 存储器模块(NVDIMM)和/或其他形式的闪存或固态存储装置。
系统代理204可用于为处理器202提供各种功能,例如管理对存储器 210和/或系统200的其他资源的访问。在所示实施例中,例如,系统代理 204包括存储器控制器208,其用于控制和/管理对系统200的存储器210 的访问。此外,如下面进一步描述的,系统代理204还包括存储器保护控 制器206,其用于保护存储在存储器210上的数据。在一些实施例中,系统 代理204还可以提供处理器202和系统200的其他组件(例如,使用直接 媒体接口(DMI)和/或快速PCI桥接器)之间的接口。在各种实施例中, 系统代理204可以包括被配置为执行本文描述的系统代理204的功能的逻 辑元件的任何组合,无论是从存储器或其他非暂时性计算机可读介质加载, 还是直接在硬件中实现,包括通过非限制示例:微处理器、数字信号处理 器(DSP)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、可编程逻 辑阵列(PLA)、专用集成电路(ASIC)和/或虚拟机(VM)处理器。系统 代理204可以与处理器202集成,或者可选地,系统代理204可以在通信 地耦合或连接到处理器202的单独芯片上实现。
存储器控制器208可以用于控制和/或管理对系统200的存储器210的 访问。在各种实施例中,存储器控制器208可以使用硬件和/或软件逻辑的 任何组合来实现,包括微处理器、专用集成电路(ASIC)、现场可编程门阵 列(FPGA)、可编程逻辑阵列(PLA)、虚拟机(VM)和/或任何其他类型 的电路或逻辑。
在所示实施例中,系统200为存储器210提供密码存储器保护。在一 些实施例中,例如,可以通过扩展和/或修改特定计算机架构来实现密码存 储器保护。例如,可以通过扩展处理器202的功能和/或引入存储器保护控 制器206来实现密码存储器保护。在所示实施例中,例如,处理器202被 扩展为支持控制寄存器203和处理器指令,所述处理器指令可以用于启用 和/或配置密码存储器保护,并且实现存储器保护控制器206以提供密码存 储器保护。尽管所示出的示例使用单独的逻辑块来描绘存储器保护控制器 206和处理器202,但是在实际实施例中,存储器保护控制器206和处理器 202可以集成在一起,或者可以替代地可以实现为单独的组件。在各种实施 例中,例如,存储器保护控制器206可以使用硬件和/或软件逻辑的任何组 合来实现,包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、 可编程逻辑阵列(PLA)、虚拟机(VM)和/或任何其他类型的电路或逻辑。
存储器保护控制器206使用存储器加密来保护存储在存储器210上的 数据。在一些实施例中,例如,存储器保护控制器206可以在存储器路径 或存储器总线上实现,以允许加密发送到存储器210和从存储器210发送, 和/或存储在存储器210上的数据。此外,在一些实施例中,存储器保护控 制器206可以是可配置的或可编程的,并且可以包括对多个加密密钥的支 持。因此,存储器保护控制器206可以被配置或编程(例如,通过软件) 以使用不同的加密密钥和/或算法来加密存储器210的不同区域或页面。以 这种方式,可以为不同的用户、租户、访客、应用和/或工作负载单独提供 和配置存储器加密。
例如,在一些实施例中,存储器保护控制器206可用于定义可使用存 储器加密单独配置和保护的各种安全或受保护域。在一些实施例中,例如, “域”可以被视为与特定工作负载(例如,特定用户或应用的工作负载) 相关联的资源的集合,并且可以包括存储器的包含与工作负载相关联的数 据的任何区域。例如,用于云服务提供商的访客工作负载的受保护域可以 包括与操作系统(OS)、虚拟机(VM)(例如,在虚拟机管理器(VMM) 上运行的VM)和/或在OS或VM上运行的任何ring-3应用相关联的资源 (例如,存储器)。存储器保护控制器206可以允许受保护域被单独配置和 保护,从而允许通过用唯一加密密钥加密其相关联的代码和/或数据来在存 储器中密码地隔离每个受保护域。以这种方式,可以通过针对各种工作负 载定义不同的保护域来密码地隔离不同用户、访客和/或租户的工作负载。
在一些实施例中,可以使用处理器指令和/或硬件寄存器来发现和配置 系统200的密码存储器保护。例如,在一些实施例中,处理器指令可用于 确定系统200是否支持密码存储器保护,例如由软件使用来识别特定处理 器的能力的CPU识别(CPUID)指令。
在确定系统200支持加密存储器保护之后,然后可以使用诸如处理器 202的控制寄存器203之类的硬件寄存器来启用和/或配置密码存储器保护。 例如,控制寄存器203可以包括各种模型专用寄存器(MSR),其允许软件 发现、启用和/或配置系统200的密码存储器保护能力。在一些实施例中, 例如,控制寄存器203可以包括存储器加密能力寄存器、存储器加密激活 寄存器和/或一个或多个存储器加密排除寄存器,如下面进一步描述的。
在某些实施例中,存储器加密能力寄存器(ME_CAPABILITY_MSR) 可以用于允许软件发现系统200的存储器加密能力。例如,软件可以读取 ME_CAPABILITY_MSR(例如,使用读MSR(RDMSR)指令)来识别支 持的加密类型和/或算法,可以同时使用的最大加密密钥数,等等。表1示 出了存储器加密能力寄存器(ME_CAPABILITY_MSR)的示例性实施例。
表1:
存储器加密能力寄存器(ME_CAPABILITY_MSR)
Figure BDA0002075417910000141
Figure BDA0002075417910000161
存储器加密激活寄存器(ME_ACTIVATE_MSR)可用于激活系统200 的密码存储器保护(例如,通过在寄存器字段中设置适当的值)。表2示出 了存储器加密激活寄存器(ME_ACTIVATE_MSR)的示例性实施例。
表2:
存储器加密激活寄存器(ME_ACTIVATE_MSR)
Figure BDA0002075417910000162
Figure BDA0002075417910000171
Figure BDA0002075417910000181
Figure BDA0002075417910000191
Figure BDA0002075417910000201
存储器加密排除寄存器(ME_EXCLUDE_BASE_MSR和 ME_EXCLUDE_MASK_MSR)可用于从系统200提供的密码存储器保护中 排除某些存储器区域。例如,在一些实施例中,排除寄存器可用于识别基 址存储器地址,并且然后存储器加密可以绕过针对与基址地址匹配的存储 器地址(例如,允许以明文模式访问被排除或被绕过的存储器地址)。
表3示出了存储器加密排除掩码寄存器(ME_EXCLUDE_MASK_MSR) 的示例实施例,并且表4示出了存储器加密排除基址寄存器 (ME_EXCLUDE_BASE_MSR)的示例实施例。
表3:
存储器加密排除掩码寄存器(ME_EXCLUDE_MASK_MSR)
Figure BDA0002075417910000202
Figure BDA0002075417910000211
表4:
存储器加密排除基址寄存器(ME_EXCLUDE_BASE_MSR)
Figure BDA0002075417910000221
在所示实施例中,存储器保护控制器206维护内部域密钥表207以识 别已在系统200中配置的受保护域。密钥表207可以使用任何形式的存储 器或存储装置(例如,RAM)来实现,并且可以也可以直接在存储器保护 控制器206上、在存储器210中和/或使用另一个存储器组件来实现。
域密钥表207的条目207a-d每个对应于不同的受保护域。例如,每个 条目207a-d包括密钥或域标识符(ID)、保护模式和相关联的加密密钥(如 果适用)。在一些实施例中,例如,密钥ID可以表示在相关联的受保护域 内的存储器地址的较高阶比特。例如,如上所述,ME_ACTIVATE_MSR寄 存器的ME_KEYID_BITS字段指定用于密钥ID的比特数。在所示的示例中, 域密钥表207中的每个密钥ID使用5比特来表示。因此,与给定密钥ID 相关联的受保护域覆盖其最高阶5比特与密钥ID匹配的所有存储器地址。 在所示实施例中,密钥ID被存储为密钥表207中的字段,但是在替换实施 例中,密钥ID可以用作密钥表207的索引,而不是直接存储在密钥表207 中。
此外,在一些实施例中,可以支持多种保护模式,并且可以使用特定 保护模式来保护每个受保护域。例如,在一些实施例中,支持的保护模式 可以包括明文模式(例如,未加密的)、标准或默认加密模式(例如,使用 标准或默认加密密钥加密)和/或定制加密模式(例如,使用独特的加密密 钥加密)。因此,密钥表207可以标识与每个受保护域或密钥ID相关联的 保护模式。
例如,在所示示例中,域密钥表207包括四个条目。第一条目标识与 密钥ID 00000对应的受保护域(因此覆盖包含最高5比特00000的所有存 储器地址),使用密钥“ABC”在默认加密模式下进行保护。第二条目标识 与密钥ID 00001对应的受保护域(因此覆盖包含最高5比特00001的所有 存储器地址),其以明文模式受保护,因此没有相关联的加密密钥。第三条 目标识与密钥ID 00010相对应的受保护域(因此覆盖包含最高5比特0010 的所有存储器地址),使用密钥“XYZ”在定制加密模式下进行保护。第四 条目标识与受保护域密钥ID00011对应的受保护域(因此覆盖包含最高5 比特00011的所有存储器地址),使用密钥“ABC”在默认加密模式下受到 保护。如这些示例所示,使用定制加密模式保护的域具有独特的密钥 (“XYZ”),使用默认加密模式保护的域共享加密密钥(“ABC”),并且以 明文模式保护的域是未加密的,因此没有相关联的密钥。
图3是执行适合于根据本文描述的至少一些技术的操作的示例性主机 计算设备300的框图。主机计算设备300可以是例如移动电话、膝上型计 算机、台式计算机或平板计算机以及其他。主机计算设备300可以包括处 理电路,例如处理器302,其适于执行存储的指令。主机计算设备300还可 以包括存储器电路,例如存储器设备304,用于存储可由处理器302执行的 指令。可以经由由处理器302执行的这种指令来执行这里描述的一种或多 种技术,其中这样的指令包括:在各种实施例中,程序代码和/或微代码, 其被配置为使处理器302执行与读取数据、写入数据、处理数据、制定数 据、转换数据、变换数据等有关的活动。处理器302可以是单核处理器、 多核处理器、计算集群或任何数量的其他配置。示例性处理器可以包括但 不限于可从Intel公司获得的各种基于x86的微处理器,包括Pentium、Xeon、 Itanium、Celeron、Atom、Quark、Core i系列、Core M系列产品、高级RISC (例如,精简指令集计算)机器或“ARM”处理器或此类集成电路(IC) 的计算范例或物理实现的任何其他演进中的那些。存储器设备304可包括 随机存取存储器(RAM)和/或固定或可移动格式的只读存储器(ROM)。 包括RAM的存储器可以包括易失性存储器,其被配置为在主机计算设备300的操作期间保持信息,例如静态RAM(SRAM)或动态RAM(DRAM)。 包括ROM的存储器可以包括基于BIOS、UEFI等配置的非易失性(NV) 存储器电路,用于在主机计算设备300被激活时提供指令、可编程存储器, 诸如电子可编程ROM(EPROMS)、闪存等。
处理器302还可以通过系统互连或“总线”306(例如,
Figure BDA0002075417910000231
快速
Figure BDA0002075417910000241
NuBus等)链接到适于将主机计算设备300连接到显示设备310的 显示接口308。在某些实施例中,显示设备310可以包括容纳在主机计算设 备300内的显示屏。在其他实施例中,显示设备310可以包括计算机监视 器、电视或投影仪等,例如可以外部连接到主机计算设备300。显示设备 310可以包括一个或多个发光二极管(LED)、微LED和/或其他合适的显 示元件。
在所描绘的实施例中,网络接口控制器(这里也称为NIC)312经由系 统互连306通信地耦合到主机计算设备300到一个或多个计算网络(未示 出),例如图1的网络150。
同样在所描绘的实施例中,处理器302经由系统互连306通信地耦合 到输入/输出(I/O)设备接口314,所述输入/输出(I/O)设备接口314适 于将计算主机设备300连接到一个或多个I/O设备316。这样的I/O设备316 可以包括例如硬件和/或软件以允许用户与主机计算设备300交互,例如各 种输入机制(例如,麦克风、开关、按钮、旋钮、键盘、扬声器、触敏表 面、一个或多个传感器,其被配置为捕获图像和/或感测接近度、距离、运 动、姿势、方位、生物识别数据等)和各种输出机制(例如,扬声器、显 示器、发光/闪烁指示器、用于振动的机电组件、动作等)。在各种实施例中, I/O设备316可以包括主机计算设备300的内置组件,和/或外部连接到主机 计算设备300的设备。
在一些实施例中,处理器302还可以通过系统互连306链接到任何存 储设备318,其可以包括硬盘驱动器、光驱动器、USB闪存驱动器、固态 驱动器(SSD)或其他非易失性存储介质、驱动器阵列或其任何组合。在一 些实施例中,存储设备318可以包括任何合适的应用和存储的数据。
在某些实施例中,处理器302可以包括可由存储器控制器319执行的 任何合适数量的逻辑模块。在一些示例中,存储器控制器319(或存储器管 理单元)是处理器302上的逻辑,其与外部系统存储器设备304交互。存 储器控制器319可以与外部存储器304交互以进行读/写操作,发送或接收 数据,生成/管理MAC、纠错码、加密/解密等。在某些实施例和场景中, MAC管理器320可以响应于对系统存储器的写操作,基于存储在系统存储 器中的数据来存储第一MAC,并且还可以检测与存储在系统存储器中的数 据相对应的读操作并且基于存储在系统存储器中的数据生成第二MAC。 MAC管理器320还可以确定第二MAC与第一MAC不匹配并重新计算第 二MAC。此外,解密管理器322可以响应于检测到重新计算的第二MAC与第一MAC匹配,对存储在系统存储器中的数据进行解密。在一些实施例 中,数据发送器324可以将解密的数据发送到驻留在处理器302或任何其 他合适的高速缓存或存储器设备上的高速缓存326。在一些示例中,高速缓 存326(或高速缓存层次结构)可以插入或以其他方式位于处理器302和存 储器控制器319之间。在一些实施例中,处理器302、高速缓存326和存储 器控制器319可以合并在单个SOC内(片上系统),或以其他方式位于同 一物理芯片/管芯或封装上。
根据本公开,主机计算设备300可以包括被配置为传输和处理数据的 附加硬件,包括但不限于存储器映射数据、配置寄存器数据和其他数据。 这种硬件的非排他性示例可以包括分立的模拟和/或数字组件(例如,布置 在印刷电路板(PCB)上以形成电路)、至少一个集成电路(IC)、至少一分 组或一组IC,其可以被配置为协同操作(例如,芯片组)在一个衬底(SoC) 上制造的一分组IC功能,或其组合。在至少一个示例性实施例中,主机计 算设备300的部分可以由软件(例如,指令、数据等)组成,所述软件当 加载到存储器设备304中时,可以使处理器302从通用处理电路转换成专 用电路,所述专用电路被配置为基于这种软件执行某些功能。
应当理解,图3的框图并不旨在指示主机计算设备300将包括图3中 所示的所有组件。相反,主机计算设备300可以包括在图3中未示出的更 少或附加组件(例如,附加存储器组件、嵌入式控制器、附加模块、附加 网络接口等)。此外,MAC管理器320、解密管理器322和数据发送器324 的任何功能可以部分地或全部地在硬件和/或处理器302中实现。例如,功能可以用专用集成电路、在嵌入式控制器中实现的逻辑,或在处理器302 中实现的逻辑以及其他中实现。在一些实施例中,MAC管理器320、解密 管理器322和数据发送器324的功能可以用逻辑来实现,其中如本文所提 到的逻辑可以包括任何合适的硬件(例如,处理器以及其他)、软件(例如, 应用以及其他)、固件或硬件、软件和固件的任何合适组合。
图4示出了用于管理加密数据的示例性处理流程。图4中示出的方法400可以用任何合适的计算组件或设备(例如,图3的计算设备300)来实 现。虽然图3的示例性MAC管理器320将在以下示例中使用,但是应当意 识到,在各种实施例中,其他组件可以执行以下关于方法400描述的一些 或全部功能。作为一个非限制性示例,关于图4描述的各种操作在某些实 施例中可以由存储器控制器(诸如图2的存储器控制器208)执行。
在框402处,MAC管理器320可以响应于对系统存储器的写操作,基 于存储在系统存储器中的数据来生成和/或存储第一MAC。例如,MAC管 理器320可以检测对系统存储器的写操作,并且使用具有第二密钥的任何 合适的密码MAC功能以及其他,以基于存储在存储器中的数据来生成 MAC值。在一些实施例中,存储在存储器中的数据可以包括用任何合适的 加密技术来加密的任何合适的密文文本。跨设备数据块的逻辑运算的结果 可以存储为设备数据块校正值。
在框404处,MAC管理器320可以检测与存储在系统存储器中的数据 相对应的读操作。例如,MAC管理器320可以基于存储在系统存储器中的 加密数据来检测执行指令的尝试。
在框406处,MAC管理器320可以基于从系统存储器取回的加密数据 来计算第二MAC。MAC管理器320可以应用在写操作上使用的相同MAC 功能,以及使用相同的密钥,以便产生匹配的MAC。
在框408处,MAC管理器320可以确定第二MAC与第一MAC不匹 配。例如,MAC管理器320可以检测存储在存储器中的数据比特是否已经 翻转,因为数据存储在存储器中作为写操作的一部分。在一些示例中,存 储器中的翻转比特可以表示由用于操纵存储在存储器中的数据的恶意企图 而破坏的数据。
在框410处,MAC管理器320可以重新计算第二MAC,例如基于设 备数据块1-4的密钥安全散列操作。然后应该使用替换值而不是错误的设备 数据块。
在块412处,解密管理器122可以响应于检测到重新计算的第二MAC 与第一MAC匹配,对存储在系统存储器中的数据进行解密。在框414处, 数据发送器124可以将解密的数据发送到高速缓存。
图4的过程流程图不旨在指示方法400的操作将在所有实施例中以任 何特定顺序执行,或者方法400的所有操作将包括在每种情况中。另外, 方法400可以包括任何合适数量的附加操作。例如,本文的技术可以应用 于校正任何合适尺寸的块或集成电路。
如本文其他地方更详细讨论的,在至少一些实施例中,当数据行被写 入存储器时,作为写操作的一部分,示例性MAC可以由存储器控制器、 MAC管理器或其他合适的组件生成,作为写操作的一部分。当从存储器读 取数据行时读操作,和/或用于某些其他架构上合适的操作。可以发起或以 其他方式执行这样的操作,例如,作为执行一个或多个指令的处理器的一 部分。在某些实施例中,可以根据以下规范生成这样的示例性MAC:
MAC=MAC_ALG(CTDATA,PA_CTDATA,KEYVM)
这样MAC_ALG是用于生成MAC的算法,并且使得针对这种生成指示的 参数包括:
CTDATA:将被加密并存储在存储器数据行中的密文数据;
PA_CTDATA:密文数据行的主机物理地址;以及
KEYVM:与数据行所属的虚拟机关联(并且特定于)的MAC密钥。
适当的密码MAC_ALG算法的非排他性示例包括NIST批准的算法(诸 如SHA-3、SHA-1、SHA-2和MD5算法),但是应当意识到,可以使用其 他加密算法。
在某些实施例中,根据本文描述的技术的MAC构造可以增强针对各种 类型的攻击的保护。作为非限制性示例,这种攻击可以包括欺骗(其中攻 击者能够修改存储器中或存储器总线上的高速缓存行);拼接(攻击者能够 在不同的物理位置之间交换缓存行);以及跨域攻击(其中攻击者能够记录 一个用户或VM的密文和/或相对应的MAC,并在以后有效地将其用于另 一个用户或VM)。特别地,所提供的MAC构造可以通过将数据包括为MAC 的组件来授予防止欺骗(其中攻击者直接尝试修改存储器中的数据比特) 的保护。此外,包括在MAC结构中的物理地址确保防止攻击者在没有检测 的情况下交换存储器中的不同块(以及相关联的MAC),从而防止拼接或 重定位攻击。此外,通过合并与数据行所属的虚拟机相关联的密钥,所提 供的MAC结构提供了针对跨域攻击的保护。
如本文其他地方所述,在至少某些实施例中,与加密密钥不同的单独 MAC密钥可以与虚拟化场景中的每个VM相关联。例如,考虑在时间t1 处的第一物理存储器地址(PA1)处的高速缓存行,其被映射到第一虚拟机 VM1,其中PA1使用密钥K1加密。在稍后的时间t2,可以使用不同的其 他密钥K2将PA1映射到第二虚拟机VM2。在这种情况下,攻击者可能会尝试通过将属于VM1的PA1内容注入VM2来引起跨域注入,如下所示:
·当PA1映射到VM1时,在时间t1记录PA1数据和相对应的MAC;
·在时间t2,当PA1映射到VM2时,攻击者修改PA1以包括在前一步骤中 记录的内容,并且在时间t1替换与PA1相关联的MAC。
·VM2读取PA1处的数据行。
应当意识到,尽管PA1处的数据将使用与VM2相关联的密钥K2解密 并因此解密为垃圾值,但是如果仅基于密文计算MAC,则完整性检查将通 过。然而,通过结合与VM相关联的MAC密钥,上述示例性MAC构造抵 抗所描述的跨域攻击,因为从时间t1使用的MAC将利用与VM1相关联的 密钥K1生成–并且因此在PA1映射到VM2时使验证失败,因为与VM2 相关联的密钥(即K2)将替代地用于验证MAC。
如本文其他地方所述,在某些实施例中,可以通过利用辅助比特(例 如ECC比特或与存储器总线上的数据一起发送的其他比特而不需要从附加 存储装置的提取)嵌入MAC而不会产生与从存储器中单独提取相关联的操 作开销。作为一个非限制性示例,某些服务器平台实现各种“可靠性、可 用性和可服务性”(RAS)特征和性能优化,其需要通过存储器总线与数据 行一起行进的比特。可以改变这些比特以包括嵌入的MAC。此外,还如本 文其他地方所述,在各种实施例中,可以使一个或多个用户能够明确地“选 择”这些技术(例如通过在关于表2描述的存储器加密激活寄存器 (ME_ACTIVATE_MSR)内设置配置比特),例如,如果认为用于安全MAC 传输的这种辅助比特的利用不如可以利用这种辅助比特的其他特征那么理 想。
现在关于在某些实施例中可以在检测到的存储器完整性失败的情况下 执行的操作提供附加细节,例如,如果根据本文其他地方描述的技术执行 的完整性检查失败。特别地,以下关于信任域(TD)架构描述操作细节, 例如用于在虚拟化系统中提供处理和存储隔离。
在各种实现中,针对TD架构的TD架构和指令集架构(ISA)扩展(在 此称为TD扩展(TDX))用于为在多用户基础结构中执行的用户/租户软件 提供机密性和完整性。可以是片上系统(SoC)功能的TD架构,在TD工 作负载和CSP软件之间提供隔离,例如多用户基础结构的虚拟机管理器 (VMM)。在某些实施例中,TD架构的组件可以包括1)经由MKTME引 擎的存储器加密;2)资源管理能力,在此称为信任域资源管理器(TDRM), 在某些实现中可以作为(VMM)的软件扩展来操作;以及3)经由CPU管 理的存储器所有权表(MOT)和经由CPU访问控制的TD控制结构提供的 处理器中的执行状态和存储器隔离能力。TD架构提供了处理器用于部署用 户特定TD的能力,该TD利用MKTME引擎、MOT和针对TD工作负载 的安全操作的访问控制的TD控制结构。
在一个实现中,用户软件在用户特定的TD中执行,并且包括用户工作 负载(其可以作为非限制性示例单独包括操作系统(OS)以及在OS的顶 部运行的其他ring-3应用,和/或在VMM的顶部运行的虚拟机(VM)以及 其他ring-3应用)。每个TD独立于系统中的其他TD运行,并使用平台上 TDRM分配的逻辑处理器、存储器和I/O。使用MKTME引擎的至少一个 专用加密密钥以用于加密与特定TD相关联的存储器(其可以保存代码和/ 或数据)来在存储器中密码式地隔离每个TD。
在至少一些实施例中,TDRM作为多个TD的主机操作,并且具有对 处理核心和其他平台硬件的完全控制。TDRM在TD中为软件分配逻辑处 理器,但可能无法在那些分配的逻辑处理器上访问TD的执行状态。类似地, TDRM将物理存储器和I/O资源分配给TD,但由于使用由每个TD的CPU 强制执行的单独加密密钥以及存储器上的其他完整性和重放控制,因此无法访问TD的存储器状态。在TD中执行的软件以降低的特权操作,使得 TDRM可以保持对平台资源的控制。但是,在特定情况下,TDRM通常无 法影响存储器或CPU结构中TD状态的机密性或完整性。此外,TD架构支 持由多个VMM(例如,使用虚拟机扩展或“VMX”)、OS和/或由一个或多 个OS托管的应用软件组成的软件栈。每个TD独立于虚拟化系统内的其他 TD运行。
图5A是描绘了实现在没有TD扩展(TDX)功能的情况下操作的VM 架构501的示例性计算系统的各方面的框图。VM架构501包括以“VMX 根模式”运行的CSP VMM 505a。VM架构501包括以“VMX非根模式” 运行的第一虚拟机(VM1)510,并且还包括类似地以VMX非根模式运行 的嵌套虚拟机515;嵌套虚拟机包括非根VMM 515a和关联的非根虚拟机 (VM2)515b。
图5B是描绘了实现TD架构502的对比示例性计算系统的各方面的框 图。具体地,并且与图5A的VM架构501形成鲜明对比,TD架构502以 可用的TDX功能操作,使得CSP VMM505b(以及CSP VM 518)以“TD 根模式”操作,使得CSP VMM 505b继续管理托管的非根模式VM,但是 在这种托管的非根模式VM的TCB(以及任何相关联的用户工作负载)外 部。应当意识到,虽然图5A中描绘的示例性实施例利用TDX,但是本文 关于该实施例描述的技术可以由任何隔离架构利用。TD架构502包括在第 一TD(TD1)内执行的第一虚拟机520,以及在第二TD(TD2)内执行的 嵌套VM 525(包括VMM 525a和VM 525b)。托管的访客工作负载或托管的VM以TD非根模式运行。
图6描绘了用于根据本文其他地方描述的TD架构(例如,图5A-图 5B的示例性TD架构中的一个或多个)处理存储器完整性错误的示例性执 行流程600。具体地,在块605中,MKTME引擎检测到完整性失败,并向 处理器发出相对应的中断信号,该处理器发起与检测到的完整性错误相关 联的请求。在接收到中断时,在块610中,处理器确定与引起错误的请求 相关联的逻辑处理器是否在TD非根模式下执行。如果是,则在块615中, 逻辑处理器将指示检测到的完整性错误的页面故障错误码传送到当前在逻 辑处理器上执行的TD。另一方面,如果在框610中确定处理器处于TD根 模式,则执行流程进行到框620以确定逻辑处理器是否以VMX根模式执行。 如果是,则在块625,将页面故障错误码引导到在逻辑处理器上执行的TD。 如果在框620中确定逻辑处理器未以VMX根模式操作(因此处于VMX非 根模式),则将页面故障错误码传递到相关访客VM。在某些实施例中,递 送到相关访客VM的页面故障错误码可以由VM以TD根模式处理,例如, 如果VM未被启发。以这种方式,可信软件控制其命运。以TD非根模式 接收的以及由以TD根模式运行的VMM码或数据造成的完整性错误可以直接影响TD安全性/操作,因此被重定向到TD。另一方面,在TD根模式下 以VMX非根模式接收的完整性错误可以由其数据或代码被破坏的访客VM 安全地处理,因为它不影响在CSP VMM的顶部执行的TD的安全性。
以这种方式,接收页面故障错误码的TD软件可以确定适当的动作过程。 作为非限制性示例,TD可以确定停止执行并且向拥有用户通知检测到的错 误以决定动作的一个或多个进一步的过程。应当意识到,在用于各种VM 架构的过去操作中,VMM可以导致不可屏蔽中断(NMI)上的退出和诸如 所描述的页面故障错误码之类的异常,VMM可以确定可以抑制退出和异常 并且永远不会传递到VM。值得注意的是,利用本文描述的技术,在完整性 失败的情况下由MKTME引擎生成的这种NMI和传递给访客VM的相对应 的页面故障错误码可能无法被掩码或导致退出VMM。该方法可以确保向相 关可信软件可信地传递完整性失败的指示。
虽然本公开的附图示出和/或描述了根据本文描述的技术的特定实施例 的操作,但是应该理解,并非所有这样的操作对于其他实施例都是必需的。 实际上,在此充分考虑的是,在本公开的其他实施例中,本文示出和/或以 其他方式描述的操作可以以未在任何这些附图中具体示出的方式组合,但 仍然与本公开完全一致。因此,针对在一个附图中未精确示出的特征和/或 操作的权利要求被认为在本公开的范围和内容内。
通常,这里描述的设备可以包括用于传送信息的各种物理和/或逻辑组 件,其可以针对给定的一组设计参数或性能约束的需要实现为硬件、软件 或其任何组合。尽管附图和相对应的文本可以通过示例的方式描绘或描述 有限数量的组件,但是应当意识到,对于给定的实现,可以采用更多或更 少数量的组件。
在各种实施例中,本文描述的设备可以针对PC、CE和/或移动平台实 现为在诸如个人计算机(PC)、机顶盒(STB)、电视(TV)设备、互联网 协议电视(IPTV)设备、媒体播放器和/或智能电话之类的设备内和/或连接 到其的系统。这种设备的其他示例可以包括但不限于工作站、终端、服务 器、媒体设备、音频/视频(A/V)接收器、数字音乐播放器、娱乐系统; 数字TV(DTV)设备、高清TV(HDTV)设备、直播卫星电视(DBS) 设备、视频点播(VOD)设备、网络电视设备、数字视频录像机(DVR) 设备、数字多功能光盘(DVD)设备、高清DVD(HD-DVD)设备、蓝 光盘(BD)设备、视频家庭系统(VHS)设备、数字VHS设备、数码相机、 游戏机、显示设备、笔记本PC、便携式计算机、便携式计算机、手持计算 机、个人数字助理(PDA)、IP语音(VoIP)设备、蜂窝电话、组合蜂窝电 话/PDA、寻呼机、消息传递设备、无线接入点(AP)、无线客户端设备、 无线站(STA)、基站(BS)、用户站(SS)、移动用户中心(MSC)、移动 单元等。
在各种实施例中,本文描述的设备可以形成有线通信系统、无线通信 系统或两者的组合的一部分。例如,这种设备可以被布置为通过一种或多 种类型的有线通信链路传送信息。有线通信链路的示例可以包括但不限于 电线、电缆、总线、印刷电路板(PCB)、以太网连接、对等(P2P)连接、 背板、交换结构、半导体材料、扭曲-双绞线、同轴电缆、光纤连接等。这 种设备还可以被布置为通过一种或多种类型的无线通信链路传送信息。无 线通信链路的示例可以包括但不限于无线电信道、卫星信道、电视频道、 广播信道红外信道、射频(RF)信道、无线保真(WiFi)信道、RF频谱的 一部分,以及/或一个或多个许可或免许可频段。尽管可以通过示例的方式 使用特定通信媒体来说明某些实施例,但是可以意识到,可以使用各种通 信媒体和伴随技术来实现这里讨论的原理和技术。
在各种实施例中,这里描述的设备可以被布置为在网络内操作,诸如 广域网(WAN)、局域网(LAN)、城域网(MAN)、无线WAN(WWAN)、 无线LAN(WLAN)、无线MAN(WMAN)、无线个域网(WPAN)、全球 微波接入互操作性(WiMAX)网络、宽带无线接入(BWA)网络、互联网、万维网、电话网络、无线电网络、电视网络、有线网络、卫星网络、如直 播卫星(DBS)网络、码分多址(CDMA)网络、第三代(3G)网络、如 宽带CDMA(WCDMA)、第四代(4G)网络、时分多址(TDMA)网络、 扩展TDMA(E-TDMA)蜂窝无线电话网络、全球移动通信系统(GSM) 网络、GSM与通用分组无线业务(GPRS)系统(GSM/GPRS)网络、同步 空分多址(SDMA)网络、时分同步CDMA(TD-SCDMA)网络、正交频 分复用(OFDM)网络、正交频分多址(OFDMA)网络、北美数字蜂窝(NADC) 蜂窝无线电话网络、窄带高级移动电话服务(NAMPS)网络、通用移动电 话系统(UMTS)网络和/或被配置为根据所描述的实施例携带数据的任何 其他有线或无线通信网络。
如在本申请和权利要求中所使用的,由术语“和/或”连接的项目列表 可以表示所列项目的任何组合。例如,短语“A、B和/或C”可以表示A; B;C;A和B;A和C;B和C;如在本申请和权利要求中所使用的,由 术语“至少一个”连接的项目列表可以表示所列术语的任何组合。例如, 短语“A、B或C中的至少一个”可以表示A;B;C;A和B;A和C;B 和C;或A、B和C。
如在此的任何实施例中所使用的,术语“系统”、“组件”或“模块” 可以指代例如被配置为执行任何上述操作的软件、固件和/或电路。软件可 以体现为记录在非暂时性计算机可读存储介质上的软件封装、代码、指令、 指令集和/或数据。固件可以体现为在存储器设备中被硬编码(例如,非易 失性)的代码、指令或指令集和/或数据。如在此的任何实施例中所使用的 “电路”可以包括,例如,单独地或以任何组合,硬连线电路,诸如计算 机处理器的可编程电路,所述计算机处理器包括一个或多个单独的指令处 理核、状态机电路和/或固件,所述固件存储由可编程电路或未来计算范例 执行的指令,包括例如大规模并行、模拟或量子计算,诸如神经网络处理 器的加速器的硬件实施例和上述的非硅实现。电路可以共同地或单独地实 现为形成较大系统的一部分的电路,例如,集成电路(IC)、片上系统(SoC)、 台式计算机、膝上型计算机、平板计算机、服务器、智能电话等。
本文描述的任何操作可以在包括一个或多个存储介质(例如,非暂时 性存储介质)的系统中实现,所述存储介质单独地或组合地存储指令,所 述指令在由一个或多个处理器执行时执行所述方法。这里,处理器可以包 括例如服务器CPU、移动设备CPU和/或其他可编程电路。还有,这意味 着本文描述的操作可以分布在多个物理设备上,例如在多于一个不同的物 理位置处的处理结构。存储介质可以包括任何类型的有形介质,例如,任 何类型的盘,包括硬盘、软盘、光盘、光盘只读存储器(CD-ROM)、光盘 可重写(CD-RW),以及磁光盘,诸如只读存储器(ROM)的半导体器件, 诸如动态和静态RAM的随机存取存储器(RAM)、可擦除可编程只读存储 器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、固态硬盘(SSD)、嵌入式多媒体卡(eMMC)、安全数字输入/输出(SDIO)卡、磁 卡或光卡、或适用于存储电子指令的任何类型的介质。其他实施例可以实 现为由可编程控制设备执行的软件。
因此,本公开涉及提供低开销密码存储器隔离以减轻多用户虚拟化计 算环境中的攻击漏洞。用于目标数据的存储器读取和存储器写操作,每个 经由与特定虚拟机(VM)相关联的指令发起,包括至少基于VM特定密码 密钥和目标数据的物理存储器地址的消息认证码的生成和/或验证。这样的 操作还可以包括经由包含在包括目标数据的数据行内的多个辅助比特来发 送所生成的消息认证码。在验证失败的情况下,可以基于相关联的虚拟机的操作模式生成一个或多个错误码并将其提供给不同的信任域架构实体。
以下示例涉及其他实施例。本公开的以下示例可以包括主题材料,诸 如至少一个设备、方法、用于存储指令的至少一个机器可读介质,所述指 令在被执行时使机器基于该方法执行动作,执行基于方法来执行动作的方 法和/或对受保护内容进行安全显示的系统。
根据示例1,提供了一种用于密码存储器隔离的系统。该系统可以包括 处理电路,用于执行多个指令中的每个指令,其中每个指令与多个虚拟机 (VM)的一个虚拟机(VM)相关联。该系统还可以包括存储器电路,该 存储器电路通信地耦合到处理电路并且包括存储器控制器,用于经由存储 器电路执行至少写操作。执行写操作可以包括生成消息认证码(MAC)。 MAC可以与经由写操作存储的目标数据相关联,并且可以至少部分地基于 (a)VM特定的加密密钥和(b)通过写操作存储目标数据的物理存储器地 址。
示例2可以包括示例1的元素,其中存储器控制器用于通过一个或多 个密码算法生成MAC,其中不同的其他密码密钥用于加密目标数据,并且 其中MAC还基于加密的目标数据。
示例3可以包括示例1-2中任一项的元素,其中VM特定的密码密钥 特定于与多个指令中的第一指令相关联的VM,并且其中第一指令使得处理 电路发起写操作。
示例4可以包括1-3的示例中的任何一个的元件,其中存储器控制器还 用于经由存储器电路执行读操作,其中执行读操作包括生成第二MAC以用 于验证目标数据,所述目标数据经由写操作中的一个先前存储,并且其中 第二MAC至少部分地基于与导致处理电路发起读操作的第二指令相关联 的第二VM特定的密码密钥。
示例5可以包括示例4的元件,其中存储器电路还用于响应于确定先 前存储的目标数据的验证已经失败,向处理电路提供验证失败的指示;并 且其中处理电路还用于确定与第二指令相关联的VM的操作模式,用于响 应于来自存储器电路的指示来生成错误码,并将生成的错误码提供给基于 相关联的VM的确定的操作模式的目的地。
示例6可以包括示例4-5中任一项的元素,其中所生成的错误码是故障 码,并且其中相关联的VM的所确定的操作模式是包括以下的分组中的一 个:TD非根模式、TD根模式、VM扩展(VMX)根模式和VMX非根模 式。
示例7可以包括示例1-6中任一个的元素,其中执行写操作还存储附加 信息,所述附加信息包括多个辅助比特作为数据行的一部分,所述数据行 包括经由写操作存储的目标数据,并且其中存储包括多个辅助比特的附加 信息包括将所生成的MAC嵌入在多个辅助比特内作为数据行的一部分。
示例8可以包括示例7的元件,其中存储器控制器还用于经由存储器 电路执行读操作,并且其中执行读操作包括从包括目标数据的数据行提取 所生成的MAC。
根据示例9,提供了一种用于密码存储器隔离的装置。该装置可以包括 存储器电路,其经由存储器电路执行至少写操作。执行写操作可以包括生 成消息认证码(MAC),所述消息认证码与经由写操作存储在存储器电路内 的目标数据相关联,并且至少部分地基于(a)特定于虚拟机(VM)的密 码密钥以及(b)物理存储器地址,目标数据经由写操作存储在其中。
示例10可以包括示例9的元素,其中,生成MAC包括经由一个或多 个密码算法生成MAC,其中,使用不同的其他密码密钥来加密目标数据, 并且其中MAC还基于加密的目标数据。
示例11可以包括示例9-10中任一项的元素,其中VM特定的密码密 钥特定于与多个指令中的第一指令相关联的VM,每个指令与多个VM中 的一个相关联,并且其中第一指令发起写操作。
示例12可以包括示例11的元件,其中存储器电路还用于执行读操作, 其中执行读操作包括生成第二MAC,用于验证经由读操作中的一个先前存 储的目标数据,并且其中第二MAC至少部分地基于与导致处理电路发起读 操作的第二指令相关联的第二VM特定的密码密钥。
示例13可以包括示例11-12中任一项的元素,其中存储器电路还用于 响应于确定先前存储的目标数据的验证失败,提供目标数据的验证失败的 指示;并且其中该装置还包括处理电路,用于确定与第二指令相关联的VM 的操作模式,响应于来自存储器电路的指示生成错误码,并将生成的错误 码提供给基于相关联的VM的确定的操作模式的目的地。
示例14可以包括示例13的元素,其中所生成的错误码是页面故障码, 并且其中相关联的VM的确定的操作模式是包括以下的分组中的一个:TD 非根模式、TD根模式、VM分机扩展(VMX)根模式和VMX非根模式。
示例15可以包括9-14的示例中的任何一个的元素,其中,执行写操作 还包括存储附加信息,所述附加信息包括多个辅助比特作为数据行的一部 分,所述数据行包括经由写入操作存储的目标数据,并且其中存储包括多 个辅助比特的附加信息包括将所生成的MAC嵌入在多个辅助比特内作为 数据行的一部分。
示例16可以包括示例15的元素,其中存储器电路还用于执行读操作, 并且其中执行读操作包括从包括目标数据的数据行提取所生成的MAC。
根据示例17,提供了一种用于密码存储器隔离的方法。该方法可以包 括经由一个或多个处理器执行多个指令中的每个指令,每个指令与由一个 或多个处理器执行的虚拟机(VM)相关联。该方法还可以包括经由通信地 耦合到一个或多个处理器的存储器电路执行一个或多个写操作。每个写操 作可以包括至少部分地基于VM特定的密码密钥和针对目标数据的物理存 储器地址生成消息认证码(MAC)。
示例18可以包括示例17的元素,还包括使用不同的其他密码密钥来 加密目标数据,并且其中生成MAC包括进一步部分地基于加密的目标数据 经由一个或多个加密算法生成MAC。
示例19可以包括示例17-18中任一项的元素,其中至少部分地基于VM 特定的密码密钥生成MAC包括基于与多个指令的一个指令相关联的VM特 定的密码密钥来生成MAC,并且其中该方法还包括响应于该一个指令来发 起写操作。
示例20可以包括示例17-19中任一个的元件,还包括经由存储器电路 执行一个或多个读操作,其中执行读操作包括生成第二MAC以用于验证经 由写操作中的一个先前存储的目标数据,其中生成第二MAC包括至少部分 地基于与第二指令相关联的第二VM特定的密码密钥了来生成第二MAC, 并且其中该方法还包括响应于第二指令发起读操作。
示例21可以包括示例20的元素,还包括:响应于确定先前存储的目 标数据的验证已经失败,生成指示验证失败的错误码;确定与第二指令相 关联的VM的操作模式;并且将生成的错误码提供给基于相关联的VM的 所确定的操作模式的目的地。
示例22可以包括示例21的元素,其中生成错误码包括生成页面故障 码,并且其中确定相关联的VM的操作模式包括确定操作模式是包括以下 中的分组中的一个:TD非根模式、TD根模式、VM扩展(VMX)根模式 和VMX非根模式。
示例23可以包括示例17-22中任一个的元素,其中执行写操作还包括 存储附加信息,所述附加信息包括多个辅助比特作为包括目标数据的数据 行的一部分,并且其中存储包括多个辅助比特的所述附加信息包括将所生 成的MAC嵌入在多个辅助比特内作为数据行的一部分。
示例24可以包括示例23的元素,还包括经由存储器电路执行一个或 多个读操作,其中执行读操作包括从包括目标数据的数据行提取所生成的 MAC。
关于与多密钥存储器加密有关的操作和技术的其他细节可以在2017年 6月28日提交的美国专利申请No.15/635,548中找到,该申请在此以其整体 并入本文。关于与信任域架构相关的操作和技术的附加信息可以在2017年 9月15日提交的美国专利申请No.15/705,562中找到,该申请在此以其整体 并入本文。关于与消息认证码有关的操作和技术的附加信息可以在2017年11月17日提交的美国专利申请No.15/816,901中找到,该申请在此以其整 体并入本文。

Claims (25)

1.一种用于密码存储器隔离的系统,所述系统包括:
处理电路,其用于执行多个指令中的每一个,其中,每个指令与多个虚拟机(VM)中的一个虚拟机(VM)相关联;以及
存储器电路,其通信地耦合到所述处理电路并且包括存储器控制器,所述存储器控制器用于经由所述存储器电路执行至少写操作,其中,执行写操作包括生成消息认证码(MAC);
其中,所述MAC与经由所述写操作而被存储的目标数据相关联并且至少部分地基于(a)VM特定的密码密钥以及(b)物理存储器地址,所述目标数据经由所述写操作而被存储在所述物理存储器地址中。
2.如权利要求1所述的系统,其中,所述存储器控制器用于经由一个或多个密码算法来生成所述MAC,其中,不同的其他密码密钥用于加密所述目标数据,并且其中,所述MAC还基于加密的目标数据。
3.如权利要求1所述的系统,其中,所述VM特定的密码密钥特定于与所述多个指令中的第一指令相关联的VM,并且其中,所述第一指令使所述处理电路用于发起所述写操作。
4.如权利要求1所述的系统,其中,所述存储器控制器还用于经由所述存储器电路执行读操作,其中,执行读操作包括生成第二MAC,以用于经由所述写操作中的一个写操作而被先前存储的目标数据的验证,并且其中,所述第二MAC至少部分地基于与导致所述处理电路发起所述读操作的第二指令相关联的第二VM特定的密码密钥。
5.如权利要求4所述的系统,其中:
所述存储器电路还用于响应于确定所述被先前存储的目标数据的所述验证已经失败,向所述处理电路提供所述验证已经失败的指示;以及
所述处理电路还用于确定与所述第二指令相关联的VM的操作模式,以响应于来自所述存储器电路的所述指示来生成错误码,并且将生成的错误码提供给基于所述相关联的VM的确定的操作模式的目的地。
6.如权利要求4所述的系统,其中,所述生成的错误码是页面故障码,并且其中,所述相关联的VM的确定的操作模式是包括以下的分组中的一个:TD非根模式、TD根模式、VM扩展(VMX)根模式以及VMX非根模式。
7.如权利要求1-6中任一项所述的系统,其中,执行写操作还包括存储包括多个辅助比特的附加信息作为数据行的一部分,所述数据行包括经由所述写操作而被存储的目标数据,并且其中,存储包括所述多个辅助比特的所述附加信息包括将生成的MAC嵌入在所述多个辅助比特内作为所述数据行的一部分。
8.如权利要求7所述的系统,其中,所述存储器控制器还用于经由所述存储器电路执行读操作,并且其中,执行读操作包括从包括所述目标数据的数据行提取所述生成的MAC。
9.一种用于密码存储器隔离的装置,所述装置包括:
存储器电路,经由所述存储器电路执行至少写操作,其中,执行写操作包括:
生成消息认证码(MAC),所述消息认证码与经由所述写操作而被存储在所述存储器电路内的目标数据相关联,并且至少部分地基于(a)特定于虚拟机(VM)的密码密钥以及(b)物理存储器地址,所述目标数据经由所述写操作而被存储在所述物理存储器地址中。
10.如权利要求9所述的装置,其中,生成所述MAC包括经由一个或多个密码算法来生成所述MAC,其中,使用不同的其他密码密钥来加密所述目标数据,并且其中,所述MAC还基于加密的目标数据。
11.如权利要求9所述的装置,其中,所述VM特定的密码密钥特定于与多个指令中的第一指令相关联的VM,所述多个指令中的每个指令都与多个VM中的一个VM相关联,并且其中,所述第一指令发起所述写操作。
12.如权利要求11所述的装置,其中,所述存储器电路还用于执行读操作,其中,执行读操作包括:生成第二MAC,以用于经由所述写操作中的一个写操作而被先前存储的目标数据的验证,并且其中,所述第二MAC至少部分地基于第二VM特定的密码密钥,所述第二VM特定的密码密钥与导致所述处理电路发起所述读操作的第二指令相关联。
13.如权利要求11所述的装置,其中,所述存储器电路还用于响应于确定所述先前存储的目标数据的所述验证已经失败,提供所述目标数据的所述验证已经失败的指示;并且其中,所述装置还包括处理电路,其用于确定与所述第二指令相关联的VM的操作模式,响应于来自所述存储器电路的所述指示来生成错误码,并且将生成的错误码提供给基于相关联的VM的确定的操作模式的目的地。
14.如权利要求13所述的装置,其中,所述生成的错误码是页面故障码,并且其中,所述相关联的VM的确定的操作模式是包括以下的分组中的一个:TD非根模式、TD根模式,VM扩展(VMX)根模式以及VMX非根模式。
15.如权利要求9至14中任一项所述的装置,其中,执行写操作还包括存储包括多个辅助比特的附加信息作为数据行的一部分,所述数据行包括经由所述写操作而被存储的目标数据,并且其中,存储包括所述多个辅助比特的所述附加信息包括将生成的MAC嵌入在所述多个辅助比特内作为所述数据行的一部分。
16.如权利要求15所述的装置,其中,所述存储器电路还用于执行读操作,并且其中,执行读操作包括从包括所述目标数据的所述数据行提取所述生成的MAC。
17.一种用于密码存储器隔离的方法,所述方法包括:
经由一个或多个处理器执行多个指令中的每一个指令,每个指令与由所述一个或多个处理器执行的虚拟机(VM)相关联;以及
经由通信地耦合到所述一个或多个处理器的存储器电路执行一个或多个写操作,其中,每个写操作包括至少部分地基于VM特定的密码密钥和针对所述目标数据的物理存储器地址来生成消息认证码(MAC)。
18.如权利要求17所述的方法,还包括使用不同的其他密码密钥来加密所述目标数据,并且其中,生成所述MAC包括进一步部分地基于加密的目标数据经由一个或多个密码算法来生成所述MAC。
19.如权利要求17或18中任一项所述的方法,其中,至少部分地基于所述VM特定的密码密钥来生成所述MAC包括基于密码密钥来生成所述MAC,所述密码密钥特定于与所述多个指令中的一个指令相关联的VM,并且其中,所述方法还包括响应于所述一个指令而发起所述写操作。
20.如权利要求17所述的方法,还包括经由所述存储器电路执行一个或多个读操作,其中,执行读操作包括生成第二MAC,以用于验证经由所述写操作中的一个写操作而被先前存储的目标数据,其中,生成所述第二MAC包括至少部分地基于与第二指令相关联的第二VM特定的密码密钥来生成所述第二MAC,并且其中,所述方法还包括响应于所述第二指令来发起所述读操作。
21.如权利要求20所述的方法,还包括:
响应于确定所述先前存储的目标数据的所述验证已经失败,生成指示所述验证已经失败的错误码;
确定与所述第二指令相关联的VM的操作模式;以及
将生成的错误码提供给基于所述相关联的VM的确定的操作模式的目的地。
22.如权利要求21所述的方法,其中,生成所述错误码包括生成页面故障码,并且其中,确定所述相关联的VM的操作模式包括确定所述操作模式是包括以下的分组中的一个:TD非根模式、TD根模式、VM扩展(VMX)根模式以及VMX非根模式。
23.如权利要求17所述的方法,其中,执行写操作还包括存储包括多个辅助比特的附加信息作为数据行的一部分,所述数据行包括所述目标数据,并且其中,存储包括所述多个辅助比特的所述附加信息包括将生成的MAC嵌入在所述多个辅助比特内作为所述数据行的一部分。
24.如权利要求23所述的方法,还包括经由所述存储器电路执行一个或多个读操作,其中,执行读操作包括从包括所述目标数据的所述数据行提取所述生成的MAC。
25.一种包括多个指令的非暂时性机器可读介质,所述多个指令响应于在计算设备上执行,而使所述计算设备用于执行如权利要求17至24中任一项所述的方法。
CN201910451950.9A 2018-06-29 2019-05-28 用于信任域的具有高可用性的低开销完整性保护 Pending CN110659521A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/023,576 US11397692B2 (en) 2018-06-29 2018-06-29 Low overhead integrity protection with high availability for trust domains
US16/023,576 2018-06-29

Publications (1)

Publication Number Publication Date
CN110659521A true CN110659521A (zh) 2020-01-07

Family

ID=65229644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910451950.9A Pending CN110659521A (zh) 2018-06-29 2019-05-28 用于信任域的具有高可用性的低开销完整性保护

Country Status (3)

Country Link
US (2) US11397692B2 (zh)
CN (1) CN110659521A (zh)
DE (1) DE102019110309A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10761996B2 (en) 2018-09-28 2020-09-01 Intel Corporation Apparatus and method for secure memory access using trust domains

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397692B2 (en) * 2018-06-29 2022-07-26 Intel Corporation Low overhead integrity protection with high availability for trust domains
US20200137021A1 (en) * 2018-10-31 2020-04-30 Hewlett Packard Enterprise Development Lp Using intent to access in discovery protocols in a network for analytics
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
US11036636B2 (en) 2019-06-28 2021-06-15 Intel Corporation Providing improved efficiency for metadata usages
US11139983B2 (en) * 2019-07-11 2021-10-05 Cyber Armor Ltd. System and method of verifying runtime integrity
US11665221B2 (en) 2020-11-13 2023-05-30 Nutanix, Inc. Common services model for multi-cloud platform
WO2022133860A1 (en) * 2020-12-24 2022-06-30 Intel Corporation Key management for crypto processors attached to other processing units
US20220207155A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Instruction support for saving and restoring key information
US20220209959A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Isa support for programming hardware over untrusted links
CN117063178A (zh) * 2021-04-02 2023-11-14 谷歌有限责任公司 只读存储器(rom)安全
EP4305645A1 (en) 2021-04-16 2024-01-17 Somos, Inc. Device management platform
US20220413884A1 (en) * 2021-06-29 2022-12-29 Red Hat, Inc. Reducing latency for nested virtual machines
US20230251782A1 (en) * 2022-02-10 2023-08-10 Macronix International Co., Ltd. Memory device and associated control method
WO2023191895A1 (en) * 2022-03-28 2023-10-05 Intel Corporation Secure shared memory buffer for communications between trusted execution environment virtual machines

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6000832A (en) * 1997-09-24 1999-12-14 Microsoft Corporation Electronic online commerce card with customer generated transaction proxy number for online transactions
JP2006203564A (ja) * 2005-01-20 2006-08-03 Nara Institute Of Science & Technology マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法
JP6584823B2 (ja) * 2014-06-20 2019-10-02 株式会社東芝 メモリ管理装置、プログラム、及び方法
US10108557B2 (en) * 2015-06-25 2018-10-23 Intel Corporation Technologies for memory confidentiality, integrity, and replay protection
US9710401B2 (en) * 2015-06-26 2017-07-18 Intel Corporation Processors, methods, systems, and instructions to support live migration of protected containers
US10594491B2 (en) * 2015-12-24 2020-03-17 Intel Corporation Cryptographic system memory management
US20190004973A1 (en) 2017-06-28 2019-01-03 Intel Corporation Multi-key cryptographic memory protection
US11314865B2 (en) * 2017-08-01 2022-04-26 The Trustees Of Princeton University Pluggable trust architecture
US11687654B2 (en) * 2017-09-15 2023-06-27 Intel Corporation Providing isolation in virtualized systems using trust domains
US10686605B2 (en) * 2017-09-29 2020-06-16 Intel Corporation Technologies for implementing mutually distrusting domains
US10938559B2 (en) * 2017-12-12 2021-03-02 Advanced Micro Devices, Inc. Security key identifier remapping
US11397692B2 (en) * 2018-06-29 2022-07-26 Intel Corporation Low overhead integrity protection with high availability for trust domains

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10761996B2 (en) 2018-09-28 2020-09-01 Intel Corporation Apparatus and method for secure memory access using trust domains
US11392506B2 (en) 2018-09-28 2022-07-19 Intel Corporation Apparatus and method for secure memory access using trust domains

Also Published As

Publication number Publication date
DE102019110309A1 (de) 2020-01-02
US11397692B2 (en) 2022-07-26
US20190042476A1 (en) 2019-02-07
US20220365885A1 (en) 2022-11-17

Similar Documents

Publication Publication Date Title
US20220365885A1 (en) Low overhead integrity protection with high availability for trust domains
US11775634B2 (en) Computing platform security methods and apparatus
US9774602B2 (en) Remote trust attestation and geo-location of servers and clients in cloud computing environments
US11831654B2 (en) Secure over-the-air updates
US9910972B2 (en) Remote trust attestation and geo-location of servers and clients in cloud computing environments
US10102370B2 (en) Techniques to enable scalable cryptographically protected memory using on-chip memory
US10073972B2 (en) Computing platform security methods and apparatus
US20160328562A1 (en) Computing platform security methods and apparatus
JP2017520959A (ja) 信頼実行環境を含むホストのアテステーション
US8826275B2 (en) System and method for self-aware virtual machine image deployment enforcement
US9537738B2 (en) Reporting platform information using a secure agent
Gu et al. Secure mobile cloud computing and security issues
US20230097604A1 (en) Memory layout randomization systems and methods for defeating translation lookaside buffer (tlb) poisoning attacks
Moratelli et al. Privacy and security of Internet of Things devices
Han et al. Improving drone mission continuity in rescue operations with secure and efficient task migration
TWI602078B (zh) 於雲端運算環境中供伺服器與客戶端的遠端信任證實及地理位置用之方法、設備、媒體及系統

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