Re: [JUG-Indonesia] Membuat Key/Serial Number untuk Program JAVA

2010-04-09 Terurut Topik Ferdinand Neman
Bener bener nostalgia nih gw lihat license scheme gini.
Persis banget sama scheme nya yang pernah gw buat buat kantor dulu.

Cuma license contentnya pake "properties" style, nggak xml biar gak terlalu
verbose dan bisa bikin data licensenya terlalu panjang.
Dalam data ini juga ditambahkan public key (as part of the license data),
Terus di pack agar panjangnya selalu constan dan di encrypt pake EAS
encryption, menggunakan "salt" yang dirahasiakan.
Nah hasil encryptionnya baru di sign pake RSA 1024, menggunakan private
keynya kantor. dan di append ke license key.

Jadi tahap pertama, itu license bisa di decrypt pake EAS (tentu pake SALT
yang dirahasiakan, hardcoded), kemudian bisa recover public key beserta
field-field yang lain. Setelah itu baru di check signaturenya ke original
data (encrypted) dengan menggunakan public key yang direcover.

Kalau crackernya jago, dia harus bisa recover secret "SALT" dari produk dulu
untuk bisa decrypt data, buang signature dan public keynya, Bikin license
key data yang baru, dengan public key palsu di pack dengan ukuran yang sama
kemudian di encrypt pake EAS dengan "SALT" yang asli, tinggal di sign pake
private key yang palsu.

However, step ini gw rasa sudah terlalu rumit for crackers. Kecuali
crackernya juga orang dalam ;)
Kalau sudah gini, tinggal bikin programnya untuk request public key dari
signature trusted server, macam Verisign.
Tinggal bandingin aja public key yang didapat dari verisign dengan public
key yang didapat dari license.
Tapi ngapain juga, langsung aja pake yang dari veri sign.

BERES.

Salam.

2010/4/9 Hendry Luk 

>
>
> Ini gak bisa lah :P
> 1. gimana set masa berlaku licensenya dan tipe/jumlah licensenya
> 2. kalo orang decompile jar nya, semua orang bisa langsung generate
> licensenya sendiri, tanpa perlu tamper with productnya sama sekali.
>
> Umumnya license dibikin pake public/private key encryption.
> Misalnya, di app gw tiap license itu ada informasi berikut:
> 1. ip dari license-servernya. i.e. license ini cuma bisa dideploy di ip
> ini, dan another secondary ip buat failover purpose. Secondary
> license-server cuma aktif strictly hanya kalo primarynya mati, jadi customer
> gak bakal dapet double the amount of license yg mereka bayar
> 2. tipe licensenya (corporate, premium, professional, enterprise, etc)
> 3. jumlah licensenya (server keeps count berapa jumlah concurent users yg
> acquire license dari pool)
> 4. masa berlaku licensenya
> 5. license key
>
> License key ini digenerate dengan meng-encrypt empat informasi pertama
> menggunakan secret (private) key yang cuma dipegang oleh HQ kita. Lima
> informasi ini terus tinggal ditaro di license-file (in our case, xml) yang
> didistribute ke clients. Di client side, licensing component kita bakal
> validate file ini menggunakan public key. Licensing component cuma punya
> public key, sehingga biarpun didecompile pun orang gak bakal bisa generate
> new license key, karna buat generate butuh private key, yang cuma dipegang
> oleh HQ office. Semua projects kita around the globe therefore bakal
> regularly mesti minta ke HQ office buat generate new license key (assuming
> customernya mo extend the license).
>
> Dengan cara ini, biarpun cliet punya distribution jar, gak bakal bisa bikin
> license sendiri, kecuali kalo mereka tamper with productnya dan modify
> codenya ato public keynya, (also known as "crack"), which is very easy buat
> di-detect (dengan memverify MD5 checksum dari jar file kita). No one bisa
> generate license key yang valid dipake di legal version of the product yang
> belom dicrack, sehingga pirates gak bisa ngejual "valid license-key" ke law
> abiding citizens.
>
> 2010/4/9 Muhammad Edwin 
>
>>
>>
>>
>>
>> 2010/4/8 JavaNetbeans 
>>>
 Hallo teman2...
 Gimana cara kita membuat lisensi serial number pada program Java...???

 OK Terima Kasih atas bantuannya.

 System.out.printl("BRAVO JAVA");

>>>
>> klo dulu gw bikin berdasarkan nama komputer (hostname) dari si PC, lalu
>> hostname-nya gw encrypt pake jasypt
>> jadi deh Serial Number, hehehhee
>>
>>
>> --
>> Regards,
>>
>>
>> edwin.
>>
>
>  
>



-- 
Ferdinand Neman

Developer Team Lead, System Analyst,
System Designer and Solution Architect

http://www.linkedin.com/in/fneman


Re: [JUG-Indonesia] Membuat Key/Serial Number untuk Program JAVA

2010-04-08 Terurut Topik Hendry Luk
Ini gak bisa lah :P
1. gimana set masa berlaku licensenya dan tipe/jumlah licensenya
2. kalo orang decompile jar nya, semua orang bisa langsung generate
licensenya sendiri, tanpa perlu tamper with productnya sama sekali.

Umumnya license dibikin pake public/private key encryption.
Misalnya, di app gw tiap license itu ada informasi berikut:
1. ip dari license-servernya. i.e. license ini cuma bisa dideploy di ip ini,
dan another secondary ip buat failover purpose. Secondary license-server
cuma aktif strictly hanya kalo primarynya mati, jadi customer gak bakal
dapet double the amount of license yg mereka bayar
2. tipe licensenya (corporate, premium, professional, enterprise, etc)
3. jumlah licensenya (server keeps count berapa jumlah concurent users yg
acquire license dari pool)
4. masa berlaku licensenya
5. license key

License key ini digenerate dengan meng-encrypt empat informasi pertama
menggunakan secret (private) key yang cuma dipegang oleh HQ kita. Lima
informasi ini terus tinggal ditaro di license-file (in our case, xml) yang
didistribute ke clients. Di client side, licensing component kita bakal
validate file ini menggunakan public key. Licensing component cuma punya
public key, sehingga biarpun didecompile pun orang gak bakal bisa generate
new license key, karna buat generate butuh private key, yang cuma dipegang
oleh HQ office. Semua projects kita around the globe therefore bakal
regularly mesti minta ke HQ office buat generate new license key (assuming
customernya mo extend the license).

Dengan cara ini, biarpun cliet punya distribution jar, gak bakal bisa bikin
license sendiri, kecuali kalo mereka tamper with productnya dan modify
codenya ato public keynya, (also known as "crack"), which is very easy buat
di-detect (dengan memverify MD5 checksum dari jar file kita). No one bisa
generate license key yang valid dipake di legal version of the product yang
belom dicrack, sehingga pirates gak bisa ngejual "valid license-key" ke law
abiding citizens.

2010/4/9 Muhammad Edwin 

>
>
>
>
> 2010/4/8 JavaNetbeans 
>>
>>> Hallo teman2...
>>> Gimana cara kita membuat lisensi serial number pada program Java...???
>>>
>>> OK Terima Kasih atas bantuannya.
>>>
>>> System.out.printl("BRAVO JAVA");
>>>
>>
> klo dulu gw bikin berdasarkan nama komputer (hostname) dari si PC, lalu
> hostname-nya gw encrypt pake jasypt
> jadi deh Serial Number, hehehhee
>
>
> --
> Regards,
>
>
> edwin.
>  
>


Re: [JUG-Indonesia] Membuat Key/Serial Number untuk Program JAVA

2010-04-08 Terurut Topik Daniel Baktiar
Setau gue UUID java ga bisa ngambil mac address, cuma dapet IP address.
Udah gitu sekarang MAC address itu assignable.

Quoted from wikipedia:
http://en.wikipedia.org/wiki/Universally_Unique_Identifier

Java The J2SE 
5.0
release of Java
 provides
a class that will produce 128-bit UUIDs, although it only implements version
3 and 4 generation methods, not the original method (due to lack of means to
access MAC addresses using pure Java).

Hal ini disebabkan karena Java cuma bisa tanya ke OS, ga bisa tanya ke
device driver-nya OS / network subsystem / network module.

-o--o---( ^  ^ )---o--o-
And e-sau said, Behold, I am at the point to reboot: and what profit shall
this public/private key certificate do to me?
Daniel Baktiar (http://danielbaktiar.com)



2010/4/9 Frans Thamura 

>
>
> java setahu saya ada UUID, itu ID-nya ambil s/n MAC ADress network card
>
> dan kita tahu MacAddress network card pasti unique
>
> atau cari aja JNI yang pakai s/n hard disk, terus encrypt pake 1024bit
>
>
> 2010/4/9 Muhammad Edwin 
>
>
>>
>>
>>
>> 2010/4/8 JavaNetbeans 
>>>
 Hallo teman2...
 Gimana cara kita membuat lisensi serial number pada program Java...???

 OK Terima Kasih atas bantuannya.

 System.out.printl("BRAVO JAVA");

>>>
>> klo dulu gw bikin berdasarkan nama komputer (hostname) dari si PC, lalu
>> hostname-nya gw encrypt pake jasypt
>> jadi deh Serial Number, hehehhee
>>
>>
>> --
>> Regards,
>>
>>
>> edwin.
>>
>>
>>
>  
>


Re: [JUG-Indonesia] Membuat Key/Serial Number untuk Program JAVA

2010-04-08 Terurut Topik Ferdinand Neman
Yang pernah bikin apps mobile buat handango atau getjar ngerti nih, xi xi.
Bikin serial number yang bisa di registrasikan, macam "CD key"
kecil-kecilan.

RPN (Reverse Polish Notation)
http://www.edgelib.com/index.php?node=146

Bikin license key kecil-kecilan yang lumayan guna untuk
"to prevent piracy".
Pake RPN juga bisa dibikin rumit, kalau anda kreatif.

Salam.

2010/4/8 JavaNetbeans 

>
>
> Hallo teman2...
> Gimana cara kita membuat lisensi serial number pada program Java...???
>
> OK Terima Kasih atas bantuannya.
>
> System.out.printl("BRAVO JAVA");
>
>  
>



-- 
Ferdinand Neman

Developer Team Lead, System Analyst,
System Designer and Solution Architect

http://www.linkedin.com/in/fneman


Re: [JUG-Indonesia] Membuat Key/Serial Number untuk Program JAVA

2010-04-08 Terurut Topik Hendry Luk
Dan port number

2010/4/9 Hendry Luk 

>
> Misalnya, di app gw tiap license itu ada informasi berikut:
> 1. ip dari license-servernya. i.e. license ini cuma bisa dideploy di ip ini
>


Re: [JUG-Indonesia] Membuat Key/Serial Number untuk Program JAVA

2010-04-08 Terurut Topik Frans Thamura
java setahu saya ada UUID, itu ID-nya ambil s/n MAC ADress network card

dan kita tahu MacAddress network card pasti unique

atau cari aja JNI yang pakai s/n hard disk, terus encrypt pake 1024bit


2010/4/9 Muhammad Edwin 

>
>
>
>
> 2010/4/8 JavaNetbeans 
>>
>>> Hallo teman2...
>>> Gimana cara kita membuat lisensi serial number pada program Java...???
>>>
>>> OK Terima Kasih atas bantuannya.
>>>
>>> System.out.printl("BRAVO JAVA");
>>>
>>
> klo dulu gw bikin berdasarkan nama komputer (hostname) dari si PC, lalu
> hostname-nya gw encrypt pake jasypt
> jadi deh Serial Number, hehehhee
>
>
> --
> Regards,
>
>
> edwin.
>
>
> 


Re: [JUG-Indonesia] Membuat Key/Serial Number untuk Program JAVA

2010-04-08 Terurut Topik Muhammad Edwin
2010/4/8 JavaNetbeans 
>
>> Hallo teman2...
>> Gimana cara kita membuat lisensi serial number pada program Java...???
>>
>> OK Terima Kasih atas bantuannya.
>>
>> System.out.printl("BRAVO JAVA");
>>
>
klo dulu gw bikin berdasarkan nama komputer (hostname) dari si PC, lalu
hostname-nya gw encrypt pake jasypt
jadi deh Serial Number, hehehhee


-- 
Regards,


edwin.


Re: [JUG-Indonesia] Membuat Key/Serial Number untuk Program JAVA

2010-04-08 Terurut Topik mujoko mujoko
symbol  : method printl(java.lang.String)
location: class java.io.PrintStream
System.out.printl("BRAVO JAVA");
 |
Kurang huruf n nya bro, no offense :) , biar gak kebiasaan.

2010/4/8 JavaNetbeans 

>
>
> Hallo teman2...
> Gimana cara kita membuat lisensi serial number pada program Java...???
>
> OK Terima Kasih atas bantuannya.
>
> System.out.printl("BRAVO JAVA");
>


>
>  
>



-- 
Mujoko
http://www.linkedin.com/in/mujoko


[JUG-Indonesia] Membuat Key/Serial Number untuk Program JAVA

2010-04-08 Terurut Topik JavaNetbeans
Hallo teman2...
Gimana cara kita membuat lisensi serial number pada program Java...???

OK Terima Kasih atas bantuannya.

System.out.printl("BRAVO JAVA");