IP Library Granted Patent US 10,929,555
Granted Patent B2
US 10,929,555 · App. 16/443,659 · Granted Feb 23, 2021

Systems and methods for securing data

Inventors: Prasad Peddada (Alameda, CA); Jeremy Horwitz (San Francisco, CA)
Assignee: salesforce.com, inc.
G06F21/6218G06F21/6227H04L9/085H04L63/0435H04L63/1425G06F2221/2107G06F2221/2125H04L63/062H04L63/10
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,929,555
App. No.
16/443,659
Granted
Feb 23, 2021
Kind
B2
Abstract

Some embodiments of the present invention include an apparatus for securing data and include a processor, and one or more stored sequences of instructions which, when executed by the processor, cause the processor to set a data download threshold, encrypt data to be downloaded by a user based on detecting size of the data violating the download threshold such that the user receives encrypted downloaded data, and manage a decryption key used to decrypt the encrypted downloaded data. The decryption key may be deconstructed into “N” key fragments and may be reconstructed using “K” key fragments where “N” is equal to “2K−1”.

Claims (35)

1. A computer-implemented method for securing data in an on-demand database system, the method comprising:

setting, by the database system, a file as including sensitive data;

activating, by the database system, a data protection mode based on a determination that the file includes sensitive data, the activation of the data protection mode including intercepting the data before the download starts, encrypting the intercepted data, and enabling the user to download the encrypted intercepted data;

managing, by the database system, a decryption key used to decrypt the encrypted downloaded data, the decryption key being: i) deconstructed into a plurality of unique key fragments and stored in distributed storage devices of a plurality of key holders, and ii) reconstructed from the plurality of key fragments; and

enabling, by the database system, the user to download the unencrypted data based on a determination that the size of the requested data does not violate a download threshold.

2. The method of claim 1 , wherein managing the decryption key further comprises:

providing, by the database system, the reconstructed decryption key based on verifying that the user is authorized to have access to a decrypted version of the downloaded data.

3. The method of claim 1 , wherein reconstructing the decryption key comprises using a subset of the key fragments from a subset of the key holders, wherein the subset of key fragments used to reconstruct the decryption key is less than the plurality of key fragments.

4. The method of claim 3 , where the plurality of key fragments is one less than twice the subset of key fragments.

5. The method of claim 4 , wherein the decryption key is reconstructed based on a first set of the subset of key fragments or based on a second set of the subset of key fragments.

6. The method of claim 5 , wherein all of the key fragments in the first set of the subset of key fragments are not similar to all of the key fragments in the second set of the subset of key fragments.

7. An apparatus comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

set a file as including sensitive data;

activate a data protection mode based on a determination that the file includes sensitive data, the activation of the data protection mode including intercepting the data before the download starts, encrypting the intercepted data, and enabling the user to download the encrypted intercepted data;

manage a decryption key used to decrypt the encrypted downloaded data, the decryption key being: i) deconstructed into a plurality of unique key fragments and stored in distributed storage devices of a plurality of key holders, and ii) reconstructed from the plurality of key fragments; and

enable the user to download the unencrypted data based on a determination that the size of the requested data does not violate a download threshold.

8. The method of claim 7 , wherein managing the decryption key further comprises:

providing, by the database system, the reconstructed decryption key based on verifying that the user is authorized to have access to a decrypted version of the downloaded data.

9. The method of claim 7 , wherein reconstructing the decryption key comprises using a subset of the key fragments from a subset of the key holders, wherein the subset of key fragments used to reconstruct the decryption key is less than the plurality of key fragments.

10. The method of claim 9 , where the plurality of key fragments is one less than twice the subset of key fragments.

11. The method of claim 10 , wherein the decryption key is reconstructed based on a first set of the subset of key fragments or based on a second set of the subset of key fragments.

12. The method of claim 11 , wherein all of the key fragments in the first set of the subset of key fragments are not similar to all of the key fragments in the second set of the subset of key fragments.

13. A computer-implemented method for securing data in an on-demand database system, the method comprising:

setting, by the database system, a file as including sensitive data;

activating, by the database system, a data protection mode based on a determination that the file includes sensitive data, the activation of the data protection mode including intercepting the data before the download starts, encrypting the intercepted data, and enabling the user to download the encrypted intercepted data;

managing, by the database system, a decryption key used to decrypt the encrypted downloaded data, the decryption key being: i) deconstructed into a plurality of unique key fragments and stored in distributed storage devices of a plurality of key holders, and ii) reconstructed from the plurality of key fragments; and

enabling, by the database system, the user to download the unencrypted data based on a determination that the size of the requested data does not violate a download threshold.

14. The method of claim 13 , wherein managing the decryption key further comprises:

providing, by the database system, the reconstructed decryption key based on verifying that the user is authorized to have access to a decrypted version of the downloaded data.

15. The method of claim 13 , wherein reconstructing the decryption key comprises using a subset of the key fragments from a subset of the key holders, wherein the subset of key fragments used to reconstruct the decryption key is less than the plurality of key fragments.

16. The method of claim 15 , where the plurality of key fragments is one less than twice the subset of key fragments.

17. The method of claim 16 , wherein the decryption key is reconstructed based on a first set of the subset of key fragments or based on a second set of the subset of key fragments.

18. The method of claim 17 , wherein all of the key fragments in the first set of the subset of key fragments are not similar to all of the key fragments in the second set of the subset of key fragments.

Assignments (1)
CHANGE OF NAME Recorded Sep 22, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065016/0067 →
Continuity (2)
Continuation 14863034 · Sep 23, 2015
Related Publication 20190362090A1 · Nov 28, 2019