IP Library Granted Patent US 9,853,943
Granted Patent B2
US 9,853,943 · App. 14/845,152 · Granted Dec 26, 2017

Selectively performing man in the middle decryption

Inventor: Paul Michael Martini (San Diego, CA)
Assignee: iboss, Inc.
H04L63/0281H04L63/0471H04L63/20H04L67/02H04L67/42
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 9,853,943
App. No.
14/845,152
Granted
Dec 26, 2017
Kind
B2
Abstract

A HTTP request addressed to a first resource on a second device outside the network is received from a first device within the network. The HTTP request is redirected to a third device within the network. A first encrypted connection is established between the first device and the third device, and a second encrypted connection between the third device and the second device. The third device retrieves the first resource from the second device. The first resource is modified to change pointers within the first resource to point to location in a domain associated with the third device within the network. The third device serves, to the first device, the second resource.

Claims (77)

1. A method performed by data processing apparatus, the method comprising:

selecting a proxy server from a plurality of proxy servers identifying a proxy server that is i) connected to a client device via a local area network (LAN), ii) connected to the Internet, and iii) assigned an address in a domain that is associated with the LAN, wherein the LAN is configured to route messages to the proxy server if the messages are addressed to the domain associated with the LAN based on analysis of network traffic from the client;

redirecting, to the selected proxy server, a Hypertext Transfer Protocol (HTTP) request from the client device, wherein the HTTP request is addressed to a resource on an external server, wherein the proxy server is connected to the client device via the LAN and wherein the proxy server is connected to the external server via the Internet;

retrieving, by the proxy server, the resource from the external server;

modifying the resource to change pointers within the resource to point to locations in the domain that is associated with the LAN proxy server and associated with the network; and

transmitting, by the proxy server, the modified resource to the client device;

receiving, by the proxy server, a second request that is from the client device and addressed with one of the changed pointers of the modified resource which is addressed to the domain associated with the LAN;

identifying a second resource on the external server;

retrieving, by the proxy server, the second resource from the external server;

modifying the second resource to change pointers within the resource to point to a location in the domain that is associated with the LAN; and

transmitting, by the proxy server, the modified second resource to the client device.

2. The method of claim 1 , wherein redirecting the HTTP request includes:

intercepting the HTTP request; and

responding to the HTTP request with an HTTP redirect message that includes an address of the proxy server.

3. The method of claim 1 , wherein redirecting the HTTP request includes:

intercepting a domain name service (DNS) request associated with the HTTP request; and

responding to the DNS request associated with the HTTP request with a DNS response that includes an address of the proxy server.

4. The method of claim 1 , wherein the client device is configured to display at least one changed pointer to a user of the client device.

5. The method of claim 1 , wherein modifying the resource is performed based at least in part on a security policy.

6. The method of claim 1 , wherein modifying the resource includes replacing the resource with a different resource.

7. The method of claim 1 , wherein modifying the resource includes replacing HTTP links in the resource with different HTTP links pointing to locations in the domain associated with the proxy server.

8. The method of claim 1 , wherein modifying the resource includes replacing the resource with an HTTP status code object.

9. The method of claim 1 , further comprising:

determining that a security policy of the network identifies the resource for inspection upon entry to the network; and

in response to determining that the security policy of the network identifies the resource for inspection, inspecting the resource.

10. A non-transitory computer storage media encoded with computer program instructions that, when executed by one or more processors, cause a computer device to perform operations comprising:

selecting a proxy server from a plurality of proxy servers identifying a proxy server that is i) connected to a client device via a local area network (LAN), ii) connected to the Internet, and iii) assigned an address in a domain that is associated with the LAN, wherein the LAN is configured to route messages to the proxy server if the messages are addressed to the domain associated with the LAN based on analysis of network traffic from the client;

redirecting, to the selected proxy server, a Hypertext Transfer Protocol (HTTP) request from the client device, wherein the HTTP request is addressed to a resource on an external server, wherein the proxy server is connected to the client device via the LAN and wherein the proxy server is connected to the external server via the Internet;

retrieving, by the proxy server, the resource from the external server;

modifying the resource to change pointers within the resource to point to locations in the domain that is associated with the LAN proxy server and associated with the network; and

transmitting, by the proxy server, the modified resource to the client device;

receiving, by the proxy server, a second request that is from the client device and addressed with one of the changed pointers of the modified resource which is addressed to the domain associated with the LAN;

identifying a second resource on the external server;

retrieving, by the proxy server, the second resource from the external server;

modifying the second resource to change pointers within the resource to point to a location in the domain that is associated with the LAN; and

transmitting, by the proxy server, the modified second resource to the client device.

11. The non-transitory computer storage media of claim 10 , wherein redirecting the HTTP request includes:

intercepting the HTTP request; and

responding to the HTTP request with an HTTP redirect message that includes an address of the proxy server.

12. The non-transitory computer storage media of claim 10 , wherein redirecting the HTTP request includes:

intercepting a domain name service (DNS) request associated with the HTTP request; and

responding to the DNS request associated with the HTTP request with a DNS response that includes an address of the proxy server.

13. The non-transitory computer storage media of claim 10 , wherein the client device is configured to display at least one changed pointer to a user of the client device.

14. The non-transitory computer storage media of claim 10 , wherein modifying the resource is performed based at least in part on a security policy.

15. The non-transitory computer storage media of claim 10 , wherein modifying the resource includes replacing the resource with a different resource.

16. The non-transitory computer storage media of claim 10 , wherein modifying the resource includes replacing HTTP links in the resource with different HTTP links pointing to locations in the domain associated with the proxy server.

17. The non-transitory computer storage media of claim 10 , wherein modifying the resource includes replacing the resource with an HTTP status code object.

18. The non-transitory computer storage media of claim 10 , further comprising:

determining that a security policy of the network identifies the resource for inspection upon entry to the network; and

in response to determining that the security policy of the network identifies the resource for inspection, inspecting the resource.

19. A system comprising:

one or more processors configured to execute computer program instructions; and

non-transitory computer storage media encoded with computer program instructions that, when executed by one or more processors, cause a computer device to perform operations comprising:

selecting a proxy server from a plurality of proxy servers identifying a proxy server that is i) connected to a client device via a local area network (LAN), ii) connected to the Internet, and iii) assigned an address in a domain that is associated with the LAN, wherein the LAN is configured to route messages to the proxy server if the messages are addressed to the domain associated with the LAN based on analysis of network traffic from the client;

redirecting, to the selected proxy server, a Hypertext Transfer Protocol (HTTP) request from the client device, wherein the HTTP request is addressed to a resource on an external server, wherein the proxy server is connected to the client device via the LAN and wherein the proxy server is connected to the external server via the Internet;

retrieving, by the proxy server, the resource from the external server;

modifying the resource to change pointers within the resource to point to locations in the domain that is associated with the LAN proxy server and associated with the network; and

transmitting, by the proxy server, the modified resource to the client device;

receiving, by the proxy server, a second request that is from the client device and addressed with one of the changed pointers of the modified resource which is addressed to the domain associated with the LAN;

identifying a second resource on the external server;

retrieving, by the proxy server, the second resource from the external server;

modifying the second resource to change pointers within the resource to point to a location in the domain that is associated with the LAN; and

transmitting, by the proxy server, the modified second resource to the client device.

20. The system of claim 19 , wherein redirecting the HTTP request includes:

intercepting the HTTP request; and

responding to the HTTP request with an HTTP redirect message that includes an address of the proxy server.

21. The system of claim 19 , wherein redirecting the HTTP request includes:

intercepting a domain name service (DNS) request associated with the HTTP request; and

responding to the DNS request associated with the HTTP request with a DNS response that includes an address of the proxy server.

22. The system of claim 19 , wherein the client device is configured to display at least one changed pointer to a user of the client device.

23. The system of claim 19 , wherein modifying the resource is performed based at least in part on a security policy.

24. The system of claim 19 , wherein modifying the resource includes replacing the resource with a different resource.

25. The system of claim 19 , wherein modifying the resource includes replacing HTTP links in the resource with different HTTP links pointing to locations in the domain associated with the proxy server.

26. The system of claim 19 , wherein modifying the resource includes replacing the resource with an HTTP status code object.

27. The system of claim 19 , further comprising:

determining that a security policy of the network identifies the resource for inspection upon entry to the network; and

in response to determining that the security policy of the network identifies the resource for inspection, inspecting the resource.

Assignments (7)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 28, 2023
From: IBOSS, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066158/0219 →
SUPPLEMENTAL INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 28, 2023
From: IBOSS, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066158/0266 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Dec 12, 2023
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK TRUST COMPANY
To: IBOSS, INC.
Reel/Frame 066140/0480 →
SECURITY INTEREST Recorded Sep 19, 2022
From: IBOSS, INC.
To: SILICON VALLEY BANK
Reel/Frame 061463/0331 →
SECURITY INTEREST Recorded Dec 16, 2020
From: IBOSS, INC.
To: SILICON VALLEY BANK
Reel/Frame 054789/0680 →
CHANGE OF NAME Recorded Mar 24, 2017
From: PHANTOM TECHNOLOGIES, INC.
To: IBOSS, INC.
Reel/Frame 042091/0852 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2017
From: MARTINI, PAUL MICHAEL
To: PHANTOM TECHNOLOGIES, INC.
Reel/Frame 041734/0980 →
Continuity (3)
Continuation 14682703 · Apr 9, 2015
Continuation 13966900 · Aug 14, 2013
Related Publication 20150381570A1 · Dec 31, 2015