IP Library Granted Patent US 7,792,301
Granted Patent B2
US 7,792,301 · App. 11/427,660 · Granted Sep 7, 2010

Access control and encryption in multi-user systems

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 7,792,301
App. No.
11/427,660
Granted
Sep 7, 2010
Kind
B2
Abstract

In a storage system, multiple information units are individually associated with an access control policy (ACP) of multiple ACPs. Each respective information unit corresponds to a respective information unit encryption key (IUEK). The multiple information units are grouped into encryption zones based on their associated ACPs. In a described implementation, each ACP is associated with a zone root key (ZRK). In another described implementation, each IUEK corresponding to a given information unit is encrypted by an IUEK corresponding to an information unit at a most-proximate linked node of the storage system.

Claims (76)

1. A computer-implemented method comprising:

storing, in a memory, instructions for performing the method;

executing the instructions on a processor;

according to the instructions being executed:

obtaining an access control policy (ACP) that is associated with an encrypted information unit,

wherein the encrypted information unit comprises data and metadata;

wherein the encrypted information unit is stored in a storage system, wherein the storage system comprises a hierarchically linked chain of nodes;

wherein each node stores a respective encrypted information unit;

wherein each chain of nodes includes a zone root node, and a zone root key associated therewith; and

wherein the metadata comprises an information unit encryption key (IUEK) as encrypted by an information unit encryption key (IUEK) stored in a parent encrypted information unit which occupies the most proximate previous linked node in a storage system;

contacting a trusted storage with reference to the ACP that is associated with the encrypted information unit;

receiving from the trusted storage a zone root key that corresponds to the ACP that is associated with the encrypted information unit; and

using the zone root key, traversing an encryption key chain to decrypt an information unit encryption key that corresponds to the encrypted information unit,

wherein traversing comprises:

decrypting an information unit encryption key associated with the zone root node using the zone root key;

decrypting one or more respective intermediate information unit encryption keys using respective information unit encryption keys stored in a respective most-proximate previous linked node in a storage system;

wherein the encryption key chain comprises the information unit encryption keys, each one of the information unit encryption keys associated with a node in a chain of nodes which includes the encrypted information unit; and

wherein the decrypting of the one or more respective intermediate information unit encryption keys comprises decrypting the information unit encryption key that corresponds to the encrypted information unit using the encryption key associated with the respective most-proximate previous linked node associated with the encrypted information unit.

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

decrypting data of the encrypted information unit using the information unit encryption key.

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

detecting that a second ACP is being merged into a first ACP;

responsive to the detecting, merging a second encryption zone associated with the second ACP into a first encryption zone associated with the first ACP by:

incorporating a second zone root key corresponding to the second encryption zone into an encryption key chain of the first encryption zone using a first zone root key corresponding to the first encryption zone; and

instructing the trusted storage to unpublish the second zone root key of an entry that associates the second ACP to the second encryption zone.

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

detecting that a second ACP is being split from a first ACP that is associated with a first encryption zone;

responsive to the detecting, creating a second encryption zone that is associated with the second ACP by:

traversing an encryption key chain of the first encryption zone to extract an information unit encryption key for the second encryption zone, the extracted information unit encryption key comprising a second zone root key for the second encryption zone;

removing the information unit encryption key for the second zone root from an information unit thereof; and

instructing the trusted storage to publish the second zone root key in association with the second ACP.

5. A computer-implemented method comprising:

storing, in a memory, instructions for performing the method;

executing the instructions on a processor;

according to the instructions being executed:

obtaining an access control policy (ACP) that is associated with an encrypted information unit,

wherein the encrypted information unit comprises data and metadata;

wherein the encrypted information unit is stored in a storage system, wherein the storage system comprises a hierarchically linked chain of nodes;

wherein each node stores a respective encrypted information unit;

wherein each chain of nodes includes a zone root node, and a zone root key associated therewith; and

wherein the metadata comprises an information unit encryption key (IUEK) as encrypted by an information unit encryption key (IUEK) stored in a parent encrypted information unit which occupies the most proximate previous linked node in a storage system;

contacting a trusted storage with reference to the ACP that is associated with the encrypted information unit;

receiving from the trusted storage a zone root key that corresponds to the ACP that is associated with the encrypted information unit; and

using the zone root key, traversing an encryption key chain to decrypt an information unit encryption key that corresponds to the encrypted information unit,

wherein traversing comprises:

decrypting an information unit encryption key associated with the zone root node using the zone root key;

decrypting one or more respective intermediate information unit encryption keys using respective information unit encryption keys stored in a respective most-proximate previous linked node in a storage system;

wherein the encryption key chain comprises the information unit encryption keys, each one of the information unit encryption keys associated with a node in a chain of nodes which includes the encrypted information unit; and

wherein the decrypting of the one or more respective intermediate information unit encryption keys comprises decrypting the information unit encryption key that corresponds to the encrypted information unit using the encryption key associated with the respective most-proximate previous linked node associated with the encrypted information unit;

detecting that a second ACP is being merged into the ACP that is associated with the encrypted information unit;

responsive to the detecting, merging a second encryption zone associated with the second ACP into a first encryption zone associated with the first ACP by:

incorporating a second zone root key corresponding to the second encryption zone into an encryption key chain of the first encryption zone using the zone root key corresponding to the first encryption zone; and

instructing the trusted storage to unpublish the second zone root key of an entry that associates the second ACP to the second encryption zone.

6. A computer-implemented method comprising:

storing, in a memory, instructions for performing the method;

executing the instructions on a processor;

according to the instructions being executed:

obtaining an access control policy (ACP) that is associated with an encrypted information unit,

wherein the encrypted information unit comprises data and metadata;

wherein the encrypted information unit is stored in a storage system, wherein the storage system comprises a hierarchically linked chain of nodes;

wherein each node stores a respective encrypted information unit;

wherein each chain of nodes includes a zone root node, and a zone root key associated therewith; and

wherein the metadata comprises an information unit encryption key (IUEK) as encrypted by an information unit encryption key (IUEK) stored in a parent encrypted information unit which occupies the most proximate previous linked node in a storage system;

contacting a trusted storage with reference to the ACP that is associated with the encrypted information unit;

receiving from the trusted storage a zone root key that corresponds to the ACP that is associated with the encrypted information unit; and

using the zone root key, traversing an encryption key chain to decrypt an information unit encryption key that corresponds to the encrypted information unit,

wherein traversing comprises:

decrypting an information unit encryption key associated with the zone root node using the zone root key;

decrypting one or more respective intermediate information unit encryption keys using respective information unit encryption keys stored in a respective most-proximate previous linked node in a storage system;

wherein the encryption key chain comprises the information unit encryption keys, each one of the information unit encryption keys associated with a node in a chain of nodes which includes the encrypted information unit; and

wherein the decrypting of the one or more respective intermediate information unit encryption keys comprises decrypting the information unit encryption key that corresponds to the encrypted information unit using the encryption key associated with the respective most-proximate previous linked node associated with the encrypted information unit;

detecting that a second ACP is being split from the ACP that is associated with a first encryption zone that is associated with the encrypted information unit;

responsive to the detecting, creating a second encryption zone that is associated with the second ACP by:

traversing an encryption key chain of the first encryption zone to extract an information unit encryption key for the second encryption zone, the extracted information unit encryption key comprising a second zone root key for the second encryption zone;

removing the information unit encryption key for the second zone root from an information unit thereof; and

instructing the trusted storage to publish the second zone root key in association with the second ACP.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2010
From: BHARADWAJ, VIJAY G; BRYCE, DUNCAN G; HAMBURG, MIKE; PANDYA, RAVINDRA N
To: MICROSOFT CORPORATION
Reel/Frame 024638/0232 →