Open jwrosewell opened 3 years ago
I think there are both policy and technical questions here, and the policy questions are probably out of scope for this Work Item — I don't think we should get side-tracked by discussing how a browser decides whether to trust that its user consented to transferring a particular OWID. That could plausibly go in another Work Item if the CG is interested, and we might want to wait on that Work Item showing results before spending a lot of time on the technical questions here. It does make sense to spend a little time to see if this works at all.
One technical question is how a trusted OWID should interact with the mitigations for unwanted navigational tracking. Looking at the documented mitigations, they fall in 2 buckets: clearing storage after a "bad" navigation is detected, and removing "bad" query parameters.
Is the proposal here that if a URL has a trusted OWID embedded in it then a navigation to it is no longer "bad"? How should that embedding work?
Or is the proposal that if there were explicit state-transfer mechanisms outside of the URL, then people would stop embedding extra IDs into URLs, and so we could be more aggressive at blocking things that look like IDs in URLs?
@jyasskin Where are the policies under which this Work Item is working defined?
Thanks for the questions.
Is the proposal here that if a URL has a trusted OWID embedded in it then a navigation to it is no longer "bad"?
Yes with emphasis on the use of the words "trusted" and "bad". If the OWID contract referenced were "trusted" by the user then the user agent must not consider it "bad".
Also there is assumption in the question that is incorrect. The URL would not be "bad" without the OWID embedded in it. It would be in an "unknown" state of "goodness" or "badness".
How should that embedding work?
Via well-known prefixes to indicate the presence of an OWID which browsers could optionally inspect. The string "owid" could be used as a key prefix to indicate an OWID value. e.g. owid-user-id could be a user identifier passed in an OWID wrapper.
Or is the proposal that if there were explicit state-transfer mechanisms outside of the URL, then people would stop embedding extra IDs into URLs, and so we could be more aggressive at blocking things that look like IDs in URLs?
The proposal would apply to any data transfer within the web browser irrespective of the transfer mechanism. However let's start with the URLs and see how it stands up to analysis.
It is not within the scope of the proposal to require anyone to stop do anything. I'm very passionate about choice and classic liberal values like that.
Logically if there are more efficient or less intrusive mechanisms available it seems reasonable people would use them, particularly if they were implemented consistently and were simple to use.
Thank you @jyasskin for adding this to the agenda yesterday and contributing to the debate.
There were a number of misunderstandings that I attempted to address but due to time, or long held misconceptions, may not have communicated clearly enough. Here is a clarification.
As I understand the charter for this group, we are interested in privacy holistically across the web, not just as it relates to one particular use case or economic model. This issue/proposal takes components of the work developed to address problems with RTB advertising in relation to privacy (see ICO report from June 2019), and as such privacy beyond the perimeter of the web browser, and applies them to the specific concern of sharing of information via URLs accessed via a web browser.
This proposal considers both contract law and technical solutions. I do not believe that any enduring solution can be created for privacy that does not consider both. The debate identified this as a key area of difference between me and @johnwilander. This proposal does not require @johnwilander to change his position in relation to solutions exclusive utilising technical solutions to be viable. If Apple do not trust people to consent to contracts other than Apple’s to improve their access to the web then that is their choice and we must respect that.
This proposal will work with any contract. However, in practice I suspect a narrow set of Standard Contractual Clauses (SCC) will be used. Many of your businesses incorporate a SCC today for international data transfer of personal data from the EEA.
In practice people will be presented with a limited number of SCC contracts specifically for the purpose of sharing personal data. These SCCs will be embedded in hundreds of thousands of bespoke contracts that cover aspects other than the sharing of personal data. We therefore have a many to one relationship between website’s privacy policies and a SCC contract.
By applying the SCC contract to this proposal, we address many of the practical issues raised. Specifically, to @AramZS's question there could be hundreds of thousands of websites utilising a single SCC contract. Once the user has signaled their preference for that SCC contract then they do not need to be asked again for the hundreds of thousands of websites they might then go on to visit. To express this in cartoon form…
I believe that this is a similar concept to the Global Privacy Control (GPC) that many are already familiar with. The improvement over GPC is that there can be many SCC contracts for different purposes and thus people and web participants have greater choice. With SWAN people can be assured that all recipients of their personal data for advertising use cases must be bound by the same contract. They can be reassured that they have access to law enforcement should a breach occur.
I’m concerned that @ekr sought to dismiss the role of contracts in facilitating people’s safe access to the web. All people consent to a contract when installing a web browser. That contract gives the web browser the legitimacy to perform its function as the user’s agent. To argue that people cannot understand these contracts and thus consent to them undermines the legal basis for the provision of all digital services. Perhaps this is not what @ekr meant? If @ekr meant to state that such contracts are not confusing when presented by a web browser at the point of setup, but are confusing when presented by a website then I’d be interested to understand why he believes this so that I can consider remedies.
Group participants should consider the merits associated with gaining more information to inform decisions of “good” or “bad”, or “sanctioned” and “unsanctioned”, utilising an approach that places people in control and respects their choices. If not via the solution in this proposal, then perhaps others. Should the chairs wish to schedule a session to learn more about SCCs and their role in privacy I’d be happy to support that.
We discussed providing people choice over the sharing of state information during the Privacy CG meeting of the 23rd/24th September 2021. I considered the following key contributions as particularly relevant.
If I’ve not captured the points above correctly please comment further.
Whilst the SWAN.community prototype and proposal text does not yet explain how these issues are intended to be addressed, they were considered in the design, so that the SWAN.community method could evolve into a modern state sharing mechanism based on common contracts rather than solely registerable domain names. In this issue I’m sharing how that group envisage this evolution so that we can debate it at a future Privacy CG meeting.
SWAN Concepts
There are two relevant components to be familiar with.
Model Terms – all parties that use SWAN data are bound by the model terms. They are conceptually identical to the EC Standard Contractual Clauses which many of your businesses use. They are very similar to the take it or leave it open-source licences used on this very platform. If you don’t like the MPL 2 and that’s the licence that the source code is licensed under then you don’t use the source code. We use these standard contracts every day without realising it. Model terms are explained here.
Open Web Identifiers (OWID) – all personal data – or any data - is wrapped in an “envelope” that provides additional information concern the entity that collected of processed the data, when they did it, and a method of obtaining the legal basis under which the data collection or processing occurred.
Registerable domain name. Via well-known end points operated by the domain the legal entity (aka “data controller”) and contract used to collect or process data. Typically, this will be an organisation providing a user interface to collect the data (for example; collecting preferences, a random identifier, or optional email address), or processing data (for example; hashing two values to form a pseudo anonymous identifier).
The date and time to the minute that the OWID was created.
Data payload that the OWID contains, encoded as a byte array.
The Elliptic Curve (EC) signature applied to the OWID by the data controller. The data that is signed consists of the other three fields, domain, date and time and payload. The signature is used to confirm the OWID was generated by the entity that claims to have generated it at the registerable domain name.
Domain names in the OWID scheme provide the legal entity that generated the data (“Creator”), and the standard contractual clauses that were used to collect or process the data. It is the domain that is embedded in the OWID. Every Creator MUST provide a well-known end point that provides the contract – typically the common elements of a privacy policy and data sharing agreement - under which the data was collected or processed, their legal name, and a public key that enables the signature in the OWID to be verified using EC cryptographic signatures.
OWIDs and Model Terms are separate concepts and can stand on their own. In the SWAN proposal they are combined and can be seen visually by inspecting an advertising request involving many parties.
The following is a snippet from the SWAN.community demo showing the parties to a fictional OpenRTB transaction where data is exchanged outside of the web browser, all parties must have visibility of each other, and the user must be able to inspect the supply chain in the web browser should they wish.
OWIDs are explained more fully here. There are also three concrete implementations of OWIDs for Go, .NET and JavaScript.
Supporting people’s choices
OWID’s provide the following benefits.
If we consider these features in relation to state data being shared between registerable domains within a user agent, whether via URL, cookies, shared storage, or any other mechanism, we can achieve the following.
Therefore, we can support the following flow.
In Boolean logic the equations are.
Good = Contract X == Contract Y == Contract OWID Bad = Contract X != Contract Y || Contract X != Contract OWID || Contract Y != Contract OWID
All state operations will repeat this basic process.
The process can be applied to all state sharing operations in a web browser and is backwards compatible. The following would be needed.
This would enable browser vendor A to adopt this state sharing permission enhancement, but vendor B to ignore it. People will then decide which model they prefer and modify their browser choices accordingly as they have always done.
The benefits of the proposal include: