Beveiliging
Zo gebouwd dat er weinig te halen valt.
Alles op deze pagina beschrijft hoe YourID vandaag echt werkt — ook wat nog niet af is.
Laatst bijgewerkt: 1 oktober 2026
- opgeslagen wachtwoorden
- 0opgeslagen wachtwoorden
- geldigheid van een e-mailcode
- 10 mingeldigheid van een e-mailcode
- geldigheid van een inlogcode voor een dienst
- 60 sgeldigheid van een inlogcode voor een dienst
- maximaal verbonden op één inlog
- 30 dagenmaximaal verbonden op één inlog
Zo reist een inlog
Je geheim blijft thuis. Alleen bewijs reist.
Als een dienst vraagt “wie is dit?”, doen er drie partijen mee. Kijk wat er tussen hen beweegt — en wat nooit.
Jouw apparaat
Gaat nooit weg
- Privésleutel van je passkey
- Gezicht, vingerafdruk of pincode
YourID
- Alleen de publieke sleutel
- E-mailcodes, gehasht
- Ondertekeningssleutel, versleuteld
- Database in de EU (Ierland)
De dienst
winkel.voorbeeld.nl
- Alleen wat jij goedkeurt
- Ondertekend door YourID
Gegevens
Wat we bewaren. Wat we nooit hebben.
De veiligste gegevens zijn gegevens die we niet hebben. Dit staat er, volledig, in onze database.
Wat we opslaan
Je e-mailadres
Om je account te vinden en inlogcodes te sturen.
De publieke sleutels van je passkeys
Daarmee controleer je een handtekening, maar je kunt er geen zetten.
E-mailcodes — als hash
Tien minuten geldig; we kunnen een code controleren, niet teruglezen.
Refresh-tokens en app-geheimen — als hash
Waardeloos voor wie de database kopieert.
Welke diensten je hebt gekoppeld
En precies wat elke dienst van je mag zien.
Inlogsessies en een activiteitenlog
Met browser en IP-adres, zodat jij ze kunt zien en overal kunt uitloggen.
Profielgegevens die je zelf toevoegt
Er wordt niets gedeeld zonder jouw akkoord.
Wat we nooit opslaan
Wachtwoorden
Die zijn er niet. Niets te raden, te hergebruiken of te lekken.
De privésleutel van je passkey
Die blijft op je apparaat of in de passkey-synchronisatie van je eigen platform.
Je gezicht of vingerafdruk
Dat controleert je apparaat zelf. Wij horen alleen dát de controle slaagde.
Leesbare inlogcodes of tokens
Alleen hun SHA-256-hash.
De ondertekeningssleutel in leesbare vorm
Die staat versleuteld opgeslagen met AES-256-GCM.
Identiteitsdocumenten
Documentverificatie is nog niet live, dus er wordt helemaal geen document verwerkt.
Bescherming
Twaalf dingen die het werk doen.
Elk in gewone taal — met de technische naam eronder, voor ontwikkelaars die het willen nagaan.
Geen wachtwoorden
Je logt in met een passkey, dus er is geen wachtwoord om te phishen, raden of hergebruiken.
WebAuthn / FIDO2-passkeys
Het moet jou zijn
Elke inlog met een passkey vraagt je gezicht, vingerafdruk of pincode, en onze server controleert dat dat gebeurd is.
User verification (UV) server-side afgedwongen
Challenges werken één keer
Elke inlog-challenge is één keer bruikbaar en verloopt na vijf minuten.
Eenmalige WebAuthn-challenges · 5 min TTL
E-mailcodes, ingeperkt
Codes staan gehasht opgeslagen, verlopen na 10 minuten, geven 5 pogingen, en een nieuwe code maakt de oude ongeldig.
SHA-256 · timing-safe vergelijking · rate limits per IP en per adres
Sessies die je kunt beëindigen
Je sessie is een ondertekend token met een record op de server, duurt hooguit 7 dagen, en je kunt overal tegelijk uitloggen.
Ondertekende HttpOnly-cookie + intrekbare sessierij
Standaard inloggen voor diensten
Diensten koppelen via de open standaard, en elk verzoek moet vergrendeld zijn met een eenmalig bewijs.
OpenID Connect · authorization code flow · PKCE S256 verplicht
Exacte terugkeeradressen
We sturen je alleen terug naar een adres dat de dienst vooraf heeft geregistreerd, letter voor letter.
Exacte redirect-URI-match · alleen https (localhost uitgezonderd)
Inlogcodes verlopen snel
De code die een dienst inwisselt werkt één keer, binnen 60 seconden. Een tweede poging trekt in wat al was uitgegeven.
Eenmalige auth codes · 60 s TTL · replay trekt tokens in
Antwoorden zijn ondertekend
Diensten kunnen controleren dat een antwoord van YourID komt en onderweg niet is aangepast.
RS256-ondertekende ID-tokens · gepubliceerde JWKS
Langer verbonden, veilig vernieuwd
Bij elke vernieuwing wordt het token ingeruild voor een nieuw; duikt een oud token weer op, dan vervalt de hele keten. Hooguit dertig dagen.
Refresh-token-rotatie · hergebruikdetectie · vaste levensduur van 30 dagen per familie
Toestemming telt nú
Een dienst krijgt alleen wat jij op dit moment toestaat. Trek je toestemming in, dan werken bestaande tokens niet meer.
Effectieve scope = tokenscope ∩ huidige toestemming
Sleutels op slot, database dicht
Onze ondertekeningssleutel is versleuteld, app-geheimen zijn gehasht, en de EU-database antwoordt alleen onze eigen servers.
AES-256-GCM · gehashte client secrets · RLS op elke tabel, zonder policies
Dreigingen
Aanvallen, en wat ze tegenhoudt.
Geen enkel systeem is onkraakbaar. Dit zijn de aanvallen waartegen we hebben ontworpen, en het mechanisme dat op elk ervan antwoordt.
De aanval
Phishing
Een nepsite die precies op YourID lijkt, vraagt je in te loggen.
Wat het tegenhoudt
Een passkey is gebonden aan het echte domein van YourID. Je apparaat gebruikt hem niet op een lookalike, en onze server weigert handtekeningen voor elke andere herkomst.
WebAuthn RP ID + origin-binding
De aanval
Een gestolen database
Iemand bemachtigt een volledige kopie van onze gegevens.
Wat het tegenhoudt
Er zijn geen wachtwoorden om te kraken. Met publieke sleutels kan niemand inloggen, en codes, tokens en geheimen staan alleen als hash opgeslagen.
Public-key-credentials · SHA-256-hashes · versleutelde ondertekeningssleutel
De aanval
Een gestolen refresh-token
Een aanvaller kopieert het token waarmee een dienst verbonden blijft.
Wat het tegenhoudt
Tokens wisselen bij elk gebruik. Duikt een oud token weer op, dan wordt de hele familie ingetrokken — en geen enkele leeft langer dan 30 dagen.
Rotatie + hergebruikdetectie
De aanval
Een onderschepte code
Iemand vangt de eenmalige code op weg terug naar de dienst.
Wat het tegenhoudt
Zonder het geheime bewijs dat alleen de echte dienst heeft, is de code waardeloos. Hij verloopt na 60 seconden en werkt maar één keer.
PKCE S256 · eenmalige codes van 60 s
De aanval
Een nep-“bank”-app
Een kwaadwillende app registreert zich onder een betrouwbaar klinkende naam.
Wat het tegenhoudt
Het toestemmingsscherm toont altijd naar welke website je teruggaat, en apps van externe ontwikkelaars krijgen het label “Unverified app”.
Bestemming zichtbaar · niet-geverifieerd-label · exacte redirect-URI's
De aanval
Clickjacking
Een andere site verstopt ons toestemmingsscherm in een onzichtbaar frame om je klik te stelen.
Wat het tegenhoudt
Geen enkele YourID-pagina kan binnen een andere website worden getoond.
CSP frame-ancestors 'none' · X-Frame-Options: DENY · HSTS
De aanval
Een e-mailcode raden
Een script probeert code na code.
Wat het tegenhoudt
Vijf pogingen per code, tien minuten om hem te gebruiken, en limieten per netwerkadres en per e-mailadres.
Pogingenteller · rate limits in de database (fail closed)
Eerlijke status
Waar we vandaag staan.
Beveiligingspagina's noemen meestal alleen sterke punten. Dit moet je ook weten.
YourID is in besloten bèta
We laten mensen geleidelijk toe en veranderen nog dingen.
Nog geen onafhankelijke audit
Er is nog geen externe beveiligingsaudit of penetratietest geweest. We zijn van plan er een te laten uitvoeren voordat YourID algemeen beschikbaar wordt.
Documentverificatie is nog niet live
We kunnen identiteitsdocumenten nog niet controleren. Tot dat kan, wordt er geen enkel document verwerkt.
Responsible disclosure
Iets gevonden? Laat het ons weten.
Vind je een kwetsbaarheid, mail ons dan. Onderzoek te goeder trouw is hier welkom.
- We bevestigen meldingen binnen 48 uur.
- We ondernemen geen juridische stappen tegen onderzoek te goeder trouw.
Probeer het zelf.
Doe mee aan de bèta, log in met een passkey en zie op je eigen scherm wat een dienst te zien krijgt.