Sql Server Şifreleri ve Saklanması |
Yanıt Yaz |
Yazar | |
megabros
Security Professional Kayıt Tarihi: 08-06-2009 Konum: Turkey Status: Aktif Değil Points: 752 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı megabros
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Gönderim Zamanı: 24-08-2009 Saat 00:34 |
Sql Server şifreleri saklamak için dökümante edilmemiş bir fonksiyon olan pwdencrypt() kullanır.Bu fonksiyon kullanıcı şifresi için bir hash değeri üretir. Buralar genellikle herkesin bildiği şeyler.Ama daha public edilmeyen şey ise bu fonksiyonun ayrıntılarıdır.İşte bu dökümanda bu fonksiyonun detayları ve zayıflıkları hakkında bilgi vereceğim.. SQL şifre hash ’ı nasıl birşeydir ? Query Analyzer ya da Sql aracı kullanarak şu sorguyu sorun ; select password from master.dbo.sysxlogins where name=’sa’ Buna benzer bir şey alacaksınız ; 0×01008D504D65431D6F8AA7AED333590D7DB1863CBFC98186 BF Benim makinamdaki ‘sa’ şifresinin hash değeri işte yukardaki, Peki pwdencrypt() fonksiyondan hash ’la ilgili ne alacağız ? Sorgu ; select pwdencrypt(’foo’) Sonuç ; 0×0100544115053E881CA272490C324ECE22BF17DAF2 select pwdencrypt(’foo’) Sonuç ; Bu yapının nedeni iki farklı kullanıcının aynı şifreyi kullanmasının anlaşılmamasını sağlamaktır. Büyük Harf Küçük Harf Sorgu ; select pwdencrypt(’AAAAAA’) 0×01008444930543174C59CC918D34B6A12C9CC9EF99 Yukardaki hash’ta 2 şifre hash değeri var. Anlamadıysanız bu değeri bölelim ; 84449305 43174C59CC918D34B6A12C9CC9EF99C4769F819B 43174C59CC918D34B6A12C9CC9EF99C4769F819B Son 40 karakter ondan önceki 40 karakterle aynı.Biri büyük harf için diğeri küçük harf için.Bu Birilerinin işini kolaylaştırıyor.Sadece büyük harfleri denemeleri yeterli oluyor. Salt Temizleme Zamanın hash fonksiyonlarını etkilemesini yazının önceki bölümleribde öğrenmiştik. Ama zamanın böyle bir etki yapmasını sağlayacak bir şey daha olmalı ve hazırda bulunmalı.Hani yukarıdaki hashi bölmüştüm ya işte oradaki 84449305 zamanı etkileyen bilgidir. Bu numara C ‘de time() fonksitonu ile srand() fonksiyonunun birlikte ürettikleri rastgele bir numaradır.Üretilen numaralar integerdir.Sql shorta çevirir. İlk üretilen bu numaraya SN1 diyelim.Sonra tekrar rand() fonksiyonu çağrılır ve bir numara daha üretilir ve shorta çevrilir.Buna da SN2 diyelim.SN1:SN2 salt’ı oluşturmuş olur. Şifreyi Hash ’a Çevirmek Kullanıcı şifresi eğer UNICODE değilse önce bu forma döndürülür.Salt değeri sona eklenir. Daha sonra; advapi32.dll içindeki kripto fonksiyonu ile SHA ya da daha farklı bir hash algoritmasıyla kriptolanır.Şifre büyük harf formuna çevrilir ve salt tekrar eklenir ve başka bir SHA hash üretilir. 43174C59CC918D34B6A12C9CC9EF99C4769F819B Küçük harf SHA Hash Onaylama İşlemi ; İlk önce kullanıcının girdiği şifre alınır ve salt değeri eklenerek SHA hash dönüştürülür ve database ile karşılaştırılr. Saygılar.
|
|
Yanıt Yaz | |
Tweet |
Forum Atla | Forum İzinleri Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Açık Forumda Anketlerde Oy Kullanma |