WICG / webpackage

Web packaging format
Other
1.23k stars 118 forks source link

Cross-site loads of signed packages should be done stateless and with no personalization #423

Open johnwilander opened 5 years ago

johnwilander commented 5 years ago

As brought up by @cramforce in https://github.com/WICG/webpackage/issues/422#issuecomment-485054801, we should require cross-site loads of signed packages to be stateless. Specifically:

The above requirements are to ensure that cross-site tracking or personalization information is not transferred in the request for the package.

dfabulich commented 5 years ago

A common tracking technique is to put personalized information in the ETag, e.g. ETag: W/your-login-id-plus-content-hash

Thus, to be truly stateless, the request would also have to prevent conditional GET requests (If-None-Match, If-Modified-Since)

davidben commented 5 years ago

From the Chrome anti-tracking team, we agree that SXGs should require mitigations for cross-site information flow. We think the suggestions here should be adopted, though of course details like how to trigger such a credential-less navigation still need to be worked out.

A minor quibble/note, the last two points as written require a distinct distributor origin per publisher origin, which seems off. (It even risks the SXG prefetch leaking the distributor origin via DNS and SNI.) I would suggest rephrasing it as: the path + query string of the navigation needs to be some specific deterministic function of the SXG target URL. For instance, https://distributor.example/.well-known/sxg/[some encoding or cryptographic hash of target URL].