DNSCrypt, 24 saatlik bir geçerlilik süresi sunarak süresi dolmuş sertifikalar sorununu nasıl çözdü?

DNSCrypt, 24 saatlik bir geçerlilik süresi sunarak süresi dolmuş sertifikalar sorununu nasıl çözdü?

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 Firefox hikayesi aslında hala geçerli olduğunu gösteriyor. Maalesef sertifikaların süresi dolmaya devam ediyor.

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 sertifikanın süresi dolduUzantıları imzalamak için kullanıldı. Bu nedenle “geçersiz” olarak işaretlendiler ve doğrulanmadılar (teknik detaylar). Forumlarda geçici bir çözüm olarak uzantı imza doğrulamasının devre dışı bırakılması önerildi. about: config veya sistem saatini değiştirme.

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 kullanmayın yamayla çakışabileceğinden imza doğrulamasını atlayacak geçici çözüm yoktur.

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. Çözümleri iki kısma ayrılabilir. Öncelikle bunlar kısa vadeli sertifikalardır. İkincisi, kullanıcıları uzun vadeli olanların son kullanma tarihi konusunda uyarmak.

DNSCrypt

DNSCrypt, 24 saatlik bir geçerlilik süresi sunarak süresi dolmuş sertifikalar sorununu nasıl çözdü?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-proxy Linux, Windows ve MacOS istemcilerine manuel olarak kurulabilir. Ayrıca orada sunucu uygulamaları.

DNSCrypt, 24 saatlik bir geçerlilik süresi sunarak süresi dolmuş sertifikalar sorununu nasıl çözdü?

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 yazar24 saatte bir otomatik olarak değiştirilme süresi dolan sertifikalar sorununu çözdü. Prensip olarak, dnscrypt-proxy referans istemcisi herhangi bir geçerlilik süresine sahip sertifikaları kabul eder, ancak 24 saatten fazla geçerliyse "Bu sunucu için dnscrypt-proxy anahtar süresi çok uzun" uyarısı verir. Aynı zamanda, anahtarların (ve sertifikaların) hızlı bir şekilde değiştirildiği bir Docker görüntüsü yayınlandı.

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.

DNSCrypt, 24 saatlik bir geçerlilik süresi sunarak süresi dolmuş sertifikalar sorununu nasıl çözdü?


Kaynak: habr.com

Yorum ekle