SHAttered Nedir? SHA-1 Çarpışma Saldırıları, Açıklanan
Mozilla, 2016 yılının ilk gününde, Firefox web tarayıcısında SHA-1 adlı zayıflatıcı güvenlik teknolojisine destek verdi. Neredeyse hemen, bazı eski web sitelerine erişimi keseceği için kararlarını geri aldı. Ancak Şubat 2017'de korkuları nihayet gerçekleşti: araştırmacılar ilk gerçek dünya çarpışma saldırısını yaratarak SHA-1'i kırdılar. İşte tüm bunlar ne anlama geliyor.
SHA-1 Nedir??
SHA-1’deki SHA Güvenli Hash Algoritması, ve basitçe söylemek gerekirse, bunu bir tür matematik problemi veya yöntemi olarak düşünebilirsiniz. içine yerleştirilen verileri karıştırır. Amerika Birleşik Devletleri NSA tarafından geliştirilen, internetteki önemli yayınları şifrelemek için kullanılan birçok teknolojinin temel bir bileşenidir. Sık kullanılan şifreleme yöntemleri SSL ve TLS, duymuş olabileceğiniz tarayıcı araç çubuğunda gördüğünüz imzalı sertifikaları oluşturmak için SHA-1 gibi bir karma işlevi kullanabilir.
SHA işlevlerinden herhangi birinin matematik ve bilgisayar bilimlerine derinlemesine girmeyeceğiz, ama işte temel fikir. Bir "karma", herhangi bir verinin girişine dayanan benzersiz bir koddur. SHA-1 gibi bir karma işlevine girilen küçük, rasgele harfler dizisi bile, uzun, ayarlanmış karakter sayısını döndürerek karakter dizisini orijinal verilere geri döndürmeyi imkansız kılar. Parola depolaması genellikle bu şekilde çalışır. Bir şifre oluşturduğunuzda, şifre girişiniz sunucu tarafından şifrelenir ve saklanır. İadeniz üzerine şifrenizi yazdığınızda tekrar şifrelenir. Orijinal karma ile eşleşirse, girişin aynı olduğu varsayılabilir ve size verilerinize erişim izni verilir..
Karma işlevleri, öncelikle bir dosyanın veya parolanın girişinin değişip değişmediğini söylemeyi kolaylaştırdığı için yararlıdır. Girdi verileri gizli olduğunda, bir şifre gibi, hash, orijinal verileri (“anahtar” olarak da bilinir) tersine çevirip kurtarmak için neredeyse imkansızdır. Bu, amacı daha sonra şifresini çözmek için şifreleri ve gizli anahtarları kullanarak veriyi karıştırmak olan “şifreleme” den biraz farklıdır. Her şey aynı olduğundan emin olmak için basitçe veri bütünlüğünü sağlamak içindir. Açık kaynak kod için sürüm kontrol ve dağıtım yazılımı olan Git, bu nedenle SHA-1 karmasını kullanıyor..
Bu çok teknik bilgi, ama basitçe söylemek gerekirse: bir karma şifreleme ile aynı şey değildir, o zamandan beri. Bir dosyanın değişip değişmediğini tanımlamak için kullanılır.
Bu Teknoloji Beni Nasıl Etkiler??
Bir web sitesini özel olarak ziyaret etmeniz gerektiğini varsayalım. Bankanız, e-postanız, hatta Facebook hesabınız, tümü gönderdiğiniz verileri gizli tutmak için şifreleme kullanır. Profesyonel bir web sitesi, şifrelemenin düzeyinde, web sitesi ile kullanıcı arasında özel ve başka hiçbir tarafın gözetilmemesini sağlayacak şekilde güvenilen üçüncü bir taraf olan güvenilir bir otoriteden bir sertifika alarak şifreleme sağlayacaktır. Üçüncü tarafla bu ilişki denilen Sertifika Yetkilileri, veya CA, çok önemlidir, çünkü herhangi bir kullanıcı “kendinden imzalı” bir sertifika oluşturabilir; Linux'u Open SSL ile çalıştıran bir makinede bile kendiniz yapabilirsiniz. Symantec ve Digicert, örneğin yaygın olarak bilinen iki CA şirketidir..
Teorik bir senaryoyu inceleyelim: Nasıl Yapılır Geek, kullanıcıların oturumlarını şifrelemeyle gizli tutmak istiyor, bu nedenle Symantec gibi bir CA dilekçesi verdi. Sertifika İmzalama İsteği, veya CSR. Bir yaratırlar Genel anahtar ve Özel anahtar İnternet üzerinden gönderilen verileri şifrelemek ve şifresini çözmek için. CSR talebi, genel anahtarı Symantec'e web sitesi hakkındaki bilgilerle birlikte gönderir. Symantec, verilerin tüm taraflarca değişmediğini doğrulamak için anahtarı siciline karşı kontrol eder, çünkü verilerdeki herhangi bir küçük değişiklik hash'ı çok farklı kılar.
Bu ortak anahtarlar ve dijital sertifikalar karma işlevlerle imzalanmıştır, çünkü bu işlevlerin çıktısını görmek kolaydır. Symantec'ten (bizim örneğimizde) doğrulanmış bir hash ile ortak bir anahtar ve sertifika, bir otorite, bir Anahtar-Değişim Geek kullanıcısına, anahtarın değişmediğini ve kötü niyetli bir kişiden gönderilmediğini garanti eder..
Karmağın izlenmesi kolay ve imkansız (bazıları “zor” diyebilir) olduğu için doğru, doğrulanmış karma imzası, sertifikanın ve bağlantının güvenilir olabileceği ve verilerin uçtan uca şifreli olarak gönderilmesine karar verilebileceği anlamına gelir. . Ama ya eğer karma aslında benzersiz değildi?
Bir Çarpışma Saldırısı Nedir ve Gerçek Dünyada Mümkün Mü?
Ne dendiğini bilmiyor olsanız da, matematikte “Doğum Günü Problemi” ni duymuş olabilirsiniz. Temel fikir, yeterince büyük bir grup insan toplarsanız, iki veya daha fazla insanın aynı doğum gününe sahip olma ihtimalinin oldukça yüksek olmasıdır. Beklediğinizden daha yüksek, gerçekte tuhaf bir tesadüf gibi görünmesi yeterli. 23 kişiden küçük bir grupta, ikisinin doğum gününü paylaşma şansı% 50.
Bu, SHA-1 de dahil olmak üzere tüm karma değerlerde doğal zayıflıktır. Teorik olarak, SHA işlevi, içine konan herhangi bir veri için benzersiz bir karma oluşturmalıdır, ancak karma sayısı arttıkça, farklı veri çiftlerinin aynı karma oluşturması daha olasıdır. Böylece, güvenilir bir sertifikaya özdeş bir karma değerine sahip güvenilir olmayan bir sertifika oluşturulabilir. Bu güvenilmeyen sertifikayı yüklemenizi sağladılarsa, güvenilir olarak maskelenebilir ve kötü amaçlı verileri dağıtabilirdi.
İki dosyadaki eşleşen kareleri bulma çarpışma saldırısı. MD5 hash için zaten en az bir büyük ölçekli çarpışma saldırısı olduğu bilinmektedir. Ancak, 27 Şubat 2017'de Google, SHA-1'in ilk kez yarattığı çarpışma olan SHAttered'i açıkladı. Google, farklı içeriğe sahip olmasına rağmen, başka bir PDF dosyasıyla aynı SHA-1 karması olan bir PDF dosyası oluşturabildi.
SHAttered bir PDF dosyası üzerinde gerçekleştirildi. PDF'ler nispeten gevşek bir dosya formatıdır; Okuyucuların açmasını engellemeden veya gözle görülür farklılıklara neden olmadan çok sayıda küçük, bit düzeyinde değişiklik yapılabilir. PDF'ler ayrıca genellikle kötü amaçlı yazılım dağıtmak için kullanılır. SHAttered ISO gibi diğer dosya türlerinde çalışabilirken, sertifikalar katı bir şekilde belirtilmiş ve bu tür bir saldırı olasılığı düşük.
Peki bu saldırının gerçekleştirilmesi ne kadar kolay? SHAttered, 2012 yılında Marc Stevens tarafından 2 ^ 60.3 (9.223 quintillion) SHA-1 işleminden oluşan ve şaşırtıcı bir sayı gerektiren bir yönteme dayanıyordu. Bununla birlikte, bu yöntem hala kaba kuvvetle aynı sonucu elde etmek için gerekenden 100.000 kat daha az işlemdir. Google, 110 üst seviye grafik kartının paralel olarak çalışmasının bir çarpışma oluşturmasının yaklaşık bir yıl alacağını buldu. Bu hesaplama süresini Amazon AWS'den kiralamak yaklaşık 110.000 $ 'a mal olacak. Bilgisayar parçaları için fiyatlar düştüğünde ve daha az güç aldığınızda, SHAttered gibi saldırıların çekilmesinin daha kolay olacağını unutmayın..
110.000 $ çok gibi görünebilir, ancak bazı kuruluşlar için uygun fiyatta olabilir; bu, gerçek hayattaki siberviller dijital belge imzaları oluşturabilir, Git ve SVN gibi yedekleme ve sürüm kontrol sistemlerine müdahale edebilir veya kötü niyetli bir Linux ISO'nun meşru görünmesini sağlayabilir.
Neyse ki, bu tür saldırıları önleyen hafifletici faktörler var. SHA-1 artık dijital imzalar için nadiren kullanılıyor. Sertifika Yetkilileri artık SHA-1 ile imzalanmış sertifikalar sunmamaktadır ve hem Chrome hem de Firefox onlara destek vermiştir. Linux dağıtımları genellikle yılda bir kereden daha sık salınır, bu saldırganın kötü niyetli bir sürüm oluşturmasını ve daha sonra aynı SHA-1 karmasını elde etmek için bir yastığı oluşturmasını pratik yapmaz.
Öte yandan, SHAttered'e dayalı bazı saldırılar gerçek dünyada zaten gerçekleşiyor. SVN sürüm kontrol sistemi, dosyaları ayırt etmek için SHA-1'i kullanır. İki PDF'yi aynı SHA-1 karması içeren bir SVN deposuna yüklemek, bozulmasına neden olur.
SHA-1 Saldırılarından Kendimi Nasıl Koruyabilirim?
Tipik bir kullanıcının yapacağı çok şey yok. Dosyaları karşılaştırmak için sağlama toplamı kullanıyorsanız, SHA-1 veya MD5 yerine SHA-2 (SHA-256) veya SHA-3 kullanmalısınız. Aynı şekilde, bir geliştiriciyseniz, SHA-2, SHA-3 veya bcrypt gibi daha modern karma algoritmaları kullandığınızdan emin olun. SHAttered'in aynı karı iki ayrı dosyaya vermek için kullanıldığından endişe ediyorsanız, Google, SHAttered sitesinde sizi kontrol edebilecek bir araç yayınladı.
Resim Kredisi: Lego Firefox, Çok Fazla Hash, Lütfen bilinmeyen Web yazarını incitmeyin, Google.