IP Library Granted Patent US 10,476,916
Granted Patent B2
US 10,476,916 · App. 15/046,464 · Granted Nov 12, 2019

Providing on-demand VPN connectivity on a per-application basis

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,476,916
App. No.
15/046,464
Granted
Nov 12, 2019
Kind
B2
Abstract

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

Claims (50)

1. A system, comprising:

a computing device comprising a processor and a memory; and

a first application comprising machine-readable instructions stored in the memory that, when executed by the processor, cause the computing device to at least:

monitor an initialization process executing on the computing device;

determine, based on a fork call from the initialization process, that a second application has begun execution on the computing device, wherein the initialization process creates an instance of the second application based on the fork call;

identify the second application;

determine that the second application is authorized to access a virtual private network (VPN) connection;

create a network adapter on the computing device based on the second application being authorized to access the VPN connection;

detect a first network packet generated by the second application;

initiate the VPN connection in response to detection of the first network packet generated by the second application;

close the VPN connection based on the second application ceasing to transfer packets for a determined period of time; and

destroy the network adapter on the computing device once the VPN connection is closed.

2. The system of claim 1 , wherein the period of time comprises a baseline period of time, the baseline period of time based on a duration between a request for data and a response to the request.

3. The system of claim 1 , wherein the second application is authorized to access the VPN connection based on a unique cryptographic signature of a binary file of the second application.

4. The system of claim 1 , wherein the first application, when executed, further causes the computing device to at least:

determine that the second application has begun execution based on an application identifier for the second application being included in an approved application list.

5. The system of claim 1 , wherein the period of time comprises a sum of a baseline period of time and a random period of time, wherein the period of time is updated to the sum based on a response being received after the baseline period of time.

6. The system of claim 5 , wherein the second application is authorized to access the VPN connection further based on a digital certificate of a developer of the second application.

7. The system of claim 5 , wherein the network adapter comprises a network tap adapter.

8. A method, comprising:

monitoring an initialization process executing on a computing device;

determining, based on a fork call from the initialization process, that an application has begun execution on the computing device, wherein the initialization process creates an instance of the application based on the fork call;

identifying the application;

determining that the application is authorized to access a virtual private network (VPN) connection;

creating a network adapter on the computing device based on the application being authorized to access the VPN connection;

detecting a first network packet generated by the application;

initiating the VPN connection in response to detection of the first network packet generated by the application;

closing the VPN connection based on the application ceasing to transfer packets for a determined period of time; and

destroying the network adapter on the computing device once the VPN connection is closed.

9. The method of claim 8 , wherein the period of time comprises a baseline period of time, the baseline period of time based on a duration between a request for data and a response to the request.

10. The method of claim 8 , the application is authorized to access the VPN connection based on a unique cryptographic signature of a binary file of the application.

11. The method of claim 8 , wherein determining that the application is authorized to access the VPN connection further comprises determining that an application identifier for the application is included in an approved application list.

12. The method of claim 8 , wherein the application is authorized to access the VPN connection further based on a digital certificate of a developer of the application.

13. The method of claim 12 , wherein the network adapter is a network tunnel adapter.

14. The method of claim 12 , wherein the network adapter is a network tap adapter.

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

monitor an initialization process executing on the computing device;

determine, based on a fork call from the initialization process, that an application has begun execution on a computing device, wherein the initialization process creates an instance of the application based on the fork call;

identify the application;

determine that the application is authorized to access a virtual private network (VPN) connection;

create a network adapter on the computing device based on the application being authorized to access the VPN connection;

detect a first network packet generated by the application;

initiate the VPN connection in response to detection of the first network packet generated by the application;

close the VPN connection based on the application ceasing to transfer packets for a determined period of time; and

destroy the network adapter on the computing device once the VPN connection is closed.

16. The non-transitory computer-readable medium of claim 15 , wherein the period of time comprises a baseline period of time, the baseline period of time based on a duration between a request for data and a response to the request.

17. The non-transitory computer-readable medium of claim 15 , wherein the application is authorized to access the VPN connection further based on a digital certificate of a developer of the application.

18. The non-transitory computer-readable medium of claim 15 , wherein causing the computing device to determine that the application is authorized to access the VPN connection further comprises causing the computing device to at least determine that an application identifier for the application is included in an approved application list.

19. The non-transitory computer-readable medium of claim 15 , wherein the network adapter is a network tunnel adapter.

20. The non-transitory computer-readable medium of claim 15 , wherein the application is authorized to access the VPN connection based on a unique cryptographic signature of a binary file of the application.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2016
From: ALUVALA, SUMAN; NEWELL, CRAIG FARLEY; KAIPU, NAGA SANDEEP REDDY; SHAH, SULAY
To: AIRWATCH LLC
Reel/Frame 037759/0467 →