it-swarm-tr.com

Bir şifreyi bölmenin bir avantajı var mı?

LANMAN (LM) hash hakkında okudum ve algoritmanın belirli bir bölümünü merak ediyorum.

LM karması aşağıdaki gibi hesaplanır:

  1. Kullanıcının ASCII şifresi büyük harfe dönüştürülür.
  2. Bu şifre 14 bayta boş olarak doldurulur.
  3. 14 baytlık parola iki adet 7 baytlık yarıya bölünür.
  4. Bu değerler, her 7 baytlık yarıdan bir tane olmak üzere iki DES anahtar) oluşturmak için kullanılır.
  5. İki anahtarın her biri, ASCII string "KGS! @ # $%" sabitini DES şifrelemek için kullanılır 8 baytlık iki metin değeriyle sonuçlanır.
  6. Bu iki şifre metni değeri, LM karması olan 16 baytlık bir değer oluşturmak üzere birleştirilir.

Bağlantılı Wikipedia makalesinde özetlenen ve başka bir yerde konuşulan birçok güvenlik zayıflığı var, ancak özellikle 3 ila 6. adımlarla ilgileniyorum. Bu tasarıma neyin yol açtığını merak ediyorum. Parolayı bölmenin, iki yarıyı ayrı ayrı şifrelemenin ve ardından iki parçayı tekrar bir karma oluşturmak üzere birleştirmenin gerçek bir güvenlik avantajı var mı? Yoksa bu sadece "belirsiz güvenlik" örneği midir?

45
Bill the Lizard

Parolayı karmalara bölmek bir avantaj değildir . Bugün artık geçerli olmayan belirsiz nedenlerle yapıldı.

LanMan karmasının bu şekilde çalışmasının nedeni, LanMan karmasının DES üzerine inşa edilmiş olmasıdır. DES 56 bitlik bir anahtarı kabul eder. Bu nedenle, 7 baytlık bir kümeye DES anahtar oluşturuyor gibi davranmak doğaldır. Kullanmanın iyi bir yolu yoktur) DES bir seferde 7 bayttan fazla hash yapmak için ve DES'ten daha uzun şifreler için bir karma oluşturmak için bir yola ihtiyacımız var, bu yüzden LanMan karma tasarımcıları şifreyi ikiye bölmeye karar verdiler yarıları.

Bugün, asla bu şekilde bir şifre karması oluşturmayacağız. Sadece Bcrypt, Scrypt, PBKDF2 ya da eşdeğerini kullanırdık ya da SHA256 gibi mevcut ilkellere dayanarak benzer bir şey inşa ederdik. Ama o zamanlar, Bcrypt, Scrypt, SHA256, vb. Yoktu, LanMan tasarımcılarının bu tür yıkıcı bir hata yapma fırsatını açtı.

Modern standartlara göre, LanMan hash kırılgan bir tasarımdır. Üzerinde çokçoksaldırı vardır. Çok zayıf. Muhtemelen bundan kaçınabiliyorlarsa bugün hiç kimse LanMan hash'ını kullanmamalıdır. (Diğerlerinin de belirttiği gibi, güvenliği zamanın standartlarına göre bile crummy. Adil bir nokta.)

38
D.W.

Parolayı bölmek, avantajı değil, zayıflığıdır . Her şifreyi bağımsız olarak yarıya indirmeye izin verir. ASCII karakterler (32 - 126 arası kodlar dahil) ile başlayarak, küçük harfleri kaldırarak şifre alfabesinde 127-32-26 = 69 olası karakter elde edersiniz. 697 olası yarılar, ki bu biraz aşağıda 243. Başka bir deyişle, bu kaba kuvvet yoluyla oldukça izlenebilir. Sözlüğe bile ihtiyacınız yok.

Bu, belirsizlikten kaynaklanan bir güvenlik değildir. Bu yetersizlik nedeniyle güvensizliktir.

Düzenleme: "kaba kuvvet ile son derece izlenebilir" de çeşitli optimizasyonlar için yol açar. LanMan'ın tuzlanmadığına dikkat edin, bu nedenle önceden hesaplanmış tablolar etkili olabilir (tablo oluşturma maliyetini bir kez ödersiniz, sonra birkaç yarım şifreler - bir şifre iki yarım şifre olduğu için aslında tek bir şifre için bile buna değer) . 2003 yılında, Philippe Oechslin gelişmiş zaman-bellek ödünleşimi ("Rainbow tablosu" terimini icat ettiği makale) ve LanMan şifrelerini kırmak için tablolar hesapladı. Kendini alfasayısal şifrelerle sınırladı (harfler ve rakamlar, ancak özel işaretler yok), böylece bir boşluk 237. Bu durumda, masaların kümülatif boyutu,% 99.9 çatlama verimliliği ve bir dakikanın altında saldırı süresi ile 1.4 GB olacaktır.

Bir 2 ile43 boşluk, yani 64 kat daha büyük, tablo boyutu ve saldırı süresi her ikisi de 16 kat artar (bu 642/3), bu yüzden 23 GB civarında konuşuyoruz (bugünün diskleri için çok fazla değil) ve 15 dakikalık bir saldırı. Aslında, saldırı bundan daha hızlı olurdu, çünkü darboğaz sabit diskte arama yapıyor ve akıllı saldırgan, mekanik bir sabit diskten 50 kat daha hızlı arama yapabilen bir SSD kullanacak (32 GB SSD'nin maliyeti 70 $ ...). Masa oluşturma çabası (bir kerelik harcama) tek bir bilgisayarda birkaç hafta veya iyi bir bulutta birkaç gün sürebilir, bu yüzden oldukça ucuzdur.

Görünüşe göre , bu tür tablolar zaten var ...

54
Thomas Pornin

Bir şeyin daha karmaşık olması, onu daha güvenli hale getirmez. Windows kutumda bir şifre kırıcı çalıştırdım ve şifreleri 8 karakter dizesine bölündü ve diğer dizeden bağımsız olarak her dizeyi kırdı, bu da işlemi son derece hızlı bir şekilde gerçekleştirdi.

Bu yüzden pratik bir bakış açısından bir şifreyi bölmek yararlı değildir ve @Thomas, matematiksel olarak neden yararlı olmadığını zaten ele almıştır.

3
MasterZ