Skip to main content

Comparing the security properties of traditional user credentials and FIDO2 credentials for personal use

Digital passkey text and hologram key on computer keyboard

asbe via Getty Images





Logging in using a device that stores the credentials

A user will need to log into a site or app for which they have valid credentials that are available on the device they are using.

Table 10 - How login works for tMFA and FIDO2 credentials respectively
tMFAFIDO2

The password will be entered into the input field dependent on how the password is stored (see above).

For remembered passwords, or those stored with pen and paper, it will be typed in. Credential managers that are either part of the browser or have a browser integration will autofill the password if the site is recognised.

Where the credential manager does not have a browser integration or the site is not recognised, the user will need to locate the password they need in the credential manager and copy-paste it into the password field using their clipboard.

If 2SV is configured:

  • If the second factor is code-based (SMS, email, TOTP app, TOTP token) then, if the user’s device does not provide the option to autofill the code,  the user will locate the code that has been generated or sent to them and type or paste it in.
  • If they are using an approval app then they will likely authenticate to the app through biometrics and approve the login, potentially being required to select or enter information from the site or app they are logging into. 

FIDO2 uses the WebAuthn API and CTAP 2 to log in using a challenge-response method.

The user’s client triggers an authentication with the relying party, and may include which user account wishes to authenticate. This results in a cryptographic challenge from the relying party, which is typically relayed via the client to the relevant FIDO2 API on the user’s operating system, along with the origin/domain name of the relying party. Alternative origins/domain names are allowed where they are explicitly permitted by the originating relying party using "related origins".

The operating system passes the request to the user’s chosen FIDO authenticator, which searches stored credentials for any that are valid for the relying party.

Matching credentials are offered to the user, who selects one. If the relying party has requested userVerification, the authenticator will verify the user is authorised to use the credential, typically by however they authenticate to the device’s screen lock (such as passcode or PIN or biometrics).

Following successful user verification, the authenticator will use the stored private key component of the credential to create a signed response to the challenge, which is then sent to the relying party. Upon verifying the response with the user’s stored public key, the relying party accepts and completes the authentication.

Attacks

Table 11 - Attacks on logins on a device where the credentials are available. A '-' (minus symbol) indicates where attacks are possible.
AttacktMFAFIDO2
Credential harvesting / classic phishing

- passwords are copied

- fatigue attacks on notification-based second factor

- SMS-delivered code where the attacker is willing to conduct a SIM-swap attack

- email-delivered code where the email account is not protected with phishing-resistant MFA

+ TOTP apps and tokens, approval-based that requires number matching

+ all FIDO2 Scenarios
AitM phishing- all tMFA factors+ all FIDO2 Scenarios

Security comparison

Phishing, also known as credential harvesting - where a user is tricked into giving out their password - is a common threat on the internet. Attackers create a fake site and get the user to visit, either through sending a link (email, SMS, QR code) or through paying for an advert to be shown to the user, or a tactic like choosing their URL such that it might be visited if someone mistypes the real URL.

Once on the site, the user is tricked into logging in and then convinced that they don’t need to do anything further, or are directed to log in again at the real site. Meanwhile the attacker is storing the entered usernames and passwords, which they can then test or sell. 

A login that requires any form of 2SV will prevent an attacker logging into that site, but the attacker will still get the password. If they have reused the password elsewhere, those website accounts would be vulnerable to credential stuffing if not also requiring 2SV.

However, some 2SV methods can also fail when attackers are more persistent. For example,

  • attackers have been able to bypass notification/approval-based second factor by making multiple login attempts in the hope that the user gets fed up and approves (known as a fatigue attack) (Cisco Talos 2024)
  • attackers conduct SIM-swap attacks to gain access to codes sent by SMS, or compromise poorly protected email accounts to get access to codes sent by email

FIDO2 authentication is inherently safe against these techniques as the protocol design protects against them. Unlike password-based credentials, FIDO2 uses asymmetric cryptography where the user signs a unique per-request-challenge and the private key is never shared with the user's client or relying party so it cannot be copied or stolen by a credential harvesting site.

AitM phishing is a technique attackers are rapidly adopting whereby the server used to display a fake login page to the user also logs into the real website by passing through credentials the user has entered. This means that any 2SV prompts from the real website can be relayed to the user for completion in near-enough real-time, and therefore before any 2SV codes expire.

After proxying a successful authentication between the legitimate user and the legitimate relying party, the attacker’s server retains a copy of the post-authentication session cookie, which can then be used by the attacker to achieve their goals.

All tMFA factors are vulnerable to this style of attack, since none of the credentials are bound to only the real site, allowing a user to accidentally enter them into a fake login page.

No FIDO2 credential type is vulnerable to this style of attack, as the authentication is tightly bound to the TLS-authenticated domain. A FIDO2 authentication includes automatic, cryptographically-backed binding by the FIDO authenticator and the user’s trusted browser or app. This binding checks that the origin (‘domain’) identifier of the site being used - as reported by the user’s trusted browser - is an acceptable match to the one that the credential contains in its metadata, set when the credential was created and registered. Importantly, in a trusted browser or app, this reporting is not controllable by any content of the site itself. Only FIDO credentials matching the identifier of the current site are offered by a FIDO authenticator.

Potential attacks

At the time of writing there have been no attacks on FIDO2 authentications reported in the wild. Downgrade attacks are sometimes reported on FIDO2 protected accounts where the attacker has instead downgraded the authentication to use non-FIDO mechanisms / tMFA.

There have been attacks of FIDO2 authentications reported in academia or other research fora, covered below, that have some key constraints that will likely prevent them becoming commonplace.

Malicious client/modified client: Research showing that a malicious browser extension (or more theoretically, malicious JavaScript delivered by cross-site scripting/XSS) can replace the browser’s normal JavaScript APIs for FIDO2 authentication. While this cannot leak or interfere with existing FIDO2 credentials, the user could be convinced to create a new FIDO2 credential for the target site, which could be intercepted by the extension (Goodin 2025).

Academic research has identified other attacks that become possible if the user’s client is modified or otherwise untrusted, such as silently adding an attacker’s credential to the user’s account either during creation or once logged in (Yadav and Seamons 2023).

An attacker in a position to compromise the user's client could achieve their aims directly, i.e. access data post login regardless of the authentication mechanism, and could therefore equally compromise data protected by passkeys, or passwords and tMFA credentials.

Browser in the browser: A technique demonstrated in a paper by (Catalano et al 2025) uses XSS to deliver a browser in the browser technique that tricks the user into logging into the website on a host controlled by the attacker. The attacker must find exploitable reflected XSS in the target website, whereby they construct a payload that, when processed by the user’s browser, replaces the legitimate relying party’s content with a remote connection to a virtual machine controlled by the attacker.

That virtual machine runs a modified browser so that when the user logs into the target site on the attacker-controlled machine, the passkey authentication is tunnelled to the user’s trusted browser, where the user completes the authentication. This results in a logged in session on the attacker’s browser.

Whilst this attack is feasible, the impact for accounts using passkeys to authenticate is identical to those using tMFA to authenticate – an attacker with XSS could access all data in the context of the user post login. Websites are able to greatly reduce the impact of XSS issues through modern protections like Content Security Policies and trusted types that make XSS exploitation difficult or impossible.

Separately to XSS, attackers may search for scenarios where they are able to ‘tunnel’ FIDO2 authentication from a remote client to the user’s local client (while not using the ‘cross-device’ flow described below) and still passing the domain-binding checks of FIDO2.

Logging in using a device that does not store a credential

Users may need to log into a website or app while using a device that does not store (or have other access to) the credential needed for that site. An example might be a device new to the user, less regularly used, such as a device owned by a third party such as that of a friend.

Table 12 - Process for authenticating to a service where the credential isn't stored on the device being used
tMFAFIDO2
The authentication process is largely identical to that of logging in where the credential is stored on the device, with the exception that all credentials will need to be typed in to the other device (apart from notification-based 2SV, which completes normally).

FIDO2 specifies a ‘hybrid’ or ‘cross-device’ flow for the scenario for when the user wishes to log in on a device that doesn’t have their FIDO credentials stored, from another nearby device that does have their credentials stored (Fido Alliance, CTAP-Hybrid 2023).

The user triggers a login on the second device (which lacks a relevant FIDO2 credential) and selects the option for cross-device authentication, which is often referred to as ‘Choose passkey on another device’, ‘Sign in with QR code’, or similar.

The client on the second device triggers its operating system to display a QR code, which the user scans with the primary device (which has the intended credential stored). When scanned, this triggers the two devices to establish a connection over Bluetooth LE, using data from the QR code, to prove physical proximity and prevent remote phishing attacks.

The Bluetooth connection is used to agree an online server that the relying party and the authenticator both trust to use to proxy the authentication. Once authentication is successful, the relying party creates a session with the second device (that did not have a credential), without that device ever having had access to the FIDO2 credential.

Attacks

Table 13 - Attacks on the login process for tMFA and FIDO2.A '-' (minus symbol) indicates where attacks are possible.
AttacktMFAFIDO2
Credential harvesting / classic phishing

- passwords

- approval-based second factor where the user can be repeatedly spammed for approval

- SMS-delivered code where the attacker is willing to conduct a SIM-swap attack

- email-delivered code where the email account is not protected with phishing resistant MFA

+ TOTP apps and tokens , approval-based that requires number matching

+ all FIDO2 scenarios
Attacker in the Middle phishing- all tMFA factors+ all FIDO2 scenarios

Security comparison

The risks of using tMFA are largely identical regardless of the device as none of the credentials are ‘bound’ to a device or authenticator. As such, tMFA has the same risks as when a user logs in with their normal device. In addition to the risks when the user logs into their own device, there are risks the owner of a secondary device is malicious and configured that device to intentionally capture entered credentials.

The hybrid or cross-device FIDO2 flow is relatively complicated under the hood, but that complexity is necessary to meet the user need while mitigating threats and is abstracted away from the user. It manages to achieve phishing resistance through proving physical proximity of devices (with Bluetooth LE or similar technology), as well as the regular FIDO2 binding of a credential to the domain, without revealing the private keys from the FIDO authenticator to the client (second) device.

Potential Attacks

Phishing with physical proximity proxy: A potential attack is where an attacker-controlled device is planted in physical proximity to a user and the user is socially engineered into completing cross-device authentication for a target account. This could be by displaying a recently-generated sign-in QR code from the target relying party, or sending the victim a link to an AitM site that displays such a QR code. If the user scans the attacker-initiated QR code and initiates a cross-device flow to the nearby attacker-planted device, this device can proxy the necessary data for completion of the proximity proof challenge before proxying the result back to the attacker’s remote device as if it was located where their planted device was. This is a theoretical attack that requires attacker-controlled equipment to be placed in physical proximity to targets. The NCSC believes that actors with this level of capability could also compromise any tMFA method.

A vulnerability was also found and fixed in 2024 whereby mobile device browsers could be re-directed to handle a FIDO:/ protocol request, meaning the user would not need to scan a QR code (Righi 2025) and instead merely approve the connection. This was fixed so that browser re-directs can no longer trigger the FIDO:/ protocol handler on impacted platforms.

Bluetooth-enabled malware: proof of concept research has demonstrated that a remote attacker could use malware installed on a device in proximity to the target (such as a Windows or macOS laptop) to tunnel the Bluetooth component of a cross-device authentication flow. This could allow the attacker to modify the destination site, causing the user to connect to a different site than intended (Kniep 2025).

One risk considered in this work was whether WebBLE - an experimental extension to HTML that enables browsers to communicate over Bluetooth Low Energy (BLE) - could be exploited by a malicious webpage to intercept nearby FIDO cross-device authentication flows. At the time of writing, the browsers tested prevented WebBLE connections from attempting to use the reserved FIDO service endpoints.

Synchronising credentials across devices

Many users have multiple devices and will want their credentials to be available on the different devices they regularly use.

Table 14 - Process for synchronising credentials across devices
tMFAFIDO2

Passwords are either stored separately to the user’s devices (ie, remembered, or in a password book), or stored on the device in a password manager or in a file.

Most password managers (standalone and built into a browser) have some form of synchronisation fabric, ie, the passwords are synchronised using a vendor-provided cloud fabric. A file will be synchronised if it is stored in a cloud service.

The secondary factors are more varied:

  • Codes by SMS largely do not sync, they arrive at a single device and need to be typed in.
  • Codes generated by a token do not synchronise and remain on the token.
  • Codes by email arguably sync where a user is logged into their email account on their different devices.
  • TOTP codes generated by an app synchronise where the app is a password manager that uses a sync-fabric.
  • Notification approvals typically do not synchronise, but may appear across a user's devices where they have multiple.

Passkeys (by NCSC UK’s definition) inherently synchronise using a vendor-provided sync fabric.

Some authenticators can support a FIDO2 credential that doesn’t leave the device (sometimes referred to as a single-device passkey, a definition the NCSC does not recognise) or cannot leave the device (single-device credential).

The default authenticators in Apple and Google ecosystems will not allow a relying party or user to opt out of synchronising their passkeys, meaning a third-party credential manager is required to create and store a passkey as a single-device FIDO2 credential.

FIDO2 tokens cannot synchronise or otherwise export the credentials.

Attacks

Table 15 - Attacks on the synchronisation process for credentials. A '-' (minus symbol) indicates where attacks are possible.
AttacktMFAFIDO2
Phishing the sync fabric where the account to the sync fabric IS NOT protected with phishing-resistant authentication 

+ passwords stored off the device

- passwords stored in a password manager

+ codes by SMS, TOTP token

- codes by email, synchronised TOTP app

+ notification approval, unsynchronised TOTP app

- passkeys

+ all single-device FIDO2 scenarios, including FIDO tokens

Phishing the sync fabric where the account to the sync fabric IS protected with phishing-resistant authentication+ all tMFA factors+ all FIDO2 scenarios

Security comparison

Credential synchronising across a vendor-provided ‘sync fabric’ is terminology typically associated with passkeys, and is often cited by critics of passkeys as a key failing of the technology, yet the same principles (and indeed sometimes the same sync-fabrics) apply to much of tMFA.

Where a password is stored off the device by remembering it, there is a strong chance the user is reusing a password. Arguably, reusing a password could be visualised as “synchronising” password with every site it is used for – as compromising that site could give the attacker the password.

Password managers / credential managers typically use a sync fabric that will synchronise passwords, passkeys, and TOTP seeds that they store. Codes sent by email are effectively synchronised as the user typically logs into their email account on multiple devices. Furthermore, those email accounts are often the same account fabric used to back a password manager / credential manager account.

Codes sent by SMS or generated by a TOTP token are not synchronised, and therefore wouldn’t be exposed should an attacker phish the sync fabric, yet remain phishable themselves.

The FIDO2 specification describes a sync fabric but does not specify the implementation or minimum security requirements of the fabric, instead leaving it up to vendors to implement as they choose. This results in differences to usability, security, availability, and other properties, of the sync fabrics themselves.

The first party sync fabrics (Apple, Google, Microsoft) reviewed by the NCSC (in 2025) all:

  • mandated two factor authentication in order to store passkeys
  • supported passkeys / phishing-resistant authentication themselves

Third-party sync fabrics are more varied, with (Bader 2026) reporting that several well-known third-party credential managers do not require MFA to create or store passkeys, increasing the risk that users will protect their passkeys with a sync fabric that only requires a password.

There is also diversity in whether it is possible to protect third-party sync fabrics with a passkey – meaning users must be careful to choose a third-party credential manager that supports secure and phishing resistant authentication on the account used to access it.

Credential revocation

A user may sometimes need to revoke their credentials, for example if they have lost the credential and need to replace it with a new one, or where they suspect compromise of the credential.
 

Table 16 - Process for revoking tMFA and FIDO2 credentials
tMFAFIDO2

The majority of websites and apps have a ‘change password’ functionality, and an increasing number also have an ‘invalidate current sessions’ function that will force reauthentication with the new credential.

Similarly, the majority of websites and apps will allow adding, removing, or changing second factors.

These changes are not typically reflected in a user’s password managers etc until the user automatically updates them.

Relying parties will generally allow a user to add or remove specific FIDO2 credentials, often providing an option to invalidate current sessions, forcing a reauthentication. However, there are occasional sites that do not yet provide an option to delete the public key component of credentials, for example TikTok at the time of writing (Logging in with a passkey).

When a relying party supports removal of FIDO2 credentials, the process typically causes the public component of the credential to be deleted, denying future authentication by someone in possession of the private part. A recent addition to WebAuthn allows a relying party to communicate to an authenticator that it may need to delete an ‘orphaned’ credential (WebAuthn Signal API n.d.).

A user can also delete their credential (ie, the private key) from their device or sync fabric but this does not automatically invalidate the public key’s validity with the credential provider, meaning that if the private key had been compromised or shared, it would be usable until the user triggered a deletion of the public component as well.

Attacks

There are no attacks seen in the wild that target credential revocation itself. There are attacks seen where an attacker will gain control of an account (typically through credential stuffing or phishing) and then set up new credentials, revoking those of the legitimate user. These attacks should be prevented if only passkeys are used, with no weaker password or tMFA options supported as a ‘fallback’.

Security comparison

Beyond maturity of support for removing credentials from the relying party - and that triggering the removal of a credential on the authenticator - there is little difference between tMFA and FIDO2 in real attacks. One difference however is that users are generally used to changing their passwords if they have been breached while, because passkeys are both less commonly used and significantly less likely to be breached, users may struggle to understand how to replace their passkeys if they were to be breached.

It is common practice (and the NCSC would recommend) for relying parties to support registration of multiple FIDO2 credentials on a single account. For accounts that are required to be shared among multiple people, this permits each person to have their own unique credential. If an individual no longer needs access to the shared account, their specific FIDO2 credential(s) can be revoked without impacting any other individual’s FIDO2 credentials. This is unlike common practice with passwords and some types of tMFA where only one registered credential is allowed. In this same circumstance, tMFA credentials must be revoked and re-issued to all remaining individuals. If this is not done, there is a risk that individuals retain access to accounts they no longer need access to.

Potential attacks

CTAP Protocol Attacks – The Client to Authenticator protocol (CTAP) defines communications between a user's device and a separate authenticator (for example, a FIDO token). Some implementation vulnerabilities have been reported that allowed deletion of credentials if an attacker either:

These issues were fixed by manufacturers in their updated models. As such, the NCSC does not consider them to pose a threat.

It is also worth noting that an attacker with control of a user’s device would typically be able to delete mobile-based MFA (tMFA) credentials stored on that device. This would force a user to re-register their MFA and potentially give this attacker access to the new credential.

Credential  / account recovery

A user may lose access to their credentials, and therefore the account. As such, they’ll need to either regain access to their credentials or prove their ownership of the account through a different mechanism, and create new credentials.

Table 17 - How tMFA and FIDO2 handle device loss and account recovery
tMFAFIDO2

If a user reuses the same password across multiple sites and does not use tMFA, the most likely way they would lose access to an account - aside from forgetting the password - is if an attacker compromises the account and locks them out.

If a user relies on a credential or password manager and/or tMFA, there is a risk of losing access to their credentials if their device is lost.

However, where the credential manager synchronises data across devices, and the user has access to another enrolled device, access can typically be restored by signing in to the credential manager account on a new device.

If the credential manager does not synchronise credentials across devices, then a device loss will necessitate an account recovery flow for each account.

The vast majority of websites and apps will offer a ‘forgot password’ functionality. This typically leverages a code or link sent to the email address registered with the user’s account, thereby effectively reducing the security of the service to that of the email account.

More rarely, some services will require additional checks, such as security questions (to which the answers are often discoverable or can be socially engineered), or a code sent via SMS to the registered number.

If passkeys are in use, they will be backed up and synchronised to the sync fabric and so will be propagated to any other devices in the sync fabric. This means that when a user has multiple devices, a single device loss does not affect access to credentials.

If a user does not have multiple devices accessing the sync fabric, they would need to use a new device (bought or borrowed) to regain access to the sync fabric via its account recovery process.

If a user is using a single-device FIDO2 credential, such as a FIDO token, device loss means loss of the credentials. In this instance a user would need to use account recovery flows for each of their credentialed accounts.

Account recovery would be the same as for tMFA.

Attacks

Attackers are seen to target account recovery for both tMFA and FIDO2 protected accounts, as the recovery process can often be weaker than the authentication to the account. This is particularly common in two cases:

  • financially motivated attacks
  • where the attacker already has access to the victim’s email account

In the case of financially motivated attacks, attackers are willing to spend more money on their attack, such as paying for a SIM-swap attack on the victim where the recovery flow requires it. 

Whilst not an ‘attack’, a device loss can result in loss of access to certain credential types. The table below shows the resilience – in terms of availability - of tMFA and FIDO2 to a device loss.

Table 18 - The availability impact of device loss across tMFA and FIDO2 deployments. A '-' (minus symbol) indicates where attacks are possible.
AttacktMFAFIDO2
Device loss with other devices in sync fabric

+ passwords stored off the device

+ passwords stored in a password manager that syncs

- codes by SMS (new SIM card with same number would be needed)

+ codes by email, synchronised TOTP app

- notification approval, unsynchronised TOTP app

+ passkeys

- all single-device FIDO2 scenarios, including FIDO tokens

Device loss of a solo device

+ passwords stored off the device

+ passwords stored in a password manager that syncs, once access regained to sync fabric

- codes by SMS (new SIM card with same number would be needed)

+ codes by email, synchronised TOTP app, once access regained

- notification approval, unsynchronised TOTP app
 

+ passkeys, once access regained to sync fabric

- all single-device FIDO2 scenarios, including FIDO tokens

Security comparison

From a pure availability perspective, using an easily remembered password with no MFA makes it unlikely that a user will lose access to their credential. However, this significantly increases the risk of account compromise by commodity attackers, who may gain access and lock the user out. 

Introducing a device into the authentication process - whether through a credential/password manager, tMFA, or FIDO2 - substantially reduces the likelihood of credential compromise (Microsoft reports a 97% reduction in risk (Digital Defense Report 2025)). However, this introduces a new dependency: loss of the device may result in loss of access to credentials. 

With tMFA methods, recovery depends heavily on the specific implementation. Some tMFA approaches make account recovery relatively straightforward in the event of device loss, while others make it more complex. For example, if a password manager is not synchronised, losing the device may result in permanent loss of stored passwords. If it is synchronised, the user can recover their credentials by regaining access to the sync fabric from another device. 

Passkeys, as defined by the NCSC, are always synchronised. This reduces the likelihood of permanent credential loss, as users will typically either: 

  • have a copy of the passkeys on another device enrolled in the same sync fabric 
  • be able to regain access to the sync fabric on a new device and restore their passkeys

In contrast, non‑synchronised FIDO2 credentials - such as single-device passkeys - cannot be recovered if the device or token is lost, unless additional authenticators were previously registered. 

Where account recovery is required, the recovery process is generally similar regardless of whether the account is protected by tMFA or passkeys. As passkeys become more widely adopted, recovery flows may become a more attractive target for attackers, potentially requiring stronger and more resilient recovery mechanisms than are commonly deployed today.




Published