Thank you. FYI, bounce tracking mitigations are rolling out to stable 1% as of today.
On Tue, Sep 5, 2023 at 12:09 PM Chris Harrelson <chris...@chromium.org> wrote: > LGTM3 > > On Tue, Sep 5, 2023 at 6:56 AM Ben Kelly <wanderv...@chromium.org> wrote: > >> Ping for last LGTM or more feedback. We were hoping to be able to >> collect some stable data before TPAC, if possible. >> >> On Wed, Aug 30, 2023 at 8:45 AM Yoav Weiss <yoavwe...@chromium.org> >> wrote: >> >>> LGTM2 >>> >>> On Tue, Aug 29, 2023 at 5:44 PM Ben Kelly <wanderv...@chromium.org> >>> wrote: >>> >>>> On Tue, Aug 29, 2023 at 1:40 AM Yoav Weiss <yoavwe...@chromium.org> >>>> wrote: >>>> >>>>> I agree that WPT infrastructure shouldn't be a blocker when we're >>>>> following other browsers. >>>>> >>>> >>>> Thank you. >>>> >>>> Have y'all tested the mitigation with commonly used >>>>> authentication/payment flows, to make sure it doesn't break them? >>>>> >>>> >>>> We have been dogfooding and not run into any issues with auth/payment >>>> flows. We are also collecting UKM metrics on sites deleted. I've sent you >>>> a private email with that information. >>>> >>>> The UKM is predominantly advertising, tracking, etc. There are a >>>> smattering of auth/ecommerce/etc, but at lower volumes. The auth issue we >>>> believe may be related to automatic login scenarios in enterprises (issue >>>> 36 <https://github.com/privacycg/nav-tracking-mitigations/issues/36>), >>>> which can be largely addressed with enterprise policies. We also >>>> integrated webauthn security key taps as interactions in M117 to reduce >>>> authentication false positives. >>>> >>>> Overall, however, we believe that since we only take action when 3P >>>> cookies are blocked, breakage should be limited. The 3P cookie default has >>>> not changed yet, so most users will not be affected. In addition, >>>> chromeguard, enterprise policies and other mechanisms can be used to add >>>> cookie exceptions which bounce tracking mitigations will honor. >>>> >>>> Ultimately, many sites will need to adapt to a new normal when the 3P >>>> cookie setting default changes. That will need to include that bounce >>>> tracking is not an acceptable replacement. We would like to ship bounce >>>> tracking mitigations gated on 3P cookie permissions so that when sites >>>> perform 3P cookie deprecation testing they see the new bounce tracking >>>> behavior as well. >>>> >>> >>> Thanks for outlining your motivations! Going ahead with this change >>> before the 3P cookie deprecation but 3P cookie blocking makes perfect sense! >>> >>> >>>> >>>> >>>>> >>>>> 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/CAK7rkMh5YYoSgos29560-ZasdpiPQTZSPzAPcTL83XGeHvNy5Q%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK7rkMh5YYoSgos29560-ZasdpiPQTZSPzAPcTL83XGeHvNy5Q%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- 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/CAK7rkMhY-GV6%3DgqgvvyTyDnf704URqn4VABkgH%2BrNX1URUh2gw%40mail.gmail.com.