Newsgroup: it.comp.java
Titolo: proteggere java

salve
come proteggete i vostri programmi java?
io avrei pensato ad una soluzione drastica e cioè legare il funzionamento
del programma ad una chiave associata al numero identificativo del disco
rigido su cui viene installato! quindi una volta venduto il programma
l'acquirente dovrebbe far girare un programmino da me realizzato che
recupera il numero di serie dell'hd e provvede ad inviarmelo per e-mail al
che genero il numero di registrazione associato che provvedo ad inviargli
sempre via e-mail.
vi sembra plausibile?
è perfettamente legale?
e se l'hd dell'acquirente si rompe?
grazie e spero di non essere ot.
nello
p.s. ovviamente se avete altre soluzioni magari piu semplici comunicatemele.

bassista wrote:

E io faccio il reverse-engineering della tua classe java
che gestisce la chiave e cambio la tua istruzione:
   if(chiave == chiavedesiderata)
     restoDelProgramma();
   else
     segnalaChiaveFalsa();
con:
   if(true)
     restoDelProgramma();
   else
     segnalaChiaveFalsa();
Seriamente:
   1. È un problema vecchio come il "cucco" (dicono dalle mie parti).
   2. Non c'è soluzione, ovvero
         "Tutto quello che un uomo crea un altro uomo può distruggerlo",
      come afferma Sherlock Holmes alle prese con un codice cifrato
      sviluppato da una banda di criminali.
      E con Java le cose sono ancora più semplici.
E adesso pensa invece a realizzare bene il tuo programma Java
invece che a proteggerlo (proteggerlo da chi, poi?).
- Dario

 ha scritto nel messaggio
news:c55som$s2n$2...@balena.cs.interbusiness.it...


 ...
mi hai preceduto!
Se già era relativamente facile fare il reverse engineering di un comilato
per l'archituettura specifica, figurati quanto è facile farlo con java,
dove ci sono delle specifiche ben precise per generare il file di "medio
linguaggio" (.class).
Come ha già detto Dario, non esiste nessuna sicurezza sicura al 100%.
Tutto sta nel quanto vale la pena sbattersi ad infrangere la protezione di
un programma. Per intenderci, se tu facessi un programma utilissimo e lo
vendessi ad un costo esorbitante, in men che non si dica lo troveresti
sprotetto (soprattutto in java). Se invece il tuo programma utilissimo è
venduto ad un prezzo ragionevole, allora la gente comincia a chiedersi
quanto ne vale la pena di infrangere la protezione.
Comunque se devi vendere il programma a licenza per una società, dove
generalmente acquistano i prodotti che hanno commissionato, la chiave
hardware dovrebbe funzionare egregiamente. Tieni presente che ogni volta
che per qualsiasi motivo cambiano hard disk, tu gli DEVI rigenerare una
chiave in tempo zero perchè loro l'hanno pagata.
Ciao D.
Inviato da 
www.mynewsgate.net

 Dario caï¬?Ã¨inomane ha scritto:


 passarseli.
io per una applicazione (realizzata in VB ma questo non conta ;)
ho usato una tecnica di questo tipo:
il cd era gia' protetto con un sistema sony (securom se non erro) e 
quindi *teoricamente* non copiabile (no comment please :))
il problema era xo' che teoricamente un utente poteva fare cosi':
-copiare l'exe sui pc
-inserire il cd originale sul pc1 e lanciare il programma
-a quel punto, con il prog aperto
-spostare il cd su un'altro pc e lanciarlo
dato che il controllo era effettuato solo sul lancio dell'app
dato che il committente voleva evitare questo, ho inserito
dei controlli su alcune operazioni fondamentali (apri,salva,
nuovo file) di tipo abbastanza stupido:
controllo se nel cd inserito in uno dei lettori del pc ci
sono un paio di directory "messe dove dico io"
nel tuo caso non so quanto sia fattibile la cosa visto che,
non avendo la protezione "base" securom, gli "sprovveduti"
potrebbero semplicemente prendere il cd e farne una copia,
ergo punterei anche io sul controllo del seriale del disco
(ma poi come diceva giustamente getting_out devi rigenerargli
la licenza al volo non appena cambiano il disco)
Penso che tu voglia fare una cosa tipo questa:
-dialog nell'app che legge dei dati univoci dal pc (es. il seriale)
-li codifica in qualche modo (per far si' che l'utente non
sia in grado di capire COSA tu leggi per creare l'attivazione)
-te li manda (via mail o in automatico)
-tu li usi per creare il codice di registrazione
-rimandi il codice all'utente
-l'utente lo inserisce nel sw che controlla la validita'
della (combo codice_attivazione,codice_registrazione) e
salva il codice_registrazione su disco in modo da controllarlo
ad ogni avvio/quando vuoi
ora, invece del seriale del disco *forse* potresti usare
qcosa tipo:
-utente/societa'/codice di registrazione di windows
-label dell'hard disk primario (invece del seriale, o insieme)
o anche tutto insieme :)

...
venderlo a un prezzo onesto onesto e basso in modo che non ci siano
vantaggi a copiarlo?oppure addirittura darlo gratis o open suorce e
farti pagare solo l'assisenza?e poi col tuo sistema se l'utente apre
la mail da un altro pc non risolvi comunque il problema !non e nel
proteggere eccessivamente il tuo prodotto che potrai quadagnare ma nel
progettare un buon prodotto concorrenziale
:come giustamente dicevi se hd si rompe?vedi sono complicazioni di cui
un buon software non ha bisogno


 un buon software non ha bisogno
Parto dal presupposto che se un software lo proteggi in questo modo vuol 
dire ha un certo profilo qualitativo e di conseguenza un determinato costo 
non forzatamente ridotto all'osso. Un servizio di ripristino seriale non lo 
vedo cosi' dannatamente problematico considerato che 1) i soldi li hai gia' 
in tasca 2) Gli HD non si cambiano come i calzini :)
-- 
daniele