IP Library › Granted Patent US 10,607,025
Granted Patent B2
US 10,607,025 · App. 15/267,116 · Granted Mar 31, 2020

Access control through data structures

Inventor: Andrew James Rasmussen (San Diego, CA)
Assignee: PeerNova, Inc.
G06F21/6227H04L9/3247G06F2221/2141
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,607,025
App. No.
15/267,116
Granted
Mar 31, 2020
Kind
B2
Abstract

A data structure includes data that allows specific users to access data items that are part of the data structure and allows the users to store data items in association with the data structure. The data structure includes a root node which is the genesis of the data structure. The data structure further includes an access node for each user granted access rights to the data structure. An access node granting a user access rights to the data structure is directly connected to the root node. For a user whose access rights to the data structure are revoked, the data structure includes an additional access node directly connected to the access node that gave the user access rights. The data structure also includes a record node for each data item that is part of the data structure. Each record node is connected to the root node directly or indirectly.

Claims (44)

1. A computer implemented method comprising:

receiving, by a data storage system from a client device associated with a user, a request to access a data item included in a graph data structure comprising a plurality of linked nodes including a root node, a set of access nodes specifying access permissions for the graph data structure, and a set of record nodes of data items for the graph data structure, wherein the set of record nodes comprises a record node including the data item, the record node including the data item part of a node lineage including the root node and the set of record nodes, each record node in the set of record nodes including a hash digest of a parent node of the record node in the node lineage;

determining, by the data storage system, that the user has access rights to the data item by:

identifying, of access nodes directly connected to the root node of the data structure, a first access including a hash digest of the root node and cryptographic information associated with the user; and

determining that the first access node does not have any child nodes in the graph data structure;

transmitting, by the data storage system, the data item to the client device associated with the user in response to determining that the user has access rights to the data item;

receiving, by the data storage system from a client device associated with a second user, a request to access a data item included in the graph data structure;

determining, by the data storage system, that the second user does not have access rights to the data item requested by the client device associated with the second user by:

identifying, of access nodes directly connected to the root node of the data structure, a second access node including a hash digest of the root node and cryptographic information associated with the second user; and

identifying a child node directly connected to the second access node and including a hash digest of the second access node, the child node revoking access rights of the second user; and

responsive to the determination that the second user does not have access rights, denying, by the data storage system, access to the data item for the received request from the client device associated with the second user.

2. The method of claim 1 , wherein the cryptographic information associated with the user is a public key associated with the user.

3. The method of claim 1 , wherein determining that the user has access rights to the data item further comprises:

receiving, from the client device associated with the user, a digital signature generated using a private key associated with the user; and

verifying the digital signature using a public key included in the first access node.

4. The method of claim 1 , wherein determining that the user has access rights to the data item further comprises:

determining that the record node including the data item includes the cryptographic information associated with the user.

5. The method of claim 1 , further comprising:

receiving an additional request to access the data item from an additional client device associated with a third user; and

determining that the third user does not have access rights to the data item based on access nodes directly connected to the root node of the data structure not including an access node including cryptographic information associated with the third user.

6. A computer implemented method comprising:

receiving, by a data storage system from a client device associated with a user, a request to store a data item in association with a graph data structure comprising a plurality of linked nodes including a root node, a set of access nodes specifying access permissions for the graph data structure, and a set of record nodes of data items for the graph data structure, each record node including a hash digest of a parent node of the record node in a node lineage of the record node;

identifying, by the data storage system, a first record node of the set of record nodes, the first record node connected to the root node of the data structure;

determining, by the data storage system, whether the user has ownership rights to the first record node by:

identifying, of access nodes directly connected to the root node of the data structure, a first access node including a hash digest of the root node and cryptographic information associated with the user; and

determining that the first access node does not have any child nodes in the graph data structure;

creating, by the data storage system, a second record node connected to the first record node in response to determining that the user has ownership rights to the first record node, the second record node including the data item and a hash digest of the first record node;

receiving, by a data storage system from a client device associated with a second user, a request to store a second data item in association with the graph data structure;

identifying, by the data storage system, a third record node of the set of record nodes, the third record node connected to the root node of the data structure;

determining, by the data storage system, that the second user does not have ownership rights to the third record node by:

identifying, of access nodes directly connected to the root node of the data structure, a second access node including a hash digest of the root node and cryptographic information associated with the second user; and

identifying a child node directly connected to the second access node and including a hash digest of the second access node, the child node revoking ownership rights of the second user; and

responsive to the determination that the second user does not have ownership rights to the third record node, denying, by the data storage system, the request to store the second data item in association with the graph data structure.

7. The method of claim 6 , wherein the first record node is identified based on the request to store the data item indicating that the data item is to be linked to the first record node.

8. The method of claim 6 , wherein the cryptographic information associated with the user is a public key and determining whether the user has ownership rights to the first record node further comprises:

receiving, from the client device associated with the user, a digital signature generated using a private key associated with the user; and

determining that the user has ownership rights to the first record node in response to verifying the digital signature using the public key included in the first record node.

9. The method of claim 6 , wherein creating the second record node comprises:

creating the second record in response to determining that the user has ownership rights to the first record node and the user has access rights to the data structure.

10. The method of claim 9 , further comprising:

receiving, from the client device, a digital signature generated using a private key associated with the user;

and

determining that the user has access rights to the data structure in response to verifying the digital signature using a public key included in a third access node of access nodes directly connected to the root node of the data structure, the third access node including a hash digest of the root node.

11. The method of claim 6 , wherein the second record node includes a public key of an additional user with ownership rights to store an additional data item directly linked to the second record node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2016
From: RASMUSSEN, ANDREW JAMES
To: PEERNOVA, INC.
Reel/Frame 039764/0392 →
Continuity (1)
Related Publication 20180075252A1 · Mar 15, 2018
Cited By (1)
US 12,518,047