So IIUC, the deprecation trial would run from M98-M104. That seems like a reasonable time period to give to folks and enable them to adjust. Still LGTM.
On Wed, Sep 22, 2021 at 10:32 PM 'Martin Kreichgauer' via blink-dev < blink-dev@chromium.org> wrote: > Dear blink-dev, > > I wanted to provide an update on our progress with the U2F API deprecation > effort and request a short extension for removal of the API and the end > date of the Reverse Origin Trial. > > First, the changes originally announced for Chrome 94 are now scheduled to > ship instead with Chrome 95. These changes include gating of U2F API > requests behind a permission prompt, deprecation warnings logged to the > developer console, and a Reverse Origin Trial > <https://developer.chrome.com/origintrials/#/view_trial/-6366963973195038719> > . > > We still plan to disable the U2F API by default with Chrome 98. > > We also have been in close contact about this deprecation with partners > who still rely on the U2F API. In some of these conversations, partners > asked us to allow a little more time for them to migrate their websites to > the WebAuthn. We therefore would like to push back removal of the U2F API > to Chrome 104, and to extend the Reverse Origin Trial to the same time > period. > > Thanks, > Martin > > > On Friday, June 11, 2021 at 11:34:24 AM UTC-7 Martin Kreichgauer wrote: > >> Primary eng (and PM) emails >> >> mart...@google.com, a...@chromium.org >> >> Summary >> >> We want to deprecate and remove the legacy U2F API for interacting with >> security keys. (But not U2F security keys themselves, which will continue >> to work.) >> >> Affected sites should migrate to the Web Authentication API (WebAuthn). >> Credentials that were originally registered via the U2F API can be >> challenged via WebAuthn. USB security keys that are supported by the U2F >> API are also supported by the WebAuthn API. >> >> Motivation >> >> U2F is Chrome’s original security key API. It allows sites to register >> public key credentials on USB security keys and challenge them for building >> phishing-resistant two-factor authentication systems. U2F never became an >> Open Web standard and was subsumed by WebAuthn (launched in M67 >> <https://www.chromestatus.com/feature/5669923372138496>). Chrome never >> directly supported the FIDO U2F JavaScript API in Blink, but rather shipped >> a component extension called cryptotoken, which exposes an equivalent >> chrome.runtime.sendMessage API. U2F and Cryptotoken are firmly in >> maintenance mode and we encouraged sites to migrate to WebAuthn >> <https://groups.google.com/a/chromium.org/g/blink-dev/c/SdceviqfKJo/m/zIMMWWoLBgAJ> >> two years ago. >> >> U2F’s continued existence presents several issues: >> >> - >> >> Cryptotoken requests don’t trigger a permission prompt or any UI >> indicating that the website is interacting with a special type of USB >> device. Instead we rely on the website to handle UI for the requested >> security key interaction. We believe this isn’t ideal from a secure UX >> perspective. WebAuthn presents either a tab-modal dialog or UI provided by >> the operating system for every request. >> - >> >> Sites can unconditionally query U2F credentials when embedded in >> cross-origin iframes. WebAuthn guards this behavior behind a feature >> policy. >> >> >> - >> >> Because Cryptotoken is a component extension and externally >> connectable from any URL, it effectively exposes the chrome.runtime APIs >> unconditionally to the entire web. Removing cryptotoken will allow us to >> make these APIs unavailable to websites that are not explicitly listed as >> connectable by an extension. >> - >> >> WebAuthn has subsumed U2F and we don’t want to encourage new use of >> an old API. >> >> >> googleLegacyAppIdSupport extension >> >> The factory image on some Android devices predates WebAuthn’s existence >> and therefore only supports the U2F API. Because credentials registered via >> WebAuthn cannot be challenged via U2F, Google continues to require a >> mechanism for registering U2F-compatible security key credentials even >> after the U2F API has been removed from Chrome, or else users that register >> a security key on their desktop would be unable to sign into their affected >> Android devices with that security key. We would like to implement support >> for the goolgeLegacyAppId WebAuthn request extension >> <https://docs.google.com/document/d/1Di6ec7B3t2EVPa0iFzrj6kWPvzI71IzBQo4g8JHeb50/edit> >> in Chromium to allow Google’s accounts system to do this. The extension >> would allow *.google.com origins to create WebAuthn credentials that can >> be challenged via WebAuthn and U2F, so that it will be possible for >> Android’s burned-in user account adding system to exercise them. While the >> googleLegacyAppIdSupport extension has not been formally standardized, Safari >> has already shipped it <https://bugs.webkit.org/show_bug.cgi?id=202427>. >> >> The ability to use WebAuthn in Chrome on these Android devices is not >> affected. >> Chrome supports WebAuthn on devices running Android N or newer. Other >> websites should therefore not encounter Google’s particular problem in >> their own WebAuthn migrations. >> >> Deprecation and Removal Timeline >> >> We propose the following timeline for deprecation and removal: >> >> Milestone >> >> Approximate stable date >> >> Actions >> >> M93 >> >> August 2021 >> >> Support googleLegacyAppIdSupport extension >> >> M94 >> >> September 2021 >> >> - >> >> Gate U2F API requests behind a user permission prompt >> - >> >> Log a deprecation notice in Developer Console for every request >> - >> >> Start a Deprecation Trial; keep the U2F API enabled by default >> >> M98 >> >> February 2022 >> >> Disable the U2F API by default; but keep it available to sites on the >> Deprecation Trial >> >> M100 >> >> March 2022 >> >> Fully remove the U2F API >> >> >> Interoperability and Compatibility Risk >> >> We believe there exist only a handful of sites that still use the U2F >> API. Nevertheless, we want to be careful to avoid surprising developers by >> the removal and possibly affect users’ ability to log into websites. We >> will run a Reverse Origin Trial starting with M97 to get an accurate >> picture of which sites are left on U2F at that point and allow them time to >> migrate. >> >> Removing U2F and encouraging sites to switch to WebAuthn should be >> positive for compatibility and interoperability in the long run. >> >> Edge: Supported, no signals on removal >> >> Firefox: Supported, no signals on removal >> >> Safari: Not supported >> >> Somewhat confusingly, U2F is the name for both the web-facing API and a >> USB security key wire protocol. The WebAuthn API supports security keys >> speaking either the U2F (CTAP1) or FIDO2 (CTAP2) wire protocol. The >> proposal here is only to remove the U2F API. Users can continue to use >> their U2F security keys via the WebAuthn API. >> >> Alternative implementation suggestion for web developers >> >> Developers should migrate to using the Web Authentication API >> <https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API> >> (WebAuthn). To challenge an existing security key credential that was >> originally registered via the U2F API, developers can use the appid >> extension: >> >> navigator.credentials.sign({ >> >> publicKey: { >> >> allowCredentials: [{ >> >> id: new Uint8Array([…]).buffer,, >> >> type: 'public-key' >> >> }], >> >> challenge: new Uint8Array([…]).buffer, >> >> extensions: { >> >> appid: ‘https://example.com’, >> >> }, >> >> }, >> >> }; >> >> (Where example.com is replaced with the appID that was used for >> registering the U2F credential.) >> >> Credentials created via WebAuthn cannot be asserted via the U2F API. >> Sites therefore may want to first migrate their sign-in flows and then, >> once that is settled, migrate their security key enrollment. >> >> Usage information from UseCounter >> >> U2F usage is measured in the U2FCryptotokenRegister >> <https://www.chromestatus.com/metrics/feature/timeline/popularity/2812> >> and U2FCryptotokenSign >> <https://www.chromestatus.com/metrics/feature/timeline/popularity/2813> >> UKM metrics. However, the number of total requests isn’t as relevant as the >> number of sites on the web that support U2F for signing in. Based on UKM >> data, we believe the latter to be quite low, but we would like to give >> these sites the chance to make the switch to WebAuthn rather than break >> them. >> >> Entry on the feature dashboard >> >> https://www.chromestatus.com/feature/5759004926017536 >> >> -- > 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/4bbbde2d-6122-4dc4-a177-76afb2c58f9bn%40chromium.org > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4bbbde2d-6122-4dc4-a177-76afb2c58f9bn%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 on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfU_ZW49yEf5keyEakCb8HZrTGDMtMJ_u95EB6YdhUatnw%40mail.gmail.com.