Hash Nedir?

By | 15/06/2022

Hash siber güvenlikle ilgili herhangi bir tartışmada tekrar tekrar karşılaşacağınız bir kavramdır. Hashing, bir dosyadan sabit boyutlu bir bit dizisi değeri hesaplayan bir algoritmadır. Bu verileri orjinal dizeyi temsil eden çok daha kısa sabit uzunluklu değere veya anahtara dönüştürür.

İyi bir karma algoritması, bir dosya içindeki tek bir bit veya veri byte değiştirildiğinde bile sonuçta elde edilen karma çıktının önemli ölçüde veya tamamen değişeceği çığ etkisi adı verilen bir özellik sergileyecektir. Bu da kırılması kolay anlamına gelmektedir.

Bir karma genellikle birkaç karakterden oluşan onaltılık bir dizedir. Hashing aynı zamanda tek yönlü bir işlemdir, bu nedenle orijinal verileri geri almak için asla geriye doğru çalışamazsınız.

İyi bir hash algoritması, iki farklı girdiden aynı hash değerini üretmeyecek kadar karmaşık olmalıdır. Olursa, bu bir karma çarpışması olarak bilinmektedir. Bir karma algoritma, ancak çok düşür bir çarpışma şansı sunabiliyorsa iyi ve kabul edilebilir olmaktadır.

Hash Faydaları Nelerdir?

Karmanın bir ana kullanımı, iki dosyayı eşitlik için karşılaştırmaktır. Kelime karşılaştırmak için iki belge dosyasını açmadan, bu dosyaların hesaplanan karma değerleri, sahibinin farklı olup olmadıklarını hemen bilmesini sağlar.

Hash, bir dosyanın bir yerden diğerine aktarıldıktan sonra bütünlüğünü doğrulamak için de kullanılır, genellikle SyncBack gibi bir dosya yedekleme programında. Aktarılan dosyanın bozulmadığından emin olmak için kullanıcı her iki dosyanın karma değerini karşılaştırabilir. Aynıysa, aktarılan dosya aynı kopyadır.

Bazı durumlarda, şifrelenmiş bir dosya, dosya boyutunu veya son değişiklik tarihini ve saatini asla değiştirmeyecek şekilde tasarlanabilir (örneğin, sanal sürücü kapsayıcı dosyaları). Bu gibi durumlarda, iki benzer dosyanın farklı olup olmadığını bir bakışta söylemek imkansız olurdu, ancak hash değerleri farklıysa bu dosyaları kolayca ayırt edebilirdi.

Hash Türleri

RipeMD, Tiger, xxhash ve daha fazlası gibi birçok farklı karma algoritma türü vardır, ancak dosya bütünlüğü kontrolleri için kullanılan en yaygın karma türü MD5, SHA-2 ve CRC32’dir.

  • MD5: Bir MD5 karma işlevi, bir dizi bilgiyi kodlar ve bunu 128 bit parmak izine kodlar. MD5 genellikle veri bütünlüğünü doğrulamak için bir sağlama toplamı olarak kullanılır. Bununla birlikte, yaşı nedeniyle, MD5’in ayrıca kapsamlı karma çarpışma güvenlik açıklarından muzdarip olduğu biliniyor, ancak yine de dünyada en yaygın kullanılan algoritmalardan biridir.
  • SHA-2: Ulusal Güvenlik Ajansı (NSA) tarafından geliştirilmiş SHA-2, kriptografik bir karma işlevidir. SHA-2, selefi SHA-1’den önemli değişiklikler içerir. SHA-2 ailesi, 224, 256, 384 veya 512 bit olan özetlere (karma değerleri) sahip altı karma işlevinden oluşur: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA -512/256.
  • CRC32: Döngüsel artıklık denetimi (CRC), verilerde yanlışlıkla yapılan değişikliklerin tespiti için sıklıkla kullanılan bir hata tespit kodudur. Aynı veri dizisini CRC32 kullanarak kodlamak her zaman aynı karma çıktıyla sonuçlanır, bu nedenle CRC32 bazen dosya bütünlüğü kontrolleri için bir karma algoritma olarak kullanılır. Bu günlerde, CRC32, Zip dosyaları ve FTP sunucuları dışında nadiren kullanılmaktadır.

Vakit ayırdığınız için teşekkürler bir sonraki yazımızda görüşmek üzere 🙂