it-swarm-tr.com

Windows 7 Parola Karma Güvenliği

Geçenlerde, Windows kullanıcı hesabı parolalarını kırmanın parola karmalarını inceleyerek kolay olduğunu gösteren bir sayıofkaynaklar ile karşılaştım.

Bu karmaların SAM dosyasında iki biçimde saklandığını anlıyorum: LM ve NTLM . LM güvensizdir (ve Vista'dan beri anlamlı olanı saklanmaz, değil mi?). Bununla birlikte, NTLM de kriptografik olarak zayıftır ve rahatsız edici bir şekilde hızlı bir şekilde kırılabilir.

Her durumda, "güçlü" parolaları düşündüğümde bile, onları birkaç dakika içinde kırıldığını gördüm - sadece bilgisayarı bir flash sürücüden Linux'a yeniden başlatarak ve ardından parolaları ayıklayan bir program çalıştırarak hashes. Bu bana çok büyük bir kırılganlık gibi geliyor.

Bunu önlemek için çevrimiçi olarak bulabildiğim tek şey, daha zayıf LM karmasının anlamlı olmadığını garanti etmek için daha uzun bir şifre kullanmaktı - ancak NTLM hala zayıf.

Bu tür saldırılara karşı nasıl korunacağını bilen var mı?

17
imallett

Burada dikkate alınması gereken birkaç nokta var. Microsoft tarafından Windows sistemlerindeki hesap veritabanı için iki algoritma kullanılmıştır:

LM (LAN Yöneticisi)

NTLM (NT LAN Yöneticisi)

Sisteminize fiziksel erişimi olan bir saldırgan, SAM (Güvenlik Hesapları Yöneticisi) veritabanının içeriğini tüm yerel hesaplar için kolayca dökebilir ve daha sonra Ophcrack ( http://ophcrack.sourceforge.net ) karma değerlere karşı Rainbow tablo saldırıları gerçekleştirmek için.

Ancak, gerçek riskin ne olduğunu belirlemeniz gerekir: saldırgan şifreyi kırabilir ve/veya saldırgan sisteme erişebilir. Bu önemlidir, çünkü sistemden ödün vermek için şifreyi kırmak (değerini tahmin etmek) gerekmez. Diğer birçok araç, SAM veritabanındaki karmayı saldırgan tarafından seçilen bir şeyle değiştirir. Bu, sistemi tehlikeye atar, ancak parolanın kendisini zorunlu tutmaz. Tüm disk şifrelemesi her iki sorunu da ilk savunma hattı olarak çözer: Saldırganınız birimi SAM veritabanında dolaşmak için kullandıkları herhangi bir araca bağlayamaz. Bu rotada giderseniz çok sayıda ticari satıcı çözüm sunar. Truecrypt ( http://www.truecrypt.org/ ) mükemmel bir ücretsiz program sunar. Bitlocker veya herhangi bir OS ile entegre şifreleme çözümü, soğuk önyükleme saldırılarına kolayca duyarlı olduklarından hemen hemen hiç değersizdir.

Daha yeni çözümlerden biri, erişim için kendi ürün yazılımlarına önyükleme gerektiren kendi kendini şifreleyen sürücülerdir.

4
Paul Horbal

Tüm bu yanıtta, saldırganın okuma erişimi sağlayabileceği bir sunucuda saklandığı gibi, şifrelenmiş bir karmadan parolayı (veya eşdeğer bir parolayı) kurtarma sorununu düşünüyorum.

NTLM karması zayıftır, ancak eski LM karması kadar zayıf değildir.

Eski LM karması birkaç büyük sermaye zayıflığı içerir:

  • Büyük küçük harf duyarlı değil.
  • 14 karakterle sınırlıdır.
  • Parolayı, ayrı olarak özetlenen iki 7 karakterlik yarıya böler.

Bu son zayıflık, çok etkili bir çatlamaya izin verir (şifreyi seçerken gösterilen özenten bağımsız olarak); bazı ayrıntılar için bu cevaba bakınız.

Daha az eski NTLM parola üzerinden yalnızca MD4 hesaplanır. Bu sefer şifre büyük/küçük harfe duyarlıdır ve oldukça uzun olabilir. Görünüşe göre 127 karaktere kadar olabilen gerçek maksimum şifre uzunluğu ile ilgili bazı anlaşmazlıklar vardır. MD4, parolanın UTF-16 kodlaması üzerinden hesaplandığından, Unicode dizisinin tamamı teorik olarak kullanılabilir, ancak kullanıcının parolayı düzenli olarak (ve görsel geri bildirim olmadan) yazması gerektiğinden ), yazdırılabilir ASCII setinin ötesindeki karakterleri kullanarak sorun arar).

NTLM karma işleminde zayıf olan şey, tuzsuz olması ve MD4'ün hızlı (MD4 de çeşitli şekillerde şifreli olarak kırılmasıdır, ancak parola karma işleminde kullanılan ham preimage direnci için değildir; MD4 hiç olmadığı kadar sağlam). MD4 aslında MD5'ten daha hızlıdır. Yeni bir GPU saniyede birkaç milyarlarca hesaplar. Bu, saldırganın çok sayıda potansiyel parola ( sözlük saldırısı olarak bilinir) keşfetmesini kolaylaştırır. Tek savunma, şifrelerinizi daha geniş bir gruptan seçmektir.

Şuna biraz matematik atalım: NTLM tuzsuz olduğu için, adanmış bir saldırgan grubu büyük bir inşa etmeye değer bulabilir Gökkuşağı tablosu . Çeşitli olası optimizasyonlar vardır, ancak kural olarak işler şöyle olur:

  • t adlı bir güvenlik parametresi var; bu, Gökkuşağı tablosundaki bir zincirin ortalama uzunluğu.
  • Tablonun kapsadığı parola kümesinin boyutu [~ # ~] n [~ # ~] ise, depolama gereksinimleri yaklaşık 10 * N/t bayt (sıralanmış zincir ucu başına 10 bayt makul bir tahmindir).
  • Tabloyu oluşturmak yaklaşık 1.7 * N karma işlevi çağırma maliyetini gerektirir.
  • one tablo ile şifre hakkında t hakkında bilgi gerektirir2 karma fonksiyonunun ve tablodaki t aramaların yapılması.

Tablo yüz mekanik sabit diske bölünmüşse, saniyede yaklaşık 10000 arama yapılabilir. Saldırgan gerçekten motive olursa, şifre başına bir saat kadar zaman harcamak isteyebilir, bu da aramalar için maksimum t 3600000 anlamına gelir (diyelim 222); ilgili CPU maliyeti yaklaşık 2'ye düşer32 saniye başına hashes, ki bu son birkaç GPU ile mümkündür. Yüz diskler 300 TB depolama (3 TB disk) hakkında konuşuyorum, bu da olası = [~ # ~] n [~ # ~] ila yaklaşık 267. Bu oldukça büyük, ancak teknolojik olarak uygulanabilir. Saldırgan grubumuz yüz GPU (ve büyük klima ünitesi satın alabilir ve birkaç ay içinde bu tabloyu hesaplayarak yapılabilir.

Bu nedenle, motive olmuş rakiplerimizi yenmek için, [~ # ~] n [~ # ~] 'dan daha büyük bir setten rastgele şifreler seçmemiz gerekiyor. Olası şifre setimizin boyutu 2'den büyükse77 ve şifrelerimiz bu sette rastgele ve aynı şekilde seçilir (yani şifre entropisi 77 bit veya daha fazladır), o zaman saldırganın sadece 1/1000 şansı vardır bir tablo ile verilen bir şifre kırma. Bu onu caydırmak için yeterli olmalı.

77 bit entropi nasıl elde edilir? Kendimizi harflerle (büyük harf ve küçük harf) ve rakamlarla kısıtlarsak, şifrenin rastgele klavyelerde yazılabilmesi için, karakter başına 6 bitlik entropi biraz daha az olabilir. Bu nedenle, 13 karakter yeterlidir . Şişme değil mi? Sadece 13! Büyük parolalara gitmeye gerek yok. Ama küçük türü unutmayın: bu 13 tamamen rastgele harf veya rakam. Bu karakterlerin bir insan = seçin ve hatta 13 karakterden oluşan bir düzine şifre üretmesine ve en sevdiği şifreyi seçmesine izin verilemez. Jeneratörü alıyorsunuz, one şifre üretiyorsunuz ve öğreniyorsunuz. Zihinsel çaba, NTLM gibi tuzsuz hızlı şifre hashing mekanizması kullanmanın bedeli.

(Tabii ki, yukarıda açıklanan saldırgan grubu gerçekçi. Karmaşıklığı biraz arttırmak isteyebilirsiniz, böylece şifreleriniz yarının saldırganlarına göre de güçlü olur; daha güvenli olmasını 14 veya 15 karakter yapın.)

18
Thomas Pornin

Genel olarak, çoğu sistemde daha uzun bir şifre her zaman daha iyidir.

Elbette NTLM için Rainbow tabloları vardır (örneğin, http://www.freerainbowtables.com/en/tables2/ )

Ancak kaba bir zorlama bakış açısından, kilitlenmeden önce başarısız giriş denemelerinin sayısını sınırlandırmalısınız. Bu, yerel politika kullanılarak ayarlanabilir. 3 başarısız deneme, sonra onları engeller.

Fiziksel güvenlik her şeyi etkiliyor. BIOS'un bir cd veya usb önyüklemesini engelleyin ve kutuya bir kilit yerleştirin. Tabii ki, yukarıdaki yorumu tekrar ediyorum, tam disk şifreleme kullanıyorum, hatta belki de çok faktörlü. Linux'a şifreli bir sürücüyü sihirli bir şekilde bağlayamazsınız, parolayı ve/veya anahtarı bilmeniz gerekir.

Soğuk çizme ve kötü hizmetçi, birinin makinenizi kırmak için gerçekten zaman harcamasını gerektirir. Yerel evinizde, kötü amaçlı yazılım indirmeniz için kandırılmış olmanız veya eşlenmemiş yazılımınız olması ve sadece root (ahem, yönetici) almanız ve şifrenizi kırmakla ilgilenmemeniz gerekir.

Gerçek gizli şeyleriniz varsa, tam disk şifrelemesi yapın ve önemli şeyleri ikinci düzey bir şifreleme kabına koyun.

Bir keresinde tek bilgisayarlı bir adamın, tek güvenli bilgisayarın bir balta ile parçalanmış ve daha sonra yanmış olduğunu söylediğini duydum. :-)

5
Eric G