<div dir="ltr">Merhaba,<br><br>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. <br>Benim tavsiyem piyasada bulunan debuggerlara (ör: <a href="http://sozluk.sourtimes.org/show.asp?t=softice">SoftIce</a>) 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. <br>
<br>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.<br>
<br>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ı.<br>
<br>İyi Çalışmalar.<br><br>Murat Topçu<br>
<br><br><div class="gmail_quote">25 Eylül 2008 Perşembe 18:18 tarihinde Cihan ÖZHAN <span dir="ltr">&lt;<a href="mailto:cihan.ozhan@hotmail.com">cihan.ozhan@hotmail.com</a>&gt;</span> yazdı:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">




<div><div style="text-align: left;"><div style="text-align: left;">Merhabalar.<br>
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 &#39;günlük sunucu onay kodu&#39; ile istemcinin
istemimiz dışında çalışmasını engelleyebiliriz diye düşünüyorum.<br>
Saygılar.<br>
</div>
</div><br><br><br><hr>Date: Thu, 25 Sep 2008 17:34:15 +0300<br>From: <a href="mailto:aspsrc@gmail.com" target="_blank">aspsrc@gmail.com</a><br>To: <a href="mailto:Izzet-Kerem.Kusmezer@bshg.com" target="_blank">Izzet-Kerem.Kusmezer@bshg.com</a><div>
<div></div><div class="Wj3C7c"><br>CC: <a href="mailto:owasp-turkey@lists.owasp.org" target="_blank">owasp-turkey@lists.owasp.org</a><br>Subject: Re: [Owasp-turkey] Lisanslama Algoritmaları<br><br><div dir="ltr">Merhaba Kerem,<br>
Lisans dosyalarını des ile koruyorum ve client&#39;ta oluşturulan lisans doyasının , lisans sunucusuna gönderilmesinin belli bir zaman kısıtlaması var.<br><br>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&#39;e çeviriyordum şimdi :)<br>

<br>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&#39;ı ile client&#39;ın time&#39;ını seknronize etmek lazım.<br>

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.<br>

<br>Duruma göre dinamik assembly&#39;ler oluşturmakda mümkün ama şuda var Beridhan&#39;ın dediği gibi ürünün değerine göre bazı durumları kabul etmek gerekiyor.<br><br>Teşekkürler. Saygılar.<br><br><br><br><div>
25 Eylül 2008 Perşembe 16:58 tarihinde Kusmezer, Izzet Kerem (ITS-M) <span dir="ltr">&lt;<a href="mailto:Izzet-Kerem.Kusmezer@bshg.com" target="_blank">Izzet-Kerem.Kusmezer@bshg.com</a>&gt;</span> yazdı:<br><blockquote style="padding-left: 1ex;">







<div>
<div dir="ltr" align="left"><span></span><font face="Arial"><font color="#0000ff">M<span>erhabalar 
Oguzhan,</span></font></font></div>
<div><font face="Arial"><font color="#0000ff"><span></span></font></font>&nbsp;</div>
<div><font face="Arial"><font color="#0000ff"><span>Bende 
aklıma ilk olarak gelenleri seninle paylasmak 
istedim.</span></font></font></div>
<div><font face="Arial"><font color="#0000ff"><span></span></font></font>&nbsp;</div>
<div><font face="Arial"><font color="#0000ff"><span>1) 
Lisans dosyalarini nasil korumayi dusunuyorsun.</span></font></font></div>
<div><font face="Arial"><font color="#0000ff"><span>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.</span></font></font></div>
<div><font face="Arial"><font color="#0000ff"><span>3) 
Server ile iletisimi sanirim TCP uzerinden yapacaksin, bunun icin .Net&#39;te 
SecureChannel&#39;i direkt olarak kullanabilirsin. (&nbsp; <a href="http://www.codeproject.com/KB/security/SecChannel.aspx" target="_blank">http://www.codeproject.com/KB/security/SecChannel.aspx</a>&nbsp;) 
boyle direkt olarak build in bir yapi kullanmis 
olursun.</span></font></font></div>
<div><font face="Arial"><font color="#0000ff"><span>4) 
Burada kesinlikle time based salt kullanmak mantıklı olacaktır, boylece server&#39;a 
yapılabilecek replay attacklardan korunmus olursun.</span></font></font></div>
<div><font face="Arial"><font color="#0000ff"><span>5) 
Obfuscator&#39;a alternatif olarak client icin Netz ( ayni sekilde codeproject&#39;te 
bulabilirsin ) kullanabilirsin sifreleme ile, ayrica dagitacagin exe&#39;in 
ziplenmish hallerinin sifresinide bu sekilde alip, appdomain&#39;e oyle yuklenmesini 
saglayabilirsin.</span></font></font></div>
<div><font face="Arial"><font color="#0000ff"><span>6) 
Açıkçası Man-In-The-Middle ataga karsı SSL mantıklı olabilir, fakat Reflector + 
Reflexil 2&#39;lisiyle her durumda senin kodunun uzerinde degisiklik yapabilirim, 
</span></font></font></div>
<div><font face="Arial"><font color="#0000ff"><span>&nbsp;&nbsp;&nbsp; yani static iplerini 
degistirebilirim , sonuc olarak belirli intervallerle degisen lisans&#39;a gore bir 
token kullanman mantıklı olacaktır her server request&#39;i 
icin.</span></font></font></div>
<div><font color="#0000ff" face="Arial"></font><font color="#0000ff" face="Arial"></font><font color="#0000ff" face="Arial"></font><font color="#0000ff" face="Arial"></font><font color="#0000ff" face="Arial"></font><font color="#0000ff" face="Arial"></font><font color="#0000ff" face="Arial"></font>&nbsp;</div>


<div><font color="#0000ff" face="Arial"><span>Ama sonucta 
uygulaman .Net !!! </span></font></div>
<div><font color="#0000ff" face="Arial"><span></span></font>&nbsp;</div>
<div><font color="#0000ff" face="Arial"><span>Kolay gelsin 
:)</span></font></div>
<div><font color="#0000ff" face="Arial"></font>&nbsp;</div>
<div dir="ltr" align="left"><br></div>
<div dir="ltr" align="left" lang="en-us">
<hr>
<font face="Tahoma"><b>From:</b> Kusmezer, Izzet Kerem (ITS-M) <br><b>Sent:</b> 25 
Eylül 2008 Perşembe 11:47<br><b>To:</b> Bedirhan Urgun; Oğuzhan YILMAZ; Bunyamin 
DEMIR<div><br><b>Cc:</b> <a href="mailto:owasp-turkey@lists.owasp.org" target="_blank">owasp-turkey@lists.owasp.org</a><br></div><b>Subject:</b> RE: 
[Owasp-turkey] Lisanslama Algoritmaları<br></font><br></div><div><div></div><div>
<div></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial">Merhabalar Arkadaslar,</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial"></font></span>&nbsp;</div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial">.Net uygulamalarının korunmasın ve kırılması konusunda asagidaki 
makaleyi ozellikle tavsiye edebilirim.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial"></font></span>&nbsp;</div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial"><a href="http://www.codeproject.com/KB/dotnet/DotnetInternals_Injection.aspx" target="_blank">http://www.codeproject.com/KB/dotnet/DotnetInternals_Injection.aspx</a></font></span></div>

<br>
<div dir="ltr" align="left" lang="en-us">
<hr>
<font face="Tahoma"><b>From:</b> <a href="mailto:owasp-turkey-bounces@lists.owasp.org" target="_blank">owasp-turkey-bounces@lists.owasp.org</a> 
[mailto:<a href="mailto:owasp-turkey-bounces@lists.owasp.org" target="_blank">owasp-turkey-bounces@lists.owasp.org</a>] <b>On Behalf Of </b>Bedirhan 
Urgun<br><b>Sent:</b> 25 Eylül 2008 Perşembe 11:42<br><b>To:</b> Oğuzhan YILMAZ; 
Bunyamin DEMIR<br><b>Cc:</b> <a href="mailto:owasp-turkey@lists.owasp.org" target="_blank">owasp-turkey@lists.owasp.org</a><br><b>Subject:</b> Re: 
[Owasp-turkey] Lisanslama Algoritmaları<br></font><br></div>
<div></div><font color="#0000ff" face="Arial"></font>&nbsp;<br>Merhaba,<br>Ayni 
duruma dusmus,&nbsp;ben de cozum uretmek zorunda kalmistim.&nbsp;Cozumler 
uretmeye calisirken&nbsp;de aklima bir zamanlar aldigim Network Security &amp; 
Cryptography dersi&nbsp;gelmisti; anahtar degis-tokusu, 
private/public&nbsp;anahtarlari, el sıkışmalar,&nbsp;sifreleme algoritmalari... 
:)<br>&nbsp;<br>Aslinda biraz zaman ayirip&nbsp;hedeflerimizi siralarsak cozumu 
(veya cozumlerimizdeki problemleri) daha rahat bulabiliriz (client uygulamasina 
Istemci&nbsp;diyelim);<br>&nbsp;<br>1.&nbsp;Istemci sunucuyu&nbsp;dogru olarak 
tanisin<br>2. Sunucu istemciyi dogru olarak 
tanisin&nbsp;<br>3.&nbsp;Istemci&nbsp;kopyalanmasin<br>4. Istemcide lisans 
detaylari (zaman, modul, ozellik) degistirilmesin <br>5. ...<br>&nbsp;<br>Bunun 
yaninda bir de saldiri agaci olusturursak tadindan yenmez. Yani saldirgan gibi 
dusunup, hedefleri belirleyebiliriz (kirilimlari 
yazmiyorum/yazamiyorum);<br>&nbsp;<br>1. Sahte istemci olusturup 
sunucudan&nbsp;dogrulama token&#39;i almak (key demeyelim cunku DES/AES/RSA keyleri 
ile karismasin)<br>2. Sahte sunucu olusturup&nbsp;istemciye dogrulama token&#39;i 
yollamak (reply attacks bunun icinde)<br>3. Istemcide lisans dosyalarini 
degistirerek olmayan ozellikleri&nbsp;aktive etmek, zamani&nbsp;uzatmak 
v.b.<br>4. Istemciyi baska makinelere kopyalamak ve (intranet icinde) kullanmak 
<br>5. ...<br>&nbsp;<br>Eksik liste&nbsp;ve bazilari belli projeler icin 
mantikli olmayabilir. Ama gelistirilecek cozumun asagidaki konulari 
desteklemesi&nbsp;gerekir ki, sonra basimiz agrimasin;<br>&nbsp;<br>1. 
Olabildigince basit olmasi, cunku urun kullanilmaya basladiginda daha ilk defa 
calistirma asamasinda (ve mesela 2 hafta sonra) lisans hatasi alinirsa, 
&quot;musteri&quot; icin&nbsp;yazilim hakkinda guzel bir&nbsp;his olusturmayabilir.<br>2. 
Kendi algoritmalarini, en azindan encryption/integrity&nbsp;islemleri icin, 
uretmemesi<br>3. Baglanti guvenligini saglamasi<br>4. Sonradan key exchange 
problemi&nbsp;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.<br>5. ...<br>&nbsp;<br>Yani 
durum zor. Herhangi bir cozumun,&nbsp;kafaya takmis&nbsp;bir saldirganin elinde 
cozulebilecegini dusunup, bazi riskleri&nbsp;<b>urunun degerine</b> 
gore kabul etmek gerekiyor.<br>&nbsp;<br>kolay gelsin.<br><br>Bedirhan 
Urgun<br><a href="http://www.webguvenligi.org/" target="_blank">http://www.webguvenligi.org</a><br><a href="http://www.owasp.org/index.php/Turkey" target="_blank">http://www.owasp.org/index.php/Turkey</a><br>&nbsp;<br><br><br>

<br><br>
<hr>
<br>Date: Wed, 24 Sep 2008 10:42:24 +0300<br>From: <a href="mailto:aspsrc@gmail.com" target="_blank">aspsrc@gmail.com</a><br>To: 
<a href="mailto:bunyamindemir@gmail.com" target="_blank">bunyamindemir@gmail.com</a><br>CC: <a href="mailto:owasp-turkey@lists.owasp.org" target="_blank">owasp-turkey@lists.owasp.org</a><br>Subject: Re: 
[Owasp-turkey] Lisanslama Algoritmaları<br><br><br>
<div dir="ltr">Merhabalar,<br>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.<br><br>İkinci bir türde windows&#39;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.<br><br>1&#39;inci paragraftaki yöntem daha mantıklı 
ama yeni fikirlerede açığım.<br><br>Her ne kadar web güvenliği ile ilgili bir 
liste olsada cevaplar için teşekkürler .<br><br><br>
<div>24 Eylül 2008 Çarşamba 09:59 tarihinde Bunyamin DEMIR 
<span dir="ltr">&lt;<a href="mailto:bunyamindemir@gmail.com" target="_blank">bunyamindemir@gmail.com</a>&gt;</span> 
yazdı:<br>
<blockquote style="padding-left: 1ex;">
  <div dir="ltr">
  <div>Merhabalar Oguzhan,</div>
  <div><font color="#0000ff" face="Arial"></font>&nbsp;</div>
  <div>Client ile sunucu arasinda ortak bir &quot;key&quot; 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&nbsp;(3), Bir de ssl ile trafigi saglasaniz ben yeterli olabilecegi 
  kanisindayim.</div>
  <div><font color="#0000ff" face="Arial"></font>&nbsp;</div>
  <div>Belki uygulamamiz ayni olmasada buna benzer bir teknigi farkli bir is 
  icin kullanmistim.</div>
  <div><font color="#0000ff" face="Arial"></font>&nbsp;</div>
  <div>1) DES daha makul olabilir.</div>
  <div>2) Static ip olacagini varsayiyorum.</div>
  <div>3) İstek aninin zamani ile KEY (1) karistirilarak gonderilebilir. Yani; 
  Key sadece istek yapilan ilk&nbsp;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.</div>
  <div><font color="#0000ff" face="Arial"></font>&nbsp;</div>
  <div>Umarim yanlis anlamamisimdir.</div>
  <div><font color="#0000ff" face="Arial"></font>&nbsp;</div>
  <div>Saygilar,<br><br></div>
  <div>24 Eylül 2008 Çarşamba 02:03 tarihinde Oğuzhan 
  YILMAZ <span dir="ltr">&lt;<a href="mailto:aspsrc@gmail.com" target="_blank">aspsrc@gmail.com</a>&gt;</span> yazdı:<br>
  <blockquote style="padding-left: 1ex;">
    <div>
    <div></div>
    <div>
    <div dir="ltr">
    <div>Merhabalar,<br>
    <div dir="ltr"><font color="#0000ff" face="Arial"></font><font color="#0000ff" face="Arial"></font><font color="#0000ff" face="Arial"></font><font color="#0000ff" face="Arial"></font><font color="#0000ff" face="Arial"></font><br>

Uzun zamandan 
    beri üzerinde çalıştığım .net framework 2.0 ve C# kullanarak geliştirdiğim 
    Server-Client tarzı bir uygulamam var. <br>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.<br><br>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?<br><br>Genelde yapılan teknik ve benim düşündüğüm 
    şöyle.<br>Uygulamanın kurulu olduğu sunucudan üreticinin sunucusuna içinde 
    anahtar bilgisi olan bir istek gidiyor. Üretici sunucusuda bu istek&#39;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&#39;te 
    bulunan sunucya fake bir üretici sunucusuda gösterilebilir.<br><br>Sonuç: 
    Hala tam olarak nasıl bir lisanslama yöntemi kullanacağımı 
    belirleyemedim.<br clear="all"><br>-- 
    <br>Oğuzhan<br></div></div><br></div><br></div></div>_______________________________________________<br>Owasp-turkey 
    mailing list<br><a href="mailto:Owasp-turkey@lists.owasp.org" target="_blank">Owasp-turkey@lists.owasp.org</a><br><a href="https://lists.owasp.org/mailman/listinfo/owasp-turkey" target="_blank">https://lists.owasp.org/mailman/listinfo/owasp-turkey</a><br>

<br></blockquote></div><br><br clear="all"><br>-- <br>Bunyamin Demir<br>OWASP-Turkey Member<br><a href="http://www.webguvenligi.org/" target="_blank">http://www.webguvenligi.org</a><br></div></blockquote></div><br><br clear="all">

<br>-- <br>Oğuzhan<br></div><br>
<hr>
See how Windows connects the people, information, and fun that are part of your 
life. <a href="http://clk.atdmt.com/MRT/go/msnnkwxp1020093175mrt/direct/01/" target="_blank">See Now</a> </div></div></div>
</blockquote></div><br><br clear="all"><br>-- <br>Oğuzhan<br>
</div>
<br></div></div><hr>Windows Live Messenger&#39;ın için ücretsiz güncelleştirme! <a href="http://get.live.com" target="_blank">Buraya tıkla!</a></div>
<br>_______________________________________________<br>
Owasp-turkey mailing list<br>
<a href="mailto:Owasp-turkey@lists.owasp.org">Owasp-turkey@lists.owasp.org</a><br>
<a href="https://lists.owasp.org/mailman/listinfo/owasp-turkey" target="_blank">https://lists.owasp.org/mailman/listinfo/owasp-turkey</a><br>
<br></blockquote></div><br><div style="border: 0px none ; margin: 0px; padding: 0px; position: absolute; width: 0px; display: block; z-index: -90; left: -100px; top: -100px; height: 0px;" id="autoPagerLastDiv" class="autoPagerS">
</div></div>