Vad är verifiable credentials baserade på SD-JWT?

Av Natalia Moskaleva den 22 januari 2026

7 min lästid

SD-JWT VC

Verifierbara intyg förändrar det digitala identitetsområdet och kommer snart att bli en del av vårt dagliga liv.

I Europa föreskriver den nya eIDAS 2.0-förordningen att en EU Digital Identity Wallet (EUDI Wallet) ska skapas för hantering av verifierbara intyg. Det innebär att alla EU:s medlemsländer måste tillhandahålla en digital identitetsplånbok till intresserade medborgare senast 2026. Som ett resultat av detta åtagande utvecklas de relevanta standarderna och tekniska specifikationerna snabbt.

Här kommer SD-JWT-standarden och dess tillämpning i SD-JWT-baserade verifierbara intyg.

JWT och SD-JWT: Förstå skillnaden

Om du har arbetat med identitets- och autentiseringssystem tidigare har du förmodligen stött på JSON Web Tokens (JWTs). JWT har blivit standarden för traditionell webbautentisering: De är allmänt vedertagna, enkla att använda och tillförlitliga.

En begränsning med JWT:er är dock att all information som de innehåller i JWT-anspråk delas med den som tar emot dem. Behovet av en mer integritetsskyddande lösning ledde till utvecklingen av ett nytt SD J WT-format (Selective Disclosure JWT). Till skillnad från traditionella JWT:er är SD-JWT:er utformade för att endast avslöja nödvändig information.

JWT_and_SD-JWT

Vad är selektivt avslöjande?

Selektivt avslöjande låter individer bestämma vilken information de vill avslöja för en tredje part. Detta skiljer sig från standardmetoder där alla uppgifter måste lämnas ut på en gång.

Bilden ovan illustrerar denna skillnad genom att jämföra den traditionella JWT och SD-JWT: i SD-JWT är påståendena hashade och därför dolda, vilket kräver ytterligare information för att komma åt dem, en i taget. (Vi ska se hur detta uppnås längre fram).

Selektivt utlämnande ger större integritet och kontroll över personuppgifter. Det är i linje med nya integritetsbestämmelser och passar väl in i den decentraliserade identitetsmodellen, som ger individer större självbestämmande över sina personuppgifter.

SD-JWT-baserade verifierbara intyg

SD-JWT-based Verifiable Credentials (SD-JWT VC) är ett nyutvecklat format för att uttrycka verifierbara intyg, baserat på SD-JWT-standarden som vi just diskuterade.

Dess främsta egenskap är möjligheten att möjliggöra selektivt utlämnande. Detta gör det möjligt för legitimationsinnehavare - personer som innehar eller använder digitala legitimationshandlingar - att endast dela specifik information, istället för att tvingas avslöja alla uppgifter som finns i en verifierbar legitimationshandling.

Användningen av selektivt avslöjande i SD-JWT VC är frivillig: Formatet kan också användas utan några påståenden om selektivt avslöjande.

Kolla in vår ordlista för verifierbara refer enser om du är ny i ämnet. Där förklaras modellen Issuer-Holder-Verifier och andra termer som används i den här artikeln.

Issuer-Holder-Verifier-Model

Hur det fungerar: en kort teknisk översikt

Kort sagt, när en SD-JWT VC utfärdas till en innehavare, inkluderar en utfärdare endast de hashade anspråksvärdena i den signerade delen av legitimationen. Sedan bifogas klartextformerna för alla dolda anspråk, så kallade Disclosures, till den signerade delen av SD-JWT.

När innehavaren presenterar information för en kontrollant kan denne välja vilka anspråk som ska avslöjas och endast inkludera motsvarande upplysningar i en SD-JWT som tillhandahålls kontrollanten. Verifieraren verifierar hashes och signaturen för att bekräfta att alla avslöjade påståenden ursprungligen var en del av den JWT som undertecknats av utfärdaren. Verifieraren får dock inte tillgång till några anspråksvärden som inte ingår i de tillhandahållna Upplysningarna.

Låt oss nu ta en närmare titt på hur den här processen fungerar.

Utfärdande av en SD-JWT VC

1. Skapande av JWT-anspråk: Utfärdaren börjar med att skapa JWT-anspråk med personuppgifter som ska ingå i en legitimation som utfärdas till Innehavaren. Anspråken kan se ut på följande sätt:

{
  "firstname": "Alice",
  "lastname": "Doe",
  "ssn": "197802020575",
  "id": "1234"
}

2. Skapande av upplysningar: Utfärdaren väljer vilka av anspråken som är berättigade till selektivt utlämnande (eller väljer inte några om selektivt utlämnande inte krävs av användningsfallet). Varje kvalificerat anspråk omvandlas till en Disclosure genom att sammanfoga attributnamnet och värdet och prefixera det med ett salt: salt + attributnamn + värde. Saltet förhindrar att angripare kan gissa sig till värden i klartext via ordboksattacker.

Resultatet läggs in i en JSON-array. Om t.ex. förnamn, efternamn och ssn är avsedda för selektivt utlämnande kan resultatet se ut så här:

["6403945e2c0a34a4","firstname","Alice"]
["06cbb1a51984f444","lastname","Doe"]
["f3e080eb88b5f735","ssn","197802020575"]

Observera att vi inte lägger till Disclosure för "id"-anspråket: Detta innebär att "id"-anspråket alltid kommer att vara tillgängligt för verifieraren.

JSON-matriserna konverteras sedan till base64-strängar, som kommer att representera upplysningarna:

WyI2NDAzOTQ1ZTJjMGEzNGE0IiwiZmlyc3RuYW1lIiwiQWxpY2UiXQ
WyIwNmNiYjFhNTE5ODRmNDQ0IiwibGFzdG5hbWUiLCJEb2UiXQ
WyJmM2UwODBlYjg4YjVmNzM1Iiwic3NuIiwiMTk3ODAyMDIwNTc1Il0

Senare, när det är dags att skicka referensen till innehavaren, kommer utfärdaren att inkludera upplysningarna i en SD-JWT VC genom att sammankoppla dem till den signerade delen av referensen med ett tilde-tecken (~).

Disclosure är en kombination av ett salt, ett cleartext-anspråksnamn och ett cleartext-anspråksvärde, som används för att beräkna en hashdigest för respektive anspråk.

3. Skapande av utfärdarsignerad JWT: Utfärdaren skapar en SD-JWT-nyttolast som inkluderar de hashade versionerna av avslöjandena (istället för klartextkraven) i en matris med namnet"_sd". Den resulterande nyttolasten kan se ut på följande sätt:

{
  "id": "1234",
  "_sd": [
    "6phoD5MBMETkuf5BYia7JD01dubqJSwGuz-o_9M206E", 
    "8jxEyPj9mMqJ6DQW6xiQrkyjryn77Sbuc2N44ScEGlE", 
    "D45wfxz18dwlcKeuvFppyAPl4rc-WE2Fn3f5fg3W1Ow"
  ],
  "_sd_alg": "SHA-256"
}

Påståendena i klartext från steg 1 har nu ersatts av de hashade värdena för motsvarande Utlämnanden. Observera att SD-JWT-legitimationen kan innehålla påståenden i klartext (t.ex."id") bredvid de avslöjbara påståendena.

_sd_alg anger den algoritm som används för hashning.

När nyttolasten har uppdaterats lägger utfärdaren till en SD-JWT Header med typvärdet vc+sd-jwt och en valfri algoritm, t.ex:

{
  "alg": "ES256",
  "typ": "vc+sd-jwt"
}

och signerar token. Detta bildar den så kallade Issuer-signerade JWT.

4. Valfri nyckelbindning: Emittenten kan, innan den signerar SD-JWT-nyttolasten i föregående steg, inkludera en publik nyckel som är associerad med innehavaren - eller en referens till den - i nyttolastavsnittet i den emittentsignerade JWT. Detta är en förutsättning för att Innehavaren ska kunna skapa en Key Binding JWT (KB-JWT) vid verifieringstillfället.

Kryptografisk nyckelbindning gör det möjligt för Innehavaren att visa legitimt innehav av en SD-JWT VC genom att bevisa kontroll över samma privata nyckel under både utfärdande och presentation. En SD-JWT med nyckelbindning innehåller en publik nyckel, eller en referens till en publik nyckel, som motsvarar den privata nyckel som kontrolleras av Innehavaren.

Närvaron av KB JWT gör det med andra ord möjligt för innehavaren att bekräfta att de är samma person som legitimationen har utfärdats till när de presenterar uppgifterna för verifieraren. Dessutom säkerställs att Upplysningarna verkligen har valts av Innehavaren.

5. SD-JWT VC skickas till innehavaren: Slutligen kombinerar Utfärdaren den av Utfärdaren signerade JWT med Upplysningarna separerade med tilde ('~') och skickar referensen till Innehavaren:

Innehavaren kommer att ha tillgång till både SD-JWT-legitimationen och alla upplysningar. Detta innebär att Innehavaren kommer att kunna granska referensens innehåll och välja vilka Utlämnanden som ska delas under transaktioner med Verifierare.

Dela en SD-JWT VC

När Innehavaren är redo att presentera informationen för en Verifierare delar denne den ursprungliga SD-JWT tillsammans med de valda Disclosures och en valfri Key Binding JWT sammanlänkad med ett tilde-tecken ('~') i en SD-JWT Presentation:

Om vår innehavare, Alice, till exempel väljer att endast dela sitt förnamn, skulle verifieraren få följande:

eyJ0eXAiOiJzZCtqd3QiLCJhbGciOiJFUzI1NiJ9.eyJpZCI6IjEyMzQiLCJfc2QiOlsiNnBob0Q1TUJNRVRrdWY1QllpYTdKRDAxZHVicUpTd0d1ei1vXzlNMjA2RSIsIjhqeEV5UGo5bU1xSjZEUVc2eGlRcmt5anJ5bjc3U2J1YzJONDRTY0VHbEUiLCJENDV3Znh6MThkd2xjS2V1dkZwcHlBUGw0cmMtV0UyRm4zZjVmZzNXMU93Il0sIl9zZF9hbGciOiJTSEEtMjU2In0.T71daVMwfh9sd_9II_Wr67BHP4shOjhJ0vvqiC8tYrvTae8XirqnizIEpUoH7lEzKV5MaAlFZ8z2Tq5IRgXNfw~WyI2NDAzOTQ1ZTJjMGEzNGE0IiwiZmlyc3RuYW1lIiwiQWxpY2UiXQ~

Verifiering av en SD-JWT VP

1. Selektiv delning av information: Under verifieringsprocessen begär Verifieraren en viss uppsättning påståenden. Mekanismen för selektiv delning av upplysningar gör det möjligt för Innehavaren att endast dela de påståenden som krävs genom att skicka den ursprungliga SD-JWT tillsammans med de upplysningar som är nödvändiga för verifieringen.

2. Verifiering av Upplysningar: Verifieraren kan, efter att ha mottagit de delade Upplysningarna och SD-JWT, bekräfta att de delade Upplysningarna är en del av SD-JWT. Detta görs genom att hasha de mottagna Upplysningarna med samma algoritm som Utfärdaren använde under utfärdandeprocessen.

3. Hashjämförelse och kontroll av manipulering: Verifieraren jämför sedan de hashade värdena för de delade upplysningarna med de värden som finns i SD-JWT. Om de hashade värdena matchar kan verifieraren vara säker på att de delade värdena inte har manipulerats och faktiskt är en del av den ursprungliga SD-JWT.

4. Kontroll av JWT med nyckelbindning: Om kontrollören kräver nyckelbindning för att bevisa att innehavaren är den legitima ägaren av referensen, kommer innehavaren att uppmanas att bevisa innehav av en kryptografisk nyckel som refereras till i referensen.

Utfärdandet och presentationen av SD-JWT VC illustreras i diagrammen nedan:

SD-JWT_Verifiable_Credential_issuance

SD-JWT-VC_Verifiable_Presentation

Användningsfall i den verkliga världen

Selektivt utlämnande kan vara värdefullt i många situationer. Till exempel:

Åldersverifiering: Tänk dig en person som deltar i ett evenemang eller gör ett köp där åldersverifiering är obligatorisk. Istället för att dela med sig av all personlig information kan de välja att bara lämna ut t.ex. sitt födelsedatum. På så sätt kan individen uppfylla evenemangets krav samtidigt som han eller hon behåller sin integritet.

Bankärenden: Kunder kan endast dela den information som krävs för att på ett säkert sätt slutföra en finansiell transaktion.

Utbildning: Studenter kan selektivt avslöja sin akademiska bakgrund genom att endast dela relevanta betyg, examensbevis eller annan information när de ansöker om praktikplatser, jobb eller vidareutbildning.

Anställning: Anställande chefer kan utnyttja selektivt utlämnande för att verifiera utbildning och anställningshistorik för arbetssökande och endast få tillgång till den minimiinformation som krävs för att fatta välgrundade anställningsbeslut.

Hälso- och sjukvård: Patienter kan lämna ut sin sjukdomshistoria selektivt och endast tillhandahålla den information som krävs för ett visst ingrepp eller en viss behandling.

Selektivt utlämnande är särskilt fördelaktigt i situationer där vissa personliga detaljer är känsliga eller irrelevanta för mottagaren. Genom att selektivt dela information minskar innehavaren risken för att exponera känslig information samtidigt som verifierarens krav uppfylls.

Sammanfattning

SD-JWT bygger på ett väletablerat JWT-format och ger en grund för att skapa verifierbara intyg som både är enkla att bearbeta och kan användas för selektivt utlämnande.

Även om det inte är det enda formatet som erbjuder selektivt avslöjande har SD-JWT blivit en integrerad del av den senaste EUDI Wallet Architecture and Reference Framework och har redan fått stor spridning i hela Europa. I takt med att fler organisationer implementerar SD-JWT VC-lösningar kommer den nya standarden sannolikt att förbli dominerande under överskådlig framtid.