Geçmişte, sertifikaların manuel olarak yenilenmesi gerektiğinden geçerliliği genellikle sona eriyordu. İnsanlar bunu yapmayı unuttular. Let's Encrypt'in ortaya çıkışı ve otomatik güncelleme prosedürü ile sorunun çözülmesi gerekiyor gibi görünüyor. Ama son zamanlarda
Hikayeyi kaçırmış olabilirsiniz, 4 Mayıs 2019 gece yarısı neredeyse tüm Firefox uzantıları aniden çalışmayı durdurdu.
Anlaşıldığı üzere, büyük başarısızlık Mozilla'nın
Mozilla, geçersiz sertifika sorununu çözen Firefox 66.0.4 yamasını derhal yayınladı ve tüm uzantılar normale döndü. Geliştiriciler onu yüklemenizi önerir ve
Ancak bu hikaye, sertifika süresinin dolmasının günümüzde acil bir sorun olmaya devam ettiğini bir kez daha gösteriyor.
Bu bağlamda, protokol geliştiricilerinin bu görevi nasıl ele aldıklarına oldukça orijinal bir şekilde bakmak ilginçtir.
DNSCrypt
DNSCrypt bir DNS trafiği şifreleme protokolüdür. DNS iletişimlerini müdahalelerden ve MiTM'den korur ve ayrıca DNS sorgu düzeyinde engellemeyi atlamanıza olanak tanır.
Protokol, istemci ile sunucu arasındaki DNS trafiğini, UDP ve TCP taşıma protokolleri üzerinden çalışan, kriptografik bir yapıda sarar. Bunu kullanmak için hem istemcinin hem de DNS çözümleyicinin DNSCrypt'i desteklemesi gerekir. Örneğin, Mart 2016'dan bu yana DNS sunucularında ve Yandex tarayıcısında etkinleştirilmiştir. Google ve Cloudflare dahil olmak üzere diğer bazı sağlayıcılar da destek duyurdu. Maalesef bunların çoğu yok (resmi web sitesinde 152 genel DNS sunucusu listeleniyor). Ama program
DNSCrypt nasıl çalışır? Kısaca istemci, seçilen sağlayıcının ortak anahtarını alır ve bunu sertifikalarını doğrulamak için kullanır. Oturumun kısa vadeli genel anahtarları ve şifre paketi tanımlayıcısı zaten oradadır. İstemcilerin her istek için yeni bir anahtar oluşturması, sunucuların ise anahtarları değiştirmesi teşvik edilir. her 24 saatte bir. Anahtar alışverişi yaparken, imzalama için - EdDSA, blok şifreleme için - XSalsa25519-Poly20 veya XChaCha1305-Poly20 için X1305 algoritması kullanılır.
Protokol geliştiricilerinden biri Frank Denis
Birincisi, güvenlik açısından son derece faydalıdır: Sunucunun güvenliği ihlal edilirse veya anahtar sızdırılırsa, dünkü trafiğin şifresi çözülemez. Anahtar zaten değişti. Bu durum, sağlayıcıları şifreli trafik de dahil olmak üzere tüm trafiği depolamaya zorlayan Yarovaya Yasası'nın uygulanmasında muhtemelen bir sorun oluşturacaktır. Bunun anlamı, daha sonra gerekirse siteden anahtar istenerek şifrenin çözülebileceğidir. Ancak bu durumda site bunu sağlayamaz çünkü kısa vadeli anahtarlar kullanır ve eskileri siler.
Ancak Denis, en önemlisi, kısa vadeli anahtarların sunucuları ilk günden itibaren otomasyon kurmaya zorladığını yazıyor. Sunucu ağa bağlanıyorsa ve anahtar değiştirme komut dosyaları yapılandırılmamışsa veya çalışmıyorsa bu durum hemen tespit edilecektir.
Otomasyon anahtarları birkaç yılda bir değiştirdiğinde ona güvenilemez ve insanlar sertifikanın süresinin dolduğunu unutabilir. Anahtarları her gün değiştirirseniz bu durum anında tespit edilecektir.
Aynı zamanda, eğer otomasyon normal şekilde yapılandırılmışsa, anahtarların ne sıklıkta değiştiği önemli değildir: her yıl, her üç ayda bir veya günde üç kez. Frank Denis, her şey 24 saatten fazla çalışırsa sonsuza kadar çalışacağını yazıyor. Ona göre, protokolün ikinci versiyonundaki günlük anahtar rotasyonu önerisi, bunu uygulayan hazır Docker görüntüsüyle birlikte, süresi dolmuş sertifikalara sahip sunucuların sayısını etkili bir şekilde azaltırken aynı zamanda güvenliği de artırdı.
Ancak bazı sağlayıcılar yine de bazı teknik nedenlerden dolayı sertifika geçerlilik süresini 24 saatten daha uzun bir süreye ayarlamaya karar vermiştir. Bu sorun, dnscrypt-proxy'deki birkaç satır kodla büyük ölçüde çözüldü: Kullanıcılar, sertifikanın süresi dolmadan 30 gün önce bilgilendirici bir uyarı alır, geçerlilik süresi dolmadan 7 gün önce daha yüksek önem düzeyine sahip başka bir mesaj alır ve sertifikada kalan sertifika varsa kritik bir mesaj alır. Geçerlilik 24 saatten az. Bu yalnızca başlangıçta uzun bir geçerlilik süresine sahip olan sertifikalar için geçerlidir.
Bu mesajlar kullanıcılara çok geç olmadan DNS operatörlerini yaklaşan sertifika süresinin dolması konusunda bilgilendirme fırsatı verir.
Belki tüm Firefox kullanıcıları böyle bir mesaj alsaydı, muhtemelen birileri geliştiricileri bilgilendirecek ve sertifikanın süresinin dolmasına izin vermeyecekti. Frank Denis, "Genel DNS sunucuları listesinde son iki veya üç yılda sertifikasının süresi dolmuş tek bir DNSCrypt sunucusu hatırlamıyorum" diye yazıyor. Her durumda, uzantıları uyarı vermeden devre dışı bırakmak yerine, önce kullanıcıları uyarmak muhtemelen daha iyidir.
Kaynak: habr.com