Selectively performing man in the middle decryption
Assigneeiboss, Inc.
InventorPaul Michael Martini
Life of this patent
Estimating the term…
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.
Claims27
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.
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.
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.
Dependencies are inferred from the claim text.