https://github.com/fedidcg/FedCM/blob/main/proposals/idp-sign-in-status-api.md
https://github.com/fedidcg/FedCM/pull/436
This origin trial is intended to cover the IdP Sign-in Status API, which is our proposal to address the last remaining privacy leak of FedCM before we feel comfortable enabling it without third party cookies: The Timing Attack Problem (issue, presentation).
The Timing Attack Problem is an attack that a tracker can perform by using the FedCM API in such a way that allows them to track users invisibly. The attack works by correlating the time between credentialed and uncredentialed requests and abusing the API to prevent it from being observed by users.
While we explored many variations and options (presentation), in this proposal, the IdP Sign-in Status API allows an Identity Provider to signal to the browser when their users are logging in and logging out (in a top level frame).
This signal allows the FedCM API to (a) avoid making any credential requests when the user is logged out of the IdP (and hence, fully mitigate timing correlations) an (b) provide a guarantee that every credentialed request it makes will have a user-visible outcome (e.g. an account chooser or a dialog to sign in to the IdP) given that the assumption is that the user is logged in.
We believe this will make the Timing Attack economically impractical (e.g. it requires the user to (a) have logged-in to the attacker in a top level frame as well as to (b) be recognized as an IdP in the account chooser), and in doing so enables FedCM to operate when third party cookies are blocked.
We have an open spec PR that is currently under review, and in that process, Firefox suggested that we reframe the API in terms of the Login Status API which Chrome/Firefox/Safari seem to be in directional agreement. We are planning to kick-off our TAG review once this settles a bit more into concrete spec terms while we are running the origin trial but before we send our I2S.
Pending
Gecko: Under consideration (https://github.com/fedidcg/FedCM/pull/436). Firefox raised early on the Timing Attack Problem and possible ways we can address it. The IdP Sign-in Status API is intended as a signal that the user agent can use to mitigate the Silent Timing Attacks which are executed through correlating the time between credentialed and uncredentialed requests without the user’s knowledge. The API sufficiently mitigates the problem for Chrome by showing a prompt (e.g. account chooser or dialog to sign in to the IdP) every time it makes a credentialed request within the FedCM API. We are working with Firefox to write the spec in such a way that different user agents can have the flexibility to make different trade-offs in terms of how often to prompt users.
WebKit: No signal. Safari has so far shown overall support for FedCM, but haven't yet formed a position on this specific extension of FedCM. We are generally in agreement of the API shape using the Login Status API, but we haven't yet gotten signals from them on how FedCM, specifically, is going to be using this signal. We are planning to send a webkit standards position after we resolve this and before we I2S.
Web developers: Positive We have been working with the FedID CG to develop this API and running experiments with the Google Identity Services team.
Other signals:
This is an API that is designed to be used by identity providers, when their users login in to their websites. We exposed an HTTP header, since we heard from them that logins are often made through 302 redirects. There is also a JS API that is equivalent to the HTTP headers.
FedCM is not currently supported on WebView, so no change or risk to Android WebViews.
The main goal for the experiment is to gather data on the user interfaces that we introduced with this API. We introduce, specifically, a dialog which allows users to open a pop-up window to login to their IdP whenever there is a mismatch between the signal we have in the IdP Sign-in Status API and what the IdP server returns that we’d like to feel confident about how it performs with users.
We have run enough devtrials in preparation for this origin trial that we have learned enough about ergonomics for Identity Providers and Relying Parties.
The presence of the HTTP header can be checked in the network panel in devtools and the JS API calls can be debugged as usual.
When we don’t send a network request due the user being logged out or if we detect a mismatch, we are planning to add a console message in bug 1453353
No
We are intending to start our origin trials on desktop-only and extend to mobile during the origin trial (possibly in M117).
Not currently: we are working on it (blocked by https://crbug.com/1451884).
https://github.com/fedidcg/FedCM/blob/main/explorations/HOWTO-chrome.md#idp-sign-in-status-api
FedCM - FedCM enabled with FedCM IDP sign-in status
chrome://flags/#fedcm
False
https://chromestatus.com/feature/5177628008382464
LGTM to experiment from M116 to M119 inclusive.
--
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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPTJ0XHJ-LMsCa-PMf1Ft51DCJK1dkzRrFZmRZuzL_Qe2WK2iA%40mail.gmail.com.
Yep, sounds good. Thanks for the heads up!