folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder SQL Server Passları Nasıl Saklar



SQL Server Passları Nasıl Saklar

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    r3dros
    r3dros's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek
    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.


    0x01008D504D65431D6F8AA7AED333590D7DB1863CBFC98186 BF
    AE06EB6B327EFA5449E6F649BA954AFF4057056D9B


    Benim makinamdaki ‘sa’ şifresinin hash değeri işte yukardaki


    Peki pwdencrypt() fonksiyondan hash’la ilgili ne alacağız?

    Zaman

    Sorgu;

    select pwdencrypt(’foo’)

    Sonuç;

    0x0100544115053E881CA272490C324ECE22BF17DAF2
    AB96B1DC9A7EAB644BD218969D09FFB97F5035CF7142521576



    Birkaç saniye sonra aynı sorguyu soralım yine;

    select pwdencrypt(’foo’)

    Sonuç;

    0x0100D741861463DFFF7B5282BF4E5925057249C61A696A
    CB92F532819DC22ED6BE374591FAAF6C38A2EADAA57FDF



    ‘foo’ girdisi aynı olmasını rağmen iki hash değeri farklı.Buradan anlayacağımız zaman şifre hashlarının yaratılmasında önemli bir yer tutuyor.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’)

    Sonuç;

    0x01008444930543174C59CC918D34B6A12C9CC9EF99
    C4769F819B43174C59CC918D34B6A12C9CC9EF99C4769F819B

    Yukardaki hash’ta 2 şifre hash değeri var.Anlamadıysanız bu değeri bölelim.

    0x0100

    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.


    0x0100 Sabit Başlık

    84449305 rand() ‘ın iki defa çağrılmasından oluşan salt değeri

    43174C59CC918D34B6A12C9CC9EF99C4769F819B Küçük harf SHA Hash

    43174C59CC918D34B6A12C9CC9EF99C4769F819B Büyü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.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    renegadealien
    renegadealien's avatar
    Üstün Hizmet Madalyası Savaş Madalyası Başarı Madalyası Üstün Hizmet Madalyası Developer Madalyası
    Kayıt Tarihi: 23/Mart/2003
    Erkek
    Mükemmel döküman hocam...

    10.05.2013 tarihli google arama sonucu : Aradığınız - "herşeyin hayırlısı rampanın bayırlısı" - ile ilgili hiçbir arama sonucu mevcut değil. Kendi özlü sözümdür, kaynak belirterek kullanınız.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FOXXLY
    FOXXLY's avatar
    Kayıt Tarihi: 19/Haziran/2006
    Erkek

    Mssql çok karışık ya. yok Query Analyzer yok bilemem ne ,

    yedek almak ayrı bi dert zaten. bu kadar karışık bişeyin bu kadar performans sağlaması ilginç :)

    ne demişler , ne kadar sade okadar hızlı :) 

    (şimdi salladım yok öle bi laf :) 


    kelimeler albayım bazı anlamlara gelmiyor.
Toplam Hit: 2014 Toplam Mesaj: 3