VPN'de simetrik ve açık anahtarlı şifreleme: her biri ne yapar
VPN, eşleri açık anahtarlarla doğrular ve ardından paketleri türetilmiş oturum anahtarlarıyla şifreler. Sertifikaları ve trafik anahtarlarını ayrı nesneler olarak ele alın.
İnsanlar VPN'yi „açık anahtarlı şifreleme kullanan“ bir şey olarak anlatır ve sonra her paketin sunucunun sertifikasıyla kilitlendiğini hayal eder. Bu resim, bir yapılandırma dosyasını veya paket kaydını okurken önem kazanan biçimde yanlıştır. VPN'nin açık anahtar yarısı, eşin kim olduğunu kanıtlamak ve gizli malzeme üzerinde anlaşmakla ilgilidir; simetrik yarısı, trafiği gerçekten koruyan kısımdır, paket paket, oturumun tüm ömrü boyunca.
İki yarının ömrü, arıza biçimleri ve güvenle yayımlanabilecek şeyleri farklıdır. Onları ayırdığınızda, „RSA 2048, AES-128'den zayıf mı“ gibi sorular kafa karıştırmayı bırakır, çünkü hiçbir zaman karşılaştırılabilir değillerdi.
Birbirine karıştırılan üç işlem
Açık anahtarlı kriptografi, en az üç farklı işlemin şemsiyesidir. Bir imza, özel anahtar sahibinin belirli bir mesajı onayladığını kanıtlar. Anahtar anlaşması, iki eşin açıkça değiştirdikleri değerlerden ortak bir sır türetmesini sağlar. Açık anahtarlı şifreleme, veriyi birinin açık anahtarı altında saklar; böylece yalnızca özel anahtar açabilir.
VPN el sıkışmaları çoğunlukla ilk ikisini kullanır. Sertifika bir şifreleme anahtarı değildir; bir adı açık anahtara bağlayan imzalı bir bildirimdir ve karşı tarafın yeni aldığı anahtara güvenip güvenmeyeceğine karar vermesini sağlar. Örneğin, TLS 1.3'te anahtar kurulumu (EC)DHE anahtar anlaşması ve sertifika imzalarına dayanır, oturumun sunucunun açık anahtarıyla şifrelenmesine değil.
El sıkışma gerçekte neyi üretir
Modern bir el sıkışmada her taraf geçici bir anahtar çifti üretir, açık yarıları değiştirir ve kablodan hiç geçmeyen ortak bir sır hesaplar. Bu sır daha sonra anahtar türetme işlevinden geçerek her yön için ayrı anahtarlar, ayrıca kayıt katmanının gerektirdiği nonce ve IV malzemesini üretir. WireGuard bunu Noise tabanlı yapısıyla yapar; TLS 1.3 bunu el sıkışma transkripti üzerinde HKDF ile yapar.
Uzun vadeli kimlik bilgisi — sertifika ve özel anahtar ya da statik bir WireGuard anahtarı — bu değişimi doğrular. Transkripti imzalar ya da ona karışır; böylece yabancı biri eşin yerine el sıkışmayı tamamlayamaz. Sonrasında kimlik bilgisi paket başına iş yapmaz. Yapsaydı her paket özel anahtar işlemi gerektirirdi ve yoğun bir tünel yığındaki en yavaş işlemle sınırlanırdı.
Bundan iki yan etki doğar. Birincisi, oturum anahtarları her seferinde yenidir; bu yüzden uzun vadeli anahtarı sonradan çalan bir saldırgan, anlaşma geçici idiyse daha önce kaydedilmiş oturumların şifresini çözemez. İkincisi, sızan bir oturum anahtarı bir oturumu tehlikeye atar, kimliği değil.
Büyük veri hacimleri neden simetrik anahtar kullanır
Simetrik şifreler hacmi iyi kaldırır: AES-GCM veya ChaCha20-Poly1305 her paketi bellekte zaten bulunan bir anahtarla işler, başlığı doğrular ve bir sayacı artırır. Alıcı taraf nonce'u ve kimlik doğrulama etiketini denetler, başarısız veya yinelenen her şeyi atar. Bu, sıradan donanımda hat hızında çalışacak kadar ucuzdur ve aynı yapı tek geçişte gizlilik ile bütünlük verir.
Yapı aynı zamanda uygulama hatalarının çoğunun yaşadığı yerdir. GCM'de yinelenen nonce gizliliği ve özgünlüğü birden bozar; bu yüzden protokoller yön başına anahtar türetir ve açık bir sayaç ya da dönem tutar. Bir paket kaydı okuyorsanız ve şifreli metnin uzunluğu düz metne sabit bir ek eklenmiş hâliyle eşleşiyorsa, çalışan simetrik katmandır, paket başına açık anahtar işlemi değil.
Ömür, anahtar yenileme ve ileriye dönük gizlilik
Oturum anahtarları sona ermek üzere tasarlanmıştır. TLS 1.3, KeyUpdate mesajının trafik anahtarlarını döndürmesine izin verir; WireGuard yapılandırılmış süre veya mesaj sayısından sonra oturumu yeniler ve eskisini yoldaki paketler için kısa süre tutar. OpenVPN kendi veri kanalının anahtarlarını bir çizelgeye göre yeniden görüşür, reneg-sec aralığı denetler.
Bu döndürmelerin hiçbiri sertifika yenilemekle aynı değildir. Sertifika bir yıl geçerli olabilirken oturum anahtarları birkaç dakikada bir değişir ve sertifika, çalışan tünelin anahtarlarına dokunmadan değiştirilebilir. Son kullanma planlarken hangi nesneyi döndürdüğünüzü sorun; yanıt, istemcilerin yeniden bağlanacağını mı yoksa yalnızca anahtarları mı yenileyeceğini belirler.
Nesneleri karıştırmadan yapılandırma ve tanılama okumak
Pratikte tam bir protokolü ve desteklediği ilkelleri seçersiniz, kendinizinkini kurmazsınız. OpenVPN'nin --tls-crypt anahtarı denetim kanalını korur; veri kanalı anlaşılmış simetrik şifreleri kullanır. WireGuard'ın PrivateKey ve PublicKey girdileri kimlik malzemesidir, taşıma anahtarları ise içeride türetilir. Bu alanları aynı tür sır olarak okumak, özel anahtarın olması gereken yere açık anahtar yapıştırmak gibi hatalara yol açar.
Açık malzemeyi özelden ayrı tutun. Bir sertifika, bir WireGuard açık anahtarı ve bir parmak izi bir kayıtta paylaşmak için güvenlidir. Özel anahtar, önceden paylaşılmış anahtar ve dışa aktarılmış oturum anahtarı değildir. Gücü karşılaştırırken tek bir tür içinde karşılaştırın: eliptik eğri tanımlayıcısı, RSA modül büyüklüğü ve AES anahtar büyüklüğü farklı varsayımlar altında farklı şeyleri ölçer. TLS 1.3 belirtimi tüneliniz TLS olmasa bile iki katmanın nasıl uyuştuğuna dair yararlı bir kaynaktır.