Holder binding uitgelegd: waarom een gekopieerde credential waardeloos is
Een ondertekende credential is een uitstekende kopie van zichzelf. Wie er een in handen krijgt, heeft een document met een geldige handtekening van de uitgever, en wie die handtekening controleert, krijgt keurig te horen dat het echt is. Holder binding dicht dat gat: het koppelt de credential aan een sleutel die maar één persoon kan gebruiken, zodat bezit alleen niet genoeg is om hem te tonen.
Dit is de versie in gewone taal. Ze behandelt wat de koppeling precies is, wanneer die ontstaat, hoe de twee Europese credentialformaten het elk aanpakken, en het deel dat de meeste uitleg overslaat: wat holder binding een verifier nog steeds niet vertelt.
Het probleem dat het oplost
Digitale documenten laten zich perfect kopiëren. Een foto van een paspoort is een slechte vervalsing, omdat papier fysieke kenmerken heeft die een kopie verliest, maar een ondertekende credential heeft zo’n verraderlijk kenmerk niet. Kopieer het bestand en de kopie verifieert precies zo goed als het origineel, want de handtekening van de uitgever dekt de inhoud en de inhoud is niet veranderd.
Een verifier die alleen de handtekening van de uitgever controleert, beantwoordt dus de verkeerde vraag. Hij weet nu dat de gegevens echt zijn. Hij weet niets over de vraag of de partij tegenover hem er recht op heeft, en dat is meestal precies wat hij moest weten.
De gegevens
De feiten die de credential vermeldt: een naam, een geboortedatum, een rijbewijscategorie, een KvK-nummer. Dit is het deel waar iedereen aan denkt bij een credential.
De handtekening van de uitgever
Bewijs dat die feiten van de uitgever komen en sindsdien niet zijn gewijzigd. Het zegt helemaal niets over wie ze nu bij zich heeft.
De publieke sleutel van de houder
Het onderdeel dat de koppeling maakt. De uitgever schrijft de publieke sleutel van de houder in de ondertekende credential, zodat de credential nu de sleutel noemt die hem mag tonen.
Wanneer de koppeling ontstaat en wanneer ze wordt gebruikt
De koppeling wordt één keer gemaakt, bij de uitgifte, en wordt elke keer gebruikt als de credential wordt getoond. De houder merkt er niets van, behalve de ontgrendelprompt die hij toch al verwacht.
1. De wallet maakt een sleutel
Voordat de wallet iets aanvraagt, maakt hij een nieuw sleutelpaar aan in de eigen beveiligde hardware van de telefoon. De private helft is niet uit te lezen, zelfs niet door de wallet-app.
2. De uitgever schrijft hem erin
De wallet stuurt de publieke helft mee met zijn aanvraag en bewijst dat hij de private helft bezit. De uitgever zet die publieke sleutel in de credential voordat hij die ondertekent.
3. Een verifier vraagt
Het verzoek bevat een nieuwe willekeurige waarde en zegt wie er vraagt, zodat het antwoord maar één keer bruikbaar is, en alleen voor de partij die erom vroeg.
4. De wallet ondertekent
De wallet ondertekent het antwoord met de privésleutel, meestal na een vingerafdruk of PIN. De verifier controleert die handtekening met de sleutel in de credential.
Waar de privésleutel echt staat
De koppeling is nooit sterker dan hoe moeilijk het is om de sleutel zonder de houder te gebruiken. Daarom maken wallets deze sleutels aan in speciale hardware, het secure element of iets vergelijkbaars dat ook de betaalgegevens van de telefoon beschermt, in plaats van ze op te slaan als bestand dat het besturingssysteem aan elke app kan geven die erom vraagt.
Een verifier kan daar in de presentatie zelf niets van zien. Een handtekening bewijst dat de sleutel is gebruikt, niet dat hij goed bewaard is. Of de sleutel echt in gecertificeerde hardware zit, is een aparte zekerheid, die wordt gedragen door de attestaties die een wallet aan een uitgever toont voordat hij iets krijgt. Onder de Europese regels is dat precies waar wallet- en key-attestatie voor bestaan.
Holder binding beantwoordt
Is dit antwoord zojuist, voor dit verzoek, gemaakt met de sleutel waarvoor deze credential is uitgegeven?
Key-attestatie beantwoordt
Staat die sleutel op een plek waar een aanvaller hem niet uit kan halen? Andere vraag, ander bewijs, bepaald bij de uitgifte.
Hoe de twee Europese formaten het doen
Het idee is hetzelfde in beide formaten waarop de Europese wallet is gebouwd. De techniek verschilt, en dat is van belang voor wie een verifier bouwt en voor vrijwel niemand anders.
SD-JWT VC
De uitgever zet de publieke sleutel van de houder in een confirmation claim binnen de ondertekende credential. Bij het tonen voegt de wallet een klein, apart token toe, ondertekend met de privésleutel, dat de identiteit van de verifier en de willekeurige waarde uit het verzoek afdekt. Een verifier die dat token negeert, heeft de uitgever gecontroleerd en verder niets.
Lees de definitiemdoc
De apparaatsleutel staat in het ondertekende object dat de data-elementen beschermt, en de telefoon ondertekent het verloop van de sessie waarin hij zit. Omdat dat verloop de uitwisseling tussen de twee apparaten omvat, kan een opname van de ene presentatie niet in een andere worden hergebruikt. Daardoor is een offline controle langs de weg of bij een deur veilig.
Lees de definitieEen wallet in het Europese ecosysteem heeft doorgaans dezelfde attestatie in beide formaten bij zich en geeft de versie die de andere kant spreekt. Een organisatie die credentials accepteert, moet de koppeling dus in allebei kunnen controleren.
Wat holder binding niet bewijst
Holder binding bewijst controle over een sleutel. Het bewijst niet wie de telefoon vasthoudt. Iemand die het toestel en de PIN heeft gekregen, geeft precies hetzelfde geldige antwoord als de rechtmatige houder, en geen enkele cryptografie in de credential ziet het verschil.
Het zegt ook niets over hoe goed de uitgever de identiteit heeft gecontroleerd vóór de uitgifte. Een credential die aan een sleutel is gekoppeld, is nog steeds maar zo betrouwbaar als het proces waarmee hij is gemaakt, en dat is wat een Level of Assurance beschrijft. Een zwak uitgegeven credential heel sterk aan een sleutel koppelen, maakt de gegevens erin niet waarder.
Naast elkaar gelegd is de taakverdeling helder. Holder binding stopt hergebruik en kopiëren, het ontgrendelen van de wallet koppelt de sleutel aan een aanwezig mens, het Level of Assurance beschrijft hoe goed die mens is geïdentificeerd, en een trusted list bepaalt welke uitgevers je überhaupt accepteert. Een verifier die een echt antwoord wil, heeft ze alle vier nodig, niet alleen de ene die gratis met de credential meekomt.
Wat dit voor u betekent
Uitgever
Je credentials zijn niets meer waard voor wie er een kopie van steelt. Dat schrapt een hele categorie fraude die je anders achteraf zou moeten opsporen. De prijs is dat je klaar moet staan om opnieuw uit te geven zodra een houder van toestel wisselt.
Verifier
Controleer de koppeling, niet alleen de handtekening van de uitgever. Stuur bij elk verzoek een nieuwe willekeurige waarde mee en weiger een antwoord dat die niet ondertekent, anders kan een opgenomen presentatie later opnieuw bij je worden afgespeeld.
Wallethouder
Niets te beheren, en één ding om te weten: je credentials zijn aan dit toestel gekoppeld, dus bij een nieuwe telefoon vraag je ze opnieuw aan in plaats van ze uit een back-up terug te zetten.
Gerelateerde begrippen
Veelgestelde vragen
Is holder binding hetzelfde als key binding of device binding?
In de praktijk wel. De verschillende woorden komen uit verschillende specificaties, niet uit een verschil in betekenis. Holder binding is de eigenschap: deze credential hoort bij deze houder. Key binding is de naam van het mechanisme in de SD-JWT VC-wereld, en aan de ISO-kant spreekt men van device binding of device authentication, omdat de sleutel in een specifieke telefoon zit. Gebruikt een document een van deze termen, lees het dan als hetzelfde idee vanuit een andere hoek.
Bewijst holder binding dat degene die de credential toont ook de persoon is over wie hij gaat?
Nee, en dit is verreweg het meest voorkomende misverstand. Het bewijst dat wie het antwoord heeft gemaakt, de sleutel beheert waarvoor de credential is uitgegeven. Of de persoon die op de telefoon tikt ook de persoon is die de gegevens beschrijven, hangt af van hoe de wallet wordt ontgrendeld, hoe zorgvuldig de uitgever de identiteit vooraf heeft gecontroleerd en of de houder het toestel en de PIN aan iemand anders heeft gegeven. Voor een controle met veel op het spel combineer je de koppeling met een wallet die biometrie vereist en met een credential die is uitgegeven op een Level of Assurance dat bij het risico past.
Wat gebeurt er met een gekoppelde credential als de houder een nieuwe telefoon krijgt?
Die verhuist niet mee. Het hele punt van de privésleutel in beveiligde hardware bewaren is dat hij niet te exporteren is, dus een credential die aan de oude telefoon gekoppeld is, kun je niet op de nieuwe terugzetten en verwachten dat hij werkt. Het nieuwe toestel maakt een eigen sleutel aan en de credential wordt daarvoor opnieuw uitgegeven. Reken op heruitgifte als een normale, frequente gebeurtenis en niet als uitzondering, want voor je gebruikers is het gewoon de dag dat ze een nieuwe telefoon namen.
Bestaan er credentials zonder holder binding?
Ja, en die hebben hun plek. Een credential zonder holder binding is een bearer credential: wie hem toont, krijgt het voordeel, net als bij een papieren kaartje. Dat is een redelijke afweging voor iets met weinig waarde en een korte looptijd, waar de schade van een hergebruikte kopie klein is en je de houder liever niets laat ontgrendelen. Het is de verkeerde keuze voor identiteit, rechten en alles wat een fraudeur de moeite waard vindt om te hergebruiken.
Bronnen
- IETF SD-JWT-based Verifiable Digital Credentials (SD-JWT VC), nog een draft
- OpenID for Verifiable Credential Issuance, over het bewijs van sleutelbezit bij de uitgifte
- OpenID for Verifiable Presentations, over het koppelen van een antwoord aan één verzoek
- ISO/IEC 18013-5, over device authentication voor mobiele documenten
Deze pagina is informatief en vormt geen juridisch advies. Raadpleeg voor de gezaghebbende formulering rechtstreeks de specificaties.