IP Library Granted Patent US 11,122,090
Granted Patent B2
US 11,122,090 · App. 16/294,962 · Granted Sep 14, 2021

Dynamic application-level compliance enforcement

Inventors: Gaurav Verma (Bangalore, IN); Manjunath Subramani (Bangalore, IN); Suchit Shivashankar (Bangalore, IN); Karthikeyan Palanisamy (Bangalore, IN)
Assignee: VMWARE, INC.
H04L63/205G06F21/51G06F21/629
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,122,090
App. No.
16/294,962
Granted
Sep 14, 2021
Kind
B2
Abstract

Examples herein describe systems and methods for application-specific compliance enforcement. An example method can include receiving, at a user device, profiles containing application-specific restrictions. When a first application is opened, a management agent compares the corresponding application-specific restrictions with current device settings. This can be done with a checksum comparison where the checksums are created based on a hash with an application- or profile-specific identifier. If they differ, the management agent stores the current device settings and prompts for, or automatically changes, the device settings to new compliant values before allowing the first application to operate in the foreground of the user device screen. If the first application is closed or minimized, the stored device settings can be restored. The management agent can compare those against application-specific restrictions of the second application before allowing the second application to run in the foreground.

Claims (64)

1. A method for compliance enforcement, comprising:

receiving, at a user device from a management server, a profile including first compliance settings for a first application that are different than second compliance settings for a second application;

detecting launch of the first application;

storing current device settings that correspond to the first compliance settings, including storing a first checksum representing the current device settings;

determining whether the current device settings meet the first compliance settings, including comparing the first checksum to a second checksum for the first compliance settings;

when the first and second checksums differ, prompting the user regarding which of the current device settings change;

changing the current device settings to modified settings;

storing a third checksum for the modified settings; and

executing the first application in a foreground when the modified settings meet the first compliance settings, based on the second and third checksums matching.

2. The method of claim 1 ,

wherein the first application executes in the foreground when the first and second checksums match.

3. The method of claim 1 , wherein a launcher application on the user device provides access to the first and second applications and launches the first application, wherein an agent detects the launch of the first application and determines whether the first and second checksums match.

4. The method of claim 1 , further comprising:

during execution of the first application, detecting a change to the device settings;

comparing the second checksum against a fourth checksum for the changed device settings; and

based on the comparison, blocking execution of the first application.

5. The method of claim 1 , further comprising:

detecting that the first application is closed or minimized; and

restoring the device settings based on the stored current device settings.

6. The method of claim 1 , wherein the first and second applications are executed by a launcher application, and wherein the launcher application provides access to the first and second applications, both of which are identified by the profile.

7. The method of claim 1 , wherein the first and second compliance settings have different network connectivity requirements from one another, and wherein switching between applications causes the user device to change the current device settings.

8. A non-transitory, computer-readable medium comprising instructions that, when executed by a processor of a user device, perform stages for performing compliance enforcement, the stages comprising:

receiving, at the user device from a management server, a profile including first compliance settings for a first application that are different than second compliance settings for a second application;

detecting launch of the first application;

storing current device settings that correspond to the first compliance settings, including storing a first checksum representing the current device settings;

determining whether the current device settings meet the first compliance settings, including comparing the first checksum to a second checksum for the first compliance settings;

when the first and second checksums differ, prompting the user regarding which of the current device settings change;

changing the current device settings to modified settings;

storing a third checksum for the modified settings; and

executing the first application in a foreground when the modified settings meet the first compliance settings, based on the second and third checksums matching.

9. The non-transitory, computer-readable medium of claim 8 ,

wherein the first application executes in the foreground when the first and second checksums match.

10. The non-transitory, computer-readable medium of claim 8 , wherein a launcher application on the user device provides access to the first and second applications and launches the first application, wherein an agent detects the launch of the first application and determines whether the first and second checksums match.

11. The non-transitory, computer-readable medium of claim 8 , the stages further comprising:

during execution of the first application, detecting a change to the device settings;

comparing the second checksum against a fourth checksum for the changed device settings; and

based on the comparison, blocking execution of the first application.

12. The non-transitory, computer-readable medium of claim 8 , the stages further comprising:

detecting that the first application is closed or minimized; and

restoring the device settings based on the stored current device settings.

13. The non-transitory, computer-readable medium of claim 8 , wherein the first and second applications are executed by a launcher application, and wherein the launcher application provides access to the first and second applications, both of which are identified by the profile.

14. The non-transitory, computer-readable medium of claim 8 , wherein the first and second compliance settings have different network connectivity requirements from one another, and wherein switching between applications causes the user device to change the current device settings.

15. A system for performing compliance enforcement, comprising:

a user device having a processor and memory storage;

wherein the memory storage contains a non-transitory, computer-readable medium comprising instructions that, when executed by the processor, carry out stages comprising:

receiving, at the user device from a management server, a profile including first compliance settings for a first application that are different than second compliance settings for a second application;

detecting launch of the first application;

storing current device settings that correspond to the first compliance settings, including storing a first checksum representing the current device settings;

determining whether the current device settings meet the first compliance settings, including comparing the first checksum to a second checksum for the first compliance settings;

when the first and second checksums differ, prompting the user regarding which of the current device settings change;

changing the current device settings to modified settings;

storing a third checksum for the modified settings; and

executing the first application in a foreground when the modified settings meet the first compliance settings, based on the second and third checksums matching.

16. The system of claim 15 ,

wherein the first application executes in the foreground when the first and second checksums match.

17. The system of claim 16 , wherein a launcher application on the first user device provides access to the first and second applications and launches the first application, wherein an agent detects the launch of the first application and determines whether the first and second checksums match.

18. The system of claim 15 , the stages further comprising:

during execution of the first application, detecting a change to the device settings;

comparing the second checksum against a fourth checksum for the changed device settings; and

based on the comparison, blocking execution of the first application.

19. The system of claim 15 , the stages further comprising:

detecting that the first application is closed or minimized; and

restoring the device settings based on the stored current device settings.

20. The system of claim 15 , wherein the first and second compliance settings have different network connectivity requirements from one another, and wherein switching between applications causes the user device to change the current device settings.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2019
From: VERMA, GAURAV; SUBRAMANI, MANJUNATH; SHIVASHANKAR, SUCHIT; PALANISAMY, KARTHIKEYAN
To: VMWARE, INC.
Reel/Frame 048525/0257 →