IP Library › Granted Patent US 10,671,760
Granted Patent B2
US 10,671,760 · App. 15/056,593 · Granted Jun 2, 2020

Secure and private data storage

Inventors: Arash Esmailzadeh (Los Angeles, CA); Andrew Vogan (Dayton, VA)
Assignee: Arash Esmailzadeh
G06F21/6263G06F21/602G06F21/604G06F21/6245H04L63/10H04L63/308G06F2221/2107
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,671,760
App. No.
15/056,593
Granted
Jun 2, 2020
Kind
B2
Abstract

A method of securely authorizing limited access by a software application to private user data may include operating a software application that can utilize user data, sending a request to a first server to authorize release of the user data, receiving an authorization from the first server to release the user data, and sending a request to retrieve the user data to a plurality of second servers. The method may also include receiving a portion of the user data from each of the plurality of second servers, assembling the user data from at least two of the portions of the user data, and providing the user data to the software application.

Claims (99)

1. A method of securely authorizing limited access by a software application to private user data, the method comprising:

operating, by a computing device, a software application comprising a client-side component of an online service provider, wherein the software application is in communication with a server-side component of the online service provider;

operating, by the computing device, a privacy application that is communicatively coupled to the software application, wherein the software application and the privacy application both operate on a same computing device and share a same operating system;

determining, by the privacy application, that the online service provider requires access to data that is specific to a user of the computing device and specific to the online service provider, wherein the data is not currently available to the online service provider;

in response to determining that the online service provider requires access to the data, sending, by a client-side component of the privacy application, a request to a first server comprising a server-side component of the privacy application to authorize release of the data that is specific to the user and specific to the online service provider, wherein the request to the first server identifies the online service provider;

receiving, by the privacy application, first credentials from the first server to release the data that is specific to the user and specific to the online service provider;

sending, by the privacy application, the first credentials with a request to retrieve the data that is specific to the user and specific to the online service provider to a plurality of second servers, wherein:

each second server in the plurality of second servers is independent from the server-side component of the privacy application; and

each second server in the plurality of second servers is independent from each of the other second servers in the plurality of second servers;

receiving, by the privacy application, a portion of the data that is specific to the user and specific to the online service provider from each of the plurality of second servers;

assembling, by the privacy application, the data that is specific to the user and specific to the online service provider from at least two of the portions; and

providing, by the privacy application, the data that is specific to the user and specific to the online service provider to the software application for use by the online service provider based on a user setting that determines:

whether the software application is allowed to access the data that is specific to the user and specific to the online service provider during a current active session; or

whether the software application is allowed to access the data that is specific to the user and specific to the online service provider during and after a current active session.

2. The method of claim 1 , further comprising:

receiving, by the privacy application, updated data that is specific to the user and specific to the online service provider from the software application;

dissecting, by the privacy application, the updated data that is specific to the user and specific to the online service provider into a plurality of data portions; and

sending, by the privacy application, a data portion from the plurality of data portions to each of the plurality of second servers.

3. The method of claim 2 , further comprising:

sending, by the privacy application, a request to the first server to authorize storage of the updated data that is specific to the user and specific to the online service provider comprising a size of the updated data that is specific to the user and specific to the online service provider; and

receiving, by the privacy application, second credentials from the first server to store the updated data that is specific to the user and specific to the online service provider in the plurality of second servers.

4. The method of claim 1 , wherein:

the software application comprises a search engine interface operating in a web browser on the computing device.

5. The method of claim 1 , wherein:

the data that is specific to the user and specific to the online service provider comprises a search engine history.

6. The method of claim 1 , wherein:

the software application comprises an email client.

7. The method of claim 1 , wherein:

the data that is specific to the user and specific to the online service provider comprises a document index.

8. The method of claim 7 , further comprising:

receiving, by the privacy application, an encrypted set of keys from the plurality of second servers; and

decrypting, by the privacy application, the encrypted set of keys, wherein the encrypted set of keys are encrypted using a hash of a stored password.

9. The method of claim 8 , further comprising:

parsing a document to extract a set of tokens to populate the document index by identifying tokens that distinguish the document from other documents.

10. The method of claim 9 , further comprising:

associating each token in the set of tokens with a document identifier;

encrypting each token in the set of tokens using the set of keys;

dissecting each encrypted token into a plurality of token portions; and

sending each token portion to a different one of the plurality of second servers.

11. The method of claim 1 , wherein:

the first server comprises a gateway of a privacy management system.

12. The method of claim 1 , further comprising:

displaying, by the privacy application, a user interface control comprising a plurality of privacy settings, wherein the plurality of privacy setting comprise:

a first setting that restricts the software application from accessing the data that is specific to the user and specific to the online service provider;

a second setting that limits the software application to accessing the data that is specific to the user and specific to the online service provider during a current active session; and

a third setting that allows the software application to access the data that is specific to the user and specific to the online service provider.

13. The method of claim 12 , wherein:

a setting selected by the user interface control is specific to the software application, and

other settings selected by the user interface control are specific to other software applications.

14. The method of claim 1 , wherein:

the software application comprises a webpage operating in a web browser on the computing device;

the privacy application comprises a plug-in for the web browser;

the privacy application comprises a user interface that is displayed in the web browser that receives user input that governs how the data that is specific to the user and specific to the online service provider is provided to the webpage;

the webpage is allowed to use the data that is specific to the user and specific to the online service provider locally on the computing device, but does not transmit the data that is specific to the user and specific to the online service provider to the online service provider; and

the privacy application requires the webpage to delete the data that is specific to the user and specific to the online service provider from memory at a completion of a session.

15. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, causes the one or more processors to perform operations comprising:

operating, by a computing device, a software application comprising a client-side component of an online service provider, wherein the software application is in communication with a server-side component of the online service provider;

operating, by the computing device, a privacy application that is communicatively coupled to the software application, wherein the software application and the privacy both operate on a same computing device and share a same operating system;

determining, by the privacy application, that the online service provider requires access to data that is specific to a user of the computing device and specific to the online service provider, wherein the data is not currently available to the online service provider;

in response to determining that the online service provider requires access to the data, sending, by a client-side component of the privacy application, a request to a first server comprising a server-side component of the privacy application to authorize release of the data that is specific to the user and specific to the online service provider, wherein the request to the first server identifies the online service provider;

receiving, by the privacy application, first credentials from the first server to release the data that is specific to the user and specific to the online service provider;

sending, by the privacy application, the first credentials with a request to retrieve the data that is specific to the user and specific to the online service provider to a plurality of second servers, wherein:

each second server in the plurality of second servers is independent from the server-side component of the privacy application; and

each second server in the plurality of second servers is independent from each of the other second servers in the plurality of second servers;

receiving, by the privacy application, a portion of the data that is specific to the user and specific to the online service provider from each of the plurality of second servers;

assembling, by the privacy application, the data that is specific to the user and specific to the online service provider from at least two of the portions; and

providing, by the privacy application, the data that is specific to the user and specific to the online service provider to the software application for use by the online service provider based on a user setting that determines:

whether the software application is allowed to access the data that is specific to the user and specific to the online service provider during a current active session; or

whether the software application is allowed to access the data that is specific to the user and specific to the online service provider during and after a current active session.

16. The non-transitory computer-readable medium according to claim 15 comprising additional instruction that cause the one or more processors to perform additional operations comprising:

receiving, by the privacy application, updated data that is specific to the user and specific to the online service provider from the software application;

dissecting, by the privacy application, the updated data that is specific to the user and specific to the online service provider into a plurality of data portions; and

sending, by the privacy application, a data portion from the plurality of data portions to each of the plurality of second servers.

17. The non-transitory computer-readable medium according to claim 16 comprising additional instruction that cause the one or more processors to perform additional operations comprising:

sending, by the privacy application, a request to the first server to authorize storage of the updated data that is specific to the user and specific to the online service provider comprising a size of the updated data that is specific to the user and specific to the online service provider; and

receiving, by the privacy application, an authorization from the first server to store the updated data that is specific to the user and specific to the online service provider in the plurality of second servers.

18. A system comprising:

one or more processors; and

one or more memory devices comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

operating, by a computing device, a software application comprising a client-side component of an online service provider, wherein the software application is in communication with a server-side component of the online service provider;

operating, by the computing device, a privacy application that is communicatively coupled to the software application, wherein the software application and the privacy both operate on a same computing device and share a same operating system;

determining, by the privacy application, that the online service provider requires access to data that is specific to a user of the computing device and specific to the online service provider, wherein the data is not currently available to the online service provider;

in response to determining that the online service provider requires access to the data, sending, by a client-side component of the privacy application, a request to a first server comprising a server-side component of the privacy application to authorize release of the data that is specific to the user and specific to the online service provider, wherein the request to the first server identifies the online service provider;

receiving, by the privacy application, first credentials from the first server to release the data that is specific to the user and specific to the online service provider;

sending, by the privacy application, the first credentials with a request to retrieve the data that is specific to the user and specific to the online service provider to a plurality of second servers, wherein:

each second server in the plurality of second servers is independent from the server-side component of the privacy application; and

each second server in the plurality of second servers is independent from each of the other second servers in the plurality of second servers;

receiving, by the privacy application, a portion of the data that is specific to the user and specific to the online service provider from each of the plurality of second servers;

assembling, by the privacy application, the data that is specific to the user and specific to the online service provider from at least two of the portions; and

providing, by the privacy application, the data that is specific to the user and specific to the online service provider to the software application for use by the online service provider based on a user setting that determines:

whether the software application is allowed to access the data that is specific to the user and specific to the online service provider during a current active session; or

whether the software application is allowed to access the data that is specific to the user and specific to the online service provider during and after a current active session.

19. The system of claim 18 , wherein the one or more memory devices further comprise additional instructions that cause the one or more processors to perform additional operations comprising:

receiving, by the privacy application, updated data that is specific to the user and specific to the online service provider from the software application;

dissecting, by the privacy application, the updated data that is specific to the user and specific to the online service provider into a plurality of data portions; and

sending, by the privacy application, a data portion from the plurality of data portions to each of the plurality of second servers.

20. The system of claim 19 , wherein the one or more memory devices further comprise additional instructions that cause the one or more processors to perform additional operations comprising:

sending, by the privacy application, a request to the first server to authorize storage of the updated data that is specific to the user and specific to the online service provider comprising a size of the updated data that is specific to the user and specific to the online service provider; and

receiving, by the privacy application, an authorization from the first server to store the updated data that is specific to the user and specific to the online service provider in the plurality of second servers.

Continuity (2)
Provisional Application 62126099 · Feb 27, 2015
Related Publication 20160253521A1 · Sep 1, 2016
Cited By (20)
US 12,190,330 US 12,204,564 US 12,216,794 US 12,259,882 US 12,265,896 US 12,277,232 US 12,288,233 US 12,299,065 US 12,299,170 US 12,353,405 US 12,381,915 US 12,412,140 US 12,536,329 US 12,591,828 US 12,609,938 US 12,641,108 US 12,688,324 US 12,694,044 US 12,718,167 US 12,748,738