WebAuthn: Difference between revisions
m replaced: it's → its, typo(s) fixed: Subsequently → Subsequently,, alonside → alongside, a improvement → an improvement |
Alter: template type, journal, title. Add: date, isbn, bibcode, authors 1-1. Removed URL that duplicated identifier. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by GoingBatty | Category:CS1 errors: dates | #UCB_template | Whitelisted category 779/890 |
||
| Line 52: | Line 52: | ||
== Background == | == Background == | ||
Using a username and password has been the standard mechanism for users to prove to a website that they are a specific person.<ref>{{Cite | Using a username and password has been the standard mechanism for users to prove to a website that they are a specific person.<ref>{{Cite book |last1=Bonneau|first1=Joseph|last2=Herley|first2=Cormac|last3=Oorschot|first3=Paul C. van|last4=Stajano|first4=Frank|date=2012|title=The Quest to Replace Passwords: A Framework for Comparative Evaluation of Web Authentication Schemes|journal=2012 IEEE Symposium on Security and Privacy|pages=553–567|doi=10.1109/SP.2012.44 |bibcode=2012sp...conf...46B |isbn=978-1-4673-1244-8 }}</ref> However, this methods was known to be flawed. Users often reuse passwords across services,<ref>{{Cite journal |last1=Wang|first1=Chun|last2=Jan|first2=Steve T.K.|last3=Hu|first3=Hang|last4=Bossart|first4=Douglas|last5=Wang|first5=Gang|date=2018-03-13|title=The Next Domino to Fall: Empirical Analysis of User Passwords across Online Services|url=https://dl.acm.org/doi/10.1145/3176258.3176332|journal=Codaspy '18|language=en|publisher=ACM|pages=196–203|doi=10.1145/3176258.3176332|isbn=978-1-4503-5632-9}}</ref> use weak passwords that can be brute-forced, predicted<ref>{{Cite journal |last1=Mazurek|first1=Michelle L.|last2=Komanduri|first2=Saranga|last3=Vidas|first3=Timothy|last4=Bauer|first4=Lujo|last5=Christin|first5=Nicolas|last6=Cranor|first6=Lorrie Faith|last7=Kelley|first7=Patrick Gage|last8=Shay|first8=Richard|last9=Ur|first9=Blase|date=2013|title=Measuring password guessability for an entire university|url=http://dl.acm.org/citation.cfm?doid=2508859.2516726|journal=ACM CCS|language=en|publisher=ACM Press|pages=173–186|doi=10.1145/2508859.2516726|isbn=978-1-4503-2477-9}}</ref> or store them in ways that allows for their disclosure (for example writing them down on a piece of paper or a document).<ref>{{Cite conference|publisher=USENIX Association|isbn=978-1-939133-10-6|pages=13–30|last1=Habib|first1=Hana|last2=Naeini|first2=Pardis Emami|last3=Devlin|first3=Summer|last4=Oates|first4=Maggie|last5=Swoopes|first5=Chelse|last6=Bauer|first6=Lujo|last7=Christin|first7=Nicolas|last8=Cranor|first8=Lorrie Faith|title=User behaviors and attitudes under password expiration policies|location=Baltimore, MD|date=2018|conference=Fourteenth Symposium On Usable Privacy and Security (SOUPS 2018)|book-title=}}</ref> | ||
As a result, in 2012, [[Google]] alongside [[Yubico]] started working on a standard called [[Universal 2nd Factor|Universal 2 Factor]] (U2F)<ref>{{Cite web |title=Yubico Company Timeline|url=https://www.yubico.com/why-yubico/yubico-innovation-history/|access-date=2026-06-04|website=Yubico|language=en-US}}</ref> that would allow websites to programatically verify a second-factor about the user by verifying the presence of hardware-based tokens (like [[smart card]]s) on the user. This standard was considered an improvement over existing solutions like time-based [[one-time password]] ([[TOTP - Time-based One-time Password Algorithm|TOTP]]) or SMS-based authentication that still left the user vulnerable to sophisticated [[phishing]] campaigns. The standard was later adopted into a larger industry wide collaboration called the [[FIDO Alliance|FIDO (Fast IDentity Online) Alliance]]. The first draft for this proposed standard was published in 2014.<ref>{{Cite web |date=2014-12-09|title=FIDO Alliance Publishes Final FIDO 1.0 Specifications, First Industry Standards for Universal Strong Authentication|url=https://www.yubico.com/press-releases/fido-alliance-publishes-final-fido-1-0-specifications-first-industry-standards-for-universal-strong-authentication/|access-date=2026-06-04|website=Yubico|language=en-US}}</ref> In 2015, the FIDO Alliance started started developing the [[FIDO2 Project|FIDO 2 Project]], releasing a proposed standard where they sought to improve upon the existing U2F standard by addressing many of its weaknesses.<ref>{{Cite web |date=2015-09-04|title=FIDO Complete Spec 2015-09-04|url=https://fidoalliance.org/specs/fido-v2.0-ps-20150904/FIDO-COMPLETE-v2.0-ps-20150904.pdf|access-date=5 June 2026|website=Fido Alliance}}</ref> For example, the U2F standard still required to use of passwords alongside a second factor which still left websites vulnerable to password leaks and other similar attacks that were common against passwords.<ref name=":0">{{Cite journal | | As a result, in 2012, [[Google]] alongside [[Yubico]] started working on a standard called [[Universal 2nd Factor|Universal 2 Factor]] (U2F)<ref>{{Cite web |title=Yubico Company Timeline|url=https://www.yubico.com/why-yubico/yubico-innovation-history/|access-date=2026-06-04|website=Yubico|language=en-US}}</ref> that would allow websites to programatically verify a second-factor about the user by verifying the presence of hardware-based tokens (like [[smart card]]s) on the user. This standard was considered an improvement over existing solutions like time-based [[one-time password]] ([[TOTP - Time-based One-time Password Algorithm|TOTP]]) or SMS-based authentication that still left the user vulnerable to sophisticated [[phishing]] campaigns. The standard was later adopted into a larger industry wide collaboration called the [[FIDO Alliance|FIDO (Fast IDentity Online) Alliance]]. The first draft for this proposed standard was published in 2014.<ref>{{Cite web |date=2014-12-09|title=FIDO Alliance Publishes Final FIDO 1.0 Specifications, First Industry Standards for Universal Strong Authentication|url=https://www.yubico.com/press-releases/fido-alliance-publishes-final-fido-1-0-specifications-first-industry-standards-for-universal-strong-authentication/|access-date=2026-06-04|website=Yubico|language=en-US}}</ref> In 2015, the FIDO Alliance started started developing the [[FIDO2 Project|FIDO 2 Project]], releasing a proposed standard where they sought to improve upon the existing U2F standard by addressing many of its weaknesses.<ref>{{Cite web |date=2015-09-04|title=FIDO Complete Spec 2015-09-04|url=https://fidoalliance.org/specs/fido-v2.0-ps-20150904/FIDO-COMPLETE-v2.0-ps-20150904.pdf|access-date=5 June 2026|website=Fido Alliance}}</ref> For example, the U2F standard still required to use of passwords alongside a second factor which still left websites vulnerable to password leaks and other similar attacks that were common against passwords.<ref name=":0">{{Cite journal |last1=Ghorbani Lyastani|first1=Sanam|last2=Schilling|first2=Michael|last3=Neumayr|first3=Michaela|last4=Backes|first4=Michael|last5=Bugiel|first5=Sven|date=May 2020|title=Is FIDO2 the Kingslayer of User Authentication? A Comparative Usability Study of FIDO2 Passwordless Authentication|journal=2020 IEEE S&P|publisher=IEEE|pages=268–285|doi=10.1109/SP40000.2020.00047|bibcode=2020sp...conf...24G |isbn=978-1-7281-3497-0}}</ref> Additionally, the U2F specification only verified the second factor device and did not perform any user authentication.<ref name=":0" /> This meant that if the second factor device had been stolen or lost anyone with access to the U2F device would be able to bypass the second factor of authentication for accounts linked to the device.<ref name=":0" /> | ||
In November 2015, the FIDO Alliance submitted the first version of FIDO 2 to the World Wide Web Consortium as a proposed web standard.<ref>{{Cite web |date=2015-11-20|title=W3C Welcomes the FIDO 2.0 Member Submission|url=https://www.w3.org/blog/2015/w3c-fido/|access-date=2026-06-05|website=W3C|language=en}}</ref> In 2016, the W3C established a separate [[Web Authentication Working Group|W3C Web Authentication Working Group]] to help write a standard for the new FIDO 2 project's authentication framework such that it could be integrated into browsers by default.<ref>{{Cite web |title=Web Authentication Working Group Charter|url=https://www.w3.org/2015/12/web-authentication-charter.html|access-date=2026-06-04|website=www.w3.org}}</ref> The standard was adopted by major browser vendors in late 2018 and early 2019, with Chrome supporting the standard in version 67, Firefox in version 60 and Safari in version 13.<ref>{{Cite web |date=2026-02-19|title=Web Authentication API - Web APIs {{!}} MDN|url=https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API|access-date=2026-06-04|website=MDN Web Docs|language=en-US}}</ref> In 2019, the FIDO 2 project alongside the W3C Web Authentication Working Group released the first version of the WebAuthn specification based on the FIDO 2 project as a W3C recommendation. Subsequently, the standard has gone through two revisions, being called Level 1, Level 2 with a Level 3 revision still being considered a Candidate Recommendation {{As of|2026|June|lc=y}},<ref>{{Cite web |title=Web Authentication: An API for accessing Public Key Credentials - Level 3|url=https://www.w3.org/TR/webauthn-3/Overview.html|access-date=2026-06-04|website=www.w3.org}}</ref> meaning that it is considered mature and feature complete and is ready for implementation and testing by interested parties.<ref>{{Cite web |title=W3C Process Document|url=https://www.w3.org/policies/process/20250818/Overview.html|access-date=2026-06-04|website=www.w3.org}}</ref> | In November 2015, the FIDO Alliance submitted the first version of FIDO 2 to the World Wide Web Consortium as a proposed web standard.<ref>{{Cite web |date=2015-11-20|title=W3C Welcomes the FIDO 2.0 Member Submission|url=https://www.w3.org/blog/2015/w3c-fido/|access-date=2026-06-05|website=W3C|language=en}}</ref> In 2016, the W3C established a separate [[Web Authentication Working Group|W3C Web Authentication Working Group]] to help write a standard for the new FIDO 2 project's authentication framework such that it could be integrated into browsers by default.<ref>{{Cite web |title=Web Authentication Working Group Charter|url=https://www.w3.org/2015/12/web-authentication-charter.html|access-date=2026-06-04|website=www.w3.org}}</ref> The standard was adopted by major browser vendors in late 2018 and early 2019, with Chrome supporting the standard in version 67, Firefox in version 60 and Safari in version 13.<ref>{{Cite web |date=2026-02-19|title=Web Authentication API - Web APIs {{!}} MDN|url=https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API|access-date=2026-06-04|website=MDN Web Docs|language=en-US}}</ref> In 2019, the FIDO 2 project alongside the W3C Web Authentication Working Group released the first version of the WebAuthn specification based on the FIDO 2 project as a W3C recommendation. Subsequently, the standard has gone through two revisions, being called Level 1, Level 2 with a Level 3 revision still being considered a Candidate Recommendation {{As of|2026|June|lc=y}},<ref>{{Cite web |title=Web Authentication: An API for accessing Public Key Credentials - Level 3|url=https://www.w3.org/TR/webauthn-3/Overview.html|access-date=2026-06-04|website=www.w3.org}}</ref> meaning that it is considered mature and feature complete and is ready for implementation and testing by interested parties.<ref>{{Cite web |title=W3C Process Document|url=https://www.w3.org/policies/process/20250818/Overview.html|access-date=2026-06-04|website=www.w3.org}}</ref> | ||
| Line 64: | Line 64: | ||
[[File:Bitwarden Passkey window screenshot.png|thumb|upright=1.2|Here shown the usage of passkey as a term to refer to WebAuthn credential ([[Bitwarden]] for [[Pixiv]])]] | [[File:Bitwarden Passkey window screenshot.png|thumb|upright=1.2|Here shown the usage of passkey as a term to refer to WebAuthn credential ([[Bitwarden]] for [[Pixiv]])]] | ||
''Passkey'' is the [[de facto]] [[Technical language|non-technical]] term for a saved sign-in credential, a piece of [[cryptographic]] information that is capable of being used to authenticate a user using the WebAuthn standard.<ref name="docsrs-webauthnrs2">{{cite web |last1=Brown|first1=William|title=webauthn-rs docs|url=https://docs.rs/webauthn-rs/latest/webauthn_rs/#what-is-a-passkey|website=Docs.rs|publisher=Kanidm Identity Management Project|access-date=3 July 2025|date=April 2024|archive-url=https://web.archive.org/web/20250612151121/https://docs.rs/webauthn-rs/latest/webauthn_rs/#what-is-a-passkey|archive-date=12 June 2025}}</ref><ref name="imperialviolet-webauthn2">{{cite web |last=Langley|first=Adam|date=2024-12-23|title=A Tour of WebAuthn|url=https://www.imperialviolet.org/tourofwebauthn/tourofwebauthn.html|access-date=2025-08-13|website=Imperial Violet}}</ref> Most user interfaces that support using WebAuthn refer to it as supporting ''passkeys''.<ref name="arstechnica-not-usable2">{{cite web |last1=Goodin|first1=Dan|title=Passkey technology is elegant, but | ''Passkey'' is the [[de facto]] [[Technical language|non-technical]] term for a saved sign-in credential, a piece of [[cryptographic]] information that is capable of being used to authenticate a user using the WebAuthn standard.<ref name="docsrs-webauthnrs2">{{cite web |last1=Brown|first1=William|title=webauthn-rs docs|url=https://docs.rs/webauthn-rs/latest/webauthn_rs/#what-is-a-passkey|website=Docs.rs|publisher=Kanidm Identity Management Project|access-date=3 July 2025|date=April 2024|archive-url=https://web.archive.org/web/20250612151121/https://docs.rs/webauthn-rs/latest/webauthn_rs/#what-is-a-passkey|archive-date=12 June 2025}}</ref><ref name="imperialviolet-webauthn2">{{cite web |last=Langley|first=Adam|date=2024-12-23|title=A Tour of WebAuthn|url=https://www.imperialviolet.org/tourofwebauthn/tourofwebauthn.html|access-date=2025-08-13|website=Imperial Violet}}</ref> Most user interfaces that support using WebAuthn refer to it as supporting ''passkeys''.<ref name="arstechnica-not-usable2">{{cite web |last1=Goodin|first1=Dan|title=Passkey technology is elegant, but it's most definitely not usable security|date=30 December 2024 |url=https://arstechnica.com/security/2024/12/passkey-technology-is-elegant-but-its-most-definitely-not-usable-security/|publisher=Ars Technica|access-date=3 July 2025|archive-date=3 July 2025|archive-url=https://web.archive.org/web/20250703130434/https://arstechnica.com/security/2024/12/passkey-technology-is-elegant-but-its-most-definitely-not-usable-security/|url-status=live}}</ref> | ||
Due to the open-ended nature of the WebAuthn specification, a passkey can be stored on software or hardware that is capable of authenticating a user. This includes technology like [[Windows Hello]] which works by using facial recognition to authenticate users,<ref>{{Cite web |last=|title=Support for Passkeys in Windows|url=https://learn.microsoft.com/en-us/windows/security/identity-protection/passkeys/|access-date=2026-06-06|website=learn.microsoft.com|language=en-us}}</ref><ref>{{Cite web |title=Configure Windows Hello - Microsoft Support|url=https://support.microsoft.com/en-us/windows/configure-windows-hello-dae28983-8242-bb2a-d3d1-87c9d265a5f0|access-date=2026-06-06|website=support.microsoft.com}}</ref> [[Bitwarden]] which authenticates users through a [[browser extension]]<ref>{{Cite web |title=Log In With Passkeys|url=https://bitwarden.com/help/login-with-passkeys/|access-date=2026-06-06|website=Bitwarden|language=en}}</ref> or [[YubiKey]]s that allow a user to authenticate using a physical hardware token.<ref>{{Cite web |last=|first=|last2=|title=Stop changing weak passwords. Start replacing them with passkeys|url=https://www.pcworld.com/article/2591499/stop-changing-weak-passwords-start-replacing-them-with-passkeys.html|access-date=2026-06-06|website=PCWorld|language=en}}</ref> The cryptographic keys stored by the software are only available to use for the browser once the software or hardware is authenticated the user.<ref name="arstechnica-not-usable2" /> | Due to the open-ended nature of the WebAuthn specification, a passkey can be stored on software or hardware that is capable of authenticating a user. This includes technology like [[Windows Hello]] which works by using facial recognition to authenticate users,<ref>{{Cite web |last=|title=Support for Passkeys in Windows|url=https://learn.microsoft.com/en-us/windows/security/identity-protection/passkeys/|access-date=2026-06-06|website=learn.microsoft.com|language=en-us}}</ref><ref>{{Cite web |title=Configure Windows Hello - Microsoft Support|url=https://support.microsoft.com/en-us/windows/configure-windows-hello-dae28983-8242-bb2a-d3d1-87c9d265a5f0|access-date=2026-06-06|website=support.microsoft.com}}</ref> [[Bitwarden]] which authenticates users through a [[browser extension]]<ref>{{Cite web |title=Log In With Passkeys|url=https://bitwarden.com/help/login-with-passkeys/|access-date=2026-06-06|website=Bitwarden|language=en}}</ref> or [[YubiKey]]s that allow a user to authenticate using a physical hardware token.<ref>{{Cite web |last=|first=|last2=|title=Stop changing weak passwords. Start replacing them with passkeys|url=https://www.pcworld.com/article/2591499/stop-changing-weak-passwords-start-replacing-them-with-passkeys.html|access-date=2026-06-06|website=PCWorld|language=en}}</ref> The cryptographic keys stored by the software are only available to use for the browser once the software or hardware is authenticated the user.<ref name="arstechnica-not-usable2" /> | ||