Platform for Privacy Preferences (P3P)

Technical Description
Update of Dr. Miller presentation.

Joseph Reagle, P3P Project Manager
(reagle@w3.org)
World Wide Web Consortium
MIT Lab for Computer Science

http://www.w3.org/Talks/980103-IBM-updated/

Background

P3P Scenario

  1. A user sets generic preferences, upon which her agent (browser) automatically acts.
    She can now browse the Web seamlessly.
  2. She encounters a site with "exceptional" practices outside her generic preferences.
    Perhaps a sports news site wants to collect her favorite teams for a customized news page.
  3. The user is prompted if she wishes to consider other alternatives, consent to the exceptional practice, or to go elsewhere.
    She can develop a one-to-one relationship with a site she trusts.

What P3P Is About

P3P Assumptions

P3P Architecture

One needs a:

Concepts

AgreementID
A small unit of information that indicates both parties have agreed on a common proposal. An agreementID is the fingerprint of an accepted proposal. The presence of the agreementID in the P3P headers is the definitive declaration of which agreements for a given realm are in effect for a given transaction.
Assuring Party
Within P3P, an assuring party is an entity which makes some statement of assurance about a proposal (e.g. that practices are audited, or are in compliance with certain data collection guidelines).
PUID
PUID := hash(GUID, Realm, AgreementID). The PUID is an optional way for the user to identify herself to a service under a particular agreement. PUIDs correspond directly to a specific realm and agreement. PUIDs are like cookies, but are under P3P control and are simple numberical values.

Example P3P Grammar

  1. for some set of URLs
  2. this entity
  3. applies practices
  4. to this set of data elements
      (with these permissions)
  5. with the following consequence for the user-agent
  6. the company is a member of TRUSTe.
[for (www.llbean.com)
(LLBean) applies the
practice ("system administration")
to (User.Name, System.Click_stream/)
consequence ("optimized user experience")
] signatures and vouchers ("TRUSTe")

Example P3P Proposal

<proposal agreementID="1e3a5d71297d104f"
SCHEMA=http://www.w3.org/P3P10.schema"

 REALM="http://www.CoolCatalog.com/catalogue/"/>
  <uses>
    <statement purpose="2" id="0"
    CONSEQUENCE="customized the site">
    <data>
     <ref NAME="User.PersonName.First"/>
     <ref NAME="Web.PUID"/>
     <ref NAME="FineShoes.Shoesize"
          dataschema="http://www.FineShoes.com/Schema1.0"/>
    </data>
   </statement> </uses>
 <DISCLOSURE text="http://www.CoolCatalog.com/PrivacyPractice.html" 
 ACCESS="3" OTHERDISCLOSURE="0 1"/>
</proposal>

Agreements: The Issues

Agreements: The Technology

  1. the agreementID: fingerprint of a proposal
  2. fingerprints plus digital signatures when they are available.

Technically, this corresponds to a small piece of metadata in RDF (Resource Description Framework) format that may optionally include a DSig 2.0-compliant signature.

Categories and Classes

Convenient ways of specifying sets of data elements, implicitly by attributes (categories) or explicitly by sets of names (classes).

Standardization of Names

Some standardization is mandatory and will be undertaken by the harmonization group:

Transferring Data (bi-directional)

Universal Negotiation Primitives

  1. OK, OK
  2. PROP, proposal
  3. SRY, (sorry) refusal with reason
  4. TXD, transmit data (either direction)

Negotiation Flow

Message  Meaning  U to S?  S to U?  After Receiving  Expected Response  Data in Message  Optional in Message 
OK Proposal acceptable or data transfer successful Yes Yes PROP or TXD none MD5 hash of agreement or data transferred  
PROP Here's a Proposal Yes Yes any time OK, SRY, or PROP Text of a proposal Signature of initiator, fingerprint of previous Proposal
SRY Sorry - request not processed Yes Yes PROP, TXD PROP or none Reason code and {MD5 hash of proposal, or MD5 hash of data} Which practices are unacceptable (To Be Designed)
TXD Transfer Data Yes Yes any time none, OK or SRY Data element names and values to be written, as requested Agreement

Data Transfer

Transfers occur only occur with user consent. Transfers include the a reason code, agreementID, and the name-value pairs.

<txd r=200 agreementID="94df1293a3e519bb" />
<data NAME="User.PersonName.First" VALUE="Josephine"/>
<data NAME="Web.PUID" VALUE="1528374951607"/>
<data NAME="FineShoes.Shoesize"
  dataschema="http://www.FineShoes.com/Schema1.0" VALUE="7"/>
</txd>

Privacy Protection: Not Just Technology

Conclusion

Some of the Members Working on P3P

  • America Online
  • AT&T Labs
  • Center for Democracy and Technology
  • Digital Equipment Corporation
  • Engage Technologies
  • Firefly Network Inc
  • IBM
  • Intermind Corporation
  • MatchLogic
  • Microsoft
  • Narrowline
  • Netscape
  • Sony
  • The DMA
  • TRUSTe
  • VeriSign