İndirilen dosyaların neden sağlama toplamlarını hesaplamalı?


19

Sıklıkla indirilebilecek bir dosyanın yanında verilen bir sağlama toplamı görüyorum. Bu uygulamanın amacı beni atlatıyor. Açıkçası bozuk dosyaları tespit etmek, ancak bu bozulmanın nedeni ne olabilir ve hiç olası mı?

Şüphesiz, ağ protokolü tarafından tespit edildiğinden dosya iletim hataları nedeniyle zarar görmez. Ve elbette dosyayı kötü amaçlı amaçlarla değiştirebilecek herhangi bir saldırgan da verilen sağlama toplamını değiştirebilir. Sabit sürücü hatalarını mı kontrol ediyoruz? Bunların yazarken ve okurken gerçekleşmesi daha olası mıdır? Önemli bir şeyi mi kaçırıyorum?


2
Ve elbette dosyayı kötü amaçlı amaçlarla değiştirebilecek herhangi bir saldırgan da verilen sağlama toplamını değiştirebilir. - Kabul edildiğinde , bir sağlama toplamı HTTPS üzerinden sunulmuyorsa orijinalliği garanti etmez veya SSL sertifikasının yazılımın yaratıcısına ait olduğundan emin değilsiniz.
Mihai

1
TCP sağlama toplamı aslında oldukça berbat: sadece 16 bit. Binlerce kişiye büyük dosyalar veriyorsanız (düşünün: kurulum DVD görüntüleri), bu indirmelerin bazılarının tespit edilemez şekilde bozulacağı neredeyse kesindir.
Mark

@Mihai Tabii ki, muhtemelen riski biraz düşürüyor. Örneğin, sunucunuza tüm ikili yanıtları otomatik olarak değiştiren (veya yalnızca indirdiğiniz tüm yürütülebilir dosyaları değiştiren) bir virüs bulaşmışsa. Mükemmel değil, ancak bazı durumlarda yardımcı olabilir.
Luaan

Yanıtlar:


9

Yolsuzluğu tespit etmek tamamen doğru değildir. Yazılımın bütünlüğünü belirlemek daha doğru bir kullanım olacaktır. Normalde yazılım tek bir sunucudan dağıtılmaz. Aynı yazılım birçok sunucudan dağıtılabilir. Belirli bir yazılımı indirdiğinizde, indirme hızını artırmak için hedefinize en yakın sunucu indirme kaynağı olarak seçilir. Ancak, bu 'resmi olmayan' (üçüncü taraf) sunuculara her zaman güvenilemez. Onlar / içerebilir olabilir trojan / virüs / adware / olduğu programa arka kapılar iyi değil .

Dolayısıyla, indirilen yazılımın ilgili kuruluş tarafından yayınlanan 'resmi' yazılımla tamamen aynı olduğundan emin olmak için sağlama toplamı kullanılır. Sağlama toplamı oluşturmak için kullanılan algoritmalar, programdaki küçük bir değişiklik bile tamamen farklı bir sağlama toplamı ile sonuçlanacak şekildedir.

Pratik Unix ve İnternet Güvenliği'nden alınan örnek

MD5 (Mavi kutuda 1500 dolar var.) = 05f8cfc03f4e58cbee731aa4a14b3f03

MD5 (Mavi kutuda 1100 dolar var.) = D6dee11aae89661a45eb9d21e30d34cb

Yalnızca tek bir karakterle (ve bu karakter içinde yalnızca tek bir ikili bitle) farklılık gösteren iletilerin tamamen farklı mesaj özetleri vardır.

İndirilen dosya, 'resmi' web sitesinde verilen sağlama toplamı ile aynı sağlama toplamına sahipse, yazılımın değiştirilmediği varsayılabilir.

Yan Not: Teoride, iki farklı dosya aynı karma değerine sahip olabilir. Karma / sağlama toplamı algoritmasının güvenli sayılması için, aynı sağlama toplamını üreten başka bir dosya bulmak hesaplama açısından çok pahalı olmalıdır.


1
Dosya ve sağlama toplamı aynı ana bilgisayar tarafından sağlanırsa, bu biraz işe yaramaz mı?
Karolis Juodelė

Olabilir. Sağlama toplamı sadece bütünlüğü tespit etmenin bir yoludur. Belirli bir senaryoda, bir saldırgan kuruluşun FTP sunucusuna erişirse yazılımı değiştirebileceğini söyleyin. Ancak, IF ve SADECE saldırgan HTTP sunucusuna girmemişse, bütünlüğü doğrulamak için aynı sağlama toplamını kullanmaya devam edebilirsiniz. Yani her ikisi de saldırganın kontrolü altındaysa, her ikisini de kolayca değiştirebilir ve farkı bilemezsiniz.
Aswin PJ

1
Sağlama toplamının ilgili olabileceği diğer bir durum, bir hıçkırıktan sonra dosya aktarımının sürdürüldüğü, ancak dosyanın geçici olarak değiştirildiği durumları tespit etmektir.
supercat

@ KarolisJuodelė İndirme bağlantısı aynı web sitesinde / ana bilgisayarda olabilir. Ancak nerede çözüldüğü, hangi sunucunun en yakın olduğuna bağlı olarak farklı olabilir. Ayrıca, indirme herhangi bir protokol http veya ftp olabilirken sağlama toplamı sayfasının https olması gerektiğini unutmayın
balki

10

Ve elbette dosyayı kötü amaçlı amaçlarla değiştirebilecek herhangi bir saldırgan da verilen sağlama toplamını değiştirebilir.

Her zaman değil.

HTTPS'de sunulan bir sağlama toplamı ile birlikte bir içerik bağlantınız olabilir. Bağlantı şifrelenmemiş bir bağlantı olabilir - düz HTTP veya FTP veya başka bir şey.

Dezavantajlı, şifrelenmemiş bağlantı kolayca ortada kalabilir, tersine, web yöneticisi için daha hızlı veya daha uygun olabilir (daha az bilgi işlem kaynağına ihtiyaç duyulur ve ağın bu şeyleri önbelleğe almasına olanak tanır).

Sağlama toplamı kesintisiz bir güvenilir bağlantıda sunuluyorsa ve yük sağlama toplamı sağlama toplamıyla eşleşiyorsa (sağlama toplamının kriptografik olarak güvenli olması şartıyla) her iki dünyanın en iyisini elde edersiniz.


Bununla birlikte, bana "güvenli" olduğunu iddia eden dağıtımların olduğunu hatırlattınız ve yine de web sitelerinin resimlerinin bağlantıları gibi yalnızca HTTP'de olduğunu hatırlattınız.

Örnekler:

Bu biraz komik çünkü muhtemelen daha güvensiz olamazsınız. Kendileri kötü niyetli olmasalar bile, herhangi bir ISS hem web sitesini hem de görüntüyü sahte olarak değiştirebilir ve birisinin "güvenli" bir Linux dağıtımı elde ediyor gibi görünmesini sağlayarak birisinin hileli bir işletim sistemi kurmasını sağlayabilir. pwnage.


1
Kimliği doğrulanmamış HTTP'den daha az güvenli olan birçok şey vardır;
user253751

4

TCP / IP hata kontrolü neden her şeyi yakalayamıyorsa: /programming//a/17083365/2551539

Oluşabilecek farklı hatalar var (TCP'nin algılayacağı) [Jacob Krall tarafından işaret edildi] :

  • Paketlerin yanlış sırası
  • Paket kaybı
  • Paket içindeki bozuk veriler
  • Fantom paketleri (alıcı, hiç gönderilmemiş paketleri alır)

Bazı ek bilgilerle düzenleyin:

Bu çalışmanın 9. sayfası: http://paperhub.s3.amazonaws.com/8ff1e4414c070e900da8ab3885593085.pdf , TCP tarafından algılanamayan hatalar olduğunu gösterir. Anladığım kadarıyla, hatalı bir datagram (çalışmada "kötü ikiz" olarak adlandırılır) amaçlanan datagramla (çalışmada "iyi ikiz" olarak adlandırılır) aynı sağlama toplamına sahip olduğunda olur.


2
Bu yanıtı daha dikkatli okuyun - bunların tümü TCP tarafından düzeltilen hatalardır.
Jacob Krall

4

İletim hataları meydana gelebilir. Bağlantı katmanı protokolleri genellikle bunlardan kaçınmak için sağlama toplamları veya hata düzeltme kodları içerir, ancak mükemmel değildir: bir hatanın düzeltilmemesi için küçük bir şans vardır. TCP paketleri ayrıca hata olasılığını 2 ^ 16 azaltan bir sağlama toplamı içerir. Bu, iletim hatası için çok küçük fakat sıfır olmayan bir olasılık oluşturur. Çoğu insanın hayatları boyunca bilmeden karşılaşmayacakları bir şeydir, ancak milyarlarca yıl içinde hiçbir zaman kriptografik sağlama toplamı aralığında değildir.

İstemcide disk bozulması gibi bir donanım hatasının indirildikten hemen sonra kontrol edilerek algılanması olası değildir, çünkü sağlama toplamı önbelleğe alınan kopyadan hesaplanacaktır. Önyükleme ortamını önyükleme yapamadıkları takdirde bozulma açısından kontrol etmek yararlıdır, diğer yandan medyayı gerçekten test edersiniz ve donanımın kötü olabileceği konusunda bir önyargınız vardır.

Sağlama toplamlarını hesaplamanın gerçek nedeni aslında yazılım düzeyindeki hataları tespit etmektir. Bunlar olur. Olası hatalar şunları içerir:

  • Bir dosya kısmen indirildi. Web sunucuları ve tarayıcılar, kesintili bağlantıları algılama ve kısmi dosyaları temizleme konusunda kötü olma eğilimindedir. Hata, indirme sırasında olabilir veya yükleme sırasında olabilirdi, ekliyor.
  • Yol boyunca bir miktar yolsuzluk vardı. Örneğin, dosyanın dağıtımındaki bazı ara düğümler, ikili dosyaya bir metin kodlama dönüşümü uygulamaya karar verdiler. Ya da yanlış yapılandırılmış bazı sunucular içerik yerine bir hata mesajı sundu.
  • Bir değişken: yanlış dosya yüklendi.
  • Nadirdir, ancak korunmak için yararlı olabilir: bir rakip dosyayı değiştirdi, ancak referans sağlama toplamını değiştiremedi. Güvenlik altyapıları, bir saldırganın geçersiz bir sağlama toplamı oluşturmasını geçersiz bir dosyadan daha zor hale getirir. Örneğin, büyük dosyalar genellikle aynalar aracılığıyla dağıtılırken, sağlama toplamları daha az kurcalama fırsatları olan merkezi bir site tarafından sunulur (sunucuya yalnızca proje liderlerine erişim, HTTPS aracılığıyla dağıtım).

Uygulamada, indirilen dosyanın boyutunu kontrol etmek, kesilen veya geçersiz olarak dönüştürülen dosyalar olan en yaygın hataları yakalar. Sağlama toplamları, kesinlikle daha fazla sorun saptama avantajına sahiptir.


2

Teorik olarak, ağ her bir segmenti düzgün bir şekilde dağıtır ve disk üzerine düzgün bir şekilde monte edilir ve hiçbir şey yanlış olmaz.

Gerçekte bilgisayarlar, her ikisi de yanıltıcı insanlar tarafından tasarlanan ve üretilen makineler ve yazılımlardır. Bir indirme işleminin bir nedenden ötürü doğru bir şekilde aşağıya inmemesi durumunda, indirme, verileri yöneten zararsız veya hain olup olmadığı gibi bazı aracı cihazlardan geçiyorsa, dosyanın neredeyse kesin olarak sağlayıcının tarafında dosyanın doğru bir kopyası olarak indirilir.

Yüksek kaliteli bir sağlama toplamı, verilerin bütünlüğünü doğrulamak için güvenilir bir yöntemdir.


0

Hiçbir sağlama toplamı% 100 güvenilir olamaz çünkü birçok dosya aynı sağlama toplamıyla eşleşir.

Biz ne zaman eklemek tren biz başka sağlama çarpın bir hata tespit olasılığı.

İnternette çok fazla trafik var, hatalar aslında oldukça yaygın.


Ayrıca biraz çürük var.
Deer Hunter

Hangi depolama donanım tarafından algılanmalıdır Donanım, ancak sağlama toplamı ZFS ve btrfs önemli bir özellik, ben mükemmel çalışıyor şüphe.
Max Ried

0

Checksum ayrıca aşağıdaki durum nedeniyle bozuk indirmeyi önlemeye de yardımcı olacaktır:

Sunucunun karşıdan yükleme sırasında dahili bir hatası vardır, bu nedenle karşıdan yükleme sonlandırılır.

Bu olduğunda, birkaç olası sonuç vardır:

  • İyi sunucu - sunucunun uygulaması Yığın halinde aktarım kodlaması olan değil arabası:
    • İyi istemci (cURL, wget gibi), sonlandırılan yığın sunucudan hiç gönderilmediğinden bunun kötü bir indirme olduğunu size bildirebilir.
    • Kötü istemci , sunucudan başka veri alınmadığından indirme işleminin tamamlandığını düşünecektir.
  • Kötü sunucu - sunucunun uygulaması Yığın halinde aktarım kodlaması olan bu kadar kötü indirmek için sonlandırma yığın gönderdiği arabası:
    • Herhangi bir müşteri bu indirme işleminin başarıyla tamamlandığını düşünecektir.

Bu davranışları popüler istemci araçları ve sunucu çerçeveleri arasında gördüm, bu nedenle sağlama toplamı kullanmadığınızda, "iyi sunucu + kötü istemci" veya "kötü sunucu + herhangi bir istemci" durumunda, indirme işlemi bozuk olur .

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.