# US 2016/0366117 A1 · Encrypted purging of data from content node storage

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

- Number: US 2016/0366117 A1
- Document ID: US20160366117A1
- Status: Published application
- Kind: A1
- Application number: 15/250,063
- Filed: 2016-08-29
- Published: 2016-12-15
- Earliest claimed: 2014-06-18
- Assignees: Fastly, Inc.
- Applicants: Fastly, Inc.
- Inventors: Tyler B. McMullen; Artur Bergman
- Web page: https://patentgrep.com/patent/US20160366117A1

## CPC

- H04L 63/061: {for key exchange, e.g. in peer-to-peer networks (cryptographic mechanisms or cryptographic arrangements for key agreement H04L9/0838)}
- G06F 12/1408: {by using cryptography (for digital transmission H04L9/00)}
- G06F 16/162: {Delete operations (erasing in storage systems G06F3/0652)}
- G06F 21/10: Protecting distributed programs or content, e.g. vending or licensing of copyrighted material (protection in video systems or pay television H04N7/16) {; Digital rights management [DRM]}
- 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}
- G06F 21/78: to assure secure storage of data (address-based protection against unauthorised use of memory G06F12/14; record carriers for use with machines and with at least a part designed to carry digital markings G06K19/00)
- H04L 9/0861: {Generation of secret information including derivation or calculation of cryptographic keys or passwords}
- G06F 2212/1052: Security improvement
- G06F 2221/2107: File encryption
- G06F 2221/2143: Clearing memory, e.g. to prevent the data from being stolen
- H04L 2209/60: Digital content management, e.g. content distribution
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Described herein are methods, systems, and software for encrypting and erasing data objects in a content node. In one example, a method of operating a content node that caches content divided into one or more data objects includes encrypting the one or more data objects using separate encryption keys for each of the one or more data objects, the separate encryption keys comprising a common portion shared by the one or more data objects and an individualized portion unique to each data object. The method further provides receiving a purge request to erase at least one data object and, responsive to the purge request, erasing at least one of the common portion or the individualized portion for the at least one data object based on the purge request.

## Claims

### Claim 1

A method of operating a computing system that stores data objects, the method comprising:
encrypting the data objects, wherein each data object of the data objects is encrypted using a first encryption key portion shared by the data objects and a second encryption key portion unique to each data object;
receiving a purge request to erase at least one data object;
in response to the purge request, identifying whether the purge request indicates a request to purge all of the data objects or a request to purge a subset of the data objects that is less than all of the data objects;
if the purge request indicates a request to purge all of the data objects, erasing the first encryption key portion shared by the data objects; and
if the purge request indicates a request to purge a subset of the data objects that is less than all of the data objects, erasing the second encryption key portion associated with the at least one data object.

### Claim 2 (depends on 1)

The method of claim 1 further comprising:
encrypting additional data objects, wherein each additional data object of the additional data objects is encrypted using a first encryption key portion shared by the additional data objects, a second encryption key portion unique to each additional data object, and a third encryption key portion shared by the data objects and the additional data objects;
wherein each data object of the data objects is further encrypted using the third encryption key portion shared by the data objects and the additional data objects;
wherein identifying whether the purge request indicates a request to purge all of the data objects or a request to purge a subset of the data objects that is less than all of the data objects comprises identifying whether the purge request indicates a request to purge all of the data objects and all of the additional data objects, a request to purge all of the data objects, or a request to purge a subset of the data objects that is less than all of the data objects; and
if the purge request indicates a request to purge all of the data objects and all of the additional data objects, erasing the third encryption key portion shared by the data objects and the additional data objects.

### Claim 3 (depends on 2)

The method of claim 2 wherein the data objects correspond to a first service, and wherein the additional data objects correspond to a second service.

### Claim 4 (depends on 2)

The method of claim 2 wherein the data objects correspond to a first website, and wherein the additional data objects correspond to a second website.

### Claim 5 (depends on 1)

The method of claim 1 wherein the data objects comprise hypertext markup (HTML) pages, images, audio files, or videos.

### Claim 6 (depends on 1)

The method of claim 1 further comprising encrypting metadata associated with each data object of the data objects using the first encryption key portion and the second encryption key portion associated with the data object, wherein the metadata comprises storage addressing information for the data objects.

### Claim 7 (depends on 4)

The method of claim 4 wherein the metadata associated with each of the data objects is stored in random access memory for the computing system, and wherein the data objects are stored in solid state storage for the computing system.

### Claim 8 (depends on 1)

The method of claim 1 wherein the computing system comprises a content node that caches the data objects between origin servers and end user devices.

### Claim 9

A computing apparatus comprising:
one or more non-transitory computer readable storage media;
a processing system operatively coupled with the one or more non-transitory computer readable media; and
processing instructions stored on the one or more non-transitory computer readable storage media to store data objects on a computing system that, when read and executed by the processing system, direct the processing system to at least:
encrypt the data objects, wherein each data object of the data objects is encrypted using a first encryption key portion shared by the data objects and a second encryption key portion unique to each data object;
receive a purge request to erase at least one data object;
in response to the purge request, identify whether the purge request indicates a request to purge all of the data objects or a request to purge a subset of the data objects that is less than all of the data objects;
if the purge request indicates a request to purge all of the data objects, erase the first encryption key portion shared by the data objects; and
if the purge request indicates a request to purge a subset of the data objects that is less than all of the data objects, erase the second encryption key portion associated with the at least one data object.

### Claim 10 (depends on 9)

The computing apparatus of claim 9,
wherein the processing instructions further direct the processing system to encrypt additional data objects, wherein each additional data object of the additional data objects is encrypted using a first encryption key portion shared by the additional data objects, a second encryption key portion unique to each additional data object, and a third encryption key portion shared by the data objects and the additional data objects;
wherein each data object of the data objects is further encrypted using the third encryption key portion shared by the data objects and the additional data objects;
wherein the processing instructions to identify whether the purge request indicates a request to purge all of the data objects or a request to purge a subset of the data objects that is less than all of the data objects direct the processing system to identify whether the purge request indicates a request to purge all of the data objects and all of the additional data objects, a request to purge all of the data objects, or a request to purge a subset of the data objects that is less than all of the data objects; and
wherein the processing instructions further direct the processing system to, if the purge request indicates a request to purge all of the data objects and all of the additional data objects, erase the third encryption key portion shared by the data objects and the additional data objects.

### Claim 11 (depends on 10)

The computing apparatus of claim 10 wherein the data objects correspond to a first service, and wherein the additional data objects correspond to a second service.

### Claim 12 (depends on 10)

The computing apparatus of claim 10 wherein the data objects correspond to a first website, and wherein the additional data objects correspond to a second website.

### Claim 13 (depends on 9)

The computing apparatus of claim 9 wherein the data objects comprise hypertext markup (HTML) pages, images, audio files, or videos.

### Claim 14 (depends on 9)

The computing apparatus of claim 9 wherein the processing instructions further direct the processing system to encrypt metadata associated with each data object of the data objects using the first encryption key portion and the second encryption key portion associated with the data object, wherein the metadata comprises storage addressing information for the data objects.

### Claim 15 (depends on 14)

The computing apparatus of claim 14 wherein the metadata associated with each of the data objects is stored in random access memory for the computing system, and wherein the data objects are stored in solid state storage for the computing system.

### Claim 16 (depends on 9)

The computing apparatus of claim 9 wherein the computing system comprises a content node that caches the data objects between origin servers and end user devices.

### Claim 17 (depends on 9)

The computing apparatus of claim 9 wherein the purge request comprises an administrator defined purge request.

### Claim 18

An apparatus comprising:
one or more non-transitory computer readable storage media; and
processing instructions stored on the one or more non-transitory computer readable storage media to store data objects on a computing system that, when read and executed by the processing system, direct the processing system to at least:
encrypt the data objects, wherein each data object of the data objects is encrypted using a first encryption key portion shared by the data objects and a second encryption key portion unique to each data object;
receive a purge request to erase at least one data object;
in response to the purge request, identify whether the purge request indicates a request to purge all of the data objects or a request to purge a subset of the data objects that is less than all of the data objects;
if the purge request indicates a request to purge all of the data objects, erase the first encryption key portion shared by the data objects; and
if the purge request indicates a request to purge a subset of the data objects that is less than all of the data objects, erase the second encryption key portion associated with the at least one data object.

### Claim 19 (depends on 18)

The apparatus of claim 18 wherein data objects comprise hypertext markup (HTML) pages, images, audio files, or videos.

### Claim 20 (depends on 18)

The apparatus of claim 18 wherein the data objects correspond to a first website, and wherein the computing system stores other data objects corresponding to one or more additional websites.
