in Ar-Ge, Kriptoloji ve Bilgi Güvenliği

Sertifika otoriteleri (CAs) üzerine

Internette gerçekleştirdiğiniz güvenli bağlantılarda (bankacılık hizmetleri, eposta) sertifika otoritelerini çoğu zaman farkında olmadan kullanıyoruz.

Sistemin işleyişi şu şekilde özetlenebilir. Sertifika otoritelerinin açık anahtarları (public keys) tarayıcılarımızda veya işletim sistemlerimizde yüklenmiş olarak geliyor. Bağlanmak istediğimiz sunucunun sertifikası da bu anahtarların sahiplerinden biri tarafından (ki bunlar bildiğimiz sertifika otoriteleri veya işletim sistemi dağıtımcısı vb. olabilir.) imzalanmışsa tarayıcımız tarafından güvenilir kabul ediliyor. Problem tüm sertifika otoritelerinin herhangi bir alan adı için sertifika oluşturması ve bizim de bu sertifikalara koşulsuz şartsız güvenmek durumunda bırakılmamızla başlıyor. Bu durumda farkında olmadan bağlanmaya çalıştığımız alan adı için bize geçerli (ama alan adi sahibinin onayı dışında oluşturulmuş) bir sertifika sunulduğunda yanlış bir sunucuya bağlanmamız işten bile değil.

Önceki yazımda bahsettiğim “Sovereign Keys” bu problemin çözülmesi için verilen önerilerden bir tanesi. Bu öneri dışından “Perspectives

https://www.puttygen.net/

, “Convergence” önerileri de her ne kadar şu anda aktif olarak geliştirilmiyor ve kullanılmıyor olsalar da işin özünü kavramak için incelenmeli.

Çözümler temelde aşağıda belirttiğim 3 yöntemi kullanıyor:

  1. Uzaysal tekrarlılık (Spatial redundancy): Bir sunucu tarafından verilen sertifikanın farklı ağ noktalarından elde edilmesi ve bu sertifikaların karşılaştırılması.
  2. Zamansal tekrarlılık (Temporal redundancy): Bir sertifikanın zaman içindeki değişimlerinin -ki buna farklı otoriteler tarafından farklı sertifakalar üretilmesi de dahil- kayıt altında tutulması ve olası sertifika değişimi içeren saldırılara karşı bir güvenlik katmanı oluşturulması.
  3. Veri tekrarlılığı (Data redundancy): Farklı noktalardan ve farklı zamanlarda elde edilen sertifika görünümlerinin tutarlılıklarının kontrol edilmesi. Dolayısıyla sertifika listelerini tutan ve sunan birimlerin verdiği bilgilerin doğruluğunun kontrol edilmesi.

Şu anda Google Chrome tarafından geliştirilmekte ve desteklenmekte olan çözüm ise “Certificate Transparency“. Bu öneri mevcut CA işleyiş sistemini bozmuyor ve bu sisteme birkaç ekleme ile bu sistemi dah güvenilir ve denetlenebilir hale getirmeye çalışıyor. Bu sistemdeki problem ise sunucu tarafından üretilmiş ve herhangi bir 3. taraf (CA vb.) imzalanmamış (self-signed) sertifikaların henüz sisteme dahil edilememiş olması.

Write a Comment

Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.