Bir dosya, orijinal SHA-1 Hash'ini koruyacak şekilde kötü amaçlı olarak değiştirilebilir mi?


33

Göre bu yazıda, ve diğerleri, SHA-1 güvenli değildir.

Benim durumumda, şifreler veya dijital sertifikalar ile ilgilenmiyorum. Dosya bütünlüğü konusunda endişeliyim.

Bir dosyanın (örn. Bir ISO imgesi veya yürütülebilir dosya) kötü niyetli bir şekilde değiştirilmesi:

  • Orijinal dosyanın SHA-1 karmasını korur ve
  • Dosyanın genel içeriğini ve çalışmasını korur (ancak elbette şimdi orijinal olarak orada bulunmayan kötü amaçlı içeriği de içerir)

Gördüğüm gibi, bir dosyayı SHA-1 çarpışması sağlayacak şekilde değiştirmek, dosyayı tamamen işe yaramaz hale getirecektir. ISO tamamen bozulmuş ya da çalıştırılabilir dosya, tamamen çalıştırılabilir bir dosya bile olmayacaktı.

Ancak, gördüğüm şekilde yanlış olabilir. Şu ana kadar Google aramalarında SHA-1'in dosya doğrulamaya uygunluğuyla ilgili hiçbir şey bulamadım. Herhangi bir görüş var mı?


7
Cevap, duruma bağlı". ISO, çok sayıda jpeg veya film dosyası içeriyorsa - hedef yürütülebilir programınızla birlikte mümkün ise, o zaman mümkündür. JPEG dosyalarını, boyutlarını veya görsel görünümünü değiştirmeden oldukça çarpıcı bir şekilde değiştirebilirsiniz. Sonuçta, dosya ne kadar büyükse, o kadar çok oynamak zorunda kalırsınız ve tahribatsız çarpışma şansı artar.
Paul

7
Tam olarak, birçok web sitesi, indirmenizi doğrulamanıza izin vermek için SHA-1 karmasını listeler. Bunu düşününce, bir hacker'ın içeriği ve yayınlanan karmaşayı değiştirerek bir web sitesini tehlikeye atması çok daha muhtemel görünüyor . O zaman gerçekten battın.
misha256 16.03.2015

1
Tabii ki, sorum özellikle SHA-1 hakkında, özellikle Microsoft / MSDN'den indirilen dosyalarda oldukça yaygın olduğu için soruyor. Tabii bazı web siteleri vb MD5, diğerleri SHA256, yayımlamak Of
misha256

2
Sorusu neden olur, olduğu istiyorum olan bir karma kullanımı herhangi kolay kullanıma kadar hızlı sadece olan alternatifler varken, bilinen açıkları, yaramayanlara yaygın olarak kullanılabilir (örneğin. SHA-256) ? Ek olarak, kriptografların yalnızca bir güvenlik açığı bulunduktan sonra bir güvensiz olduğunu beyan etmelerinin bir nedeni var: tarih, bir tane bulunduğunda diğerlerinin de hızlı bir şekilde takip ettiğini göstermiştir. Ünlü Bruce Schneier alıntı "Onlar kötü olsun asla, saldırılar her zaman daha iyi"
Danny Pflughoeft - BlueRaja

3
@ misha256 Bu sha1 karmaları, güvenlik için değil, indirme bozulmalarını kontrol etmeniz içindir. Güvenlik istiyorsanız gpg imzalı dosyaları kullanın
Daenyth

Yanıtlar:


41

SHA-1 için henüz kimse bunu yapmadı. Teoride mümkündür, ancak yine de pratik değildir. SHA-1’deki güvensizlikle ilgili raporlar, güvenlik seviyesinin olmasını istediğimiz kadar yüksek olmadığı ve bunun düşündüğümüz kadar endişelenmemiz gereken yıllar olmadığı anlamına gelir.

Aynı SHA-1 karma ile aynı dosyayı, aynı SHA-1 karma ile iki dosya oluşturmaktan daha zor bir dosya üretmek daha zordur. Ve bildiğimiz kadarıyla, dünyanın hiçbir yerinde kimse bu kolay görevi bile başaramadı. Bu olsa yarın olamayacağı anlamına gelmez.


SHA-1'e belirli bir dosya ile çarpışmalar için bilinen bir saldırı bile var mı? O saldırı MD5 veya SHA-1 ya bulunamadı edilmemiştir izlenim oldu (sadece bir çarpışma saldırı değil, bir ikinci öngörüntü saldırı yoktur)
cpast

@cpast Flame kötü amaçlı yazılımı Microsoft'ta görünmek ve Windows Update'i kaçırmak için bir MD5 çakışması kullandı. Seçim yapmak için bir sürü Microsoft sertifikası almış olabilirler, ancak aynı MD5 ile 2 dosya bulmaya çalışmıyorlardı.
Aron Foster,

2
@Aron Hayır, verilen bir dosya ile çarpışma örneği değildi. Flame ile Microsoft, sertifika imzalama isteğine göre X.509 sertifikalarını imzalayacak bir lisans sunucusuna sahipti; bu, saldırganın belirli sınırlar içinde imzalananları kontrol ettiği anlamına geliyor. Bir çarpışma buldukları önceden var olan bir sertifika yoktu; Microsoft, aktivasyonun bir parçası olarak müşterilere ait CSR'leri imzaladı;
Mart'ta

2
@OlivierDulac Hayır, gerçekten de hiç yapılmamıştır. Bilinen bir SHA-1 çarpışması yoktur. Tahmini maliyet sadece bir tahmindir - birisinin yapması değil ve bu onun ne kadara mal olduğunu düşündüğümüzdür, hiç kimsenin yapmamış olduğunu, bunun ne kadara mal olacağını düşünüyoruz .
Mart’ta

4
@cpast Yapılıp yapılmadığından emin değiliz, ancak 3 milyon dolarlık bir saldırı NSA'nın yıllık bütçesinin% 0.03'ünden daha azdır (aslında, donanıma sahip oldukları ve sahip olmadıkları için daha ucuz olması gerekir) kiralamak zorunda). Bunu yapmak için uygun araç ve motivasyonları bulunduğundan, muhtemelen çoktan yaptıkları sonucuna varmak mantıklıdır. Alev'i hatırla .
bain

26

Teorik olarak mümkün, ancak henüz yapılmamıştır.

Aradığın şeye "hash çarpışması" denir: aynı karıĢıma sahip iki dosya. SHA-1 gibi şifreleme karma kodları genellikle bunu zorlaştırmak için tasarlanmıştır. SHA-1 bir 160 bit kod olduğundan, ortalama 2 ^ 159 kaba kuvvet bir kopyasını bulmaya çalışır. Kriptografik bir karmaya karşı güvenilir şekilde daha iyisini yapan bir algoritma bulunursa, karma "kırılmış" olarak kabul edilir.

MD-5 çok kırılmış bir karma örneğidir. Ortalama 2 ^ 127 deneme gerektiren 128 bitlik bir güce sahip olması gerekiyordu. Bilindiği gibi, güvenlik açıklarını kötüye kullanmak, gereken gerçek girişim sayısı 2 ^ 47 kadar düşük olabilir. Bu, 2 ^ 127'den küçük bir LOT'tur. Aslında, bir modern bilgisayar kümesinde bir günün altında yapıldı.

Bu örneği vereceğim çünkü bu SHA-1'i kullanmak istediğinize en yakın şey. Ancak, karma değerlerin kırılmadığından emin olmak için kullanılan en yaygın yaklaşım kriptanaliz değildir. Genellikle bir dosya seçmeniz ve saldırganın eşleştirmesini istemediğiniz yerine, saldırgan tarafından seçilen iki dosya arasında bir çarpışmaya izin verir. Bu tür bir saldırının kıyaslama yapmak daha kolay olma avantajı vardır. Dosyanızı kırmanın "zor" olduğunu tespit edersem, bu başka bir dosyanın benzer şekilde güçlü olduğu anlamına mı geliyor? Saldırganın her iki dosyayı da seçtiği bu saldırı, en kötüsünün en kötüsünü yakalamamızı sağlar.

Bu tür bir saldırı " doğum günü saldırısı " olarak bilinen ilginç bir numaraya izin verir . Uzun lafın kısası, doğum günü saldırısını kullanmak algoritmanın gücünü yarıya indirir, bu nedenle SHA-1 2 ^ 80 deneme (ortalama) ve MD5 2 ^ 64 deneme (ortalama) gerektirir. Bunlar sırasıyla 160 ve 128'in yarısı.

SHA-1, gücünü 2 ^ 80'den 2 ^ 69'a düşüren saldırılar biliyor. Bu senin için çok önemli olmayacak. 2 ^ 69 girişimi uzun zaman alıyor.

Ancak, tarihe göre, karma algoritmaların kendiliğinden kırılmadığını, zaman içinde kırıldığını gördük. Kimse MD-5 gibi bir algoritmayı gece boyunca 2 ^ 64'den 2 ^ 47'ye kadar kırar. Bu, zamanla gerçekleşir, çünkü birçok kişi, kendilerine karşı kullandıkları matematikle ilgili makaleler yayınlar. Biri genellikle algoritmaların başlangıcından (en iyi saldırının genellikle doğum günü saldırısı olduğu) saldırıların karmaşıklığının yavaşça azaldığını izleyebilir.

Çarpışmalarda bazı değişiklikler gördüğümüz gerçeği, SHA-1'in tünelin sonunda ışığı gördüğünü gösteriyor. Hala güçlü, ancak şu anda çok daha güvenli olan en yeni SHA-3'e gitme isteği olabilir.

Bu tür kararları gerçekten bir tehdit modeli perspektifinden vermelisiniz. Saldırganın bu çarpışmalardan birini alması durumunda ne kadar hasar verebileceği. Saldırganlarınız, birkaç dizüstü bilgisayara ya da tüm süper bilişim kümelerine sahip hükümetleri emrinde olan çocuk senaryoları yazıyor mu? Bir saldırgan, kullanılmadan önce ne kadar büyük bir saldırganın hastayı kırması gerekir (kriptografinin birçok kullanımı parola döndürme gibi bir "korumanın değiştirilmesi" gerektirir). Bütün bunlar çarpışmaları ne kadar ciddiye almanız gerektiğini etkileyecektir.


8
Doğum günü saldırısı paragrafınızla ilgili olarak, 2 ^ 80, yarısı değil (2 ^ 159 olan) 2 ^ 160 kareköküdür .
Andrew Morton

Soru, ikinci pre-preage saldırılarıyla ilgili, ancak cevabınız çarpışmalarla ilgili. SHA-1'e karşı önleyici saldırılar & mdash; ve hatta MD5 & mdash; saçma pratik değildir. (MD5'e karşı 2 ^ 123 bir pre-saldırısı var, ancak SHA-1 ile 2 ^ 160 kaba kuvvetle sıkışıp kaldın.)
Matt Nordhoff

"SHA-1 bir 160 bit kod olduğundan, ortalama 2 ^ 159 kaba kuvvet bir kopyasını bulmaya çalışır." Ancak 2 ^ 2 kodu 2 ^ 2 tahmin alır. Neden -1 olduğunu anlamıyorum. "Uzun lafın kısası," ... "algoritmanın gücünü yarıya indirir, bu nedenle SHA-1 2 ^ 80 gerektirir ..." MD5 2 ^ 64 "gerektirir ..." Bunlar sırasıyla 160 ve 128'in yarısıdır. " Burada -1'le olmalısın. Bitler katlanarak kuvvetlenir, bu yüzden 160 bitlik bir karma değerinin yarıya inmesi, 80 bitlik bir karma değil, 159 bitlik bir karma olarak ele alınır. Her bit, kaba kuvvet saldırısının zorluğunu ikiye katlar.
TOOGAM

@TOOGAM: 'Ortalama'; Birden fazla denemede, kaba kuvvet saldırısında başarılı olmak için ortalama anahtar alanın sadece% 50'si aranmalıdır . Yarı yorumun yorumuna gelince, Andrew Morton'un yukarıdaki yorumu şöyle açıklıyor; karmaşıklığın yarısı değil karekökü olmalıdır.
Reid

@AndrewMorton iyi bir nokta, ifadelerimle net değildim. Edebiyatın durum sayıları ile durum sayısının taban-2 logaritması arasındaki geçişleri oldukça sık buluyorum. İfadelerim bit sayısını yarıya attı, çünkü insanlar bit sayısındaki "kuvvet" hakkında konuşma eğilimindedir. Bilinçli bir şekilde yaptığım ileri geri geçiş yapmaya çok alışmıştım. Kargaşayı gidermek için düzenleyeceğim.
Cort Ammon - Monica

8

Bu makalede ele alınan SHA-1'deki kusurlar çok spesifiktir: saldırganların aynı değere sahip iki şey yaratmasına izin verir (buna "çarpışma saldırısı" denir). Ancak, bir çarpışma saldırısı için saldırganın her iki dosyayı da kontrol etmesi gerekir . Saldırgan orijinal dosyayı kontrol etmezse, çarpışma saldırısı aynı karma değere sahip başka bir dosya bulmalarına izin vermez.

Bunun TLS / SSL için önemi (ve genel olarak imzaları) bunun nedeni ile, saldırganın her iki dosyayı da sıklıkla kontrol edebilmesidir . Bir TLS sertifikası çoğunlukla talep eden kişi tarafından yaratılır (kontrol etmeyen bitler genellikle tahmin edilebilir), bu nedenle çarpışmalar meşru bir sertifika ve meşru olmayan bir sertifika almalarını, meşru olanı imzalamalarını ve imzayı devretmelerini sağlar.

Dosyalar için aynı durum her zaman geçerli değildir. Endişeniz, dosyayı oluşturan kişi saldırgan ise (örneğin, bağımsız olarak iyi bir şekilde doğrulanan bir şey alırlar ve ardından size aynı karma değerdeki kötü yükü gönderir), SHA-1 saldırısı uygulanır ve siz de bakmalısınız. dışarı atmaya doğru (henüz kritik olmasa da, David Schwartz'ın bahsettiği gibi). Orijinal dosyaya güvenilirse, saldırgan şu anda bilinen SHA-1 saldırılarını uygulayamaz, yine de (eğer bir seçeneğiniz varsa, SHA- 2).


"Çarpışma yararlı olmayacak" cevaben - Bir saldırı, saldırganın yararlı bir çarpışma elde etmesini gerektirmese de , genellikle "çarpışma" yı "yararlı çarpışmalara" dönüştürmek o kadar da zor değildir. Pek çok dosya formatı, dosyanın işlevselliğini etkilemeden istediğiniz her şeye sahip olabileceğiniz makul miktarda odaya sahiptir; Bir saldırgan tipik olarak, bir çarpışma elde etmek için (çarpışmalar pratik olarak yapılabiliyorsa) işlevsel kısmı istediği gibi tutarken değiştirebilir. "Akademik saldırı" ve "pratik saldırı" arasındaki boşluk büyük olabilir; "Herhangi bir çarpışma" ve "faydalı çarpışma" arasındaki fark genellikle daha küçüktür.


Algoritma seçimi ile ilgili olmayan daha ciddi olan konu, karmayı nasıl elde ettiğinizdir. Bir karma işlemin tümü sorunu "gerçek dosyayı almak" dan "gerçek karma değerini almak" a kaydırmak; Aynı sunucudan ve dosyayla aynı bağlantı türünden gönderilen karma değeri, kötü amaçlı değişikliklere karşı tamamen değersizdir (dosyada değişiklik yapabilen herhangi bir saldırgan karma işlemine müdahale edebilir). Karma, yalnızca karma dosyaya güvenebileceğinizden daha fazla güveniyorsanız, bunun için kullanışlıdır; bazen durum böyle iken (sağanaklar, aynalar), durum böyle olmadığında sıklıkla kullanılırlar. Bu nedenle, doğruluk doğrulaması için hash kullandığınızda çok dikkatli olmalısınız.


5

Bir çarpışma saldırısı ile bir ön saldırı saldırısı arasında ayrım yapmanız gerekir . Aynı değere sahip iki mesajı bulmak çarpışma saldırısıdır.
Belirli bir iletiyi (burada: çalıştırılabilir) verilen belirli bir iletiyi aynı karma değere sahip başka bir iletiyle değiştirmek, (ikinci) bir ön saldırı saldırısıdır.

SHA-1, bu numaraya bir atıfta bulunmayan bir Wikipedia makalesine göre 2 52 operasyonda bir çarpışma saldırısı yapılabildiği için kırıldı (farkında olduğum en iyi saldırı aslında Marc Stevens’a ait olanıdır) , 2 60 işlem alır ). Fakat 2 52'lik karamsar davayı varsayalım .

Mesele, bu ölçekte yapılan bir saldırının sadece teorik olarak düşünülebileceği gibi bir GPU donanımında bir gün içinde mükemmel şekilde gerçekleştirilebilmesidir . Elbette "iki" mesajın yapılacağı uygulamalar için bir problem. Stevens tarafından verilen ( 60 kat daha fazla iş olan) 2 60 rakamı bile, eğer saldırganınız soruna fazladan para atmaya istekliyse veya bir yıl harcamak isterse mükemmel bir şekilde uygulanabilir.
Bu tam olarak casusluk veya siber suçla uğraşan birinin sertifika almasını engellemeyecek türden bir şey .

Şimdi, bir ön saldırının iki kat daha büyük bir üssü vardır, çarpışma saldırısı için 2 52 olduğu varsayılır , bu da tamamen farklı bir oyun alanı olan 2 104 operasyon olacaktır .

Bu yalnızca pratik değildir (önceki paragrafta belirtilenden milyar kez daha hızlı olan bir makine hala yaklaşık 6 milyon yıl kadar sürer), ancak caydırıcı enerji üretme araçlarımıza bakıldığında, bu tamamen imkansızdır.

Böyle büyük bir hesaplama yapmak, tek bir operasyona adayacağımız her şeyden çok daha büyük bir enerji kaynağı gerektirecektir. Hayır, tam olarak değil bir enerji kaynağı güneşin büyüklüğü, ama yine de oldukça büyük bir .

Gerçekçi bir şekilde bir Watt'tan 10 ile 50 GFLOPS arasında bir şey almayı bekleyebilirsiniz. Bir tür mucizenin meydana geldiğini ve işlemcilerin gece boyunca yaklaşık bin kat daha fazla enerji harcadığını varsayarsak, biri 1 SHA ≈ 1 FLOP (oldukça iyimser!) Olabilir. Bu, 10 yıl içinde 2 104 karma hesaplama yapabilmek için 10 12 W'lık bir elektrik santraline ihtiyacınız olduğu anlamına gelir . Saldırıyı 1 yıl içinde gerçekleştirmek için 10 13 W'lık bir enerji santraline ihtiyacınız var. Bu, ABD, Fransa ve Japonya'daki tüm nükleer enerji santrallerinin birlikte üretebildiklerinin yaklaşık 50 katı, sadece bir karma üretim için.

Bu olmayacak , aynı hedefe ulaşmak için çok daha kolay yollar var (orijinal hastayı saklayan sunucuyu kullanmak ve bunu değiştirmek, birine şantaj yapmak, vb.).


"... aynı şeyi elde etmenin çok daha kolay yolları ..." xkcd.com/538'de
Ralph J

2

Genel Söz konusu işaret edilen maddenin noktasıdır: SHA1 kaldırılmıştır ve hala sorunsuz yapmak için zaman varken aşamalı olmalıdır. Bazı bölgelerde, Google ve Microsoft'un son teslim tarihlerini zorlamasından bu yana zaman geçiyor.

Kullanımdan kaldırılmış teknoloji için temel kural :

  • Yeni bir tasarım yaparsanız veya özellikler eklerseniz, kullanmayın (SHA1).
  • Eski bir şeyi korursanız, ne zaman değiştireceğinizi planlayın (SHA1).

Bruce Schneier tarafından yayınlanan 2012 blog gönderisinden yapılan özet alıntı: "Konu şu ki, toplumdaki SHA-1'den ve SHA-2 / SHA-3'e geçişi şimdi başlatmamız gerekiyor."


2

Sorunuzun SHA-1 karma çarpışma kısmı için bu, birkaç cevapla ele alınmıştır.

Ancak, bunun büyük bir kısmı üzerinde çalıştığımız dosya türüne bağlı:

Dosyanın genel içeriğini ve çalışmasını korur (ancak elbette şimdi başlangıçta değiştirilmiş içeriği olmayan kötü amaçlı içeriği de içerir )

Bunun anlamı, değişiklikleri tespit edenlere göre büyük ölçüde değişir:

  • İmzalı bir çalıştırılabilir dosya ise (makul) bir şans değil: bir şekilde iki karma çarpışma yapmanız gerekir: dosyanın SHA-1'i ve iç .exe imzası.
  • İmzasız bir çalıştırılabilir, .com, imzasız. operasyon.
  • Bir kaynak kod dosyası veya benzer bir yapıysa (.cs, .c, .h, .cpp, .rb, .yml, .config, .xml, .pl, .bat, .ini) ekler, değişiklikler veya kaldırmalar. geçerli yorum sözdizimiyle sınırlandırılabilir, öyle ki değişiklik çoğu kullanım tarafından farkedilemez (derleme veya çalıştırma, bir metin düzenleyiciyle açılmaması).
  • Bir .iso veya .zip veya başka bir kapsayıcı biçimse, rastgele değişikliklerin çoğu kapsayıcıyı bozacağı için daha düşük bir olasılıktır. Yapılması mümkündür: sahte bir dosya girişi ekleyin veya kabın içindeki bir içeriği değiştirin ve yeniden denetleyin, ancak sonuçta denetlemek için sınırlı bir serbestlik derecesine sahip olmanın yanı sıra, bir karmaşıklık katmanı ekliyor ve sonucu kontrol etmek için ek süre ekliyorsunuz içeriğin nasıl ve ne şekilde değiştirilebileceği.
  • Metin veya metin benzeri bir formatsa, içerik muhtemelen göze çarpacak olsa da, hala 'geçerli' bir dosya iken neredeyse istediğiniz şekilde değiştirilebilir.
  • .Rtf, .doc, .html, .xslx ve diğer biçimlendirme-esque formatları gibi birçok formatla, uzunluk dışında (veya kısıtlı bir uzunluktan başka) ayrıştırıcılar tarafından algılanamayacak şekilde eklenebilir veya değiştirilebilir daha az özgürlük) dosyalar sadece geçerli bir dosya olmakla kalmazken (sonunda) karma çarpışmalara dönüştürülebilir, ancak kullandıkları tipik uygulamalar tarafından görülebilecek herhangi bir şekilde gözle görülür şekilde değiştirilemez.

Öyleyse, geride bıraktığınız şey, herhangi bir yapıda bozulmayan ve belki de bir dereceye kadar saptanamayan bir çarpışma nasıl elde edilir:

  1. İstediğiniz herhangi bir işlevsel değişikliği (belki de kötü niyetli içeriğin eklenmesi) yapın ve dosya biçimine özgü geçerliliği korumak için ek değişiklikler yapın.
  2. İşlevsel olmayacak bir bölüm ekleyin (yorum blokları arasında, üstündeki 3k satırının bulunduğu bir metin dosyasının sonunda, geçerli bir yorum bloğu izole edin)
  3. Değişiklik için bir karakter / kod noktası / bayt ekleyin veya seçin ve mümkün olan her geçerli kombinasyonu deneyin (her bayt kombinasyonu örneğin farklı kodlamalar için geçerli değildir).
  4. Karışı yeniden hesaplayın, çarpışmanın eşleşip eşleşmediğine bakın.
  5. eğer olmazsa, 3'e gidin.

Diyelim ki süper hızlı bir bilgisayarınız ve ufacık bir dosyanız var, öyle ki geçerli bir bayt sekansı ve hash'ı yeniden hesaplamak 1 milisaniye sürer (muhtemelen bazı donanımlar gerektirir). Eğer karma dağıtım mükemmel rastgele ve aralık dağılmış, sen SHA-1 her ile çarpışmayı alacak 2^160girişimleri (kaba zorlayarak).

2^160/1000/60/60/24/365.24 
= 4.63x10^37 years 
= 46,300,000,000,000,000,000,000,000,000,000,000,000 years 
= 46 undecillion years.

Ancak hey, 2^60ve 2^52sürümlerini deneyelim ve dosyayı istediğimiz şekilde değiştirmemize izin verdiklerini (yapmıyorlar) ve onların da her denemede 1ms'de yapılabildiğini iddia edelim :

2^52 yields 142,714 years 
/*humans might still be around to care, but not about these antiquated formats*/
2^60 yields 3.65x10^7 years = 36,500,000 years 
/*machines will probably have taken over anyway*/

Ama hey, şanslı olabilirsin. Gerçekten, gerçekten, mucizevi bir şey-her şeyden-insanlar-çağrı-mucizeler şanslı.


0

Gerçekten değil, aynı anda bu koşullardan birini yerine getirebilirsiniz, ancak ikisini birden değil .. iki farklı dosya için aynı hash elde etmek mümkündür, ancak birinin bir dosyayı değiştirmesi ve sonra aynı hashı almaya çalışması oldukça imkansızdır. Bildiğim kadarıyla


1
Henüz çok imkansız . Yeterli bilgi işlem gücüyle her şey mümkün.

-6

Evet mümkün. Virüslerin EXE'lerde nasıl çalıştığını düşünün. Kötü amaçlı yazılımın yükü orijinal EXE'e eklenmiştir, böylece program hala orijinal olarak yaptığı şeyi yapar, fakat aynı zamanda bir virüs olarak yayılır. Şimdi, aynı karmayı korumak için, ek olarak özel hazırlanmış bir dolguya ihtiyacınız olacak .

Bu, dosyanın daha büyük olacağı anlamına gelir. Ancak bir EXE durumunda, daha az kullanılan kodlardan bazılarını kaldırabilirsiniz, böylece program yalnızca başlangıçta çalışır gibi görünür. JPEG durumunda, görüntüyü daha fazla sıkıştırabilir veya tamamen farklı bir görüntü kullanabilirsiniz. Bir ISO için, dosya kümelerini kaldırabilirsiniz. Karma işlemi çoğaltmak için gereken hesaplamalar daha zor olacaktı ve belirli durumlar için belki de matematiksel olarak imkansız olacaktı, ancak genel olarak hala mümkün olacaktı.


7
-1 Bu yazıdaki her şey tamamen tamamlandı. Uzunluk-uzatma saldırıları do not "Aynı karma korumak" (hash sadece bilinen bir şekilde değiştirir) . Ayrıca, bir virüsün "daha az kullanılan kodu" kaldırmak zorunda kalmasına gerek yoktur (bunun ne olduğunu nasıl belirler?) . Ve jpeglerin bir şeyle ne alakası var?
BlueRaja - Danny Pflughoeft 16:15

2
Bu tamamen yanlış, tüm cevabı tekrar yazmadan düzeltmeler önermeye başlayamam bile
Mark K Cowan

2
-1 Hiç doğru değil. aka "Hatta yanlış değil" (Wolfgang Pauli)
Olivier Dulac

1
Eh, bir şeyse gerçeği ile başlayabileceğini genelde mümkün o zaman tabii ki mümkündür belirli bir durumda . Ancak, bunun tersi her zaman doğru değildir: Belirli bir durum için çözülebilecek bir sorunu hayal etmek kolaydır, ancak genel olarak değil.
CVn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.