SHA1 Nedir?
SHA-1 veya tam adıyla Secure Hash Algorithm 1, sizin vereceğiniz bir girdiyi alıp 160 bitlik (20 baytlık) 40 karakter uzunluğunda kod üreten bir algoritmadır.
MD5'in değiştirilmiş bir sürümü gibidir ve tek yönlü çalışır. Yani bir ifadenin SHA1 algoritmasından geçirildikten sonra kod oluşturulabilir ancak bu kod ile orjinal ifade Brute Force gibi yöntemler uygulanmadan bulunamaz.
Büyük küçük harf duyarlıdır: elma ve Elma kelimelerinin çıktısı farklı olacaktır.
Hash nedir?
MD5, SHA-1, SHA-256, SHA-512 gibi algoritmalar ile bir veriyi gizleyebilirsiniz. Bu gizlenen yeni değere Hash denir. Biz bunu message digest (mesaj özeti) olarak da adlandırabiliriz.
Hash şifrelemeye benzer ama aslında yaptığımız iş şifreleme değil, verinin benzersiz bir özetini almaktır. Binlerce satırdan oluşan bir makalenin sonuna bir nokta dahi koysanız SHA 1 algoritması size farklı bir "dijital imza" verecektir. Bu çıktı çok daha küçük bir biçimde kısaltılır (SHA 1 ile 40 karakter).
Hash ve şifreleme arasındaki tek fark, hash işleminin tek yönlü olmasıdır yani veriler hash işlemine tabi tutulduktan sonra, kaba kuvvet saldırısı kullanılmadığı sürece ortaya çıkan hash (kısa özet demek ne kadar doğru olur bilmiyorum) kırılamaz. Aslında buna şifreleme denmiyor.
SHA ile üretilen bu hash değerini mesajın özeti olarak düşünebiliriz.
Kırılabilir veya şifresi çözülebilir mi?
SHA algoritmalarının (MD5 de dahil) tek bir karakter değişse bile farklı hash çıktısı üreteceğini söylemiştik. O zaman neden güvenli değil? Çünkü bu tür hash algoritmaları Brute Force saldırılarına açıktır. Brute Force saldırıları aynı hash ifadesini bilgisayarda sayısız kez çözmeyi deneme işlemine denmektedir.
Örneğin bir web sitesinde sadece rakamlardan oluşan 6 haneli bir parola kullandıysanız ve sha 1 ile saklanıyorsa, şifre çözme girişimleri de sadece rakamlardan oluşacak paroları kontrol edecek şeklinde ayarlanmışsa parolanızın bulunması uzun sürmeyecektir. İşte tam da bu yüzden karmaşık şifreler kullanılması önerilmektedir.
SHA 1 ve SHA algoritmaları nerelerde kullanılır?
Veri bütünlüğü kontrplünü sağlamada kullanımı yaygındır. Orijinal verinin (bu bir text ifade olabileceği gibi bir dosya da olabilir) "parmak izi" SHA1 algoritması tarafından üretilen bir hash değer kullanılarak oluşturulur. Farkı veriler için tamamen benzersiz ancak aynı veri için tamamen aynı olduğunu unutmayın. Veri herhangi bir şekilde değişirse, karma değer de değişecektir ve bu da verinin "kurcalandığını" gösterir.
Dijital imzalarda SHA1 ve benzeri hash üretebilen algoritmalar kulanılmaktadır. Bidiğiniz gibi kullanımı günümüzde gittikçe yaygınlaşmaktadır.
Mesajlaşma uygulamalarında, iletinin karşı tarafa sorunsuz şekilde ulaştığını doğrulamak için SHA 1 veya diğer algoritmalara başvurulur. İletimiz, SHA1 tekniği kullanılarak hash hali çıkartılır. Daha sonra bu hash, gönderenin özel anahtarıyla şifrelenir. Alıcı taraf, mesajı çözebilmek için gönderenin genel anahtarını kullanarak hash değerini orijinal değerle karşılaştırarak sağlaması yapılabilir.
Adli bilişim gibi ortamlarda, delil içeren söz konusu bir dosyanın Hash bilgisi SHA1 veya benzeri algoritmalar kullanılarak üretilebilmektedir. Delilin dosyasının soruşturma devam ederken değiştirilip değiştirilmediğinden emin olmak için bu hash çıktı ile kontrol edilebilir. Orijinal dosyanın ve delil dosyasının message digest'i yani hash'i aynıysa dosyanın değiştirilmediğinin kanıtıdır.
Parolaların saklanmasında özellikle web sitelerinde kullanıcı kendi parolasını oluşturduğunda karşılık gelen hash değeri SHA1 algoritması uygulanarak veritabanında saklanır. Kullanıcı oturum açmak için kendi şifresini girdiğinde SHA1 ile tekrar hash haline getirilir ve aynı veri aynı hash değerini üreteceğinden şifreler eşleşmiş olur.
Yazılım güncellemelerinde bütünlüğü sağlamak için SHA1 kullanıllanılabilir. Güncelleme dosyasının 40 karakterli SHA1 kodu alınıp kamuya açık bir yerde yayınlanabilir. Bu sayede uygulamayı indirenler indirdikleri dosyanın hash kodu ile yayınlananı kıyaslayarak doğru dosyaları indirdiğinden emin olabilirler.
SSL sertifikalarında ve TLS, PGP, SSH, IPsec ve S/MIME gibi protokollerinde veya uygulamalarında SHA 1 ve türevleri yaygın olarak kullanılmaktadır. Not: SHA 1'in SSL sertifikalarında kullanımı 2017 yılında kesilmiştir.
SHA-1 ve Güvenik
SHA-1, 2005'ten beri güvensiz olarak kabul edilmektedir. Mozilla, Google, Microsoft, Apple gibi büyük şirketlerin geliştirdikleri tarayıcılar SHA 1 ile şifrelenen SSL sertifikalarını 2017'de kabul etmeyi bırakmıştır.
2016 yılında TLS/SSL endüstrisi SHA-2'ye geçişi zorunlu kılmıştır.
SHA-1 hash üreteci nasıl kullanılır?
Bir metne SHA 1 alhoritması uygulamak için SHA 1 üretici aracını kullanabilirsiniz. Bu sayfanın üst kısmındaki kutuya şifrelemek istediğiniz yazıyı girerek hash sonucunu anında görebilirsiniz.
Sha 1 aracında sonucu büyük/küçük harfe çevirme ve ekran görüntüsü alacaksanız giriş kutusunu blurlaştırma seçeneği mevcuttur.
Çıktılar aşağıdaki gibi olacaktır:
Giriş : hello world
Çıkış : 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed