IP Library Granted Patent US 11,075,777
Granted Patent B2
US 11,075,777 · App. 16/601,945 · Granted Jul 27, 2021

Providing on-demand VPN connectivity on a per application basis

Inventors: Suman Aluvala (Bangalore, IN); Craig Farley Newell (Atlanta, GA); Naga Sandeep Reddy Kaipu (Atlanta, GA); Sulay Shah (Atlanta, GA)
Assignee: AIRWATCH LLC
H04L12/4633H04L65/1069H04L12/4641H04L63/0272H04L63/101
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 11,075,777
App. No.
16/601,945
Granted
Jul 27, 2021
Kind
B2
Abstract

Disclosed are various approaches for providing on-demand virtual private network (VPN) connectivity on a per-application basis. An application is determined to have begun execution on a computing device. The application is identified. A determination that the application is authorized to access a VPN connection is made, and the VPN connection is created.

Claims (39)

1. A system, comprising:

a client device comprising at least one processor; and

a memory comprising machine-readable instructions, wherein the machine-readable instructions, when executed by the at least one processor, cause the client device to at least:

monitor, by a monitoring application executed by the client device, an initialization process executing on the client device to detect system calls from the initialization process;

identify an application identifier for an application based on at least one of: a binary file of the application, or a filesystem path to the binary file;

identify an application-specific virtual private network (VPN) configuration based on the application identifier;

create and configure, by the monitoring application, an application-specific network adapter on the client device, wherein the application-specific network adapter is configured to use a domain name system (DNS) server and a subnet mask specified by the application-specific VPN configuration, the application-specific network adapter being created based on a determination that the application has begun execution on the at least one computing device based on detection of a fork call or a spawn call from the initialization process; and

enable, by the monitoring application, a VPN connection on the application-specific network adapter for the application.

2. The system of claim 1 , wherein the application-specific VPN configuration specifies a network tunnel adapter or a network tap adapter.

3. The system of claim 2 , wherein an authorization for the application to utilize VPN communications is identified based on the application identifier.

4. The system of claim 2 , wherein the application-specific VPN configuration specifies a media access control (MAC) address for the application-specific network adapter.

5. The system of claim 4 , wherein the application-specific VPN configuration comprises at least one of: a username, a password, a digital certificate, an address of a VPN server, and a communications protocol.

6. The system of claim 1 , wherein the initialization process creates an instance of the application based on the fork call or the spawn call.

7. The system of claim 1 , wherein the machine-readable instructions, when executed by the at least one processor, cause the client device to at least:

close the VPN connection based on the application ceasing to transfer packets for a period of time that is updated based on a response being received after a baseline period of time, the updated period of time comprising a sum of the baseline period of time and a random period of time.

8. A method, comprising:

monitoring, by a monitoring application executed by a client device, an initialization process executing on the client device to detect system calls from the initialization process;

identifying an application identifier for an application based on at least one of: a binary file of the application, or a filesystem path to the binary file;

identifying an application-specific virtual private network (VPN) configuration based on the application identifier;

creating and configuring, by the monitoring application, an application-specific network adapter on the client device, wherein the application-specific network adapter is configured to use a domain name system (DNS) server and a subnet mask specified by the application-specific VPN configuration, the application-specific network adapter being created based on a determination that the application has begun execution on the at least one computing device based on detection of a fork call or a spawn call from the initialization process; and

enabling, by the monitoring application, a VPN connection on the application-specific network adapter for the application.

9. The method of claim 8 , wherein the application-specific VPN configuration specifies a network tunnel adapter or a network tap adapter.

10. The method of claim 9 , wherein an authorization for the application to utilize VPN communications is identified based on the application identifier.

11. The method of claim 9 , wherein the application-specific VPN configuration specifies a media access control (MAC) address for the application-specific network adapter.

12. The method of claim 11 , wherein the application-specific VPN configuration comprises at least one of: a username, a password, a digital certificate, an address of a VPN server, and a communications protocol.

13. The method of claim 8 , wherein the initialization process creates an instance of the application based on the fork call or the spawn call.

14. The method of claim 8 , further comprising:

closing the VPN connection based on the application ceasing to transfer packets for a period of time that is updated based on a response being received after a baseline period of time, the updated period of time comprising a sum of the baseline period of time and a random period of time.

15. A non-transitory computer-readable medium comprising machine-readable instructions, wherein the machine-readable instructions, when executed by at least one processor, cause a client device to at least:

monitor, by a monitoring application executed by the client device, an initialization process executing on the at least one computing device to detect system calls from the initialization process;

identify an application identifier for an application based on at least one of: a binary file of the application, or a filesystem path to the binary file;

identify an application-specific virtual private network (VPN) configuration based on the application identifier;

create and configure, by the monitoring application, an application-specific network adapter on the client device, wherein the application-specific network adapter is configured to use a domain name system (DNS) server and a subnet mask specified by the application-specific VPN configuration, the application-specific network adapter being created based on a determination that the application has begun execution on the at least one computing device based on detection of a fork call or a spawn call from the initialization process; and

enable, by the monitoring application, a VPN connection on the application-specific network adapter for the application.

16. The non-transitory computer-readable medium of claim 15 , wherein the application-specific VPN configuration specifies a network tunnel adapter or a network tap adapter.

17. The non-transitory computer-readable medium of claim 16 , wherein an authorization for the application to utilize VPN communications is identified based on the application identifier.

18. The non-transitory computer-readable medium of claim 16 , wherein the application-specific VPN configuration specifies a media access control (MAC) address for the application-specific network adapter.

19. The non-transitory computer-readable medium of claim 18 , wherein the application-specific VPN configuration comprises at least one of: a username, a password, a digital certificate, an address of a VPN server, and a communications protocol.

20. The non-transitory computer-readable medium of claim 15 , wherein the initialization process creates an instance of the application based on the fork call or the spawn call.

Assignments (2)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: AIRWATCH LLC
To: OMNISSA, LLC
Reel/Frame 068327/0670 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →