MD5 RFC'de de belirtildiği gibi şifreleme algoritmalarına yardımcı olmak amacıyla kullanılabilecek bir HASHING / FINGERPRINTING algoritmasıdır ve yalnızca 128-bit'lik (16-bayt) bir çıktı üretir. Bu nerede kullanılır? Öncelikle bir verinin (dosyanın) doğru transfer edilip edilmediği veya değiştirilip değiştirilmediğinin kontrol edilmesinde. Örneğin CD ISO dosyalarının çoğuz aman MD5 hash'leri de yanında verilir ve 700MB'lık bir transferin ardından bu değerin kendi hesapladığımızla aynı olmasını umarız Bir diğer kullanımı da public-key şifrelemededir. Public-key şifreleme (asimetrik), simetrik şifrelemeye göre çok çok (ve çok) daha fazla hesap gücü ve zaman gerektirdiğinden Public-key sistemlerde bile aslında Simetrik standart şifreleme kullanılır (Asimetrik public key ile). Daha sonra veri MD5 gibi bir hash'ten geçirilir ve bu kısa hash değeri asıl olarak asimetrik şifreleme ile şifrelenir. Bu sayede performans ile güvenlik arasında bir denge sağlanmış olur
bunlara ek olarak md5 i daha detaylı anlatırsak
bir database management tekniğidir . yani eldeki key kullanılarak şak die bulunur veri'nin konumu. hash fonksiyonu veri'nin bazı matematiksel özellikler kullanılarak - mesela harflerinin ordinal değeri ve kelimedeki yerleri - bir key üretir bu key sayesinde konum belli olur. bu fonksiyon belirli miktarlarda veri için hash table'da verileri ne kadar homojen dağıtabiliyosa o kadar iyidir. diğer önemli nokta collisionlardır. çakışma olduğunda yani aynı key'e sahip iki veri olduunda lineer probing, quadratic probing ya da double hashing olaylarından bir tanesi kullanılarak çakışan verinin yeni lokasyonu bulunur. lineer probing de veri hash tableda hemen bir sonraki lokasyona yerleştirilir, double probingde de lokasyonun nümerik karesi alınarak koyulucak yeni lokasyon bulunur, double hashingde de iki hash functionı içiçe kullanılarak keylerin daha da unique olması sağlanır. eğer belli bölgelerde birikme olmuşsa bunlara da cluster denir, en birinci amaç bunu önlemektir zaten probing olayında. ayrıca hash table'ın büyüklüğünün asal sayı olması tercih edilmelidir, özellikle quadratic probingde, bu sayede homojen bir probing sağlanır.
MD5'in kırılması olayına gelince. Söz konusu olan bir HASH algoritması olduğuna göre 'kırmak' demek aynı HASH değerini üreten 'aynı' ya da 'başka' bir veri dizisi bulmak demektir. Aynı 128-bitlik hash değerini üreten binlerce (gerçekte sonsuz!) veri vardır. Örnekteki 17645312 parolası 98b011d88c9ae33766814dcc76ad7b5c HASH değerine eşitlenmekte. Ancak örneğin (atıyorum) 9831332123 parolası da aynı HASH değerini verebilir, ve daha binlercesi.... MD5 aynı HASH değerini veren iki ya da daha fazla girdinin makul süreler içinde bulunamayacağı noktasından hareket ediyordu. Fakat günümüzde özellikle girdi verisi kısa ise (örneğin parolalar gibi) bu süre son derece kısaldığından MD5'in de güvenilirliği azalmıştır.
9 haneli sadece rakamdan oluşan bir şifrenin kırılması ortalama 5 dakika almaktadır p4 2.4 gibi bir sistemde o yüzden şifreniz uzun ve harf kombinasyonu içersin
5465siU4 gibi
md5 tek yönlü bir algoritmadır yani sizin şifreniz
abc olsun bunun md5 li hali 32 karekterli bi yapı oluşturur 900150983CD24FB0D6963F7D28E17F72
eğer şifreniz ABc olsaydı bu yapı 4C36FA32C9D93A002C3E14CE038AA709 olurdu
md5 in geri dönüşümü yoktur şifrenizi forumda unuttuysanız yönetici bu şifreyi hiç bir şekilde geri dönüştüremez link i kullanarak yeni şifre üretebilirsiniz
peki bu phpbb açıkları kullanılarak hack olayı nasıl oluyor burda kullanılan exploitler sayesinde admin in hashine ulaşılır 32 karekterli bir yapı yukarda gösterdiklerimiz gibi bu yapı çeşitli şifre crackerlar yardımıyla cracklenir dikkat edin geri dönüştürülmez cracklenir yani bu programların mantığı şu 0-9 A-Z arası bütün kombinasyonları denerler mesela şifre 12 olsun bu programların çalışma mantığı şöyledir sıradan 0-9 arası kombinasyonları denerler her rakamın md5 hash ine bakarlar ve eldeki hash le karşılaştırırlar tuttuğu zaman programa terminate emtri verilr böylece şifre bulunmuş demektir
aslında bahsedildiği kadar güvenli değildir güvenliği sağlamak için phpbb forumunuzu güncel tutun yamaları yükleyin böylece saldırgan hashlere ulaşamaz aynı zamanda şifrenizi uzun ve harf kombinasyonu yapın eğer saldırgan güncel olmayan bir foruma açıkları yardımıyla ulaşıp admin in hash ini aldıysa
bunu kırabilir ama şuna bakalım şöyle bir şifrenin 568215687 kırılması için gereken süre 5 dakika iken
4561siU7S Böyle bir şifrenin kırılması için gerekli süre yıllar bile olabilir