IP Library Granted Patent US 10,387,063
Granted Patent B2
US 10,387,063 · App. 15/899,626 · Granted Aug 20, 2019

Securing encoding data slices using an integrity check value list

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,387,063
App. No.
15/899,626
Granted
Aug 20, 2019
Kind
B2
Abstract

A method includes retrieving a read threshold number of integrity check value list (ICVL) encoded data slices of a set of ICVL encoded data slices. The method further includes determining whether an appended ICVL of each ICVL encoded data slice of the read threshold number of ICVL encoded data slices substantially match. When the appended ICVL of one of the ICVL encoded does not substantially match the appended ICVL of other ICVL encoded data slices, the method further includes determining a likely cause for the mismatch. When the likely cause is missing a revision update, the method further includes initiate rebuilding of the encoded data slice portion. The method further includes generating an integrity check value for the rebuilt encoded data slice and updating the integrity check value list. The method further includes appending the updated integrity check value list to the rebuilt encoded data slice.

Claims (102)

1. A computing device comprising:

an interface configured to interface and communicate with a dispersed storage network (DSN);

memory that stores operational instructions; and

processing circuitry operably coupled to the interface and to the memory, wherein the processing circuitry is configured to execute the operational instructions to:

retrieve a read threshold number of integrity check value list (ICVL) encoded data slices (EDSs) of a set of ICVL EDSs from at least some storage units (SUs) of a set of SUs based on a request;

determine whether an appended ICVL of each ICVL EDS of the read threshold number of ICVL EDSs substantially match;

based on determination that the appended ICVL of one of the ICVL EDSs of the read threshold number of ICVL EDSs does not substantially match the appended ICVL of other ICVL EDSs of the read threshold number of ICVL EDSs:

determine a likely cause for the appended ICVL of the one of the ICVL EDSs not substantially matching the appended ICVL of the other ICVL EDSs; and

based on determination that the likely cause is an inaccurate ICVL appended to the one of the ICVL EDSs:

calculate a new integrity check value for an EDS portion of the one of the ICVL EDSs;

extract an integrity check value from the appended ICVL of one of the other ICVL EDSs to produce an extracted integrity check value;

compare the new integrity check value with the extracted integrity check value; and

based on determination that the new integrity check value substantially matches the extracted integrity check value, utilize the EDS in decoding of the read threshold number of EDSs to recover a data segment of a data object.

2. The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

based on determination that the likely cause is not the inaccurate ICVL appended to the one of the ICVL EDSs and also is not missing a revision update, take at least one corrective measure for an unauthorized modification that includes at least one of sending a delete message to a SU storing the one of the ICVL EDSs, initiating a rebuild process, or initiating at least one of a decommissioning of the SU, a quarantine of the SU, or a higher level of security regarding access to the SU.

3. The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

based on determination that the new integrity check value does not substantially matches the extracted integrity check value:

initiate rebuilding of the EDS portion of the one of the ICVL EDSs to produce a rebuilt EDS;

generate an integrity check value for the rebuilt EDS;

generate an updated ICVL including the integrity check value for the rebuilt EDS and integrity check values of the EDSs of the other ICVL EDSs;

append the updated ICVL to the rebuilt EDS to produce a rebuilt ICVL EDS; and

send the rebuilt ICVL EDS to one of the SUs of the set of SUs for storage therein.

4. The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

based on determination that the likely cause is not missing a revision update:

initiate rebuilding of the EDS portion of the one of the ICVL EDSs to produce a rebuilt EDS;

generate an integrity check value for the rebuilt EDS;

generate an updated ICVL including the integrity check value for the rebuilt EDS and integrity check values of the EDSs of the other ICVL EDSs;

append the updated ICVL to the rebuilt EDS to produce a rebuilt ICVL EDS; and

send the rebuilt ICVL EDS to one of the SUs of the set of SUs for storage therein.

5. The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

based on determination that the appended ICVL of one of the ICVL EDSs of the read threshold number of ICVL EDSs substantially matches the appended ICVL of other ICVL EDSs of the read threshold number of ICVL EDSs, process the request.

6. The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

generate a set of integrity check values for a set of EDSs, wherein the data segment of the data object is dispersed storage error encoded to produce the set of EDSs;

generate an ICVL from the set of integrity check values;

append the ICVL to each EDS of the set of EDSs to produce the set of ICVL EDSs; and

send the set of ICVL EDSs to the set of SUs of the DSN for storage therein.

7. The computing device of claim 1 , wherein the computing device is one of the SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computer (PC), a workstation, or a video game device.

8. The computing device of claim 1 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

9. A computing device comprising:

an interface configured to interface and communicate with a dispersed storage network (DSN);

memory that stores operational instructions; and

processing circuitry operably coupled to the interface and to the memory, wherein the processing circuitry is configured to execute the operational instructions to:

retrieve a read threshold number of integrity check value list (ICVL) encoded data slices (EDSs) of a set of ICVL EDSs from at least some storage units (SUs) of a set of SUs based on a request;

determine whether an appended ICVL of each ICVL EDS of the read threshold number of ICVL EDSs substantially match;

generate a set of integrity check values for a set of EDSs, wherein a data segment of a data object is dispersed storage error encoded to produce the set of EDSs;

generate an ICVL from the set of integrity check values;

append the ICVL to each EDS of the set of EDSs to produce the set of ICVL EDSs;

send the set of ICVL EDSs to the set of SUs of the DSN for storage therein;

based on determination that the appended ICVL of one of the ICVL EDSs of the read threshold number of ICVL EDSs does not substantially match the appended ICVL of other ICVL EDSs of the read threshold number of ICVL EDSs:

determine a likely cause for the appended ICVL of the one of the ICVL EDSs not substantially matching the appended ICVL of the other ICVL EDSs; and

based on determination that the likely cause is an inaccurate ICVL appended to the one of the ICVL EDSs:

calculate a new integrity check value for an EDS portion of the one of the ICVL EDSs;

extract an integrity check value from the appended ICVL of one of the other ICVL EDSs to produce an extracted integrity check value;

compare the new integrity check value with the extracted integrity check value; and

based on determination that the new integrity check value substantially matches the extracted integrity check value, utilize the EDS in decoding of the read threshold number of EDSs to recover the data segment of the data object; and

based on determination that the appended ICVL of one of the ICVL EDSs of the read threshold number of ICVL EDSs substantially matches the appended ICVL of other ICVL EDSs of the read threshold number of ICVL EDSs, process the request.

10. The computing device of claim 9 , wherein the processing circuitry is further configured to execute the operational instructions to:

based on determination that the likely cause is not the inaccurate ICVL appended to the one of the ICVL EDSs and also is not missing a revision update, take at least one corrective measure for an unauthorized modification that includes at least one of sending a delete message to a SU storing the one of the ICVL EDSs, initiating a rebuild process, or initiating at least one of a decommissioning of the SU, a quarantine of the SU, or a higher level of security regarding access to the SU.

11. The computing device of claim 9 , wherein the processing circuitry is further configured to execute the operational instructions to:

based on determination that the new integrity check value does not substantially matches the extracted integrity check value:

initiate rebuilding of the EDS portion of the one of the ICVL EDSs to produce a rebuilt EDS;

generate an integrity check value for the rebuilt EDS;

generate an updated ICVL including the integrity check value for the rebuilt EDS and integrity check values of the EDSs of the other ICVL EDSs;

append the updated ICVL to the rebuilt EDS to produce a rebuilt ICVL EDS; and

send the rebuilt ICVL EDS to one of the SUs of the set of SUs for storage therein.

12. The computing device of claim 9 , wherein the processing circuitry is further configured to execute the operational instructions to:

based on determination that the likely cause is not missing a revision update:

initiate rebuilding of the EDS portion of the one of the ICVL EDSs to produce a rebuilt EDS;

generate an integrity check value for the rebuilt EDS;

generate an updated ICVL including the integrity check value for the rebuilt EDS and integrity check values of the EDSs of the other ICVL EDSs;

append the updated ICVL to the rebuilt EDS to produce a rebuilt ICVL EDS; and

send the rebuilt ICVL EDS to one of the SUs of the set of SUs for storage therein.

13. The computing device of claim 9 , wherein the computing device is one of the SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computer (PC), a workstation, or a video game device.

14. The computing device of claim 9 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

15. A method for execution by a computing device, the method comprising:

retrieving, via an interface configured to interface and communicate with a dispersed storage network (DSN), a read threshold number of integrity check value list (ICVL) encoded data slices (EDSs) of a set of ICVL EDSs from at least some storage units (SUs) of a set of SUs within the DSN based on a request;

determining whether an appended ICVL of each ICVL EDS of the read threshold number of ICVL EDSs substantially match;

based on determination that the appended ICVL of one of the ICVL EDSs of the read threshold number of ICVL EDSs does not substantially match the appended ICVL of other ICVL EDSs of the read threshold number of ICVL EDSs:

determining a likely cause for the appended ICVL of the one of the ICVL EDSs not substantially matching the appended ICVL of the other ICVL EDSs; and

based on determination that the likely cause is an inaccurate ICVL appended to the one of the ICVL EDSs:

calculating a new integrity check value for an EDS portion of the one of the ICVL EDSs;

extracting an integrity check value from the appended ICVL of one of the other ICVL EDSs to produce an extracted integrity check value;

comparing the new integrity check value with the extracted integrity check value; and

based on determination that the new integrity check value substantially matches the extracted integrity check value, utilizing the EDS in decoding of the read threshold number of EDSs to recover a data segment of a data object.

16. The method of claim 15 further comprising:

based on determination that the likely cause is not the inaccurate ICVL appended to the one of the ICVL EDSs and also is not missing a revision update, taking at least one corrective measure for an unauthorized modification that includes at least one of sending a delete message to a SU storing the one of the ICVL EDSs, initiating a rebuild process, or initiating at least one of a decommissioning of the SU, a quarantine of the SU, or a higher level of security regarding access to the SU.

17. The method of claim 15 further comprising:

based on determination that the new integrity check value does not substantially matches the extracted integrity check value:

initiating rebuilding of the EDS portion of the one of the ICVL EDSs to produce a rebuilt EDS;

generating an integrity check value for the rebuilt EDS;

generating an updated ICVL including the integrity check value for the rebuilt EDS and integrity check values of the EDSs of the other ICVL EDSs;

appending the updated ICVL to the rebuilt EDS to produce a rebuilt ICVL EDS; and

sending the rebuilt ICVL EDS to one of the SUs of the set of SUs for storage therein.

18. The method of claim 15 further comprising:

based on determination that the likely cause is not missing a revision update:

initiating rebuilding of the EDS portion of the one of the ICVL EDSs to produce a rebuilt EDS;

generating an integrity check value for the rebuilt EDS;

generating an updated ICVL including the integrity check value for the rebuilt EDS and integrity check values of the EDSs of the other ICVL EDSs;

appending the updated ICVL to the rebuilt EDS to produce a rebuilt ICVL EDS; and

sending the rebuilt ICVL EDS to one of the SUs of the set of SUs for storage therein.

19. The method of claim 15 , wherein the computing device is one of the SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computer (PC), a workstation, or a video game device.

20. The method of claim 15 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 050451/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2018
From: MCSHANE, NIALL J.; RESCH, JASON K.; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044974/0484 →