Modifying memory permissions in a secure processing environment

US9355262B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9355262-B2
Application numberUS-201314141941-A
CountryUS
Kind codeB2
Filing dateDec 27, 2013
Priority dateDec 27, 2013
Publication dateMay 31, 2016
Grant dateMay 31, 2016

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.

Embodiments of an invention for modifying memory permissions in a secure processing environment are disclosed. In one embodiment, a processor includes an instruction unit and an execution unit. The instruction unit is to receive an instruction to modify access permissions for a page in a secure enclave. The execution unit is to execute the instruction. Execution of the instruction includes setting new access permissions in an enclave page cache map entry. Furthermore, the page is immediately accessible from inside the secure enclave according to the new access permissions.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor comprising: instruction hardware to receive a first instruction and a second instruction, wherein the first instruction is to extend access permissions for a page in a secure enclave and the second instruction is to be called, by an application from within the secure enclave, an operating system outside the secure enclave to invoke the second instruction to restrict access permissions for the page; execution hardware to execute the first instruction and the second instruction, wherein execution of the first instruction and the second instruction includes changing at least one of a read, write, and execute access permission in an enclave page cache map entry without setting a modified bit in the enclave page cache map entry, wherein execution of the second instruction includes storing an enclave epoch value in the enclave page cache map entry, and wherein the page is immediately accessible from inside the secure enclave according to the changed access permissions; and a translation lookaside buffer, wherein the operating system is to track enclave threads with translation lookaside buffer entries made stale by the changed access permissions and send interprocessor interrupts to trigger enclave thread exits and a translation lookaside buffer shootdown. 2. The processor of claim 1 , wherein the first instruction is executable from within the secure enclave. 3. The processor of claim 2 , wherein the first instruction is executable only from within the secure enclave. 4. The processor of claim 1 , wherein the second instruction is executable only in supervisor mode. 5. A method comprising: issuing a first instruction to a hardware processor to extend access permission for a page in a secure enclave; and executing, by the hardware processor, the first instruction, wherein execution of the first instruction includes changing at least one of a read, write, and execute access permission in an enclave page cache map entry without setting a modified bit in the enclave page cache map entry, and wherein the page is immediately accessible from inside the secure enclave according to the changed access permissions; calling, by an application from within the secure enclave, an operating system outside the secure enclave to invoke a second instruction to restrict at least one access permission for the page; issuing the second instruction to the hardware processor to restrict the at least one access permission for the page; executing, by the hardware processor, the second instruction, wherein execution of the second instruction includes changing at least one of the read, write, and execute access permission in the enclave page cache map entry, and storing an enclave epoch value in the enclave page cache map entry, and wherein the page is immediately accessible from inside the secure enclave according to the changed access permissions; tracking, by the operating system, enclave threads with translation lookaside buffer entries made stale by the changed access permissions; and sending, by the operating system, interprocessor interrupts to trigger enclave thread exits and a translation lookaside buffer shootdown. 6. The method of claim 5 , further comprising: accessing, by an application from within the secure enclave, the page according to the changed access permissions, and updating, by an operating system from outside the secure enclave, page tables to reflect the changed access permissions. 7. The method of claim 5 , further comprising: attempting, by an application from within the secure enclave, to access the page after execution of the first instruction; determining, by the hardware processor, that a mapping for the page exists in a translation lookaside buffer; and causing, by the hardware processor, a page fault and an asynchronous exit from the secure enclave. 8. The method of claim 7 , further comprising: handling, by an operating system from outside the secure enclave, the page fault; and restarting, by the operating system, the application in the secure enclave. 9. The method of claim 5 , further comprising verifying, by the application from within the secure enclave, that the changed access permissions have been set. 10. A system comprising: a memory; and a processor including instruction hardware to receive a first instruction and a second instruction, wherein the first instruction is to extend access permissions for a page loaded from the memory into a secure enclave and the second instruction is to be called, by an application from within the secure enclave, an operating system outside the secure enclave to invoke the second instruction to restrict access permissions for the page; execution hardware to execute the first instruction and the second instruction, wherein execution of the first instruction and the second instruction includes changing at least one of a read, write, and execute access permission in an enclave page cache map entry without setting a modified bit in the enclave page map entry, wherein execution of the second instruction includes storing an enclave epoch value in the enclave page cache map entry, and wherein the page is immediately accessible from inside the secure enclave according to the changed access permissions; and a translation lookaside buffer, wherein the operating system is to track enclave threads with translation lookaside buffer entries made stale by the changed access permissions and send interprocessor interrupts to trigger enclave thread exits and a translation lookaside buffer shootdown.

Assignees

Inventors

Classifications

  • with dedicated cache, e.g. instruction or stack · CPC title

  • to perform operations on memory · CPC title

  • the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism · CPC title

  • in cryptographic circuits · CPC title

  • G06F21/604Primary

    Tools and structures for managing or administering access control systems · 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 US9355262B2 cover?
Embodiments of an invention for modifying memory permissions in a secure processing environment are disclosed. In one embodiment, a processor includes an instruction unit and an execution unit. The instruction unit is to receive an instruction to modify access permissions for a page in a secure enclave. The execution unit is to execute the instruction. Execution of the instruction includes sett…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/0875. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 31 2016 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).