In dit artikel reageert Scott Helme op een virale bewering dat passkeys een 'valstrik' zouden zijn vanwege de functie 'attestatie'. De claim is dat websites via attestatie gebruikers zouden kunnen uitsluiten die geen goedgekeurde software of hardware gebruiken.
Helme weerlegt dit argument met de volgende punten:
- Geen attestatie voor consumenten: De meeste populaire passkey-managers (zoals iCloud, Google en Bitwarden) sturen geen attestatie-verklaringen mee, waardoor websites deze informatie simpelweg niet ontvangen.
- Beperkte informatie: Zelfs wanneer attestatie aanwezig is, onthult dit enkel het merk en model van de authenticator, en niet details over het besturingssysteem, de browser of de status van het toestel.
- Tegenstrijdig advies: De oorspronkelijke criticus adviseert YubiKeys, terwijl juist deze hardware-sleutels attestatie ondersteunen.
- Phishing-resistentie: In tegenstelling tot TOTP-codes zijn passkeys gebonden aan specifieke domeinen, waardoor ze immuun zijn voor phishing-aanvallen via man-in-the-middle sites.
De conclusie is dat passkeys momenteel de beste methode zijn om accounts te beveiligen en dat gebruikers ze overal waar mogelijk moeten blijven gebruiken.
Passkeys zijn geen valstrik
Er gaat de laatste dagen een bericht rond met de titel "Passkeys are a trap. Do not use them", dat hoog is gekomen op Hacker News. Ik heb het bericht vele malen toegestuurd met de vraag: "is dit waar?". De tekst is geschreven voor "niet-technische burgers van het web" en het hoofdadvies is om te stoppen met het gebruik van passkeys en terug te keren naar TOTP-codes en wachtwoorden.
Het argument
Het bericht stelt in essentie één centrale claim: passkeys ondersteunen iets dat 'attestatie' (attestation) wordt genoemd, waardoor een website kan vragen om cryptografisch bewijs van wat de passkey heeft gemaakt.
De auteur noemt dit een "verborgen knop" en betoogt dat websites deze knop langzaam zullen omdraaien, totdat je alleen nog maar mag inloggen met goedgekeurde software op een goedgekeurd besturingssysteem, zonder modificaties, zonder LineageOS en zonder het delen van je Netflix-wachtwoord. Als je daar uBlock Origin, de ledenlijst van de FIDO Alliance en de Britse voorstellen voor het scannen van afbeeldingen bij optelt, is de conclusie dat passkeys "niet zijn ontworpen om jouw belangen prioriteit te geven".
Het is een overtuigend verhaal. Alleen komt het niet overeen met hoe dit alles in de praktijk werkt.
Jouw passkeys doen geen attestatie
De passkeys die de meeste mensen gebruiken, zijn gesynchroniseerde passkeys die worden opgeslagen in iCloud Keychain, Google Password Manager, 1Password, Bitwarden of andere software naar keuze. Deze passkeys geven websites helemaal geen attestatie-verklaring. Hoewel een site erom kan vragen, komt er niets terug. Ik weet dit omdat ik een opensource passkeys-bibliotheek heb geschreven en deze beschikbaar heb gesteld voor iedereen.
Als een consumentenwebsite morgen zou besluiten dat hij alleen nog maar geattesteerde passkeys accepteert, zou hij vrijwel direct bijna al zijn eigen gebruikers buitensluiten. Welke website gaat dat doen? Bovendien is de richtlijn voor consumentensites al jaren om attestatie helemaal niet aan te vragen.
Attestatie is niet wat je denkt dat het is
Het bericht beschrijft attestatie als het bewijzen "dat een goedgekeurde passkey-manager, een besturingssysteem en firmware in gebruik zijn", wat simpelweg niet waar is.
Wanneer het aanwezig is, vertelt WebAuthn-attestatie de site het merk en model van de authenticator, geïdentificeerd door de AAGUID, met een certificaatketen van de leverancier ter ondersteuning. Het zegt niets over je besturingssysteem, je browser, je extensies, of je telefoon is geroot of gejailbreakt, je firmwareversie, of zelfs welke kleur het toestel heeft.
De aanbeveling voor YubiKeys
Dit is het deel dat me het meest verbaasde. Voor mensen die sterkere beveiliging willen, beveelt het bericht een hardware-beveiligingssleutel aan, zoals een YubiKey, omdat dit "OS-brede attestatie vermijdt".
YubiKeys zijn juist de authenticators die attestatie uitvoeren. Elke YubiKey wordt geleverd met een door Yubico uitgegeven attestatiecertificaat, en enterprise-attestatie bestaat specifiek zodat organisaties goedgekeurde hardware-sleutels kunnen vereisen. Ik zou nog steeds een YubiKey aanbevelen aan iedereen die er een wil — ze zijn uitstekend en ik gebruik ze zelf — maar als attestatie het punt is waar je je zorgen over maakt, duwt de aanbeveling van het bericht je juist richting attestatie in plaats van ervan weg!
TOTP is een stap terug
Het bericht presenteert TOTP als een oplossing die "al" geweldig is. TOTP is absoluut beter dan alleen een wachtwoord, maar het heeft één grote zwakte: je kunt de code op de verkeerde website invoeren (vraag mijn goede vriend Troy Hunt). Phishing-kits zoals Evilginx plaatsen zich in het midden, sturen je wachtwoord en code in realtime door naar de echte site en lopen weg met je sessie. Dit is niet theoretisch; zo gebeuren tegenwoordig een enorm aantal account-overnames en we hebben het bewijs om dat aan te tonen.
Dit is het probleem dat passkeys oplossen. Een passkey is gebonden aan het domein waarvoor hij is gemaakt, dus je browser zal je example.com-passkey simpelweg niet gebruiken op examp1e.com. Er is geen code die moet worden voorgelezen en de gebruiker kan niets fout doen. De auteur geeft dit zelfs toe in het addendum, door te zeggen dat passkeys domeingebonden zijn en resistent zijn tegen man-in-the-middle-aanvallen, maar adviseert lezers toch om ze te vermijden. Het ruilen van een phishing-resistente inlogmethode voor een methode die wel gevoelig is voor phishing, is een erg slechte ruil.
Wat je moet doen
Blijf passkeys gebruiken! Overal waar een site er een aanbiedt, maak er dan gebruik van en bewaar deze in een wachtwoord- of passkey-manager die je vertrouwt. Als je je inloggegevens wilt kunnen verplaatsen, kies dan een provider die dat ondersteunt. Als je je zorgen maakt dat attestatie doorsijpelt naar consumentenlogins, dan is dat iets om (luidruchtig) tegen te protesteren als dat ooit gebeurt. Maar het is niet gebeurd, de grootste providers ondersteunen het niet, en het vermijden van passkeys terwijl je hierop wacht, beschermt je tegen niets; het laat je alleen openstaan voor phishing.
Bronnen
Ik heb ervaring op dit gebied:
- Ik heb WhyNoPasskeys.com gemaakt om de beschikbaarheid van passkeys op het web bij te houden.
- Ik heb passkeys-ondersteuning gebouwd en geïmplementeerd in mijn eigen SaaS-bedrijf.
- We hebben onze eigen passkeys-bibliotheek gebouwd en deze laten controleren door beveiligingsexperts.
- Ik heb geschreven over "Security considerations when using Passkeys on your website".
- Ik heb "Passkeys 101: An Introduction to Passkeys and How They Work" geschreven.
- Ik heb onze passkeys-bibliotheek opensource gemaakt zodat iedereen deze kan gebruiken.
- Ik heb uitgebreide beveiligingstests uitgevoerd op passkeys-implementaties.
- Ik heb openlijk de beperkingen erkend van het niet gebruiken van attestatie bij passkeys.
Bovenal vind ik het belangrijk om te zeggen dat ik passkeys overal gebruik waar dat kan, omdat ze momenteel het beste middel zijn dat we hebben om onze accounts te beschermen. En ze zijn geen valstrik.
Passkeys zijn geen valstrik
Er gaat de laatste dagen een bericht rond met de titel "Passkeys are a trap. Do not use them", dat hoog is gekomen op Hacker News. Ik heb het bericht vele malen toegestuurd met de vraag: "is dit waar?". De tekst is geschreven voor "niet-technische burgers van het web" en het hoofdadvies is om te stoppen met het gebruik van passkeys en terug te keren naar TOTP-codes en wachtwoorden.
Het argument
Het bericht stelt in essentie één centrale claim: passkeys ondersteunen iets dat 'attestatie' (attestation) wordt genoemd, waardoor een website kan vragen om cryptografisch bewijs van wat de passkey heeft gemaakt.
De auteur noemt dit een "verborgen knop" en betoogt dat websites deze knop langzaam zullen omdraaien, totdat je alleen nog maar mag inloggen met goedgekeurde software op een goedgekeurd besturingssysteem, zonder modificaties, zonder LineageOS en zonder het delen van je Netflix-wachtwoord. Als je daar uBlock Origin, de ledenlijst van de FIDO Alliance en de Britse voorstellen voor het scannen van afbeeldingen bij optelt, is de conclusie dat passkeys "niet zijn ontworpen om jouw belangen prioriteit te geven".
Het is een overtuigend verhaal. Alleen komt het niet overeen met hoe dit alles in de praktijk werkt.
Jouw passkeys doen geen attestatie
De passkeys die de meeste mensen gebruiken, zijn gesynchroniseerde passkeys die worden opgeslagen in iCloud Keychain, Google Password Manager, 1Password, Bitwarden of andere software naar keuze. Deze passkeys geven websites helemaal geen attestatie-verklaring. Hoewel een site erom kan vragen, komt er niets terug. Ik weet dit omdat ik een opensource passkeys-bibliotheek heb geschreven en deze beschikbaar heb gesteld voor iedereen.
Als een consumentenwebsite morgen zou besluiten dat hij alleen nog maar geattesteerde passkeys accepteert, zou hij vrijwel direct bijna al zijn eigen gebruikers buitensluiten. Welke website gaat dat doen? Bovendien is de richtlijn voor consumentensites al jaren om attestatie helemaal niet aan te vragen.
Attestatie is niet wat je denkt dat het is
Het bericht beschrijft attestatie als het bewijzen "dat een goedgekeurde passkey-manager, een besturingssysteem en firmware in gebruik zijn", wat simpelweg niet waar is.
Wanneer het aanwezig is, vertelt WebAuthn-attestatie de site het merk en model van de authenticator, geïdentificeerd door de AAGUID, met een certificaatketen van de leverancier ter ondersteuning. Het zegt niets over je besturingssysteem, je browser, je extensies, of je telefoon is geroot of gejailbreakt, je firmwareversie, of zelfs welke kleur het toestel heeft.
De aanbeveling voor YubiKeys
Dit is het deel dat me het meest verbaasde. Voor mensen die sterkere beveiliging willen, beveelt het bericht een hardware-beveiligingssleutel aan, zoals een YubiKey, omdat dit "OS-brede attestatie vermijdt".
YubiKeys zijn juist de authenticators die attestatie uitvoeren. Elke YubiKey wordt geleverd met een door Yubico uitgegeven attestatiecertificaat, en enterprise-attestatie bestaat specifiek zodat organisaties goedgekeurde hardware-sleutels kunnen vereisen. Ik zou nog steeds een YubiKey aanbevelen aan iedereen die er een wil — ze zijn uitstekend en ik gebruik ze zelf — maar als attestatie het punt is waar je je zorgen over maakt, duwt de aanbeveling van het bericht je juist richting attestatie in plaats van ervan weg!
TOTP is een stap terug
Het bericht presenteert TOTP als een oplossing die "al" geweldig is. TOTP is absoluut beter dan alleen een wachtwoord, maar het heeft één grote zwakte: je kunt de code op de verkeerde website invoeren (vraag mijn goede vriend Troy Hunt). Phishing-kits zoals Evilginx plaatsen zich in het midden, sturen je wachtwoord en code in realtime door naar de echte site en lopen weg met je sessie. Dit is niet theoretisch; zo gebeuren tegenwoordig een enorm aantal account-overnames en we hebben het bewijs om dat aan te tonen.
Dit is het probleem dat passkeys oplossen. Een passkey is gebonden aan het domein waarvoor hij is gemaakt, dus je browser zal je example.com-passkey simpelweg niet gebruiken op examp1e.com. Er is geen code die moet worden voorgelezen en de gebruiker kan niets fout doen. De auteur geeft dit zelfs toe in het addendum, door te zeggen dat passkeys domeingebonden zijn en resistent zijn tegen man-in-the-middle-aanvallen, maar adviseert lezers toch om ze te vermijden. Het ruilen van een phishing-resistente inlogmethode voor een methode die wel gevoelig is voor phishing, is een erg slechte ruil.
Wat je moet doen
Blijf passkeys gebruiken! Overal waar een site er een aanbiedt, maak er dan gebruik van en bewaar deze in een wachtwoord- of passkey-manager die je vertrouwt. Als je je inloggegevens wilt kunnen verplaatsen, kies dan een provider die dat ondersteunt. Als je je zorgen maakt dat attestatie doorsijpelt naar consumentenlogins, dan is dat iets om (luidruchtig) tegen te protesteren als dat ooit gebeurt. Maar het is niet gebeurd, de grootste providers ondersteunen het niet, en het vermijden van passkeys terwijl je hierop wacht, beschermt je tegen niets; het laat je alleen openstaan voor phishing.
Bronnen
Ik heb ervaring op dit gebied:
- Ik heb WhyNoPasskeys.com gemaakt om de beschikbaarheid van passkeys op het web bij te houden.
- Ik heb passkeys-ondersteuning gebouwd en geïmplementeerd in mijn eigen SaaS-bedrijf.
- We hebben onze eigen passkeys-bibliotheek gebouwd en deze laten controleren door beveiligingsexperts.
- Ik heb geschreven over "Security considerations when using Passkeys on your website".
- Ik heb "Passkeys 101: An Introduction to Passkeys and How They Work" geschreven.
- Ik heb onze passkeys-bibliotheek opensource gemaakt zodat iedereen deze kan gebruiken.
- Ik heb uitgebreide beveiligingstests uitgevoerd op passkeys-implementaties.
- Ik heb openlijk de beperkingen erkend van het niet gebruiken van attestatie bij passkeys.
Bovenal vind ik het belangrijk om te zeggen dat ik passkeys overal gebruik waar dat kan, omdat ze momenteel het beste middel zijn dat we hebben om onze accounts te beschermen. En ze zijn geen valstrik.