MD5 ve güvenlik sorunsalı ?

phpBB güvenliği.

MD5 ve güvenlik sorunsalı ?

İleti

butterflyT
21.03.2007, 01:38

MD5'in güvenirliği konusuyla ilgileniyordum. angelside yazısını
ş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
şeklinde bitirmiş. Öyle demiş demesine de nette gezinirken bir siteye denk geldim. Site çevrimiçi MD5 crack'a sahip. Girdiğiniz bir hash değerini kırmaya çalışıyor. Basit birşey yazarsanız sonucu hemen veriyor zor ise bekletiyor belki bir iki gün sonra şifrenin kırılmış halini listesinde görebilirsiniz.

Siteyi görünce direkt moralim bozuldu. Forumda MD5'i kuvvetlendiren bir MOD'dan bahsediliyordu. Bu MOD'un pek adı geçmiyor ama belki adı Secure Login olabilir. Ancak bu MOD'un veritabanına bir etkisi yok. Veritabanında şifreler yine MD5 formatında saklanıyor. Bu MOD giriş sayfasında siz şifrenizi sunucuya yollarken "packet sniffing" gibi programlar aracılığıyla şifrenizi sakayan veri paketi internet ortamında çalınırsa diye güvenlik almaya çalışıyor. Benim kaynak kodlarından anladığım bu. Ham şifreyi HEX_MD5 (MD5'i kafasına göre biraz daha karıştırıyor) formatina çevirip sunucuya öyle yolluyor. Javascript dosyasının içinde ne yazıyor bilmiyorum ama öyle tahmin ediyorum. Buna benzer bir mantıkta yazılan bir MOD daha var.
http://www.phpbb.com/community/viewtopi ... 6&t=219253

Zaten phpBB 2.0.22 sessions.php'yi incelersek saldırgan bizim cookie dosyamızı yürütse bile cookie içindeki hash değeri (gerçek hash değil) ve her oturumdaki sid değeri sürekli güncelleniyor. Yani o cookie ile oturum açamaz.

Hadi bu iki kısım bir yere kadar tamam da veritabanı ne olacak? Veritabanımızı %100 güvence altına alabilsek o zaman şifreleri MD5 formatında bile saklamamıza gerek kalmazdı. Ham formatında saklamamız kafi olurdu. Bunun için ben bir MOD daha buldum, adı LoginEncryption Hack. MOD hem yukarda verdiğim Secure Login'in işini yapıyor hem de veritabanındaki tüm şifreleri başka bir formatta saklıyor. Mesela bu satırı [syntax="php"]md5($password)[/syntax] bununla değiştiriyor [syntax="php"]md5_salt(md5($password), $key_pass)[/syntax]

Yani MD5 formatını biraz daha karmaşık hale getiriyor. İçinde iki php dosyası var. Biri size "keys.php" adında bir dosya üretiyor. Herkese ürettiği keys.php'nin içeriği farklı oluyor. Böylece her kullanıcının şifreleme yapısı farklı oluyor. İkinci dosyada üretilen keys.php'ye göre veritabanınızdaki tüm şifreleri değiştirip güncelliyor. Bundan sonra artık ister kayıt olurken ister siteye giriş yaparken MD5 ve keys.php'nin karışımı bir şifreleme yapısı kullanıyorsunuz. Veritabanınızda da şifreler bu şekilde saklanıyor.

Sonuç çok daha güvenli elbette. Local sunucu da test ettim MOD tıkır tıkır çalışıyor. Şifrelerin gerçekten de hash değerleri değişmiş durumda.

Ancak sunucudaki siteye kurulur mu diye kafam karıştı. Kurulmasına kurulur da şöyle bir sakıncası var ilerde forum yazılımı değiştiği zaman yeni veritabanına nasıl geçececeğiz? keys.php'ye sonuna kadar bağımlıyız. İlerde phpBB3 geçebiliriz o zaman kullanıcıların şifrelerini yedeklesek bile bir anlamı yok çünkü elimizde acayip bir format var. MOD'u bir şekilde phpBB3'de kurmak lazım. Kuramazsak tabiri caizse şapa otururz çünkü tek yönlü bir algoritma geriye dönemiyoruz. Yani tekradan şifrelerin MD5 formatını bulamıyoruz. Aslında bulunur da oturup MOD'a uygun bir MOD daha yazmak lazım.

Onun yerine ben diyorum ki local sunucuda phpBB3 kurup bu MOD'u (LoginEncryption Hack) phpBB3'e adapte etmeye çalışalım. Şuan Beta 5 sürümü var ama bundan sonra dosya yapıları tahminimce aman aman farketmez. Ekip daha çok phpBB2'den phpBB3'e dönüştürücüye ve güvenlik açıklarına yoğunlaşmış durumda. MOD'u şimdiden phpBB3'e uyarlarsak artık bir ay sonra mı bir yıl sonra mı ne zaman phpBB3'e geçmek istersek eyvah şimdi ne yapacağız diye efkarlanmayız. Ne dersiniz ?

Denemeye değer mi sizce? Bence değer MD5'in yapısını kuvvetlendiren bulabildiğim en kallavi MOD bu. Ama geri dönüş olmadığı için sunucudaki sitede uygulamak biraz sakıncalı (phpBB3 geçiş açısından).

MOD'u kurarken sessions.php'de yapmanız gereken değişiklikleri atlayabilirsiniz. phpBB 2.0.22'de artık sessions.php içinde user_password geçmiyor.

angelside'n yazısı
http://www.canver.net/md5-nedir-md5-ile ... kba35.html

Bu da çok detaylı güzel bir yazı.
http://www.acikbilgi.com/2006/08/26/guv ... kullanimi/

Ya da ikinci yazının sonunda verdiği örneklerin paralelinde kendimiz geri dönüşümlü bir mod yazalım.
Kullanıcı avatarı
butterflyT
Kıdemli Üye
Kıdemli Üye
 
İleti: 144
Kayıt: 14.12.2005, 18:48

Cvp: MD5 ve güvenlik sorunsalı ?

İleti Motorist 21.03.2007, 11:19

nefrit yazdı:Bu şifre güvenliği sistemini kurmanızı tavsiye ederim. Çünki bu şifre güvenliği sistemi phpBB forum sisteminin Şifreleme sistemi olan MD5 i daha da karışık hale getiriyor.

örneğin sizin şifreniz ELMA ise
bunun varsayalım ki 32 hanelik MD5 şekli şöle oluyor :
adr47uhn6752gsr93jat45uanmt02rty

Ve bir takım MD5 dönüştürüciler ile şifrenizin MD5 ini ele geçiren birisi bunu gerçek şifreniz olan ELMA yı bulacaktır. ANcak bu modu kurduktan sonra bulamayacaktır onun yerine farklı bişey çıkacaktır örneğin YTDUKDSL gibi saçma bişey.

Çünki bu SECURE LOGİN sizin şifrenizi MD5 sistemine yolarken içerisine farklı karakterler ekler.


:file: http://motorist01.googlepages.com/secure_login.rar
xyz
Kullanıcı avatarı
Motorist
Üye
Üye
 
İleti: 55
Kayıt: 19.03.2007, 11:21
Konum: İstanbul


Güvenlik



Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 0 misafir