# US 10,873,584 B2 · Secure network-accessible system for executing remote applications

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

- Number: US 10,873,584 B2
- Document ID: US10873584B2
- Status: Granted
- Kind: B2
- Application number: 16/002,738
- Filed: 2018-06-07
- Published: 2018-12-13
- Granted: 2020-12-22
- Earliest claimed: 2017-06-09
- Assignees: ORock Technologies, Inc.
- Applicants: ORock Technologies, Inc.
- Inventors: John Leon
- Web page: https://patentgrep.com/patent/US10873584B2

## CPC

- H04L 63/102: {Entity profiles}
- G06F 9/445: Program loading or initiating (bootstrapping G06F9/4401; security arrangements for program loading or initiating G06F21/57)
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/062: {for key distribution, e.g. centrally by trusted party (cryptographic mechanisms or cryptographic arrangements for key distribution involving a central third party H04L9/0819)}
- H04L 63/1416: {Event detection, e.g. attack signature detection}
- H04L 67/00: Network arrangements or protocols for supporting network services or applications (user-to-user messaging H04L51/00; network arrangements, protocols or services for supporting real-time applications in data packet communications networks H04L65/00)
- H04L 69/40: for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06)
- H04W 4/70: Services for machine-to-machine communication [M2M] or machine type communication [MTC]
- 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)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

A plurality of system nodes coupled via a dedicated private network is described herein. The nodes offer an end-to-end solution for protecting against network-based attacks. The nodes can also execute applications locally at the request of a user device such that a user operating the user device can use the applications executed locally on the nodes as if the applications were executing locally on the user device. To protect user data, the nodes may not transmit any user data to the user device. Rather, a node can generate a graphical representation of the environment in which the applications are executed, and transmit the graphical representation to the user device. As the user performs actions that result in a change of a graphical view of the environment in which the applications are executed, the node can generate and transmit new graphical representations of the environment to the user device.

## Claims

### Claim 1

A system for executing remote applications, the system comprising:
an applications data store; and
a hardware processor in communication with the applications data store and configured with computer-executable instructions, wherein the computer-executable instructions, when executed, cause the hardware processor to:
process a request to access a first application received from a local application running on a user device via a network;
retrieve first source files for the first application from the applications data store;
initialize a container formed from a container image and a top container layer, wherein the container shares an operating system with other containers initialized by the hardware processor and is isolated from the other containers;
cause the container to load the first application using the first source files;
generate a graphical representation of the container;
encrypt the graphical representation of the container using a first key;
transmit the encrypted graphical representation of the container to the user device, wherein reception of the encrypted graphical representation of the container causes the local application running on the user device to decrypt the encrypted graphical representation of the container, display the decrypted version of the graphical representation of the container such that the first application that is loaded by the container appears to be available locally on the user device, and encrypt the decrypted version of the graphical representation of the container using the first key for storage;
encrypt a second graphical representation of the container using a second key different than the first key; and
transmit the encrypted second graphical representation of the container to the user device, wherein reception of the encrypted second graphical representation of the container causes the local application running on the user device to decrypt the encrypted second graphical representation of the container, display the decrypted version of the second graphical representation of the container, and encrypt the decrypted version of the second graphical representation of the container using the second key for storage.

### Claim 2 (depends on 1)

The system of claim 1, wherein the container is initialized within a virtual machine instance.

### Claim 3 (depends on 1)

The system of claim 1, wherein the computer-executable instructions, when executed, further cause the hardware processor to:
process an instruction to open the first application received from the local application;
cause the container to open the first application;
generate the second graphical representation of the container; and
transmit the encrypted second graphical representation of the container, wherein reception of the encrypted second graphical representation of the container causes the local application to display the decrypted version of the second graphical representation of the container in place of the decrypted version of the graphical representation of the container.

### Claim 4 (depends on 3)

The system of claim 3, wherein the computer-executable instructions, when executed, further cause the hardware processor to:
determine that a connection with the user device is terminated; and
store at least one of the container image or the top container layer corresponding to the container in a user data store in response to the determination that the connection with the user device is terminated to preserve an access state of a user operating the user device.

### Claim 5 (depends on 4)

The system of claim 4, wherein the computer-executable instructions, when executed, further cause the hardware processor to:
determine that the connection with the user device is established;
retrieve at least one of the container image or the top container layer from the user data store;
initialize the container using at least one of the container image or the top container layer such that the container is initialized with the access state of the user;
generate a third graphical representation of the container; and
transmit the third graphical representation of the container to the user device, wherein reception of the third graphical representation of the container causes the local application to display the third graphical representation of the container.

### Claim 6 (depends on 3)

The system of claim 3, wherein reception of the second graphical representation of the container further causes the local application to delete the encrypted graphical representation of the container.

### Claim 7 (depends on 1)

The system of claim 1, wherein the computer-executable instructions, when executed, further cause the hardware processor to determine that the user device is authorized to access the first application.

### Claim 8 (depends on 1)

The system of claim 1, wherein the computer-executable instructions, when executed, further cause the hardware processor to cause the container to load the first application at an access level associated with the user device.

### Claim 9

A computer-implemented method for executing remote applications, the computer-implemented method comprising:
as performed by a computing system comprising a processor and accessible via a network,
receiving, from a local application running on a user device via the network, a request to access a first application;
retrieving first source files for the first application;
initializing a container formed from a container image and a top container layer, wherein the container shares an operating system with other containers initialized by the computing system and is isolated from the other containers;
causing the container to load the first application using the first source files;
generating a graphical representation of the container;
encrypting the graphical representation of the container using a first key;
transmitting the encrypted graphical representation of the container to the user device, wherein reception of the encrypted graphical representation of the container causes the local application running on the user device to decrypt the encrypted graphical representation of the container, display the decrypted version of the graphical representation of the container such that the first application that is loaded by the container appears to be available locally on the user device, and encrypt the decrypted version of the graphical representation of the container using the first key for storage;
encrypting a second graphical representation of the container using a second key different than the first key; and
transmitting the encrypted second graphical representation of the container to the user device, wherein reception of the encrypted second graphical representation of the container causes the local application running on the user device to decrypt the encrypted second graphical representation of the container, display the decrypted version of the second graphical representation of the container, and encrypt the decrypted version of the second graphical representation of the container using the second key for storage.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9, wherein the container is initialized within a virtual machine instance.

### Claim 11 (depends on 9)

The computer-implemented method of claim 9, further comprising:
receiving, from the local application, an instruction to open the first application;
causing the container to open the first application;
generating the second graphical representation of the container; and
transmitting the encrypted second graphical representation of the container, wherein reception of the encrypted second graphical representation of the container causes the local application to display the decrypted version of the second graphical representation of the container in place of the decrypted version of the graphical representation of the container.

### Claim 12 (depends on 11)

The computer-implemented method of claim 11, wherein the computer-implemented method further comprises:
determining that a connection with the user device is terminated; and
storing at least one of the container image or the top container layer corresponding to the container in a user data store in response to the determination that the connection with the user device is terminated to preserve an access state of a user operating the user device.

### Claim 13 (depends on 12)

The computer-implemented method of claim 12, further comprising:
determining that the connection with the user device is established;
retrieving at least one of the container image or the top container layer from the user data store;
initializing the container using at least one of the container image or the top container layer such that the container is initialized with the access state of the user;
generating a third graphical representation of the container; and
transmitting the third graphical representation of the container to the user device, wherein reception of the third graphical representation of the container causes the local application to display the third graphical representation of the container.

### Claim 14 (depends on 11)

The computer-implemented method of claim 11, wherein reception of the second graphical representation of the container further causes the local application to delete the graphical representation of the container.

### Claim 15

Non-transitory, computer-readable storage media comprising computer-executable instructions for executing remote applications, wherein the computer-executable instructions, when executed by a computer system accessible via a network, cause the computer system to perform operations comprising:
processing a request to access a first application received from the user device via the network;
retrieving first source files for the first application;
initializing a container formed from a container image and a top container layer, wherein the top container layer stores changes to the container, and wherein the container shares an operating system with other containers initialized by the computer system and is isolated from the other containers;
causing the container to load the first application using the first source files;
generating a graphical representation of the container;
encrypting the graphical representation of the container using a first key;
transmitting the encrypted graphical representation of the container to the user device, wherein reception of the encrypted graphical representation of the container causes the user device to decrypt the encrypted graphical representation of the container, display the decrypted version of the graphical representation of the container, and encrypt the decrypted version of the graphical representation of the container using the first key for storage;
encrypting a second graphical representation of the container using a second key different than the first key; and
transmitting the encrypted second graphical representation of the container to the user device, wherein reception of the encrypted second graphical representation of the container causes the local application running on the user device to decrypt the encrypted second graphical representation of the container, display the decrypted version of the second graphical representation of the container, and encrypt the decrypted version of the second graphical representation of the container using the second key for storage.

### Claim 16 (depends on 15)

The non-transitory, computer-readable storage media of claim 15, wherein the computer-executable instructions, when executed, further cause the computer system to perform operations comprising:
processing an instruction to open the first application received from the user device;
causing the container to open the first application;
generating the second graphical representation of the container; and
transmitting the encrypted second graphical representation of the container, wherein reception of the encrypted second graphical representation of the container causes the user device to display the decrypted version of the second graphical representation of the container in place of the decrypted version of the graphical representation of the container.

### Claim 17 (depends on 16)

The non-transitory, computer-readable storage media of claim 16, wherein the computer-executable instructions, when executed, further cause the computer system to perform operations comprising:
determining that a connection with the user device is terminated; and
storing at least one of the container image or the top container layer corresponding to the container in a user data store in response to the determination that the connection with the user device is terminated to preserve an access state of a user operating the user device.

### Claim 18 (depends on 17)

The non-transitory, computer-readable storage media of claim 17, wherein the computer-executable instructions, when executed, further cause the computer system to perform operations comprising:
determining that the connection with the user device is established;
retrieving at least one of the container image or the top container layer from the user data store;
initializing the container using at least one of the container image or the top container layer such that the container is initialized with the access state of the user;
generating a third graphical representation of the container; and
transmitting the third graphical representation of the container to the user device, wherein reception of the third graphical representation of the container causes the local application to display the third graphical representation of the container.
