Password Salt Nedir ? Neden Saltlama Yapmalıyız ?


Yakın zamanlarda Linkedin,Facebook,Twitter gibi platformlar saldırıya uğradı ve sizin bütün bilgileriniz forum sitelerine düştü yada el altından başka firmalara satıldı.Bu olaylardan sonra parola saltlama daha da çok arttı neden mi ?

Çok basit bir şekilde anlatacağım .

Sizin parolanız 12345 olsun.Sizin parolanız kaydolduğunuz sitenin veri tabanında açık bir şekilde gözükmez , hashlenerek gözükür. Peki nedir bu hash?


Çeşitli hashleme yöntemleri vardır bunlardan en popüleri olan md5'tir.

Siz bir siteye kaydolduğunuzda sizin 12345 olan şifreniz hashlenerek 827ccb0eea8a706c4c34a16891f84e7b şeklinde kayıt edilir. Bu sayede kayıt olduğunuz siteler saldırıya maruz kalırsa bilgileriniz en azından açık olmayacak şekilde saldırganların ellerine düşer.


Peki bu yeterli mi ? Tabi ki de hayır yeterli değildir.

Günümüzde yaygın kullanılan şifrelerin, şifrelenmiş halini (yani 827ccb0eea8a706c4c34a16891f84e7b ) ve şifrelenmemiş halini (yani 12345) elinde bulunduran kişiler bulunmakta. Bu yüzden saltlama icat edildi .

Saltlama da nedir artık konuya gel dediğinizi duyar gibiyim .


Çok basit anlatacağım.

Sizin şifreniz tekrardan 12345 olsun. Siz parolanızı girdiniz ve kayıt ol butonuna bastınız. Bu sitede tekrardan md5 hashleme türü kullanılıyor olsun. Bu sefer parolanız hashlenirken 12345 olarak hashlenmiyor başına veya ortasına yada herhangi bir yerine sadece yazılımcının bildiği bir kelime harf yada başka bir şey ekleniyor .


Kafa gitti daha da açık anlat dediğinizi duyar gibi oldum.


Yani kardeşim senin şifren 12345 değilde timur12345timur olarak hashlenip a48abdbbfdfeb3c7fc7429b871a7f548 bu şekilde veritabanına aktarılıyor.


Daha da açık şu şekilde anlatabilirim


SENİN PAROLAN -> SALTLADIM (kelime : timur) -> HASH(md5)

12345 -> timur12345timur -> a48abdbbfdfeb3c7fc7429b871a7f548


Bu sayede saldırganların ellerinde önceden bilenen şifreler olsa bile asla erişemiyorlar. Bunu PHP'de nasıl yaparız diye düşünüyorsanız örnek olarak bu fonksiyonu kullanabilirsiniz.


function sifrele('kullanicinin_sifresi', 'salt_kelimesi')
{
    $return = $par . $salt;
    $return = crc32($return);
    $return = $salt . $return;
    $return = md5($return);
    $return = $salt . $return;
    $return = md5($return);
    $return = md5(md5(md5(sha1($return))));
    $return = crc32($return) . $salt;
    $return = md5(crc32(sha1($return)));
    return $return;
}


Yorum Yap

Yorum Yok