Skip to content
ADR-0033Mimari karar kaydıKabul edildisürüm 1.0.02 Ekim 2026

Özet (sade) ​

Mağaza inceleyicisi uygulamayı açtığında kimlik doğrulama adımında gerçek bir Türk kimlik kartı ve yüz taraması ister; inceleyicide bu yoktur ve uygulama "denenemedi" diye reddedilir (kimlik uygulamalarında en sık ret nedeni). Karar: inceleme notuna yazılan, kısa süreli ve tek kullanımlık bir kod. Kod girilince kimlik servisi gerçek sağlayıcı yerine sahte (demo) doğrulamayı yalnız o oturum için kullanır ve "DEMO" işaretli, gerçek hiçbir doğrulayıcının kabul etmediği bir deneme belgesi verir. Gerçek kullanıcılar bu yolu görmez; kod bir kez kullanılınca biter.

Bağlam ​

  • Apple App Review ve Google Play incelemesi, uygulamanın bütün akışlarının denenebilmesini ister; gerektiğinde inceleme notunda deneme hesabı ya da "demo modu" verilir.
  • Tamga Wallet'ın kimlik akışı (SPEC-ID-0003 §9) gerçek kimlik belgesi + canlılık + yüz eşleştirme ister; bu bir kimlik doğrulama (identity proofing)Belge verilmeden önce kişinin gerçekten o kişi olduğunun doğrulanması; örneğin kimlik kartı ve canlılık testiyle. adımıdır. Canlıda sahte sağlayıcı kapalıdır (TAMGA_IDV_DIDIT_FAKE yalnız açıkça açılırsa; GT1: canlıda gerçek kimlik yok sayılmaz).
  • Kimlik gerektirmeyen akışlar kodsuz denenebilir: bilet alma ve kapıda gösterme, Tamga Verify örnek politikaları, "Tamga ile giriş yap" örnek sitesi (takma ad (pseudonym)Cüzdanın her web sitesi için ayrı türettiği kararlı hesap kimliği; iki site aynı kişiyi eşleştiremez. yalnız kimlik belge (credential)Belge verenin imzaladığı ve kişinin cüzdanında duran dijital belge; kişi yalnız istenen alanları gösterir. tohumla çalıştığı için o da kimlik akışına bağlıdır — §K4).
  • Gerçek kullanıcıyı etkilemeyen, kötüye kullanılamayan ve izlenebilir bir yol gerekir.

Seçenekler ​

SeçenekSonuçNeden
A. İnceleme notunda yalnız kimliksiz yollaryetmezKimlik akışı uygulamanın ana yolu; inceleyici deneyemezse ret riski yüksek.
B. Uygulamada kalıcı "demo modu" (sahte belgeler cihazda)retGerçek kullanıcı da açabilir; sahte belgelerin gerçekmiş gibi görünme riski; mağaza "gizli özellik" sayabilir.
C. Önceden hazırlanmış deneme cüzdanı / cihazuygulanamazİnceleyici kendi cihazında yükler; anahtarlar cihaza bağlıdır (WL1).
D. Süreli, tek kullanımlık inceleme kodu → sahte sağlayıcı + ayrı deneme imzacısıkabulYalnız kodu bilen kullanır; belge gerçek ekosistemde geçmez; her kullanım kayıtlı.

Karar ​

K1 — Kod ​

  • Operatör kodu sunucudan üretir (ops betiği; konsoldan değil): rastgele, en az 128 bit, okunur biçimde (ör. 4×5 karakter).
  • Saklanan yalnız kodun özetidir (HMAC, servis anahtarıyla); düz kod saklanmaz ve günlüğe yazılmaz.
  • Geçerlilik: en çok 14 gün; tek kullanımlık (ilk başarılı kimlik akışında tükenir); aynı anda en çok 3 etkin kod.
  • Kod mağaza inceleme notuna yazılır; başka yerde paylaşılmaz.

K2 — Kodun etkisi (yalnız o oturum) ​

  • Cüzdanda kimlik akışının başında "İnceleme kodum var" bağlantısı gösterilmez; kod, /authorize sayfasındaki KVKK aydınlatma ekranında küçük bir "İnceleme kodu" alanına girilir (gerçek kullanıcı akışı değişmez).
  • Geçerli kodla kimlik servisi o PAR (Pushed Authorization Request)Yetkilendirme isteğinin önce sunucuya gönderildiği OAuth adımı; içerik tarayıcı adresinde görünmez. için sahte sağlayıcıyı kullanır (FakeIdvProvider; hazır deneme kişileri); gerçek sağlayıcıya hiçbir istek gitmez.

K3 — Deneme belgeyi gerçek ekosistemde geçmez ​

  • Belge, kimlik servisinin gerçek anahtarıyla değil, ayrı bir deneme imzacısıyla imzalanır. Deneme imzacısı güven listesinde (trust list)Bir ülkenin kök sertifikalarını, belge verenlerini ve kayıtlı relying party'lerini taşıyan imzalı liste. Bugün Tamga'da güven bu listelere dayanır; ortak defter sonra gelir. ayrı bir DEMO kayıt olarak durur; yalnız Tamga Verify'daki "inceleme" politikaları onu kabul eder.
  • Belgede verification_method: "review-demo"; ad alanları açıkça "DEMO" içerir; exp en çok 7 gün.
  • Kurum belge verenleri (issuer)Belgeyi imzalayıp veren kurum: üniversite, meslek kuruluşu, kamu kurumu ya da şirket. (üniversite vb.) deneme imzacısının belgesini kimlik eşleştirmede kabul etmez (güven listesi politikası).
  • Takma ad tohumu deneme imzacısıyla ve deneme anahtarından türetilir; gerçek tohumlarla çakışmaz.

K4 — İnceleyicinin deneyebildikleri ​

Kodla: kimlik doğrulama → kimlik belgeyi → "Tamga ile giriş yap" örnek sitesi (takma ad) → Tamga Verify "18 yaş üstü" örneği → cüzdanı sıfırla ve verilerimi sil. Kodsuz: bilet satın alma ve kapıda gösterme, doğrulama politikaları sayfası.

K5 — İz ​

Her kod kullanımı olay günlüğüne yazılır (review_code.used; kod özeti değil, kod kimliği); deneme belgeleri ayrı sayılır ve şeffaflık raporunda "mağaza incelemesi" olarak görünür.

Gerekçe / alternatifler ​

Seçenekler tablosunda. D, gerçek kullanıcı akışını değiştirmeden ve gerçek ekosisteme sahte belge sızdırmadan inceleyicinin bütün yolları denemesini sağlayan tek seçenek. Bedeli: kimlik servisinde ikinci bir imzacı ve güven listesinde bir DEMO kaydı.

Riskler ​

RiskÖnlem
Kod sızar ve başkası kullanırtek kullanımlık, süreli, en çok 3 etkin; deneme belgeyi gerçek doğrulayıcıda geçmez
Deneme belgeyi gerçek sanılırayrı imzacı, DEMO işareti, cüzdanda "DEMO" rozeti, 7 gün
Mağaza "gizli özellik" sayarinceleme notunda açıkça anlatılır; kod alanı aydınlatma ekranında görünür, gizli değil
Sahte sağlayıcı canlıda yanlışlıkla genel açılırkod olmadan sahte sağlayıcıya geçiş yolu yok; TAMGA_IDV_DIDIT_FAKE canlıda kapalı kalır

Değişmezler ​

KodKural
RV1İnceleme kodu yalnız özetiyle saklanır, süreli (≤ 14 gün) ve tek kullanımlıktır; günlüğe düz yazılmaz.
RV2İnceleme koduyla verilen belge, kimlik servisinin gerçek imzacısıyla imzalanmaz ve yalnız inceleme politikalarında geçer.
RV3İnceleme kodu olmadan canlı kimlik servisi sahte doğrulama sağlayıcısına geçemez.

Uygulama planı ​

AdımNeredeİş
1apps/id (operatör deposu)kod tablosu (özet, son kullanma, kullanıldı), /authorize kod alanı, PAR başına sağlayıcı seçimi, deneme imzacısı
2ops (operatör deposu)review-code.ts (üret / listele / iptal)
3tamga-network güven listesiDEMO deneme imzacısı kaydı; kurum belge verenlerinin eşleştirme politikası onu dışlar
4apps/verify"inceleme" politikaları (deneme imzacısını kabul eden)
5Tamga Wallet (ayrı depo)"DEMO" rozeti (belge verification_method: review-demo)
6BelgelerSPEC-ID-0003 §9, mağaza inceleme notu

Tahmini iş: 2–3 gün (testlerle).

Uygulama ​

  • Kod: apps/id/src/review.ts (operatör deposu) (26 karakter Crockford base32 = 130 bit; HMAC özeti, belge özeti anahtarından HKDF ile ayrı alt anahtar; etkin kodlar sabit süreyle karşılaştırılır); tablo review_codes; operatör aracı ops/review-code.ts create | list | revoke (operatör deposu). Kod ilk başarılı belge verme işleminde tükenir; akış sürerken başka oturuma verilmez. Sınır: PAR başına 5 hatalı deneme, servis geneli 10 dakikada 20 hatada 15 dakika kilit (IP yok — G2); nginx /authorize/consent hız sınırı.
  • Akış: /authorize aydınlatma sayfasında kapalı "İnceleme kodu" ayrıntısı; geçerli kodla /review-idv/{oturum} (koda özgü DEMO kişi). Kodsuz akış ve /fake-idv değişmez (RV3; canlıda /fake-idv/ nginx'te kapalı).
  • İmzacı: ops/pki/issuer-id-review (dev PKI; sertifika depoda, özel anahtar upload.ps1 -WithPki ile sunucuya). Güven listesi kaydı tamga-id-review (IDENTITY, EAA (Electronic Attestation of Attributes)Kişinin bir özniteliğini (diploma, üyelik gibi) doğrulayan belge için eIDAS'taki ad., I1; iptal listesi anahtarı kimlik servisininki) bekleyen başvuru olarak apps/trust-publisher/registry/pending/: ADR-0024 yeni kayıtlarda kurumun kimlik numarası ve adresini zorunlu kıldığı için Tamga'nın bu bilgileri girilince register issuer ile eklenir. O zamana kadar inceleme yolu "etkin değil" der (503).
  • Doğrulama: Tamga Verify review-age-over-18 ve review-site-signup (I1); örnek sitede "DEMO belgeyle kayıt ol". Gerçek politikaların hepsi I2 ister → DEMO belge E1'de RED (test: packages/verifier/src/review-demo.test.ts).
  • Şema: verification_method değerlerine review-demo eklendi (geliştirme evresi, ADR-0029); FW-RB-0003 (Identity Rulebook) buna göre yazıldı.
  • Cüzdan: belge ayrıntısında "DEMO — uygulama inceleme belgesi" kartı.

Karara bağlanan sorular (proje yönetimi, 2026-10-01) ​

  1. D seçeneği kabul.
  2. Kod alanı kimlik servisinin aydınlatma (onay) sayfasında.
  3. Deneme belgesinin geçerliliği 7 gün.

Durum ​

Accepted — 2026-10-01 (proje yönetimi onayı: üç soru da kabul). Uygulama: yukarıdaki plan.