Restricting usage of encryption keys by untrusted software

US12021980B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12021980-B2
Application numberUS-202117465311-A
CountryUS
Kind codeB2
Filing dateSep 2, 2021
Priority dateDec 20, 2018
Publication dateJun 25, 2024
Grant dateJun 25, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A processor includes a processor core. A register of the core is to store: a bit range for a number of address bits of physical memory addresses used for key identifiers (IDs), and a first key ID to identify a boundary between non-restricted key IDs and restricted key IDs of the key identifiers. A memory controller is to: determine, via access to bit range and the first key ID in the register, a key ID range of the restricted key IDs within the physical memory addresses; access a processor state that a first logical processor of the processor core executes in an untrusted domain mode; receive a memory transaction, from the first logical processor, including an address associated with a second key ID; and generate a fault in response to a determination that the second key ID is within a key ID range of the restricted key IDs.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor comprising: a processor core comprising one or more hardware registers, the one or more hardware registers to store: an indication of a number of bits of physical memory addresses used for key identifiers (IDs); and a boundary between non-restricted key IDs and restricted key IDs; and a memory controller coupled to the processor core, the memory controller to: determine a key ID range of the restricted key IDs within the physical memory addresses; access a processor state comprising an indication that a first logical processor of the processor core executes in an untrusted domain mode; receive a memory transaction from the first logical processor, the memory transaction comprising an address associated with a key ID; and generate a fault in response to a determination that the key ID is within the key ID range of the restricted key IDs. 2. The processor of claim 1 , wherein the fault is related to a type of access, to the key ID, by the first logical processor. 3. The processor of claim 1 , wherein the memory transaction includes a physical memory address to which is appended the key ID, and wherein the memory controller is further to: determine the key ID is within the key ID range of the restricted key IDs; and block access by the first logical processor to a memory location associated with the physical memory address. 4. The processor of claim 3 , wherein the memory controller is further to, in response to generation of the fault: ignore further write transactions to the memory location from the first logical processor; and return all one values in response to further read transactions to the memory location. 5. The processor of claim 1 , wherein the memory transaction includes a linear address, and wherein the memory controller is further to: translate, via paging, the linear address to a physical memory address; extract the key ID from the physical memory address; and block access by the first logical processor to a memory location of the physical memory address. 6. The processor of claim 5 , wherein the fault comprises a reserved key page fault associated with an attempt to set a reserved bit within a page table during the paging. 7. The processor of claim 1 , wherein the memory transaction includes a guest virtual address, and wherein the first logical processor is further to: translate, via a walk of guest page tables, the guest virtual address to a guest physical address; translate, via a walk of extended page tables (EPT), the guest physical address to a physical memory address; and extract the key ID from the physical memory address; and wherein the memory controller is further to block access by the first logical processor to a memory location of the physical memory address. 8. The processor of claim 7 , wherein the fault comprises a reserved key EPT misconfiguration fault associated with configuration of an EPT paging-structure entry reserved for future functionality. 9. The processor of claim 1 , wherein the first logical processor executes a virtual machine monitor (VMM), and wherein the VMM issues the memory transaction. 10. A system comprising: a memory device; one or more hardware registers to store: an indication of a number of address bits of physical memory addresses, of the memory device, to be used for key identifiers (IDs), the key identifiers associated with domain-specific encryption keys; and a boundary between non-restricted key IDs and restricted key IDs of the key identifiers; and a processor coupled to the memory device, the processor comprising a cryptographic engine, a hardware register of the one or more hardware registers, and a memory controller, wherein the cryptographic engine is to: determine a key ID range of the restricted key IDs within the physical memory addresses; receive a processor state comprising an indication that a first logical processor executes in an untrusted domain mode; receive, from the memory controller in response to a memory transaction from the first logical processor, a key ID associated with an address of the memory transaction; and generate a fault in response to a determination that the key ID is within the key ID range of the restricted key IDs. 11. The system of claim 10 , wherein the processor state is received from a control register of the processor, and wherein the cryptographic engine further comprises: a comparator to compare a value of the key ID with the key ID range of the restricted key IDs; and a first AND gate with a first input from the comparator and a second input from the control register. 12. The system of claim 11 , wherein the memory transaction includes a physical memory address, associated with a memory location, to which is appended the key ID, and wherein in response to the fault that is output from the first AND gate, the cryptographic engine is further to cause the memory controller to: ignore further write transactions to the memory location from the first logical processor; and return all one values in response to further read transactions to the memory location. 13. The system of claim 11 , wherein the memory transaction includes a linear address mapped to a physical memory address to which is appended the key ID, and wherein the cryptographic engine further comprises a second AND gate comprising: inputs from the first AND gate and an indication from the memory controller that the physical memory address was determined from paging; and an output comprising a reserved key page fault associated with an attempt to set a reserved bit within a page table during paging. 14. The system of claim 13 , wherein the hardware register is a model-specific register, and wherein the cryptographic engine is further to direct the memory controller to block access by the first logical processor to a memory location of the physical memory address. 15. The system of claim 11 , wherein the memory transaction includes a guest virtual address mapped to a physical memory address to which is appended the key ID, and wherein the cryptographic engine further comprises a second AND gate comprising: inputs from the first AND gate and an indication from a virtual machine monitor (VMM) that the physical memory address was determined from a walk of extended page tables (EPTs); and an output comprising a reserved key EPT misconfiguration fault associated with configuration of an EPT paging-structure entry reserved for future functionality. 16. The system of claim 15 , wherein the cryptographic engine is further to direct the memory controller to block access by the first logical processor to a memory location of the physical memory address. 17. A method comprising: retrieving a number of address bits of physical memory addresses used for key identifiers (IDs); retrieving a first key identifier (ID), of the key identifiers, to identify a boundary between non-restricted key IDs and restricted key IDs of the key identifiers; determining, by a memory controller of a processor, a key ID range of the restricted key IDs within the physical memory addresses; accessing, by the processor, a processor state comprising an indication that a first logical processor is executing in an untrusted domain mode; intercepting, by the memory controller, a memory transaction from the first logical processor, the memory transaction comprising an address associated with a key ID; and generating, by the processor, a fault in response to a determination that the key ID is within the key ID range of the restricted key IDs.

Assignees

Inventors

Classifications

  • Virtual address space management · CPC title

  • Space efficiency improvement · CPC title

  • Isolation or security of virtual machine instances · CPC title

  • Memory management, e.g. access or allocation · CPC title

  • Protecting access to data via a platform, e.g. using keys or access control rules · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12021980B2 cover?
A processor includes a processor core. A register of the core is to store: a bit range for a number of address bits of physical memory addresses used for key identifiers (IDs), and a first key ID to identify a boundary between non-restricted key IDs and restricted key IDs of the key identifiers. A memory controller is to: determine, via access to bit range and the first key ID in the register, …
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification H04L9/088. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jun 25 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).