Dosya Checksum Doğrulayıcı

Bir dosyanın SHA-256, SHA-512 veya SHA-1 checksum'ını doğrudan tarayıcınızda hesaplayın ve geliştiricinin yayınladığı hash ile karşılaştırın — indirmenizin bozulmadan ve değiştirilmeden geldiğini doğrulayın, hiçbir şey sunucuya yüklenmez.

225 görüntülenme

Dosyayı buraya sürükleyin veya seçmek için tıklayın

Yazılım Dağıtıcıları Neden Checksum Yayınlar

Bir Linux ISO'su, açık kaynak bir ikili dosya veya imzalı bir kurulum paketi indirdiğinizde, indirme sayfasında genellikle dosyanın yanında a94a8fe5ccb19ba61c4c0873d391e987982fbbd gibi kısa bir checksum (sağlama toplamı) dizesi görürsünüz. Bu dize, dosyanın her byte'ı üzerinde çalıştırılan bir kriptografik hash fonksiyonunun çıktısıdır. Dosyanın herhangi bir yerindeki tek bir bit bile değişse, hash tamamen farklı çıkar. Dağıtıcılar bu değeri yayınlar; çünkü siz dosyayı indirdikten sonra aynı hash fonksiyonunu kendiniz çalıştırıp sonucu onların yayınladığıyla karşılaştırabilirsiniz. İki dize birebir eşleşirse, diskinizdeki kopyanın dağıtıcının derleyip yüklediği byte'ların aynısını içerdiğinden emin olabilirsiniz — hiçbir şey eklenmemiş, eksilmemiş veya değiştirilmemiştir.

Checksum iki farklı sorunu yakalar. Birincisi sıradan bir sorundur: ağ bağlantıları aktarım sırasında kesilir, proxy'ler büyük dosyaları kırpar, diskler zaman zaman bozuk sektörlere yazar — bunların herhangi biri, boyutu doğru görünen ve görünürde hatasız açılan ama orijinalinden birkaç bozuk byte farklı olan bir dosya bırakabilir; bu da genellikle bir kurulumu çökertmeye ya da verinin sessizce bozulmasına yeter. İkincisi ise kötü niyetli bir müdahaledir: bir saldırgan bir yansı (mirror) sunucuyu ele geçirir veya indirmeyi yolda değiştirip zararlı yazılım bulaştırılmış bir dosyayla değiştirirse, checksum'ı resmi ve güvenilir sayfada yayınlanan değerle karşılaştırmak bunu yakalayabilecek nadir kontrollerden biridir — çünkü dosya adını ve boyutunu taklit etmek kolaydır, ama tam olarak aynı hash'i üretmek yalnızca orijinal byte'ların birebir aynısına sahip olmakla mümkündür.

Checksum Şifreleme Değildir

Bir checksum'ın tam olarak neyi doğruladığını netleştirmekte fayda var, çünkü terminoloji sık karıştırılır. Hashleme tek yönlü, geri döndürülemez bir işlemdir: SHA-256 bir dosyayı sabit uzunlukta 64 karakterlik bir onaltılık dizeye çevirir, ama bu dizeyi tekrar dosyaya çeviren bir işlem yoktur. Bu bile onun şifreleme olmadığını gösterir — şifreleme doğru anahtarla geri döndürülebilir olacak şekilde tasarlanır, hashleme ise asla geri döndürülemeyecek şekilde tasarlanır. Bir checksum bütünlüğü doğrular, gizliliği değil: elinizdeki byte'ların hashlenen byte'larla aynı olduğunu onaylar. Dosyaya erişimi olan herkes içeriğini olduğu gibi okuyabilir; hashleme içeriği gizlemez. Garanti ettiği şey, kasıtlı ya da kazayla tek bir byte değiştirilirse hesapladığınız hash'in artık yayınlanan değerle eşleşmeyeceği ve bir şeylerin farklı olduğunu hemen anlayacağınızdır.

Bu ayrım algoritma seçimi için de önemlidir. SHA-1, 2017'de Google ve CWI Amsterdam araştırmacılarının yayınladığı "SHAttered" saldırısıyla kriptografik güvenlik açısından resmen kırılmış sayıldı: aynı SHA-1 hash'ini üretecek şekilde tasarlanmış iki farklı PDF dosyası, yeterince kararlı bir saldırganın meşru bir dosyayla aynı checksum'a sahip kötü niyetli bir dosya oluşturabileceğini kanıtladı. Bu sonuç, SHA-1'i TLS sertifikaları, dijital imzalar gibi güvenlik açısından kritik her şey için, yani kasıtlı çakışma (collision) üretmeye çalışan düşman bir aktöre karşı emekliye ayırdı. Ama bu aracın çözdüğü çok daha yaygın senaryoda — bir indirmenin kararsız bir bağlantı yüzünden bozulmadığını doğrulamada — SHA-1 pratikte hâlâ gayet işe yarar; çünkü kimse sizin özel olarak bozulmuş indirmenizi belirli bir hedef hash'e uyacak şekilde tasarlamaz, kazara bozulma rastgele bit çevrilmesidir, kasıtlı çakışma inşası değil. Yine de tercih söz konusu olduğunda SHA-256 hesaplama açısından ekstra bir bedel getirmez ve bu açığı tamamen kapatır, bu yüzden daha güvenli varsayılan seçenektir.

Sıkça Sorulan Sorular

Checksum tam olarak neyi doğrular?

Checksum, bir kriptografik hash fonksiyonunun (SHA-256, SHA-512 veya SHA-1) bir dosyanın her byte'ı üzerinde çalıştırılmasıyla elde edilen çıktıdır. Bütünlüğü doğrular: elinizdeki dosyanın, yayınlanan hash'i üreten dosyayla byte byte aynı olduğunu gösterir. İçeriğin anlamı, güvenliği ya da kaynağı hakkında hiçbir şey söylemez — sadece hash oluşturulduğundan beri hiçbir byte eklenmediğini, çıkarılmadığını veya değiştirilmediğini gösterir.

İndirdiğim dosyanın hash'i sitedekiyle neden eşleşmiyor?

En yaygın sebep, eksik veya bozuk indirmedir — devam ettirmeyi destekleyen bir indirme yöneticisiyle tekrar deneyin. Diğer sebepler: aynı sayfadaki farklı bir sürüm veya farklı bir dosya için beklenen hash'i karşılaştırmış olabilirsiniz, ya da beklenen hash'i kopyalarken yanlışlıkla fazladan boşluk veya karakter eklemiş olabilirsiniz. Kötü niyetli bir şey olduğunu varsaymadan önce resmi kaynaktan tekrar indirip yeniden kontrol edin; gerçek bir kurcalama nadirdir ama checksum'ların var olma sebebi tam olarak bunu yakalamaktır.

SHA-1 indirmeleri doğrulamak için hâlâ güvenli mi?

Kazara bozulmayı — kesilen bir bağlantı, bozuk bir disk sektörünü — doğrulamak için evet, SHA-1 pratikte hâlâ gayet işe yarar. Kararlı bir saldırganın belirli bir hash'e uyacak kötü niyetli bir dosya kasıtlı olarak tasarlayabileceği senaryolar için ise hayır: SHA-1, Google ve CWI Amsterdam'ın 2017'deki "SHAttered" çakışma saldırısıyla kırıldı; bu saldırı iki farklı dosyanın aynı SHA-1 hash'ini paylaşabileceğini kanıtladı. Seçim şansınız varsa SHA-256 bu soruyu ekstra bir maliyet olmadan tamamen ortadan kaldırır.

Bu amaç için SHA-256 ile SHA-512 arasındaki fark nedir?

İkisi de SHA-2 ailesine aittir ve bilinen pratik bir kriptografik zafiyetleri yoktur. SHA-512 içeride SHA-256'nın 32 bitlik kelimeleri yerine 64 bitlik kelimelerle çalışır, bu yüzden 64 bitlik donanımlarda 128 karakterlik daha uzun bir özet (digest) üretmesine rağmen benzer hatta daha hızlı hesaplanabilir. Günlük checksum doğrulaması için ikisi de uygundur — dağıtıcının yayınladığı hangisiyse onu kullanın, çünkü karşılaştıracağınız tek değer odur.

Eşleşen bir checksum, dosyanın güvenli olduğunu veya kim tarafından yayınlandığını mı kanıtlar?

Hayır. Bir eşleşme yalnızca elinizdeki byte'ların, belirli bir beklenen hash'i üreten byte'lar olduğunu kanıtlar — beklenen hash'in kendisinin güvenilir bir kaynaktan gelip gelmediği hakkında hiçbir şey söylemez. Bir saldırgan beklenen checksum'ın yayınlandığı aynı sayfayı ele geçirirse, kendi kötü niyetli dosyası için eşleşen bir hash yayınlayabilir ve doğrulama "eşleşiyor" der. Checksum'lar "dosya bozulmadan mı geldi" sorusuna cevap verir, "iddia ettiği kişi tarafından mı yayınlandı" sorusuna değil — ikinci soru için PGP/GPG gibi bir kriptografik imza gerekir, sadece bir hash yetmez.

Yorumlar

Henüz yorum yok — ilk yorumu siz yazın!

Benzer Araçlar