Tweeënhalf jaar geleden schreven we op Tweakers een achtergrondartikel over 'de toekomst van het wachtwoord'. Als je wat verder zoekt op internet, kun je nog veel verder terug lezen over dat onderwerp. Bill Gates voorspelde in 2004 al het einde van het wachtwoord; hij dacht dat het in de toekomst overbodig zou worden. Veel lijkt er sindsdien niet veranderd. Nog steeds zijn er iedere dag datalekken en het aantal wachtwoorden dat we nodig hebben, stijgt eerder dan dat het daalt. Onlangs zetten Google, Apple en Microsoft een belangrijke stap om wachtwoorden te elimineren uit Chrome, Android, iOS en Windows. Daarmee lijken de bedrijven definitief te hebben gekozen voor een specifieke methode van wachtwoordloos inloggen: FIDO2 en WebAuthn. Het was een lange rit om daar te komen en zeker geen vanzelfsprekendheid. De grote vraag wordt nu hoe de plannen van de techbedrijven eruit komen te zien. Gaan ze het wachtwoord nu écht overbodig maken?
Probleem met wachtwoorden
Waarom willen we eigenlijk van het wachtwoord af? In de basis werkt authenticeren met een combinatie van gebruikersnaam en wachtwoord best goed, althans, vanuit een gebruikersperspectief. Als gebruiker moet je slechts twee dingen onthouden en dat is best eenvoudig te doen. Dat verandert op het moment dat je wachtwoorden nodig hebt voor verschillende diensten. Dan wordt het moeilijker ze te onthouden en aanvallers kunnen ze steeds makkelijker stelen of geautomatiseerd achterhalen. Zoals Mark Rishner het eerder aan Tweakers uitlegde: "Wachtwoorden zijn moeilijk voor gebruikers en gemakkelijk voor aanvallers." Ideaal is volgens hem een alternatief dat niet alleen het onthouden van wachtwoorden overbodig maakt, maar ook de wachtwoorden zelf.
Single sign-on
In een ideale wereld zouden wachtwoorden in hun huidige vorm helemaal verdwijnen. In plaats van een unieke authenticatie voor iedere losse dienst op te stellen, maakt een gebruiker dan één authenticatie aan die kan worden gebruikt voor zowel het inloggen op Windows als in een Google-account en bij het account van de spreekwoordelijke slager op de hoek.
Zoiets bestaat al in de vorm van single sign-on. Een gebruiker kan dan inloggen met zijn Google-, Facebook- of Apple-account op een website die niet van die dienst is. Dat heeft voordelen; het is gebruiksvriendelijk en je kunt Google over het algemeen meer vertrouwen met beveiliging dan die slager. Single sign-on is echter verre van perfect en geen waardige vervanger voor het wachtwoord. Je moet nog steeds een wachtwoord gebruiken, weliswaar van je Google- of Facebook-account, maar nog steeds een wachtwoord. Er zijn vooral praktische problemen. Vendor lock-in is een risico. Facebook en Google gebruiken hun single sign-on daarnaast om bij te houden welke websites een gebruiker bezoekt, dus het gebruik ervan heeft ook privacyimplicaties.
Smartcards
Smartcards zijn vooral bij grote bedrijven en overheidsinstellingen al jaren een populaire manier van wachtwoordloos inloggen. Werknemers krijgen dan een fysiek apparaat of een keycard met soms een bijbehorende lezer. Zulke kaarten maken in de meeste gevallen gebruik van personal identity verification volgens een Amerikaanse NIST-standaard die gebruikers veilig authenticeert. Piv-apparatuur is op verschillende manieren te gebruiken, als een tweede stap bij tweestapsverificatie en als een losstaande inlogmethode. Smartcards en piv-standaarden zijn voor bedrijven die serieus zijn over hun beveiliging wel uit te rollen, maar het is ook duur, omdat er speciale hardware nodig is, en het kost vaak veel moeite om de uitrol en het beheer van smartcards te centraliseren. Bedrijven als Google, Apple en Microsoft, die voornamelijk op consumenten zijn gericht, hebben daarom weinig interesse in zulke smartcards voor wachtwoordloos inloggen. Smartcards zijn in de afgelopen jaren ook steeds minder interessant geworden doordat telefoons een belangrijke stap kunnen spelen bij tweestapsverificatie.
Tweestapsverificatie
Experts zijn het erover eens dat tweestapsverificatie een gigantisch deel van de accountinbraken kan voorkomen. Volgens Microsoft is het voor 99,9 procent effectief. De meest voorkomende vormen van tweestapsverificatie, zoals time-based one-time passwords, of totp, en hmac-based one-time passwords, of hotp, zijn duidelijke vormen van een tweede stap in het authenticatieproces. Ze bestaan duidelijk naast wachtwoorden en zijn daar geen vervanger van.
Ook aan dit proces zitten risico's. Zo is een hotp-code lang geldig, zodat er een groter gevaar is dat die onderschept kan worden via een simswap of phishing. Bij totp-codes, die je via bijvoorbeeld een app als Google Authenticator instelt, heb je een probleem als je je telefoon verliest. Daar zijn weer oplossingen voor, zoals een cloudback-up in apps als Authy of door het bewaren van back-upcodes die je kunt printen, maar je begrijpt inmiddels dat dit soort oplossingen vooral pleisters op de wonden zijn. Het zijn houtje-touwtjeoplossingen voor problemen die in de praktijk juist meer problemen rondom gebruikersgemak en beveiligingsrisico's opleveren.
Een vorm van tweestapsverificatie die dichter bij wachtwoordloos inloggen komt, zijn fysieke beveiligingssleutels. Die maken namelijk gebruik van de FIDO2-standaard. Die staat centraal in de nieuwe plannen van de techbedrijven.
FIDO2
In 2012 werd de FIDO Alliance in het leven geroepen door PayPal, Lenovo en een groep beveiligingsbedrijven waarvan je waarschijnlijk nooit hebt gehoord: Nok Nok Labs, Validity Sensors, Infineon en Agnitio. Die gingen aan de slag om een standaard te ontwikkelen voor zowel tweestapsverificatie als wachtwoordloos inloggen. Opvallend genoeg waren Google, Apple en Microsoft niet betrokken bij de oprichting van de Alliance, evenmin als Yubico, dat de Yubikey maakt en dat inmiddels een van de belangrijkste spelers is bij het populariseren van de standaard. Die bedrijven sloten zich later pas aan bij de groep, maar zijn inmiddels belangrijke kartrekkers.
De FIDO-standaard is een poging om authenticatiemethoden te standaardiseren, zodat niet iedere fabrikant met een eigen authenticatorapp of fysieke beveiligingssleutel een eigen authenticatiesysteem hoeft te bouwen. Je zou het eerdergenoemde piv-smartcardprotocol ermee kunnen vergelijken, maar FIDO is door de jaren heen uitgegroeid tot de de-factostandaard voor deze vorm van authenticatie. Of beter gezegd, dat is FIDO2, de opvolger van de oorspronkelijke standaard. FIDO2 maakt gebruik van publickeycryptografie; bij het koppelen van een securitysleutel wordt een sleutelpaar gemaakt en wordt de privésleutel aan het authenticatiemiddel gekoppeld om verbinding te maken met de publieke sleutel. Naast FIDO zijn er nog wat andere protocollen die je moet kennen, zoals WebAuthn en het Client-to-Authenticator-protocol. We zetten ze op een rij.
FIDO |
Staat voor Fast IDentity Online en is de overkoepelende term voor de manier waarop verschillende authenticatieprotocollen bij elkaar komen. FIDO is dus op zichzelf niets, maar is de verzamelnaam voor verschillende standaarden, specifiek UAF en U2F. FIDO is de eerste iteratie van de authenticatiestandaard. Later kwam daar FIDO2 bij, waardoor de originele FIDO-standaard amper meer wordt gebruikt. |
UAF |
Staat voor Universal Authentication Framework. Deze standaard zorgt ervoor dat een server een key pair kan genereren voor een door FIDO ondersteund apparaat. UAF wordt ook in FIDO2 nog ondersteund. |
U2F |
Staat voor Universal 2 Factor. U2F probeert tweestapsverificatie te standaardiseren. Dat gebeurt nog steeds met sommige oude U2F-sleutels. Veel websites, zoals Facebook en Dropbox, ondersteunen de standaard nog wel. U2F is echter achterhaald en moet op termijn worden vervangen door WebAuthn. U2F werd ontworpen door Google en Yubico, de maker van Yubikeys. |
FIDO2 |
Dit is de tweede iteratie van de authenticatiestandaard. De grootste verandering is dat FIDO2 twee nieuwe protocollen ondersteunt die wijdverspreid gebruikt worden, of beter gezegd, dat FIDO2 de verzamelnaam is geworden van die twee protocollen. Dat zijn WebAuthn en CTAP, of het Client to Authenticator Protocol. Ook is WebAuthn backwards compatible met U2F, zodat websitebouwers ook sleutels met die oude standaard nog ondersteunen. FIDO2 is de moderne standaard die momenteel het meest wordt gebruikt en staat ook aan de basis van de nieuwe plannen van Google, Microsoft en Apple. Waar U2F vooral bedoeld is om tweestapsverificatiemethoden te standaardiseren, is FIDO2 specifiek ontworpen om ook als eenzijdige login te kunnen werken. U2F is dus alleen voor die tweede factor, maar FIDO2 kan ook worden gebruikt voor wachtwoordloos inloggen. 'Kan' is daarbij wel het kernwoord, want dat gebeurt nog lang niet overal, maar daar vertellen we later meer over. |
WebAuthn |
WebAuthn is een standaard die niet door de Fido Alliance, maar door het World Wide Web Consortium is opgezet. Deze standaard is de kerncomponent van FIDO2 en als we het hebben over FIDO2, gaat het in de praktijk meestal over WebAuthn. WebAuthn is een api die softwaremakers zoals websitebouwers kunnen implementeren. Ze kunnen het dan gebruiken om authenticatiemiddelen met FIDO2-ondersteuning, zoals een Yubikey, aan te bieden als inlogmethode. |
Client to Authenticator Protocol |
Het Client to Authenticator Protocol, afgekort CTAP, regelt de communicatie tussen twee FIDO2-apparaten, zoals een webapp en een Yubikey. Dankzij CTAP kan een FIDO2-sleutel communiceren met de computer. Het ondersteunt daarvoor verschillende protocollen, zoals bluetooth, NFC en natuurlijk USB. |
Nu we een beetje snappen hoe die verschillende protocollen met elkaar verband houden, kunnen we kijken naar de manier waarop authenticatie op dit moment wordt ingezet en hoe de techbedrijven dat in de toekomst willen veranderen. Momenteel wordt FIDO2 al door veel software ondersteund. De kerncomponent, de WebAuthn-api, werkt inmiddels op 90 procent van alle browsers, voornamelijk de grote en moderne, met Samsungs mobiele browser als grootste uitzondering. Dat betekent dat je een beveiligingssleutel met FIDO2-ondersteuning kunt gebruiken in die browsers. Als je op Chrome inlogt met Google, accepteert die je Yubikey of je Solokey. Stel dat je zelf in je vrije avonduren je eigen beveiligingssleutel zou willen maken die geen FIDO2 of het oudere U2F ondersteunt, dan kun je die bijvoorbeeld niet koppelen aan Gmail. Op dat gebied is het goed dat de FIDO Alliance zo groot is en bijna een monopolie heeft op de beveiligingsstandaard; er zijn geen conflicterende protocollen.
Dat wil niet zeggen dat FIDO2 klaar is om alles en iedereen wachtwoordloos te maken. Een groot probleem is namelijk dat de WebAuthn-api zowel authenticatie als single-factor en multi-factor toestaat. Dat eerste gebeurt nog amper, in tegenstelling tot het tweede. Anders gezegd, je kunt FIDO2-sleutels wél gebruiken als tweestapsverificatie bij Dropbox en Facebook, maar niet als de enige verificatiemethode ofwel wachtwoordloos.
Van sleutel naar telefoon
We hebben het tot nu toe telkens over fysieke beveiligingssleutels. De Yubikey is daarvan het bekendste voorbeeld, maar zoals we eerder al schreven, zijn er veel van dergelijke sleutels in verschillende vormen, maten en prijzen. Nu denk je misschien: zo'n sleutel, dat heeft toch bijna niemand? Dat klopt en dat is precies het probleem dat Google, Apple en Microsoft nu willen oplossen. Voor de adoptie van wachtwoordloos inloggen moeten veel mensen een sleutel hebben, maar niemand koopt zo'n sleutel, omdat het toch bijna nergens wordt ondersteund. En natuurlijk speelt mee dat de sleutels duur en onhandig in het dagelijks gebruik zijn. Een Yubikey kost al snel 50 euro en als je hem verliest of vergeet mee te nemen naar je werk, heb je een probleem. De mobiele telefoon dan? Dat is de perfecte vervanger voor een sleutel. Het gros van de mensen draagt er dagelijks een bij zich. En niet onbelangrijk, er zijn niet zoveel verschillende besturingssystemen, dus met een samenwerking tussen drie bedrijven haal je een hoge dekkingsgraad.
Google probeert zoiets al een tijd. In 2019 kreeg Android 7 FIDO2-certificering. Kort daarna werd het mogelijk om een Android-toestel in te zetten als beveiligingssleutel. Gebruikers die inloggen op hun desktop, kunnen dan via een prompt op hun telefoon toestemming geven om in te loggen. Dat werkt alleen als vorm van tweestapsverificatie en niet als eenzijdige login. Volledig wachtwoordloos is het dus nog niet, maar het is niet moeilijk voor Google om dat later alsnog door te voeren.
Het plan van Google, Apple en Microsoft is dus om een telefoon of een ander apparaat in te zetten als authenticatiemethode. Een telefoon of zelfs een laptop kan daarmee dienen als vervanger van een Yubikey. Het idee is om dat niet alleen voor Google- en Apple-accounts beschikbaar te stellen, maar juist ook voor bijvoorbeeld Dropbox. Je zou daarmee straks op dezelfde manier bij Dropbox kunnen inloggen als je nu bij Google doet; je gaat naar Dropbox.com, vult je gebruikersnaam en wachtwoord in en daarna vraagt Dropbox je om een tweede factor voor authenticatie. Je krijgt dan op Android een pop-up met een bevestigingsverzoek.
Naast praktische voordelen, zoals dat je het vaker bij je draagt, heeft het nog andere voordelen om een telefoon te gebruiken. Een telefoon kun je bijvoorbeeld extra beveiligen met een pincode of biometrische authenticatie. Sommige fysieke beveiligingssleutels, zoals Feitians of de Yubikey Bio, kunnen dat ook.
Meer apparaten
Een puzzelstuk dat de techbedrijven wel nog moeten oplossen, is wat er gebeurt als je van apparaat wisselt of als een telefoon stukgaat of kwijtraakt. Ben je dan je authenticatiemethode helemaal kwijt? De FIDO2-standaard voorziet in dat probleem. Bij tweestapsverificatie met fysieke beveiligingssleutels is het een goed gebruik om een tweede sleutel te koppelen voor als de eerste niet beschikbaar is. Twee sleutels koppelen betekent echter dat je twee key pairs aanmaakt. Via een telefoon is het mogelijk een key pair te delen. Bij het aanmaken van een nieuw account op Dropbox wordt er een key pair aangemaakt voor Dropbox, waarvan een cryptografische sleutel op het toestel wordt opgeslagen. Die sleutels, voor alle verschillende accounts, zouden dan deelbaar kunnen zijn naar nieuwe apparaten. Hoe dat in de praktijk gebeurt, kunnen fabrikanten zelf invullen. Apple kondigde tijdens zijn ontwikkelaarsconferentie WWDC onlangs aan hoe het dat wil doen. Het bedrijf geeft Safari ondersteuning voor 'passkeys', een vorm van authenticatie op basis van de FIDO2-protocollen die worden opgeslagen in iCloud Keychain.
Lang niet iedereen heeft zo duidelijk voor ogen hoe dat eruit komt te zien. In de whitepaper van de FIDO Alliance over het plan worden geen technische voorschriften gegeven over hoe fabrikanten dat wisselen van FIDO-passkeys moeten regelen. Sterker nog, de Alliance erkent dat het delen van cryptografische passkeys 'misschien niet altijd mogelijk is, bijvoorbeeld als een gebruiker een nieuw apparaat van een andere fabrikant gebruikt dat niet wordt gesynchroniseerd met de andere apparaten'. In dat geval kan de gebruiker terugvallen op bluetooth om FIDO-sleutels over te zetten, maar hoe gaat dat? Daarvoor moeten in de praktijk nog nieuwe plannen worden gemaakt.
Tot slot
De plannen die Google, Apple en Microsoft nu hebben gepresenteerd, zijn een belangrijke stap naar wachtwoordloos inloggen. Via de FIDO2-standaard willen de bedrijven het mogelijk maken een telefoon in te zetten als een fysieke beveiligingssleutel. Van de andere kant, er wordt al jaren beloofd dat wachtwoordloos inloggen er nu echt aan zit te komen. De grootste technische hobbels daarvoor zijn inmiddels wel genomen; wachtwoordloos inloggen kan op een veilige manier. De gebruiksvriendelijkheid blijft echter nog achter. Er is bijvoorbeeld geen goede manier om iemand te helpen die zijn telefoon kwijtraakt. Ook moeten drie techbedrijven nu veel moeite doen om miljarden gebruikers zover te krijgen dat ze wachtwoordloos inloggen als normaal en veilig gaan zien. Dat is een zware klus. Of dat gaat lukken en wanneer hangt af van de manier waarop de bedrijven de implementatie gaan doorvoeren. Welke appjes komen er straks beschikbaar, welke UI- en UX-keuzes maken ze en hoe overtuig je gebruikers van de veiligheid? Die uitwerking is er nu nog niet en als de geschiedenis ons iets heeft geleerd, is het wel dat je authenticatieprotocollen niet zomaar implementeert.