IP Library Granted Patent US 10,652,226
Granted Patent B2
US 10,652,226 · App. 15/456,442 · Granted May 12, 2020

Securing communication over a network using dynamically assigned proxy servers

Inventors: Junaid Islam (San Jose, CA); Brent Bilger (Los Altos Hills, CA); Ted Schroeder (Saratoga, CA)
Assignee: Verizon Patent and Licensing Inc.
H04L63/08G06F21/31G06F21/57G06F21/6218H04L61/609H04L63/0281H04L63/0428H04L63/0876H04L63/10H04L63/105H04L63/107H04L63/1433H04L63/20H04L67/10H04L67/2809H04L67/42G06F2221/2111G06F2221/2113
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,652,226
App. No.
15/456,442
Granted
May 12, 2020
Kind
B2
Abstract

The various embodiments described herein include methods, devices, and systems for providing secure access to network resources. In one aspect, a method is performed at a trust broker system. The method includes: (1) receiving, from a client system, a request to access network applications and resources hosted by a server system; (2) identifying a domain providing the requested network applications and resources; (3) determining whether the client system is authorized to access the domain; (4) identifying a particular server containing the domain; (5) identifying a proxy server assigned to the particular server; and (6) in accordance with a determination that the client system is authorized to access the domain: (a) transmitting an identification value for the client system to the identified proxy server; and (b) after transmitting the identification value to the identified proxy server, transmitting, to the client system, contact information for connecting to the identified proxy server.

Claims (68)

1. A method for providing secure access to network resources within a server system, comprising:

changing a proxy for a particular server of the server system over time to prevent an attacker from knowing which proxy server of a plurality of potential proxy servers is acting as the proxy at a given time, including:

at a first time:

assigning a first proxy server of the plurality of potential proxy servers to temporarily act as the proxy for the particular server of the server system; and

unassigning a second proxy server of the plurality of potential proxy servers as the proxy for the particular server system; and

at a second time subsequent to the first time:

assigning a third proxy server of the plurality of potential proxy servers to temporarily act as the proxy for the particular server; and

unassigning the first proxy server as the proxy for the particular server system;

at a third time between the first time and the second time, receiving at the first proxy server a request from a client system to access network applications and resources hosted by the server system;

determining at the first proxy server whether the request includes an encrypted identifier for the client system;

in accordance with a determination that the request includes the encrypted identifier:

determining at the first proxy server whether the client system is authorized to access the requested network applications and resources based on the encrypted identifier;

in accordance with a determination that the client system is authorized to access the requested network application and resources, communicatively coupling the client system to the particular server via the first proxy server; and

in accordance with a determination that the request does not include the encrypted identifier, dropping the request without responding to the client system.

2. The method of claim 1 , wherein changing the proxy for the particular server comprises periodically changing the proxy for the particular server.

3. The method of claim 1 , wherein determining whether the client system is authorized to access the requested network applications and resources comprises:

determining the identity of the user associated with the client system;

retrieving stored permissions of the user associated with the client system; and

determining whether the client system is authorized to access the requested network applications and resources based on the retrieved permissions.

4. The method of claim 1 , further comprising identifying the first proxy server as assigned to the particular server system at the third time, including examining a lookup table stored at a trust broker system.

5. The method of claim 1 , wherein the determination of whether the client system is authorized to access the requested network applications and resources is based on a geographical location of the client system.

6. The method of claim 1 , wherein the determination of whether the client system is authorized to access the requested network applications and resources is based on an integrity check of the client system.

7. A computing system, comprising:

one or more processors;

memory storing one or more programs to be executed by the one or more processors;

the one or more programs comprising instructions for:

changing a proxy for a particular server of a server system over time to prevent an attacker from knowing which proxy server of a plurality of potential proxy servers is acting as the proxy at a given time, including:

at a first time:

assigning a first proxy server of the plurality of potential proxy servers to temporarily act as the proxy for the particular server of the server system; and

unassigning a second proxy server of the plurality of potential proxy servers as the proxy for the particular server system; and

at a second time subsequent to the first time:

assigning a third proxy server of the plurality of potential proxy servers to temporarily act as the proxy for the particular server; and

unassigning the first proxy server as the proxy for the particular server system;

at a third time between the first time and the second time, receiving at the first proxy server a request from a client system to access network applications and resources hosted by the server system;

determining at the first proxy server whether the request includes an encrypted identifier for the client system;

in accordance with a determination that the request includes the encrypted identifier;

determining at the first proxy server whether the client system is authorized to access the requested network applications and resources based on the encrypted identifier;

in accordance with a determination that the client system is authorized to access the requested network application and resources, communicatively coupling the client system to the particular server via the first proxy server; and

in accordance with a determination that the request does not include the encrypted identifier, dropping the request without responding to the client system.

8. The computing system of claim 7 , wherein changing the proxy for the particular server comprises periodically changing the proxy for the particular server.

9. The computing system of claim 7 , wherein determining whether the client system is authorized to access the requested network applications and resources comprises:

determining the identity of the user associated with the client system;

retrieving stored permissions of the user associated with the client system; and

determining whether the client system is authorized to access the requested network applications and resources based on the retrieved permissions.

10. The computing system of claim 7 , wherein the one or more programs further comprise instructions for identifying the first proxy server as assigned to the particular server system at the third time, including examining a lookup table stored at a trust broker system.

11. The computing system of claim 7 , wherein the determination of whether the client system is authorized to access the requested network applications and resources is based on a geographical location of the client system.

12. The computing system of claim 7 , wherein the determination of whether the client system is authorized to access the requested network applications and resources is based on an integrity check of the client system.

13. A non-transitory computer-readable storage medium storing one or more programs configured for execution by a computing system, the one or more programs comprising instructions for:

changing a proxy for a particular server of a server system over time to prevent an attacker from knowing which proxy server of a plurality of potential proxy servers is acting as the proxy at a given time, including:

at a first time:

assigning a first proxy server of the plurality of potential proxy servers to temporarily act as the proxy for the particular server of the server system; and

unassigning a second proxy server of the plurality of potential proxy servers as the proxy for the particular server system; and

at a second time subsequent to the first time:

assigning a third proxy server of the plurality of potential proxy servers to temporarily act as the proxy for the particular server; and

unassigning the first proxy server as the proxy for the particular server system;

at a third time between the first time and the second time, receiving at the first proxy server a request from a client system to access network applications and resources hosted by the server system;

determining at the first proxy server whether the request includes an encrypted identifier for the client system;

in accordance with a determination that the request includes the encrypted identifier:

determining at the first proxy server whether the client system is authorized to access the requested network applications and resources based on the encrypted identifier;

in accordance with a determination that the client system is authorized to access the requested network application and resources, communicatively coupling the client system to the particular server via the first proxy server, and

in accordance with a determination that the request does not include the encrypted identifier, dropping the request without responding to the client system.

14. The non-transitory computer-readable storage medium of claim 13 , wherein changing the proxy for the particular server comprises periodically changing the proxy for the particular server.

15. The non-transitory computer-readable storage medium of claim 13 , wherein determining whether the client system is authorized to access the requested network applications and resources comprises:

determining the identity of the user associated with the client system;

retrieving stored permissions of the user associated with the client system; and

determining whether the client system is authorized to access the requested network applications and resources based on the retrieved permissions.

16. The non-transitory computer-readable storage medium of claim 13 , wherein the one or more programs further comprise instructions for identifying the first proxy server as assigned to the particular server system at the third time, including examining a lookup table stored at a trust broker system.

17. The non-transitory computer-readable storage medium of claim 13 , wherein the determination of whether the client system is authorized to access the requested network applications and resources is based on an integrity check of the client system.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2018
From: MCI COMMUNICATIONS SERVICES, INC.
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 047592/0888 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2018
From: ISLAM, JUNAID; BILGER, BRENT; SCHROEDER, TED
To: VIDDER, INC.
Reel/Frame 047595/0023 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2018
From: VIDDER, INC.
To: MCI COMMUNICATIONS SERVICES, INC.
Reel/Frame 047532/0582 →
Continuity (4)
Continuation 14748167 · Jun 23, 2015
Continuation 13794689 · Mar 11, 2013
Provisional Application 61759963 · Feb 1, 2013
Related Publication 20170187723A1 · Jun 29, 2017
Cited By (2)
US 12,306,733 US 12,399,742