IP Library Granted Patent US 9,054,864
Granted Patent B2
US 9,054,864 · App. 13/074,202 · Granted Jun 9, 2015

Method and apparatus of securely processing data for file backup, de-duplication, and restoration

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,054,864
App. No.
13/074,202
Granted
Jun 9, 2015
Kind
B2
Abstract

Disclosed are an apparatus and methods of performing a secure backup of at least one data file via an agent application. According to one example, the method may include determining the at least one data file requires a mirror backup file, and determining that the at least one data file is a candidate for de-duplication based on at least one data file characteristic. The method may also include creating a filekey based on at least a portion of the content of the at least one data file, and transmitting the filekey to a database query handler associated with a database to determine if the file has been de-duplicated.

Claims (58)

1. A method of performing a backup of at least one data file via an agent application, the method comprising:

determining, via a processor, the at least one data file requires a mirror backup file;

determining, via the processor, that the at least one data file is a candidate for de-duplication based on at least one data file characteristic;

creating a filekey, via the processor, based on at least a portion of the content of the at least one data file;

wherein creating the filekey further comprises creating a SHA-1 digest of the at least one data file, including a size parameter of the at least one data file, and a cyclic redundancy check checksum (CRC) of the at least one data file;

transmitting, via a transmitter, the filekey to a database query handler associated with a database to determine if the file has been de-duplicate;

determining the at least one data file has not been de-duplicated based on a pre-stored data record in the database;

creating a link file comprising a uniform resource indicator (URI) identifying a repository copy of the at least one data file and an encrypted key; and

replacing the at least one data file with the link file.

2. The method of claim 1 , wherein the at least one data file characteristic is at least one of a data file type and a data file size.

3. The method of claim 1 , further comprising:

encrypting the CRC with a shared secret; and

sending the CRC, the filekey and a public key to the database query handler when determining if the at least one data file has been de-duplicated.

4. The method of claim 1 , further comprising:

when determining that the at least one data file has been de-duplicated, checking a de-duplication registry in the database to determine whether a pre-stored filekey is present;

and returning a result indicating no entry for a given digest associated with the filekey.

5. The method of claim 4 , further comprising:

generating a random advanced encryption standard (AES) key;

generating a shared secret to be shared between the agent application and a server application;

encrypting the AES key via the shared secret; storing the public key in a metadata of the at least one data file;

compressing and encrypting the at least one data file with the AES key while streaming the file to storage; and

registering the at least one data file with a file registry in the database.

6. An apparatus configured to perform a backup of at least one data file via an agent application, the apparatus comprising:

a processor configured to

determine the at least one data file requires a mirror backup file,

determine that the at least one data file is a candidate for de-duplication based on at least one data file characteristic,

create a filekey based on at least a portion of the content of the at least one data,

wherein the processor is further configured to create the filekey by creating a SHA-1 digest of the at least one data file, including a size parameter of the at least one data file, and a cyclic redundancy check checksum (CRC) of the at least one data file;

determine the at least one data file has not been de-duplicated based on a pre-stored data record in the database,

create a link file comprising a uniform resource indicator (URI) identifying a repository copy of the at least one data file and an encrypted key, and

replace the at least one data file with the link file, and

a transmitter configured to transmit the filekey to a database query handler associated with the database to determine if the file has been de-duplicated.

7. The apparatus of claim 6 , wherein the at least one data file characteristic is at least one of a data file type and a data file size.

8. The apparatus of claim 6 , wherein the processor is further configured to encrypt the CRC with a shared secret, and the transmitter is further configured to transmit the CRC, the filekey and a public key to the database query handler when it is determined that the at least one data file has been de-duplicated.

9. The apparatus of claim 6 , wherein the processor is further configured to, when determining that the at least one data file has been de-duplicated, check a de-duplication registry in the database to determine whether a pre-stored filekey is present, and return a result indicating no entry for a given digest associated with the filekey.

10. A non-transitory computer readable storage medium configured to store instructions that when executed by a processor perform a backup of at least one data file via an agent application, the processor being further configured to perform:

determining the at least one data file requires a mirror backup file;

determining that the at least one data file is a candidate for de-duplication based on at least one data file characteristic;

creating a filekey based on at least a portion of the content of the at least one data file;

wherein creating the filekey further comprises creating a SHA-1 digest of the at least one data file, including a size parameter of the at least one data file, and a cyclic redundancy check checksum (CRC) of the at least one data file;

transmitting, via a transmitter, the filekey to a database query handler associated with a database to determine if the file has been de-duplicate;

determining the at least one data file has not been de-duplicated based on a pre-stored data record in the database;

creating a link file comprising a uniform resource indicator (URI) identifying a repository copy of the at least one data file and an encrypted key; and

replacing the at least one data file with the link file.

11. The non-transitory computer readable storage medium of claim 10 , wherein the at least one data file characteristic is at least one of a data file type and a data file size.

12. The non-transitory computer readable storage medium of claim 10 , wherein the processor is further configured to perform:

encrypting the CRC with a shared secret; and

sending the CRC, the filekey and a public key to the database query handler when determining if the at least one data file has been de-duplicated.

13. The non-transitory computer readable storage medium of claim 10 ,

wherein the processor is further configured to perform:

when determining that the at least one data file has been de-duplicated, checking a de-duplication registry in the database to determine whether a pre-stored filekey is present; and

returning a result indicating no entry for a given digest associated with the filekey.

14. The non-transitory computer readable storage medium of claim 10 , further comprising:

generating a random advanced encryption standard (AES) key;

generating a shared secret to be shared between the agent application and a server application;

encrypting the AES key via the shared secret; storing the public key in a metadata of the at least one data file;

compressing and encrypting the at least one data file with the AES key while streaming the file to storage; and

registering the at least one data file with a file registry in the database.

Assignments (9)
CHANGE OF NAME Recorded Oct 27, 2023
From: DATTO, INC.
To: DATTO, LLC
Reel/Frame 065385/0256 →
RELEASE OF SECURITY INTEREST Recorded May 8, 2019
From: VEEAM SOFTWARE LIMITED
To: KASEYA LUXEMBOURG HOLDINGS S.C.A.
Reel/Frame 049122/0138 →
RELEASE OF SECURITY INTEREST Recorded May 8, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: KASEYA LIMITED
Reel/Frame 049122/0181 →
SUBORDINATED SECOND LIEN US PATENT SECURITY AGREEMENT Recorded Jun 1, 2018
From: SPANNING CLOUD APPS LLC; UNITRENDS, INC.; KASEYA LIMITED; RAPIDFIRE TOOLS INC.
To: FABSTONE INVESTMENTS LLC
Reel/Frame 046286/0755 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded May 31, 2017
From: SILICON VALLEY BANK
To: KASEYA LIMITED
Reel/Frame 042642/0023 →
SECURITY INTEREST Recorded May 26, 2017
From: KASEYA LIMITED
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 042589/0410 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2014
From: KASEYA INTERNATIONAL LIMITED
To: KASEYA LIMITED
Reel/Frame 033880/0921 →
SECURITY INTEREST Recorded Jul 14, 2014
From: KASEYA LIMITED
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 033312/0618 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2011
From: BOSSON, CHARLES
To: KASEYA INTERNATIONAL LIMITED
Reel/Frame 026134/0035 →