İndirdiğiniz ZIP’in adı doğru, boyutu makul ve simgesi tanıdık olabilir; bunların hiçbiri dosyanın yayıncının sunduğu baytlarla aynı olduğunu kanıtlamaz. SHA‑256 özeti, dosyanın içeriğinden üretilen uzun bir parmak izidir. Yayıncının güvenilir kanalda verdiği değerle bilgisayarınızın hesapladığı değer birebir eşleşirse dosyanın aktarım sırasında değişmediğine dair güçlü bir bütünlük kanıtı elde edersiniz. Eşleşme yoksa dosyayı açmamalı veya kurmamalısınız.

SHA‑256 neyi kanıtlar, neyi kanıtlamaz?

Microsoft’un PowerShell belgesine göre dosya adını veya uzantısını değiştirmek hash değerini değiştirmez; içerikte tek bir karakterin değişmesi ise farklı değer üretir. Bu yüzden hash, iki dosyanın bayt düzeyinde aynı olup olmadığını kontrol etmek için kullanılır.

Ancak hash tek başına yayıncının kimliğini doğrulamaz. Saldırgan hem dosyayı hem aynı sayfadaki hash değerini değiştirebiliyorsa iki değer yine eşleşebilir. Beklenen SHA‑256 değerini dosyayla aynı şüpheli mesajdan değil, üreticinin HTTPS sitesi, imzalı sürüm sayfası veya ayrı güvenilir kanalından alın. Kritik yazılımda mümkünse dijital imza ya da artifact attestation da kontrol edin.

Mac’te SHA‑256 hesaplama

Terminal’i açın. Dosyayı komuta sürükleyerek yolunu hatasız ekleyebilirsiniz:

shasum -a 256 ~/Downloads/paket.zip

Çıktıda 64 onaltılık karakter ve dosya yolu görünür. Yayıncının değerindeki boşlukları ayırın; harflerin büyük veya küçük olması sonucu değiştirmez, karakter dizisinin kendisi aynı olmalıdır.

Dosya adında boşluk varsa yolu tırnak içine alın:

shasum -a 256 "/Users/kullanici/Downloads/Yayin Paketi.zip"

Apple yazılımı bir .pkg olarak geldiyse yalnız hash yerine paket imzasını da kontrol edin. Apple, kendi manuel paketlerinde yükleyicideki kilit/sertifika simgesinden “Apple Software Update Certificate Authority” sertifikasının ve geçerli işaretinin doğrulanmasını öneriyor. App Store veya Sistem Ayarları üzerinden gelen güncellemelerde imza doğrulaması otomatik yapılır.

Windows’ta SHA‑256 hesaplama

PowerShell’i açıp şu komutu çalıştırın:

Get-FileHash -Path "$HOME\Downloads\paket.zip" -Algorithm SHA256

Get-FileHash varsayılan olarak zaten SHA‑256 kullanır; algoritmayı açıkça yazmak, karşılaştırmanın neyle yapıldığını belgeler. Yalnız değeri almak isterseniz:

(Get-FileHash -Path "$HOME\Downloads\paket.zip" -Algorithm SHA256).Hash

Komut dosyayı çalıştırmaz, içeriğinden özet hesaplar. Büyük ISO veya yedek arşivinde birkaç saniye ya da disk hızına göre daha uzun sürebilir.

Eşleşmeyi gözle değil komutla yapın

64 karakteri gözle karşılaştırmak hata üretir. Beklenen değeri güvenilir kaynaktan kopyalayıp komutla karşılaştırın.

Mac

beklenen=$(printf '%s' "BURAYA_YAYINCININ_SHA256_DEGERI" | tr 'A-F' 'a-f')
gercek=$(shasum -a 256 ~/Downloads/paket.zip | awk '{print $1}')
[ "$gercek" = "$beklenen" ] && echo "ESLESTI" || echo "ESLESMEDI"

İlk satır yalnız büyük A–F karakterlerini küçültür; hash değerinin içeriğini değiştirmez. Beklenen değerde başta veya sonda boşluk kalmadığından emin olun.

Windows PowerShell

$beklenen = "BURAYA_YAYINCININ_SHA256_DEGERI"
$gercek = (Get-FileHash "$HOME\Downloads\paket.zip" -Algorithm SHA256).Hash
$gercek -eq $beklenen

Çıktı True ise değerler eşleşir. False görürseniz “yakın” olması kabul edilmez; tek karakter farkı bile başarısızlıktır.

Hash eşleşmezse ne yapmalı?

  1. Dosyayı açmayın, kurmayın ve yönetici yetkisi vermeyin.
  2. Doğru sürüm, işletim sistemi ve mimariye ait hash’i aldığınızı kontrol edin.
  3. Tarayıcı indirmesinin tamamlandığını ve dosyanın bulut senkronizasyonuyla değişmediğini doğrulayın.
  4. Dosyayı resmî kaynaktan yeniden indirin; aynı dosyanın üzerine yazmak yerine yeni adla saklayın.
  5. İkinci indirme de uyuşmuyorsa yayıncının sürüm notu veya destek kanalını kontrol edin.
  6. Dosya imzası veya GitHub artifact attestation sunuluyorsa onu da doğrulayın.

MD5 ve SHA‑1 eski sistemlerde hâlâ görülebilir. Microsoft’un PSScriptAnalyzer kuralı bu algoritmaları çakışma saldırılarına karşı kırık kabul ediyor ve SHA‑256, SHA‑384 veya SHA‑512 gibi alternatifleri öneriyor. Yayıncı yalnız MD5 veriyorsa bu değer yanlış indirmeyi yakalamaya yardımcı olabilir; saldırgana karşı güçlü bütünlük kanıtı sayılmamalıdır.

Beklenen hash nereden alınmalı?

En iyi senaryo, yayıncının sürüm sayfasında her dosya adının karşısında ayrı SHA‑256 değeri vermesidir. E-posta ekiyle gelen dosya ve hash aynı ileti içinde bulunuyorsa, hesap ele geçirildiğinde ikisi birlikte değiştirilebilir. Kritik kurulumda beklenen değeri üreticinin resmî web sayfasından veya imzalı sürüm notundan karşılaştırın.

GitHub sürümlerinde yalnız yorumdaki rastgele değere güvenmeyin; depo sahibinin yayımladığı asset, checksum dosyası ve varsa artifact attestation kaydını kullanın. Attestation, yalnız baytların aynı olduğunu değil, yapının hangi depo ve iş akışından üretildiğini doğrulamaya yardım eder. Hash bütünlüğü, imza veya provenance ise kaynak zincirini güçlendirir; birbirlerinin yerine geçmezler.

ZIP teslim paketlerinde doğru çalışma düzeni

Birden fazla dosyalı pakette iki katman kullanın: önce ZIP dosyasının dış SHA‑256 değerini kontrol edin, sonra arşivi açıp içindeki SHA256SUMS listesini doğrulayın. Böylece hem taşıma kabını hem iç dosyaları sınarsınız. Kod imzasının neden ayrı bir güven katmanı olduğunu Windows kod imzalama değişikliği yazısında ayrıntılı olarak okuyabilirsiniz.

Kısa kontrol listesi

  • Beklenen hash resmî ve HTTPS korumalı kaynaktan mı alındı?
  • Algoritma iki tarafta da SHA‑256 mı?
  • Doğru sürüm ve mimari dosyası karşılaştırılıyor mu?
  • Eşleşme 64 karakterin tamamında mı?
  • Uyuşmayan dosya çalıştırılmadan yeniden indirildi mi?
  • Mevcutsa dijital imza veya attestation ayrıca doğrulandı mı?

SHA‑256 kontrolü zararlı yazılım taramasının yerine geçmez; dosyanın beklenen dosya olduğunu kanıtlamaya yarar. Bir dakikalık bu test, özellikle sunucu imajı, WordPress eklentisi, yedek, firmware ve Codex yayın paketi gibi yüksek yetkiyle kullanılacak dosyalarda ucuz ama güçlü bir güvenlik kapısıdır.

Kaynaklar