SORU
22 ŞUBAT 2012, ÇARŞAMBA


Nasıl bir git cilve SHA-1 çarpışma hallediyoruz?

Bu muhtemelen hiç olmamış gerçek dünya henüz ve asla olmayacak, ama şunu bir düşün: sen bir git deposu, bir taahhüt, ve çok çok şanssız bir tane BLOB olmam aynı SHA-1 gibi bir o zaten senin depo. Soru, nasıl gıt ilgilenecek? Sadece başarısız? İki lekeler bağlantı ve bağlama göre gerekli olan kontrol etmek için bir yol bulmak mı?

Daha gerçek bir sorun daha Zeka Oyunları, ama konu ilginç buldum.

CEVAP
22 ŞUBAT 2012, ÇARŞAMBA


old answer from Linus yine de ilgili olabilir:

Hayır. Eğer aynı varsa SHA1, diğer ucundan nesneyi aldığımızda, anlamına gelirdeğilhemen hemen her nesnenin üzerine.

Ne olursa biz hiç bir çarpışma görmek, "herhangi bir belirli bir depo nesne her zaman öncelikli. sona erecek" önceki öyle Ama unutmayın "önceki" belli ki başına depo, öyle gıt nesne ağ oluşturur bir DAG değil tam sipariş ederken, farklı depoları da aynı fikirde ne "erken" olması durumunda direk soy, eğer nesne geldi ayrı ve doğrudan ilgili şube, iki farklı repos olabilir ortada kazanılmış iki nesneleri farklı sipariş.

"Önceki" güvenlik açısından istediğiniz şey çok fazla: git modeli öncelikle sadece . güven gerektiğini unutmayın geçersiz kılar, ancak, ^em>kendidepo.
Eğer öyleyse, yaklaşan nesneler tanımı gereği zaten var olan nesneler daha az güvenilir yeni gibi yeni bir nesne izin vermek yanlış olur "git pull eğer bir eski bir değiştirin.

Çarpışma iki durum vardır:

  • yanlışlıkla birazseni nedense çok şanssız çok yerde, iki aynı SHA1 sahip. sonunda dosyaları
    Bu noktada, ne olur o zaman taahhüt dosyası (veya bir "git-update-index" hareket halinde dizin, ama kararlı değil henüz), SHA1 ve yeni içerikler olacak hesaplanan, amaeski bir nesne ile eşleşen beri, yeni bir nesne oluşturulur olmayacak ve taahhüt-veya-dizin işaret bitereskinesne.
    Seni farketmez bile hemen bir bu yana endeks maçı eski nesne SHA1, demek bir şey gibi "git diff" kullanır teslim alınmış fotokopi), ama eğer bir ağacı düzey diff (veya bir klon veya çekme ya da güç bir çıkış) ulaşabilirsiniz aniden fark bu dosya değişti bir şeylertamamenne bekleniyor daha farklı.
    Genellikle bu tip bir kaza oldukça hızlı bir şekilde fark ediyorum.
    Diğer bir haber ise, soruya yanlışlıkla çarpışma.. hakkında ne olduğunu
    İlk olarak, çarpışma yanlışlıkla bu tür gerçekten çok olduğunu hatırlatayımgerçektenlanet olası, o yüzden büyük ihtimalle hiç bir zaman evrenin tam tarihinde göreceğiz.
    Amaeğerdünyanın sonu değil olur:büyük ihtimalle yapman gereken şey biraz çarpıştı dosyayı değiştirin ve sadece bir yeni değişti içeriği ile işlemek güçtür(diyerek yorum ekle "/* This line added to avoid collision */") ve daha sonra tehlikeli olduğu gösterilmiştir sihirli SHA1 hakkında gıt öğretmek.
    Birkaç milyon yıl içinde, belki bir veya iki "" SHA1 değerleri git. zehirlendi ekleme yapabiliriz Bakım bir sorun;) çok zayıf bir olasılıktır

  • çarpışma saldırgan bir türçünkü birisi (veya kaba zorunlu) SHA1 kırdı.
    Bu açıkça birçokher zaman bir "" depo. uzak değil, tanımı gereği, yanlışlıkla biraz daha fazla, ama Eğer saldırganın yerel depoya erişim olsaydı, çok daha berbat yollar olurdu.
    Bu yüzden bu durumdaçarpışma tamamen konu dışıbir "saldırgan amaçlı farklı ama." depoyu kötü olursun ^strong>aslında hiç çarpışması onun nesnesi kullanacağız berikelimenin tam anlamıylasaldırganın farklı bir çarpışma yemiyor bulunduama sadece kullanma zaten (100% "önemsiz" aynı dosya aynı SHA1 üretme çarpışma). eşdeğer yani nesne vardı

question of using SHA-256 düzenli olarak açıklanan, ama şimdilik hareket yok.


Not (Mizah): belirli bir SHA1 taahhüt zorlayabilirönek, Brad Fitzpatrick (bradfitz) proje gitbrute ile.

kaba kuvvetleri gitbrute sonuç gıt gibi committer zaman damgaları işlemek yazar bir çift istediğiniz öneki vardır.

Örnek: https://github.com/bradfitz/deadbeef


Daniel Dinnyes içeren 7.1 Git Tools - Revision Selection in the comments işaret:

Daha yüksek bir olasılık programlama takımın her bir üyesi ve aynı gece farklı olay içinde kurtlar tarafından saldırıya öldürüleceğini var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Washington

    Adam Washing

    12 Mayıs 2006
  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006