IP Library › Granted Patent US 9,590,989
Granted Patent B2
US 9,590,989 · App. 15/017,408 · Granted Mar 7, 2017

Data access and anonymity management

Inventor: Perry M. Spagnola (Phoenix, AZ)
Assignee: PEARSON EDUCATION, INC.
H04L63/0876H04L9/0894H04L9/3236H04L9/3242H04L63/0407H04L63/0428H04L63/12H04L2209/42H04L2209/60
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,590,989
App. No.
15/017,408
Granted
Mar 7, 2017
Kind
B2
Abstract

Techniques described herein provide data access and data anonymity management within various implementations of content distribution networks. In some embodiments, a data anonymity management system may include multiple different data stores configured to store identity data, user data, and/or linking data, as well as a data anonymity server configured to support data anonymity features such as active user data anonymity, one-way linking and permanently breakable links between user identity data and associated user data. In some embodiments, storage systems and techniques may be used for storing identity data, user data, and link data in multiple different data stores, with different data storage requirements and different processes and policies for data availability, data backup, online disaster recovery, offline storage archiving, and the like. Additionally, cryptographic hash functions may be used to implement one-way encryption between identity data and user data.

Claims (69)

1. A data anonymity management system comprising:

a first data store, configured to store:

a plurality of user data records associated with a content management system; and

an associated hash value for each of the plurality of user data records;

a second data store, configured to store:

a plurality of user identifiers; and

an associated key value for each of the plurality of user identifiers,

wherein neither the first data store nor the second data store is configured to store private user information associated with any of the plurality of user identifiers, and

wherein the first data store is configured not to store any of the plurality of user identifiers stored in the second data store, and

wherein the second data store is configured not to store any of the plurality of hash values stored in the first data store; and

a data anonymity server comprising:

a processing unit comprising one or more processors; and

memory coupled with and readable by the processing unit and storing therein a set of instructions which, when executed by the processing unit, causes the data anonymity server to:

receive a request to access user data associated with a first user of the content management system, wherein at least a portion of the user data associated with the first user is stored in the first data store;

generate a first hash value, by executing a cryptographic hash function, using a first key value associated with the first user and stored in the second data store as an input to the cryptographic hash function;

use the first hash value to perform the requested access of the user data associated with the first user within the first data store;

receive a request to disassociate the first user from one or more user data records stored in the first data store and associated with the first user; and

in response to the request to disassociate, delete the first key value associated with the first user and used as input to the cryptographic hash function, from the second data store.

2. The data anonymity management system of claim 1 , further comprising:

a third data store, comprising one or more memory systems configured to store:

a plurality of user identifiers, corresponding to the plurality of user identifiers in the second data store; and

associated private user information for each of the plurality of user identifiers.

3. The data anonymity management system of claim 1 , further comprising:

a data store archive system, wherein the data store archive system is configured to generate and store an offline storage archive corresponding to the first data store, and wherein the data store archive system is configured not to store an offline storage archive corresponding to the second data store.

4. The data anonymity management system of claim 1 , wherein the request to access the user data associated with a first user corresponds to at least one of:

a request to retrieve data from the content management system associated with the first user;

a request to modify data from the content management system associated with the first user; or

a request to insert data from the content management system associated with the first user.

5. The anonymity management system of claim 1 , the memory of the data anonymity server storing further instructions which, when executed by the processing unit, cause the data anonymity server to:

in response to the request to disassociate, and prior to deleting the first key value associated with the first user from the second data store, transmit the first key value to a client device.

6. The anonymity management system of claim 1 , further comprising a pseudorandom value generator configured to:

execute at least one of a pseudorandom number generator algorithm or a pseudorandom string generator algorithm,

wherein the first key value comprises a data item generated by the pseudorandom value generator.

7. The data anonymity management system of claim 1 , wherein:

each of the plurality of hash values stored in the first data store is a unique value, and

each of the plurality of key values stored in the second data store is a unique value.

8. A method comprising:

receiving a request to access user data associated with a first user of a content management system, wherein at least a portion of the user data associated with the first user is stored in a first data store configured to store a plurality of user data records and an associated hash value for each of the plurality of user data records;

generating a first hash value, by executing a cryptographic hash function, using a first key value associated with the first user and stored in a second data store as an input to the cryptographic hash function, wherein the second data store is configured to store a plurality of user identifiers and an associated key value for each of the plurality of user identifiers, wherein neither the first data store nor the second data store is configured to store private user information associated with any of the plurality of user identifiers, wherein the first data store is configured not to store any of the plurality of user identifiers stored in the second data store, and wherein the second data store is configured not to store any of the plurality of hash values stored in the first data store;

using the first hash value to perform the requested access of the user data associated with the first user within the first data store;

receiving a request to disassociate the first user from one or more user data records stored in the first data store; and

in response to the request to disassociate, delete the first key value associated with the first user and used as input to the cryptographic hash function, from the second data store.

9. The method of claim 8 , further comprising:

generating and storing an offline storage archive corresponding to the first data store, wherein said generating and storing does not include generating and storing an offline storage archive corresponding to the second data store.

10. The method of claim 8 , wherein the request to access the user data associated with a first user corresponds to at least one of:

a request to retrieve data from the content management system associated with the first user;

a request to modify data from the content management system associated with the first user; or

a request to insert data from the content management system associated with the first user.

11. The method of claim 8 , further comprising:

in response to the request to disassociate, and prior to deleting the first key value associated with the first user from the second data store, transmitting the first key value to a client device associated with the first user.

12. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, including instructions configured to cause one or more data processors to perform actions including:

receiving a request to access user data associated with a first user of a content management system, wherein at least a portion of the user data associated with the first user is stored in a first data store configured to store a plurality of user data records and an associated hash value for each of the plurality of user data records;

generating a first hash value, by executing a cryptographic hash function, using a first key value associated with the first user and stored in a second data store as an input to the cryptographic hash function, wherein the second data store is configured to store a plurality of user identifiers and an associated key value for each of the plurality of user identifiers, wherein neither the first data store nor the second data store is configured to store private user information associated with any of the plurality of user identifiers, wherein the first data store is configured not to store any of the plurality of user identifiers stored in the second data store, and wherein the second data store is configured not to store any of the plurality of hash values stored in the first data store;

using the first hash value to perform the requested access of the user data associated with the first user within the first data store;

receiving a request to disassociate the first user from one or more user data records stored in the first data store; and

in response to the request to disassociate, delete the first key value associated with the first user and used as input to the cryptographic hash function, from the second data store.

13. The computer-program product of claim 12 , the instructions further configured to cause the one or more data processors to perform actions including:

generating and storing an offline storage archive corresponding to the first data store, wherein said generating and storing does not include generating and storing an offline storage archive corresponding to the second data store.

14. The data anonymity management system of claim 1 , wherein the disassociation of the first user from the user data records stored in the first data store is performed without altering any data stored in the first data store.

15. The data anonymity management system of claim 2 , wherein the disassociation of the first user from the user data records stored in the first data store is performed without altering any data stored in the first data store or any data stored in the third data store.

16. The data anonymity management system of claim 15 , wherein following the disassociation of the first user from the user data records stored in the first data store, the first hash value cannot be generated based on any of the key values stored in the second data store.

17. The method of claim 8 , wherein the disassociation of the first user from the user data records stored in the first data store is performed without altering any data stored in the first data store.

18. The computer-program product of claim 12 , wherein the disassociation of the first user from the user data records stored in the first data store is performed without altering any data stored in the first data store.

19. The method of claim 8 , further comprising:

executing at least one of a pseudorandom number generator algorithm or a pseudorandom string generator algorithm,

wherein the first key value comprises a data item generated by the pseudorandom number generator algorithm or the pseudorandom string generator algorithm.

20. The computer-program product of claim 12 , the instructions further configured to cause the one or more data processors to perform actions including:

executing at least one of a pseudorandom number generator algorithm or a pseudorandom string generator algorithm,

wherein the first key value comprises a data item generated by the pseudorandom number generator algorithm or the pseudorandom string generator algorithm.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: SPAGNOLA, PERRY M.
To: PEARSON EDUCATION, INC.
Reel/Frame 038165/0715 →
Continuity (2)
Continuation 14724620 · May 28, 2015
Related Publication 20160352730A1 · Dec 1, 2016