Method and system for anonymous user data storage and controlled data access
Methods and systems are configured to store user data and control access to the user data, wherein the data is stored remotely from the user (such as external to a user's computing device) and the user's data is maintained anonymously. Content is stored in association with a user identifier and access by third parties is controlled by linked third party identifiers.
1. A computer program product for implementing a method of anonymously storing and selectively controlling access to a user's data comprising:
computer readable program code stored in a memory device associated with a server and configured to cause a processor of said server to:
receive, via at least one communication interface of said server, a first user private unique identifier from a first user;
transmit, from said at least one communication interface of said server to a device of said first user, a first user public unique identifier;
receive, via said at least one communication interface of said server, a second user private unique identifier from a second user;
transmit, from said at least one communication interface of said server to a device of said second user, a second user public unique identifier;
receive, via said at least one communication interface of said server, content from said first user along with said first user private unique identifier, an access designation from said first user of one or more third parties that may access said content, said access designation comprising said second user public unique identifier of said second user, and an encryption key of said first user;
generate a content identifier for said content;
store, at a memory device of said server, said content as encrypted by said first user's encryption key, in association with said content identifier and said access designation;
receive, via said at least one communication interface of said server, a request to access said content from said second user, said request comprising said second user private unique identifier, said content identifier and the encryption key of said first user;
validate access of said second user to said content at said server by matching said second user private unique identifier provided by said second user to said second user public unique identifier associated with said content; and
decrypt said content using said key of said first user and provide access to said content to said second user, when access is validated.
2. The computer program product in accordance with claim 1 , wherein said first user encryption key comprises a first portion for encrypting content and a second portion for decrypting content, and wherein said computer readable program code stored in said memory device associated with said server is further configured to cause said processor of said server to receive said first portion of said first user encryption key from said first user.
3. The computer program product in accordance with claim 2 , wherein said computer readable program code stored in said memory device associated with said server is further configured to cause said processor of said server to receive a request by said first user to transmit said second portion of said decryption key to said second user and transmit said second portion of said decryption key to said second user.
4. The computer program product in accordance with claim 1 wherein said access designation from said first user of one or more third parties may comprise a designation of a plurality of different second users.
5. The computer program product in accordance with claim 1 wherein said computer program product stored in association with said server is configured to cause said processor of said server to generate said first user encryption key using at least said first user's first user public unique identifier.
6. The computer program product in accordance with claim 1 wherein said computer readable program code stored in association with said server is configured to cause said progressor of said server to provide access to said content to said second user by transmitting said decrypted content to said device of said second user.
7. The computer program product in accordance with claim 1 further comprising downloaded computer readable program code stored in a memory device of said device of said first user and configured to cause a processor of said device of said first user to transmit said first user public identifier to said second user.
8. The computer program product in accordance with claim 7 further comprising downloaded computer readable program code stored in a memory device of said device of said second user and configured to cause a processor of said device of said second user to transmit said second user public identifier to said first user.
9. The computer program product in accordance with claim 8 wherein said downloaded computer readable program code stored in said memory device of said device of said first user comprises a downloaded application.
10. The computer program product in accordance with claim 1 wherein each of said first user private identifier, said first user public identifier, said second user private identifier and said second user public identifier comprise a universally unique ID (UUID) or globally unique ID (GUID).
11. The computer program product in accordance with claim 10 wherein said content identifier comprises a UUID or GUID.
12. The computer program product in accordance with claim 1 further comprising computer readable program code stored in a memory device of said device of said first user and configured to cause a processor of said device of said first user to generate said first user private unique identifier and transmit said first user private identifier to said server.
13. The computer program product in accordance with claim 12 wherein said computer readable program product stored in said memory device of said device of said first user is further configured to cause said processor of said device of said first user to generate said first user encryption key for encrypting and decrypting said content.