# US 12,001,853 B2 · Device bootstrapping

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

- Number: US 12,001,853 B2
- Document ID: US12001853B2
- Status: Granted
- Kind: B2
- Application number: 16/681,393
- Filed: 2019-11-12
- Published: 2020-06-04
- Granted: 2024-06-04
- Earliest claimed: 2018-12-03
- Assignees: Arm Limited
- Applicants: Arm Limited
- Inventors: Markku Lehto; Szymon Sasin
- Web page: https://patentgrep.com/patent/US12001853B2

## CPC

- G06F 9/4416: {Network booting; Remote initial program loading [RIPL]}
- G06F 16/955: using information identifiers, e.g. uniform resource locators [URL]
- H04L 63/0876: {based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint}
- H04W 12/69: Identity-dependent
- 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)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

The present techniques generally relate to a computer implemented method of accessing a remote resource by an internet-connectable device, the method comprising: receiving, at the device from the bootstrap server, a first plurality of identifiers each identifier associated with a respective connectivity server; selecting, at the device, a first identifier from the first plurality of identifiers; authenticating with a first connectivity server associated with the selected first identifier.

## Claims

### Claim 1

A computer implemented method of accessing a remote resource at a resource server by an internet-connectable device, the method performed at the device, comprising:
establishing secure communications with a bootstrap server;
performing a bootstrap process with the bootstrap server comprising:
receiving, from the bootstrap server, a first plurality of identifiers each identifier associated with one of a respective first plurality of connectivity servers, each connectivity server located at a respective address on the internet with which the device can communicate;
terminating communications with the bootstrap server when the bootstrap process is complete;
determining based on or in response to a rule or policy provisioned thereon during a factory provisioning process, a first identifier to select from the first plurality of identifiers;
selecting the first identifier from the first plurality of identifiers;
establishing secure end-to-end secure communications with a first connectivity server associated with the selected first identifier;
accessing the resource at the resource server via the first connectivity server, where the resource server is hosted on a private network accessible to the device only via the connectivity servers;
when access to the resource server becomes unavailable via the first connectivity server:
determining based on or in response to a rule or policy provisioned thereon during a factory provisioning process, a second identifier to select from the first plurality of identifiers;
selecting the second identifier;
establishing secure end-to-end secure communications with a second connectivity server associated with the selected second identifier;
accessing the resource at the resource server via the second connectivity server,
when access to all the connectivity servers of the first plurality of connectivity servers becomes unavailable:
establishing secure communications with the bootstrap server to perform a further bootstrap process to obtain a second plurality of identifiers each identifier of the second plurality associated with one of a respective second plurality of connectivity servers.

### Claim 2 (depends on 1)

The method of claim 1, further comprising: transmitting, from the device to the first connectivity server, device data.

### Claim 3 (depends on 1)

The method of claim 1, comprising:
receiving, at the device from the bootstrap server, a second plurality of identifiers each identifier associated with one of a respective second plurality of connectivity server;
selecting, at the device, an identifier from the second plurality of identifiers;
authenticating with a connectivity server associated with the selected identifier.

### Claim 4 (depends on 1)

The method of claim 1, wherein selecting the first identifier comprises:
selecting the first identifier based on or in response to one or more of: an instruction, a rule, a policy, a random manner, a pseudorandom manner, and a structured manner.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first plurality of identifiers comprises one or more of: direct identifiers and indirect identifiers.

### Claim 6 (depends on 5)

The method of claim 5, further comprising: resolving an indirect identifier to a direct identifier.

### Claim 7 (depends on 5)

The method of claim 5, wherein a direct identifier comprises an internet protocol (IP) address.

### Claim 8 (depends on 5)

The method of claim 5, wherein an indirect identifier comprises one of: a fully qualified domain name (FQDN), a Uniform Resource Locator (URL)), a Uniform Resource Indicator (URI) and a Uniform Resource Name (URN).

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
transmitting, from the device to a bootstrap server, a bootstrap request to initiate a bootstrap process with the bootstrap server.

### Claim 10

An internet-connectable device to:
establishing secure communications with a bootstrap server;
performing a bootstrap process with the bootstrap server:
receive from the bootstrap server in the bootstrap process, a first plurality of identifiers each identifier associated with a respective first plurality of connectivity servers, each connectivity server located at a respective address on the internet with which the device can communicate;
terminate communications with the bootstrap server when the bootstrap process is complete;
determine, based on or in response to a rule or policy provisioned thereon during a factory provisioning process, a first identifier to select from the first plurality of identifiers;
select the first identifier;
establish secure end-to-end secure communications with first connectivity server associated with the selected first identifier; access the resource at a resource server via the first connectivity server, where the resource server is hosted on a private network accessible to the device only via the connectivity servers;
when access to the resource server becomes unavailable via the first connectivity server:
determine based on or in response to a rule or policy provisioned thereon during the factory provisioning process, a second identifier to select from the first plurality of identifiers;
select the second identifier;
establish secure end-to-end secure communications with a second connectivity server associated with the selected second identifier;
access the resource at the resource server via the second connectivity server;
when access to all the connectivity servers of the first plurality of connectivity servers becomes unavailable:
establish secure communications with the bootstrap server to perform a further bootstrap process to obtain a second plurality of identifiers each identifier of the second plurality associated with one of a respective second plurality of connectivity server.

### Claim 11

A computer implemented method of bootstrapping an internet-connectable device by a bootstrap server, the method comprising:
establishing secure communications with the device;
performing a bootstrap process with the device: transmitting, from the bootstrap server to the device in the bootstrap process, credential data comprising a first plurality of identifiers, each identifier in the first plurality of identifiers associated with a respective connectivity server, each connectivity server located at a respective address on the internet with which the device can communicate,
terminating communications with the device when the bootstrap process is complete, wherein the credential data is to:
provide the device with the first plurality of identifiers from which the device, based on or in response to a rule or policy provisioned thereon during a factory provisioning process, determines a first identifier to select and establish secure end-to-end secure communications with a first connectivity server associated with the first identifier, to access a resource server via the first connectivity server, and when access to all the connectivity servers associated with the first plurality of connectivity servers becomes unavailable the bootstrap server is to:
establish secure communications with the device to perform a further bootstrap process to provide a second plurality of identifiers each identifier of the second plurality associated with one of a respective second plurality of connectivity server via which the device can access the resource server.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
receiving, at the bootstrap server, a first bootstrap request from the device to perform a bootstrap process with the device.

### Claim 13 (depends on 11)

The method of claim 11, comprising:
receiving, at the bootstrap server, from an administrator server, a set of identifiers; selecting, at the bootstrap server, the first plurality of identifiers from the set of identifiers.

### Claim 14 (depends on 13)

The method of claim 13, wherein selecting the first plurality of identifiers from the set of identifiers comprises:
selecting the first plurality of identifiers based on or in response to one or more of: characteristic data of a plurality of connectivity servers and credential data of the device.

### Claim 15 (depends on 11)

The method of any of claim 11, further comprising:
transmitting, to the device, credential data comprising a second plurality of identifiers, each identifier in the second plurality associated with a respective connectivity server, the credential data comprising the second plurality of identifiers to render the device operable to select a second identifier from the second plurality of identifiers and authenticate with a connectivity server associated with the second identifier.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
receiving, at the bootstrap server, a bootstrap request from the device.
