# US 8,751,790 B2 · Secure data exchange based on request destination

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

- Number: US 8,751,790 B2
- Document ID: US8751790B2
- Status: Granted
- Kind: B2
- Application number: 13/616,620
- Filed: 2012-09-14
- Published: 2013-03-21
- Granted: 2014-06-10
- Earliest claimed: 1999-06-01
- Assignees: Facebook, Inc.
- Applicants: Larry T. Harada; Mark A. Dolecki; Christopher S Purdum; C. Hudson Hendren, III
- Inventors: Larry T. Harada; Mark A. Dolecki; Christopher S Purdum; C. Hudson Hendren, III
- Web page: https://patentgrep.com/patent/US8751790B2

## CPC

- H04L 63/0281: {Proxies}
- G06Q 20/3821: {Electronic credentials}
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 63/04: {for providing a confidential data exchange among entities communicating through data packet networks}
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/0471: {applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding}
- H04L 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/561: Adding application-functional data or data for application control, e.g. adding metadata
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- 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

A data transfer method performed at a proxy server includes intercepting a data request from a client computer that is directed to a target server, encrypting profile information, augmenting the data request by adding the encrypted profile information to the data request, and sending the augmented data request to the target server. A data transfer method that is performed at an information server includes receiving a data request from a proxy server, extracting profile information added to the data request by the proxy server, using the extracted profile information to generate a response, and sending the response to the proxy server.

## Claims

### Claim 1

A method comprising:
identifying a data request from a client application;
extracting, using at least one processor, a destination web site address from the data request;
based on capabilities of the destination web site, encrypting information based on a predetermined encryption method; and
sending the data request and the encrypted information directly to a web server associated with the web site address.

### Claim 2 (depends on 1)

The method as recited in claim 1, further comprising querying a database to determine the capabilities of the destination web site.

### Claim 3 (depends on 2)

The method as recited in claim 2, further comprising:
identifying a first key based on the destination web site; and
encrypting the information using the first key.

### Claim 4 (depends on 3)

The method as recited in claim 3, further comprising sending a second encrypted key to the web server along with the data request and the encrypted information.

### Claim 5 (depends on 2)

The method as recited in claim 2, further comprising sending a request to the web server for a key file.

### Claim 6 (depends on 5)

The method as recited in claim 5, further comprising:
receiving a first key from the web server; and
using the first key to encrypt the information.

### Claim 7 (depends on 6)

The method as recited in claim 6, further comprising caching the first key subject to a time-to-live value.

### Claim 8 (depends on 1)

The method as recited in claim 1, wherein the information comprises profile information associated with a user of the client device.

### Claim 9 (depends on 1)

The method as recited in claim 1, wherein the client application comprises web browser.

### Claim 10 (depends on 1)

The method as recited in claim 1, further comprising receiving the request from a client device.

### Claim 11

A system comprising:
a non-transitory storage medium storing information associated with a user of a client application; and
at least one processor programmed to:
identify a data request from the client application;
extract a destination web site address from the data request;
encrypt the information associated with the user based on capabilities of the destination web site; and
send the data request and the encrypted information directly to a web server associated with the web site address.

### Claim 12 (depends on 11)

The system as recited in claim 11, wherein the at least one processor is further programmed to query a database to determine the capabilities of the destination web site.

### Claim 13 (depends on 12)

The system as recited in claim 12, wherein the at least one processor is further programmed to:
identify a first key based on the destination web site; and
encrypt the information using the first key.

### Claim 14 (depends on 13)

The system as recited in claim 13, wherein the at least one processor is further programmed to send a second encrypted key to the web server along with the data request and the encrypted information.

### Claim 15 (depends on 12)

The system as recited in claim 12, wherein the at least one processor is further programmed to send a key request to the web server.

### Claim 16 (depends on 15)

The system as recited in claim 15, wherein the at least one processor is further programmed to:
receive a key from the web server; and
use the key to encrypt the information.

### Claim 17 (depends on 16)

The system as recited in claim 16, wherein the at least one processor is further programmed to cache the key subject to a time-to-live value.

### Claim 18 (depends on 11)

The system as recited in claim 11, wherein the information comprises profile information associated with a user of the client device.

### Claim 19

A method comprising:
identifying a data request from a client application;
extracting, using at least one processor, a destination web site address from the data request;
if the destination web site is capable of processing encrypted information:
encrypting information based on a predetermined encryption method; and
sending the data request and the encrypted information directly to a web server associated with the web site address; and
if the destination web site is incapable of processing encrypted information:
sending the data request without the encrypted information directly to the web server associated with the web site address.

### Claim 20 (depends on 19)

The method as recited in claim 19, further comprising receiving the data request from a client device.

### Claim 21 (depends on 19)

The method as recited in claim 19, further comprising:
identifying a first key based on the destination web site; and
encrypting the information using the first key.

### Claim 22 (depends on 21)

The method as recited in claim 21, further comprising sending a second encrypted key to the web server along with the data request and the encrypted information.

### Claim 23 (depends on 19)

The system as recited in claim 19, wherein the information comprises profile information associated with a user of the client device.
