# US 10,482,278 B2 · Remote provisioning and authenticated writes to secure storage devices

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,482,278 B2
- Document ID: US10482278B2
- Status: Granted
- Kind: B2
- Application number: 16/297,315
- Filed: 2019-03-08
- Published: 2019-07-04
- Granted: 2019-11-19
- Earliest claimed: 2015-10-13
- Assignees: McAfee, Inc.
- Applicants: McAfee, LLC
- Inventors: Adrian R. Pearson; Sergiu D. Ghetie; Thomas R. Bowen; Gamil A. Cain; Jason Cox; Faraz A. Siddiqi; Neeraj S. Upasani
- Web page: https://patentgrep.com/patent/US10482278B2

## CPC

- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 21/575: {Secure boot}
- G06F 21/79: in semiconductor storage media, e.g. directly-addressable memories
- G06F 2221/2107: File encryption
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system for securing electronic devices includes a storage device including a storage device controller processor, at least one non-transitory machine readable storage medium in firmware of the storage device communicatively coupled to the storage device controller processor, and a monitor application comprising computer-executable instructions on the medium. The instructions are readable by the storage device controller processor. The monitor application is configured to provision one or more read-only areas of the storage device, provision a candidate copy area of the storage device, reduce a maximum capacity available for user data on the storage device by a size of the read-only areas and the candidate copy area, and secure access to the read-only areas of the storage device.

## Claims

### Claim 1

At least one non-transitory machine-readable storage medium, comprising computer-executable instructions carried on the machine-readable medium, the instructions readable by a hardware processor, the instructions, when read and executed, for causing the hardware processor to:
provision one or more read-only areas of a storage device;
provision a candidate copy area of the storage device;
secure access to the read-only areas of the storage device;
determine that an attempted write to one of the read-only areas has been made;
copy contents of the attempted write to the candidate copy area;
verify a signature of data to be written to the read-only area using a unique key associated with the read-only area; and
in response to verifying the signature of the data to be written to the read-only area using the unique key associated with the read-only area, copy the contents from the candidate copy area to the read-only area.

### Claim 2 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, wherein the candidate area is as large as a largest of the read-only areas.

### Claim 3 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, further comprising instructions for causing the hardware processor to:
provision one or more key storage areas in which to store the unique keys associated with the one or more read-only areas.

### Claim 4 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, further comprising instructions for causing the hardware processor to:
provision the read-only areas of the storage device is performed during a boot process of the storage device; and
upon provisioning the read-only areas, block further provisioning based upon a blocking instruction from an entity specifying the provisioning.

### Claim 5 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, further comprising instructions for causing the hardware processor to:
determine an attempted provisioning of a read-only area of the storage device;
create and send a certificate-verification packet including a nonce of the storage device;
receive a verification response to the certificate-verification packet;
determine that the verification response identifies the source of the attempted provisioning; and
verify the verification response based upon the nonce of the storage device.

### Claim 6 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, further comprising instructions for causing the hardware processor to:
after provisioning the read-only areas of the storage device, determine an attempted provisioning of a read-only area of the storage device; and
verify data to be written based upon a validation using a key contained within the provisioning data.

### Claim 7 (depends on 1)

The non-transitory machine-readable storage medium of claim 1, further comprising instructions for causing the hardware processor to:
determine that a second attempted write to one of the read-only areas has been made;
copy contents of the second attempted write to the candidate copy area;
compare a security version of a second payload to be written with a security version of a corresponding read-only area;
verify the second attempted write by determining that the security version of the payload is greater or equal to the security version of the corresponding read-only area; and
based on a verification of the second attempted write, copy the contents from the candidate copy area to the read-only area.

### Claim 8

A system for securing electronic devices, comprising:
a storage device including at least one non-transitory machine-readable storage medium;
a hardware processor coupled to the storage device and configured to:
provision one or more read-only areas of the storage device;
provision a candidate copy area of the storage device;
secure access to the read-only areas of the storage device;
determine that an attempted write to one of the read-only areas has been made;
copy contents of the attempted write to the candidate copy area;
verify a signature of data to be written to the read-only area using a unique key associated with the read-only area; and
in response to verifying the signature of the data to be written to the read-only area using the unique key associated with the read-only area, copy the contents from the candidate copy area to the read-only area.

### Claim 9 (depends on 8)

The system of claim 8, wherein the candidate area is as large as a largest of the read-only areas.

### Claim 10 (depends on 8)

The system of claim 8, wherein the hardware processor is further configured to:
provision one or more key storage areas in which to store the unique keys associated with the one or more read-only areas.

### Claim 11 (depends on 8)

The system of claim 8, wherein the hardware processor is further configured to:
provision the read-only areas of the storage device is performed during a boot process of the storage device; and
upon provisioning the read-only areas, block further provisioning based upon a blocking instruction from an entity specifying the provisioning.

### Claim 12 (depends on 8)

The system of claim 8, wherein the hardware processor is further configured to:
determine an attempted provisioning of a read-only area of the storage device;
create and send a certificate-verification packet including a nonce of the storage device;
receive a verification response to the certificate-verification packet;
determine that the verification response identifies the source of the attempted provisioning; and
verify the verification response based upon the nonce of the storage device.

### Claim 13 (depends on 8)

The system of claim 8, wherein the hardware processor is further configured to:
after provisioning the read-only areas of the storage device, determine an attempted provisioning of a read-only area of the storage device; and
verify data to be written based upon a validation using a key contained within the provisioning data.

### Claim 14 (depends on 8)

The system of claim 8, wherein the hardware processor is further configured to:
determine that a second attempted write to one of the read-only areas has been made;
copy contents of the second attempted write to the candidate copy area;
compare a security version of a second payload to be written with a security version of a corresponding read-only area;
verify the second attempted write by determining that the security version of the payload is greater or equal to the security version of the corresponding read-only area; and
based on a verification of the second attempted write, copy the contents from the candidate copy area to the read-only area.

### Claim 15

A method of electronic device security, comprising:
provisioning one or more read-only areas of the storage device using a hardware processor;
provisioning a candidate copy area of the storage device;
securing access to the read-only areas of the storage device;
determining that an attempted write to one of the read-only areas has been made;
copying contents of the attempted write to the candidate copy area;
verifying a signature of data to be written to the read-only area using a unique key associated with the read-only area; and
in response to verifying the signature of the data to be written to the read-only area using the unique key associated with the read-only area, copying the contents from the candidate copy area to the read-only area.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
provisioning one or more key storage areas in which to store the unique keys associated with the one or more read-only areas.

### Claim 17 (depends on 15)

The method of claim 15, further comprising:
provisioning the read-only areas of the storage device is performed during a boot process of the storage device; and
upon provisioning the read-only areas, blocking further provisioning based upon a blocking instruction from an entity specifying the provisioning.

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
determining an attempted provisioning of a read-only area of the storage device;
creating and sending a certificate-verification packet including a nonce of the storage device;
receiving a verification response to the certificate-verification packet;
determining that the verification response identifies the source of the attempted provisioning; and
verifying the verification response based upon the nonce of the storage device.

### Claim 19 (depends on 15)

The method of claim 15, further comprising:
after provisioning the read-only areas of the storage device, determining an attempted provisioning of a read-only area of the storage device; and
verifying data to be written based upon a validation using a key contained within the provisioning data.

### Claim 20 (depends on 15)

The method of claim 15, further comprising:
determining that a second attempted write to one of the read-only areas has been made;
copying contents of the second attempted write to the candidate copy area;
comparing a security version of a second payload to be written with a security version of a corresponding read-only area;
verifying the second attempted write by determining that the security version of the payload is greater or equal to the security version of the corresponding read-only area; and
based on a verification of the second attempted write, coping the contents from the candidate copy area to the read-only area.
