Looping in Deian, who was working (is working?) on something like this.

On Tue, Feb 3, 2015 at 9:35 AM, Monica Chew <m...@mozilla.com> wrote:

> Hi Olivier,
>
> I agree with ekr and Richard. There has been a lot of research lately about
> how to do personalization in a privacy-preserving manner.
>
> Bloom Cookies: Web Search Personalization without User Tracking, NDSS 2015
> http://research.microsoft.com/pubs/238114/BloomCookies.pdf
>
> RePriv: Re-Imagining Content Personalization and In-Browser Privacy, S&P
> 2011 (Livshits is a co-author on this one)
>
> http://research.microsoft.com/en-us/um/people/livshits/papers/pdf/oakland11.pdf
>
> Privad: Practical Privacy in Online Advertising, NSDI 2011
> http://static.usenix.org/event/nsdi11/tech/full_papers/Guha.pdf
>
> Adnostic: Privacy Preserving Targeted Advertising, NDSS 2010
> http://crypto.stanford.edu/adnostic/
>
> None of these require what is essentially the equivalent of limited XSS on
> behalf of ad networks. Have you evaluated if these work for you?
>
> Thanks,
> Monica
>
> On Tue, Feb 3, 2015 at 7:44 AM, Olivier Yiptong <oyipt...@mozilla.com>
> wrote:
>
> > # The Content Vault
> >
> > The purpose of this document is to gather your comments about the
> > feasibility of the idea of a Content Vault (CV). After gathering your
> > comments, a more formal RFC will be drafted.
> >
> > I’d like to use your comments to colour the proposal, from a platform,
> > security and privacy perspective, and from others if needed.
> >
> > This is about a new Firefox feature that will allow access to privileged
> > information in a content jail, that tries not to let information leak
> out.
> > Another descriptive term for this is a privacy vault.
> >
> > The state within that vault may be changed, perhaps on a global or
> > per-domain manner.
> > This sandbox will allow the transformation of DOM elements prior to
> > rendering, but unavailable to the parent page.
> >
> > The basic idea is to create a new kind of iframe, with special privileges
> > and limitations. In some ways, this may be considered the opposite to
> HTML5
> > sandbox (
> http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes),
> > whose focus is primarily on integrity; the focus of our solution is on
> > confidentiality or privacy.
> >
> > The idea of the content vault was brought to me by Ben Livshits, a
> > Research Scientist at Microsoft Research. Ben’s interests are broad, and
> > include Security and Privacy. Ben wishes to be involved in this project;
> we
> > will have his input on the matter.
> >
> > Ben can be found online:
> > http://research.microsoft.com/en-us/um/people/livshits/
> >
> > ## Rationale
> >
> > Today’s Internet user expects a great level of personalization. Websites
> > achieve this personalization by building a relationship with that user,
> and
> > sometimes through third parties. Those websites commonly create a profile
> > for that user, append new data with each interaction and often enrich
> that
> > corpus by buying additional data from brokers.
> >
> > The act of personalization is not inherently wrong and is often desired.
> > User experiements show that personalization increases user engagement and
> > satisfaction in the long run. We, after all, expect our computers to be
> > useful devices and that involves a degree of personalization. However,
> the
> > cost is often at the expense of privacy and/or security.
> >
> > With the idea of a content vault, we may be able to achieve some level of
> > personalization while keeping the data within the control of the user
> > agent, thus preventing data leaks.
> >
> > ## The Content Vault
> >
> > This vault would:
> >         • not be accessible from the parent page (similar to x-domain
> > iframes)
> >         • have limited capabilities (e.g. no network access)
> >         • have access to privileged data stored in the UA
> >         • do decisioning in UA without leaking externally
> >         • expose an API only accessible inside a sandbox (e.g.
> > declaratively allow for certain lists of items to be re-ordered)
> >
> > ### Privileged Data
> >
> > At this point, the data the CV has access to is not that relevant.
> > For illustration purposes, here are some examples of data that would show
> > the sensitive nature and utility of such data:
> >         • product purchase history
> >         • content preferences (e.g. +ve or -ve signals for topics)
> >         • absence or presence of signals gathered on the internet
> >
> > This pieces of data could inform the rendering of the contents of the CV,
> > in a way that keeps the data within the UA. This data would not be
> > otherwise accessible.
> >
> > ### Vault limitations
> >
> > The CV would have limited capabilities. For instance, certain API
> > endpoints will be closed off, e.g. XHR. The idea is to make it so that
> the
> > runtime for this content to be completely self-contained, aside from the
> > rendering to the user.
> >
> > The vault would only be allowed to do transformations to the DOM content
> > and perhaps to modify state within the UA that is only accessible via
> > another vault.
> >
> > Along the same vein as CSP, resources and capabilities for the CV could
> be
> > declared ahead of time.
> >
> > To mitigate information leakage, for instance, resources could be
> required
> > to be declared in advance. Those resources would be loaded and perhaps
> > pre-rendered prior to being selected and drawn.
> >
> > ### Vault API
> >
> > To aid in personalizing content, an API will be made available within the
> > vault. This API will only be made available within the CV and may declare
> > certain domain permissions.
> >
> > An example of a potential declarative API:
> >
> > <ul personalizable=”true”>
> >     <li topic=”business”>...</li>
> >     <li topic=”baseball”>...</li>
> >     <li topic=”foobarwidget”>...</li>
> > </ul>
> >
> > This could trigger the UA to re-order based on users’ preferences, most
> > preferred on top, and blacklisted topics hidden. The goal of the
> > surrounding CV is to prevent nosy JavaScript from discerning the user’s
> > preferences from the DOM state.
> >
> > JavaScript API’s could also be offered.
> >
> > ## Application
> >
> > ### Inline
> > The CV could be used embedded in pages, or in what is considered browser
> > chrome.
> > An example
> >
> > ### Tiles
> > It could be used to implement the idea of “Dynamic Tiles” in Firefox (an
> > idea coming from Doug Turner’s team). Those tiles would be defined as
> page
> > fragments and potentially scripts obtained from the internet. They’d show
> > up in the newtab page if a page frecent enough is present.
> >
> > ### Mobile Applications
> > From the perspective of the web as a platform, there needs to be
> > protection between applications potentially present in the same UI. A
> > direct application of this would be mobile apps containing other mobile
> > apps. For instance, an app could provide a way for a user to manipulate a
> > contact list without having access to all of it.
> >
> > ## The Asks
> >
> > I’d like you to comment on:
> >         • Feasibility of the vault at the platform level
> >                 • requiring a separate JS runtime
> >                 • blocking certain APIs
> >                 • access to a data store for privileged data
> >         • Potential Security / Privacy leaks
> >                 • Have to watch out for timing attacks
> >                 • Unintended data leak, e.g. a:visited CSS issue
> >                 • What are acceptable data leaks?
> >                 • What are inacceptable data leaks?
> >         • WebAPI feasibility
> >                 • CV DOM declarative syntax
> >                 • CSP-style script and resource declaration
> >         • Performance implications
> >                 • no lazy rendering
> >                 • pre-loading/pre-rendering of assets
> >
> > ## Additional comments
> >
> > <mconnor> it's an iframe with special powers
> > <mconnor> how we decide if that iframe gets those powers matters
> > <mconnor> how we sandbox them from each other matters
> > <mconnor> how do we keep that data in the sandbox
> > <mconnor> it's interesting, but it's also terrifying :)
> >
> > - Olivier
> >
> > +1 (647) 299-6074
> >
> >
> >
> >
> >
> >
> >
> _______________________________________________
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
>
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to