# US 11,308,228 B1 · Providing access for online content via secured URL

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

- Number: US 11,308,228 B1
- Document ID: US11308228B1
- Status: Granted
- Kind: B1
- Application number: 16/662,253
- Filed: 2019-10-24
- Granted: 2022-04-19
- Earliest claimed: 2019-10-24
- Assignees: Whatsapp Inc.
- Applicants: WhatsApp Inc.
- Inventors: Cheng Tian
- Web page: https://patentgrep.com/patent/US11308228B1

## CPC

- H04L 63/12: {Applying verification of the received information (cryptographic mechanisms or cryptographic arrangements for data integrity or data verification H04L9/32)}
- G06F 9/451: Execution arrangements for user interfaces
- G06F 21/62: Protecting access to data via a platform, e.g. using keys or access control rules
- G06F 21/6209: {to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself}
- G06Q 20/1235: {with control of digital rights management [DRM]}
- G06Q 20/3255: {using mobile network messaging services for payment, e.g. SMS}
- G06Q 20/326: {Payment applications installed on the mobile devices}
- G06Q 20/3672: {initialising or reloading thereof}
- G06Q 20/3674: {involving authentication}
- G06Q 20/3821: {Electronic credentials}
- G06Q 20/3829: {involving key management}
- G06Q 20/384: {using social networks}
- H04L 9/3073: {involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing}
- H04L 9/3247: {involving digital signatures}
- H04L 51/046: Interoperability with other network applications or services
- H04L 51/214: using selective forwarding
- H04L 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- H04L 67/561: Adding application-functional data or data for application control, e.g. adding metadata
- G06Q 2220/10: Usage protection of distributed data files
- H04L 51/18: Commands or executable codes
- H04L 63/0823: {using certificates (cryptographic mechanisms or cryptographic arrangements for entity authentication involving certificates H04L9/3263)}
- 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)
- 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

## Abstract

Exemplary embodiments are directed to a method for allowing a user at a first client device to provide access to restricted content on a content provider server to a user at a second client device without providing identifying information of the second client device or the user to the content provider. The content provider receives a request from a messaging app on a first client device for sharing of a content item with a second client device and generates a metadata block comprising at least a link to the content item. The metadata block is sent to the first client device and, in response, a public key of a private/public key pair of the second client device is received from the first client device. A request for the content item, is then received and contains a data item digitally signed using the private key of the private/public key pair of the second client device. The public key is then used to verify the digitally signed data item, thereby confirming the identity of the second client device. Thereafter, the requested content item is sent to the second client device.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving, at a content provider, a request from a messaging app on a first client device for sharing of a content item with a second client device;
generating a metadata block comprising at least a link to the content item;
sending the metadata block to the first client device;
receiving, from the first client device, verifying information sufficient to verify the second client device, wherein the verifying information is a public key of a private/public key pair of the second client device;
receiving a request for the content item, the request comprising the link and authentication information, wherein the authentication information is a data item digitally signed using the private key of the private/public key pair;
verifying that the request originated from the second client device by verifying the authentication information using the verifying information; and
sending, to the second client device, the content item.

### Claim 2 (depends on 1)

The method of claim 1 further comprising:
storing the metadata block in a local database; and
storing the verifying information in the local database associated with the metadata block.

### Claim 3 (depends on 1)

The method of claim 1 wherein the data item is an iteration count indicating how many times the second client device has requested the content item, further comprising:
determining, before sending the content item to the second client device, that the iteration count is greater than a corresponding iteration count stored by the content provider in the local database in association with the metadata block and verifying information.

### Claim 4 (depends on 1)

The method of claim 1, further comprising, prior to sending the maid a data block to the first client device:
sending the metadata block and identifying information of the content provider to a messaging server associated with the messaging app on the first client device; and
receiving a digitally signed copy of the metadata block from the messaging server.

### Claim 5 (depends on 1)

The method of claim 1 wherein the metadata block contains data regarding payment required for the content item, further comprising:
receiving, from the first client device, a payment token indicating that payment for the content item has been handled through a messaging server associated with the messaging app; and
verifying, with the messaging server, the payment using the payment token.

### Claim 6 (depends on 1)

The method of claim 1 wherein the metadata block further comprises a rendering schema indicating, to the first client device, how a notification message sent between the first client device and the second client device should be rendered in a user interface of the messaging app on the first client device.

### Claim 7

A system comprising:
a processor; and
a memory containing instructions that, when executed, cause the processor to:
receive a request from a messaging app on a first client device for sharing of a content item with a second client device;
generate a metadata block comprising at least a link to the content item;
send the metadata block to the first client device;
receive, from the first client device, verifying information sufficient to verify the second client device, wherein the verifying information is a public key of a private/public key pair of the second client device;
receive a request for the content item, the request comprising the link and authentication information, wherein the authentication information is a data item digitally signed using the private key of the private/public key pair;
verify that the request originated from the second client device by verifying the authentication information using the verifying information; and
send, to the second client device, the content item.

### Claim 8 (depends on 7)

The system of claim 7 comprising further instructions that cause the processor to:
store the metadata block in a local database; and
store the verifying information in the local database associated with the metadata block.

### Claim 9 (depends on 7)

The system of claim 7 wherein the data item is an iteration count indicating how many times the second client device has requested the content item, comprising further instructions that cause the processor to:
determine, before sending the content item to the second client device, that the iteration count is greater than a corresponding iteration count stored by the content provider in the local database in association with the metadata block and verifying information.

### Claim 10 (depends on 7)

The system of claim 7, comprising further instructions that cause the processor, prior to sending the maid a data block to the first client device, to:
send the metadata block and identifying information of the content provider to a messaging server associated with the messaging app on the first client device; and
receive a digitally signed copy of the metadata block from the messaging server.

### Claim 11 (depends on 7)

The system of claim 7 wherein the metadata block contains data regarding payment required for the content item, comprising further instructions that cause the processor to:
receive, from the first client device, a payment token indicating that payment for the content item has been handled through a messaging server associated with the messaging app; and
verify, with the messaging server, the payment using the payment token.

### Claim 12 (depends on 7)

The system of claim 7 wherein the metadata block further comprises a rendering schema indicating, to the first client device, how a notification message sent between the first client device and the second client device should be rendered in a user interface of the messaging app on the first client device.

### Claim 13

A non-transitory, computer-readable storage medium containing instructions that, when executed by a processor, cause the processor to:
receive, a request from a messaging app on a first client device for sharing of a content item with a second client device;
generate a metadata block comprising at least a link to the content item;
send the metadata block to the first client device;
receive, from the first client device, verifying information sufficient to verify the second client device, wherein the verifying information is a public key of a private/public key pair of the second client device;
receive a request for the content item, the request comprising the link and authentication information, wherein the authentication information is a data item digitally signed using the private key of the private/public key pair;
verify that the request originated from the second client device by verifying the authentication information using the verifying information; and
send, to the second client device, the content item.

### Claim 14 (depends on 13)

The medium of claim 13 comprising further instructions that cause the processor to:
store the metadata block in a local database; and
store the verifying information in the local database associated with the metadata block.

### Claim 15 (depends on 13)

The medium of claim 13 wherein the data item is an iteration count indicating how many times the second client device has requested the content item, the medium comprising further instructions that cause the processor to:
determine, before sending the content item to the second client device, that the iteration count is greater than a corresponding iteration count stored by the content provider in the local database in association with the metadata block and verifying information.

### Claim 16 (depends on 13)

The medium of claim 13, comprising further instructions that cause the processor, prior to sending the maid a data block to the first client device, to:
send the metadata block and identifying information of the content provider to a messaging server associated with the messaging app on the first client device; and
receive a digitally signed copy of the metadata block from the messaging server.

### Claim 17 (depends on 13)

The medium of claim 13 wherein the metadata block contains data regarding payment required for the content item, comprising further instructions that cause the processor to:
receive, from the first client device, a payment token indicating that payment for the content item has been handled through a messaging server associated with the messaging app; and
verify, with the messaging server, the payment using the payment token.
