# US 2018/0324181 A1 · Address validation using signatures

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

- Number: US 2018/0324181 A1
- Document ID: US20180324181A1
- Status: Published application
- Kind: A1
- Application number: 16/031,525
- Filed: 2018-07-10
- Published: 2018-11-08
- Earliest claimed: 2015-05-20
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Benjamin C. Serebrin
- Web page: https://patentgrep.com/patent/US20180324181A1

## CPC

- H04L 63/0876: {based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint}
- G06F 12/1081: for peripheral access to main memory, e.g. direct memory access [DMA]
- G06F 12/1408: {by using cryptography (for digital transmission H04L9/00)}
- G06F 12/1475: {in a virtual system, e.g. with translation means}
- G06F 21/79: in semiconductor storage media, e.g. directly-addressable memories
- H04L 9/3247: {involving digital signatures}
- 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/164: {at the network layer}
- G06F 2212/1052: Security improvement
- 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

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for generating signed addresses. One of the methods includes receiving, by a component from a device, a plurality of first requests, each first request for a physical address and including a virtual address, determining, by the component, a first physical address using the virtual address, generating a first signature for the first physical address, and providing, to the device, a response that includes the first signature, receiving, from the device, a plurality of second requests, each second request for access to a second physical address and including a second signature, determining, by the component for each of the plurality of second requests, whether the second physical address is valid using the second signature, and for each second request for which the second physical address is determined to be valid, servicing the corresponding second request.

## Claims

### Claim 1

(canceled)

### Claim 2

A system comprising a data processing apparatus, and a non-transitory computer readable storage medium in data communication with the data processing apparatus and storing instructions executable by the data processing apparatus and upon such execution cause the data processing apparatus to perform operations comprising:
receiving, from a data retrieval device, a response to a request to access a memory location, the response including data responsive to a memory access request, one or more device identifiers including a destination device identifier for a requesting device that sent the memory access request, and one or more signatures that each correspond to one of the one or more device identifiers including a signature for the requesting device;
in response to receiving the response, determining whether to provide the data responsive to the memory access request to the requesting device using the one or more signatures and the one or more device identifiers; and
in response to determining to provide the data responsive to the memory access request to the requesting device, sending the data responsive to the memory access request to the requesting device.

### Claim 3 (depends on 2)

The system of claim 2, the operations comprising:
receiving, from the requesting device, the memory access request; and
in response to receiving the memory access request, sending, to the data retrieval device, a request for data responsive to the memory access request, wherein receiving the response is responsive to sending, to the data retrieval device, the request for data responsive to the memory access request.

### Claim 4 (depends on 3)

The system of claim 3, wherein:
the memory access request includes a memory address that identifies the data responsive to the memory access request;
the request includes the memory address; and
determining whether to provide the data responsive to the memory access request to the requesting device comprises determining whether to provide the data responsive to the memory access request to the requesting device using the memory address.

### Claim 5 (depends on 2)

The system of claim 2, wherein:
the response comprises the destination device identifier, a source device identifier for the data retrieval device, a first signature for the requesting device, and a second signature for the data retrieval device; and
determining whether to provide the data responsive to the memory access request to the requesting device is performed using the destination device identifier, the source device identifier, the first signature, and the second signature.

### Claim 6 (depends on 5)

The system of claim 5, wherein:
determining whether to provide the data responsive to the memory access request to the requesting device comprises:
determining a first reference signature for the requesting device using the destination device identifier;
determining a second reference signature for the data retrieval device using the source device identifier;
comparing the first reference signature with the first signature for the requesting device;
comparing the second reference signature with the second signature for the data retrieval device; and
determining, using a result of the comparisons, whether the reference signatures are the same as the corresponding signatures from the one or more signatures; and
sending the data responsive to the memory access request to the requesting device is responsive to determining that the reference signatures are the same as the corresponding signatures from the one or more signatures.

### Claim 7 (depends on 2)

The system of claim 2, wherein determining whether to provide the data responsive to the memory access request to the requesting device using the one or more signatures and the destination device identifier comprises:
for each of the one or more device identifiers included in the response:
determining a reference signature using the device identifier; and
comparing the reference signature with a corresponding signature from the one or more signatures included in the response; and
determining whether to provide the data responsive to the memory access request to the requesting device based on a result of the comparison of the one or more reference signatures with the corresponding signatures from the one or more signatures.

### Claim 8 (depends on 7)

The system of claim 7, wherein sending the data responsive to the memory access request to the requesting device is performed in response to determining that each of the one or more reference signatures is the same as the corresponding signature from the one or more signatures.

### Claim 9 (depends on 7)

The system of claim 7, the operations comprising:
determining to discard second data responsive to a second memory access request when at least one reference signature is different than a corresponding signature from one or more second signatures included in a second response that includes second data responsive to the second memory access request.

### Claim 10

A computer-implemented method comprising:
receiving, from a data retrieval device, a response to a request to access a memory location, the response including data responsive to a memory access request, one or more device identifiers including a destination device identifier for a requesting device that sent the memory access request, and one or more signatures that each correspond to one of the one or more device identifiers including a signature for the requesting device;
in response to receiving the response, determining whether to provide the data responsive to the memory access request to the requesting device using the one or more signatures and the one or more device identifiers; and
in response to determining to provide the data responsive to the memory access request to the requesting device, sending the data responsive to the memory access request to the requesting device.

### Claim 11 (depends on 10)

The method of claim 10, comprising:
receiving, from the requesting device, the memory access request; and
in response to receiving the memory access request, sending, to the data retrieval device, a request for data responsive to the memory access request, wherein receiving the response is responsive to sending, to the data retrieval device, the request for data responsive to the memory access request.

### Claim 12 (depends on 11)

The method of claim 11, wherein:
the memory access request includes a memory address that identifies the data responsive to the memory access request;
the request includes the memory address; and
determining whether to provide the data responsive to the memory access request to the requesting device comprises determining whether to provide the data responsive to the memory access request to the requesting device using the memory address.

### Claim 13 (depends on 10)

The method of claim 10, wherein:
the response comprises the destination device identifier, a source device identifier for the data retrieval device, a first signature for the requesting device, and a second signature for the data retrieval device; and
determining whether to provide the data responsive to the memory access request to the requesting device is performed using the destination device identifier, the source device identifier, the first signature, and the second signature.

### Claim 14 (depends on 13)

The method of claim 13, wherein:
determining whether to provide the data responsive to the memory access request to the requesting device comprises:
determining a first reference signature for the requesting device using the destination device identifier;
determining a second reference signature for the data retrieval device using the source device identifier;
comparing the first reference signature with the first signature for the requesting device;
comparing the second reference signature with the second signature for the data retrieval device; and
determining, using a result of the comparisons, whether the reference signatures are the same as the corresponding signatures from the one or more signatures; and
sending the data responsive to the memory access request to the requesting device is responsive to determining that the reference signatures are the same as the corresponding signatures from the one or more signatures.

### Claim 15 (depends on 10)

The method of claim 10, wherein determining whether to provide the data responsive to the memory access request to the requesting device using the one or more signatures and the destination device identifier comprises:
for each of the one or more device identifiers included in the response:
determining a reference signature using the device identifier; and
comparing the reference signature with a corresponding signature from the one or more signatures included in the response; and
determining whether to provide the data responsive to the memory access request to the requesting device based on a result of the comparison of the one or more reference signatures with the corresponding signatures from the one or more signatures.

### Claim 16 (depends on 15)

The method of claim 15, wherein sending the data responsive to the memory access request to the requesting device is performed in response to determining that each of the one or more reference signatures is the same as the corresponding signature from the one or more signatures.

### Claim 17 (depends on 15)

The method of claim 15, comprising:
determining to discard second data responsive to a second memory access request when at least one reference signature is different than a corresponding signature from one or more second signatures included in a second response that includes second data responsive to the second memory access request.

### Claim 18

A non-transitory computer readable storage medium storing instructions executable by a data processing apparatus and upon such execution cause the data processing apparatus to perform operations comprising:
receiving, from a data retrieval device, a response to a request to access a memory location, the response including data responsive to a memory access request, one or more device identifiers including a destination device identifier for a requesting device that sent the memory access request, and one or more signatures that each correspond to one of the one or more device identifiers including a signature for the requesting device;
in response to receiving the response, determining whether to provide the data responsive to the memory access request to the requesting device using the one or more signatures and the one or more device identifiers; and
in response to determining to provide the data responsive to the memory access request to the requesting device, sending the data responsive to the memory access request to the requesting device.

### Claim 19 (depends on 18)

The computer readable storage medium of claim 18, the operations comprising:
receiving, from the requesting device, the memory access request; and
in response to receiving the memory access request, sending, to the data retrieval device, a request for data responsive to the memory access request, wherein receiving the response is responsive to sending, to the data retrieval device, the request for data responsive to the memory access request.

### Claim 20 (depends on 19)

The computer readable storage medium of claim 19, wherein:
the memory access request includes a memory address that identifies the data responsive to the memory access request;
the request includes the memory address; and
determining whether to provide the data responsive to the memory access request to the requesting device comprises determining whether to provide the data responsive to the memory access request to the requesting device using the memory address.

### Claim 21 (depends on 18)

The computer readable storage medium of claim 18, wherein:
the response comprises the destination device identifier, a source device identifier for the data retrieval device, a first signature for the requesting device, and a second signature for the data retrieval device; and
determining whether to provide the data responsive to the memory access request to the requesting device is performed using the destination device identifier, the source device identifier, the first signature, and the second signature.
