I agree that WPT infrastructure shouldn't be a blocker when we're following
other browsers.

Have y'all tested the mitigation with commonly used authentication/payment
flows, to make sure it doesn't break them?

On Mon, Aug 28, 2023 at 11:08 PM Mike Taylor <miketa...@chromium.org> wrote:

> LGTM1 to ship, as long as we fast follow with doing the work to define
> and ship webdriver extensions in order to make this testable in WPT.
>
> (I don't think your team should be blocked on shipping because other
> browsers who already shipped the feature didn't do that work.)
>
> On 8/21/23 3:44 PM, Christian Biesinger wrote:
> > On Mon, Aug 21, 2023 at 3:25 PM Ben Kelly <wanderv...@chromium.org>
> wrote:
> >>
> >>
> >> On Mon, Aug 21, 2023 at 11:38 AM Mike Taylor <miketa...@chromium.org>
> wrote:
> >>> On 8/21/23 11:09 AM, Ben Kelly wrote:
> >>>
> >>> On Sun, Aug 20, 2023 at 11:27 PM Yoav Weiss <yoavwe...@chromium.org>
> wrote:
> >>>> Thanks for working on this important problem!
> >>>>
> >>>> On Thu, Aug 17, 2023 at 9:28 PM Ben Kelly <wanderv...@chromium.org>
> wrote:
> >>>>> Sorry, it seems I left off the signals section of the template:
> >>>>>
> >>>>> Firefox: No signal (
> https://github.com/mozilla/standards-positions/issues/835)
> >>>>
> >>>> Firefox folks seem tentatively supportive, but have WPT questions.
> Can you address them?
> >>>
> >>> I'm checking without our WPT folks to try to understand what mozilla
> is suggesting.  I'm not familiar with web-driver functions at all, so not
> quite sure yet how feasible this is.
> >>>
> >>> My read on bvandersloot's comment is that he's asking for a less
> generic version https://github.com/web-platform-tests/wpt/issues/17489 to
> make this testable (which you've already linked below). Exposing endpoints
> for advancing time seems to have more use cases than bounce
> tracking-specific webdriver endpoints, IMHO - but that's a discussion that
> should probably happen in the relevant WG.
> >>>
> >>> See https://github.com/web-platform-tests/rfcs for the process to
> propose extending the testdriver.js API to expose... but I think you'll
> want to get the relevant concepts added to the webdriver spec first (seems
> possible, if Mozilla if supportive). The other option would be to something
> similar to FedCM by adding webdriver extension commands (see spec PR here:
> https://github.com/fedidcg/FedCM/pull/465/files).
> >>>
> >>> I personally wouldn't recommend blocking on this work, but it seems
> useful for someone to pursue as good first bugs for folks interested in
> standards and WPT internals. Note that additions to WebDriver now require
> going through the Intent process (great news for folks interested in
> learning this process, presumably they exist!).
> >>
> >> Andrew Williams also helpfully pointed out a bunch of code source
> references to me for this.  I filed crbug.com/1474656 to do this work.
> >>
> >> I think this is definitely something we will do, but it may take a
> milestone or two to get it done.  In particular, I'm unsure if there will
> be pushback to modifying the web-driver functions for a bounce tracking
> mitigations-specific feature.
> > Lots of specs define webdriver extensions, that should not be a problem.
> E.g.:
> > https://fedidcg.github.io/FedCM/#automation
> > https://w3c.github.io/secure-payment-confirmation/#sctn-automation
> > https://w3c.github.io/webauthn/#sctn-automation-virtual-authenticators
> >
> > Note that you have to implement the commands twice, once for Chrome's
> > bots and once for upstream wpt.fyi and general UA automation uses.
> > Chrome's impl does not really use webdriver, it usually just calls a
> > function on internals (e.g.
> >
> https://chromium-review.googlesource.com/c/chromium/src/+/4740672/6/third_party/blink/web_tests/resources/testdriver-vendor.js
> )
> >
> > The second impl is in Chromedriver, likely using CDP, e.g.:
> > https://chromium-review.googlesource.com/c/chromium/src/+/4281897
> > plus
> > https://chromium-review.googlesource.com/c/chromium/src/+/4402971
> >
> > Christian
> >
> >> I don't think we want to take on the general purpose clock modification
> change to web-driver, though.  That seems like a much larger scope.
> >>
> >>>
> >>>>
> >>>>> Webkit: No signal (
> https://github.com/WebKit/standards-positions/issues/214)
> >>>>> Web developers: No signals
> >>>>>
> >>>>> On Thu, Aug 17, 2023 at 10:22 AM Ben Kelly <wanderv...@chromium.org>
> wrote:
> >>>>>> Contact emails
> >>>>>>
> >>>>>> wanderv...@chromium.org, b...@chromium.org, rtarp...@chromium.org,
> j...@chromium.org
> >>>>>>
> >>>>>>
> >>>>>> Explainer
> >>>>>>
> >>>>>>
> https://github.com/privacycg/nav-tracking-mitigations/blob/main/bounce-tracking-explainer.md
> >>>>>>
> >>>>>>
> >>>>>> Specification
> >>>>>>
> >>>>>>
> https://privacycg.github.io/nav-tracking-mitigations/#bounce-tracking-mitigations
> >>>>>>
> >>>>>>
> >>>>>> Summary
> >>>>>>
> >>>>>> This feature mitigates bounce tracking on the web.  It works by
> deleting state from sites that access storage during a redirect that the
> user has never directly interacted with.  See the specification for more
> details.
> >>>>>>
> >>>>>>
> >>>>>> Blink component
> >>>>>>
> >>>>>> Privacy>NavTracking
> >>>>>>
> >>>>>>
> >>>>>> TAG review
> >>>>>>
> >>>>>> https://github.com/w3ctag/design-reviews/issues/862
> >>>>>>
> >>>>>>
> >>>>>> TAG review status
> >>>>>>
> >>>>>> Issues addressed
> >>>>>>
> >>>>>>
> >>>>>> Risks
> >>>>>>
> >>>>>>
> >>>>>> Interoperability and Compatibility
> >>>>>>
> >>>>>> The main risk is that we will incorrectly delete state for a site
> that the user needs to continue functioning.  Our approach attempts to
> address this with a number of signals:
> >>>>>>
> >>>>>>
> >>>>>> If a user has interacted with the site within the last 45 days, we
> will not delete its state.
> >>>>>>
> >>>>>> We are adding successful webauthn key assertions as another
> "interaction" source in M117 to address SSO use cases that only require
> security taps to stay logged in.
> >>>>>>
> >>>>>> We only delete state if the potential tracking site is not
> permitted as a 3P cookie.  This allows users and enterprises to grant
> permission to maintain state on these sites through existing mechanisms.
> >>>>>>
> >>>>>>
> >>>>>> We have documented some known use cases at-risk.
> >>>>>>
> >>>>>>
> >>>>>> In particular, since 3P cookies are default allowed today, this
> feature will only have an immediate impact on users that have opted into 3P
> cookie blocking or incognito where 3P cookies are blocked by default.
> >>>>>>
> >>>>>>
> >>>>>> Ergonomics
> >>>>>>
> >>>>>> Minimal ergonomic risk.  There are no direct APIs to call here.  We
> are deleting state for sites behind the scenes.  We do not delete state for
> sites that are currently open.  We have devtools enhancements to help
> developers understand the process.
> >>>>>>
> >>>>>>
> >>>>>> Activation
> >>>>>>
> >>>>>> No activation risk.  There is nothing to polyfill.
> >>>>>>
> >>>>>>
> >>>>>> Security
> >>>>>>
> >>>>>> This feature does incrementally worsen existing XS-Leaks in the
> browser by exposing an additional bit of information.  Attackers can learn
> if a user has interacted with a site within the last 45 days if they are
> able to trigger a stateful bounce on the target site and execute a XS-Leak
> attack to detect the existence of cookies or state on the site.  Since
> bounce tracking mitigations are only enforced when 3P cookies are blocked,
> however, the XS-Leak must use navigations and not subresource attacks.
> >>>>
> >>>> Does that mean that any exposed navigation bounce on a sensitive site
> becomes a history leak? Or do other conditions apply that would make this a
> rare occurrence?
> >>>> If it's the former, how do other browsers' mitigation techniques deal
> with this?
> >>>
> >>> I don't think it's equivalent to a full history leak on its own.  In
> order to get the extra leaked bit of "was interacted with in the last 45
> days", the site must already have a XS-leak allowing an attacker to detect
> the existence of cookies or state on the site.  Typically cookies or state
> are already going to indicate some user activity (interaction).  So the
> additional bit, while strictly a worsening of the situation, is relatively
> minor compared to what is available from the prerequisite attack.
> >>>
> >>> Again, we'd like to work on closing the underlying XS-leak that allows
> attackers to detect cookies/state in the future.  Fixing forward here is
> preferable since trying to fix just the interaction bit in bounce tracking
> mitigations itself would likely force the introduction of some kind of
> allow/block list which has larger negative impacts (as discussed in the
> explainer alternatives).
> >>>
> >>>>
> >>>>>>
> >>>>>> We feel the best solution to this problem is to invest in fixing
> navigation-based XS-Leaks.  The additional bit of interaction information
> leaked in the meantime is not ideal, but it has limited utility if an
> attacker can already tell if there is state on the target site.  We are
> interested in collaborating with the security team to help address the
> underlying XS-Leak.
> >>>>>>
> >>>>>>
> >>>>>> WebView application risks
> >>>>>>
> >>>>>> We are purposely excluding WebView from this launch so we can
> evaluate impact to that platform separately.
> >>>>>>
> >>>>>>
> >>>>>> Debuggability
> >>>>>>
> >>>>>> We issue devtool "issues" when a site may potentially be deleted as
> a bounce tracking.  In addition, we have a devtools application panel to
> force the bounce tracking algorithm to run immediately.  See the
> screenshots in this blog post.
> >>>>>>
> >>>>>>
> >>>>>> Will this feature be supported on all six Blink platforms (Windows,
> Mac, Linux, Chrome OS, Android, and Android WebView)?
> >>>>>>
> >>>>>> All except WebView.  We would like to evaluate the impact to
> WebView in a separate launch.
> >>>>>>
> >>>>>>
> >>>>>> Is this feature fully tested by web-platform-tests?
> >>>>>>
> >>>>>> No, unfortunately.  Since this feature runs off of a long duration
> timer we cannot construct a WPT test case.  We need wpt#17489 to be fixed
> in order to correct this.
> >>>>>>
> >>>>>>
> >>>>>> Flag name
> >>>>>>
> >>>>>> DIPS
> >>>>>>
> >>>>>>
> >>>>>> Requires code in //chrome?
> >>>>>>
> >>>>>> Yes.  We must integrate with features like the chrome sign-in
> manager, TabHelper, etc.  We are, however, actively working to move other
> code into the content// layer.
> >>>>>>
> >>>>>>
> >>>>>> Tracking bug
> >>>>>>
> >>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1360489
> >>>>>>
> >>>>>>
> >>>>>> Measurement
> >>>>>>
> >>>>>> We are measuring UKM for sites that have state deleted by bounce
> tracking mitigations.
> >>>>>>
> >>>>>>
> >>>>>> Availability expectation
> >>>>>>
> >>>>>> Our initial MVP implementation is launching to all platforms with
> the exception of WebView.  In addition, bounce tracking mitigations are
> only enforced in situations where the tracking domain is not permitted as a
> 3P cookie.
> >>>>>>
> >>>>>>
> >>>>>> Adoption expectation
> >>>>>>
> >>>>>> There is no specific API to adopt for this effort, but we only
> enforce the bounce tracking mitigations when 3P cookies are blocked.
> Therefore we expect it to have a greater impact as 3P cookie blocking
> becomes more common in the future.
> >>>>>>
> >>>>>>
> >>>>>> Adoption plan
> >>>>>>
> >>>>>> N/A
> >>>>>>
> >>>>>>
> >>>>>> Non-OSS dependencies
> >>>>>>
> >>>>>> None
> >>>>>>
> >>>>>>
> >>>>>> Sample links
> >>>>>>
> >>>>>> https://bounce-tracking-demo.glitch.me/
> >>>>>>
> >>>>>>
> >>>>>> Estimated milestones
> >>>>>>
> >>>>>> Gradual rollout during M116.  Webauthn interaction support will
> take effect in M117.
> >>>>>>
> >>>>>>
> >>>>>> Anticipated spec changes
> >>>>>>
> >>>>>> We have written a monkey-patch spec here:
> >>>>>>
> >>>>>>
> >>>>>>
> https://privacycg.github.io/nav-tracking-mitigations/#bounce-tracking-mitigations
> >>>>>>
> >>>>>>
> >>>>>> Link to entry on the Chrome Platform Status
> >>>>>>
> >>>>>> https://chromestatus.com/feature/5705149616488448
> >>>>>>
> >>>>>>
> >>>>>> Links to previous Intent discussions
> >>>>>>
> >>>>>>
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK7rkMi_7z0-yeTbBiE43V5SD1ri4jSVxrkR8Gs%3DD0NRoRKivA%40mail.gmail.com
> >>>>>>
> >>>>>>
> https://groups.google.com/a/chromium.org/g/blink-dev/c/vyXWn1W1daA/m/tL3f1_WbAwAJ
> >>>>>>
> >>>>>>
> >>>>> --
> >>>>> You received this message because you are subscribed to the Google
> Groups "blink-dev" group.
> >>>>> To unsubscribe from this group and stop receiving emails from it,
> send an email to blink-dev+unsubscr...@chromium.org.
> >>>>> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK7rkMi2xOMKfZsV5q9jgBuaFvRC3b67fsw%3DYF%2BLNDRgp%2BjdrA%40mail.gmail.com
> .
> >>> --
> >>> You received this message because you are subscribed to the Google
> Groups "blink-dev" group.
> >>> To unsubscribe from this group and stop receiving emails from it, send
> an email to blink-dev+unsubscr...@chromium.org.
> >>> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK7rkMgTO8-OStci%3DDgu-xeNZJKgOnf17i15wkXintg2wod2Ag%40mail.gmail.com
> .
> >> --
> >> You received this message because you are subscribed to the Google
> Groups "blink-dev" group.
> >> To unsubscribe from this group and stop receiving emails from it, send
> an email to blink-dev+unsubscr...@chromium.org.
> >> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK7rkMiXRs97mKph1BayrWAknP-1dfdCOTPHq%2B7xRBnSN%2BxU9g%40mail.gmail.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfUN8zEqueKoOm0Jua79L%2BwP%2BncD9r%2BcDc9A%3DvDNk0YTqA%40mail.gmail.com.

Reply via email to