IP Library Granted Patent US 10,375,111
Granted Patent B2
US 10,375,111 · App. 15/430,301 · Granted Aug 6, 2019

Anonymous containers

Inventors: Benjamin M. Schultz (Bellevue, WA); Frederick Justus Smith (Redmond, WA); Daniel Vasquez Lopez (Duvall, WA); Abhinav Mishra (Redmond, WA); Ian James McCarty (Redmond, WA); John A. Starks (Seattle, WA); Joshua David Ebersol (Redmond, WA); Ankit Srivastava (Seattle, WA); Hari R. Pulapaka (Redmond, WA); Mehmet Iyigun (Kirland, WA); Stephen E. Bensley (Kirland, WA); Giridhar Viswanathan (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L63/1491G06F9/45558G06F21/53G06F21/6254H04L63/0272H04L63/0421G06F2009/45587
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,375,111
App. No.
15/430,301
Granted
Aug 6, 2019
Kind
B2
Abstract

Anonymous containers are discussed herein. An operating system running on a computing device, also referred to herein as a host operating system running on a host device, prevents an application from accessing personal information (e.g., user information or corporate information) by activating an anonymous container that is isolated from the host operating system. In order to create and activate the anonymous container, a container manager anonymizes the configuration and settings data of the host operating system, and injects the anonymous configuration and settings data into the anonymous container. Such anonymous configuration and settings data may include, by way of example and not limitation, application data, machine configuration data, and user settings data. The host operating system then allows the application to run in the anonymous container.

Claims (40)

1. A method, comprising:

receiving a request to run an application in a computing device having a host operating system with corresponding a first set of application data, machine configuration data, or user settings data; and

in response to receiving the request,

activating, by the host operating system, a container that is isolated from directly accessing the first set of application data, machine configuration data, or user settings data in the host operating system;

anonymizing the first set of application data, machine configuration data, or user settings data of the host operating system into a second set of application data, machine configuration data, or user settings data different than the first set, respectively;

injecting the anonymized second set of application data, machine configuration data, or user settings data into the activated container; and

allowing the application to run in the activated container and access the injected anonymized second set of application data, machine configuration data, or user settings data instead of the first set of application data, machine configuration data, or user settings data in the host operating system.

2. The method of claim 1 , wherein the anonymized second set of application data, machine configuration data, or user settings data comprises a set of application data, machine configuration data, or user settings data corresponding to a newly installed host operating system.

3. The method of claim 2 , wherein the set of the application data, machine configuration data, or user settings data is created as part of an operating system compilation and media creation.

4. The method of claim 2 , wherein the set of the configuration and settings data is created locally on the host operating system.

5. The method of claim 1 , wherein the anonymized second set of application data, machine configuration data, or user settings data is randomized or spoofed.

6. The method of claim 1 , wherein the anonymized second set of application data, machine configuration data, or user settings data is stored in a format that can be added to an operating system image in order to anonymize the operating system image.

7. The method of claim 1 , wherein the host operating system is further configured to activate a separate container for at least one additional application in response to receiving a request from the at least one additional application to run in the host operating system.

8. The method of claim 1 , further comprising terminating the activated container in response to an operating system servicing request, an application update, or detection of malware or attack software executing in the activated container.

9. The method of claim 8 , further comprising regenerating a new container with the anonymized second set of application data, machine configuration data, or user settings data, and allowing the application to run in the regenerated container.

10. The method of claim 1 , wherein the anonymized second set of application data, machine configuration data, or user settings data of the host operating system is paired with a virtual private network (VPN) service to spoof a network location.

11. The method of claim 1 , further comprising accessing one or more resources by interacting with a credential proxy implemented in the host operating system, the credential proxy being configured to access user credentials stored in a credential store and provide the user credentials to the one or more resources for access without the user credentials being transmitted from the credential store to the activated container.

12. The method of claim 1 , wherein the anonymized second set of application data, machine configuration data, or user settings data comprise one or more of text strings of a user name, a picture of a user, biometric information of the user, a region or location of the user, a language of the container, hardware or drivers that are used in the region or location of the user, or applications that are used in the region or location of the user.

13. The method of claim 1 , wherein the host operating system is further configured to activate one or more additional containers to run at the same time as the activated container in the host operating system.

14. A computing device, comprising:

a processor; and

a memory operatively coupled to the processor, the memory having instructions executable by the processor to provide a host operating system having a first set of application data, machine configuration data, or user settings data and to cause the computing device to:

upon receiving a request to run an application in the computing device,

activate, by the host operating system, a container that is isolated from directly accessing the first set of application data, machine configuration data, or user settings data in the host operating system;

inject a second set of application data, machine configuration data, or user settings data into the activated container, the second set of application data, machine configuration data, or user settings data being anonymized from and different than the first set of application data, machine configuration data, or user settings data, respectively; and

execute the application in the activated container, the injected second set of application data, machine configuration data, or user settings data being accessible to the executed application instead of the first set of application data, machine configuration data, or user settings data in the host operating system.

15. The computing device of claim 14 , wherein the second set of application data, machine configuration data, or user settings data comprises a set of application data, machine configuration data, or user settings data corresponding to a newly installed host operating system.

16. The computing device of claim 14 , wherein the second set of application data, machine configuration data, or user settings data comprises randomized or spoofed first set of application data, machine configuration data, or user setting data.

17. The computing device of claim 14 , wherein the memory includes additional instructions executable by the processor to cause the computing device to:

activate another container for another application in response to receiving a request from the another application to run in the host operating system; and

inject a third set of application data, machine configuration data, or user settings data into the activated another container, the third set of application data, machine configuration data, or user settings data being anonymized from the first set of application data, machine configuration data, or user settings data but is different from the second set of application data, machine configuration data, or user settings data.

18. A method performed in a computing device having a processor and a memory having instructions executable by the processor to provide a host operating system having a first set of application data, machine configuration data, or user settings data, the method comprising:

upon receiving a request to run an application in the computing device,

activating, by the host operating system, a container that is isolated from directly accessing the first set of application data, machine configuration data, or user settings data in the host operating system;

injecting a second set of application data, machine configuration data, or user settings data into the activated container, the second set of application data, machine configuration data, or user settings data being anonymized from and different than the first set of application data, machine configuration data, or user settings data, respectively; and

executing the application in the activated container, the executed application having access to the injected second set of application data, machine configuration data, or user settings data instead of the first set of application data, machine configuration data, or user settings data in the host operating system.

19. The method of claim 18 , wherein the second set of application data, machine configuration data, or user settings data comprises a set of application data, machine configuration data, or user settings data corresponding to a newly installed host operating system, or randomized first set of application data, machine configuration data, or user setting data, respectively.

20. The method of claim 18 , further comprising:

activating another container for another application in response to receiving a request from the another application to run in the host operating system; and

injecting a third set of application data, machine configuration data, or user settings data into the activated another container, the third set of application data, machine configuration data, or user settings data being anonymized from the first set of application data, machine configuration data, or user settings data but is different from the second set of application data, machine configuration data, or user settings data.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF INVENTOR GIRIDHAR VISWANATHAN'S NAME PREVIOUSLY RECORDED ON REEL 042319 FRAME 0251. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECT SPELLING IS GIRIDHAR VISWANATHAN.. Recorded Sep 1, 2017
From: SCHULTZ, BENJAMIN M.; SMITH, FREDERICK JUSTUS; LOPEZ, DANIEL VASQUEZ; MISHRA, ABHINAV; MCCARTY, IAN JAMES; STARKS, JOHN A.; EBERSOL, JOSHUA DAVID; SRIVASTAVA, ANKIT; PULAPAKA, HARI R.; IYIGUN, MEHMET; BENSLEY, STEPHEN E.; VISWANATHAN, GIRIDHAR
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044061/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2017
From: SCHULTZ, BENJAMIN M.; SMITH, FREDERICK JUSTUS; LOPEZ, DANIEL VASQUEZ; MISHRA, ABHINAV; MCCARTY, IAN JAMES; STARKS, JOHN A.; EBERSOL, JOSHUA DAVID; SRIVASTAVA, ANKIT; PULAPAKA, HARI R.; IYIGUN, MEHMET; BENSLEY, STEPHEN E.; VISWANANTHAN, GRIDHAR
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 042319/0251 →
Continuity (2)
Provisional Application 62421254 · Nov 12, 2016
Related Publication 20180139238A1 · May 17, 2018
Cited By (4)
US 12,265,650 US 12,511,373 US 12,573,312 US 12,586,480