Bu makalemizde Hash algoritmalarının hukuk alanında kullanımını açıklamaya çalışacağım. Makaleye giriş yapmadan önce kısaca özetlemeye çalışırsak delil olarak alınmış bir elektronik belgenin üzerinde değişiklik yapılmamasını garanti etmek için kullanılan yöntemler Fuzzy Hash Yöntemi olarak adlandırılır. İsterseniz makalenin devamında biraz daha altyapı bilgisi ile birlikte konunun detayına inmeye çalışalım.
Hash algoritmaları kendilere girdi olarak verilen bir değeri işleyerek tekil bir değer üreten algoritmalardır. (Bu işlemin bilimsel adı cheksum'dır. Makalenin sonunda yer alan linkten konu ile ilgili bilgi sahibi olabilirsiniz)
En temel anlamda birbirinden farklı dosyaların hash değerleri de farklı olacaktır. Bu farklılık tek bir byte bile olsa sağlanacaktır. Yani iki dosya arasında tek bir byte’lık bir fark bile varsa bu dosyalara ilişkin hash fonksiyonlarının çıktıları tamamen birbirinden farklı olacaktır.
Adli bilişim incelemelerinde sıkça kullanılan bu hash fonksiyonlarının bazı durumlarda çözüme ulaşılması noktasında ihtiyacı karşılamadığını söyleyebiliriz. Örneğin birbirinin kopyası olan iki dokümandan birinde kullanıcı tarafından bu hash fonksiyonlarını bertaraf etmek adına çok ufak bir değişiklik yapılmışsa ve biz elimizdeki dokümanın bir kopyasının kullanıcının bilgisayarında olup olmadığını araştırıyorsak ne yapacağız?
Klasik hash fonksiyonları bu sorunun çözümünde yetersiz kalmaktadır. İşte bu noktada fuzzy hashing olarak adlandırılan yöntem devreye girmektedir.
Fuzzy hashing, iki dosya arasındaki benzerliği tespit etmek için kullanılır. Bu sayede üzerinde oynama yapılmış dokümanları yada bir dosyadan alınmış kısımları tespit etmek mümkündür. Fuzzy hashing için kullanılan algoritma “Context Triggered Piecewise Hashing (CTPH)” algoritmasıdır. Tipik hash fonksiyonları dosyayı bütün olarak işleme sokarken, fuzzy hashing işleminde dosya parçalara bölünerek işleme sokulur.
Ssdeep uygulaması , Piecewise Hashing algoritmasını kullanarak benzerlik oranını tespit etmek için kullanılır. Uygulamanın son sürümüne buradan ulaşılabilir. Dosyalar arasında benzerlik karşılaştırması yapmadan önce kaynak olarak kullanılacak dosyaların piecewise hash değerleri ssdeep ile çıkartılmalıdır. ssdeep ile kendi dosyalarınızın fuzzy hash değerlerini hespalayabileceğiniz gibi NIST tarafından oluşturulan ssdeep hash dosyasını da kullanabilirsiniz. NSRL tarafından oluşturulmuş ssdeep uyumlu hash setine buradan ulaşılabilir.
Konuyla alakalı olduğu için aşağıdaki iki makaleyi de mutlaka okumanızı tavsiye ediyorum:
Bu makalede Halil ÖZTÜRKCİ tarafından yazılan "Adli Bilişim İncelemelerinde Fuzzy Hashing Kullanımı" isimli makaleden faydalanılmıştır.
Yorumlar
Yorum Gönder