IP Library Granted Patent US 10,044,679
Granted Patent B2
US 10,044,679 · App. 15/069,755 · Granted Aug 7, 2018

System and method for proxy-based privacy protection

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,044,679
App. No.
15/069,755
Granted
Aug 7, 2018
Kind
B2
Abstract

User privacy while browsing the Internet can be preserved by reversing the man-in-the-middle attack using a distributed network of proxy servers. The proxy servers receive user requests to load webpages of interest to a user and simulate the user's web-browsing activity by retrieving the target webpage from a target server. The proxy servers remove elements that could be used to track the user from the retrieved webpages by creating a representation of a version of the page without the tracking elements, which is provided to the user. By interacting with the target servers, the proxy servers protect the user from being tracked by the target servers. Further, by observing the user's browsing activity, the proxy servers can build a profile of the users that can be used to supplement content provided to user. The user can edit the profile and thus can control the information stored on the network.

Claims (50)

1. A system for proxy-based privacy protection, comprising:

one or more proxy servers, each of the proxy servers comprising a non-transitory computer readable storage medium comprising program code and a computer processor coupled to the storage medium and configured to execute the code to perform steps of:

receiving from at least one computing device associated with a user one or more requests to provide a webpage stored on at least one target server, wherein the at least one computing device is configured to display to the user a visual rendering of each of the requested webpages;

for each of the requests, retrieving the requested webpage from the target server;

for each of the retrieved webpages, parsing the webpage into one or more elements, creating the visual rendering of the webpage based on one or more of the parsed elements, and identifying visual components of the webpage in the visual rendering, the visual components comprising at least one of text and one or more images, that are present in the in the visual rendering when the visual rendering is displayed;

for each of the parsed webpages, creating using one or more of the visual components identified in the visual rendering for that webpage a representation of a version of the parsed webpage reconstructed without one or more of the visual components identified in the rendering for that webpage;

for each of the representations, providing by one of the proxy servers the representation to the computing device, wherein the computing device displays the reconstructed version of the webpage comprising one or more of the visual components using the representation for that webpage and the displayed reconstructed version differs from the visual representation of the webpage;

analyzing the requested webpages;

deriving one or more characteristics of the user based on the analysis;

creating a profile of the user, the profile comprising the derived characteristics; and

storing the profile in a storage interfaced to the proxy servers.

2. A system according to claim 1 , further comprising: a load balancer configured to receive each of the requests and to randomly assign each of the requests to the proxy servers.

3. A system according to claim 1 , wherein the one or more parsed elements not present in the reconstructed webpage comprise tracking elements.

4. A system according to claim 1 , the steps further comprising:

encrypting the user profile prior to storing the user profile;

receiving an decryption key from the computing device; and

decrypting the user profile using the key upon the receipt of the key.

5. A system according to claim 1 , the steps further comprising:

editing the user profile based on an input from the user.

6. A system according to claim 1 , the steps further comprising:

selecting one or more additional components for one or more of the parsed webpages based on the user profile,

wherein one or more of the representation is further created based on one or more of the additional elements.

7. A system according to claim 6 , wherein the additional components comprise advertisements.

8. A system according to claim 1 , wherein each of the proxy servers is associated with an Internet Protocol (IP) address different from the IP addresses of the remaining proxy servers.

9. A system according to claim 1 , wherein the computing device executes a web-browser comprising a plug-in for connecting to the load balancer.

10. A method for proxy-based privacy protection, comprising:

receiving one or more proxy servers one or more requests from at least one computing device associated with a user to provide a webpage stored on at least one target server, wherein the at least one computing device is configured to display to the user a visual rendering of each of the requested webpages;

for each of the requests, retrieving by one of the proxy servers the requested webpage from the target server;

for each of the retrieved webpages, parsing by one of the proxy servers the webpage into one or more elements, creating the visual rendering the webpage based on one or more of the parsed elements, and identifying visual components of the webpage in the visual rendering, the visual components comprising at least one of text and one or more images, that are present in the visual rendering when the visual rendering is displayed;

for each of the parsed webpages, creating using one or more of the visual components identified in the visual rendering for that webpage by the proxy server a representation of a version of the parsed webpage reconstructed without one or more of the visual components identified in the visual rendering for that webpage;

for each of the representations, providing by one of the proxy servers the representation to the computing device, wherein the computing device displays the reconstructed version of the webpage comprising one or more of the visual components using the representation for that webpage and the displayed reconstructed version differs from the visual representation of the webpage;

analyzing by one or more of the proxy servers the requested webpages;

deriving by one or more of the proxy servers one or more characteristics of the user based on the analysis;

creating by one or more of the proxy servers a profile of the user, the profile comprising the derived characteristics; and

storing by one or more of the proxy servers the profile in a storage interfaced to the proxy servers.

11. A method according to claim 10 , wherein each of the requests is received by a load balancer, further comprising:

randomly assigning the requests to the proxy servers by the load balancer.

12. A method according to claim 10 , the one or more parsed elements not present in the reconstructed webpage comprise tracking elements.

13. A method according to claim 10 , further comprising:

encrypting the user profile prior to storing the user profile;

receiving a decryption key from the computing device; and

decrypting the user profile using the key upon the receipt of the key.

14. A method according to claim 10 , further comprising:

editing the user profile based on an input from the user.

15. A method according to claim 10 , further comprising:

selecting one or more additional components for one or more of the parsed webpages based on the user profile,

wherein one or more of the representation is further created based on one or more of the additional elements.

16. A method according to claim 15 , wherein the additional components comprise advertisements.

17. A method according to claim 10 , wherein each of the proxy servers is associated with an Internet Protocol (IP) address different from the IP addresses of the remaining proxy servers.

18. A method according to claim 11 , wherein the computing device executes a web-browser comprising a plug-in for connecting to the load balancer.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2025
From: XEROX CORPORATION
To: GENESEE VALLEY INNOVATIONS, LLC
Reel/Frame 073842/0479 →
SECOND LIEN NOTES PATENT SECURITY AGREEMENT Recorded Jul 2, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 071785/0550 →
FIRST LIEN NOTES PATENT SECURITY AGREEMENT Recorded Apr 11, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 070824/0001 →
SECURITY INTEREST Recorded Feb 13, 2024
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066741/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT RF 064760/0389 Recorded Feb 13, 2024
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: XEROX CORPORATION
Reel/Frame 068261/0001 →
SECURITY INTEREST Recorded Nov 20, 2023
From: XEROX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065628/0019 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVAL OF US PATENTS 9356603, 10026651, 10626048 AND INCLUSION OF US PATENT 7167871 PREVIOUSLY RECORDED ON REEL 064038 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 28, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064161/0001 →
SECURITY INTEREST Recorded Jun 22, 2023
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 064760/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064038/0001 →