Per-app virtual private network tunnel for multiple processes

US11356295B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11356295-B2
Application numberUS-202117208202-A
CountryUS
Kind codeB2
Filing dateMar 22, 2021
Priority dateJul 19, 2018
Publication dateJun 7, 2022
Grant dateJun 7, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Examples described herein include systems and methods for creating a per-app virtual private network (“VPN”) using hooking, even though an isolated process is used for networking functions. The isolated process can include networking functions of the WebView class for ANDROID. The application can start an HTTP proxy server to receive local HTTP requests. Then, the application can trigger a broadcast to the isolated process, causing the isolated process to route its HTTP requests to the HTTP proxy of the application. The application can then hook HTTP requests and send them to a virtual private network (“VPN”) tunnel server. This can allow an application to securely connect to enterprise files or data even though the networking functions occur in the isolated process.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for creating a per-app virtual private network (“VPN”), comprising: executing an application process on a user device, the application process relying on an isolated process on the user device for network requests; registering a proxy server with an operating system of the user device, wherein the proxy server runs as part of the application process but separately from the isolated process; setting the isolated process to send its network requests to the proxy server; in an instance where the proxy server receives a network request from the isolated process and the network request is associated with the application process, replacing a socket function call with an alternate function that specifies an address of a VPN tunnel server; and contacting the VPN tunnel server to fulfill the network request at a destination server. 2. The method of claim 1 , wherein the application process registers the proxy server with the operating system by making an application programming interface call to the isolated process. 3. The method of claim 1 , wherein the isolated process handles networking capabilities for a WebView component of an ANDROID operating system. 4. The method of claim 1 , wherein the proxy server or application process detects that the network request is associated with the application process by at least recognizing a user identifier that is associated with the application process. 5. The method of claim 1 , the method further comprising: sending traffic from the proxy server to the VPN tunnel server, wherein the VPN tunnel server is configured to send the traffic to the destination server specified by the network request of the isolated process; and receiving response traffic at the proxy server, the response traffic being forwarded by the VPN tunnel server from the destination server. 6. The method of claim 1 , wherein the proxy server only accepts network requests that include an identifier associated with both the application process and isolated process. 7. The method of claim 1 , wherein the application process causes a browser executing on the user device to broadcast a proxy change to the isolated process, causing the isolated process to route the network request to the proxy server of the application process. 8. A non-transitory, computer-readable medium comprising instructions that, when executed by a processor, perform stages for creating a per-app virtual private network (“VPN”), the stages comprising: executing an application process on a user device, the application process relying on an isolated process on the user device for network requests; registering a proxy server with an operating system of the user device, wherein the proxy server runs as part of the application process but separately from the isolated process; setting the isolated process to send its network requests to the proxy server; in an instance where the proxy server receives a network request from the isolated process and the network request is associated with the application process, replacing a socket function call with an alternate function that specifies an address of a VPN tunnel server; and contacting the VPN tunnel server to fulfill the network request at a destination server. 9. The non-transitory, computer-readable medium of claim 8 , wherein the application process registers the proxy server with the operating system by making an application programming interface call to the isolated process. 10. The non-transitory, computer-readable medium of claim 8 , wherein the isolated process handles networking capabilities for a WebView component of an ANDROID operating system. 11. The non-transitory, computer-readable medium of claim 8 , wherein the proxy server or application process detects that the network request is associated with the application process by at least recognizing a user identifier that is associated with the application process. 12. The non-transitory, computer-readable medium of claim 8 , the stages further comprising: sending traffic from the proxy server to the VPN tunnel server, wherein the VPN tunnel server is configured to send the traffic to the destination server specified by the network request of the isolated process; and receiving response traffic at the proxy server, the response traffic being forwarded by the VPN tunnel server from the destination server. 13. The non-transitory, computer-readable medium of claim 8 , wherein an identifier is shared between the isolated process and the application process, and wherein the proxy server only accepts network requests that include the identifier. 14. The non-transitory, computer-readable medium of claim 8 , wherein the VPN tunnel server encrypts data associated with the network request and ensures that the user device meets rules required to perform the network request. 15. A system for creating a per-app virtual private network (“VPN”), comprising: a memory storage including a non-transitory, computer-readable medium comprising instructions; and a processor that executes the instructions to carry out stages of an application process on a user device, the stages comprising: executing an application process on a user device, the application process relying on an isolated process on the user device for network requests; registering a proxy server with an operating system of the user device, wherein the proxy server runs as part of the application process but separately from the isolated process; setting the isolated process to send its network requests to the proxy server; in an instance where the proxy server receives a network request from the isolated process and the network request is associated with the application process, replacing a socket function call with an alternate function that specifies an address of a VPN tunnel server; and contacting the VPN tunnel server to fulfill the network request at a destination server. 16. The system of claim 15 , wherein the application process registers the proxy server with the operating system by making an application programming interface call to the isolated process. 17. The system of claim 15 , wherein the isolated process handles networking capabilities for a WebView component of an ANDROID operating system. 18. The system of claim 15 , wherein the proxy server or application process detects that the network request is associated with the application process by at least recognizing a user identifier that is associated with the application process. 19. The system of claim 15 , the stages further comprising: sending traffic from the proxy server to the VPN tunnel server, wherein the VPN tunnel server is configured to send the traffic to the destination server specified by the network request of the isolated process; and receiving response traffic at the proxy server, the response traffic being forwarded by the VPN tunnel server from the destination server. 20. The system of claim 15 , wherein the VPN tunnel server encrypts data associated with the network request and ensures that the user device meets rules required to perform the network request.

Assignees

Inventors

Classifications

  • Interconnection of networks using encapsulation techniques, e.g. tunneling · CPC title

  • Provisioning of proxy services (store-and-forward switching systems in data switching networks H04L12/54) · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • based on web technology, e.g. hypertext transfer protocol [HTTP] · CPC title

  • Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11356295B2 cover?
Examples described herein include systems and methods for creating a per-app virtual private network (“VPN”) using hooking, even though an isolated process is used for networking functions. The isolated process can include networking functions of the WebView class for ANDROID. The application can start an HTTP proxy server to receive local HTTP requests. Then, the application can trigger a broa…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification H04L12/4633. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jun 07 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).