Holder binding förklarat: varför ett kopierat intyg är värdelöst
Ett signerat intyg är en mycket bra kopia av sig självt. Den som får tag i ett har ett dokument med en giltig utfärdarsignatur, och en kontroll av signaturen säger utan vidare att det är äkta. Holder binding är den del som täpper till den luckan: den binder intyget till en nyckel som bara en person kan använda, så att det krävs mer för att visa upp det än att bara ha det.
Den här sidan är versionen på vanlig svenska. Den går igenom vad bindningen faktiskt är, när den skapas, hur de två europeiska formaten gör det var för sig, och den del de flesta förklaringar hoppar över: vad holder binding fortfarande inte säger en verifierare.
Problemet det löser
Digitala dokument kan kopieras perfekt. Ett foto av ett pass är en dålig förfalskning eftersom papper har fysiska kännetecken som en fotokopia förlorar, men ett signerat intyg har inget sådant kännetecken. Kopiera filen och kopian verifieras precis lika bra som originalet, eftersom utfärdarsignaturen täcker innehållet och innehållet inte har ändrats.
En verifierare som bara kontrollerar utfärdarsignaturen svarar alltså på fel fråga. Den har fått veta att uppgifterna är äkta. Den har inte fått veta något om huruvida parten framför den har rätt till dem, och det är oftast just det den behövde veta.
Uppgifterna
De fakta intyget anger: ett namn, ett födelsedatum, en körkortsbehörighet, ett organisationsnummer. Det är den del alla föreställer sig när de tänker på ett intyg.
Utfärdarsignaturen
Bevis på att uppgifterna kom från utfärdaren och inte har ändrats sedan dess. Den säger ingenting alls om vem som har dem nu.
Innehavarens publika nyckel
Delen som står för bindningen. Utfärdaren skriver in innehavarens publika nyckel i det signerade intyget, så att intyget nu anger vilken nyckel som får visa upp det.
När bindningen skapas och när den används
Bindningen skapas en gång, vid utfärdandet, och den används varje gång intyget visas upp. Innehavaren ser inget av den utöver den upplåsning de redan väntar sig.
1. Plånboken skapar en nyckel
Innan den ber om något skapar plånboken ett nytt nyckelpar i telefonens egen säkra hårdvara. Den privata halvan kan inte läsas ut igen, inte ens av plånboksappen.
2. Utfärdaren skriver in den
Plånboken skickar den publika halvan med sin begäran och bevisar att den har den privata. Utfärdaren lägger in den publika nyckeln i intyget innan det signeras.
3. En verifierare frågar
Begäran innehåller ett nytt slumpvärde och anger vem som frågar, så att svaret bara kan användas en gång och bara av den part som bad om det.
4. Plånboken signerar
Plånboken signerar svaret med den privata nyckeln, oftast efter ett fingeravtryck eller en PIN-kod. Verifieraren kontrollerar signaturen mot nyckeln i intyget.
Var den privata nyckeln faktiskt finns
Bindningen är aldrig bättre än hur svårt det är att använda nyckeln utan innehavaren. Därför skapar plånböcker de här nycklarna i dedikerad hårdvara, det säkra elementet eller motsvarande som även skyddar telefonens betaluppgifter, i stället för att lagra dem som en fil som operativsystemet kan lämna ut till vilken app som helst som frågar.
Inget av detta kan en verifierare se i själva uppvisningen. En signatur bevisar att nyckeln användes, inte att den förvarades väl. Om nyckeln verkligen sitter i certifierad hårdvara är en separat garanti, som bärs av de attesteringar en plånbok visar för en utfärdare innan den får något, och enligt de europeiska reglerna är det just därför plånboks- och nyckelattestering finns.
Holder binding svarar på
Skapades det här svaret av nyckeln som intyget utfärdades till, för den här begäran, nyss?
Nyckelattestering svarar på
Förvaras nyckeln någonstans där en angripare inte kan få ut den? En annan fråga, andra bevis, avgjort vid utfärdandet.
Hur de två europeiska formaten gör det
Idén är densamma i båda formaten som den europeiska plånboken bygger på. Mekaniken skiljer sig, vilket spelar roll för den som implementerar en verifierare och för nästan ingen annan.
SD-JWT VC
Utfärdaren lägger innehavarens publika nyckel i ett bekräftelsefält i det signerade intyget. Vid uppvisning lägger plånboken till en liten separat token, signerad med den privata nyckeln, som täcker verifierarens identitet och det slumpvärde som kom med begäran. En verifierare som ignorerar den token har kontrollerat utfärdaren och inget annat.
Läs definitionenmdoc
Enhetsnyckeln anges i det signerade objekt som skyddar dataelementen, och telefonen signerar utskriften av den session den ingår i. Eftersom utskriften täcker utbytet mellan de två enheterna kan en inspelning av en uppvisning inte spelas upp igen i en annan, och det är det som gör en offlinekontroll vid vägkanten eller en dörr säker.
Läs definitionenEn plånbok i det europeiska ekosystemet bär i regel samma intyg i båda formaten och lämnar över det som motparten förstår, så en organisation som tar emot intyg måste kunna kontrollera bindningen i båda.
Vad holder binding inte bevisar
Holder binding bevisar kontroll över en nyckel. Det bevisar inte vem som håller i telefonen. Den som har fått enheten och PIN-koden skapar exakt samma giltiga svar som den rättmätiga innehavaren, och ingen mängd kryptografi i intyget kan se skillnaden.
Det säger heller ingenting om hur noggrant utfärdaren kontrollerade identiteten före utfärdandet. Ett intyg bundet till en nyckel är ändå bara så pålitligt som den process som skapade det, och det är det Level of Assurance finns till för att beskriva. Att binda ett svagt utfärdat intyg mycket starkt till en nyckel gör inte uppgifterna i det mer sanna.
Sammantaget är arbetsfördelningen ganska tydlig. Holder binding stoppar återuppspelning och kopiering, upplåsningen av plånboken knyter nyckeln till en närvarande människa, Level of Assurance beskriver hur väl den människan identifierades, och en betrodd lista anger vilka utfärdare du över huvud taget godtar. En verifierare som vill ha ett verkligt svar behöver alla fyra, inte bara den som följer med intyget på köpet.
Vad detta betyder för dig
Utfärdare
Dina intyg blir oanvändbara för den som stjäl en kopia, vilket tar bort en hel kategori av bedrägerier som du annars skulle behöva upptäcka i efterhand. Priset är att du måste vara redo att återutfärda när en innehavare byter enhet.
Verifierare
Kontrollera bindningen, inte bara utfärdarsignaturen. Skicka ett nytt slumpvärde med varje begäran och avvisa ett svar som inte signerar det, annars kan en inspelad uppvisning spelas upp mot dig senare.
Plånboksinnehavare
Inget att hantera och en sak att känna till: dina intyg är knutna till den här enheten, så en ny telefon betyder att du hämtar dem på nytt i stället för att återställa dem från en säkerhetskopia.
Relaterade begrepp
Vanliga frågor
Är holder binding samma sak som key binding eller device binding?
I praktiken ja, och de olika orden kommer från olika specifikationer snarare än från någon skillnad i betydelse. Holder binding är egenskapen: det här intyget tillhör den här innehavaren. Key binding är namnet SD-JWT VC-världen använder för mekanismen, och ISO-sidan talar om device binding eller device authentication eftersom nyckeln sitter i en viss telefon. Om ett dokument använder någon av termerna, läs den som samma idé sedd från en annan vinkel.
Bevisar holder binding att personen som visar upp intyget är den det gäller?
Nej, och det är den i särklass vanligaste missuppfattningen. Det bevisar att den som skapade svaret kontrollerar nyckeln som intyget utfärdades till. Om människan som håller i telefonen är den person uppgifterna beskriver beror på hur plånboken låses upp, hur noggrant utfärdaren kontrollerade identiteten från början, och om innehavaren har lämnat enheten och PIN-koden till någon annan. För en kontroll med högt värde kombinerar du bindningen med en plånbok som kräver biometri och med ett intyg utfärdat på en Level of Assurance som motsvarar risken.
Vad händer med ett bundet intyg när innehavaren skaffar ny telefon?
Det följer inte med. Hela poängen med att hålla den privata nyckeln i säker hårdvara är att den inte kan exporteras, så ett intyg bundet till den gamla telefonen kan inte återställas på den nya och förväntas fungera. Den nya enheten skapar en egen nyckel och intyget utfärdas på nytt till den. Planera för återutfärdande som en normal och vanlig händelse snarare än ett undantag, för dina användare är det helt enkelt dagen då de bytte telefon.
Finns det intyg utan holder binding?
Ja, och de fyller sin funktion. Ett intyg utan holder binding är ett innehavarintyg: den som visar upp det får nyttan, som med en pappersbiljett. Det är en rimlig avvägning för något med lågt värde och kort livslängd, där kostnaden för att en kopia återanvänds är liten och du helst inte vill be innehavaren låsa upp något. Det är fel val för identitet, behörigheter och allt som en bedragare skulle tycka var värt att återanvända.
Källor
- IETF SD-JWT-based Verifiable Digital Credentials (SD-JWT VC), fortfarande ett utkast
- OpenID for Verifiable Credential Issuance, om bevis på nyckelinnehav vid utfärdande
- OpenID for Verifiable Presentations, om att binda ett svar till en enda begäran
- ISO/IEC 18013-5, om enhetsautentisering för mobila dokument
Den här sidan är informativ och utgör inte juridisk rådgivning. Se specifikationerna direkt för den auktoritativa formuleringen.