Thanks for clarifying! On Thu, Sep 23, 2021 at 7:45 PM Martin Kreichgauer <marti...@google.com> wrote:
> Thanks! Just to be clear, the deprecation trial is beginning with M95, but > it would only be *required* by M98 when we disable the U2F API by > default. M104 is where we plan to delete the API, so M103 would be the last > release where the deprecation trial is functional. > > On Thu, Sep 23, 2021 at 5:18 AM Yoav Weiss <yoavwe...@chromium.org> wrote: > >> 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/CAL5BFfVQLT1ENMZ5%2BZjY6v04fxCdus956rFLTPOdhJzuHSBEPQ%40mail.gmail.com.