reloading01

Sertifika şeffaflığı, kısaca

Herkese açık ekleme-yalnızca loglar, SCT'ler ve bir sertifikanın oraya nasıl düştüğü.

2386ceca5bee2 dakika

Sertifika şeffaflığı (Certificate Transparency, CT), sertifika otoritelerinin verdiği her TLS sertifikasının herkese açık, ekleme-yalnızca loglara yazılmasını sağlayan mekanizma. İlk sürümü RFC 6962’de, 2.0 sürümü RFC 9162’de tanımlı.

Temel fikir basit: bir CA sessizce senin alan adına sertifika veremesin. Verirse kaydı ortada dursun.

Log neye benziyor

Her log bir Merkle ağacı. Yeni girdiler yalnızca sona eklenir, aradan bir şey çıkarılamaz — çıkarılırsa ağaç kökü tutmaz. Bu yüzden log operatörünün dürüstlüğüne güvenmek zorunda değilsin; iki farklı zamandaki kök değerleri arasında tutarlılık kanıtı isteyebilirsin.

Bir sertifika loga gönderildiğinde log, imzalı bir makbuz döner: SCT (Signed Certificate Timestamp). SCT, “bu sertifikayı şu anda aldım ve şu kadar süre içinde ağaca ekleyeceğim” taahhüdüdür.

Tarayıcı tarafı

Chrome, Nisan 2018’den sonra verilen halka açık sertifikalar için CT zorunluluğu getirdi: yeterli sayıda SCT sunmayan sertifika hata veriyor. SCT tarayıcıya üç yoldan ulaşabilir:

  • sertifikanın içine gömülü X.509 uzantısı olarak,
  • TLS el sıkışmasında bir uzantıyla,
  • OCSP stapling yanıtıyla.

Pratikte en yaygını birincisi. Ama burada bir tavuk-yumurta problemi var: SCT sertifikanın içine gömülecekse, sertifika henüz imzalanmadan loga gitmesi gerekir.

Ön sertifika

Çözüm precertificate. CA, gerçek sertifikanın aynısını üretir ve içine “kritik” işaretli bir zehir uzantısı (1.3.6.1.4.1.11129.2.4.3) koyar. Bu uzantıyı anlamayan her istemci sertifikayı reddedeceği için ön sertifika TLS’te kullanılamaz. Loga gönderilen bu olur; dönen SCT’ler asıl sertifikaya gömülür.

Yani logda aynı isim için iki kayıt görmen normal: biri ön sertifika, biri asıl sertifika.

Ne işe yarıyor

Loglar herkese açık olduğu için akışı canlı izleyip kendi alan adlarına verilen sertifikaları yakalayabilirsin. Tipik kullanımlar:

  • yanlış verilmiş ya da beklenmeyen sertifikaları fark etmek,
  • bir kurumun henüz duyurmadığı alt alan adlarını görmek,
  • taze kayıtlı, kimlik avına hazırlanan alan adlarını izlemek.

Geçmişe dönük arama için crt.sh yeterli. Canlı akış için log sunucularının get-entries uç noktasını doğrudan çekmek ya da bunu senin için yapan bir yayıncıya bağlanmak gerekir.

Şunu unutma: CT bir engelleme mekanizması değil, bir görünürlük mekanizması. Kötü sertifikayı durdurmaz, sadece gizlenemez hale getirir.

sıra
0003
yazıldı
özet
2386ceca5bee

Özet, yazının Markdown gövdesinin SHA-256 karmasının ilk on iki hanesi. Metin değişirse özet de değişir.