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/41132f86-9be1-4b55-8e2e-147154f7ac14%40chromium.org.