• 08-03-2009, 21:29:31
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Selamlar,

    Online sistemlerde kullanıcı session bilgileri çeşitli yollarla tutuluyor. Bunlardan birisi cookie ile tutmak. Cookie ile bilgi tutmanın güvenlik problemleri var. Sadece eğer ki kendi bilgisayarıysa, işaretleyerek cookie üstünden daha uzun session için tutulmalı. Diğer şekillerde cookie ile bilgi tutmaya karşıyım.

    PHP'de $_SESSION["memberid"] gibi bir parametrede üye ID'sini tutma meselesinin de problemleri olabilir. Session-hijack denen bir olay var. Nasıl yapıyorlar bilmiyorum ama var böyle birşey.

    Bana en güvenli yol şöyle gözüktü - (ki bunu cep telefonu operatörleri de böyle yapıyormuş)

    $_SESSION["sessionkey"] tutulur. Bu md5 ile hash edilmiş geçici bir şifre olur. onlineusers diye ikinci bir tablo olur, bu tablo'da şunlar tutulur:
    {sessionkey , memberid, timestamp}

    - timestamp belli bir süreden önce olanlar cronjob ile temizlenir.
    - $_SESSION["sessionkey"] değeri kısa süre için geçerli olur (en fazla 1 saat).
    - Bu sessionkey ile memberid'ye ulaşır PHP ve bu değeri bir global-variable içeride gezdirir ve işlemleri bunun üstünden yapar. (php üstünde dönen variable'lar client-side'dan çalınamaz nasıl olsa)
    - Böylece sessionkey'in valid'liği 15-20 dakika süreceğinden ve md5 gibi kırılması (imkansıza yakın) bir değer olduğundan kırsa bile, o session çoktan bitmiş olacağından session-memberid değeri çalınamaz bir noktada olur.

    Araştırdım GSM operatörleri de buna benzer bir yöntem kullanıyor. Cep telefonuzu açtığınızda baz istasyonu ile telefonunuz arasında böyle bir session-key yerleşiyor ve 10-15 dakika geçerli kalıyor. Böylece takibi bizzat operatör yapmadıkça imkansıza yakın hale geliyor.

    Daha öte görüşleri olan varsa beklerim, bunlar benim araştırma ve düşüncelerimin sonuçları
    Tolga
  • 08-03-2009, 22:40:37
    #2
    eyw saolasın.
  • 09-03-2009, 03:17:47
    #3
    Üyeliği durduruldu
    güzel ve faydalı bilgiler teşekkürler +
  • 15-03-2009, 22:57:20
    #4
    Birşeyler ekleyebilecek var mı?

    # Benim aklıma farklı IP'den açınca ilk session'un iptali geldi.
  • 16-03-2009, 04:55:31
    #5
    teşekkürler.
  • 16-03-2009, 10:31:45
    #6
    gentleRain adlı üyeden alıntı: mesajı görüntüle
    Araştırdım GSM operatörleri de buna benzer bir yöntem kullanıyor. Cep telefonuzu açtığınızda baz istasyonu ile telefonunuz arasında böyle bir session-key yerleşiyor ve 10-15 dakika geçerli kalıyor. Böylece takibi bizzat operatör yapmadıkça imkansıza yakın hale geliyor.
    Daha öte görüşleri olan varsa beklerim, bunlar benim araştırma ve düşüncelerimin sonuçları
    Gsm operatörleri baz istasyonlarda bu yöntemi mi kullanıyorlar? Telefon baz istasyonu işlemlerinde belirleyici olan 32 byte ki kodudur. Bir sim kartta 2 kod vardır biri KI (key index) kodu diğer IMSI kodu. IMSI kodu abonelik bilgileri ile ilgili kayıtları tutar. Ama bu IMSI kodunun geçerli olması için authentication KI kodu ile yapılır. Her kartın IMSI ve KI kodunun eşleşmesi gerekmektedir. Ve KI kodu doğrudan telefondan talep edilmez KI algoritmayı yöneten bir anahtardır şebekeden gelen sorguya uygun yanıtı üreten anahtardır.

    Yani GSM operatörlerinde baz istasyonu tarafından çok gsm alıcı taraflı bir güvenlik mevcut. KI ve IMSI kodunu bulabildiğiniz her hattı kopyalayabilirsiniz ve aynı KI ve IMSI kodunu kullanan 2 telefon aynı anda açıldığında sadece en son açılan çalışır.

    Yani senin gsm baz istasyonu mantığından farklı geldi bana...

    Diğer konularda haklısın. Sessionı onaylayan istemci taraflı bir güvenlik sertifikası olmadığı sürece (kullanıcı taraflı bir SSL sertifika gibi GSM deki KI kodu misali) session gerçek kullanıcıya mı ait çalınmış mı anlamak zor.
    Sadece dediğin gibi ip adresi kullanıcı adi ve session ı eşleyip, tutarsızlıkta işlemi engelleyen ve 5-10 dakika içinde yeni sayfa talebi olmazsa sessionı kapatan bir sistem faydalı olabilir.
  • 21-03-2009, 16:49:27
    #7
    Ayni benim mantik =)


    Bende aynen bu sekilde yapiyorum. eger Beni Hatirla seçiliyse cookie ile bir kod birakiyorum md5 ile bir kac defa encode edilmiş şekilde. Bence gayet güvenli