# US 10,311,240 B1 · Remote storage security

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

- Number: US 10,311,240 B1
- Document ID: US10311240B1
- Status: Granted
- Kind: B1
- Application number: 14/835,652
- Filed: 2015-08-25
- Granted: 2019-06-04
- Earliest claimed: 2015-08-25
- Assignees: Google Inc.
- Applicants: Google Inc.
- Inventors: Mattias Stefan Nissler; William Alexander Drewry; Darren David Krahn
- Web page: https://patentgrep.com/patent/US10311240B1

## CPC

- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- H04L 9/0877: {using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]}
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- H04L 9/3268: {using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]}
- H04L 9/3297: {involving time stamps, e.g. generation of time stamps}
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/0823: {using certificates (cryptographic mechanisms or cryptographic arrangements for entity authentication involving certificates H04L9/3263)}
- G06F 21/57: Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- H04L 2463/061: applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
- H04L 2463/121: Timestamp
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Aspects of the subject technology relate to systems and methods for remote storage security. An encryption key is generated based at least on data stored locally by a computing device. The encryption key is bound to a context of the computing device. Data is encrypted using the encryption key. The encrypted data and information associated with the binding of the encryption key are provided for transmission to another computing device.

## Claims

### Claim 1

A computer-implemented method, comprising:
generating, by a first computing device, a first encryption key based at least on data stored locally by the first computing device;
binding the first encryption key to a context of the first computing device using a binding certificate from a device remote from the first computing device, wherein the binding certificate is generated based on a timestamp associated with the binding and a boot mode associated with the first computing device at a time of creation of the binding certificate;
encrypting data using the bound first encryption key so that the encrypted data is unusable by encryption keys bound to a context different than the context of the first computing device; and
providing, for transmission to a second computing device, the encrypted data and information associated with the binding.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
the information associated with the binding comprises the binding certificate, and
the timestamp is based on the time of creation of the binding certificate.

### Claim 3 (depends on 1)

The method of claim 1, wherein the binding comprises:
Sending, by the first computing device, a request for the binding certificate; and
receiving, from a third computing device, the binding certificate.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
encrypting the binding certificate using an endorsement key associated with the first computing device,
wherein the providing comprises providing, for transmission to the second computing device, the encrypted data and the encrypted binding certificate.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
generating a nonce;
providing, for transmission to a third computing device, the generated nonce; and
receiving an identifier from the third computing device, wherein the generated nonce is used for generating the received identifier,
wherein the received identifier is used for generating the first encryption key.

### Claim 6 (depends on 5)

The method of claim 5, wherein the received identifier is further based on an endorsement key associated with the first computing device.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
generating a data identifier;
associating the data identifier with the encrypted data; and
providing, for transmission to the second computing device, the data identifier.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
retrieving, using the data identifier, the encrypted data and the information associated with the binding from the second computing device;
generating a second encryption key based on the information associated with the binding; and
decrypting the encrypted data using the second encryption key,
wherein the encrypted data is successfully decrypted using the second encryption key when the first encryption key matches the second encryption key.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
obtaining a nonce contained in the information associated with the binding;
providing, for transmission to a third computing device, the obtained nonce; and
receiving an identifier from the third computing device, wherein the received identifier is based at least on the obtained nonce,
wherein the second encryption key is further based on the received identifier.

### Claim 10

A system, comprising:
one or more processors; and
a non-transitory computer-readable medium comprising instructions stored therein, which when executed by the one or more processors, cause the one or more processors to perform operations comprising:
receiving a binding certificate from a first computing device remote from the system, the binding certificate being generated based on a boot mode associated with the system at a time of creation of the binding certificate;
generating a first encryption key based at least on data stored locally in the system;
binding the first encryption key to the binding certificate using a symmetric encryption key embedded in the first computing device, wherein the binding certificate comprises information associated with a context of the system, the context comprising a timestamp associated with the binding certificate;
encrypting data using the bound first encryption key so that the encrypted data is unusable by encryption keys bound to a context different than the context of the system; and
providing, for transmission to a storage device, the encrypted data and the binding certificate.

### Claim 11 (depends on 10)

The system of claim 10, wherein the operations further comprise:
encrypting the binding certificate using an endorsement key associated with the system,
wherein the providing comprises providing, for transmission to the storage device, the encrypted data and the encrypted binding certificate.

### Claim 12 (depends on 10)

The system of claim 10, wherein the operations further comprise:
generating a nonce;
providing, for transmission to the computing device, the generated nonce; and
receiving an identifier from the computing device, wherein the received identifier is generated based at least on the generated nonce,
wherein the first encryption key is generated based on the received identifier.

### Claim 13 (depends on 12)

The system of claim 12, wherein the received identifier is further based on an endorsement key associated with the system.

### Claim 14 (depends on 10)

The system of claim 10, wherein the operations further comprise:
generating a data identifier; and
associating the data identifier with the encrypted data; and
providing, for transmission to the computing device, the data identifier.

### Claim 15 (depends on 14)

The system of claim 14, wherein the operations further comprise:
retrieving, using the data identifier, the encrypted data and the binding certificate;
generating a second encryption key based on the binding certificate; and
decrypting the encrypted data using the second encryption key,
wherein the encrypted data is successfully decrypted using the second encryption key when the first encryption key matches the second encryption key.

### Claim 16 (depends on 15)

The system of claim 15, wherein the operations further comprise:
obtaining a nonce contained in the binding certificate;
providing, for transmission to the computing device, the obtained nonce; and
receiving an identifier from the computing device, wherein the received identifier is based at least on the obtained nonce,
wherein the second encryption key is further based on the received identifier.

### Claim 17

A non-transitory machine-readable medium comprising instructions stored therein, which when executed by a machine, cause the machine to perform operations comprising:
generating, by a first computing device, a nonce;
providing, for transmission to a second computing device, the generated nonce;
receiving a binding certificate and an identifier from the second computing device, wherein the binding certificate is generated based on the nonce and a boot mode associated with the first computing device, and wherein the received identifier is based at least on the generated nonce;
generating, by the first computing device, a first encryption key based at least on data stored locally by the first computing device and the received identifier;
deriving a symmetric encryption key from a locally stored identifier of the first computing device;
encrypting the binding certificate using the symmetric encryption key;
binding the encryption key to a context of the first computing device using the binding certificate;
encrypting data using the first encryption key so that the encrypted data is unusable by encryption keys bound to a context different than the context of the first computing device; and
providing, for transmission to a storage device, the encrypted data and information associated with the binding.

### Claim 18 (depends on 17)

The non-transitory machine-readable medium of claim 17, wherein the operations further comprise:
generating a data identifier;
associating the data identifier with the encrypted data;
providing, for transmission to the computing device, the data identifier;
retrieving, using the data identifier, the encrypted data and the binding certificate;
generating a second encryption key based on the binding certificate; and
decrypting the encrypted data using the second encryption key,
wherein the encrypted data is successfully decrypted using the second encryption key when the first encryption key matches the second encryption key.

### Claim 19 (depends on 18)

The non-transitory machine-readable medium of claim 18, wherein the operations further comprise:
obtaining the generated nonce contained in the binding certificate;
providing, for transmission to the second computing device, the obtained nonce; and
receiving an identifier from the second computing device, wherein the received identifier is generated based at least on the obtained nonce,
wherein the second encryption key is generated based on the received identifier.
