İçeriğe geç
Tamga Wallet

Standartlar

OpenID4VCI, OpenID4VP ve HAIP: belge alma ve gösterme

OpenID4VCI belgeyi kurumdan cüzdanına getirir, OpenID4VP cüzdandan doğrulayıcıya götürür; HAIP, AB'nin dayandığı seçimleri sabitler.

Yazan: Tamga Wallet ekibi4 dk okuma

Belgeleri cüzdana getiren ve cüzdandan götüren iki OpenID Foundation standardı var. OpenID4VCI (OpenID for Verifiable Credential Issuance), bir kurumun belgeyi cüzdanına nasıl verdiğini tanımlar. OpenID4VP (OpenID for Verifiable Presentations), bir sitenin ya da masanın cüzdanından nasıl belge istediğini ve yalnız onayladığın alanları nasıl aldığını tanımlar. HAIP (High Assurance Interoperability Profile, yüksek güvenceli birlikte çalışma profili) ikisini yüksek güvenlik gereken kullanım için tek bir seçimler kümesine indirir; AB'nin dijital kimlik ekosistemi de bunun üzerine kurulur. Tamga Wallet üçünü de kullanır.

İki akış yan yana

Belge cüzdanına nasıl gelir (OpenID4VCI)?

OpenID4VCI 1.0, 16 Eylül 2025'te son (Final) şartname oldu. Tamga'da belge almak iki yoldan biriyle başlar.

Kurum teklif eder. Sana bir QR gösterir ya da bağlantı gönderir; ayrıca 6 haneli tek kullanımlık bir kod verir.

  1. QR'ı Tara ile okutursun. QR'da teklifin kendisi değil, belge teklifinin (credential offer) kısa bir adresi vardır; böylece QR küçük kalır.
  2. Cüzdan teklifi indirir. Teklif kurumu ve belge türünü söyler, bir ön yetki kodu taşır. Tamga'da bir teklif bir kez kullanılır ve beş dakikada geçersiz olur.
  3. Cüzdan kurumun herkese açık bilgilerini okur ve kurumun Tamga Network güven listesinde olduğunu denetler. Değilse belgeyi almaz.
  4. 6 haneli kodu girersin. Cüzdan ön yetki kodunu ve senin kodunu kısa ömürlü bir erişim belirteciyle değiştirir. Kod QR'dan ayrı olarak iletilir; omzunun üstünden QR'ın fotoğrafını çeken biri yine de belgeni alamaz.
  5. Cüzdan taze bir nonce alır, onu telefonunun güvenli donanımında yeni üretilen anahtarlarla imzalar ve bu imzaları, güvenli donanımdaki gerçek bir cüzdan olduğunu gösteren tasdiklerle birlikte gönderir.
  6. Kurum bunların hepsini denetler ve belgeyi 10 kopya olarak verir. Her kopya ayrı bir anahtara bağlıdır; böylece farklı doğrulayıcılar seni eşleştiremez.

Sen cüzdandan istersin. Kurumu uygulamadaki listede bulur, belgeyi istersin. Kod yerine kimlik belgeni sunarsın; kurum onu kendi kayıtlarıyla eşleştirir. Bu, standarttaki yetki kodu akışıdır.

Sadeleştirilmiş örnek: belge teklifi (örnek değerler)HTTP
openid-credential-offer://?credential_offer_uri=https%3A%2F%2Fissuer.example.edu%2Foffer%2F8a3f9c21

GET /offer/8a3f9c21 HTTP/1.1
Host: issuer.example.edu

HTTP/1.1 200 OK
Content-Type: application/json

{
  "credential_issuer": "https://issuer.example.edu",
  "credential_configuration_ids": ["StudentCredential"],
  "grants": {
    "urn:ietf:params:oauth:grant-type:pre-authorized_code": {
      "pre-authorized_code": "oaKazRN8I0IbtZ0C7JuMn5",
      "tx_code": { "input_mode": "numeric", "length": 6 }
    }
  }
}

Rehberler: Kurumun QR'ıyla belge al ve Kurum listesinden belge iste.

Bir site belgeyi nasıl ister (OpenID4VP)?

OpenID4VP 1.0, 9 Temmuz 2025'te son şartname oldu.

  1. Doğrulayıcı imzalı bir istek hazırlar. Ne istediğini bir DCQL sorgusuyla (Digital Credentials Query Language) söyler: hangi belge türü, hangi alanlar. Kendini, erişim sertifikasının parmak izi olan x509_hash ile tanıtır.
  2. İstek cüzdanına ulaşır: QR, bağlantı ya da aynı telefondaysan sitenin düğmesiyle.
  3. Cüzdan doğrulayıcıyı denetler. İmzayı doğrular ve parmak izini Tamga Network güven listesinde arar. Listede olmayan bir doğrulayıcı için kayıtsız doğrulayıcı uyarısı çıkar. Listedeki bir doğrulayıcı kayıtlı amacının dışında bir alan isterse fazla istek uyarısı çıkar ve Paylaş düğmesi birkaç saniye bekler.
  4. Onay ekranında telefonunun kilidiyle onaylarsın. Ekranda kimin istediği, neden istediği ve her alan yazar.
  5. Cüzdan şifreli bir yanıt gönderir. Yalnız onaylanan alanlar; o doğrulayıcıya ve o isteğe bağlı bir cihaz imzasıyla (SD-JWT VC yazısındaki KB-JWT), doğrulayıcının anahtarına şifrelenmiş olarak (direct_post.jwt).
  6. Doğrulayıcı denetler: imzaları, güven listesindeki kurumu, telefonuna bağlılığı, geçerlilik süresini ve iptal durumunu. Üç sonuçtan birini alır: kabul, ret ya da şu anda doğrulanamıyor.

Aynı akış belgenin mdoc sürümünü de taşıyabilir. Rehber: Bir sitede belge göster.

HAIP nedir, AB neden onu kullanır?

İki standart da birçok seçimi açık bırakır: hangi biçimler, hangi imza algoritmaları, doğrulayıcı kim olduğunu nasıl kanıtlar, yanıtlar şifrelenir mi. İki ürün standarda ayrı ayrı uyup yine de birlikte çalışmayabilir. HAIP 1.0 (OpenID4VC High Assurance Interoperability Profile, Final, Aralık 2025), kendi ifadesiyle "yüksek düzeyde güvenlik ve gizlilik" gereken kullanımlar için bu seçimleri yapar. Kısaca:

KonuHAIP'in seçimi
BiçimlerSD-JWT VC (dc+sd-jwt) ve ISO mdoc (mso_mdoc)
İmzaherkesin desteklediği ES256 (P-256)
Sorgu diliDCQL
Doğrulayıcının kimliğix509_hash istemci kimliğiyle imzalı istek
Yanıtlarşifreli (direct_post.jwt; tarayıcıda dc_api.jwt)
Cüzdana güvenbelge alırken cüzdan tasdiki ve anahtar tasdiki
İptalToken Status List

HAIP, hedefleri arasında eIDAS 2.0'ı ve Avrupa dijital kimlik ekosistemini sayar; Tamga Network'ün kuralları da HAIP 1.0'ı AB profili olarak izler. Kurallarından ikisi Tamga Wallet'ta doğrudan görünür: cüzdan yalnız x509_hash ile tanıtan doğrulayıcıları kabul eder ve cüzdan tasdikindeki "kim" alanı her telefonda aynıdır, yani telefona özgü bir değer taşımaz.

Bugün ne çalışıyor?

Teklifle ve kurum listesinden belge alma, QR ya da bağlantıyla belge gösterme bugün Tamga Wallet'ta çalışıyor. Tarayıcı kanalı (tarayıcının cüzdanı açtığı W3C Digital Credentials API) doğrulayıcı tarafında hazır; cüzdan bağlantısı henüz yok.

Daha derine in

Profillerin tamamı Tamga Network geliştirici belgelerinde: Belge verme ve OpenID4VCI profili (SPEC-PROTO-0001); Sunum ve OpenID4VP profili (SPEC-PROTO-0002); iki HAIP kuralı ADR-0034'te.

Sık sorulan sorular

Cüzdanı kullanmak için bu protokolleri bilmem gerekir mi?

Hayır. QR okutur, onay ekranını okur ve onaylarsın. Protokoller altta çalışır ve cüzdanın senin yerine neleri denetleyeceğini belirler.

Kurum neden ayrı bir kod istiyor?

QR'ı gören ya da fotoğrafını çeken biri belgeni alamasın diye. Tamga'da bu tür tekliflerde kod zorunludur ve QR'dan ayrı iletilir; üç yanlış deneme teklifi iptal eder.

HAIP bir yasa mı?

Hayır. Bir OpenID Foundation şartnamesidir. AB'nin dijital kimlik ekosistemi, farklı üreticilerin cüzdanları, kurumları ve doğrulayıcıları birlikte çalışsın diye ona dayanır.

Kaynaklar

Adım adım anlatım Rehber’de

Kurulumdan kayıp telefona kadar her şey, uygulamanın kendi ekranlarıyla.

Rehbere git

Tamga Wallet'ı indir

App Store ve Google Play'de. Diplomanı, öğrenci belgeni, biletini telefonunda taşı.

 Bütün yazılar