Hash nedir? Nasıl çalışır?

'Halaskâr

Kıdemli Moderatör
4 Ara 2020
1,176
1,062
Midgard
Hash nedir? Nasıl çalışır?

heny41k.png


Bu yazıda hashing'in ne olduğunu, nasıl çalıştığını ve günümüzdeki önemini anlatmaya çalışacağım.

Kesinlikle birçok yerde şu cümleye rastlamışsınızdır: "
Parolanız veri tabanında güvenli bir algoritma kullanılarak saklanmaktadır." Bu ne anlama geliyor? Nedir bu algoritmalar? Bu, bu makalenin ana odağı olacaktır. Farklı şifreleme algoritmalarına, tek yönlü algoritmalara ve kısacası karma kavramına gireceğiz.

Dijital dünyada şifrelerimiz üzerinden birçok hizmete erişebiliyoruz. Hesaplarımızı yetkisiz erişime karşı koruyan basit ama güvenli, onlarca yıllık bir çözümdür. E-posta adresleriniz, sosyal medya hesaplarınız veya çeşitli işlemler için kullandığınız müşteriler... Tüm bu şifrelerde farklı şifreler kullanıyoruz.

Bir sisteme girebilmemiz için şifremizi yazıp giriş düğmesine bastığımızda,
arka planda daha önce belirlediğimiz şifre ile bir karşılaştırma gerçekleşir.
Doğruysa, başarıyla giriş yapacağız, yanlışsa giriş yapmamıza izin verilmiyor. Bu en basit yoldur, ancak saldırganın bakış açısından bakalım.
Eğer bir sisteme şifre ile girilirse mutlaka önceden belirlenmiş bir şifre vardır ve bir yerde saklanır. Bu şekilde, düz metin olarak saklanan parola veya diğer veriler ele geçirilebilir.

"Hashing" iş başında

Bu nedenle,
karma algoritmalar günümüzde kullanılmaktadır. Çeşitli veriler veya parolalar düz metin olarak asla saklanmaz. Parolanın depolanması, bir siteye kaydolurken belirlediğiniz, veri tabanında olduğu gibi olmaz. Tek yönlü bir algoritma kullanılarak şifrelenir ve gerçek şifreyle ilgisi olmayan harf ve rakamlardan oluşur. Sisteme dışarıdan erişimi olan bir saldırgan şifrelenmiş verileri ele geçirse bile, genellikle tek yönlü bir şifreleme şekli olduğu ve tersine çevrilemeyeceği için çalışmaz.

Peki doğru şifreyi girdiğimizde hizmetlere nasıl güvenli bir şekilde erişebiliriz? Aslında, bu soru basittir ve cevabı kendisiyle birlikte taşır. Daha önce belirlediğimiz şifre orijinal bir algoritma ile şifrelenir ve veritabanında saklanır. Hizmetlere erişmek için giriş kısmına şifremizi girdiğimizde, bu şifre aynı algoritma ile tekrar şifrelenir,
tuzlanır (salting) ve daha önce kaydedilen şifrenin şifrelenmiş sürümüyle eşleştirilir. Birbirleriyle tanışırlarsa, hesap başarıyla oturum açmış olur.

Ancak hashing tek başına yeterli mi?

Buna net bir cevap vermek çok ilginç olacaktır, çünkü bu sorunun cevabı uygulanma şekline bağlı olarak değişebilir.
Hash algoritmasında, şifre ve kullanılan yöntem büyük önem taşımaktadır.

Şifrelemede, "Düz metin" (düz metin) bir şifre ve şifre algoritması kullanılarak karıştırılır. Şifrelenmiş veriler, şifrenin yeniden girilmesiyle kurtarılabilir.
Her zaman iki yönlü bir dönüşüm vardır. Karma veriler için durum böyle değildir.

Aşağıdaki resimler size konu hakkında bir fikir verecektir.

hin62ht.png


Şifreleme ve şifre çözme işlemlerinin nasıl çalıştığına dair bir görüntü.


2us4rfk.png


Hash algoritmasının nasıl çalıştığını gösteren bir resim.



Hashing'in en ilginç ve etkili özelliği, söz konusu veri kümesindeki en küçük parça ve en ufak bir veri değişse bile bir farklılık gözlenmesidir.
Örneğin, aşağıda SHA-1 ile şifrelenmiş veriler verilmiştir.

Orijinal metin:
Beşiktaş

SHA-1 değeri:
73c453bdbc7bed6aed9c6373b3a56e99ae5cf6ed


Orijinal metin:
Beşiktaş!

SHA-1 değeri:
590287DC37956539720B2AF0A80D62F1F602113e

Gördüğünüz gibi, hashing'den kaynaklanan değerler en küçük değişikliklerde bile tamamen farklıdır. Bu nedenle, karma yalnızca parolaları güvenli bir şekilde depolamak için değil, aynı zamanda belirli verilerin doğruluğunu kontrol etmek için de kullanılır. Başkaları tarafından gönderilen ISO dosyalarının, programların veya kritik dosyaların karma değerlerini kontrol ederek bozulup bozulmadığını veya değiştirilip değiştirilmediğini görebilirsiniz.

Tabii ki, bu hala her algoritmanın gerçekten güvenli bir değer sunmadığı anlamına geliyor. Çünkü, gördüğünüz gibi, en küçük değişikliklerde bile, karma değeri büyük ölçüde değişir, çoğu zaman alakasızdır. Güvenli olmayan algoritmalarda, karma değeri büyük ölçüde değişmez, ancak karma değeri, girilen düz metindeki değişiklik kadar değişir.

Bu ne demek? Oldukça basit.
Hash değeri baştan değişmediği için elde edilen değere göre bir süre sonra düz metin kolayca elde edilebilir. Benzer bir yöntem ne yazık ki Hindistan'da oldukça popüler olan Tally Vault adlı işletme yönetimi yazılımlarından birinde de kullanıldı. Merak ediyorsanız Elcomsoft'un konuyla ilgili makalesini okuyabilirsiniz.

MD5 ve SHA-1 terk edilmeye başlandı

Sadece özel olarak yazılmış bir dizi algoritma değil, aynı zamanda genellikle doğru kabul edilen bazı karma yöntemlerin de güvensiz olduğu ortaya çıktı.

MD5 (Message-Digest algorithm 5) aslında kriptografik hash algoritmalarından biri olmasına rağmen maalesef çok önemli güvenlik açıkları olmuştur ve kaba kuvvet saldırıları ile hacklenmesi kolaydır. Ayrıca, 2012 yılında ortaya çıkan Flame kötü amaçlı yazılımının yayılması, zayıf MD5 algoritmasını kullanan bir Microsoft kod imzalama sertifikası da kullandı . Sonuç olarak, MD5'in güvenilirliği dünya çapında sorgulanmış ve bu nedenlerden dolayı algoritma yavaş yavaş terk edilmiştir.

2017 yılında, ilk SHA-1 in kimliğe bürünmesi Google Güvenlik ekibi tarafından hazırlanan bir blog yazısında duyuruldu. Açıklamada, kriptografi alanında adeta bir "İsviçre çakısı" olan SHA-1 algoritmasının artık başarısız olabileceği ve iki farklı dosyanın aynı SHA-1 değerine sahip olmasının mümkün olduğu belirtildi. Google'ın duyurusu, endüstrinin SHA-1'i kullanmayı tamamen bırakması ve SHA-256 gibi daha güvenli algoritmaları tercih etmesi gerektiğini öne sürdü.

Peki SHA-1 neden belirsiz hale geldi?

SHA-1; şifrelerde kullanılan bir karma algoritma, veri bütünlüğünün doğrulanması, çeşitli protokoller. Google'ın algoritmasına yönelik saldırı deneyinde, aşağıdaki resimden de anlayabileceğiniz gibi, aynı SHA-1 değerine sahip iki farklı dosyanın var olabileceği gösterildi. Kısacası, ne olursa olsun, karma algoritmalar birbiriyle çakışmamalıdır. Verilerde biraz değişiklik olsa bile, hash değeri çok farklı olmalıdır.


t6hrk9v.png


Güvenli olmayan karma algoritmalar kullanılarak gerçekleştirilebilecek bir saldırı örneği.

Ne yazık ki, iyi hazırlanmış bir saldırgan temiz dosyayla aynı SHA-1 değerine sahip kötü amaçlı bir dosya hazırlayabilir ve gelen kötü amaçlı dosya yerine kötü amaçlı amaçlarla kullanabilir. SHA-1 algoritması son derece yüksek işlem gücü kullanılarak tehlikeye atıldı. Yine de, bu artık güvenli olmadığı gerçeğini değiştirmez.

Karma algoritma ne olmalıdır?

Makalemizi şimdiye kadar dikkatlice okuduysanız, bir karma algoritmanın nasıl görünmesi gerektiğini az çok tahmin edebilirsiniz. Daha önce birçok kez belirttiğimiz gibi, hashing yöntemi bilgisayar güvenliğinde hemen hemen her yerde kullanılmaktadır. Bu nedenle, bir karma algoritma oldukça hızlı bir şekilde hesaplanabilmelidir. Hiç kimse bir Word dosyasını doğrulamak için 3 gün beklemek istemez ve böyle bir karma algoritma piyasada kabul edilmez.

Ek olarak, karma algoritma kesinlikle tek yönlü olmalıdır. Orijinal veriler asla karma değerine göre çoğaltılmamalı ve farklı veriler aynı karma değerine sahip olmamalıdır. Karma parolanız varsa ve parolanızı unuttuysanız, geri almak için karma algoritmayı kırma zahmetine girmek yerine kaba kuvvet saldırısını denemelisiniz. Çünkü hangi hashing yöntemi kullanılırsa kullanılsın, tek yönlü bir sokaktır, tersine çevrilemez. Bu kaba ve hatalı yöntemle, şifrenizin nasıl oluşturulduğuna bağlı olarak sonuca ulaşmak yıllar alabilir.

Karma algoritma hızları

Karma algoritmalar kullanarak bir veri kümesinin, metnin veya parolanın güvenliğini sağlayacaksanız, algoritmaların işlem süresini de bilmeniz gerekir. Yazının başında da belirttiğimiz gibi kimlik doğrulama gibi kullanıldığında veritabanındaki hash değeri girilen şifrenin hash değeri ile karşılaştırılır ve eğer doğruysa giriş başarılı olur.

Her karma algoritma aynı değildir, bu nedenle her algoritma hız açısından farklılık gösterebilir. Unutulmaması gereken en önemli şey, karma işlevlerinin verileri yalnızca bir tur için yenilememesidir. Binlerce kez karıştırılır ve sonuç bu şekilde elde edilir. Hash yöntemleriyle bir yönde farklılaştırılan veriler tek bir yineleme ile gizlenirse, modern donanımla kolayca kırabiliriz.

Düşük yineleme düzeyi nedeniyle iOS 10.0, 5 yıllık Intel i5 işlemciyi kullanarak saniyede 6 milyona kadar parola denemesi gerçekleştirebilir.

Tur sayısı kullanım yerine bağlı olarak değişse de, biraz sayısal olarak konuşursak, Microsoft Office yazılımının en son sürümlerinde, belgeler 100.000 kez karıştırılır - merkezi işlemcilerle yapılan bir denemede artık saniyede 10 şifre denenebilir - ve iOS 10.2 ve üzerinde kullanılan yedeklemelerde karıştırma işlemi 1.000.000 kez yapılır . Bu değişikliklerden sonra, CPU'yu kullanarak kaba kuvvet saldırısı nedeniyle her dakika bir avuç şifre deneyebilirsiniz.

Temel olarak, karma tekrarlarının sayısı arttıkça, şifre güçlenir, kaba kuvvet saldırıları yavaşlar, ancak bunun hız üzerinde olumsuz bir etkisi olabilir.

Aşağıda VeraCrypt Benchmark ile yapılan bir hız testi bulunmaktadır. Bir örnek, algoritmaların şifrenizi doğrulamasının ne kadar sürdüğü ve ortalama 500.000 tur tekrarlandığıdır.

p76ypm6.png


VeraCrypt Benchmark ile elde edilen karma algoritma oranı değerleri.

Tuzlama (salting) nedir?

Peki ya birisi akıllıca en sık kullanılan şifrelerle eşleşen çok sayıda dizenin karmasını hesaplamak ve işi kolay yoldan çözmek isterse? Hash değerlerini bu şekilde kırmak kolay olmaz mıydı? Bu nedenle, benzersiz ve rasgele veriler, karma hale getirilmeden önce parolalara eklenir. Bu işleme tuzlama denir. Bu işlemlerin sonunda elde edilen şifre salt şifresi olarak da bilinir. Tuzlanmış ve karma hale getirilmiş şifreyi doğrulamak istiyorsak, yine de salt değerine ve şifrenin kendisine ihtiyacımız var.

c1rh16a.png


Blockchain ve Hashing

Blockchain'i blockchain yapan en önemli faktörlerden biri hashing işlemidir. Zincirdeki her bloktaki girişler aslında her şeyi temsil ediyor. Şimdiye kadar, her işlem eklenen yeni verilerle birleştirildi. Temel olarak, şu şekilde ifade edilebilir, çıktılar bir blok zincirinde gerçekleşen önceki tüm işlemlere dayanır ve bu nedenle onlarla birlikte oluşturulur.

Dediğimiz gibi ithalatın bir kısmında yaşanan en küçük değişiklik, ihracatta büyük bir değişikliğe neden olmaktadır. Bu, blockchain teknolojisinin inkar edilemez kesinliğidir. Başlangıçta bir blok zincirinde bulunan bir kaydı değiştirirseniz,
tüm karma değerleri değiştirilir ve yanlış ve modası geçmiş bir duruma getirilir. Blockchain'in şeffaf doğası göz önüne alındığında, bu imkansız hale gelir.

Genesis bloğu olarak bilinen ve blok zincirinin ilk bloğu olarak adlandırılan bu blok, birleştirildiğinde ve onaylandığında benzersiz bir hash değeri oluşturur. Bu karma değer ve işlenen tüm yeni işlemler daha sonra zincirin bir sonraki satırında kullanılan yepyeni bir karma değer için girdi olarak işlenir. Bu, her bloğun karma değer yolu ile birlikte önceki bloğa dönebileceği talimatına karşılık gelir. Bu şekilde, ağdaki düğümler karma değerlerinin ne olması gerektiği konusunda fikir birliğine sahip oldukları sürece, işlemler güvenli bir şekilde eklenebilir.



Karma değer, verilerin hedeflenen alıcı tarafından görülmeden önce değiştirilmemesini sağlar. Bu doğrultuda hassas bilgiler içeren bir dosya indirirseniz, bunu karma algoritma ile çalıştırabilir, bu verilerin karma değerlerini hesaplayabilir ve verileri gönderen kişinin size gösterdiği değerlerle karşılaştırabilirsiniz. Karma değerleri eşleşiyorsa, dosya alınmadan önce değiştirilmediğinden emin olabilirsiniz.



Sonuç ve özet


Ne yazık ki, günümüz dünyası dijitalleşmeye devam ettikçe, bununla birlikte bazı güvenlik riskleri de var. İnternet ilk gelişmeye başladığında, şifreler düz metin olarak tutuldu, ancak bugün bunu yapmak iyi değil. Her gün veri ihlalleri hakkında yüzlerce haber duyuyoruz. Karma algoritmalar, bu tür ihlaller nedeniyle şifrelerin doğrudan ele geçirilmesini önler ve süreci yavaşlatan ana faktörlerden biridir.



Saygı ve sevgilerimle,
Zoptik 🇹🇷


flyhegn.png
 

Muslukcu

Katılımcı Üye
17 Kas 2021
699
262
Tesisat dükkanı
Hash nedir? Nasıl çalışır?

heny41k.png


Bu yazıda hashing'in ne olduğunu, nasıl çalıştığını ve günümüzdeki önemini anlatmaya çalışacağım.

Kesinlikle birçok yerde şu cümleye rastlamışsınızdır: "
Parolanız veri tabanında güvenli bir algoritma kullanılarak saklanmaktadır." Bu ne anlama geliyor? Nedir bu algoritmalar? Bu, bu makalenin ana odağı olacaktır. Farklı şifreleme algoritmalarına, tek yönlü algoritmalara ve kısacası karma kavramına gireceğiz.

Dijital dünyada şifrelerimiz üzerinden birçok hizmete erişebiliyoruz. Hesaplarımızı yetkisiz erişime karşı koruyan basit ama güvenli, onlarca yıllık bir çözümdür. E-posta adresleriniz, sosyal medya hesaplarınız veya çeşitli işlemler için kullandığınız müşteriler... Tüm bu şifrelerde farklı şifreler kullanıyoruz.

Bir sisteme girebilmemiz için şifremizi yazıp giriş düğmesine bastığımızda,
arka planda daha önce belirlediğimiz şifre ile bir karşılaştırma gerçekleşir.
Doğruysa, başarıyla giriş yapacağız, yanlışsa giriş yapmamıza izin verilmiyor. Bu en basit yoldur, ancak saldırganın bakış açısından bakalım.
Eğer bir sisteme şifre ile girilirse mutlaka önceden belirlenmiş bir şifre vardır ve bir yerde saklanır. Bu şekilde, düz metin olarak saklanan parola veya diğer veriler ele geçirilebilir.


"Hashing" iş başında

Bu nedenle, karma algoritmalar günümüzde kullanılmaktadır. Çeşitli veriler veya parolalar düz metin olarak asla saklanmaz. Parolanın depolanması, bir siteye kaydolurken belirlediğiniz, veri tabanında olduğu gibi olmaz. Tek yönlü bir algoritma kullanılarak şifrelenir ve gerçek şifreyle ilgisi olmayan harf ve rakamlardan oluşur. Sisteme dışarıdan erişimi olan bir saldırgan şifrelenmiş verileri ele geçirse bile, genellikle tek yönlü bir şifreleme şekli olduğu ve tersine çevrilemeyeceği için çalışmaz.

Peki doğru şifreyi girdiğimizde hizmetlere nasıl güvenli bir şekilde erişebiliriz? Aslında, bu soru basittir ve cevabı kendisiyle birlikte taşır. Daha önce belirlediğimiz şifre orijinal bir algoritma ile şifrelenir ve veritabanında saklanır. Hizmetlere erişmek için giriş kısmına şifremizi girdiğimizde, bu şifre aynı algoritma ile tekrar şifrelenir, tuzlanır (salting) ve daha önce kaydedilen şifrenin şifrelenmiş sürümüyle eşleştirilir. Birbirleriyle tanışırlarsa, hesap başarıyla oturum açmış olur.


Ancak hashing tek başına yeterli mi?

Buna net bir cevap vermek çok ilginç olacaktır, çünkü bu sorunun cevabı uygulanma şekline bağlı olarak değişebilir.
Hash algoritmasında, şifre ve kullanılan yöntem büyük önem taşımaktadır.

Şifrelemede, "Düz metin" (düz metin) bir şifre ve şifre algoritması kullanılarak karıştırılır. Şifrelenmiş veriler, şifrenin yeniden girilmesiyle kurtarılabilir.
Her zaman iki yönlü bir dönüşüm vardır. Karma veriler için durum böyle değildir.

Aşağıdaki resimler size konu hakkında bir fikir verecektir.

hin62ht.png


Şifreleme ve şifre çözme işlemlerinin nasıl çalıştığına dair bir görüntü.


2us4rfk.png


Hash algoritmasının nasıl çalıştığını gösteren bir resim.



Hashing'in en ilginç ve etkili özelliği, söz konusu veri kümesindeki en küçük parça ve en ufak bir veri değişse bile bir farklılık gözlenmesidir.
Örneğin, aşağıda SHA-1 ile şifrelenmiş veriler verilmiştir.

Orijinal metin:
Beşiktaş

SHA-1 değeri: 73c453bdbc7bed6aed9c6373b3a56e99ae5cf6ed


Orijinal metin: Beşiktaş!

SHA-1 değeri: 590287DC37956539720B2AF0A80D62F1F602113e

Gördüğünüz gibi, hashing'den kaynaklanan değerler en küçük değişikliklerde bile tamamen farklıdır. Bu nedenle, karma yalnızca parolaları güvenli bir şekilde depolamak için değil, aynı zamanda belirli verilerin doğruluğunu kontrol etmek için de kullanılır. Başkaları tarafından gönderilen ISO dosyalarının, programların veya kritik dosyaların karma değerlerini kontrol ederek bozulup bozulmadığını veya değiştirilip değiştirilmediğini görebilirsiniz.

Tabii ki, bu hala her algoritmanın gerçekten güvenli bir değer sunmadığı anlamına geliyor. Çünkü, gördüğünüz gibi, en küçük değişikliklerde bile, karma değeri büyük ölçüde değişir, çoğu zaman alakasızdır. Güvenli olmayan algoritmalarda, karma değeri büyük ölçüde değişmez, ancak karma değeri, girilen düz metindeki değişiklik kadar değişir.

Bu ne demek? Oldukça basit.
Hash değeri baştan değişmediği için elde edilen değere göre bir süre sonra düz metin kolayca elde edilebilir. Benzer bir yöntem ne yazık ki Hindistan'da oldukça popüler olan Tally Vault adlı işletme yönetimi yazılımlarından birinde de kullanıldı. Merak ediyorsanız Elcomsoft'un konuyla ilgili makalesini okuyabilirsiniz.


MD5 ve SHA-1 terk edilmeye başlandı

Sadece özel olarak yazılmış bir dizi algoritma değil, aynı zamanda genellikle doğru kabul edilen bazı karma yöntemlerin de güvensiz olduğu ortaya çıktı.

MD5 (Message-Digest algorithm 5) aslında kriptografik hash algoritmalarından biri olmasına rağmen maalesef çok önemli güvenlik açıkları olmuştur ve kaba kuvvet saldırıları ile hacklenmesi kolaydır. Ayrıca, 2012 yılında ortaya çıkan Flame kötü amaçlı yazılımının yayılması, zayıf MD5 algoritmasını kullanan bir Microsoft kod imzalama sertifikası da kullandı . Sonuç olarak, MD5'in güvenilirliği dünya çapında sorgulanmış ve bu nedenlerden dolayı algoritma yavaş yavaş terk edilmiştir.

2017 yılında, ilk SHA-1 in kimliğe bürünmesi Google Güvenlik ekibi tarafından hazırlanan bir blog yazısında duyuruldu. Açıklamada, kriptografi alanında adeta bir "İsviçre çakısı" olan SHA-1 algoritmasının artık başarısız olabileceği ve iki farklı dosyanın aynı SHA-1 değerine sahip olmasının mümkün olduğu belirtildi. Google'ın duyurusu, endüstrinin SHA-1'i kullanmayı tamamen bırakması ve SHA-256 gibi daha güvenli algoritmaları tercih etmesi gerektiğini öne sürdü.


Peki SHA-1 neden belirsiz hale geldi?

SHA-1; şifrelerde kullanılan bir karma algoritma, veri bütünlüğünün doğrulanması, çeşitli protokoller. Google'ın algoritmasına yönelik saldırı deneyinde, aşağıdaki resimden de anlayabileceğiniz gibi, aynı SHA-1 değerine sahip iki farklı dosyanın var olabileceği gösterildi. Kısacası, ne olursa olsun, karma algoritmalar birbiriyle çakışmamalıdır. Verilerde biraz değişiklik olsa bile, hash değeri çok farklı olmalıdır.

t6hrk9v.png


Güvenli olmayan karma algoritmalar kullanılarak gerçekleştirilebilecek bir saldırı örneği.

Ne yazık ki, iyi hazırlanmış bir saldırgan temiz dosyayla aynı SHA-1 değerine sahip kötü amaçlı bir dosya hazırlayabilir ve gelen kötü amaçlı dosya yerine kötü amaçlı amaçlarla kullanabilir. SHA-1 algoritması son derece yüksek işlem gücü kullanılarak tehlikeye atıldı. Yine de, bu artık güvenli olmadığı gerçeğini değiştirmez.

Karma algoritma ne olmalıdır?

Makalemizi şimdiye kadar dikkatlice okuduysanız, bir karma algoritmanın nasıl görünmesi gerektiğini az çok tahmin edebilirsiniz. Daha önce birçok kez belirttiğimiz gibi, hashing yöntemi bilgisayar güvenliğinde hemen hemen her yerde kullanılmaktadır. Bu nedenle, bir karma algoritma oldukça hızlı bir şekilde hesaplanabilmelidir. Hiç kimse bir Word dosyasını doğrulamak için 3 gün beklemek istemez ve böyle bir karma algoritma piyasada kabul edilmez.

Ek olarak, karma algoritma kesinlikle tek yönlü olmalıdır. Orijinal veriler asla karma değerine göre çoğaltılmamalı ve farklı veriler aynı karma değerine sahip olmamalıdır. Karma parolanız varsa ve parolanızı unuttuysanız, geri almak için karma algoritmayı kırma zahmetine girmek yerine kaba kuvvet saldırısını denemelisiniz. Çünkü hangi hashing yöntemi kullanılırsa kullanılsın, tek yönlü bir sokaktır, tersine çevrilemez. Bu kaba ve hatalı yöntemle, şifrenizin nasıl oluşturulduğuna bağlı olarak sonuca ulaşmak yıllar alabilir.


Karma algoritma hızları

Karma algoritmalar kullanarak bir veri kümesinin, metnin veya parolanın güvenliğini sağlayacaksanız, algoritmaların işlem süresini de bilmeniz gerekir. Yazının başında da belirttiğimiz gibi kimlik doğrulama gibi kullanıldığında veritabanındaki hash değeri girilen şifrenin hash değeri ile karşılaştırılır ve eğer doğruysa giriş başarılı olur.

Her karma algoritma aynı değildir, bu nedenle her algoritma hız açısından farklılık gösterebilir. Unutulmaması gereken en önemli şey, karma işlevlerinin verileri yalnızca bir tur için yenilememesidir. Binlerce kez karıştırılır ve sonuç bu şekilde elde edilir. Hash yöntemleriyle bir yönde farklılaştırılan veriler tek bir yineleme ile gizlenirse, modern donanımla kolayca kırabiliriz.

Düşük yineleme düzeyi nedeniyle iOS 10.0, 5 yıllık Intel i5 işlemciyi kullanarak saniyede 6 milyona kadar parola denemesi gerçekleştirebilir.

Tur sayısı kullanım yerine bağlı olarak değişse de, biraz sayısal olarak konuşursak, Microsoft Office yazılımının en son sürümlerinde, belgeler 100.000 kez karıştırılır - merkezi işlemcilerle yapılan bir denemede artık saniyede 10 şifre denenebilir - ve iOS 10.2 ve üzerinde kullanılan yedeklemelerde karıştırma işlemi 1.000.000 kez yapılır . Bu değişikliklerden sonra, CPU'yu kullanarak kaba kuvvet saldırısı nedeniyle her dakika bir avuç şifre deneyebilirsiniz.

Temel olarak, karma tekrarlarının sayısı arttıkça, şifre güçlenir, kaba kuvvet saldırıları yavaşlar, ancak bunun hız üzerinde olumsuz bir etkisi olabilir.

Aşağıda VeraCrypt Benchmark ile yapılan bir hız testi bulunmaktadır. Bir örnek, algoritmaların şifrenizi doğrulamasının ne kadar sürdüğü ve ortalama 500.000 tur tekrarlandığıdır.

p76ypm6.png


VeraCrypt Benchmark ile elde edilen karma algoritma oranı değerleri.

Tuzlama (salting) nedir?

Peki ya birisi akıllıca en sık kullanılan şifrelerle eşleşen çok sayıda dizenin karmasını hesaplamak ve işi kolay yoldan çözmek isterse? Hash değerlerini bu şekilde kırmak kolay olmaz mıydı? Bu nedenle, benzersiz ve rasgele veriler, karma hale getirilmeden önce parolalara eklenir. Bu işleme tuzlama denir. Bu işlemlerin sonunda elde edilen şifre salt şifresi olarak da bilinir. Tuzlanmış ve karma hale getirilmiş şifreyi doğrulamak istiyorsak, yine de salt değerine ve şifrenin kendisine ihtiyacımız var.

c1rh16a.png


Blockchain ve Hashing

Blockchain'i blockchain yapan en önemli faktörlerden biri hashing işlemidir. Zincirdeki her bloktaki girişler aslında her şeyi temsil ediyor. Şimdiye kadar, her işlem eklenen yeni verilerle birleştirildi. Temel olarak, şu şekilde ifade edilebilir, çıktılar bir blok zincirinde gerçekleşen önceki tüm işlemlere dayanır ve bu nedenle onlarla birlikte oluşturulur.

Dediğimiz gibi ithalatın bir kısmında yaşanan en küçük değişiklik, ihracatta büyük bir değişikliğe neden olmaktadır. Bu, blockchain teknolojisinin inkar edilemez kesinliğidir. Başlangıçta bir blok zincirinde bulunan bir kaydı değiştirirseniz,
tüm karma değerleri değiştirilir ve yanlış ve modası geçmiş bir duruma getirilir. Blockchain'in şeffaf doğası göz önüne alındığında, bu imkansız hale gelir.

Genesis bloğu olarak bilinen ve blok zincirinin ilk bloğu olarak adlandırılan bu blok, birleştirildiğinde ve onaylandığında benzersiz bir hash değeri oluşturur. Bu karma değer ve işlenen tüm yeni işlemler daha sonra zincirin bir sonraki satırında kullanılan yepyeni bir karma değer için girdi olarak işlenir. Bu, her bloğun karma değer yolu ile birlikte önceki bloğa dönebileceği talimatına karşılık gelir. Bu şekilde, ağdaki düğümler karma değerlerinin ne olması gerektiği konusunda fikir birliğine sahip oldukları sürece, işlemler güvenli bir şekilde eklenebilir.



Karma değer, verilerin hedeflenen alıcı tarafından görülmeden önce değiştirilmemesini sağlar. Bu doğrultuda hassas bilgiler içeren bir dosya indirirseniz, bunu karma algoritma ile çalıştırabilir, bu verilerin karma değerlerini hesaplayabilir ve verileri gönderen kişinin size gösterdiği değerlerle karşılaştırabilirsiniz. Karma değerleri eşleşiyorsa, dosya alınmadan önce değiştirilmediğinden emin olabilirsiniz.



Sonuç ve özet

Ne yazık ki, günümüz dünyası dijitalleşmeye devam ettikçe, bununla birlikte bazı güvenlik riskleri de var. İnternet ilk gelişmeye başladığında, şifreler düz metin olarak tutuldu, ancak bugün bunu yapmak iyi değil. Her gün veri ihlalleri hakkında yüzlerce haber duyuyoruz. Karma algoritmalar, bu tür ihlaller nedeniyle şifrelerin doğrudan ele geçirilmesini önler ve süreci yavaşlatan ana faktörlerden biridir.


Saygı ve sevgilerimle,
Zoptik 🇹🇷


flyhegn.png
Elinize sağlık
 

TurkGokay

Uzman üye
4 Ara 2022
1,020
544
Kemalizm
Hash nedir? Nasıl çalışır?

heny41k.png


Bu yazıda hashing'in ne olduğunu, nasıl çalıştığını ve günümüzdeki önemini anlatmaya çalışacağım.

Kesinlikle birçok yerde şu cümleye rastlamışsınızdır: "
Parolanız veri tabanında güvenli bir algoritma kullanılarak saklanmaktadır." Bu ne anlama geliyor? Nedir bu algoritmalar? Bu, bu makalenin ana odağı olacaktır. Farklı şifreleme algoritmalarına, tek yönlü algoritmalara ve kısacası karma kavramına gireceğiz.

Dijital dünyada şifrelerimiz üzerinden birçok hizmete erişebiliyoruz. Hesaplarımızı yetkisiz erişime karşı koruyan basit ama güvenli, onlarca yıllık bir çözümdür. E-posta adresleriniz, sosyal medya hesaplarınız veya çeşitli işlemler için kullandığınız müşteriler... Tüm bu şifrelerde farklı şifreler kullanıyoruz.

Bir sisteme girebilmemiz için şifremizi yazıp giriş düğmesine bastığımızda,
arka planda daha önce belirlediğimiz şifre ile bir karşılaştırma gerçekleşir.
Doğruysa, başarıyla giriş yapacağız, yanlışsa giriş yapmamıza izin verilmiyor. Bu en basit yoldur, ancak saldırganın bakış açısından bakalım.
Eğer bir sisteme şifre ile girilirse mutlaka önceden belirlenmiş bir şifre vardır ve bir yerde saklanır. Bu şekilde, düz metin olarak saklanan parola veya diğer veriler ele geçirilebilir.


"Hashing" iş başında

Bu nedenle, karma algoritmalar günümüzde kullanılmaktadır. Çeşitli veriler veya parolalar düz metin olarak asla saklanmaz. Parolanın depolanması, bir siteye kaydolurken belirlediğiniz, veri tabanında olduğu gibi olmaz. Tek yönlü bir algoritma kullanılarak şifrelenir ve gerçek şifreyle ilgisi olmayan harf ve rakamlardan oluşur. Sisteme dışarıdan erişimi olan bir saldırgan şifrelenmiş verileri ele geçirse bile, genellikle tek yönlü bir şifreleme şekli olduğu ve tersine çevrilemeyeceği için çalışmaz.

Peki doğru şifreyi girdiğimizde hizmetlere nasıl güvenli bir şekilde erişebiliriz? Aslında, bu soru basittir ve cevabı kendisiyle birlikte taşır. Daha önce belirlediğimiz şifre orijinal bir algoritma ile şifrelenir ve veritabanında saklanır. Hizmetlere erişmek için giriş kısmına şifremizi girdiğimizde, bu şifre aynı algoritma ile tekrar şifrelenir, tuzlanır (salting) ve daha önce kaydedilen şifrenin şifrelenmiş sürümüyle eşleştirilir. Birbirleriyle tanışırlarsa, hesap başarıyla oturum açmış olur.


Ancak hashing tek başına yeterli mi?

Buna net bir cevap vermek çok ilginç olacaktır, çünkü bu sorunun cevabı uygulanma şekline bağlı olarak değişebilir.
Hash algoritmasında, şifre ve kullanılan yöntem büyük önem taşımaktadır.

Şifrelemede, "Düz metin" (düz metin) bir şifre ve şifre algoritması kullanılarak karıştırılır. Şifrelenmiş veriler, şifrenin yeniden girilmesiyle kurtarılabilir.
Her zaman iki yönlü bir dönüşüm vardır. Karma veriler için durum böyle değildir.

Aşağıdaki resimler size konu hakkında bir fikir verecektir.

hin62ht.png


Şifreleme ve şifre çözme işlemlerinin nasıl çalıştığına dair bir görüntü.


2us4rfk.png


Hash algoritmasının nasıl çalıştığını gösteren bir resim.



Hashing'in en ilginç ve etkili özelliği, söz konusu veri kümesindeki en küçük parça ve en ufak bir veri değişse bile bir farklılık gözlenmesidir.
Örneğin, aşağıda SHA-1 ile şifrelenmiş veriler verilmiştir.

Orijinal metin:
Beşiktaş

SHA-1 değeri: 73c453bdbc7bed6aed9c6373b3a56e99ae5cf6ed


Orijinal metin: Beşiktaş!

SHA-1 değeri: 590287DC37956539720B2AF0A80D62F1F602113e

Gördüğünüz gibi, hashing'den kaynaklanan değerler en küçük değişikliklerde bile tamamen farklıdır. Bu nedenle, karma yalnızca parolaları güvenli bir şekilde depolamak için değil, aynı zamanda belirli verilerin doğruluğunu kontrol etmek için de kullanılır. Başkaları tarafından gönderilen ISO dosyalarının, programların veya kritik dosyaların karma değerlerini kontrol ederek bozulup bozulmadığını veya değiştirilip değiştirilmediğini görebilirsiniz.

Tabii ki, bu hala her algoritmanın gerçekten güvenli bir değer sunmadığı anlamına geliyor. Çünkü, gördüğünüz gibi, en küçük değişikliklerde bile, karma değeri büyük ölçüde değişir, çoğu zaman alakasızdır. Güvenli olmayan algoritmalarda, karma değeri büyük ölçüde değişmez, ancak karma değeri, girilen düz metindeki değişiklik kadar değişir.

Bu ne demek? Oldukça basit.
Hash değeri baştan değişmediği için elde edilen değere göre bir süre sonra düz metin kolayca elde edilebilir. Benzer bir yöntem ne yazık ki Hindistan'da oldukça popüler olan Tally Vault adlı işletme yönetimi yazılımlarından birinde de kullanıldı. Merak ediyorsanız Elcomsoft'un konuyla ilgili makalesini okuyabilirsiniz.


MD5 ve SHA-1 terk edilmeye başlandı

Sadece özel olarak yazılmış bir dizi algoritma değil, aynı zamanda genellikle doğru kabul edilen bazı karma yöntemlerin de güvensiz olduğu ortaya çıktı.

MD5 (Message-Digest algorithm 5) aslında kriptografik hash algoritmalarından biri olmasına rağmen maalesef çok önemli güvenlik açıkları olmuştur ve kaba kuvvet saldırıları ile hacklenmesi kolaydır. Ayrıca, 2012 yılında ortaya çıkan Flame kötü amaçlı yazılımının yayılması, zayıf MD5 algoritmasını kullanan bir Microsoft kod imzalama sertifikası da kullandı . Sonuç olarak, MD5'in güvenilirliği dünya çapında sorgulanmış ve bu nedenlerden dolayı algoritma yavaş yavaş terk edilmiştir.

2017 yılında, ilk SHA-1 in kimliğe bürünmesi Google Güvenlik ekibi tarafından hazırlanan bir blog yazısında duyuruldu. Açıklamada, kriptografi alanında adeta bir "İsviçre çakısı" olan SHA-1 algoritmasının artık başarısız olabileceği ve iki farklı dosyanın aynı SHA-1 değerine sahip olmasının mümkün olduğu belirtildi. Google'ın duyurusu, endüstrinin SHA-1'i kullanmayı tamamen bırakması ve SHA-256 gibi daha güvenli algoritmaları tercih etmesi gerektiğini öne sürdü.


Peki SHA-1 neden belirsiz hale geldi?

SHA-1; şifrelerde kullanılan bir karma algoritma, veri bütünlüğünün doğrulanması, çeşitli protokoller. Google'ın algoritmasına yönelik saldırı deneyinde, aşağıdaki resimden de anlayabileceğiniz gibi, aynı SHA-1 değerine sahip iki farklı dosyanın var olabileceği gösterildi. Kısacası, ne olursa olsun, karma algoritmalar birbiriyle çakışmamalıdır. Verilerde biraz değişiklik olsa bile, hash değeri çok farklı olmalıdır.

t6hrk9v.png


Güvenli olmayan karma algoritmalar kullanılarak gerçekleştirilebilecek bir saldırı örneği.

Ne yazık ki, iyi hazırlanmış bir saldırgan temiz dosyayla aynı SHA-1 değerine sahip kötü amaçlı bir dosya hazırlayabilir ve gelen kötü amaçlı dosya yerine kötü amaçlı amaçlarla kullanabilir. SHA-1 algoritması son derece yüksek işlem gücü kullanılarak tehlikeye atıldı. Yine de, bu artık güvenli olmadığı gerçeğini değiştirmez.

Karma algoritma ne olmalıdır?

Makalemizi şimdiye kadar dikkatlice okuduysanız, bir karma algoritmanın nasıl görünmesi gerektiğini az çok tahmin edebilirsiniz. Daha önce birçok kez belirttiğimiz gibi, hashing yöntemi bilgisayar güvenliğinde hemen hemen her yerde kullanılmaktadır. Bu nedenle, bir karma algoritma oldukça hızlı bir şekilde hesaplanabilmelidir. Hiç kimse bir Word dosyasını doğrulamak için 3 gün beklemek istemez ve böyle bir karma algoritma piyasada kabul edilmez.

Ek olarak, karma algoritma kesinlikle tek yönlü olmalıdır. Orijinal veriler asla karma değerine göre çoğaltılmamalı ve farklı veriler aynı karma değerine sahip olmamalıdır. Karma parolanız varsa ve parolanızı unuttuysanız, geri almak için karma algoritmayı kırma zahmetine girmek yerine kaba kuvvet saldırısını denemelisiniz. Çünkü hangi hashing yöntemi kullanılırsa kullanılsın, tek yönlü bir sokaktır, tersine çevrilemez. Bu kaba ve hatalı yöntemle, şifrenizin nasıl oluşturulduğuna bağlı olarak sonuca ulaşmak yıllar alabilir.


Karma algoritma hızları

Karma algoritmalar kullanarak bir veri kümesinin, metnin veya parolanın güvenliğini sağlayacaksanız, algoritmaların işlem süresini de bilmeniz gerekir. Yazının başında da belirttiğimiz gibi kimlik doğrulama gibi kullanıldığında veritabanındaki hash değeri girilen şifrenin hash değeri ile karşılaştırılır ve eğer doğruysa giriş başarılı olur.

Her karma algoritma aynı değildir, bu nedenle her algoritma hız açısından farklılık gösterebilir. Unutulmaması gereken en önemli şey, karma işlevlerinin verileri yalnızca bir tur için yenilememesidir. Binlerce kez karıştırılır ve sonuç bu şekilde elde edilir. Hash yöntemleriyle bir yönde farklılaştırılan veriler tek bir yineleme ile gizlenirse, modern donanımla kolayca kırabiliriz.

Düşük yineleme düzeyi nedeniyle iOS 10.0, 5 yıllık Intel i5 işlemciyi kullanarak saniyede 6 milyona kadar parola denemesi gerçekleştirebilir.

Tur sayısı kullanım yerine bağlı olarak değişse de, biraz sayısal olarak konuşursak, Microsoft Office yazılımının en son sürümlerinde, belgeler 100.000 kez karıştırılır - merkezi işlemcilerle yapılan bir denemede artık saniyede 10 şifre denenebilir - ve iOS 10.2 ve üzerinde kullanılan yedeklemelerde karıştırma işlemi 1.000.000 kez yapılır . Bu değişikliklerden sonra, CPU'yu kullanarak kaba kuvvet saldırısı nedeniyle her dakika bir avuç şifre deneyebilirsiniz.

Temel olarak, karma tekrarlarının sayısı arttıkça, şifre güçlenir, kaba kuvvet saldırıları yavaşlar, ancak bunun hız üzerinde olumsuz bir etkisi olabilir.

Aşağıda VeraCrypt Benchmark ile yapılan bir hız testi bulunmaktadır. Bir örnek, algoritmaların şifrenizi doğrulamasının ne kadar sürdüğü ve ortalama 500.000 tur tekrarlandığıdır.

p76ypm6.png


VeraCrypt Benchmark ile elde edilen karma algoritma oranı değerleri.

Tuzlama (salting) nedir?

Peki ya birisi akıllıca en sık kullanılan şifrelerle eşleşen çok sayıda dizenin karmasını hesaplamak ve işi kolay yoldan çözmek isterse? Hash değerlerini bu şekilde kırmak kolay olmaz mıydı? Bu nedenle, benzersiz ve rasgele veriler, karma hale getirilmeden önce parolalara eklenir. Bu işleme tuzlama denir. Bu işlemlerin sonunda elde edilen şifre salt şifresi olarak da bilinir. Tuzlanmış ve karma hale getirilmiş şifreyi doğrulamak istiyorsak, yine de salt değerine ve şifrenin kendisine ihtiyacımız var.

c1rh16a.png


Blockchain ve Hashing

Blockchain'i blockchain yapan en önemli faktörlerden biri hashing işlemidir. Zincirdeki her bloktaki girişler aslında her şeyi temsil ediyor. Şimdiye kadar, her işlem eklenen yeni verilerle birleştirildi. Temel olarak, şu şekilde ifade edilebilir, çıktılar bir blok zincirinde gerçekleşen önceki tüm işlemlere dayanır ve bu nedenle onlarla birlikte oluşturulur.

Dediğimiz gibi ithalatın bir kısmında yaşanan en küçük değişiklik, ihracatta büyük bir değişikliğe neden olmaktadır. Bu, blockchain teknolojisinin inkar edilemez kesinliğidir. Başlangıçta bir blok zincirinde bulunan bir kaydı değiştirirseniz,
tüm karma değerleri değiştirilir ve yanlış ve modası geçmiş bir duruma getirilir. Blockchain'in şeffaf doğası göz önüne alındığında, bu imkansız hale gelir.

Genesis bloğu olarak bilinen ve blok zincirinin ilk bloğu olarak adlandırılan bu blok, birleştirildiğinde ve onaylandığında benzersiz bir hash değeri oluşturur. Bu karma değer ve işlenen tüm yeni işlemler daha sonra zincirin bir sonraki satırında kullanılan yepyeni bir karma değer için girdi olarak işlenir. Bu, her bloğun karma değer yolu ile birlikte önceki bloğa dönebileceği talimatına karşılık gelir. Bu şekilde, ağdaki düğümler karma değerlerinin ne olması gerektiği konusunda fikir birliğine sahip oldukları sürece, işlemler güvenli bir şekilde eklenebilir.



Karma değer, verilerin hedeflenen alıcı tarafından görülmeden önce değiştirilmemesini sağlar. Bu doğrultuda hassas bilgiler içeren bir dosya indirirseniz, bunu karma algoritma ile çalıştırabilir, bu verilerin karma değerlerini hesaplayabilir ve verileri gönderen kişinin size gösterdiği değerlerle karşılaştırabilirsiniz. Karma değerleri eşleşiyorsa, dosya alınmadan önce değiştirilmediğinden emin olabilirsiniz.



Sonuç ve özet

Ne yazık ki, günümüz dünyası dijitalleşmeye devam ettikçe, bununla birlikte bazı güvenlik riskleri de var. İnternet ilk gelişmeye başladığında, şifreler düz metin olarak tutuldu, ancak bugün bunu yapmak iyi değil. Her gün veri ihlalleri hakkında yüzlerce haber duyuyoruz. Karma algoritmalar, bu tür ihlaller nedeniyle şifrelerin doğrudan ele geçirilmesini önler ve süreci yavaşlatan ana faktörlerden biridir.


Saygı ve sevgilerimle,
Zoptik 🇹🇷


flyhegn.png
elinize sağlık yararlı bir konu olmuş
 

xmajestar

Katılımcı Üye
13 Ocak 2021
625
105
tzdata-TR
hASH İLE İLİGLİ bir sorum var şimdi manuel veya oto sql açığı sömürdükten sonra genelde md5 olarak tutulur passwordlar şimdi sonuç olarak bunların algoritmasıda olmalıki girilen şifreyi o algoritma ile md5 haline getirip eşleşiyormu diye baksın sonra doğruysa içeriye alsın mantığı bu ise

sorum şu : bu hash algoritması veritabanındamı tutuluyor ?
yani ne bilim orda tutuluyorsa decodeye çevirilebilirde
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.