SD-JWT VC: seçici paylaşımın arkasındaki biçim
SD-JWT VC, cüzdanın imzalı bir belgenin yalnız bazı alanlarını göndermesini sağlayan belge biçimidir. Sade bir anlatım ve sadeleştirilmiş bir örnek.
Yazan: Tamga Wallet ekibi3 dk okuma
SD-JWT VC, bütün Tamga belgelerinin kullandığı biçimdir. Her alanı tek tek gizlenip açılabilen, imzalı bir JSON belgesidir: kurum belgenin tamamını bir kez imzalar; sen belgeyi gösterirken cüzdanın yalnız onayladığın alanları gönderir ve imza yine doğrulanır. Seçici paylaşımı mümkün kılan budur.
Adın iki parçası var. SD-JWT (Selective Disclosure for JSON Web Tokens) yöntemin kendisidir; IETF onu Kasım 2025'te RFC 9901 olarak yayımladı. SD-JWT VC (SD-JWT-based Verifiable Digital Credentials) bu yöntemi türü, vereni ve sahibinin anahtarı olan bir belgeye çeviren profildir; yayımlanmak üzere IESG'ye gönderilmiş bir IETF taslağıdır (19. sürüm, Ağustos 2026).
Alanlar eksikken imza nasıl geçerli kalır?
İşin püf noktası şu: kurum alan değerlerini hiçbir zaman doğrudan imzalamaz. Her alan için rastgele bir tuz (salt), alan adı ve değerden küçük bir dizi kurar, bunu kodlar ve özetini (hash) alır. İmzalı belgede yalnız bu özetler, _sd adlı bir listede durur. Kodlanmış diziler, yani açıklamalar (disclosure), imzalı parçanın yanında cüzdanına verilir.
Belgeyi gösterdiğinde cüzdan onayladığın alanların açıklamalarını ekler, gerisini dışarıda bırakır. Doğrulayıcı aldığı her açıklamanın özetini alır ve sonucu _sd listesinde bulur. Gönderilmeyen alan bir özet olarak kalır; rastgele tuz sayesinde, doğum tarihi gibi kısa bir değer bile olsa, arkasında ne olduğunu kimse tahmin edemez.

Gönderilirken parçalar tilde işaretiyle birleştirilir: <imzalı JWT>~<açıklama>~<açıklama>~<KB-JWT>. Bir alanı gizlemek, açıklamasını bu dizgiden çıkarmak demektir. Hiçbir şey eklenmez, imzalı parça değişmez.
Neye benziyor?
Bir öğrenci belgesinin imzalı parçası, kodu çözülünce:
{
"iss": "https://issuer.example.edu",
"vct": "urn:tamga:edu:StudentCredential:1",
"iat": 1791417600,
"exp": 1803772800,
"_sd_alg": "sha-256",
"_sd": [
"2l60GCkDykrIj0RNY7DFIWRL6ku9DweCmBUpcHSSDGc",
"Ah9zbMv904G2xsaDrXkT7qj_7b00R0h7fgJeumqk7cA",
"F7SV1UscA8u8blXRZwlwhqT_AE2mByqMexF2hFCLKLA"
],
"cnf": {
"jwk": { "kty": "EC", "crv": "P-256", "x": "…", "y": "…" }
}
}Açıkta yalnız belgeyi denetlemek için gerekenler var: kim verdi (iss), türü (vct), ne zaman verildi ve ne zaman sona eriyor, telefonundaki anahtarın açık yarısı (cnf). Adın, bölümün ve kayıt durumun üç özetin arasında.
Bir de tek bir açıklama; öğrenci indirimi kontrolünün isteyeceği açıklama:
WyJxVjNfdUZ0Ml9IZVA5a1J4Wm1XN0JBIiwgImlzX2Vucm9sbGVkIiwgdHJ1ZV0
→ ["qV3_uFt2_HeP9kRxZmW7BA", "is_enrolled", true]
Kodlu dizginin SHA-256 özeti, base64url:
2l60GCkDykrIj0RNY7DFIWRL6ku9DweCmBUpcHSSDGc ← _sd'deki ilk özet"Öğrenci misin?" diye soran bir site imzalı parçayı, bu tek açıklamayı ve taze bir cihaz imzasını alır. is_enrolled: true bilgisini ve bunu hangi kurumun söylediğini öğrenir. Adın ve bölümün okuyamadığı özetler olarak kalır.
Biri belgeni tekrar oynatamasın diye ne var?
Dizginin son parçası KB-JWT'dir (key binding JWT, anahtar bağlama imzası). Cüzdanın onu her gösterimde yeniden üretir ve telefonunun güvenli donanımındaki anahtarla, açık yarısı cnf'de duran anahtarla imzalar. İçinde doğrulayıcının tek kullanımlık nonce değeri, doğrulayıcının kimliği, zaman ve sd_hash vardır; sd_hash tam olarak gösterilen parçaların özetidir.
Kopyalanmış bir gösterim ikinci bir doğrulayıcıda geçmez, çünkü alıcı ve nonce tutmaz. Aradaki biri bir açıklamayı silerse sd_hash bozulur. Telefondaki anahtar olmadan da kimse yeni bir KB-JWT üretemez (kopyalanan belge neden işe yaramaz). Standart anahtar bağlamayı isteğe bırakır; Tamga'da her belge için zorunludur.
Tamga standardın üstüne ne ekliyor?
Standart birçok seçeneği açık bırakır. Tamga profili onları kapatır:
| Konu | Tamga kuralı |
|---|---|
| İmza | yalnız ES256 (P-256) |
| Özet | yalnız sha-256 |
typ başlığı | dc+sd-jwt; eski vc+sd-jwt reddedilir |
| Tuz | 128 bit, her açıklamada yeni |
| Gizli alanlar | kurum gizlenmesine izin verilen her alanı gizler |
| Anahtar bağlama | istisnasız zorunlu |
| Sahte özet (decoy) | kullanılmaz |
Tamga kimlik belgesi yüz yüze kontroller ve yalnız mdoc kabul eden tarayıcılar için ikinci bir biçimde, ISO mdoc olarak da verilir: ISO 18013-5 ve mdoc. Belgelerin kurum, cüzdan ve doğrulayıcı arasında nasıl taşındığı: OpenID4VCI ve OpenID4VP.
Daha derine in
Bayt düzeyindeki profilin tamamı, çözülmüş örnekler, doğrulama adımları ve en sık yapılan uygulama hataları Tamga Network geliştirici belgelerinde: SD-JWT VC profili (SPEC-CRED-0002). Biçim seçiminin gerekçesi: Belge biçimleri.
Sık sorulan sorular
SD-JWT VC bir JWT ile aynı şey mi?
Bir JWT'nin üzerine kurulur. İmzalı parça sıradan bir JWT'dir; SD-JWT'nin eklediği, tuzlu özetler, JWT'nin yanındaki açıklamalar ve sondaki anahtar bağlama imzasıdır.
Doğrulayıcı kaç alanı gizlediğimi görebilir mi?
_sd listesindeki özet sayısını görür, yani gizli alanlar olduğunu anlar. Onları okuyamaz. Her belge türünün alan listesi zaten şema kataloğunda herkese açıktır.
Hangi Tamga belgeleri SD-JWT VC kullanır?
Hepsi: öğrenci belgesi, diploma, bilet, kimlik, sürücü belgesi bilgisi, e-posta ve telefon belgeleri. Kimlik belgesi ayrıca mdoc olarak da verilir.
Kaynaklar
İlgili
- Yazı · KavramlarSeçici paylaşım: belgenin yalnız bir satırını göstermekSeçici paylaşım, imzalı bir belgenin tek bir alanını, örneğin "öğrenci mi?" yanıtını göstermeni sağlar; geri kalanı gizli kalır, imza yine doğrulanır.
- Yazı · KavramlarDoğrulanmış belge ne demek, sahtesi neden zor?Doğrulanmış belge kurumun dijital imzasını taşır, imzalı güven listesi ve iptal listesiyle denetlenir ve yalnız telefonundaki anahtarla gösterilebilir.
- Yazı · StandartlarOpenID4VCI, OpenID4VP ve HAIP: belge alma ve göstermeOpenID4VCI belgeyi kurumdan cüzdanına getirir, OpenID4VP cüzdandan doğrulayıcıya götürür; HAIP, AB'nin dayandığı seçimleri sabitler.
- Yazı · StandartlarISO 18013-5 ve mdoc: belgeyi yüz yüze göstermekISO/IEC 18013-5, telefondaki belgeyi karşındaki okuyucuya Bluetooth ile, internetsiz göstermenin biçimini ve protokolünü (mdoc) tanımlar.
- RehberBir sitede belge gösterSite bir QR gösterir; Tara ile okutursun, kimin neyi neden istediğini görür, yalnız o alanları onaylarsın.
Adım adım anlatım Rehber’de
Kurulumdan kayıp telefona kadar her şey, uygulamanın kendi ekranlarıyla.
Tamga Wallet'ı indir
App Store ve Google Play'de. Diplomanı, öğrenci belgeni, biletini telefonunda taşı.