Italian [B4J] Come proteggere dall'utilizzo non autorizzato una procedura in B4J?

amorosik

Expert
Licensed User
Come fare per consentire l'utilizzo di una procedura B4J solamente all'acquirente autorizzato del software?
Parlo di programma gia' compilato in modalita' release
Seriale disco?
Scheda rete?
Registry?
File sparsi di qua' e di la'?
Autenticazione via web?
Chiavetta protezione?
 

Xfood

Expert
Licensed User
Io utilizzerei una funzione del genere,
Ti fai mandare il log in automatico con.il codice, e ritorni una stringa criptata da inserire nel tuo programma, e salvi tutto si un file criptato, e all'avvio del programma fai la verifica della chiave

 

amorosik

Expert
Licensed User

Si, ok
Il giorno dopo ti chiamano, "...eh sai s'e' rotto il disco.." che e' pure plausibile
Hanno acquistato, hanno diritto all'uso del programma, che si fa?
 

LucaMs

Expert
Licensed User
Longtime User
Qualunque cosa tu faccia, all'interno del compilato avrai un controllo su un certo valore, che sia locale o remoto non ha importanza, una sorta di "IF xxx" e se decompilano il tuo sw sei fregato anyway!
 

Xfood

Expert
Licensed User
Si, ok
Il giorno dopo ti chiamano, "...eh sai s'e' rotto il disco.." che e' pure plausibile
Hanno acquistato, hanno diritto all'uso del programma, che si fa?
Potresti attivare il controllo a doppia chiave, cioe' dopo aver attivato il controllo come suggerito prima, all'avvio la procedura verifica il file criptato come suggerito prima, e poi si collega ad un tuo portale web di sola lettura e verifica che quel id/codiceMacchina sia impostato a true, altrimenti dice licenza non attiva., se non riesce a collegarsi e il file decriptato risulta ok, per i primi 15 avvii ti fa lavorare.( immaggina problemi di collegamento a internet , linea mancante ecc.)
Io ho sempre utilizzato questo sistema, cosi posso cambiare licenza da una macchina all'altra, e funziona solo una licenza per quel cliente.
 

Xfood

Expert
Licensed User
Qualunque cosa tu faccia, all'interno del compilato avrai un controllo su un certo valore, che sia locale o remoto non ha importanza, una sorta di "IF xxx" e se decompilano il tuo sw sei fregato anyway!
Nessun sistema e' inviolabile, ma normalmente con una protezione simile, non credo che il cliente abbia le capacita'di decompilare il programma, modificare il sistema di controllo e poi ricompilarlo. In tal caso
Lo assumi nella tua azienda.???
 

amorosik

Expert
Licensed User
Qualunque cosa tu faccia, all'interno del compilato avrai un controllo su un certo valore, che sia locale o remoto non ha importanza, una sorta di "IF xxx" e se decompilano il tuo sw sei fregato anyway!

Non e' proprio cosi'
Esistono delle chiavette dentro le quali puoi mettere delle funzioni, dei pezzi di codice che il tuo programma utilizza
Se non c'e' chiavetta, non c'e' tutto il programma, c'e' poco da decompilare sul programma principale
 

LucaMs

Expert
Licensed User
Longtime User
Non e' proprio cosi'
Esistono delle chiavette dentro le quali puoi mettere delle funzioni, dei pezzi di codice che il tuo programma utilizza
Se non c'e' chiavetta, non c'e' tutto il programma, c'e' poco da decompilare sul programma principale
Beh sì, in quel caso è come se tu avessi tutto il sw su hw, ma vai a produrre tutto quell'hw - sperando che tu abbia un bel po' di clienti.

A meno che tu non intenda pezzi di sw su normali chiavette usb (pendrive) nel qual caso sei da capo a dodici, perché sempre di sw violabile si tratterebbe.
 

Xfood

Expert
Licensed User
Non e' proprio cosi'
Esistono delle chiavette dentro le quali puoi mettere delle funzioni, dei pezzi di codice che il tuo programma utilizza
Se non c'e' chiavetta, non c'e' tutto il programma, c'e' poco da decompilare sul programma principale
Non voglio fare l'amico del leone, ma se decompili il software sulla chiavetta? Se crei una chiavetta gemella, sai quanti software ci sono di duplicazione a specchio.
 

amorosik

Expert
Licensed User

Si, questo e' gia' ragionevole
La chiave cirttata DEVE esserci sempre
Poi almeno ogni X avviamenti DEVE potersi collegare anche al produttore
 

Xfood

Expert
Licensed User
Si, questo e' gia' ragionevole
La chiave cirttata DEVE esserci sempre
Poi almeno ogni X avviamenti DEVE potersi collegare anche al produttore
Io faccio una select su un mio db remoto per verificare se la licenza e' attiva dopo il controllo del file, ad ogni avvio di procedura.
 

amorosik

Expert
Licensed User
Non voglio fare l'amico del leone, ma se decompili il software sulla chiavetta? Se crei una chiavetta gemella, sai quanti software ci sono di duplicazione a specchio.

Sono chiavette che di mestiere fanno " l'incopiabile "
Se uno riesce a copiarla paro paro, tanto di cappello
O avete informazioni aggiornate/sicure su come duplicare una chiavetta di protezione?
 

amorosik

Expert
Licensed User
Io faccio una select su un mio db remoto per verificare se la licenza e' attiva dopo il controllo del file, ad ogni avvio di procedura.

Ma lo tieni in locale, accessibile dall'esterno, o su host tipo Aruba, Ovh, ServerPlan, e company?
 

Xfood

Expert
Licensed User
Queste chiavette ( a mio avviso) creano una partizione nascosta accessibile tramite delle librerie e chiave di criptazione, ci sono vari software che copiano ne partizioni nascoste, e' lo stesso metodo che utilizzava tom tom go, sulla sua sd per le mappe ? e qui chiudo l'argomento ?
 

amorosik

Expert
Licensed User

Produrre in che senso? Mica devi farle tu
Le compri da chi le fa, una, dieci, cento, quante ne usi
C'e' l'sdk per programmarle e poi le consegni al cliente
C'e' quella semplice che ti restituisce uno o piu' codici e credo siano quelle semplici da copiare
Ma ci sono anche quelle piu' sofisticate che ti permettono di 'spedirci' dentro delle funzioni complesse, e quelle credo siano ben difficili da copiare
Ovviamente costano pure deppiu'
 

amorosik

Expert
Licensed User

Riapri pure ?
Diciamo per ipotesi se avessi delle chiavette da duplicare, sempre per ipotesi fossero delle Des key modello d k 2
Che strada seguiresti?
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…