Multi-level access control for distributed storage systems
US-2017061146-A1 · Mar 2, 2017 · US
US9990474B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9990474-B2 |
| Application number | US-201615072275-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 16, 2016 |
| Priority date | Mar 16, 2016 |
| Publication date | Jun 5, 2018 |
| Grant date | Jun 5, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
In a digital rights management system, layers are defined for each document and user permissions are specified for each layer, to control user access at the layer-level. The layers are ordered by depth, where a layer completely contained inside another layer is deemed deeper than the other layer. The layers are encrypted in a deep-to-shallow order, each by its own encryption key. The entire document is then encrypted. When a user requests access to a document, the system generates an ordered sequence of encryption keys based on the user's access rights for each layer. The document open program on the user's client computer attempts to decrypt the various layers using the ordered sequence of keys. The client program and the system's key sequence generating algorithm are designed to give the result that only layers that the user has access to are successfully decrypted and displayed at document open time.
Opening claim text (preview).
What is claimed is: 1. In a digital rights management system including a server connected to a client, an access authorization method executed by the server, comprising: (a) storing a document encryption key and document-level access control information for each of a plurality of documents, the document-level access control information specifying whether each of a plurality of users has access rights to the document; (b) storing layer-level access control information for each document, the layer-level access control information including, for each of a plurality of layers defined for the document, a layer identification (ID), a document identification (ID) identifying the document, user permission information specifying whether each user has access rights to content of the layer, and a layer encryption key for the layer; (c) receiving, from the client, a document access request by a requesting user to access a requested document identified by a document ID; (d) retrieving the layer-level access control information for the requested document; (e) generating sequence information that represents an ordered sequence of the layer encryption keys or layer IDs, the ordered sequence containing one copy of the layer encryption key or layer ID for each layer and arranged in an order that is uniquely determined by the access rights of the requesting user to access each layer; and (f) transmitting a second reply to the client which includes the sequence information, the layer encryption key for each layer, the layer ID associated with each layer encryption key, and the document encryption key for the document. 2. The method of claim 1 , wherein the plurality of layers form a depth sequence based on depths of the layers where any layer that is completely contained in another layer is deemed deeper than the other layer, the depth sequence being ordered from shallower layers to deeper layers, wherein step (e) includes: setting a sequence of the encryption keys or layer IDs to an initial sequence which corresponds to the depth sequence of the layers; and sequentially evaluating the layers according to the depth sequence while manipulating positions of the encryption keys or layer IDs in the sequence of the encryption keys or layer IDs, including, for each layer, and changing the position of the corresponding encryption key or layer ID in the sequence in response to a determination that the user has no access rights to the layer. 3. The method of claim 2 , wherein the step of changing the position of the corresponding encryption key or layer ID in the sequence includes: if the encryption key or layer ID is currently at the front of the sequence, moving it to the end of the sequence, and if the encryption key or layer ID is currently not at the front of the sequence, moving it to the front of the sequence. 4. The method of claim 1 , wherein in step (b) the layer-level access control information for each layer further includes zero or more conditions specifying whether access to the layer is allowed; wherein the plurality of layers form a depth sequence based on depths of the layers where any layer that is completely contained in another layer is deemed deeper than the other layer, the depth sequence being ordered from shallower layers to deeper layers, wherein step (e) includes: setting a sequence of the encryption keys or layer IDs to an initial sequence which corresponds to the depth sequence of the layers; and sequentially evaluating the layers according to the depth sequence while manipulating positions of the encryption keys or layer IDs in the sequence of the encryption keys or layer IDs, including, for each layer, changing the position of the corresponding encryption key or layer ID in the sequence in response to a determination that the user has no access rights to the layer or some of the zero or more conditions are not satisfied. 5. The method of claim 4 , wherein the step of changing the position of the corresponding encryption key or layer ID in the sequence includes: if the encryption key or layer ID is currently at the front of the sequence, moving it to the end of the sequence, and if the encryption key or layer ID is currently not at the front of the sequence, moving it to the front of the sequence. 6. In a digital rights management system including a server connected to a client, an access authorization method executed by the client for processing an encrypted document for display, comprising: (a) obtaining the document, the document having been encrypted with a document encryption key, the document containing a plurality of layers each containing defined content of the document, each layer having been encrypted by a layer encryption key and identified by a layer identification (ID), wherein for any layer that is completely contained in another layer, encrypted data of the contained layer and other content of the containing layer have been further encrypted to form encrypted data of the containing layer; (b) transmitting a document access request to the server, which includes a user identification (ID) of a user and a document identification (ID) for the document; (c) receiving from the server a reply containing sequence information that represents an ordered sequence of the layer encryption keys, a layer ID corresponding to each layer encryption key, and the document encryption key, wherein the ordered sequence contains one copy of the layer encryption key for each layer of the document and has been arranged in an order that is uniquely determined by access rights of the user to access each layer; (d) decrypting the document using the document encryption key to generated decrypted document data which contains unencrypted document content and further contains encrypted data of one or more layers, the encrypted data of each such layer being associated with a tag containing the corresponding layer ID; (e) decrypting some of the plurality of layers of the document using the ordered sequence of the layer encryption keys, wherein each layer encryption key in the order sequence is used once and only once according to the sequence to attempt to decrypt encrypted layers that are currently available for decryption, wherein data generated from each successfully decrypted layer contains unencrypted document content of that layer and further contains encrypted data of zero or more other layers, the encrypted data of each of the other layer being associated with a tag containing the corresponding layer ID, and wherein after all layer encryption keys in the order sequence are used once and only once, at least one of the layers remain encrypted; and (f) displaying the document based on decrypted data generated in steps (d) and (e), wherein document content of any of the layers that remain encrypted after step (e) is not displayed. 7. The method of claim 6 , wherein step (f) includes, for each of the at least one of the layers that remain encrypted, leaving a blank space corresponding to the document content of that layer or displaying a mask in an area corresponding to the document content of that layer. 8. A computer program product comprising a computer usable non-transitory medium having a computer readable program code embedded therein for controlling a server of a digital rights management system, the server being connected to a client, the computer readable program code configured to: (a) store a document encryption key and document-level access control information for each of a plurality of documents, the document-level access control information specifying whether each of a plurality of users has access rights to the document; (b) store layer-level access control information for each document, the layer-level access control information
Providing cryptographic facilities or services · CPC title
Physics · mapped topic
for key exchange, e.g. in peer-to-peer networks (cryptographic mechanisms or cryptographic arrangements for key agreement H04L9/0838) · CPC title
Protecting distributed programs or content, e.g. vending or licensing of copyrighted material (protection in video systems or pay television H04N7/16) {; Digital rights management [DRM]} · CPC title
to a system of files or objects, e.g. local or distributed file system or database · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.