İçeriğe geç
Tamga Network

Gizlilik

İzlemeden iptal: durum listesinde gizlilik

Tamga Network'ün durum listeleri, belgenin nerede gösterildiğini kuruma söylemeden iptal denetimini nasıl yapar, bu gizlilik nerede biter?

Tamga Network 7 dk okuma

Durum listesi (status list), doğrulayıcının bir belgenin iptal edilip edilmediğini, belgeyi veren kuruma hiç sormadan öğrenmesini sağlar. Tamga Network'te her kurum, IETF Token Status List biçiminde imzalı ve büyük bir bit dizisi yayımlar; her belge bu dizide rastgele bir konumu gösterir. Doğrulayıcılar listelerin tamamını önceden indirir ve biti kendi kopyalarından okur. Böylece kurum, belgenin ne zaman, nerede ve kime gösterildiğini hiçbir zaman öğrenemez.

İptal denetimi neden bir izleme kanalına dönüşebilir?

İptali denetlemenin akla gelen ilk yolu sormaktır: doğrulayıcı belgenin seri numarasını kuruma gönderir, "geçerli" ya da "iptal" cevabını alır. Web'de sertifika denetimi yıllarca böyle çalıştı. Bunun kişiler açısından önemli bir yan etkisi var. Her sorgu kuruma şunu söyler: şu anda, şu ağ adresinden biri bu kişinin belgesine bakıyor.

Diploma için bu, üniversitenin her mezununun hangi işverenlere başvurduğunu görebilmesi demektir. Kâğıt diploma üniversiteye böyle bir şey söylemezdi; dijital diploma da söylememeli. Tamga'nın durum listesi şartnamesi bunu ilk gizlilik kuralı sayar: doğrulayıcı listeyi doğrulama anında çekemez (SPEC-CRED-0003 §9.1).

Token Status List nasıl çalışır?

IETF Token Status List, belgeyi verenin imzaladığı, sıkıştırılmış bir küçük sayı dizisidir. Tamga her girdi için hep iki bit kullanır; bu da dört değer verir: 0 geçerli, 1 kalıcı iptal, 2 askıda (geri alınabilir), 3 kullanılmaz; doğrulayıcı bu değeri iptal sayar. Tek bit yerine iki bit seçilmesinin nedeni şu: bir üniversite soruşturma sürerken diplomayı kalıcı iptal etmek yerine askıya alabilsin.

Her belge listedeki yerini gösteren bir işaret taşır. Bu işaret seçici açıklamayla gizlenemez; her sunumda belgeyle birlikte gider, çünkü doğrulayıcının ona ihtiyacı vardır.

Sadeleştirilmiş örnek: belgedeki status claim'i
{
  "status": {
    "status_list": {
      "idx": 48213,
      "uri": "https://status.tamga.network/3f9c1a7e5b20d846"
    }
  }
}

Doğrulayıcı uri adresindeki listeyi alır, imzasını kurumun imzalı güven listesindeki kaydına göre denetler, özetini çapa günlüğüyle karşılaştırır, listeyi açar ve idx konumundaki iki biti okur. Listenin kendisi, belgeleri imzalayan anahtardan ayrı bir durum anahtarıyla imzalanır. Durum anahtarı çalınırsa sahte durum yayımlanabilir ama sahte diploma üretilemez.

Sürü mahremiyeti nedir, sürü ne kadar büyük?

İndirilen bir liste, doğrulayıcının hangi girdiyle ilgilendiği hakkında hiçbir şey söylemez. Sürü mahremiyeti (herd privacy) budur: belgeniz aynı listedeki bütün öteki belgelerin arasında saklanır. Sürü ancak büyükse ve konumunuz hiçbir şekilde göze batmıyorsa işe yarar. Tamga'nın kuralları ikisini de sağlamak için yazıldı:

Durum listesinin bir belgenin kime ait olduğunu sızdırmasını önleyen kurallar
  • Büyük listeler. Her listede en az 100.000 girdilik yer vardır. Girdilerin %80'i dolunca yeni liste açılır. Çoğu sıfır olan bir liste sıkıştırılınca birkaç yüz bayt tutar; boyutun maliyeti yoktur.
  • Rastgele konum. Sıra numarası listenin tamamından rastgele çekilir. Sayaç kullanılamaz: sıralı numarada 12 numara o yılın on ikinci mezunu olurdu; iki mezunun numarası arasındaki fark, mezuniyet tarihi hiç açıklanmamış olsa bile aralarındaki zaman farkını gösterirdi.
  • Opak adres. Liste adresi rastgele bir dizedir. .../edu-2026 ya da .../tip gibi bir adres, kişinin tam da gizlediği yılı ya da fakülteyi her sunumda açık ederdi.
  • Yalnız türe göre bölme. Listeler belge türüne göre ayrılabilir; tür zaten görünür. Yıla, fakülteye ya da döneme göre bölünemez, çünkü "2026 listesinde" olmak tek başına bir açıklamadır.

Bu kurallar yalnız kâğıt üzerinde değil, açık paketlerde de var. Belge verme kütüphanesi 100.000 girdiden küçük listeyi reddeder, %80'in ötesinde yer ayırmaz ve her sıra numarasını kriptografik rastgele sayı üreteciyle seçer.

Doğrulayıcı listeyi neden önceden indirir?

Çünkü doğrulama anında indirmek, yukarıda anlatılan izleme kanalının ta kendisidir. Tamga doğrulayıcısı ihtiyaç duyduğu her durum listesini bir takvime göre yeniler ve doğrulamayı önbellekten yapar:

@tamga-network/verifier ile durum listelerini önceden çekme
import { PrefetchStatusCache } from "@tamga-network/verifier";

const statusCache = new PrefetchStatusCache();
await statusCache.refresh(listUris); // takvimle; asla doğrulama başına değil

Doğrulayıcı paketinde doğrulama, durumu yalnız bu önbellekten okur. Barındırılan doğrulayıcı Tamga Verify de aynı şekilde çalışır.

Her liste iki zaman sınırı taşır. ttl tazelik hedefidir: bir kopyanın yenilenmeden ne kadar kullanılabileceği. exp kesin sınırdır: o andan sonra kopya hiç kullanılamaz. Önbellekteki kopya doğrulayıcının politikasına göre fazla eskiyse sonuç "şu an doğrulanamadı"dır (INDETERMINATE), asla "iptal edilmiş" değil. "Bu diploma iptal edilmiş" ile "şu an denetleyemiyorum" arasındaki fark birinin işe alınıp alınmamasıdır; bu yüzden ikisi farklı gösterilir (doğrulamanın bunu nasıl ele aldığı).

Hiçbir şey değişmediğinde liste neden yeniden yayımlanır?

Bir kurum yalnız iptal yaptığında yayın yapsaydı, yayının kendisi haber olurdu: "Örnek Üniversitesi'nde 14.00 ile 15.00 arasında bir iptal oldu." Dışarıdan bir bilgiyle, örneğin bir disiplin kararının tarihiyle birleşince bu, tek bir kişiye kadar daralabilir.

Bu yüzden her liste, bir şey değişsin değişmesin, sabit aralıklarla yeniden yayımlanır. Dışarıdan bakınca her aralık aynı görünür: yeni bir sürüm var. Aralığı ve bir iptalin doğrulayıcılara en geç ne zaman ulaşacağını Tamga ARF belirler (ARF §5.4).

Bir durum listesinin tek yayın döngüsü

Döngü dışında "acil" yayın bilerek yoktur; döngü dışı tek bir yayın, korumayı herkes için bozar. Bir şeyin hemen durması gerekiyorsa, örneğin imza anahtarı çalındıysa, doğru araç durum listesi değil, kurumun güven listesindeki sertifikasının askıya alınmasıdır.

Her yayın, güven listesi yayıncısının herkese açık çapa günlüğüne de yazılır. Doğrulayıcı listenin özetini ve sürümünü bu kayıtla karşılaştırır; böylece bir kurum iptal ettiği bir belgeyi sessizce "geçerli"ye geri çeviremez. Çapa günlüğünde liste kimlikleri, sürümler ve özetler bulunur; listedeki hiçbir konum bulunmaz.

Kopyalar iki doğrulayıcının bir kişiyi eşleştirmesini nasıl önler?

Sıra numarası belgenin ömrü boyunca değişmez. Bir kişi aynı belgeyi iki doğrulayıcıya gösterse ve bu ikisi bilgilerini karşılaştırsa, aynı idx ve uri onlara bunun aynı kişi olduğunu söylerdi. Şartname bunu Token Status List'in yapısal bir sınırı olarak açıkça yazar.

Cevap toplu belge vermedir. Diploma dahil her belge 10 kopya olarak verilir; her kopyanın kendi cihaz anahtarı ve kendi rastgele sıra numarası vardır. Cüzdan aynı doğrulayıcıya hep aynı kopyayı, her farklı doğrulayıcıya farklı bir kopyayı gösterir (WL5 kuralı). Kopyalarla sıra numaraları arasındaki eşleme belgeyi verenin veritabanında kalır, hiçbir zaman dışarı çıkmaz (PR10). Belge iptal edilince bütün kopyalarının bitleri aynı planlı yayında, o aralıkta değişen başka her şeyle birlikte değişir.

Sıfır bilgi ispatıyla yapılan sunum bir adım daha ileri gider: hiçbir sıra numarası açmaz. Bedeli, doğrulayıcının iptali denetleyememesidir; bu yüzden bu yolla gösterilen belgeler kısa ömürlü tutulur (Tamga'da sıfır bilgi ispatları).

Kim neyi görebilir?

Her tarafın durum listesinden öğrenebildikleri ve öğrenemedikleri
TarafGörebilirGöremez
Belgeyi veren kurumkendi yaptığı iptal ve askılarbelgenin nerede, ne zaman, kime gösterildiği
Doğrulayıcıkendisine gösterilen kopyanın durumu, bugün ve sonraaynı belgenin öteki kopyaları
Listeyi barındıranbir doğrulayıcının listeyi taze tuttuğuhangi belgenin, ne zaman denetlendiği
Listeyi okuyan herkesher aralıkta yeni sürüm; sürümler arasında hangi bitlerin değiştiğibir bitin kimin belgesine ait olduğu

Hiçbir Tamga hizmeti IP adresi kaydetmez; hiçbir kayıtta, günlükte ya da sonuçta durum listesindeki bir konum yer almaz (ARF §4.5).

Bu gizlilik nerede biter?

Bazı sınırlar şartnamede kabul edilmiş olarak yazılıdır ve açıkça söylenmeye değer.

  • Küçük kurumun sürüsü küçüktür. 300 mezunu olan bir yüksekokul 100.000 girdilik bir listede büyük bir listeye ama 300 kişilik bir sürüye sahiptir, çünkü belge zaten kendisini vereni söyler. Bunun teknik bir çözümü yok; kabul edilmiş sınır olarak kayıtlı.
  • Doğrulayıcı gördüğü kopyayı izleyebilir. Doğrulayıcı o kopyanın sıra numarasını bilir; kopyanın sonradan iptal edilip edilmediğini görebilir. Durum listesinin amacı da budur, ama bu yine bir bilgidir. Kopyalar bu bilgiyi, kişiyi zaten tanıyan tek doğrulayıcıyla sınırlar.
  • Zaman bulanıklaşır, silinmez. Sabit aralık, iptalin tam anını aralığın içinde gizler. Asıl olayın tarihini zaten bilen ve değişen bir biti bekleyen birinden iptali gizlemez.
  • Barındırılan durum hizmeti yayımladığı iptalleri görür. Kurum kendi durum hizmetini işletebilir ya da ağın barındırılan belge verme hizmetini kullanabilir. İkinci durumda o kurumun iptallerini işletmeci yayımlar, dolayısıyla görür. Şartname bunu gerçek bir merkezîleşme noktası olarak adlandırır ve yönetişim kurallarına bağlar.
  • Çapa bugün tek imzacıya dayanıyor. Çapa günlüğünü tek ve geçici bir işletmeci imzalıyor. Bu sınırı kaldıracak ortak defter, ikinci bağımsız işletmeciyi bekliyor (Neden zincirsiz başlıyoruz).

Sık sorulan sorular

Belgemi gösterdiğimde kurum bunu öğrenir mi?

Hayır. Doğrulayıcılar durum listelerini önceden indirir ve kendi kopyalarından denetler. Doğrulama anında kuruma hiçbir istek gitmez.

Listeye bakan biri kimin iptal edildiğini anlayabilir mi?

İki sürüm arasında bazı konumların değiştiğini görebilir. Bu konumların kimin belgesine ait olduğunu anlayamaz; konumlar rastgeledir ve eşleme belgeyi verende kalır.

Bir iptal ne kadar sürede etkili olur?

Bir yayın aralığı artı doğrulayıcının yenileme süresi içinde. Listeler sabit aralıklarla yayımlanır; Tamga ARF bir iptalin doğrulayıcılara ulaşması için bir üst sınır koyar.

Liste indirilemezse ne olur?

Doğrulayıcı son geçerli kopyasını, o kopyanın süresi bitene kadar kullanır. Sonrasında sonuç "iptal edilmiş" değil, "şu an doğrulanamadı"dır.

Acil bir durumda neden hemen yayımlanmıyor?

Döngü dışı bir yayın bir şey olduğunu açık ederdi. Acil durumlar bunun yerine kurumun güven listesindeki sertifikasının askıya alınmasıyla çözülür.

Kaynaklar

Ağın üzerine kurun

Kavramları sıfırdan öğrenin ya da bir kurumun, doğrulayıcının, cüzdanın ya da devletin ağa nasıl katıldığına bakın.

Tüm yazılara dön