Geri Git   SanalTahrip Bilişim Forumları > Hacking, Cracking ve Güvenlik > Web Güvenlik ve Açıkları

Web Güvenlik ve Açıkları Web, DNS, Domain Hacking İle İlgili Bilgi, Belge, Makalelerin,Programların Paylaşılabileceği Forum Alanımızdır.

Tags: , , , ,

Yeni Konu Gönder Yanıtla
 
LinkBack Konu Araçları
Eski 02-19-2009   #1 (permalink)
Üye
Administrator
Avatar
 
JaRu|e kullanıcısının avatarı
Bilgiler
JaRu|e JaRu|e Çevrimdışı
Giriş: Mar 2006
Yaş: 24
Mesaj: 14,331
Konuları: 11325
Karizma
İtibar Gücü: 10
Karizma Puanı : 31
Karizma Seviyesi:
JaRu|e is on a distinguished road
JaRu|e kullanıcısına MSN aracılığı ile mesaj yolla Send a message via Skype™ to JaRu|e
Level
 Seviye: 72  
Ruh Hali:

Level: 72 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 1507 / 2153
Güç: 4777 / 31139
Tecrübe: 79%

Teşekkür Tablosu

Ettiği Teşekkür: 5
376 Mesajına 1,114 Kere Teşekkür Edlidi
Varsayılan MD5 Algoritması Nedir ? nasıl yapılır? -

Bu Alana Reklam Vermek İstiyorsanız Buraya Tıklayınız
hep diyoruz md5 ..md5 nedir diyee...bilen arkadaşlarımıza eek bilgi olabilir...buyrun md5 in başından tutun sonuna kadar a dan z ye bütün açıklaması :



MD5 Algoritması Nedir?



MD5 (Message-Digest algorithm 5) aslında bir şifreleme yöntemi değil, bir hash function‘dır. Yani herhangi bir uzunlukta verilen mesajı (veya dosyayı) alıp fazla uzun olmayan bir harf ve sayı dizisine çevirir. Siz 700mb büyüklüğünde bir Linux dağıtımının .iso dosyasını indirseniz de, “merhaba, nasılsın?” mesajı yazsanız da, hepsinin MD5 sonucu 128bit uzunluğundadır. 128bit ise 128/4 = 32 hexadecimal sayıyla ifade edilebilir.



Hemen bir örnek verelim:



ulusal dağıtımımız olan Pardus’un .iso dosyasını bu klasörde görüyorsunuz. Bakalım bu klasördeki pardus-1.0.iso.md5sum dosyasında ne yazıyor:

c84f093c22580a70813dff7d0e9c85bf pardus-1.0.iso

Buradaki 32 tane hexadecimal sayı (0-f arası karakterler) pardus-1.0.iso dosyasının MD5 sonucunu gösteriyor. Eğer siz bu 700mb’lık dosyayı bilgisayarınıza indirirken 1 bit’lik bile hata yapmış olsaydınız MD5 sonucu çok farklı bir sayı çıkardı! Wikipedia örneğinde cümlede tek harf değişince MD5 sonucu da alakasız biçimde değişiyor:

= 9e107d9d372bb6826bd81d3542a419d6

MD5(”The quick brown fox jumps over the lazy cog“)

= 1055d3e698d289f2af8663725127bd4b



Tek Yönlü Şifreleme Algoritmaları



Bir algoritmanın tek yönlü şifreleme algoritması olarak kabul edilebilmesi için tabii ki şifrelenmemiş veriye kolayca ulaşmamamız gerekli. Çift yönlü şifreleme algoritmaları encrypt ve decrypt fonksiyonları yardımıyla bir mesajı şifreler ve şifresini çözerler. Ancak, örnek olarak MD5 için bir decryption function yazmak mümkün değildir.



128 bit’lik c84f093c22580a70813dff7d0e9c85bf MD5 hash’ini kullanarak pardus-1.0.iso dosyasını oluşturmamız mümkün değildir. Ancak MD5 kullanılarak kaydedilmiş şifreleri bulmak için uygulanabilecek bazı yöntemler mevcut.



MD5′e Brute Force Saldırılar



Brute Force saldırılar kabaca, tüm olasılıkları deneyerek şifreyi çözmek olarak anlatılabilir. Örnek olarak elinizde c84f093c22580a70813dff7d0e9c85bf MD5 sonucu var, ve siz bunun 6 basamaklı bir sayının MD5 sonucu olduğunu tahmin ediyorsunuz. Yapılacak işlem basit: 6 basamaklı tüm sayıların MD5 sonucuyla elimizdeki sonucu karşılaştırmak! Basit bir kodla bu işlem halledilebilir

for( int i=100000; i!=1000000; i++ )

if( MD5(i) == “c84f093c22580a70813dff7d0e9c85bf” )

print( “Şifre bulundu: ” + i);

Yukarıdaki döngü milisaniyeler içinde tamamlanıp, eğer varsa, sonucu listeleyecektir. Ancak tabii ki şifre 6 basamaklı bir sayı olacak varsayımını her zaman yapmamız mümkün değildir. Şifrelerde büyük harfler [A-Z], küçük harfler [a-z], rakamlar [0-9], özel karakterler [!@#ş%^&*()-_+=], veya dile özel karakterler [ıçşüğâî] bulunabilir. Uzunlukları ve karakter tipleri belli olmayan bir şifre için brute force saldırı uygulamak tahmin ettiğinizden de uzun sürebilir (milyarlarca yıl mesela). Bu yüzden bazı karakter setleri için MD5 şifreleri tabloları hazırlanır.



MD5 Tabloları ve RainbowCrack Projesi



Biraz önce dediğimiz gibi; MD5 şifrelerini kolayca eşleştirmek için tanımlayacağımız karakter setindeki belli uzunluklarda tüm olasılıkların MD5 sonucunu bir tabloya atmak, bu eşleştirmeyi birkaç saniye içinde tamamlamak anlamına geliyor. Yalnız bu tabloları oluşturmak için güçlü bir bilgisayara (veya paralel bilgisayarlara), geniş bir disk alanına ve gerekiyorsa uzun zamana ihtiyacınız olacaktır. Bir kez tabloyu oluşturduğunuzda vereceğiniz herhangi bir MD5 sonucunu eşleştirmek gayet hızlı olacaktır. RainbowCrack projesinden birkaç örnekle konuyu açıklayalım:

Örnek #1

karakter seti [ABCDEFGHIJKLMNOPQRSTUVWXYZ]

şifre uzunluğu 1-14

olasılık 8353082582

tablo boyutu 610 MB



Örnek #2

karakter seti [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]

şifre uzunluğu 1-14

olasılık 80603140212

tablo boyutu 3 GB



Örnek #3

karakter seti [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#ş%^&*()-_+= ]

şifre uzunluğu 1-14

olasılık 915358891407 (2^39.7)

tablo boyutu 24 GB



Bu tablolar içinden bir windows şifresi saniyeler içinde bulunabiliyor. Windows şifrelemesi için büyük harflerden oluşan karakter setleri küçük harfleri de kırabildiği için ayrıca küçük harfler eklenmemiş.



Örnek #4

karakter seti [abcdefghijklmnopqrstuvwxyz0123456789]

şifre uzunluğu 1-8

olasılık 2901713047668

tablo boyutu 36 GB



Yukarıdaki örnekte ise tablo MD5 için hazırlanmış ve karakter seti küçük harflerden ve rakamlardan oluşmaktadır. Verilen MD5 sonucu birkaç dakika içinde eşleştirilip %99.9 ihtimalle bulunabiliyor.

Bu MD5 tablosunda karakter setine büyük harfler ve özel karakterler eklendiğinde tablo boyutu terabaytlar düzeyine çıkacak; 9 ve 10 karakter uzunluğundaki şifreleri de kapsamasını istersek hem tablonun oluşturulması aylar belki yıllar sürecek, hem de boyutu düşünemeyeceğimiz kadar büyük olacaktır.



İnternette MD5 şifrelerinin ne olduğunu sorabileceğiniz birkaç veritabanı mevcut. Ne kadar yasal bir uygulamadır tartışılır tabii ki ama vermek için bir sakınca görmüyorum:



• MD5 Reverse Lookup

• MD5();



Sayın xxxxx da güzel ve kapsamlı bir liste hazırlamış, iyisi mi siz bu listeden yararlanın.

İnternet Uygulamalarında MD5 Kullanarak Daha Güvenli Şifre Saklama

Sıklıkla takip ettiğimiz fazlamesai.net sitesinde temmuz ayı sonunda bir açık bulunmuş ve tüm veritabanına erişilmişti. Veritabanında şifreler tabii ki açıkça yazmıyor, veya geri dönüşümü olan bir şifre algoritmasından geçirilmiyordu. Kullanılan algoritma MD5 olmasına rağmen tabii ki kimsenin içi rahat değildi; çünkü artık MD5 şifreleri internetteki MD5 lookup table‘lar sayesinde kolayca eşleştirilebiliyordu. Bir saldırının anatomisi: Fazlamesai yazısını ve yorumlarını okuyacak olursanız güvenlikle ilgili faydalı bilgiler edinebilirsiniz.

MD5 şifrelerini sağlamlaştırmak için insanların akıllarına ilk gelen yöntem MD5 sonuçlarını tekrar tekrar MD5′ten geçirmek olmuş. Yani veritabanına kaydederken md5(şifre) yerine md5(md5(md5(şifre))) olarak kaydetmeye başlamışlar. Ancak dikkat edin, bu yöntemle şifrenizin bulunma zamanını ve RainbowCrack tablosunun uzunluğunu exponential değil linear büyütmüş olursunuz!

Şifreleri daha güvenli saklamak için MD5′ten geçirmeden önce aldığınız karakter dizisine bazı işlemler uygulayın.



Mesela:



• Şifreyi reverse edin, normaliyle birleştirin.

• Şifrenin ilk veya son birkaç karakterini başa veya sona ekleyin.

• Şifrenin başına ve sonuna farklı karakter setlerinden belirleyeceğiniz karakterleri ekleyerek şifreyi uzatın.



Uygulama



Gelin, isterseniz bir uygulama yapalım. Diyelim ki elimizdeki şifre 1234 (sanırım insanların %10′u filan bu şifreyi kullanır). İsterseniz bu şifreyi MD5 sonucundan nasıl rahat bulabildiğimize bakalım:

md5(1234) = 81dc9bdb52d04dc20036dbd8313ed055

Şifremiz 4 basamaklı bir sayı, demek ki 1′den 4 basamağa kadar olan sayıların MD5 hash’lerini bulup karşılaştırsak şifreyi bulabilecekmişiz. Olasılık sayısı (9^1)+(9^2)+(9^3)+(9^4) = 7380. İşlemcinin yorulduğuna bile değmez… Zaten bu şifrenin nasıl kolayca eşleştiğini buradan ve buradan kontrol edebilirsiniz.



Şimdi ise şifremizi MD5 fonksiyonuna sokmadan önce birkaç işlem uygulayalım:



• Öncelikle şifreyi ters çevirin: 4321

• Başına birkaç sayı ve karakter ekleyin (mesela 0a4b): 0a4b4321

• Son iki karakterini alıp başa ekleyin: 210a4b4321

• Başına ve sonuna büyük-küçük harfler ve özel karakterler ekleyin

(mesela başına 2%t}W, sonuna da a(H_5ş gibi…) : 2%t}W210a4b4321a(H_5ş

• Şimdi ise bu karakter dizisini MD5 fonksiyonundan geçirin:

md5(2%t}W210a4b4321a(H_5ş) = f56ae31a4ebd33c0fee2054f9567d201

Bu hash değerini internetteki veritabanlarının bulmasının imkanı yok! Hem 20 karakterli, hem de çoğu karakter setinden harfler içeriyor. Hoş, biri bulsa bile 2%t}W210a4b4321a(H_5ş diye bir şifre hiçbir işine yaramayacaktır. Burada önemli olan,

• Aldığınız şifreyi her zaman aynı basamaklardan geçirerek kontrol etmek,

• Bu basamakları gizli tutmak.



Böylece kullanıcılarınızın şifrelerini daha güvenli saklayabilirsiniz.



saygılar....kolay gelsin
JaRu|e Çevrimdışı  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Share on Facebook
Alıntı Yaparak Cevapla
Konuyu Beğendin mi ? O Halde Konuyu Arkadaşınız ile Paylaşın =)
Okumuş Olduğunuz Sayfayı E-Mail ile Arkadaşınız ile Paylaşın !
Yanıtla

Bookmarks


Şu an bu konuyu görüntüleyen kullanıcı sayısı: 1 (0 üye ve 1 misafir)
 
Konu Araçları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık



Saat 02:05 AM.