LGTM3 On Wednesday, March 5, 2025 at 6:21:35 AM UTC-8 Mike Taylor wrote:
> FYI, it looks like WebKit is trending supportive on this change: > https://github.com/WebKit/standards-positions/issues/462#issuecomment-2693662676 > > On 3/2/25 9:32 PM, Domenic Denicola wrote: > > LGTM2. > > I'm saddened by the way the implementer community has not been able to > converge upon and specify a unified keying scheme, but I agree we shouldn't > block further improvements on that, since none of the browsers seem to be > making movements toward such alignment. I appreciate that you pinged > <https://github.com/whatwg/fetch/issues/1035#issuecomment-2658239821> the > relevant thread to see if there's any movement. > > On Thursday, February 27, 2025 at 1:23:43 AM UTC+9 Chris Harrelson wrote: > >> LGTM1 >> >> On Tue, Feb 25, 2025 at 7:54 AM Mike Taylor <miketa...@chromium.org> >> wrote: >> >>> On 2/25/25 2:55 AM, Yoav Weiss (@Shopify) wrote: >>> >>> Thanks for pushing this! >>> >>> On Monday, February 24, 2025 at 8:04:31 PM UTC+1 Andrew Williams wrote: >>> >>> Contact emailsmiketa...@chromium.org, awil...@chromium.org >>> Explainer >>> >>> HTTP cache partitioning in general is covered by https://github.com/ >>> shivanigithub/http-cache-partitioning, and this proposal extends >>> partitioning to navigations. This I2S and the linked resources discuss the >>> partitioning scheme changes and the specific attack scenarios that are >>> mitigated. >>> >>> Specificationhttps://fetch.spec.whatwg.org/#http-cache-partitions >>> >>> >>> The spec doesn't seem to indicate any of this logic (nor does it include >>> triple keying AFAIU). >>> I don't think it's a blocker, but it'd be nice to get cross-implementer >>> alignment on the strategy here, or barring that, add UA-defined conditions. >>> >>> Triple-keying should be covered by >>> https://fetch.spec.whatwg.org/#determine-the-network-partition-key (see >>> "an implementation-defined value). There's ongoing discussion in >>> https://github.com/whatwg/fetch/issues/1035 as well. >>> >>> A TPAC or three ago we had some conversations in on this topic, and IMO >>> there is interest in perhaps converging on the perfect design one day, but >>> I don't see cross-implementer alignment on a single keying scheme coming >>> any time soon. I think gsnedders also makes a good point in the fetch issue >>> that experimentation on keying schemes by UAs for different modes is also >>> useful to consider. >>> >>> >>> >>> >>> SummaryChrome’s HTTP cache keying scheme will be updated to include an >>> “is-cross-site-main-frame-navigation” boolean to mitigate cross-site >>> leak attacks involving top-level navigation. Specifically, this will >>> prevent cross-site attacks in which an attacker can initiate a top-level >>> navigation to a given page and then navigate to a resource known to be >>> loaded by the page in order to infer sensitive information via load timing. >>> This change also improves privacy by preventing a malicious site from using >>> navigations to infer whether a user has visited a given site previously. >>> >>> For an overview of the attacks mitigated by the >>> “is-cross-site-main-frame-navigation” boolean, see: >>> >>> - https://xsleaks.dev/docs/attacks/navigations/# >>> partitioned-http-cache-bypass >>> >>> - https://docs.google.com/presentation/d/1StMrI1hNSw_ >>> QSmR7bg0w3WcIoYnYIt5K8G2fG01O0IA/edit?usp=sharing >>> >>> >>> Do I understand correctly that this will prevent "Attack 1" and "Attack >>> 2", but "Attack 3" is already mitigated by triple keying? >>> >>> While attack 1 is clear, I'm not sure how come attack 2 isn't mitigated >>> by the fact that a.com/img is already partitioned. >>> >>> >>> >>> Blink componentInternals>Network>Cache >>> <https://issues.chromium.org/issues?q=customfield1222907:%22Internals%3ENetwork%3ECache%22> >>> TAG reviewHTTP cache partitioning was originally reviewed in >>> https://github.com/w3ctag/design-reviews/issues/424. We did not submit >>> for a new TAG review since cache partitioning standardization hasn’t >>> changed much since then, and since it’s unclear whether there’s support for >>> updating standards to partitioning by more than just top-level site. >>> TAG review statusNot applicable >>> Risks >>> >>> Interoperability and CompatibilityInterop risk: We do not expect >>> compatibility impacts here since the behavior is not web-visible (other >>> than affecting navigation completion times), and our earlier 1% experiment >>> didn’t indicate any significant changes to performance as a result of this. >>> Regarding interop, Safari and Firefox currently ship partitioned HTTP >>> caches but with different partitioning schemes that don’t partition >>> navigations differently from other network requests. >>> Gecko: https://github.com/mozilla/standards-positions/issues/1177 >>> WebKit: https://github.com/WebKit/standards-positions/issues/462 >>> Web developers: No signals >>> Other signals: >>> WebView application risks: >>> Does this intent deprecate or change behavior of existing APIs, such >>> that it has potentially high risk for Android WebView-based applications?No >>> - cache partitioning is not enabled for WebView >>> >>> DebuggabilityPartition keys are visible in net logs, and whether >>> something was served from the HTTP cache is visible in DevTools. >>> Will this feature be supported on all six Blink platforms (Windows, Mac, >>> Linux, ChromeOS, Android, and Android WebView)?No, it will be supported >>> on all platforms except WebView, which does not currently partition its >>> HTTP cache. >>> Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>> ?No, this isn’t web visible. >>> Flag name on chrome://flagsNone >>> Finch feature nameSplitCacheByCrossSiteMainFrameNavigationBoolean >>> Requires code in //chrome?False >>> Launch bughttps://launch.corp.google.com/launch/4345002 >>> Estimated milestones >>> >>> Shipping on desktop >>> >>> 135 >>> >>> Shipping on Android >>> >>> 135 >>> >>> >>> Anticipated spec changesOpen questions about a feature may be a source >>> of future web compat or interop issues. Please list open issues (e.g. links >>> to known github issues in the project for the feature specification) whose >>> resolution may introduce web compat/interop risk (e.g., changing to naming >>> or structure of the API in a non-backward-compatible way).The spec >>> already leaves the HTTP cache key as implementation-defined apart from >>> partitioning by top-level site. It's unclear whether other browsers support >>> standardizing any portion of what we are shipping. >>> Link to entry on the Chrome Platform Statushttps://chromestatus.com/ >>> feature/5190577638080512 >>> <https://chromestatus.com/feature/5190577638080512?gate=5181053938171904> >>> Links to previous Intent discussions >>> >>> Intent to Experiment: https://groups.google.com/a/ >>> chromium.org/d/msgid/blink-dev/CAEa0%2BkV1oQg2cc_MWW_RtG9de% >>> 3DVk2i1rUv8MrQ49GV0yWZwy_w%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 visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/0e9fd7e0-87ba-4a07-ba77-2d4178ca881b%40chromium.org >>> >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/0e9fd7e0-87ba-4a07-ba77-2d4178ca881b%40chromium.org?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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/735965f2-9db3-4aee-8118-0991718a1b78n%40chromium.org.