it-swarm-tr.com

Parola korumalı özel anahtarın güvenliği

Saldırgan, parola olmadan oluşturulan özel bir anahtar alırsa, açıkça o anahtarla korunan her şeye erişir. Özel anahtarlar ne kadar güvenli ayarlanmış ile bir parola? Saldırgan, parola korumalı bir anahtarı çalarsa, anahtardan ödün vermek ne kadar zor olur? Başka bir deyişle, bir saldırgan tarafından erişilse bile iyi bir parolaya sahip özel bir anahtar güvenli midir?

45
jrdioko

OpenSSL, OpenSSH ve GPG/PGP ile sarma algoritması, endişelenmenize gerek kalmayacak kadar güçlü olacaktır (ve endişelenmeniz gerekiyorsa, daha büyük sorunlarınız vardır ve bu en az endişenizdir). .

Herhangi bir şifre veya parola gibi, parolanın gücüne bağlıdır. 40 karakterlik bir parola, 256 bitlik bir anahtar kadar kaba kuvvet uygulamak zordur (çünkü ASCII yalnızca 7 bit kullanır) Güçlü parolalar için aynı kurallar burada geçerlidir:

  • Rastgele daha iyidir
  • Daha uzun daha güçlüdür
24
bahamat

Şifrelenmiş bir veri bloğu bir saldırganın eline geçtiğinde, sonsuza kadar güvenli değildir - bu, ne kadar süre ve hangi araçların kullanılabilir olduğu sorusudur. onu kır.

Dikkate almanız gerekenler:

  • sarma algoritmasının gücü - Bahamat'a OpenSSL, OpenSSH ve GPG/PGP hakkında inanmaya hazırım - bunlar oldukça iyi denetlenmiş bileşenler.

  • anahtar alanın boyut - yani - şifrenin boyutu ve karmaşıklığı - kaba kuvvet tahmininin tipik maliyetleri geçerlidir. Bazı anahtar depolama biçimleri, bir parolada kullanılabilecek karakter türlerini sınırlar - örneğin, JKS (Java Anahtar Deposu), birkaç özel karakteri ortadan kaldırarak potansiyeli azaltır Anahtar boyutunu belirli sayıda karaktere kırpan sistemlere de dikkat edin.

  • girişimin maliyeti Anahtarı açmak için hesaplama ne kadar pahalı? Bu kaba kuvvet girişimini yavaşlatacaktır.

  • hangi algoritma? - güvenli dosyanın nasıl saklandığına bağlıdır - şifreleme için hangi algoritmanın kullanıldığı açık mı?

  • karşılaştırılacak mevcut şifre metni var mı? Saldırgan başarılı olduğunu nasıl anlayacak - test mekanizması nedir? Bir anahtar deposunu yakalamanın daha güçlü unsurlarından biri, saldırganın anahtarı depolayan sistem tarafından daha fazla algılama yapmadan denemelerini test edebilmesidir.

  • saldırganın elinde kaç kaynak vardır? - Genellikle tehdit analizi saldırganın kaynaklarının ne olduğunu analiz etmeyi içerir. 1 bilgisayarı var mı? Bir bilgisayar bankası mı? Ve çalınan CPU gücünün tüm viral ağı emrinde mi? Yandaki 13 yaşındaki senaryo çocuğundan mı yoksa haydut bir ulustan mı bahsettiğinize bağlı.

  • anahtarın değişmesi ne kadar sürer? & veriler ne kadar süreyle korunmalıdır? - saldırganın şifre deposunu kırması içindeki verilerin yararlılığından daha uzun sürüyorsa mağaza güvenli ise yeterli kabul edilir

15
bethlakshmi

Martin Kleppmann :

[varsayılan OpenSSH] özel anahtar korumasının iki zayıf yönü vardır:

  • Özet algoritması MD5 olarak sabit kodlanmıştır, bu da biçimi değiştirmeden başka bir karma işlevine (örneğin SHA-1) yükseltmenin mümkün olmadığı anlamına gelir. MD5'in yeterince iyi olmadığı ortaya çıkarsa, bu bir sorun olabilir.
  • Karma işlevi yalnızca bir kez uygulanır - esneme yoktur. Bu bir sorundur, çünkü MD5 ve AES'in hesaplanması hızlıdır ve bu nedenle kısa bir parolanın kaba kuvvetle kırılması oldukça kolaydır.

Özel SSH anahtarınız yanlış ellere geçerse [ve varsayılan OpenSSH ayarları kullanılarak parola ile korunuyorsa ve parolanız bir sözlük Word ise, saniyeler içinde [şifresi çözülebilir] olabilir. ... Ama iyi haberler var: daha güvenli bir özel anahtar biçimine yükseltebilirsiniz ve her şey çalışmaya devam ediyor!

Daha sonra, daha güvenli bir şekilde şifrelenmiş bir özel anahtar elde etmek için RFC 5208'e göre "PKCS # 8" in nasıl kullanılacağını açıklar:

$ mv test_rsa_key test_rsa_key.old
$ openssl pkcs8 -topk8 -v2 des3 \
    -in test_rsa_key.old -passin 'pass:super secret passphrase' \
    -out test_rsa_key -passout 'pass:super secret passphrase'
7
sampablokuper

OpenSSH özel anahtarının şifrelenmesi savunmasız mı?

Özel bir anahtarın parola ile korunması, kripto konularında olduğu gibi dikkatli bir şekilde yapılmalıdır. Genel olarak yaklaşım, özel anahtarı, anahtar türetme işlevi aracılığıyla paroladan türetilen bir anahtar kullanarak simetrik bir algoritma ile şifrelemektir. Uygun bir anahtar türetme işlevinin klasik bir örneği RFC 2898 - PKCS # 5: Parola Tabanlı Şifreleme Belirtimi Sürüm 2.0 'dan PBKDF2'dir.

Colin Percival'ın scrypt sunumuna göre, "OpenSSH, anahtar dosyalarındaki parolalar için anahtar türlendirme işlevi olarak MD5'i kullanır". Bağlamdan bakıldığında, bu günlerde kaba-zorlamanın ne kadar hızlı olduğu göz önüne alındığında, tuz veya iterasyon kullanmadığını söylüyor gibi görünüyor. OpenSSH'nin özel anahtarları saklamak için kullandığı birkaç farklı biçim var, bu yüzden daha fazla ayrıntı ve tam olarak hangi sürümlerin etkilendiğini bilmek istiyorum, ancak bu PBKDF2 veya diğer yinelenen bir uzak ağlamaya benziyor , 1978'den beri var olan tuzlu teknikler .

PGP ve GPG'nin bir dosyada saklanan özel bir anahtarı korurken yineleme/germe teknikleri kullandığını iddia eden bir referans görüyorum, ancak yine de ayrıntıları henüz bilmiyorum.

4
nealmcb