[Owasp-turkey] Lisanslama Algoritmaları

Cihan ÖZHAN cihan.ozhan at hotmail.com
Thu Sep 25 11:18:42 EDT 2008


Merhabalar.

Sanırım bunların yanında istemci-sunucu arasında hergün belirli
saatlerde ya da her açılışta(sürekli çalışması gerekmiyor ise)
hazırladığımız şifreleme ile istemcinin lisans kodu doğrulaması yanında
istemciye vereceğimiz ayrı bir 'günlük sunucu onay kodu' ile istemcinin
istemimiz dışında çalışmasını engelleyebiliriz diye düşünüyorum.

Saygılar.





Date: Thu, 25 Sep 2008 17:34:15 +0300
From: aspsrc at gmail.com
To: Izzet-Kerem.Kusmezer at bshg.com
CC: owasp-turkey at lists.owasp.org
Subject: Re: [Owasp-turkey] Lisanslama Algoritmaları

Merhaba Kerem,
Lisans dosyalarını des ile koruyorum ve client'ta oluşturulan lisans doyasının , lisans sunucusuna gönderilmesinin belli bir zaman kısıtlaması var.

Yazılımın çalıştığı sunucu ile , lisans sunucusun arasındaki protokol tcp-ip. .Net 2.0 da olan Remoting sınıfını kullanıyorum. SSL iletişimi içinde SecureChannel'e çeviriyordum şimdi :)


Time Based Salt çok güzel bir fikir. Bu durum +1 daha zorluk katar bu olaya. Kesinlikle değerlendiriyorum. Bazı problemler çıkartabilir ama işleme başlamadan Lisans server'ı ile client'ın time'ını seknronize etmek lazım.

Bunu koda nasıl dökerim henüz bir fikrim yok ama üzerinde çalışacağım. Aradaki katmanlar ve iletişimin gizliliği bir şekilde sağlanıyor fakat yazılımı kullanan kişinin yapacağı applicatiıon injectionlara göre önlem almak daha ciddi ve üzerinde durumlası gereken bir konu.


Duruma göre dinamik assembly'ler oluşturmakda mümkün ama şuda var Beridhan'ın dediği gibi ürünün değerine göre bazı durumları kabul etmek gerekiyor.

Teşekkürler. Saygılar.




25 Eylül 2008 Perşembe 16:58 tarihinde Kusmezer, Izzet Kerem (ITS-M) <Izzet-Kerem.Kusmezer at bshg.com> yazdı:








Merhabalar 
Oguzhan,
 
Bende 
aklıma ilk olarak gelenleri seninle paylasmak 
istedim.
 
1) 
Lisans dosyalarini nasil korumayi dusunuyorsun.
2) 
Client .Net Uygulamasi oldugunda iyi bir obfuscator veya turevi bir program 
kullanman yarinina olur, cunku her durumda senin uygulamanı klonlama sansına 
sahip olabilirim.
3) 
Server ile iletisimi sanirim TCP uzerinden yapacaksin, bunun icin .Net'te 
SecureChannel'i direkt olarak kullanabilirsin. (  http://www.codeproject.com/KB/security/SecChannel.aspx ) 
boyle direkt olarak build in bir yapi kullanmis 
olursun.
4) 
Burada kesinlikle time based salt kullanmak mantıklı olacaktır, boylece server'a 
yapılabilecek replay attacklardan korunmus olursun.
5) 
Obfuscator'a alternatif olarak client icin Netz ( ayni sekilde codeproject'te 
bulabilirsin ) kullanabilirsin sifreleme ile, ayrica dagitacagin exe'in 
ziplenmish hallerinin sifresinide bu sekilde alip, appdomain'e oyle yuklenmesini 
saglayabilirsin.
6) 
Açıkçası Man-In-The-Middle ataga karsı SSL mantıklı olabilir, fakat Reflector + 
Reflexil 2'lisiyle her durumda senin kodunun uzerinde degisiklik yapabilirim, 

    yani static iplerini 
degistirebilirim , sonuc olarak belirli intervallerle degisen lisans'a gore bir 
token kullanman mantıklı olacaktır her server request'i 
icin.
 

Ama sonucta 
uygulaman .Net !!! 
 
Kolay gelsin 
:)
 




From: Kusmezer, Izzet Kerem (ITS-M) 
Sent: 25 
Eylül 2008 Perşembe 11:47
To: Bedirhan Urgun; Oğuzhan YILMAZ; Bunyamin 
DEMIR
Cc: owasp-turkey at lists.owasp.org
Subject: RE: 
[Owasp-turkey] Lisanslama Algoritmaları



Merhabalar Arkadaslar,
 
.Net uygulamalarının korunmasın ve kırılması konusunda asagidaki 
makaleyi ozellikle tavsiye edebilirim.
 
http://www.codeproject.com/KB/dotnet/DotnetInternals_Injection.aspx




From: owasp-turkey-bounces at lists.owasp.org 
[mailto:owasp-turkey-bounces at lists.owasp.org] On Behalf Of Bedirhan 
Urgun
Sent: 25 Eylül 2008 Perşembe 11:42
To: Oğuzhan YILMAZ; 
Bunyamin DEMIR
Cc: owasp-turkey at lists.owasp.org
Subject: Re: 
[Owasp-turkey] Lisanslama Algoritmaları


 
Merhaba,
Ayni 
duruma dusmus, ben de cozum uretmek zorunda kalmistim. Cozumler 
uretmeye calisirken de aklima bir zamanlar aldigim Network Security & 
Cryptography dersi gelmisti; anahtar degis-tokusu, 
private/public anahtarlari, el sıkışmalar, sifreleme algoritmalari... 
:)
 
Aslinda biraz zaman ayirip hedeflerimizi siralarsak cozumu 
(veya cozumlerimizdeki problemleri) daha rahat bulabiliriz (client uygulamasina 
Istemci diyelim);
 
1. Istemci sunucuyu dogru olarak 
tanisin
2. Sunucu istemciyi dogru olarak 
tanisin 
3. Istemci kopyalanmasin
4. Istemcide lisans 
detaylari (zaman, modul, ozellik) degistirilmesin 
5. ...
 
Bunun 
yaninda bir de saldiri agaci olusturursak tadindan yenmez. Yani saldirgan gibi 
dusunup, hedefleri belirleyebiliriz (kirilimlari 
yazmiyorum/yazamiyorum);
 
1. Sahte istemci olusturup 
sunucudan dogrulama token'i almak (key demeyelim cunku DES/AES/RSA keyleri 
ile karismasin)
2. Sahte sunucu olusturup istemciye dogrulama token'i 
yollamak (reply attacks bunun icinde)
3. Istemcide lisans dosyalarini 
degistirerek olmayan ozellikleri aktive etmek, zamani uzatmak 
v.b.
4. Istemciyi baska makinelere kopyalamak ve (intranet icinde) kullanmak 

5. ...
 
Eksik liste ve bazilari belli projeler icin 
mantikli olmayabilir. Ama gelistirilecek cozumun asagidaki konulari 
desteklemesi gerekir ki, sonra basimiz agrimasin;
 
1. 
Olabildigince basit olmasi, cunku urun kullanilmaya basladiginda daha ilk defa 
calistirma asamasinda (ve mesela 2 hafta sonra) lisans hatasi alinirsa, 
"musteri" icin yazilim hakkinda guzel bir his olusturmayabilir.
2. 
Kendi algoritmalarini, en azindan encryption/integrity islemleri icin, 
uretmemesi
3. Baglanti guvenligini saglamasi
4. Sonradan key exchange 
problemi yasamamasi. Bundan kastim, olceklenebilirlik (scalability) 
meselesi. Yani butun istemcilerde ve bir sunucuda ayni encryption KEY 
kullanilmasi (ki buyuk ihtimalle koda gomulerek veya daha muhtemel extra bir 
dosya icinde), baska meseleleri gundeme getirebilir.
5. ...
 
Yani 
durum zor. Herhangi bir cozumun, kafaya takmis bir saldirganin elinde 
cozulebilecegini dusunup, bazi riskleri urunun degerine 
gore kabul etmek gerekiyor.
 
kolay gelsin.

Bedirhan 
Urgun
http://www.webguvenligi.org
http://www.owasp.org/index.php/Turkey
 








Date: Wed, 24 Sep 2008 10:42:24 +0300
From: aspsrc at gmail.com
To: 
bunyamindemir at gmail.com
CC: owasp-turkey at lists.owasp.org
Subject: Re: 
[Owasp-turkey] Lisanslama Algoritmaları



Merhabalar,
Verdiğiniz bilgiler için teşekkürler. Ortak key 
olarak DES kullandım bende. Üzerinde çalıştığı sunucu genelde static ip aldığı 
için ip parametersini eklemiştim fakat zamana bağlı yeni bir kriter çok iyi bir 
fikir. Zaman kriteri ile düşündüğüm sıkıntıları aşabilirim sanırım. Zaman 
senkronizesi içinde ortak bir time server kullandırtabilirim. Programın 
kurulumunda bunu set ettirebilirim. Bu doğrultuda hareket edicem 
sanırım.

İkinci bir türde windows'ta ki gibi bir şifreleme düşündüm. 
Makina donanımına ve ip adresine göre sunucuya özel bir anahtar çıkartıp lisans 
sunucusuna göndericek. Gelen anahtara karşılıkta yeni bir anahtar üretip 
kullanıcı manual olarak ekrana girecek. İllene anahtarda olmayabilir DES ile 
şifrelenmiş kocaman bir metinde olabilir. Daha sonra belirli aralıklarla sunucu 
lisans bilgisini gönderebilir.

1'inci paragraftaki yöntem daha mantıklı 
ama yeni fikirlerede açığım.

Her ne kadar web güvenliği ile ilgili bir 
liste olsada cevaplar için teşekkürler .



24 Eylül 2008 Çarşamba 09:59 tarihinde Bunyamin DEMIR 
<bunyamindemir at gmail.com> 
yazdı:


  
  Merhabalar Oguzhan,
   
  Client ile sunucu arasinda ortak bir "key" tanimlasaniz. bunlar DES, AES 
  turevleri olabilir (1). Ayni zamanda client`in static ip sini bir kisit olarak 
  kullansaniz (2). Hatta ilk bahsettigim KEY i zamana bagli bir fonksiyondan 
  gecirseniz (3), Bir de ssl ile trafigi saglasaniz ben yeterli olabilecegi 
  kanisindayim.
   
  Belki uygulamamiz ayni olmasada buna benzer bir teknigi farkli bir is 
  icin kullanmistim.
   
  1) DES daha makul olabilir.
  2) Static ip olacagini varsayiyorum.
  3) İstek aninin zamani ile KEY (1) karistirilarak gonderilebilir. Yani; 
  Key sadece istek yapilan ilk 15 sn icinde gecerli olabilir. Baglanti 
  saglandiktan sonra zaten zaman gecmis ve baskasinin eline gecsede 
  kullanamayacagi bir Key elde etmis olabilir. Tabi burda sunucu-istemcinin 
  zaman ayarlari ayni olmali. Bu bahsettigim olayi sadece biraz daha karmasik 
  hale getirebilir, okadar.
   
  Umarim yanlis anlamamisimdir.
   
  Saygilar,


  24 Eylül 2008 Çarşamba 02:03 tarihinde Oğuzhan 
  YILMAZ <aspsrc at gmail.com> yazdı:

  
    
    
    
    
    Merhabalar,

    

Uzun zamandan 
    beri üzerinde çalıştığım .net framework 2.0 ve C# kullanarak geliştirdiğim 
    Server-Client tarzı bir uygulamam var. 
Kısaca yaptığı işi belirtmek 
    gerekirse. wİndows Application şeklinde çalışan Hosting Kontrol Paneli 
    diyebiliriz. Sunucu kısmı hosting şirketinin sunucusunda çalışıyor. Hosting 
    şirketide müşterilerine masaüstü uygulaması tarzındaki istemcisini dağıtıp 
    hizmetlerini müşterinin kendi yönetmesini sağlıyor.

Esas danışmak 
    istediğim husus ise. Bu ürünün lisanslamasını en güvenilir(?) şekilde hangi 
    türde yapabiliriz.? Konu ile ilgili dünyadaki standartlar 
    nelerdir?

Genelde yapılan teknik ve benim düşündüğüm 
    şöyle.
Uygulamanın kurulu olduğu sunucudan üreticinin sunucusuna içinde 
    anahtar bilgisi olan bir istek gidiyor. Üretici sunucusuda bu istek'e göre 
    olumlu yada olumsuz cevap döndürüyor. Bu teknik ortadaki adam saldırısı gibi 
    bir çok yönteme açık olduğundan biraz endişeliyim. Aradaki veriyi ssl ile 
    gönderirsek yinede bu tipteki yöntemleri by-pass edebilirmiyiz? İstek'te 
    bulunan sunucya fake bir üretici sunucusuda gösterilebilir.

Sonuç: 
    Hala tam olarak nasıl bir lisanslama yöntemi kullanacağımı 
    belirleyemedim.
-- 
    
Oğuzhan


_______________________________________________
Owasp-turkey 
    mailing list
Owasp-turkey at lists.owasp.org
https://lists.owasp.org/mailman/listinfo/owasp-turkey




-- 
Bunyamin Demir
OWASP-Turkey Member
http://www.webguvenligi.org



-- 
Oğuzhan



See how Windows connects the people, information, and fun that are part of your 
life. See Now 


-- 
Oğuzhan



_________________________________________________________________
Windows Live Messenger'ın için Ücretsiz 30 İfadeyi yükle
http://www.livemessenger-emoticons.com/funfamily/tr-tr/
-------------- sonraki bölüm --------------
Bir HTML eklentisi temizlendi...
URL: https://lists.owasp.org/pipermail/owasp-turkey/attachments/20080925/0e730870/attachment.html 


More information about the Owasp-turkey mailing list