IP Library › Granted Patent US 10,275,365
Granted Patent B1
US 10,275,365 · App. 15/232,456 · Granted Apr 30, 2019

Cryptographic signatures for capability-based addressing

Inventor: Jeffry E. Gonion (Campbell, CA)
Assignee: Apple Inc.
G06F12/1408H04L9/3247G06F2212/1052
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,275,365
App. No.
15/232,456
Granted
Apr 30, 2019
Kind
B1
Abstract

In an embodiment, a processor includes hardware circuitry and/or supports instructions which may cryptographically sign a pointer and its associated capabilities. When the pointer is used to perform a memory operation (read or write), the signed pointer may be authenticated to ensure that unauthorized modification of the pointer or capabilities has not occurred. In response to detecting the modification, the processor may be configured to signal an exception or otherwise initiate error handling to prevent the memory operation from completing.

Claims (28)

1. A processor comprising:

one or more registers; and

an execution core coupled to the one or more registers, wherein the execution core is configured to perform a sign operation on a combination of a pointer and a corresponding set of capabilities to generate a value including at least a portion of: the pointer, the set of capabilities, and a signature resulting from the sign operation; wherein the value is stored for subsequent use and, prior to using the pointer and the set of capabilities, the execution core is configured to perform an authenticate operation responsive to the value, wherein the set of capabilities comprises at least one permission for a first operation using the pointer, and wherein the execution core is configured to perform the first operation responsive to the authenticate operation passing and further responsive to the permission for the first operation in the set of capabilities indicating that the first operation is permitted.

2. The processor as recited in claim 1 wherein the value is stored to a memory location.

3. The processor as recited in claim 1 wherein the value is stored to one of the one or more registers.

4. The processor as recited in claim 1 wherein the signature generated from the sign operation is reduced in size.

5. The processor as recited in claim 4 wherein the signature replaces a subset of bits of the pointer in the value.

6. The processor as recited in claim 4 wherein the signature replaces a subset of bits of the capabilities in the value.

7. The processor as recited in claim 4 wherein the signature replaces a first subset of bits of the capabilities and a second subset of bits of the pointer in the value.

8. The processor as recited in claim 4 wherein the execution core is configured to execute an instruction defined to generate the signature.

9. The processor as recited in claim 4 wherein the execution core includes a hardware circuit to authenticate the signature in response to invoking the pointer for memory access.

10. The processor as recited in claim 1 wherein the execution core is configured to abort a program that is attempting to use the pointer and the set of capabilities in response to the authentication failing.

11. The processor as recited in claim 1 wherein the execution core is configured to signal an exception on a memory operation that is attempting to use the pointer and the set of capabilities in response to the authentication failing.

12. A system comprising:

a memory; and

an integrated circuit coupled to the memory, the integrated circuit comprising a processor configured to:

generate a pointer to a memory location;

perform a sign operation on the pointer and a corresponding set of capabilities, wherein the processor is configured to generate a value including at least a portion of: the pointer, the set of capabilities, and a signature resulting from the sign operation;

detect an attempt to use the pointer in a first operation to access memory; and

perform an authenticate operation responsive to the value prior to permitting the access to memory, wherein the set of capabilities comprises at least one permission for the first operation, and wherein the execution core is configured to perform the first operation responsive to the authenticate operation passing and further responsive to the permission for the first operation in the set of capabilities indicating that the first operation is permitted.

13. The system as recited in claim 12 wherein the processor is configured to store a value resulting from the sign operation in a location.

14. The system as recited in claim 13 wherein the location is a second memory location different from the memory location identified by the pointer.

15. The system as recited in claim 13 wherein location is a register in the processor.

16. The system as recited in claim 12 wherein the signature is reduced in size to be stored with the pointer and corresponding set of capabilities.

17. The system as recited in claim 16 wherein at least a portion of the reduced signature replaces a subset of bits of the pointer in the value.

18. The system as recited in claim 17 wherein a remaining portion of the signature replaces a subset of bits of the set of capabilities.

19. The system as recited in claim 16 wherein at least a portion of the reduced signature replaces a subset of bits of the capabilities in the value.

20. The system as recited in claim 12 wherein the processor is configured to abort a program that is attempting to use the value in response to the authentication failing.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2016
From: GONION, JEFFRY E.
To: APPLE INC.
Reel/Frame 039386/0919 →
Continuity (1)
Provisional Application 62311143 · Mar 21, 2016
Cited By (2)
US 12,518,004 US 12,562,918