Module 2 · 2.4
Passkeys en beveiligingssleutels
Module 2: Wachtwoorden en inloggen · Leestijd: 10 minuten
Leerdoel: Na deze les kun je uitleggen waarom passkeys en beveiligingssleutels phishingbestendig zijn, het verschil tussen gesynchroniseerde en apparaatgebonden passkeys benoemen en bepalen wanneer je ze inzet.
Kernbegrippen: passkey, FIDO2, WebAuthn, publieke en privésleutel, gebonden aan het domein, beveiligingssleutel, gesynchroniseerde passkey, apparaatgebonden passkey
Het probleem met alles wat je overtypt
In les 2.3 zag je dat een code uit een app of sms niet beschermt tegen een goede nepsite. Jij typt de code in op rnijnbank.example, de oplichter stuurt hem binnen een paar seconden door naar mijnbank.example en is binnen. Het zwakke punt is steeds hetzelfde: jij moet beoordelen of je op de echte site bent. Een mens die gehaast is of een overtuigende pagina ziet, maakt die fout vroeg of laat.
Passkeys en beveiligingssleutels halen die beslissing bij jou weg. Niet jij controleert het adres, maar je browser en je apparaat. En er is niets om over te typen of door te sturen.
Wat een passkey is
Een passkey is een inlogmiddel dat een wachtwoord vervangt. De FIDO Alliance, de organisatie achter de standaard, omschrijft het als een vervanging van het wachtwoord die je ontgrendelt op dezelfde manier als je apparaat: met je vingerafdruk, je gezicht of je pincode.
Technisch is een passkey een sleutelpaar:
- een privésleutel die op je apparaat blijft (of in je wachtwoordmanager, zie hieronder) en nooit naar de website gaat;
- een publieke sleutel die de website bewaart.
Wat met de privésleutel is ondertekend, kan de website met de publieke sleutel controleren. Maar met de publieke sleutel kun je zelf niets ondertekenen. Lekt de database van de website, dan heeft de aanvaller alleen publieke sleutels, en daar kan hij niet mee inloggen. Er is dus niets te kraken zoals bij de gelekte wachtwoorden uit les 2.1.
De techniek heet FIDO2. Het deel dat in je browser zit, is WebAuthn, een standaard van het W3C (het consortium dat webstandaarden maakt). Het deel tussen je computer en een losse beveiligingssleutel heet CTAP.
Zo gaat inloggen
- Op
mijnbank.examplekies je "Inloggen met passkey". - De website stuurt een willekeurige uitdaging: een getal dat maar één keer gebruikt wordt.
- Je browser geeft die uitdaging aan je apparaat, samen met het domein waarop je bent.
- Je apparaat vraagt je om te ontgrendelen: vinger, gezicht of pincode. Die controle gebeurt op je apparaat. Je vingerafdruk gaat nooit naar de website; de website hoort alleen dat de controle gelukt is.
- Je apparaat ondertekent de uitdaging met de privésleutel die bij
mijnbank.examplehoort. - De website controleert de handtekening met jouw publieke sleutel. Klopt hij, dan ben je binnen.
Waarom een passkey niet werkt op een nepsite
Bij het aanmaken wordt een passkey gekoppeld aan het domein van de website. In WebAuthn heet dat de Relying Party ID: de passkey hoort bij mijnbank.example (en eventueel zijn subdomeinen) en bij niets anders. De browser bepaalt welk domein er in het verzoek staat, niet de website. Een nepsite kan dat niet vervalsen.
Kom je via een phishingmail op https://rnijnbank.example of https://mijnbank.example.inlog-check.example, dan gebeurt dit:
- De nepsite vraagt om een passkey.
- Je browser zoekt een passkey voor dát domein. Die is er niet.
- Je krijgt een melding als "geen passkey voor deze site" of een lege keuzelijst.
Er is niets wat je per ongeluk kunt goedkeuren of overtypen. Zelfs als jij de nepsite niet doorhebt, werkt de passkey daar niet. Dat bedoelen we met phishingbestendig. NIST zegt het ook: phishingbestendigheid vraagt om cryptografische authenticatie; wachtwoorden, codes die je overtypt en goedkeuringsmeldingen zijn het niet.
Krijg je op een site waar je altijd met een passkey inlogt ineens alleen een wachtwoordveld, of de vraag om "even een code uit je app"? Dat is een waarschuwing. Kijk naar het adres.
Gesynchroniseerd of apparaatgebonden
Er zijn twee soorten passkeys. Het verschil zit in waar de privésleutel woont.
| Gesynchroniseerde passkey | Apparaatgebonden passkey | |
|---|---|---|
| Waar staat de privésleutel? | In een passkey-provider: de sleutelhanger van je besturingssysteem of je wachtwoordmanager, die hem versleuteld naar je andere apparaten kopieert | Op één apparaat, bijvoorbeeld een beveiligingssleutel, en kan daar niet af |
| Nieuwe telefoon? | De passkey komt mee als je inlogt bij je provider | Je moet op het nieuwe apparaat een nieuwe passkey maken |
| Toestel kwijt? | Geen probleem zolang je provider-account veilig is | Zonder reserve sta je buiten |
| Zwakke plek | Het account bij je provider: wie daar binnenkomt, heeft al je passkeys | Verlies; je hebt een reservesleutel nodig |
| Geschikt voor | Bijna alle gewone accounts | Beheerdersaccounts, hosting, domeinregistratie, bank, de provider-account zelf |
In de WebAuthn-standaard heet een gesynchroniseerde passkey een "multi-device credential". De FIDO Alliance noemt apparaatgebonden passkeys op een beveiligingssleutel de vorm met de hoogste zekerheid, en raadt een beveiligingssleutel ook aan als herstelmiddel als je de toegang tot je gesynchroniseerde apparaten kwijt bent.
Gebruik je gesynchroniseerde passkeys, bescherm dan het account van je provider extra goed: sterk wachtwoord, tweestapsverificatie, en het liefst zelf een beveiligingssleutel.
Beveiligingssleutels
Een beveiligingssleutel is een klein apparaatje dat je in een usb-poort steekt of tegen je telefoon houdt (NFC). Er staan apparaatgebonden passkeys op. Inloggen gaat door de sleutel aan te raken, vaak met een pincode van de sleutel zelf of een vingerafdruk op de sleutel.
Er zijn meerdere fabrikanten; let bij het kiezen op ondersteuning van FIDO2, de aansluiting die je nodig hebt (USB-A, USB-C, NFC) en of hij een pincode of vingerafdruk ondersteunt.
De belangrijkste regel: registreer altijd minstens twee sleutels. De tweede is je reservesleutel. Je koppelt hem bij elke dienst, net als de eerste, en bewaart hem op een andere plek, bijvoorbeeld thuis in een la of in een kluis. Raak je je dagelijkse sleutel kwijt, dan log je met de reserve in, verwijder je de verloren sleutel uit je accounts en koop je een nieuwe tweede. Een sleutel kun je niet kopiëren; dat is juist de bedoeling.
Inloggen op een andere computer
Je wilt op een laptop inloggen, maar je passkey staat op je telefoon. Dan biedt de browser vaak aan om een QR-code te tonen. Je scant die met je telefoon en ontgrendelt daar. De FIDO Alliance noemt dit cross-device authentication. De telefoon controleert via Bluetooth of hij echt in de buurt van de laptop is. Iemand die alleen een foto van de QR-code heeft, kan er dus niet op afstand mee inloggen.
Valkuilen en wanneer je ze inzet
Passkeys zijn een grote stap vooruit, maar niet magisch:
- Het wachtwoord blijft vaak bestaan. Veel diensten laten je naast de passkey nog met wachtwoord plus code inloggen. Een oplichter probeert dan die weg. Kan het, zet dan de oude inlogmanieren uit of maak het wachtwoord lang en uniek.
- Herstel is de zwakste schakel. Kan iemand met een "wachtwoord vergeten"-mail of een telefoontje naar de helpdesk je passkey omzeilen, dan is je account zo sterk als die herstelroute. Controleer welke herstelgegevens er staan (les 2.5).
- Niet elke dienst ondersteunt het. Gebruik dan een authenticator-app.
- Gedeelde accounts passen slecht bij passkeys op één persoonlijk toestel. Geef liever iedereen een eigen account met een eigen passkey (module 7).
- Een ontgrendeld toestel is een open deur. Bescherm je telefoon en laptop met een goede schermvergrendeling (module 5).
Waar begin je? Bij de accounts met de grootste schade als ze worden overgenomen: je mail, je wachtwoordmanager of passkey-provider, hosting en domeinregistratie, bank en boekhouding. Biedt een van die diensten passkeys of beveiligingssleutels, zet het daar als eerste aan.
Samenvatting
- Een passkey is een sleutelpaar: de privésleutel blijft bij jou, de website heeft alleen de publieke sleutel. Een lek bij de website geeft niets te kraken.
- De browser koppelt de passkey aan het echte domein. Op een nepsite is er geen passkey, dus is er niets te stelen of goed te keuren.
- Gesynchroniseerde passkeys gaan mee naar je andere apparaten; apparaatgebonden passkeys (beveiligingssleutel) blijven op één apparaat.
- Registreer altijd een reservesleutel en bewaar hem op een andere plek.
- Een passkey is zo sterk als de herstelroute en de oude inlogmanieren die nog openstaan.
Quiz
Opdracht
Opdracht D2.4: Je eerste passkey of beveiligingssleutel. Zoek uit welke van je belangrijkste accounts passkeys of beveiligingssleutels ondersteunen, stel er bij minstens één een in, en regel een reserve. Vink de checklist af en beantwoord de reflectievragen.
Opdracht D2.4: Je eerste passkey of beveiligingssleutel
Zo pak je het aan: (1) Kijk bij je belangrijkste accounts (mail, wachtwoordmanager of passkey-provider, hosting, domeinregistratie, bank, boekhouding) in de beveiligingsinstellingen of ze passkeys of beveiligingssleutels ondersteunen. (2) Kies per account: gesynchroniseerde passkey (in je besturingssysteem of wachtwoordmanager) of apparaatgebonden (beveiligingssleutel). Voor beheer van hosting, domeinen en je passkey-provider liefst een beveiligingssleutel. (3) Stel bij minstens één account een passkey of sleutel in. (4) Regel een reserve: een tweede sleutel geregistreerd en op een andere plek bewaard, of bij een gesynchroniseerde passkey een tweede apparaat en goede bescherming van je provider-account. (5) Kijk of de oude inlogmanier (wachtwoord met sms of code) nog aanstaat. Zet hem uit als het kan, of maak het wachtwoord lang en uniek. (6) Test eenmaal het inloggen op een tweede apparaat (bijvoorbeeld met de QR-code en je telefoon).
Je vinkjes en aantekeningen blijven alleen in deze browser; we sturen ze nergens heen. Ben je aangemeld, dan bewaren we in Mijn cursussen alleen dat je de opdracht gedaan hebt.
Verder lezen
- FIDO Alliance, Passkeys (Engels): https://fidoalliance.org/passkeys/
- W3C, Web Authentication Level 3 (Engels, de standaard): https://www.w3.org/TR/webauthn-3/
- passkeys.dev, Terms (Engels, begrippenlijst van leden van de FIDO Alliance en het W3C): https://passkeys.dev/docs/reference/terms/
- NIST SP 800-63B-4, onderdeel phishingbestendigheid en syncable authenticators (Engels): https://pages.nist.gov/800-63-4/sp800-63b.html
- NCSC, Hoe kies je een MFA methode?: https://www.ncsc.nl/multifactor-authenticatie/hoe-kies-je-een-mfa-methode
