IP Library Granted Patent US 8,041,641
Granted Patent B1
US 8,041,641 · App. 11/641,931 · Granted Oct 18, 2011

Backup service and appliance with single-instance storage of encrypted data

Assignee: Symantec Operating Corporation
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 8,041,641
App. No.
11/641,931
Filed
Dec 19, 2006
Granted
Oct 18, 2011
Kind
B1
Art Unit
3621
USPC
705/52
Abstract

One implementation of a method for providing backup storage services for encrypted data includes receiving signatures of convergently encrypted portions of data from client computers, determining whether the encrypted portions are already present on a backup storage, and obtaining only the needed portions. Users unassociated with a particular user account are denied access to information backed up in that account. The backup storage also stores password protected key files holding signatures of the unencrypted portions of data. One implementation of a system includes a memory, a single-instance storage circuit, a user account management circuit, and a signature index. The memory holds a user-account database and backup copies of convergently encrypted portions of data. The single-instance storage circuit uses the signature index to prevent duplicative backup copies. The user account management circuit responds to download requests after authenticating the user information associated with the requested data.

Claims (114)

1. A method comprising:

making a first determination, using at least a first processor, that an encrypted first portion of a first payload data for a first storage account is absent from a backup storage;

storing the encrypted first portion of the first payload data in the backup storage, wherein

the storing the encrypted first portion of the first payload data is performed in response to the first determination;

making a second determination, using at least a second processor, that an encrypted first portion of a second payload data for a second storage account is absent from the backup storage, wherein the second storage account is distinct from the first storage account, and wherein the making the second determination comprises determining that the encrypted first portion of the second payload data does not match the encrypted first portion of the first payload data; and

storing the encrypted first portion of the second payload data in the backup storage, wherein

the storing the encrypted first portion of the second payload data is performed in response to the second determination.

2. The method of claim 1 , wherein the storing the encrypted first portion of the first payload data comprises:

requesting the encrypted first portion of the first payload data from a client computer.

3. The method of claim 1 , further comprising:

receiving a first user instruction to perform a password protected backup of the first payload data into the first storage account; and

receiving a second user instruction to perform a password protected backup of the second payload data into the second storage account.

4. The method of claim 1 , further comprising:

preventing access to the encrypted first portion of the first payload data by users unassociated with the first account; and

preventing access to the encrypted first portion of the second payload data by users unassociated with the second account.

5. The method of claim 1 , further comprising:

making a third determination that an encrypted first portion of a third payload data for a third storage account is absent from a reserved backup storage that is distinct from the backup storage; and

storing the encrypted first portion of the third payload data in the reserved backup storage in response to the third determination.

6. The method of claim 1 , further comprising:

incrementing a counter for the encrypted first portion of the first payload data if the encrypted first portion of the first payload data is present in the backup storage.

7. The method of claim 1 , further comprising:

refraining from storing a duplicate of the encrypted first portion of the first payload data if the encrypted first portion of the first payload data is present in the backup storage.

8. The method of claim 1 wherein a first portion of the first payload data is generated by at least one of: content-dependent chunking of the first payload data, fixed size chunking of the first payload data, or variable size chunking of the first payload data, the method further comprising:

generating the encrypted first portion of the first payload data, wherein the generating the encrypted first portion of the first payload data comprises encrypting the first portion of the first payload data with a key comprising a signature of the first portion of the first payload data.

9. The method of claim 1 , further comprising:

receiving an indicator of the encrypted first portion of the first payload data; and

receiving an indicator of the encrypted first portion of the second payload data;

wherein

the making the first determination comprises examining the indicator of the encrypted first portion of the first payload data, and

the making the second determination comprises examining the indicator of the encrypted first portion of the second payload data.

10. The method of claim 9 , wherein the indicator of the encrypted first portion of the first payload data comprises a signature of the encrypted first portion of the first payload data.

11. The method of claim 10 , wherein:

the signature is a hash of the encrypted first portion of the payload data;

the examining the indicator of the encrypted first portion of the first payload data comprises determining whether the hash is present in an index stored on the backup storage.

12. The method of claim 1 , further comprising:

refraining from storing a duplicate of the encrypted first portion of the first payload data if the encrypted first portion of the first payload data is present in the backup storage;

refraining from storing a duplicate of the encrypted first portion of the second payload data if the encrypted first portion of the second payload data is present in the backup storage;

determining whether an encrypted second portion of the first payload data is present in the backup storage;

storing the encrypted second portion of the first payload data if the encrypted second portion of the first payload data is absent from the backup storage;

refraining from storing a duplicate of the encrypted second portion of the first payload data if the encrypted second portion of the first payload data is present in the backup storage;

determining whether an encrypted second portion of the second payload data is present in the backup storage;

storing the encrypted second portion of the second payload data if the encrypted second portion of the second payload data is absent from the backup storage; and

refraining from storing a duplicate of the encrypted second portion of the second payload data if the encrypted second portion of the second payload data is present in the backup storage.

13. The method of claim 1 , further comprising:

generating the encrypted first portion of the first payload data, wherein the generating the encrypted first portion of the first payload data comprises encrypting a first portion of the first payload data with a key comprising a signature of the first portion of the first payload data;

generating the encrypted first portion of the second payload data, wherein the generating the encrypted first portion of the second payload data comprises encrypting a first portion of the second payload data with a key comprising a signature of the first portion of the second payload data;

receiving a first password protected key file associated with the first storage account, the first password protected key file comprising the signature of the first portion of the first payload data;

receiving a second password protected key file associated with the second storage account, the second password protected key file comprising the signature of the first portion of the second payload data;

storing the first password protected key file in the backup storage; and

storing the second password protected key file in the backup storage.

14. A method comprising:

performing a login to a user account on a backup storage server;

generating a first signature of a first portion of a payload data;

generating a second signature of a second portion of the payload data;

encrypting the first portion of the payload data with the first signature to generate an encrypted first portion of the payload data;

encrypting the second portion of the payload data with the second signature to generate an encrypted second portion of the payload data;

transmitting the first and second signatures to the backup storage server;

receiving a request for the encrypted first portion of the payload data;

transmitting the encrypted first portion of the payload data to the backup storage server;

refraining from transmitting the encrypted second portion of the payload data to the backup storage server;

generating a password protected key file comprising the first and second signatures; and

transmitting the password protected key file to the backup storage server.

15. The method of claim 14 , wherein the transmitting the encrypted first portion of the payload data to the backup storage server comprises transmitting to a remote location.

16. A computer readable medium comprising:

a computer-readable storage medium; and

program instructions stored on the computer-readable storage medium and executable on a processor, the program instructions comprising

first determining instructions for determining whether an encrypted first portion of a first payload data for a first storage account is present in a backup storage;

instructions for obtaining and storing the encrypted first portion of the first payload data in the backup storage, wherein

the storing the encrypted first portion of the first payload data is performed only if the encrypted first portion of the first payload data is absent from the backup storage; and

second determining instructions for determining whether an encrypted first portion of a second payload data for a second storage account is present in the backup storage, wherein the second determining instructions comprise

third determining instructions for determining whether the encrypted first portion of the second payload data matches the encrypted first portion of the first payload data.

17. A system comprising:

a first determining means for making a first determination that whether an encrypted first portion of a first payload data for a first storage account is absent from a backup storage, wherein the first determining means comprises

a processor coupled to the backup storage;

means for storing the encrypted first portion of the first payload data in the backup storage, wherein

the storing the encrypted first portion of the first payload data is performed in response to the first determination; and

a second determining means for making a first determination that whether an encrypted first portion of a second payload data for a second storage account is absent from the backup storage, wherein the second determining means comprises

a processor coupled to the first determining means and configured third for determining whether the encrypted first portion of the second payload data matches the encrypted first portion of the first payload data.

18. The system of claim 17 , further comprising:

storing means configured to store the encrypted first portion of the second payload data only if the encrypted first portion of the second payload data is absent from the backup storage.

19. The system of claim 17 , further comprising:

means for preventing access to the encrypted first portion of the first payload data by users unassociated with the first account; and

means for preventing access to the encrypted first portion of the second payload data by users unassociated with the second account.

20. The system of claim 17 , further comprising:

means for receiving an indicator of the encrypted first portion of the first payload data; and

means for receiving an indicator of the encrypted first portion of the second payload data;

wherein

the first determining means comprises means for examining the indicator of the encrypted first portion of the first payload data, and

the second determining means comprises means for examining the indicator of the encrypted first portion of the second payload data.

21. The system of claim 20 , wherein the indicator of the encrypted first portion of the first payload data comprises a signature of the encrypted first portion of the first payload data.

22. The system of claim 21 , wherein:

the signature is a hash of the encrypted first portion of the payload data;

the means for examining the indicator of the encrypted first portion of the first payload data comprises means for determining whether the hash is present in an index stored on the backup storage.

23. A computer readable medium comprising a computer-readable storage medium, having encoded therein program instructions executable on a processor to implement each of:

performing a login to a user account on a backup storage server;

generating a first signature of a first portion of a payload data;

generating a second signature of a second portion of the payload data;

encrypting the first portion of the payload data with the first signature to generate an encrypted first portion of the payload data;

encrypting the second portion of the payload data with the second signature to generate an encrypted second portion of the payload data;

transmitting the first and second signatures to the backup storage server;

receiving a request for the encrypted first portion of the payload data;

transmitting the encrypted first portion of the payload data to the backup storage server;

refraining from transmitting the encrypted second portion of the payload data to the backup storage server;

generating a password protected key file comprising the first and second signatures; and

transmitting the password protected key file to the backup storage server.

24. The computer readable medium of claim 23 , wherein the transmitting the encrypted first portion of the payload data to the backup storage server comprises transmitting to a remote location.

25. The method of claim 1 , wherein the second processor is the first processor.

26. The method of claim 1 , wherein:

the first storage account corresponds to a first user; and

the second storage account corresponds to a second user distinct from the first user.

27. The method of claim 1 , wherein the determining that the encrypted first portion of the second payload data does not match the encrypted first portion of the first payload data comprises:

determining that the first portion of the second payload data does not match the first portion of the first payload data.

28. The system of claim 17 , wherein the determining whether the encrypted first portion of the second payload data matches the encrypted first portion of the first payload data comprises:

determining whether the first portion of the second payload data matches the first portion of the first payload data.

Assignments (14)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2006
From: PANCHBUDHE, ANKUR P.; SRIDHARAN, SRINEET
To: VERITAS OPERATING CORPORATION
Reel/Frame 018727/0711 →