Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1854089
There are cases where a request can be downgraded to CTAP1/U2F in order to avoid user verification on a CTAP2 authenticator.
Downgrading to CTAP1/U2F is only needed and possible when:
- The request does not set
rk == required
- Residency is not supported with CTAP1, and UV is always required for resident
MakeCredential requests.
- The authenticator has some form of user verification configured (ie:
clientPin == true || uv == true)
- If UV is not configured or supported, then there's no need to bypass it.
- The authenticator supports CTAP1.
- The authenticator does not set
alwaysUv == true
- The authenticator does not set
makeCredUvNotRqd == true
- Authenticators with
makeCredUvNotRqd == true could handle the request as CTAP 2.1+.
- Authenticators that don't are likely CTAP 2.0-only.
- The request sets
uv == discouraged.
- The request's most-preferred algorithm that the authenticator also supports is ES256 (ie: ES256 would be the selected algorithm if using CTAP2).
Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1854089
There are cases where a request can be downgraded to CTAP1/U2F in order to avoid user verification on a CTAP2 authenticator.
Downgrading to CTAP1/U2F is only needed and possible when:
rk == requiredMakeCredentialrequests.clientPin == true || uv == true)alwaysUv == truemakeCredUvNotRqd == truemakeCredUvNotRqd == truecould handle the request as CTAP 2.1+.uv == discouraged.uv == preferred, but user verification "is possible" per Requests withuv = requiredanduv = preferredare sent to CTAP2 devices with unconfigured user verification #373.