8192 bitlik anahtarlar el sıkışmayı durduruyor; 1024 bitlik DH reddediliyor
Zıt düzeltmeleri olan iki boyut hatası: aşırı büyük bir anahtar, karşı taraf zaman aşımına uğrayana kadar el sıkışma süresini yakıyor; küçük bir DH grubu ise başlamadan reddediliyor.
Bir sunucuda istemciler bir süre takılır ve sonra yeniden bağlanır, bir diğeri ise anahtar boyutuyla ilgili bir mesajla bağlantıları hemen reddeder. Farklı hatalar gibi görünürler ve aynı hatanın zıt yönlere işaret etmesidir. El sıkışma kriptografisinin parametre boyutuyla büyüyen bir maliyeti vardır ve modern kütüphanelerin altına inmeyeceği bir tabanı da vardır. Malzemeyi boyutlandırmak kontrol listesidir ve ilk madde, iki hatadan hangisinin gerçekten sizde olduğuna karar vermektir.
Bir şeyi yeniden üretmeden önce hatayı okuyun
Zamanlama size çoğunu söyler. Birkaç saniye sürüp sonra ölen bir el sıkışma genellikle hesaplamanın karşı tarafın sabrını aştığı anlamına gelir, bu da donanım veya zaman aşımı için fazla büyük parametrelere işaret eder. Anahtar veya grup boyutunu adlandıran anında bir ret, diğer yöne, kütüphanenin hiç kabul etmeyeceği malzemeye işaret eder.
Bu ikisi zıt düzeltmeler gerektirir ve denemelerin çoğu tam burada yanılır. Küçük bir grubu zaten reddetmiş bir istemcide 8192 bitlik parametreleri yeniden üretmek yavaş durumu kötüleştirir, hızlı durum için hiçbir şey yapmaz. Bir dosyaya dokunmadan önce hangi belirtiyi gördüğünüzü yazın.
Ardından karşı taraftan ne istendiğini kontrol edin. Büyük bir sonlu alan grubu için yapılandırılmış bir sunucu, her istemciyi her yeniden müzakerede, yalnızca bağlanırken değil, aynı CPU süresini harcamaya zorlar. Sorun başlangıçta değil de düzenli aralıklarla ortaya çıkıyorsa, bu aralık hangi ayarın pahalı olduğuna dair güçlü bir ipucudur. Yeniden müzakere tüm hesaplamayı tekrarlar, bu yüzden her saat geri gelen bir takılma genellikle aynı maliyetin yeniden ödenmesidir.
Yavaş durum: donanımın karşılayamadığı malzeme
Diffie-Hellman ve RSA işi anahtar boyutuyla hızla büyür ve bunların hepsi tünelden herhangi bir trafik akmadan önce olur. Küçük bir yönlendiricide veya düşük güçlü bir istemcide, yeterince büyük bir grup değişimi diğer tarafın zaman aşımının ötesine itebilir, böylece bağlantı yeniden dener ya da hiçbir hata olmadan takılmış görünür.
Düzeltme, her karşı tarafın desteklediği ve her cihazın rahatça hesaplayabildiği bir boyuta inmektir. 2048 bitlik bir RSA anahtarı ve 2048 bitlik bir grup geniş uyumlu bir temel çizgi olarak kalır; daha büyüğü yalnızca tüm taraflar anlaştığında ve CPU bunu her yeniden müzakerade ödeyebildiğinde yardımcı olur. Bu temel çizginin üstündeki her şey bilinçli bir takastır, yükseltme değildir.
Boyut bir puan değildir ve bir karşılaştırma tablosundaki en büyük sayı otomatik olarak doğru seçim değildir. Politikanızın izin verdiği ve tüm karşı tarafların kabul ettiği en küçük değeri seçin, sonra iyileştiğini varsaymak yerine el sıkışmayı ölçün. Hâlâ zaman aşımına uğrayan daha küçük bir grup, boyutun hiçbir zaman tüm hikâye olmadığını söyler.
Hızlı durum: kütüphanenin reddettiği grup
Modern OpenSSL derlemeleri en küçük sonlu alan gruplarını doğrudan reddeder ve yükseltilmiş güvenlik düzeyi tabanı daha da yukarı iter. Onlarca yıllık bir parametre dosyasını taşıyan yönlendirici bellenimi olağan kaynaktır ve belirti, grubu veya anahtar boyutunu adlandıran bir mesajla hemen başarısız olan bağlantıdır. Bu hatada hiçbir şey aralıklı değildir ve onu tanımayı kolaylaştıran da tam olarak budur.
Denetimi atlamak için yapılandırmayı düzenlemek yerine dosyayı değiştirin. Güncel bir grup oluşturun, doğrulayın, sonra demonun gerçekten okuduğu yere kurun. Bir istemci yenisiyle başarıyla bağlanana kadar eski dosyayı saklayın:
openssl dhparam -out /etc/openvpn/ffdhe2048.pem 2048
openssl dhparam -in /etc/openvpn/ffdhe2048.pem -check -noout
ls -l /etc/openvpn/ffdhe2048.pemDenetim komutu dosyayı doğrular ve geçtiğinde yararlı bir şey yazdırmaz; liste, hizmetin yüklediği dosyayı değiştirdiğinizi, yanındaki eski kopyayı değil, doğrular. Yapılandırmayı o yola yönlendirin, demonu yeniden başlatın ve daha önce başarısız olan bir istemcinin artık el sıkışmayı tamamladığını doğrulayın.
Sunucu ayrıca bir güvenlik düzeyi veya sertifika profili ayarlıyorsa, grubun yanlış olduğu sonucuna varmadan önce onları okuyun. Daha katı bir sınıf isteyen bir profil, varsayılanın kabul edeceği malzemeyi reddedebilir ve bu ayarı kaldırmak, denetimi küresel olarak kapatmaktan daha dar bir değişikliktir.
Karşı taraf ve donanım için bir boyut seçin
Egzotik bir şey üretmeden önce uzak ucun neyi kaldırabildiğini öğrenin. 2048 bitlik bir grup için fazla eski bir cihaz değiştirilmesi gereken bir cihazdır, çünkü sunucuyu daha zayıf bir gruba yöneltmek yalnızca uyumluluk şikâyetini kesintiye çevirir. Kalıcı düzeltmeler daha eski parametrelere değil, daha yeni yazılıma doğru gider. Bu alandaki her geçici istisna, kalıcı yapılandırma olma eğilimindedir.
Sunucunun CPU'su sınır olduğunda, politikanın altına inmek yerine algoritmayı değiştirin. X25519 gibi bir eliptik eğri anahtar değişimi büyük bir sonlu alan grubundan çok daha ucuzdur ve geniş destek görür, bu da onu performans şikâyetine daha küçük bir RSA modülünden daha iyi bir yanıt yapar.
Ne seçerseniz seçin, tek bir gerçek bağlantıyla test edin ve el sıkışmanın ne kadar sürdüğüne bakın, yalnızca sonunda bağlanıp bağlanmadığına değil. On iki saniyede başarılı olan bir bağlantı, on beşte başarısız olanla aynı kök nedene sahiptir.
Seçimi kaydedin ki yeniden kurulum onu geçersiz kılmasın
Parametre dosyasını yapılandırma yönetimi altında tutun ve yanına boyutu, nedeni ve tarihi yazın. Kendi varsayılanlarını sessizce üreten yeniden kurulmuş bir sunucu, aynı hatanın altı ay sonra kimse özgün kararı açıklayamazken geri dönmesinin yoludur.
Aynı bilgileri uç noktanın ve profilin yanına yazın, böylece bir inceleme bunları dosya boyutundan yeniden kurgulamak zorunda kalmasın. Bir sonraki bağlantı takıldığında, o not beş dakikalık bir denetim ile yeni bir soruşturma arasındaki farktır. Bir sonraki mühendisin yavaş durumu hızlı için düşünülmüş bir düzeltmeyle çözmesini de engeller.