[Owasp-turkey] Lisanslama Algoritmaları

Murat Topçu murattpc at gmail.com
Fri Sep 26 06:43:07 EDT 2008


Merhaba,

Ne yaparsak yapalım çalışan kodlarımız halen .Net tarafında çalışıyor. Vede
kodda yapılacak değişim hala native exe lere göre çok daha kolay.
Benim tavsiyem piyasada bulunan debuggerlara (ör:
SoftIce<http://sozluk.sourtimes.org/show.asp?t=softice>)
karşı koruması olan bir native dll yazıp lisanslama işini bu dll içerisinde
halletmen. Bu sistemini kıracak kişinin işini dahada zorlaştıracaktır.
Birkaç önemli / karmaşık fonksiyonuda dll içerisine gömersen dll i devre
dışı bırakma ihtimalinide ortadan kaldırmış olabilirsin.

Bunun haricinde programına zaman kısıtlaması koyabilirsin. Mesela 3 ay sonra
çalışmaz gibisinden. Bu sayede 3 ayda bir güncellemeyi garanti ediyorsun.
Eğer herhangi bir kırma söz konusuysa 3 ay sonra yeni güvenlik önlemleriyle
tekrar gönderirsin. Tabi süre kısıtlamasınıda değiştirilmesi zor native dll
in içerisine koyman gerekiyor.

Tüm bu aşamaları aşıp karmaşık fonksiyonlarını dll den çıkarabilecek ve
yazılımı tekrar düzenleyebilecek birisine yapılabilecek fazla bişey yok diye
düşünüyorum. Sonuç itibariyle kırılamayacak hiç bir program yoktur. Önemli
olan kıracak kişinin kırma süresinin senin güncelleme sürenden kısa
olmaması.

İyi Çalışmalar.

Murat Topçu


25 Eylül 2008 Perşembe 18:18 tarihinde Cihan ÖZHAN
<cihan.ozhan at hotmail.com>yazdı:

> 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<http://clk.atdmt.com/MRT/go/msnnkwxp1020093175mrt/direct/01/>
>
>
>
>
> --
> OÄŸuzhan
>
> ------------------------------
> Windows Live Messenger'ın için ücretsiz güncelleştirme! Buraya tıkla!<http://get.live.com>
>
> _______________________________________________
> Owasp-turkey mailing list
> Owasp-turkey at lists.owasp.org
> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>
>
-------------- sonraki bölüm --------------
Bir HTML eklentisi temizlendi...
URL: https://lists.owasp.org/pipermail/owasp-turkey/attachments/20080926/703c7475/attachment.html 


More information about the Owasp-turkey mailing list