Source: âWebauthn, Passkeys, and You - The Future of Authenticationâ - William Brown (Everything Open 2023) link
url: https://www.youtube.com/watch?v=V-7zMIgGO1U
title: "\"Webauthn, Passkeys, and You - The Future of Authentication\" - William Brown (Everything Open 2023)"
description: "(William Brown) Many people and businesses are starting to talk about Passkeys, Webauthn, FIDO and more. With a veritable tsunami of jargon in the space it c..."
host: www.youtube.com
favicon: https://www.youtube.com/s/desktop/024ccc3d/img/logos/favicon_32x32.png
image: https://i.ytimg.com/vi/V-7zMIgGO1U/maxresdefault.jpg?sqp=-oaymwEmCIAKENAF8quKqQMa8AEB-AH-CYAC0AWKAgwIABABGFQgZShZMA8=&rs=AOn4CLCdkpuBFdcArkhnsAF3Swi6I9Hg1QDate of Presentation: Recorded, October 2023 Presenter: William Brown, Senior Software Engineer at SUSE Labs
Executive Summary
William Brownâs presentation provides a deep dive into WebAuthn and passkeys, clarifying concepts, dispelling common misconceptions, and highlighting both the security advantages and the practical implementation challenges. The key takeaway is that WebAuthn, and passkeys built on it, represent a significant improvement over traditional password-based authentication due to their inherent resistance to phishing and their use of cryptographic principles. However, the implementation can be complex and requires careful attention to the nuances of the standard and the specific libraries used. This talk serves as an informative guide for both the technically curious and developers looking to implement WebAuthn into their systems.
Key Themes & Concepts
1. What are Passkeys?
⢠Lack of Clear Definition: There isnât a singular, universally accepted definition of a âpasskey.â The term initially seemed like a marketing term.
⢠Evolving Definitions: The definition has evolved over time and now has multiple meanings:
-
All possible WebAuthn authenticators, including physical security keys (like YubiKeys), fingerprint readers, and other biometric authenticators.
-
Synchronized credentials that are synced across devices via an account-based key chain (e.g., iCloud Keychain).
-
Resident Keys (Discoverable Credentials). According to the speaker, this definition is âless desirableâ due to limitations and potential harm that arise from only using resident keys. (Appleâs iCloud ecosystem, by default, tends to create resident keys, though this may change over time.)
2. WebAuthn Workflow
⢠Three Key Components: WebAuthn involves a ârelying partyâ (the website), a âclientâ (the web browser), and an âauthenticatorâ (the hardware device or secure element).
⢠Challenge-Response: The website sends a challenge to the browser; the browser interacts with the authenticator; the authenticator signs the data using its private key; and the signature is sent back to the website to verify the authentication.
⢠Asymmetric Cryptography: WebAuthn uses public/private key cryptography, similar to smart cards or PIV. The private key resides in the authenticator, and the public key is used by the relying party to verify the signature.
⢠Compromise Resistance: Unlike passwords, compromising the relying partyâs database doesnât give attackers the userâs private key or a way to impersonate the user.
3. Multi-Factor Authentication with WebAuthn
⢠PIN/Biometric Verification: The PIN or biometric verification on the authenticator device is essential; physical interaction is part of the authentication.
âThe browser actually contacts the device over USB, and in that request sends the PIN that you typed in into the authenticator. The authenticator validates that PIN is correct, and if that PIN is not correct, it will not proceed. Only if that PIN is correct will it proceed.â
âWhen the request is sent into the device, the fingerprint is requested on the device, and when you put your fingerprint on the reader, the act of putting your finger on the reader is not only the interaction required to prevent malware but also validates your fingerprint.â
⢠Secure Enclaves: Devices with secure enclaves cannot be circumvented by the operating system; the fingerprint data never leaves the device.
4. Multi-Device Credentials
⢠Synchronization: Private keys are encrypted and synchronized across devices associated with the userâs account (e.g., iCloud Keychain). This allows users to authenticate with various devices.
âThe private key that was generated for this website on my Mac was then encrypted, put into the iCloud keychain, and only other devices in my account can download and decrypt that private key.â
⢠Bluetooth and QR Codes: A QR code can trigger a Bluetooth Low Energy connection, enabling a phone to help authenticate a browser session on another device.
5. Phishing Resistance
⢠Domain Name Binding: A key strength of WebAuthn is its inherent resistance to phishing. The domain/origin of the website is included in the data signed by the authenticator.
âThe step that matters to prevent phishing within WebAuthn and passkeys is at this stage here, between the collected client data from the browser and how it is sent into the authenticator.â
⢠Origin Verification: The browser sends the authenticator the exact bytes of the origin (domain), ensuring the user is authenticating at the intended website.
âThe origin comes from the browser, not the relying party, which makes it much harder to tamper with.â
⢠Signature Validation: A signature is created by the device that includes the origin, so a phishing siteâs signature will fail on the real site.
6. Key Management & Storage
WebAuthn credentials can be resident (discoverable) or non-resident (non-discoverable), each with distinct implications.
⢠Non-Resident (Non-Discoverable) Keys:
⢠Typically, the authenticator stores only a small wrapped key reference. The userâs handle (username) and credential ID primarily live on the server side.
⢠Minimal On-Device Storage: Although each new non-resident credential requires some space, it is very smallâoften just enough to store an index or wrap of the key. Hence, an authenticator can support hundreds or even thousands of non-resident credentials in many cases.
⢠Requires Username or Account Lookup: The relying party (server) must send the correct credential ID to the authenticator during login. The user generally types a username, and the server does the rest.
⢠Better Privacy: The authenticator wonât reveal credential existence unless given the exact credential ID.
⢠Resident (Discoverable) Keys:
⢠The authenticator stores key material plus user metadata (e.g., a user handle or username) directly, enabling âusername-lessâ flows.
⢠Easier User Experience (UX): Users can simply select the account on their device without typing a username.
⢠Higher Storage Usage: Some devices have extremely limited capacity for resident keys (e.g., 0, 8, or 32). Others, like modern laptops or phones, may store many more.
⢠Potential Privacy Trade-Offs: The authenticator can reveal that a credential exists, unless carefully controlled with user consent.
Negative Impacts of Resident Keys Highlighted by the Speaker:
-
Limited Storage: Physical security keys (such as some CTAP2 devices) might allow only a handful of resident credentials (sometimes 0, 8, or 32).
-
Inability to Delete Keys: Certain devices do not allow deletion or modification of stored credentials. This lack of manageability can harm users who need to update or remove personal identifying information.
-
Harm to Specific User Groups: Transgender individuals or others who want to change personal information (e.g., a new name or updated user handle) may find themselves stuck with old data on devices that donât allow deletion.
-
User Experience Issues: If a device has minimal resident key capacity or if the user is confused by the discoverable-credentials flow, it can lead to poor UX.
-
Lack of User Control: Forcing resident credentials limits usersâ choices of which authenticators to use (especially those with small capacity or no deletion support).
-
No Warnings: Browsers typically do not alert users before creating a resident key, leaving them unaware of potential device storage issues or privacy concerns.
Speakerâs Position: While resident keys do enable username auto-completion, the potential harm (especially for marginalized communities or in limited-storage scenarios) often outweighs the usability benefits. For this reason, the speaker expresses a strong dislike for defining âpasskeysâ strictly as resident credentials.
7. Implementation Challenges
⢠Complexity of the Standard: The WebAuthn specification is very long and covers many use cases, which may be difficult to navigate.
âThe spec for WebAuthn is trying to solve many use cases⌠If you have a narrow use case like passkeys or âI just want cryptographic auth,â it can be hard to navigate this complex spec to make that happen securely.â
⢠Library Gaps: Some libraries have implementation gaps or design choices that impact security.
⢠Careful Implementation: Developers must understand implications of library settings such as user verification, resident key handling, and cryptographic parameters.
âYou must set user verification required, else your multi-factor devices are actually single-factor.â
⢠Attestation: This cryptographic certificate from hardware manufacturers can identify device properties but may not always be provided.
âFIDO certification represents conformance to an API, not a representation of security or quality.â
Important Quotes
⢠âThere is no clear definition of what a passkey is.â
⢠âAt its core, what weâre talking about here is WebAuthn being a form of public/private key cryptography or asymmetric key cryptography.â
⢠âWebAuthn is not able to be phished because of these properties.â
⢠âThe way that we allow these credentials to work with an infinite number of sites happens at this stage.â
⢠âIf someone is able to decrypt these, then we have very significant problems in the security of cryptography on the internet as a whole.â
⢠âThe problem is that by requesting them or forcing them outside of just opportunistic existence, we do have potential harms against people, and I donât think thatâs okay.â
⢠âWriting your own cryptographic code is great fun and itâs a really wonderful educational experience⌠but there is a big gap between writing that code for education and fun to production.â
⢠âFIDO certification represents conformance to an API, not a representation of security or quality.â
⢠âPasskeys are a self-contained multi-factor authenticator.â
Answers to Questions
- âBut even each incremental non-resident key would take some space on the device, right? Canât be 0?â
⢠Yes, each new non-resident credential does consume some space, but it is extremely small (often just a wrapped key reference or index). This is significantly less than a full resident key, which needs to store user-related metadata. Hence, an authenticator can often store many non-resident keys compared to a much smaller limit for resident keys.
- âWhat about passkeys that sync across multiple devices (e.g., iCloud Keychain)? Must they use resident or non-resident keys, or can they use both?â
⢠Most multi-device passkeys are resident (discoverable) credentials so that they can provide a seamless username-less flow. This is the simplest approach from a user-experience standpoint, which Apple and others favor.
⢠Technically, you could implement a âsynced credentialâ with a non-resident key approach, but it defeats some of the frictionless UX benefits (the user would still need a username or some other lookup). So, while both are possible under WebAuthn, mainstream multi-device passkeys generally use resident keys.
- How to Prevent User Enumeration?
⢠One strategy is to generate fake credential IDs for non-existent users. The server can respond with a credential ID even when the username does not exist, obscuring whether a user truly exists.
- Why No Browser Warnings for Resident Keys?
⢠Most browsers do not prompt or warn before creating resident credentials, which can surprise users (or fill device storage without notice). This is a UI challenge that the speaker highlights.
- Use Cases for Resident Keys Despite Their Downsides?
⢠Synchronized devices (like phone, laptop) to enable username-less sign-in.
⢠Username auto-completion or selection (especially on a single shared device).
⢠Offline devices or specialized corporate deployments where the server is not always reachable.
- Software Keys vs. Hardware Keys?
⢠Software-based keys (e.g., phone-based passkeys) are still more secure than passwords, but may not be appropriate for the highest-security needs.
⢠Attestation can provide some control, but does not necessarily guarantee full hardware protection.
- Attestation
⢠A cryptographic certificate from the authenticator manufacturer that can help verify the security properties of the device, though it is optional and can introduce privacy trade-offs.
Conclusion
WebAuthn and passkeys represent a significant step forward in secure, phishing-resistant authentication. However, as William Brownâs presentation underscores, implementing passkeysâespecially those defined as resident credentialsâintroduces complex trade-offs around storage limits, inability to delete or update keys on some devices, and potential harm for users needing to change personal details. Non-resident credentials, while less âusername-less,â can avoid some of these pitfalls by storing minimal data on the authenticator.
Developers must be careful with library choices, user verification settings, and whether they require or allow resident credentials. In most consumer-facing scenarios (like iCloud Keychain passkeys), resident keys are chosen for the convenience of synchronized, username-less flows. Yet the speakerâs cautionary notes remind us that neither approach is perfect, and real-world needsâsuch as supporting marginalized communities, offering true user control, or ensuring large-scale credential storageâshould guide the final choice.
Despite the complexities, the speaker encourages developers to experiment with and implement WebAuthn in their own sites. Properly deployed, passkeys provide a more secure and user-friendly alternative to passwords, advancing both individual security and the broader authentication ecosystem.
Learn How to Implement Webauthn in JS
url: https://www.youtube.com/watch?v=viZs1iVsLpA
title: "How To Setup Fingerprint Auth In JavaScript"
description: "Authentication is a difficult topic especially when dealing with biometric auth and passkeys. That is until now. In this video I will explain how you can use..."
host: www.youtube.com
favicon: https://www.youtube.com/s/desktop/024ccc3d/img/logos/favicon_32x32.png
image: https://i.ytimg.com/vi/viZs1iVsLpA/maxresdefault.jpg