IP Library Granted Patent US 9,356,965
Granted Patent B2
US 9,356,965 · App. 14/143,692 · Granted May 31, 2016

Method and system for providing transparent trusted computing

Inventor: Alexander Kjeldaas (Saltsjö-Boo, SE)
H04L63/20G06F8/71G06F21/6245G06F21/64H04L67/10
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 9,356,965
App. No.
14/143,692
Granted
May 31, 2016
Kind
B2
Abstract

A method performed at an electronic device with one or more processors and memory includes obtaining a public record including a plurality of commit nodes, where a respective commit node of the plurality of commit nodes includes: (i) a set of blobs corresponding to a collection of data; (ii) at least one cryptographic hash of one of the set of blobs; and (iii) at least one additional cryptographic hash of a parent node. The method includes: caching the public record; and obtaining, at a time after the obtaining, information corresponding to a new commit node, where the new commit node: includes a cryptographic hash of a parent node; and is associated with an updated collection of data. The method includes validating the new commit node; and in accordance with a determination that the new commit node is valid, updates the cached public record to include the new commit node.

Claims (64)

1. A method of providing transparent trusted computing, comprising:

at an electronic device with one or more processors and memory:

obtaining all or a portion of the public record that includes a plurality of nodes in a directed-acyclic graph, the plurality of nodes includes a plurality of commit nodes, wherein a respective commit node of the plurality of commit nodes includes:

(i) a set of blobs corresponding to a collection of data;

(ii) at least one representation of a cryptographic hash of one of the set of blobs; and

(iii) at least one additional representation of a cryptographic hash of a parent node;

caching one or more nodes of the public record;

obtaining, at a time after obtaining the all or the portion of the public record, information corresponding to a new commit node, wherein:

the new commit node includes at least one representation of a cryptographic hash of a parent node of the new commit node; and

the new commit node is associated with an updated collection of data;

validating the new commit node; and

in accordance with a determination that the new commit node is valid, updating the cached portion of the public record to include the new commit node.

2. The method of claim 1 , wherein the plurality of nodes include in the directed-acyclic graph further includes one or more data-only nodes, wherein a respective data-only node of the one or more data-only nodes includes:

(i) one or more blobs corresponding to a collection of data;

(ii) at least one representation of a cryptographic hash of one of the one or more blobs; and

(iii) not a representation of a cryptographic hash of a parent node.

3. The method of claim 1 , wherein an edge of the directed-acyclic graph from a first node to a second node includes a representation of a cryptographic hash of the second node in a cryptographic hash of the first node.

4. The method of claim 1 , wherein one or more blobs in the set of blobs are associated with another commit node other than the respective commit node.

5. The method of claim 1 , wherein one or more of the plurality of commit nodes are root nodes, the method further comprising:

determining whether the new commit node is a root commit node; and

in accordance with a determination that the new commit node is one of the one or more root commit nodes, updating the cached public record to include the new commit node as one of the one or more root commit nodes.

6. The method of claim 1 , wherein validating the new commit node includes:

determining a path from the new commit node to a node in the cached portion of the public record;

validating every node, excluding the cached commit node, on the path, wherein validating a respective node on the path includes verifying the at least one representation of the cryptographic hash of one of the set of blobs corresponding to the respective node; and

verifying the representation of the cryptographic hash of the parent node of the new commit node.

7. The method of claim 1 , wherein validating the new commit node includes verifying a signature condition.

8. The method of claim 1 , wherein validating the new commit node includes determining whether the new commit satisfies a set of global rules associated with the public record and a set private policies associated with a user of the electronic device.

9. The method of claim 1 , further comprising:

performing a query over the updated collection of data; and

initiating an operation that depends on the results of the query.

10. The method of claim 9 , wherein the operation also includes creating a commit node in the public record.

11. The method of claim 9 , wherein:

the query includes a query for portions of a program; and

the operation includes executing the program in an environment.

12. The method of claim 11 , wherein the environment is a trusted environment supporting a method of remote attestation.

13. The method of claim 1 , wherein the electronic device is a trusted computer, the method further comprising:

storing private data on behalf of a user, wherein the private data is associated with a data protection policy;

in accordance with a determination that the new commit node is valid, determining whether the updated collection of data associated with the new commit node satisfies the data protection policy; and

in accordance with a determination that the updated collection of data associated with the new commit node does not satisfy the data protection policy, initiating a security protocol.

14. The method of claim 13 , wherein initiating the security protocol includes deleting the private data.

15. An electronic device, comprising:

one or more processors; and

memory storing one or more programs to be executed by the one or more processors, the one or more programs comprising instructions for:

obtaining all or a portion of the public record that includes a plurality of nodes in a directed-acyclic graph, the plurality of nodes include a plurality of commit nodes, wherein a respective commit node of the plurality of commit nodes includes:

(i) a set of blobs corresponding to a collection of data;

(ii) at least one representation of a cryptographic hash of one of the set of blobs; and

(iii) at least one additional representation of a cryptographic hash of a parent node;

caching one or more nodes of the portion of the public record;

obtaining, at a time after obtaining the all or the portion of the public record, information corresponding to a new commit node, wherein:

the new commit node includes at least one representation of a cryptographic hash of a parent node of the new commit node; and

the new commit node is associated with an updated collection of data;

validating the new commit node; and

in accordance with a determination that the new commit node is valid, updating the cached portion of the public record to include the new commit node.

16. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which, when executed by an electronic device with one or more processors, cause the electronic device to perform operations comprising:

obtaining all or a portion of the public record that includes a plurality of nodes in a directed-acyclic graph, the plurality of nodes include a plurality of commit nodes, wherein a respective commit node of the plurality of commit nodes includes:

(i) a set of blobs corresponding to a collection of data;

(ii) at least one representation of a cryptographic hash of one of the set of blobs; and

(iii) at least one additional representation of a cryptographic hash of a parent node;

caching one or more nodes of the portion of the public record;

obtaining, at a time after obtaining the all or the portion of the public record, information corresponding to a new commit node, wherein:

the new commit node includes at least one representation of a cryptographic hash of a parent node of the new commit node; and

the new commit node is associated with an updated collection of data;

validating the new commit node; and

in accordance with a determination that the new commit node is valid, updating the cached portion of the public record to include the new commit node.

Continuity (1)
Related Publication 20150188945A1 · Jul 2, 2015