VPN özel anahtarındaki parola ifadesi gerçekte neyi korur
Diskteki dosyayı kilitler, çalışan tüneli veya hesap girişinizi değil. İstemin neyi kapsadığını, neyi kapsamadığını ve sızması durumunda ne yapılacağını öğrenin.
Bir VPN istemcisi başladığında görünen istemi yanlış okumak kolaydır. Bu, VPN hesabının parolası değildir, tünelin parolası değildir ve girilmesi bağlantının güvenli olduğunu kanıtlamaz. Bir özel anahtarın depolanmış bir temsilinin kilidini açar, böylece istemci anahtar malzemesini okuyup kimlik doğrulama için kullanabilir. Bundan sonra olan her şey başka bir sorudur.
Pratikte yanıt kenarlarda bozulur: insanlar parola ifadesinin çalışan tüneli koruduğunu veya değiştirilmesinin zaten sızmış anahtarın bir kopyasını iptal ettiğini varsayar. Her iki varsayım da başarısız olur ve her ikisi de bir kimlik bilgisini açıkta bırakırken operatörün bunun halledildiğine inandığı şekilde başarısız olur.
Bir diyalog, birkaç farklı sır
Özel anahtar parola ifadesi bir dosyanın şifresini çözer. Hesap parolası sizi bir hizmete doğrular. PKCS#12 içe aktarma parolası, bir anahtar ve sertifikasını içeren paketin şifresini çözer ve anahtarın kendi parola ifadesiyle aynı dize olmayabilir. Bu istemler neredeyse aynı görünebilir ve hangi sırrın nereye gittiğini tahmin etmek, anahtarların yanlış alana yapıştırılmasına yol açar.
Tünelin kendi şifrelemesi dördüncü şeydir. Veri kanalı el sıkışma sırasında müzakere edilen oturum anahtarlarını kullanır; özel anahtarın parola ifadesinin tek tek paketleri korumada hiçbir rolü yoktur. Biri anahtar dosyasını okuyabiliyorsa parola ifadesini çevrimdışı tahmin etmeye çalışabilir, ancak paketleri okuyabiliyorsa parola ifadesi önemsizdir.
Diskteki şifreleme neyi kapsar
Şifrelenmiş bir PEM anahtarı iki biçimde gelir ve başlık hangisine sahip olduğunuzu söyler. Modern PKCS#8 biçimi -----BEGIN ENCRYPTED PRIVATE KEY----- ile başlar; eski OpenVPN kurulumlarında hâlâ yaygın olan eski PEM biçimi -----BEGIN RSA PRIVATE KEY----- ile başlar ve hemen altında Proc-Type: 4,ENCRYPTED ve bir DEK-Info satırı taşır. Dosya, özel anahtarı parola ifadenizden türetilen bir anahtar altında şifrelenmiş olarak tutar, genellikle belirtilen yineleme sayısı veya iş faktörü olan parola tabanlı bir KDF aracılığıyla. OpenSSL pkey belgeleri biçimleri ve okurken geçerli olan parola ifadesi seçeneklerini kapsar.
Bundan iki sonuç çıkar. Zayıf bir parola ifadesi KDF'nin izin verdiği hızda çevrimdışı saldırıya açıktır, bu nedenle dosya şifrelenmiş olsa bile dosya izinleri ve yedeklere erişim önemlidir. Ve parola ifadesi olmadan yalnızca dosyayı ele geçiren saldırgan tahmin etmek zorundadır; dosyayı ve parola ifadesini birlikte ele geçiren anahtara sahiptir, sanki hiç şifrelenmemiş gibi.
head -3 vpn.key
openssl pkey -in vpn.key -noout -pubout
openssl pkcs12 -in bundle.p12 -info -noout
head -3 başlığı ve eski bir dosyada şifrelemeyi kanıtlayan Proc-Type ve DEK-Info satırlarını gösterir; tek bir satır hiçbir yönde kanıt değildir. pkey satırı parola ifadesini ister ve yalnızca ortak yarıyı yazdırır, bu da dosyanın ve parola ifadesinin çalıştığını özel anahtarı açığa çıkarmadan kanıtlar. Bu kontrol için -text kullanmayın: özel bileşenleri, privateExponent, prime1, prime2 ve geri kalanını yazdırır ve bu çıktı hiçbir yere yapıştırılmamalıdır, ne bir kayda, ne bir sohbete ne de bir günlüğe. PKCS#12 komutu ayrıca paketin ayrı bir MAC veya şifreleme parolası olup olmadığını söyler; bunu bir meslektaşınıza vermeden önce bilmekte fayda var.
Anahtar yüklendikten sonra neyi korumayı bırakır
Kilidi açmak o süreç için tek yönlü bir olaydır. İstemci KDF'den anahtarı ister, dosyanın şifresini çözer ve özel anahtarı ihtiyaç duyduğu sürece bellekte tutar. O andan itibaren parola ifadesi çalışan oturumla ilgili hiçbir şeyi korumaz: süreç belleğini de, çekirdek dökümünü de, istemciye bağlı hata ayıklama oturumunu da, anahtar kullanılırken alınan makine yedeğini de.
Bu, parola ifadeli bir SSH anahtarı veya bir parola yöneticisinin açılmış kasasıyla aynı sınırdır. Dosyanın hareketsiz halde çalınma maliyetini artırır ve kullanıcınız olarak çalışan kötü amaçlı yazılıma, istemciden imza isteyen yetkili bir uygulamaya veya belleği okuyabilen bir yöneticiye karşı hiçbir şey yapmaz. Bunu bir katman olarak görün, anahtarı ortalıkta bırakmayı güvenli kılan kontrol olarak değil.
İstem neden tekrar tekrar geri geliyor
Her yeniden bağlantıda yeniden soran istemci mutlaka bozuk değildir. Bazı istemciler parola ifadesini oturum için önbelleğe alır, bazıları işletim sisteminin anahtar zincirinde saklar ve bazıları bunu sağlayan bir yardımcıya yönlendirilebilir, bu nedenle hangi davranışı aldığınız istemciye ve yapılandırmasına bağlıdır, anahtar dosyasına değil.
Tekrarlanan istem gerçek şikayetse, anahtardan şifrelemeyi kaldırmadan önce istemcinin önbellekleme ve kimlik doğrulama seçeneklerini inceleyin. Parola ifadesini kaldırmak korunan dosyayı düz metin anahtara dönüştürür ve yeniden bağlantı, sahip olduğunuz tek hareketsiz kontrol pahasına sessizleşir. Daha iyi bir yanıt genellikle aynı dosya izinlerini kullanacağınız desteklenen bir kimlik bilgisi deposudur.
Kayıp ve ifşa aynı onarım değildir
Kaybolan parola ifadesi sertifikadan kurtarılamaz. Sertifika, bir adı bir anahtara bağlayan genel malzemedir; özel anahtara geri dönüş yolu ve parola ifadesi hakkında hiçbir ipucu içermez. Pratik seçenekler, anahtarın yetkili bir yedeği veya operatörün normal süreciyle verilen yeni bir kimliktir. Parola ifadesini 'kurtarmayı' teklif eden herkes, onu tahmin etmeyi teklif ediyordur.
İfşa farklı bir yanıt gerektirir. Aynı anahtarı yeni bir parola ifadesiyle yeniden şifrelemek anahtar malzemesini değiştirmez, bu nedenle başka bir yerde zaten açılmış bir kopya hâlâ çalışır. Onarım, kimlik bilgisini iptal etmek veya değiştirmektir: yeni bir anahtar ve sertifika verin, dağıtın ve eskisini karşı tarafta emekliye ayırın. Bu olana kadar dosya parolasını değiştirmek ev işidir, kontrol değil. Eski dosyayı yedeklerin dışında ancak yeni kimliğin çalıştığı doğrulandıktan sonra tutun ve hangi seri numarası veya parmak izinin onu değiştirdiğini kaydedin.