IP Library › Granted Patent US 11,374,967
Granted Patent B2
US 11,374,967 · App. 16/276,504 · Granted Jun 28, 2022

Systems and methods for detecting replay attacks on security space

Inventors: Zhimin Chen (San Jose, CA); Timothy R. Paaske (Cupertino, CA); Gilbert H. Herbeck (Austin, TX)
Assignee: Apple Inc.
H04L63/1466G06F12/1408G06F21/57G06F21/71G06F21/74H04L63/1475
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 11,374,967
App. No.
16/276,504
Granted
Jun 28, 2022
Kind
B2
Abstract

A system and method for detecting replay attacks on secure data are disclosed. A system on a chip (SOC) includes a security processor. Blocks of data corresponding to sensitive information are stored in off-chip memory. The security processor uses an integrity data structure, such as an integrity tree, for the blocks. The intermediate nodes of the integrity tree use nonces which have been generated independent of any value within a corresponding block. By using only the nonces to generate tags in the root at the top layer stored in on-chip memory and the nodes of the intermediate layers stored in off-chip memory, an amount of storage used is reduced for supporting the integrity tree. When the security processor detects events which create access requests for one or more blocks, the security processor uses the integrity tree to verify a replay attack has not occurred and corrupted data.

Claims (58)

1. A system comprising:

a security processor; and

an on-chip memory configured to store a first plurality of error detection values, each corresponding to a block of data;

wherein in response to detecting an event which stores a block of data in an off-chip memory, the security processor is configured to:

generate a second plurality of error detection values corresponding to the block of data;

generate a first error detection value of the second plurality of error detection values independent of any value within the block of data;

store the first error detection value in the on-chip memory; and

store the block of data and the second plurality of error detection values in the off-chip memory.

2. The system on a chip as recited in claim 1 , wherein the security processor is further configured to generate the first error detection value independent of any other error detection values of the second plurality of error detection values.

3. The system on a chip as recited in claim 1 , wherein the security processor is further configured to generate the first plurality of error detection values as values independent of any value within any block of data.

4. The system on a chip as recited in claim 1 , wherein the security processor is further configured to:

update a second error detection value based on the first plurality of error detection values;

store the second error detection value in the on-chip memory; and

prevent storing the second error detection value in the off-chip memory.

5. The system on a chip as recited in claim 1 , wherein the security processor is further configured to:

generate the second plurality of error detection values as nodes in a branch of an integrity tree that comprises a plurality of nodes, wherein a leaf node of the branch comprises the block of data; and

store a copy of the first error detection value in a node at a level of the integrity tree higher than any level comprising the second plurality of error detection values.

6. The system on a chip as recited in claim 5 , wherein each of the nodes in the branch of the integrity tree comprises a nonce and one or more tags, wherein the security processor is further configured to:

generate a tag, for a given node above the leaf node, by combining one or more nonces of the nodes.

7. The system on a chip as recited in claim 6 , wherein the security processor is further configured to generate a tag, for a leaf node, by combining a nonce associated with the leaf node and values of the block of data.

8. The system on a chip as recited in claim 6 , wherein the security processor is further configured to generate the tag, for the given node above the leaf node, by combining a first nonce and a second nonce, wherein the first nonce is associated with a same level of the integrity tree as the given node and the second nonce is associated with a lower level of the integrity tree as the given node.

9. A method comprising:

storing, in on-chip memory, a first plurality of error detection values, each corresponding to a block of data;

in response to detecting an event which stores a block of data in an off-chip memory:

generating, by logic of a security processor, a second plurality of error detection values corresponding to the block of data;

generating, by the logic, a first error detection value of the second plurality of error detection values independent of any value within the block of data;

storing, by the logic, the first error detection value in the on-chip memory; and

storing, by the logic, the block of data and the second plurality of error detection values in the off-chip memory.

10. The method as recited in claim 9 , further comprising generating the first error detection value independent of any other error detection values of the second plurality of error detection values.

11. The method as recited in claim 9 , further comprising generating the first plurality of error detection values as values independent of any value within any block of data.

12. The method as recited in claim 9 , further comprising:

updating a second error detection value based on the first plurality of error detection values;

storing the second error detection value in the on-chip memory; and

preventing storing the second error detection value in the off-chip memory.

13. The method as recited in claim 9 , further comprising:

generating the second plurality of error detection values as nodes in a branch of an integrity tree that comprises a plurality of nodes, wherein a leaf node of the branch comprises the block of data; and

storing a copy of the first error detection value in a node at a level of the integrity tree higher than any level comprising the second plurality of error detection values.

14. The method as recited in claim 13 , wherein each of the nodes in the branch of the integrity tree comprises a nonce and one or more tags, and wherein the method further comprises:

generating a tag, for a given node above the leaf node, by combining one or more nonces of the nodes.

15. The method as recited in claim 14 , further comprising generating the tag, for the given node above the leaf node, by combining a first nonce and a second nonce, wherein the first nonce is associated with a same level of the integrity tree as the given node and the second nonce is associated with a lower level of the integrity tree as the given node.

16. A security processor comprising:

a first interface coupled to an on-chip memory configured to store a first plurality of error detection values, each corresponding to a block of data;

a second interface to a memory controller coupled to off-chip memory configured to store a plurality of blocks of data; and

logic; and

wherein in response to detecting an event which stores a block of data in an off-chip memory, the logic is configured to:

generate a second plurality of error detection values corresponding to the block of data;

generate a first error detection value of the second plurality of error detection values independent of any value within the block of data;

store, via the first interface, the first error detection value in the on-chip memory; and

store, via the second interface, the block of data and the second plurality of error detection values in the off-chip memory.

17. The security processor as recited in claim 16 , wherein the logic is further configured to generate the first error detection value independent of any other error detection values of the second plurality of error detection values.

18. The security processor as recited in claim 16 , wherein the logic is further configured to generate the first plurality of error detection values as values independent of any value within any block of data.

19. The security processor as recited in claim 16 , wherein the logic is further configured to:

update a second error detection value based on the first plurality of error detection values;

store the second error detection value in the on-chip memory; and

prevent storing the second error detection value in the off-chip memory.

20. The security processor as recited in claim 16 , wherein the logic is further configured to:

generate the second plurality of error detection values as nodes in a branch of an integrity tree that comprises a plurality of nodes, wherein a leaf node of the branch comprises the block of data; and

store a copy of the first error detection value in a node at a level of the integrity tree higher than any level comprising the second plurality of error detection values.

Continuity (2)
Continuation 15275044 · Sep 23, 2016
Related Publication 20190260799A1 · Aug 22, 2019
Cited By (1)
US 12,579,320