Signatures of updates exchanged in a binary data synchronization protocol

US10038559B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10038559-B2
Application numberUS-201615284116-A
CountryUS
Kind codeB2
Filing dateOct 3, 2016
Priority dateOct 2, 2015
Publication dateJul 31, 2018
Grant dateJul 31, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In a distributed system, data is shared between three or more electronic devices. The first device generates and signs an object that includes the data. A second device receives the signed object and determines whether the signed object is valid. If valid, the second device will generate a validated signed object and send it to a third device. The third device will validate the object by determining whether the object includes valid signatures of both the first and second devices.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method of sharing an object between electronic devices in a distributed system, the method comprising: by a first electronic device that is associated with a sync group: generating an object, signing the object to create a signed object, and transmitting the signed object to a second electronic device that is associated with the sync group; by the second electronic device: receiving the signed object, determining whether the signed object is valid, upon determining that the signed object is valid creating a validated signed object, and transmitting the validated signed object to a third electronic device that is associated with the sync group; by the third electronic device: receiving the validated signed object from the second device, determining whether the validated signed object includes a valid signature of the first electronic device and a valid signature of the second electronic device, and if the validated signed object includes the valid signature of the first electronic device and the valid signature of the second electronic device sending the validated signed object to an additional device associated with the sync group, otherwise not sending or using the validated signed object; and by the second electronic device or the third electronic device: receiving an entry that comprises the signed object or the validated signed object, determining whether a lookup key for the entry ends in a value that matches a cryptographic hash of a corresponding entry that is stored in a data store, wherein the value includes a blessing pattern of the first device, a blessing pattern of a trusted re-signer, a sequence number, and a signature of the first device, and only accepting the entry if the lookup key for the entry ends in the value, otherwise rejecting the entry. 2. The method of claim 1 , wherein generating the object and signing the object to create the signed object comprise, by the first electronic device: granting a blessing to a storage service of the first electronic device; creating the object with the data and the blessing; and applying a signature to the object to yield the signed object. 3. The method of claim 1 , wherein the determining whether the signed object is valid comprises, by the second electronic device: verifying whether a remote end of a remote procedure call associated with the signed object is authorized by an access control list for the data; verifying that the remote end of the remote procedure call includes a public key of the first electronic device; and using the public key of the first electronic device to verify a signature of the signed object. 4. The method of claim 3 , wherein the determining whether the signed object is valid further comprises, by the second electronic device: extracting one or more blessing names from a blessing of the signed object; and verifying that the extracted one or more blessing names satisfy the access control list. 5. The method of claim 1 , wherein creating the validated signed object comprises, by the second electronic device, creating the validated signed object to include: the signed object; one or more blessing names extracted from the signed object; a public key of the second electronic device; and a signature of the second electronic device. 6. The method of claim 1 , wherein: determining whether the validated signed object includes the valid signature of the first electronic device and the valid signature of the second electronic device comprises determining, by the third electronic device, that the validated signed object includes the valid signature of the first electronic device but not the valid signature of the second electronic device; and the method further comprises, by the third electronic device, requiring the second electronic device to provide an updated validated signed object with the valid signature of the second electronic device. 7. The method of claim 1 , wherein: determining whether the validated signed object includes the valid signature of the first electronic device and the valid signature of the second electronic device comprises determining, by the third electronic device, that the validated signed object includes the valid signature of the second electronic device but not the valid signature of the first electronic device; and the method further comprises, by the third electronic device, either ignoring the validated signed object or requiring the second electronic device to obtain a signature of the first electronic device for the validated signed object. 8. The method of claim 1 , further comprising, by the second electronic device or the third electronic device: receiving a batch comprising a plurality of updated objects; determining whether any row in the batch is in conflict due to a difference between a local version and a remote version of the row; and for any row that is determined to be in conflict, adding the row to a closure. 9. The method of claim 1 , wherein the value also includes a public key. 10. The method of claim 1 , further comprising, by the second electronic device or the third electronic device: receiving an entry that comprises the signed object or the validated signed object; determining whether a lookup key for the entry includes a blessing pattern of a trusted re-signer; and only accepting the entry if the lookup key for the entry includes the blessing pattern of the trusted re-signer, otherwise rejecting the entry. 11. A system of electronic devices, in which the system comprises: a hardware processor; and a memory device; in which the system also includes program instructions that are configured to cause a processor of a second device in the system to share an object by: receiving the object from a first electronic device of the system as a signed object, determining whether the signed object is valid, upon determining that the signed object is valid creating a validated signed object, and transmitting the validated signed object to a third electronic device that is associated with a sync group; and the system also includes program instructions that are configured cause a processor of a the third electronic device in the system to share the object by: receiving the validated signed object from the second device, determining whether the validated signed object includes a valid signature of the first electronic device and a valid signature of the second electronic device, and if the validated signed object includes the valid signature of the first electronic device and the valid signature of the second electronic device sending the validated signed object to an additional device associated with the sync group, otherwise not sending or using the validated signed object; and the system also comprises additional program instructions configured to cause the second electronic device or the third electronic device to: receive an entry that comprises the signed object or the validated signed object, determine whether a lookup key for the entry ends in a value that matches a cryptographic hash of a corresponding entry that is stored in a data store, wherein the value includes a blessing pattern of the first device, a blessing pattern of a trusted re-signer, a sequence number, and a signature of the first device, and only accept the entry if the lookup key for the entry ends in the value, otherwise reject the entry. 12. The system of claim 11 , wherein the system also includes program instructions that are configured to cause the first electronic device to generate the object and sign the object to create the signed object by: granting a blessing

Assignees

Inventors

Classifications

  • wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for public-key encryption H04L9/30) · CPC title

  • H04L9/3247Primary

    involving digital signatures · CPC title

  • Access rights, e.g. capability lists, access control lists, access tables, access matrices · CPC title

  • G06F21/64Primary

    Protecting data integrity, e.g. using checksums, certificates or signatures · CPC title

  • Relational databases · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10038559B2 cover?
In a distributed system, data is shared between three or more electronic devices. The first device generates and signs an object that includes the data. A second device receives the signed object and determines whether the signed object is valid. If valid, the second device will generate a validated signed object and send it to a third device. The third device will validate the object by determ…
Who is the assignee on this patent?
Google Llc
What technology area does this patent fall under?
Primary CPC classification H04L9/3247. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jul 31 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).