Introduction

This is a specification of personal privacy preferences, based on the Privacy Needs and Preferences" document.  The information model defines the names and values and groups of name/value pairs that encode users’ privacy preferences with respect to aspects of their personal information.  These name/value pairs will be created, transmitted, and stored using a JSON data structure.  Examples are provided of each preference encoded in JSON.

Terminology

Some of the terms used in this document are based on the “Personal Information Protection and Electronic Documents Act” (PIPEDA).  They are defined here.

Personal information

Information about an identifiable individual.  Examples include name, address, and credit card information.

Organization

Includes an association, a partnership, a person and a trade union.

Collection of personal information

An organization or service gathers personal information from a user and may store it internally. For example, a site may request a user enter their name, address, and credit card, and then store them on an internal server.

Use of personal information

An organization or service uses collected personal information for the purposes for which it was collected.  Use is internal, within the organization.  Continuing with the above collection example, a service uses credit card information when an individual purchases an item, and then the service uses the individual's address to ship the item.

Disclose personal information

An organization or service shares information it has collected with external third parties.

Information Model

privacyPreferences

The container for all of the user's privacy preferences. In JSON:

"privacyPreferences" : { ... }


An empty

privacyPreferences

 implies using the default settings for all of the user's privacy preferences.  Default settings are indicated using bold text.

privacyPreferences.thirdPartyTracking

Defines a set of Boolean preferences with respect to third parties tracking of a user's behaviour, and whether to alert the user of any tracking.  If the user preference is to block all tracking, and that preference is actually enforced, then the alert preference is superfluous  The default preference is to prohibit all tracking by third parties.

Example:

"privacyPreferences": {

"thirdPartyTracking": {

"doNotTrack": "onLeaveSite",

"alerts": true

}

}



privacyPreferences.thirdPartyScripts

Provides preferences for restriction of

third party scripts

 on a web page or site. There is no default setting in this case, since the preference is specified in the context of the page or site.  Since there can be numerous sites and pages that these settings apply to, the thirdPartyScripts preference is an array of restrictions on a per site or per page basis.  Each site or page is defined by a URI.


true, false,

or 

temporarily.


Example:

  "privacyPreferences": {

"thirdPartyScripts": [{

"site": "www.somewhere.com",

"allow": "temporarily"

},{

"page": "www.elsewhere.com/login",

"allow": true

},{

"site": "www.nefarious.org",

"allow": false

}]

}

privacyPreferences.locationTracking

Provides a set of values and a whitelist of services that track the location of the user.  The default is to not allow any service to track the user’s location.  A service is specified using a URI, designated as a serviceURI.

User’s can allow all services to track them, or allow no services to track them, or allow only a set of trusted services to track.  If the latter, the preferences allow the user to specify a list of trusted services.

Examples:

The first two examples show all that is necessary to specify no tracking or, in contrast, tracking by any service.  The third example shows how to state preferences for only trusted services.

Example 1 -- no service can track:

  "privacyPreferences": {

      "locationTracking": "none"

  }

Example 2 -- all services can track:

  "privacyPreferences": {

      "locationTracking": "all"

  }

Example 3 -- trusted services can track:

  "privacyPreferences": {

      "locationTracking": [  // whitelist of trusted services

"serviceURI",

"serviceURI",

"serviceURI",

  ]

   }

privacyPreferences.sharingContacts

A set of values and a whitelist of services with respect to sharing the user’s contacts (e.g., address book).  The default is to disallow any contact sharing.

User’s can share their contacts with all services, or allow no services to track them, or share with only a set of trusted services.  If the latter, the preferences allow the user to specify a list of trusted services, and whether to ask the user before sharing.

Examples:

The first two examples show all that is necessary to specify no sharing or, in contrast, sharing with any service.  The third and fourth examples show how to state preferences for only trusted services, with and without confirmation.

Example 1 -- do not share contacts with any service:

  "privacyPreferences": {

      "sharingContacts": "off"

  }

Example 2 -- share contacts with all services:

  "privacyPreferences": {

      "sharingContacts": "on"

  }

Example 3 -- share contacts only with trusted services, but only with user’s confirmation:

  "privacyPreferences": {

      "sharingContacts": {

           "askMeFirst": true,

           “whiteList”: [ // whitelist of trusted services

               "serviceURI",

               "serviceURI",

               "serviceURI",

               "serviceURI",

               "serviceURI",

               "..."

           ]

      }

 }

Example 4 -- share contacts only with trusted services, but without user’s confirmation:

  "privacyPreferences": {

      "sharingContacts": {

           "askMeFirst": false,

           "whiteList": [ // whitelist of trusted services

              "serviceURI",

              "serviceURI",

              "serviceURI",

              "serviceURI",

              "serviceURI",

              "..."

          ]

      }

 }

privacyPreferences.clearHistory

Defines which of a user’s browser history features are to be forgotten, and when.  The browser features are history, downloads, passwords, autofill form data, and the cache.  A special case is where users do not want these features recorded in the first place.  This is represented as the special time period “neverRemember”, meaning do not record or store historical information.

Example:

This example shows a list of all the different browser features and how frequently they should be cleared.

  "privacyPreferences": {

      "clearHistory": {

          "history": "neverDelete",

          "downloads": "weekly",

          "passwords": "hourly",

          "autoFillData": "onQuit",

          "cache": "daily"

      }

  }

privacyPreferences.eraseAfterUsing

Defines whether specific personal information, which has been provided, needs to be erased and forgotten immediately after its use.  An example is providing one’s credit card information for making a purchase.  When the purchase is complete, and the information is no longer needed, this preference indicates that the user expects their credit card information will be erased.

Example:

This example indicates that personal information should be erased immediately after it is no longer needed.

  "privacyPreferences": {

      "eraseAfterUsing": true

  }

privacyPreferences.allowAdvertising

Defines a set of values and a whitelist of advertisements.  The default is to not allow any advertisements.

Users can allow all advertisements to be shown, allow no advertisements , or allow only a targeted list.  The targeted list allows the user to specify trusted services.

Examples:

The first two examples show all that is necessary to prohibit any advertisements or, in contrast, allow all advertisements by any service.  The third example shows how to state preferences for only targeted advertisements.

Example 1 -- no advertisements:

  "privacyPreferences": {

      "allowAdvertising": "on"

  }

Example 2 -- all advertisements:

  "privacyPreferences": {

      "allowAdvertising": "off"

  }

Example 3 -- trusted services can track:

  "privacyPreferences": {

      "allowAdvertising": [  // whitelist of advertisements

"serviceURI",      // URI of allowed advertisment

"serviceURI",

"serviceURI",

  ]

   }

privacyPreferences.cookies

The “cookies” preference is a container for a number of privacy settings with respect to the creation of cookies, the sharing of cookie data, and when to force the expiration of a cookie.

Examples:

  "privacyPreferences": {

      "cookies": {

          "allowCreation": [    // whitelist of trusted services

              "serviceURI",

              "serviceURI",

              "serviceURI",

              …

          ],

          "allowSharing": "askFirst",

          "expiration": "daily"

      }

  }

  "privacyPreferences": {

      "cookies": {

          "allowCreation": "always",

          "allowSharing": [    // whitelist of trusted services

              "serviceURI",

              "serviceURI",

              "serviceURI",

              …

          ],

          "expiration": "endOfSession"

      }

  }

privacyPreferences.dataControl

This group of preferences allows users to view, update, delete, set expiration dates, and ask for details about how their information is being used or disclosed.  The preferences represent user requests about their personal information as managed by some organization. The preferences or requests is on a per-organization basis.  Organizations are specified by a serviceURI.  Since a user can supply information to multiple organizations, the dataControl preferences are a list of requests for each organization.

With the exception of the expiration request, the values of each preference are true or false, meaning the user either is inquiring about that aspect of their personal information (a value of true), or they are not (false).  A missing preference is equivalent to false for that request.

Example:

  "privacyPreferences": {

      "dataControl": [{

          "organization": "www.somewhere.com",

          "editUpdateAll": "true",

          "howUsed": "true",

          "howDisclosed": "true"

      }, {

          "organization": "www.elsewhere.com",

     "expiration": "2017-04-05T14:30Z"

      }]

  }

Full Preference Set Example

  "privacyPreferences": {

      "thirdPartyTracking": {

          "doNotTrack": "onLeaveSite",

          "alerts": true

      },

      "thirdPartyScripts": [

        { "site": "www.somewhere.com", "allow": "temporarily" },

        { "page": "www.elsewhere.com/login", "allow": true },

        { "site": "www.nefarious.org", "allow": false }

      ],

      "locationTracking": [  // whitelist of trusted services

"serviceURI",

"serviceURI",

"serviceURI"

 ],

      "sharingContacts": {

           "askMeFirst": true,

           "whiteList": [   // whitelist of trusted services

               "serviceURI",

               "serviceURI",

               "serviceURI",

               "serviceURI"

           ]

      },

      "clearHistory": {

          "history": "neverDelete",

          "downloads": "weekly",

          "passwords": "hourly",

          "autoFillData": "daily",

          "cache": "onQuit”

      },

      "eraseAfterUsing": true,

      "blockAdvertising": [  // whitelist of targeted advertisements

"serviceURI",

"serviceURI",

"serviceURI",

 ],

      "cookies": {

          "allowCreation": "always",

          "allowSharing": [    // whitelist of trusted services

              "serviceURI",

              "serviceURI",

              "serviceURI",

              …

          ],

          "expiration": "endOfSession"

      }

      "dataControl": [{

          "organization": "www.somewhere.com",

          "editUpdateAll": "true",

          "howUsed": "true",

          "howDisclosed": "true"

      }, {

          "organization": "www.elsewhere.com",

     "expiration": "2017-04-05T14:30Z"

      }]

  }