Bütün veriler veritabanlarında saklanır. Geri dönüşümü olmasaydı, o veriler nasıl okunacaktı? Veri tabanı dediğimiz de bir dosya. Rar dosyası gibi düşünün. Bir dosya sıkıştırılıyorsa, tekrar çıkrılabiliyorda. Ters işlem yapılamaz olsaydı, bir anlamı da kalmazdı.
Ve, o bilgilere kimse erişemez olsaydı, sızdırılamaz da olurdu. Oysa böyle şeylere son zamanlarda sık rastlıyoruz.
Bir örnek:
Bilgileri çalınan Yahoo kullanıcıları ne yapmalı? (500 milyon Yahoo hesabı çalındı)
Mantığınız çok yanlış. O sitelerde böyle algoritmanın kullanıldığını nereden biliyorsunuz?
Kriptoloji bilimine bir göz atmanızı tavsiye ederim. Bilmiyorsunuz, sormanız ve sorgulamanız doğal ve olması gereken bir şey ancak yanlışı diretmek, diyecek söz yok. Bakın basitçe tane tane elimden geldiğince anlatmaya çalışacağım.
Kriptografi önemli verilerin güvenli bir şekilde saklanmasında büyük ölçüde etkilidir. Güçlü ve güçsüz kriptografi algoritmaları var.
Kriptografiler üçe ayrılırlar: Simetrikler ve Asimetrikler ve Hash. Aklınıza gelen anlamda değil, mesela simetrikler de 4 karakter yine şifrelendiğin de 4 karakter olur anlamında değil. Simetrikler geri döndürülebilir algoritmalardır. Mesela;
AES bir simetrik kriptografi algoritmasıdır. Identity Vector(IV) ve Key belirtirsiniz. Bunlara göre algoritma şifreler ve aynı veriyi şifrelenmiş veriden geri döndürmek için aynı IV ve KEY'i kullanmanız gerekir. Farklı IV ve KEY'ler aynı veride farklı sonuçlar verir. Tamamen sallamasyon örnek veriyorum mesela sizin şifreniz "crazyboy8090" olsun bunu kendi belirlediğim IV ve KEY ile şifrelediğimde elde ettiğim sonuç bu olsun "26g23u5423m". Bunu yine aynı IV ve KEY'i kullanarak geri döndürmem mümkün.
Asimetrik algoritmalar ise geri döndürülebilir ancak şifreleme için herkesin görebilidiği bir KEY, çözmek için ise özel bir KEY kullanan algoritmalardır.
Hash algoritmalar ise geri döndürülemeyen algoritmalardır.
SHA-256 ile 256-Bit bir şifreleme yaparsam "crazyboy8090" şifreniz de bana mesela "9jlkwkokjwJıjgm30905u7ljsmkfKnmfıjdfn38up034e" olarak veriyor olsun. Bunun geri döndürülmesi aynı yöntemle imkansız. Tersine mühendislik hash algoritmalara uygulanamaz. Teker teker şifre denemeleri yaptığınız BruteForce gibi saldırılarla şansa bala ortaya çıkarırsınız çünkü o şifrenin aynısını şifreleyip denemeniz lazım. Bunun için algoritmayı da doğru bilmeniz lazım. Yani doğrudan erişebileceğiz bir yöntem yok. Peki tersine mühendislik neden yapılamıyor? çünkü algoritma bu şifrenin zaten geri döndürülmesinin istenmediğinden dolayı her bir karakter başka bir şeyi simgeleyecek gibi (A = 2 | 2 = A vb.) bir yöntem kullanmaz. Yani oradaki bir 'A' karakteri 'z' karakterini temsil ettiği gibi '6' karakterini de temsil edebilir ve bunu kimse bilemez. Geri döndüremezsiniz!
Peki o zaman verileri nasıl kıyaslıyoruz? ha bire bunu soruyorsunuz söylememize rağmen.
Bakın sistem şifrenizin hash olarak şifrelenmiş halini veritabanından olduğu gibi alır.
Girmiş olduğunuz şifreyi aynı algoritma ile şifreler. Eğer ki sonuç tutuyor ise şifreyi doğru girmişsiniz demektir aksi halde zaten yanlıştır.
Bunda neyi anlamadığınızı bize söyleyin lütfen, bakın daha ne kadar açık anlatabilirim inanın bilmiyorum.