Certificate Transparency 2.0 Nedir ve Nasıl Çalışır?

CT 2.0 (Certificate Transparency 2.0), HTTPS bağlantılarında sunucunun kimliğini doğrulamak için kullanılan TLS sertifikalarının ve sertifika ön bildirimlerinin herkese açık günlüklerde kaydedilmesini tanımlayan protokoldür. Precertificate (sertifika ön bildirimi), sertifika otoritesinin henüz tamamlanmamış bir sertifikayı düzenleme niyetini imzalı olarak bildirir. CT 2.0, yanlışlıkla veya kötüye kullanım sonucunda düzenlenen sertifikaların gizlenmesini zorlaştırır; ancak günlük kaydı sertifikayı kendi başına güvenilir hale getirmez.
CT 2.0'ın temelinde, kayıtların silinmediği ve yalnızca yenilerinin eklendiği bir Merkle ağacı, günlüğün imzaladığı zaman damgaları ve kriptografik kanıtlar bulunur. Bu yapı, bir sertifikanın günlüğe dahil edilip edilmediğini ve günlüğün önceki kayıtları değiştirmeden büyüyüp büyümediğini ayrı ayrı denetlemeyi sağlar.
Certificate Transparency 2.0 Ne İşe Yarar?
Bir sertifika otoritesi yanlışlıkla veya kötüye kullanım sonucunda beklenmeyen bir sertifika düzenleyebilir. Sertifikayı yalnız ilgili sunucuya bağlanan istemciler görürse alan adı sahibi bu durumu fark etmeyebilir. CT, sertifikayı veya sertifika ön bildirimini herkese açık bir günlüğe kaydederek düzenleme işlemini daha sonra incelenebilir hale getirir.
CT günlüğü, sertifikanın alan adı sahibinin onayıyla düzenlendiğini doğrulamaz. Günlük kaydı, TLS sertifika zincirinin güvenilirliğini, sertifikanın geçerlilik süresini veya iptal durumunu denetlemenin yerini tutmaz. Beklenmeyen sertifikaları bulmak için alan adı sahibi ya da onun adına çalışan bir izleme hizmeti kayıtları incelemelidir.
SCT ile Signed Tree Head Arasındaki Farklar
Bir sertifika veya sertifika ön bildirimi, sertifika zinciri bilgileriyle günlüğe gönderilir. Günlük gönderimi kabul ederse SCT (Signed Certificate Timestamp) adı verilen imzalı zaman damgasını döndürür. SCT, günlüğün kimliğini, kabul zamanını ve imzasını içerir; kaydın MMD (Maximum Merge Delay) adı verilen en uzun bekleme süresi içinde Merkle ağacına ekleneceğine ilişkin taahhüttür.
STH (Signed Tree Head), tek bir sertifikayı değil, günlüğün Merkle ağacının belirli andaki durumunu imzalı biçimde gösterir. Yaprak sayısını, kök özetini ve zamanı içerir. SCT ve STH imzaları, ilgili günlüğe ait olduğu güvenilir bir kaynaktan belirlenen açık anahtarla doğrulanır; böylece bu bilgileri hangi günlüğün imzaladığı denetlenir.
CT Günlüğünde Kayıt ve Geçmiş Doğrulaması
CT günlüğü, kayıtların silinmediği ve yalnızca yenilerinin eklendiği tek bir Merkle ağacıdır. Her kabul edilen sertifika veya sertifika ön bildirimi için hazırlanan kayıt, ağacın yapraklarından birini oluşturur. Kayıtlardan hesaplanan kriptografik özetler üst düğümlerde birleştirilerek bütün ağacı temsil eden kök özeti elde edilir. İmzaları doğrulanmış STH bilgileri ile aşağıdaki Merkle kanıtları, kaydın varlığını ve geçmişin korunmasını bütün günlüğü indirmeden denetlemeyi mümkün kılar.
Inclusion Proof Kaydın Günlükte Olduğunu Gösterir
Merkle inclusion proof, belirli bir yapraktan bilinen kök özetine ulaşmak için gereken ara düğüm özetlerini içerir. İstemci, kaydın yaprak özetini bu değerlerle birleştirir; yaprağın konumunu ve ağacın boyutunu da denetler. Hesaplanan kök, imzası doğrulanmış STH içindeki kökle eşleşirse kaydın o ağaç durumunda bulunduğu doğrulanır.
Bu kanıt SCT'den farklıdır: SCT kaydın eklenmesi için verilen sözdür, inclusion proof ise kaydın belirli bir ağaçta bulunduğunu gösterir. Daha sonraki bir ağaç için geçerli kanıt alınması, kaydın MMD dolmadan eklendiğini tek başına kanıtlamaz; zaman bilgileri de karşılaştırılmalıdır.
Consistency Proof Önceki Kayıtların Değişmediğini Gösterir
Merkle consistency proof, daha yeni ağaç durumunun eski durumdaki bütün kayıtları değiştirmeden içerdiğini doğrular. Başka bir deyişle yeni kayıtlar eklenebilir, ancak daha önce yayımlanmış kayıtların sessizce silinmesi veya değiştirilmesi tutarlı bir genişleme olarak doğrulanamaz.
Bu kanıt, günlüğün önceki kayıtları değiştirmeden büyüdüğünü denetlemeye yarar. Bir izleyici, eski ve yeni STH'ler arasında consistency proof isteyerek günlüğün daha önce duyurduğu durumu koruyup korumadığını kontrol edebilir. Günlüğün tamamını yeniden karşılaştırmak yerine imzalı kontrol noktaları ve gerekli Merkle düğümleriyle bu denetimi yapar.
CT İzleyicileri Günlükleri Nasıl Denetler?
CT izleyicileri, takip ettikleri günlüklerdeki yeni girişleri inceler. Bir alan adı sahibi veya onun adına çalışan bir izleyici, kendi alan adlarıyla eşleşen sertifikaları arayabilir; aynı süreçte yeni STH'nin imzasını, yeni kayıtları ve önceki STH ile olan tutarlılığı da kontrol edebilir.
Belirli bir SCT'yi denetleyen istemci, onun ilgili sertifika kaydıyla eşleştiğini ve imzasını kontrol eder. Ardından inclusion proof ile kaydın varlığını, consistency proof ile ağaç durumlarının tutarlılığını denetleyebilir. MMD kontrolünde eski bir STH'de kaydın bulunmamasıyla, süre dolduktan sonraki bir ağaçta bulunmaması aynı sonuç sayılmaz. Sorguya yanıt alınamaması da tek başına kriptografik ihlal kanıtı değildir; günlüğün imzalı verileri arasındaki çelişki ayrıca gösterilmelidir.
CT 2.0, günlüğün farklı taraflara birbiriyle çelişen görünümler sunması sorununu tek başına çözmez. Bu davranışı fark etmek için farklı istemcilerin gördüğü günlük durumlarını karşılaştıran ek mekanizmalar gerekebilir; RFC 9162 bu paylaşım mekanizmasını tanımlamaz.
CT 2.0 ile CT 1.0 Arasındaki Başlıca Değişiklikler
Experimental (deneysel) kategoride yayımlanan RFC 9162, önceki Certificate Transparency protokolünü tanımlayan RFC 6962'nin yerini alır. Bu belge değişikliği, bütün tarayıcıların CT 2.0 kullandığı anlamına gelmez; ürün desteği ayrıca kontrol edilir. CT 2.0’daki teknik yenilikler günlük denetiminin amacını değiştirmez; veri biçimlerini yeniler ve özet ile imza algoritmalarında esneklik sağlar.
- İnternet protokollerine ait numara ve parametre kayıtlarını yöneten IANA, CT için izin verilen özet ve imza algoritmalarının listesini tutar; günlükler bu algoritmalar arasından seçim yapabilir.
- CT 2.0, sertifika ön bildirimlerini X.509 sertifikaları yerine imzalı içeriği taşıyan CMS (Cryptographic Message Syntax) nesneleri olarak tanımlar.
- Günlük kimlikleri, günlük açık anahtarının özeti yerine benzersiz nesne tanımlayıcısı OID ile belirtilir.
- SCT, STH, inclusion proof ve consistency proof gibi CT verilerini sürüm ve tür bilgisiyle kapsüllemek için TransItem yapısı kullanılır.
CT Günlüklerinde Alan Adlarının Görünür Olması
Herkese açık günlüklerdeki sertifika bilgileri, daha önce kolay fark edilmeyen alan ve alt alan adlarını ortaya çıkarabilir. Bir hizmeti korumak için yalnız adının bilinmemesine güvenilmemeli; o hizmete erişim ayrıca denetlenmelidir.







