# US 10,769,609 B2 · Network security based on proximity with IP whitelisting

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

- Number: US 10,769,609 B2
- Document ID: US10769609B2
- Status: Granted
- Kind: B2
- Application number: 15/447,034
- Filed: 2017-03-01
- Published: 2017-09-07
- Granted: 2020-09-08
- Earliest claimed: 2016-03-01
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Sashikanth Chandrasekaran; Yilei Wang; Pramod Adiddam; Zhihong Xu; Varouj Chitilian
- Web page: https://patentgrep.com/patent/US10769609B2

## CPC

- G06Q 20/202: {Interconnection or interaction of plural electronic cash registers [ECR] or to host computer, e.g. network details, transfer of information from host to ECR or from ECR to ECR}
- G06Q 20/20: Point-of-sale [POS] network systems
- G06Q 20/3224: {Transactions dependent on location of M-devices}
- G06Q 20/3829: {involving key management}
- H04L 63/0492: {by using a location-limited connection, e.g. near-field communication or limited proximity of entities}
- H04L 63/101: {Access control lists [ACL]}
- H04L 63/107: {wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals}
- G06Q 2220/00: Business processing using cryptography
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/083: {using passwords (cryptographic mechanisms or cryptographic arrangements for entity authentication using a predetermined code H04L9/3226)}
- H04L 63/10: {for controlling access to devices or network resources}
- H04W 12/08: Access security
- H04W 12/63: Location-dependent; Proximity-dependent
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- 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

A processing system periodically configures a beacon code and random nonce to transmit to a beacon device at a location. Multiple users enter the location with associated user computing devices and retransmit the beacon code broadcasted by the beacon device to the processing system. A computing device at the location transmits to the processing system a request for account data comprising a hardware identifier and retransmits the beacon code and a random nonce. The processing system verifies the request based on the beacon code and random nonce and transmits, to the computing device at the location, user account identifiers associated with user computing devices that retransmitted the beacon code. Within a threshold period of time, the processing system may verify a subsequent request from the computing device, even without receiving the beacon code and random nonce, if the request comprises the hardware identifier.

## Claims

### Claim 1

A computer-implemented method to designate trusted service computing devices, comprising:
by a payment processing computing system:
transmitting, to a beacon computing device, an encrypted random nonce, wherein the beacon computing device broadcasts the encrypted random nonce at a location;
receiving, from a service computing device at the location at a first time, a first request for first user account information associated with one or more user computing devices located at the location at the first time, the first request comprising a service computing device identifier and an unencrypted version of the encrypted random nonce;
determining that the service computing device is authorized to receive the first user account information based on determining that the received unencrypted version of the encrypted random nonce corresponds to a first random nonce associated with the service computing device;
in response to determining that the service computing device is authorized to receive the first user account information:
designating the received service computing device identifier as an approved service computing device identifier; and
transmitting, to the service computing device, first user account information;
receiving, from the service computing device at a second time after transmitting the first user account information, a second request for second user account information associated with one or more user computing devices located at the location at the second time, the second request comprising the service computing device identifier; and
in response to determining that the received service computing device identifier is designated as an approved service computing device identifier, transmitting, to the service computing device, the second user account information.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising, by the payment processing computing system:
configuring a user name and a password for the service computing device;
storing the user name and the password on a memory of the payment processing computing system, wherein the first request for first user account information comprises the user name and the password, and wherein determining that the service computing device is authorized to receive the first user account information is further based on determining that the user name and the password received in the first request for first user account information correspond to the stored user name and the stored password.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising, by the payment processing computing system:
generating the first random nonce;
associating the first random nonce with the service computing device; and
encrypting the first random nonce using an encryption key to generate the encrypted random nonce.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, further comprising, by the payment processing computing system, transmitting, to the service computing device, the encryption key, wherein the service computing device decrypts the encrypted random nonce via the encryption key to determine the unencrypted version of the encrypted random nonce.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, further comprising, by the payment processing computing system, storing the received service computing device identifier in a list of approved service computing device identifiers, wherein determining that the received service computing device identifier is designated as an approved service computing device identifier comprises determining that the received service computing device identifier is listed in the stored list of approved service computing device identifiers.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, further comprising, by the payment processing computing system, transmitting, to the beacon computing device, a beacon device code, wherein the beacon computing device broadcasts the beacon device code at the location, wherein the first request for first user account information further comprises the beacon device code, and wherein determining that the service computing device is authorized to receive the first user account information further comprises determining that the received beacon device code corresponds to the transmitted beacon device code.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the service computing device processes a first service request based on a particular account identifier from the transmitted first user account information corresponding to a particular user of a particular user computing device of the one or more user computing devices located at the location at the first time.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the service computing device comprises a point of sale computing device.

### Claim 9

A computer program product to designate trusted service computing devices, comprising:
a non-transitory computer-readable medium having computer-executable program instructions embodied thereon that when executed by one or more computing devices cause the one or more computing devices to:
transmit, to a beacon computing device, an encrypted random nonce, wherein the beacon computing device broadcasts the encrypted random nonce at a location;
receive, from a service computing device at the location at a first time, a first request for first user account information associated with one or more user computing devices located at the location at the first time, the first request comprising a service computing device identifier and an unencrypted version of the encrypted random nonce;
determine that the service computing device is authorized to receive the first user account information based on determining that the received unencrypted version of the encrypted random nonce corresponds to a first random nonce associated with the service computing device;
in response to determining that the service computing device is authorized to receive the first user account information:
designate the received service computing device identifier as an approved service computing device identifier; and
transmit, to the service computing device, first user account information;
receive, from the service computing device at a second time after transmitting the first user account information, a second request for second user account information associated with one or more user computing devices located at the location at the second time, the second request comprising the service computing device identifier; and
in response to determining that the received service computing device identifier is designated as an approved service computing device identifier, transmit, to the service computing device, the second user account information.

### Claim 10 (depends on 9)

The computer program product of claim 9, the non-transitory computer-readable medium further having computer-executable program instructions embodied thereon that when executed by the one or more computing devices cause the one or more computing devices to:
configure the user name and the password for the service computing device; and
store the user name and the password on a memory of the one or more computing devices, wherein the first request for first user account information comprises the user name and the password, and wherein determining that the service computing device is authorized to receive the first user account information is further based on determining that the user name and the password received in the first request for first user account information correspond to the stored user name and the stored password.

### Claim 11 (depends on 9)

The computer program product of claim 9, the non-transitory computer-readable medium further having computer-executable program instructions embodied thereon that when executed by the one or more computing devices cause the one or more computing devices to:
generate the first random nonce;
associate the first random nonce with the service computing device; and
encrypt the first random nonce using an encryption key to generate the encrypted random nonce.

### Claim 12 (depends on 11)

The computer program product of claim 11, the non-transitory computer-readable medium further having computer-executable program instructions embodied thereon that when executed by the one or more computing devices cause the one or more computing devices to transmit, to the service computing device, the encryption key, wherein the service computing device decrypts the encrypted random nonce via the encryption key to determine the unencrypted version of the encrypted random nonce.

### Claim 13 (depends on 9)

The computer program product of claim 9, the non-transitory computer-readable medium further having computer-executable program instructions embodied thereon that when executed by the one or more computing devices cause the one or more computing devices to store the received service computing device identifier in a list of approved service computing device identifiers, wherein determining that the received service computing device identifier is designated as an approved service computing device identifier comprises determining that the received service computing device identifier is listed in the stored list of approved service computing device identifiers.

### Claim 14 (depends on 9)

The computer program product of claim 9, the non-transitory computer-readable medium further having computer-executable program instructions embodied thereon that when executed by the one or more computing devices cause the one or more computing devices to transmit, to the beacon computing device, a beacon device code, wherein the broadcasting beacon computing device broadcasts the beacon device code at the location, wherein the first request for first user account information further comprises the beacon device code, wherein determining that the service computing device is authorized to receive the first user account information further comprises determining that the received beacon device code corresponds to the transmitted beacon device code.

### Claim 15 (depends on 9)

The computer program product of claim 9, wherein the service computing device processes a first service request based on a particular account identifier of the transmitted first user account information corresponding to a particular user of a particular user computing device of the one or more user computing devices located at the location at the first time.

### Claim 16

A system to designate trusted service computing devices, comprising:
a storage device; and
a processor communicatively coupled to the storage device, wherein the processor executes application code instructions that are stored in the storage device to cause the system to:
transmit, to a beacon computing device, an encrypted random nonce, wherein the beacon computing device broadcasts the encrypted random nonce at a location;
receive, from a service computing device at the location at a first time, a first request for first user account information associated with one or more user computing devices located at the location at the first time, the first request comprising a service computing device identifier and an unencrypted version of the encrypted random nonce;
determine that the service computing device is authorized to receive the first user account information based on determining that the received unencrypted version of the encrypted random nonce corresponds to a first random nonce associated with the service computing device;
in response to determining that the service computing device is authorized to receive the first user account information:
designate the received service computing device identifier as an approved service computing device identifier; and
transmit, to the service computing device, first user account information;
receive, from the service computing device at a second time after transmitting the first user account information, a second request for second user account information associated with one or more user computing devices located at the location at the second time, the second request comprising the service computing device identifier; and
in response to determining that the received service computing device identifier is designated as an approved service computing device identifier, transmit, to the service computing device, the second user account information.

### Claim 17 (depends on 16)

The system of claim 16, wherein the processor further executes application code instructions that are stored in the storage device to cause the system to:
configure a user name and a password for the service computing device; and
store the user name and the password on the storage device, wherein the first request for first user account information comprises the user name and the password, and wherein determining that the service computing device is authorized to receive the first user account information is further based on determining that the user name and the password received in the first request for first user account information correspond to the stored user name and the stored password.

### Claim 18 (depends on 16)

The system of claim 16, wherein the processor further executes application code instructions that are stored in the storage device to cause the system to:
generate the first random nonce;
associate the first random nonce with the service computing device; and
encrypt the first random nonce using an encryption key to generate the encrypted random nonce.

### Claim 19 (depends on 18)

The system of claim 18, wherein the processor further executes application code instructions that are stored in the storage device to cause the system to transmit, to the service computing device, the encryption key, wherein the service computing device decrypts the encrypted random nonce via the encryption key to determine the unencrypted version of the encrypted random nonce.

### Claim 20 (depends on 16)

The system of claim 16, wherein the processor further executes application code instructions that are stored in the storage device to cause the system to transmit, to the beacon computing device, a beacon device code, wherein the beacon computing device broadcasts the beacon device code at the location, wherein the first request for first user account information further comprises the beacon device code, wherein determining that the service computing device is authorized to receive the first user account further comprises determining that the received beacon device code corresponds to the transmitted beacon device code.
