Protecting privacy of personally identifying information when delivering targeted assets
View Patent ↗Techniques are disclosed herein for protecting personally identifying information (PII) and behavioral data while delivering targeted assets. In one aspect, a profile is created based on a template and desired characteristics of users to receive one or more targeted assets. The template provides a framework for the user characteristics. One or more clients are provided the template. A manifest that identifies the targeted assets is encrypted based on the profile. The encrypted manifest is sent to the one or more clients. A user profile is generated at a client based on a template. The client attempts to decrypt the encrypted manifest based on the profile created at the client. The client sends a request for any targeted assets that were identified through the attempt to decrypt the encrypted manifest.
1. A device comprising:
a processor that:
fills in a client-side version of a template by filling in one or more of a plurality of data fields with one or more user-specific values that are based on user characteristics of a user;
receives, via a communication network, an encrypted manifest that identifies a plurality of targeted assets, wherein the manifest has been previously remotely encrypted to have a plurality of encrypted portions, wherein each encrypted portion of the manifest is decryptable by at least one permutation of a plurality of targeted user characteristics, wherein each permutation is associated with a corresponding targeted asset of the plurality of targeted assets;
decrypts an encrypted portion of the plurality of encrypted portions of the encrypted manifest based on the one or more user-specific values included in the client-side filled in version of the template to obtain a decrypted portion, wherein the device is prevented from decrypting other of the plurality of encrypted portions of the encrypted manifest for which the data fields in the client-side version of the template do not contain user-specific values that can be used to decrypt the other of the plurality of encrypted portions; and
sends a request to a server via the communication network for the targeted asset identified by the decrypted portion,
wherein the client-side filled in version of the template is not sent to the server.
2. The device of claim 1 , wherein the processor further:
receives a seed value from the server; and
generates a decryption key based on the client-side filled in version of the template and the seed value.
3. The device of claim 2 , wherein the processor decrypts at least a part of the encrypted manifest based on the decryption key.
4. The device of claim 2 , wherein the processor further:
receives a first authentication parameter from the server that is based on an encryption key that was used to encrypt the manifest; and
applies the decryption key to results of decrypting the encrypted portion of the encrypted manifest to create a second authentication parameter; and
identifies the at least one targeted asset of the plurality of targeted assets by comparing the first authentication parameter to the second authentication parameter.
5. The device of claim 2 , wherein the processor further:
receives a mask from the server; and
replaces bits in the decryption key with don't care bits based on the mask.
6. The device of claim 1 , wherein the processor fills in the template based on one or more of:
demographic data associated with the user, psychographic data, purchases made by the user, or viewing behavior of the user.
7. A machine implemented method, the method comprising:
at a first server device:
filling in a plurality of data fields of a template with initial values that are based on a plurality of targeted user characteristics to obtain a server-side filled in version of the template, wherein the plurality of targeted user characteristics each indicate a targeted segment of users and a plurality of permutations of the data fields are each associated with a corresponding targeted asset of a plurality of targeted assets; and
encrypting a manifest based on the targeted user characteristics of the server-side filled in version of the template to obtain an encrypted manifest having a plurality of encrypted portions, each encrypted portion corresponding to a data field of the plurality of data fields and identifying a targeted asset of the plurality of targeted assets; and
at a client device:
generating a user-specific profile by filling in one or more of the plurality of data fields of a client-side version of the template with one or more user-specific values that are based on user characteristics of a user;
receiving, via a communication network, the encrypted manifest;
decrypting an encrypted portion of the plurality of encrypted portions of the encrypted manifest at the client device based on the one or more user-specific values included in the profile to obtain a decrypted portion,
wherein the client device is prevented from decrypting other of the plurality of encrypted portions of the encrypted manifest for which the data fields in the client-side version of the template do not contain user-specific values that can be used to decrypt the other of the plurality of encrypted portions; and
sending a request from the client device to a second server via the communication network for the targeted asset identified by the decrypted portion,
wherein the client-side version of the template is not sent to the second server.
8. A machine implemented method as recited in claim 7 , further comprising:
receiving a seed value at the client device; and
generating a decryption key at the client device based on the profile and the seed value.
9. A machine implemented method as recited in claim 8 , wherein decrypting the encrypted portion of the encrypted manifest includes at least partially decrypting the manifest at the client device based on the decryption key.
10. A machine implemented method of claim 8 , further comprising:
receiving a first authentication parameter at the client device that is based on an encryption key that was used to encrypt the manifest; and
applying the decryption key at the client device to results of decrypting the encrypted portion of the encrypted manifest to create a second authentication parameter; and
at the client device, at least partially decrypting the encrypted manifest by comparing the first authentication parameter to the second authentication parameter.
11. A machine implemented method of claim 8 , wherein generating the profile includes determining one or more of:
demographic data associated with the user, psychographic data, purchases made by the user, or viewing behavior of the user.
12. A machine implemented method of claim 11 , wherein the determining takes place at the client device.
13. A machine implemented method of claim 8 , further comprising:
receiving a mask at the client device; and
replacing bits in the decryption key with don't care bits at the client device based on the mask.
14. A hardware computer readable storage device comprising instructions which, when executed on a processor, cause the processor to:
fill in a client-side version of a template by filling in one or more of a plurality of data fields with one or more user-specific values that are based on user characteristics of a user, wherein the template is filled in at a client device;
receive via a communication network, at the client device, an encrypted manifest that identifies a plurality of targeted assets, wherein the manifest has been previously remotely encrypted to have a plurality of encrypted portions, wherein each encrypted portion of the manifest is decryptable by at least one permutation of a plurality of targeted user characteristics associated with a corresponding targeted asset of the plurality of targeted assets;
decrypt an encrypted portion of the plurality of encrypted portions of the encrypted manifest at the client device based on the one or more user-specific values included in the client-side filled in version of the template to obtain a decrypted portion, wherein the client device is prevented from decrypting other of the plurality of encrypted portions of the encrypted manifest for which the data fields in the client-side version of the template do not contain user-specific values that can be used to decrypt the other of the plurality of encrypted portions; and
send a request from the client device to a server via the communication network for the targeted asset identified by the decrypted portion,
wherein the client-side filled in version of the template is not sent to the server.
15. The hardware computer readable storage device of claim 14 , wherein the instructions further cause the processor to:
receive a seed value from the server; and
generate a decryption key based on the client-side filled in version of the template and the seed value.
16. The hardware computer readable storage device of claim 15 , wherein the instructions cause the processor to decrypt at least a part of the encrypted manifest at the client device based on the decryption key.
17. The hardware computer readable storage device of claim 15 , wherein the instructions further cause the processor to:
receive a first authentication parameter from the server that is based on an encryption key that was used to encrypt the manifest;
apply the decryption key to results of decrypting the encrypted portion of the encrypted manifest to create a second authentication parameter; and
at least partially decrypt the encrypted manifest by comparing the first authentication parameter to the second authentication parameter.
18. The hardware computer readable storage device of claim 15 , wherein the instructions further cause the processor to:
receive a mask from the server; and
replace bits in the decryption key with don't care bits based on the mask.
19. The hardware computer readable storage device of claim 14 , wherein the instructions further cause the processor to fill in the template based on one or more of: demographic data associated with the user, psychographic data, purchases made by the user, or viewing behavior of the user.
20. The hardware computer readable storage device of claim 14 , wherein the filled in template comprises bits, wherein the instructions further cause the processor to:
receive a mask and a base key from the server, wherein the base key has bits; and
replace selected bits of the bits in the client-side filled in version of the template with bits from the base key based on the mask to generate a modified client-side filled in version of the template, wherein the instructions that cause the processor to decrypt at least a part of the encrypted manifest at the client device based on the data included in the client-side filled in version of the template cause the processor to decrypt at least a part of the encrypted manifest based on the modified client-side filled in version of the template.