IP Library Granted Patent US 10,129,032
Granted Patent B2
US 10,129,032 · App. 15/044,574 · Granted Nov 13, 2018

Secure revisioning auditing system for electronic document files

Inventor: David R. Vandervort (Walworth, NY)
Assignee: Xerox Corporation
H04L9/3247H04L63/061H04L63/123H04L63/0442H04L63/0823H04L2209/38H04L2209/56
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,129,032
App. No.
15/044,574
Granted
Nov 13, 2018
Kind
B2
Abstract

Methods and systems for providing secure recording of revisions made to electronic documents, using secure methods to validate the recorded changes, are disclosed. An electronic device making a change to an electronic document can transmit the change to the network. An audit log chain is residing on the network and shared among all the nodes on the network. A node on the network can verify a change of document made by other nodes and add a new block to the chain using one-way hashes, making the chain resistant to tampering. If an invalid block is detected, the system can send an auditing alert to the network. The audit log can be strongly resistant to tampering, providing reliable evidence for use in audit compliance, investigations, and business or court record keeping.

Claims (113)

1. A method of securely auditing revisions to an electronic document, the method comprising:

by a system comprising a processing device, executing programming instructions that will cause the processing device of the system to:

identify a first version of an electronic document,

receive, from a user electronic device, a revised version of the electronic document,

analyze the first version and the revised version to create a diff between the first version and the revised version,

form a data packet that comprises the diff and an identifier for the user electronic device or for a user of the user electronic device,

access a private key for the user or the user electronic device,

sign the data packet with the private key,

transmit the signed data packet to a plurality of nodes on a communication network; and

by a processing device of a first node on the communication network, executing programming instructions that will cause the processing device of the first node to:

receive the signed data packet,

create a block comprising the signed data packet and a plurality of additional signed data packets,

access a chain on the communication network,

validate the block, and

upon validation of the block,

update the chain based on the validated block, and

save the updated chain to a memory so that the chain is available to a plurality of authorized additional user electronic devices via the communication network.

2. The method of claim 1 , further comprising, by the processing device of the first node on the communication network, executing additional programming instructions that will cause the processing device of the node to:

verify the signed data packet before creating the block; and

upon verification of the signed data packet, create the block comprising the signed, verified data packet and a plurality of additional signed data packets.

3. The method of claim 2 , wherein verifying the signed data packet comprises:

verifying the signed data packet against one or more rules to determine whether the one or more rules are satisfied; and

generating an alert when at least one of the one or more rules is not satisfied.

4. The method of claim 1 , further comprising, by the processing device of the system, executing programming instructions that will also cause the processing device of the system to:

receive, from a second user electronic device, a second revised version of the electronic document;

analyze the revised version and the second revised version to create a second diff;

form a second data packet that comprises the second diff and an identifier for the second user electronic device or for a second user of the second user electronic device;

identify a second private key for the second user or the second user electronic device;

sign the second data packet with the second private key; and

transmit the second signed data packet to the plurality of nodes on the communication network.

5. The method of claim 1 , wherein accessing the private key comprises receiving the private key from a key store or a wallet.

6. The method of claim 1 , wherein accessing the private key comprises generating the private key.

7. The method of claim 1 , wherein validating the block comprises:

verifying whether the block is already validated by an additional node of the system; and

abandoning the validation of the block if the block is already validated.

8. The method of claim 1 , wherein accessing the chain on the communication network comprises obtaining an updated chain from the communication network if the node on the communication network is offline for a period of time.

9. The method of claim 1 , wherein accessing the chain on the communication network comprises obtaining an updated chain from the communication network if one or more quality criteria associated with validating the block are not satisfied.

10. The method of claim 1 , wherein the signed data packet further comprises at least one of a system name, an uptime, a number of transactions processed, a number of transactions in an unassigned pool, a current time and location of the user electronic device or a user of the user electronic device.

11. The method of claim 1 , further comprising executing programming instructions that will cause the processing device of the system to validate one or more of the plurality of nodes on the communication network.

12. A system for securely auditing revisions to an electronic document, the system comprising:

a processing device; and

a hardware-based non-transitory storage medium operably connected to the processing device and configured to store a set of instructions that, when executed, cause the processing device to:

identify a first version of an electronic document,

receive, from a user electronic device, a revised version of the electronic document,

analyze the first version and the revised version to create a diff between the first version and the revised version,

form a data packet that comprises the diff and an identifier for the user electronic device or for a user of the user electronic device,

access a private key for the user or the user electronic device,

sign the data packet with the private key,

transmit the signed data packet to a plurality of nodes on a communication network, and

receive an alert from the communication network when at least one of the plurality of nodes on the communication network fails to verify the signed data packet; and

a first node on the communication network, wherein the first node is configured to execute programming instructions that will cause the first node to:

receive the signed data packet,

create a block comprising the signed data packet and a plurality of additional signed data packets,

access a chain on the communication network,

validate the block, and

upon validation of the block,

update the chain based on the validated block, and

save the updated chain to a memory so that the chain is available to a plurality of authorized additional user electronic devices via the communication network.

13. The system of claim 12 , wherein the processing device is configured to:

receive, from a second user electronic device, a second revised version of the electronic document;

analyze the revised version and the second revised version to create a second diff;

form a second data packet that comprises the second diff and an identifier for the second user electronic device or for a second user of the second user electronic device;

identify a second private key for the second user or the second user electronic device;

sign the second data packet with the second private key; and

transmit the second signed data packet to the plurality of nodes on the communication network.

14. The system of claim 12 , wherein the instructions for causing the processing device to access the private key comprises further instructions that will cause the processing device to receive the private key from a key store or a wallet.

15. The system of claim 12 , wherein the instructions for causing the processing device to access the private key comprises further instructions that will cause the processing device to generate the private key.

16. The system of claim 12 , wherein the signed data packet further comprises at least one of a system name, an uptime, a number of transactions processed, a number of transactions in an unassigned pool, a current time and location of the user electronic device or a user of the user electronic device.

17. The system of claim 15 , wherein the set of instructions comprises further instructions that will cause the processing device to validate one or more of the plurality of nodes on the communication network.

18. A method for securely auditing revisions to an electronic document, the method comprising:

identifying, by a processing device, a first version of an electronic document;

receiving, by the processing device, from a user electronic device, a revised version of the electronic document;

analyzing, by the processing device, the first version and the revised version to create a diff between the first version and the revised version;

forming, by the processing device, a data packet that comprises the diff and an identifier for the user electronic device or for a user of the user electronic device;

accessing, by the processing device, a private key for the user or the user electronic device;

signing, by the processing device, the data packet with the private key;

transmitting, by the processing device, the signed data packet to a plurality of nodes on a communication network; and

by a processing device of a first node on the communication network, executing programming instructions that will cause the processing device of the first node to:

receive the signed data packet,

create a block comprising the signed data packet and a plurality of additional signed data packets,

access a chain on the communication network,

attempt to validate the block, and

if the processing device of the first node validates the block:

update the chain based on the validated block, and

save the updated chain to a memory so that the chain is available to a plurality of authorized additional user electronic devices via the communication network,

if the processing device of the first node fails to validate the block, generate an alert and send the alert via the communication network.

19. The method of claim 18 , further comprising:

receiving, by the processing device, from a second user electronic device, a second revised version of the electronic document;

analyzing, by the processing device, the revised version and the second revised version to create a second diff;

forming, by the processing device, a second data packet that comprises the second diff and an identifier for the second user electronic device or for a second user of the second user electronic device;

identifying, by the processing device, a second private key for the second user or the second user electronic device;

signing, by the processing device, the second data packet with the second private key; and

transmitting, by the processing device, the second signed data packet to the plurality of nodes on the communication network.

20. The method of claim 18 , wherein accessing the private key comprises receiving the private key from a key store or a wallet.

21. The method of claim 18 , wherein accessing the private key comprises generating the private key.

22. The method of claim 18 , wherein the signed data packet further comprises at least one of a system name, an uptime, a number of transactions processed, a number of transactions in an unassigned pool, a current time and location of the user electronic device or a user of the electronic device.

23. The method of claim 18 , wherein further comprising validating one or more of the plurality of nodes on the communication network.

24. A method for securely auditing revisions to an electronic document, the method comprising:

by a user electronic device, forming a diff of an electronic document, wherein the diff represents a difference between a first version and a revised version of the electronic document;

by a processing device, receiving the diff from the user electronic device;

forming, by the processing device, a data packet that comprises the diff and an identifier for the user electronic device or for a user of the user electronic device;

accessing, by the processing device, a private key for the user or the user electronic device;

signing, by the processing device, the data packet with the private key;

transmitting, by the processing device, the signed data packet to a plurality of nodes on a communication network; and

by a processing device of a first node on the communication network, executing programming instructions that will cause the processing device of the first node to:

receive the signed data packet,

create a block comprising the signed data packet and a plurality of additional signed data packets,

access a chain on the communication network,

attempt to validate the block, and

if the processing device of the first node validates the block:

update the chain based on the validated block; and

save the updated chain to a memory so that the chain is available to a plurality of authorized additional user electronic devices via the communication network, and

if the processing device of the first node fails to validate the block, generate an alert and send the alert via the communication network.

Assignments (9)
SECOND LIEN NOTES PATENT SECURITY AGREEMENT Recorded Jul 2, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 071785/0550 →
FIRST LIEN NOTES PATENT SECURITY AGREEMENT Recorded Apr 11, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 070824/0001 →
SECURITY INTEREST Recorded Feb 13, 2024
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066741/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT RF 064760/0389 Recorded Feb 13, 2024
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: XEROX CORPORATION
Reel/Frame 068261/0001 →
SECURITY INTEREST Recorded Nov 20, 2023
From: XEROX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065628/0019 →
SECURITY INTEREST Recorded Jun 22, 2023
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 064760/0389 →
RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 062740/0214 Recorded May 18, 2023
From: CITIBANK, N.A., AS AGENT
To: XEROX CORPORATION
Reel/Frame 063694/0122 →
SECURITY INTEREST Recorded Nov 10, 2022
From: XEROX CORPORATION
To: CITIBANK, N.A., AS AGENT
Reel/Frame 062740/0214 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2016
From: VANDERVORT, DAVID R.
To: XEROX CORPORATION
Reel/Frame 037743/0202 →
Continuity (1)
Related Publication 20170237569A1 · Aug 17, 2017
Cited By (4)
US 12,278,856 US 12,423,033 US 12,671,728 US 12,678,067