IP Library Granted Patent US 8,874,935
Granted Patent B2
US 8,874,935 · App. 13/221,629 · Granted Oct 28, 2014

Sector map-based rapid data encryption policy compliance

Inventors: Innokentiy Basmov (Redmond, WA); Magnus Bo Gustaf Nyström (Sammamish, WA); Alex M. Semenko (Issaquah, WA); Douglas M. MacIver (Seattle, WA); Donghui Li (Redmond, WA)
Assignee: Microsoft Corporation
G06F12/14
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 8,874,935
App. No.
13/221,629
Granted
Oct 28, 2014
Kind
B2
Abstract

To comply with a policy for a computing device indicating that data written by the computing device to the storage volume after activation of the policy be encrypted, a sector map is accessed. The sector map identifies one or more sectors of a storage volume and also identifies, for each of the one or more sectors of the storage volume, a signature of the content of the sector. In response to a request to read the content of a sector, the content of the sector is returned without decrypting the content if the sector is one of the one or more sectors and the signature of the content of the sector matches the signature of the sector identified in the sector map. Otherwise, the content of the sector is decrypted and the decrypted content is returned.

Claims (60)

1. A method comprising:

receiving, by a computing device, a request to activate a policy for the computing device, the policy indicating that data written by the computing device to a storage volume after activation of the policy be encrypted;

activating, in response to the request, the policy for the computing device, including:

encrypting data written to the storage volume after returning an indication of compliance with the policy,

using a sector map to identify one or more sectors of the storage volume that are not encrypted, the sector map identifying one or more sectors of the storage volume written to prior to the sector map being locked to prohibit changes to the sector map and the sector map including signatures of sectors that were written to the storage volume prior to the sector map being locked, the sector map being locked as part of a process of installing an operating system on the computing device, data written to the storage volume after the sector map is locked being encrypted but at least some data written to the storage volume before the sector map is locked not being encrypted, and

using the sector map to determine whether to decrypt content of a sector of the storage volume in response to a request to read the content of the sector; and

returning, in response to the request, the indication of compliance with the policy despite one or more sectors of the storage volume being unencrypted.

2. The method as recited in claim 1 , the returning comprising returning the response without waiting for the storage volume to be encrypted.

3. The method as recited in claim 1 , the activating further comprising returning, in response to the request to read the content, the content without decrypting the content in response to the sector being one of the one or more sectors and the signature of the content of the sector matching the signature of the sector identified in the sector map, and otherwise decrypting the content of the sector and returning the decrypted content.

4. The method as recited in claim 1 , the activating further comprising:

checking a bit corresponding to the sector, the bit being one of multiple bits in a bitmap corresponding to the storage volume, each of the multiple bits indicating whether a corresponding sector of the storage volume has been written to after the sector map was locked to prohibit changes to the sector map;

decrypting the content of the sector and returning the decrypted content in response to the bit corresponding to the sector indicating the sector has been written to after the sector map was locked; and

in response to the bit corresponding to the sector indicating the sector has not been written to after the sector map was locked, returning the content without decrypting the content in response to the sector being one of the one or more sectors and the signature of the content of the sector matching the signature of the sector identified in the sector map, and otherwise decrypting the content of the sector and returning the decrypted content.

5. The method as recited in claim 1 , further comprising maintaining the sector map on the storage volume, and mapping the sector map from the storage volume into a sector map in volatile memory when the computing device starts operation.

6. The method as recited in claim 1 , further comprising:

encrypting unencrypted data from sectors of the storage volume;

determining when no unencrypted data remains on the storage volume; and

deleting the sector map and ceasing using the sector map in response to no unencrypted data remaining on the storage volume.

7. The method as recited in claim 6 , further comprising removing, from the sector map, an identifier and corresponding signature of a sector in response to unencrypted data from the sector being encrypted.

8. The method as recited in claim 1 , the signature of the content of the sector comprising a value generated as a function of the content of the sector.

9. A computing device comprising:

one or more hardware processors; and

one or more computer storage media devices having stored thereon multiple instructions that, when executed by the one or more processors to comply with a policy for the computing device, cause the one or more processors to:

access a sector map identifying one or more sectors of a storage volume written to prior to changes to the sector map being locked to prohibit changes to the sector map, the sector map being locked as part of a process of installing an operating system on the computing device, the sector map further identifying, for each of the one or more sectors, a signature of the content of the sector, the policy indicating that data written by the computing device to the storage volume after activation of the policy be encrypted;

in response to a request to read the content of a sector of the storage volume:

read the content of the sector from the storage volume and return the content of the sector of the storage volume without decrypting the content in response to both the sector not having been written to after the sector map was locked to prohibit changes to the sector map and the signature of the content of the sector matching the signature of the sector identified in the sector map; and

read the content of the sector from the storage volume, decrypt the content of the sector of the storage volume, and return the decrypted content in response to the sector having been written to after the sector map was locked to prohibit changes to the sector map.

10. The computing device as recited in claim 9 , the multiple instructions further causing the one or more processors to encrypt data written by the computing device to at least one sector of the storage volume regardless of whether the sector of the storage volume is one of the one or more sectors.

11. The computing device as recited in claim 9 , the storage volume being included as part of the computing device.

12. The computing device as recited in claim 9 , the multiple instructions further causing the one or more processors to:

check a bit corresponding to the sector, the bit being one of multiple bits in a bitmap corresponding to the storage volume, each of the multiple bits indicating whether a corresponding sector of the storage volume has been written to after the sector map was locked to prohibit changes to the sector map;

check whether the sector is one of the one or more sectors and the signature of the content of the sector matches the signature of the sector identified in the sector map only if the bit corresponding to the sector indicates the sector has not been written to after the sector map was locked; and

decrypt the content of the sector and return the decrypted content if the bit corresponding to the sector indicates the sector has been written to after the sector map was locked.

13. One or more computer storage media devices having stored thereon multiple instructions that, when executed by one or more processors of a computing device, cause the one or more processors to perform acts comprising:

accessing, in the computing device complying with a policy indicating that data written by the computing device to a storage volume after activation of the policy be encrypted, a sector map identifying one or more sectors of the storage volume written to prior to the sector map being locked to prohibit changes to the sector map, the sector map further identifying, for each of the one or more sectors, a signature of the content of the sector, the sector map being locked as part of a process of installing an operating system on the computing device;

receiving a request to read the content of a sector of the storage volume;

checking whether the sector is identified in the sector map;

decrypting the content of the sector and returning the decrypted content of the sector in response to the sector not being identified in the sector map;

in response to both the sector being identified in the sector map and the sector not having been written to after the sector map was locked to prohibit changes to the sector map:

checking whether the signature of the content of the sector matches the signature identified for the sector in the sector map,

reading the content of the sector from the storage volume, decrypting the content of the sector, and returning the decrypted content of the sector in response to the signature of the content of the sector not matching the signature identified in the sector map of the sector, and

reading the content of the sector from the storage volume and returning the content of the sector without decrypting the content of the sector in response to the signature of the content of the sector matching the signature identified in the sector map of the sector.

14. The computing device as recited in claim 9 , the signature of the content of the sector comprising a value generated by:

selecting a number of bytes of the content of the sector; and

using the first number of bytes of the content of the sector as the signature of the sector.

15. The computing device as recited in claim 9 , the multiple instructions further causing the one or more processors to:

encrypt unencrypted data from sectors of the storage volume;

determine when no unencrypted data remains on the storage volume; and

delete the sector map and ceasing using the sector map in response to no unencrypted data remaining on the storage volume.

16. The computing device as recited in claim 9 , the multiple instructions further causing the one or more processors to remove, from the sector map, an identifier and corresponding signature of a sector in response to unencrypted data from the sector being encrypted.

17. The one or more computer storage media devices as recited in claim 13 , the multiple instructions further causing the one or more processors to:

check a bit corresponding to the sector, the bit being one of multiple bits in a bitmap corresponding to the storage volume, each of the multiple bits indicating whether a corresponding sector of the storage volume has been written to after the sector map was locked to prohibit changes to the sector map;

decrypt the content of the sector and returning the decrypted content in response to the bit corresponding to the sector indicating the sector has been written to after the sector map was locked; and

in response to the bit corresponding to the sector indicating the sector has not been written to after the sector map was locked, return the content without decrypting the content in response to the sector being one of the one or more sectors and the signature of the content of the sector matching the signature of the sector identified in the sector map, and otherwise decrypt the content of the sector and returning the decrypted content.

18. The one or more computer storage media devices as recited in claim 13 , the multiple instructions further causing the one or more processors to maintain the sector map on the storage volume, and map the sector map from the storage volume into a sector map in volatile memory when the computing device starts operation.

19. The one or more computer storage media devices as recited in claim 13 , the multiple instructions further causing the one or more processors to:

encrypt unencrypted data from sectors of the storage volume;

determine when no unencrypted data remains on the storage volume; and

delete the sector map and ceasing using the sector map in response to no unencrypted data remaining on the storage volume.

20. The one or more computer storage media devices as recited in claim 19 , the multiple instructions further causing the one or more processors to remove, from the sector map, an identifier and corresponding signature of a sector in response to unencrypted data from the sector being encrypted.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2011
From: BASMOV, INNOKENTIY; NYSTROM, MAGNUS BO GUSTAF; SEMENKO, ALEX M.; MACIVER, DOUGLAS M.; LI, DONGHUI
To: MICROSOFT CORPORATION
Reel/Frame 026832/0952 →
Continuity (1)
Related Publication 20130054979A1 · Feb 28, 2013