Newsgroup: it.comp.lang.visual-basic
Titolo: Protezione, consigliatemi

Grazie per la vostra attenzione a questo mio quesito.
- ho realizzato un programma in VB6 ed ho inserito in esso il mio codice di
una procedura per la protezione dello stesso programma.
- la protezione, tra le altre cose, richiede un dischetto di riferimento sul
quale vi è installato un piccolo file di riferimento.
  questo dischetto deve essere riconosciuto fisicamente in fase di esecuzione
prima di leggere e modificare il file esistente.
- se la distribuzione del programma avviene con dischetti da 3,5" il
dischetto di riferimento viene distribuito insieme al resto e in tal caso
tutto è OK
  purchè il dischetto di riferimento non venga sostituito o copiato.
- se la distribuzione deve avvenire con CD, in tal caso il CD non può
fungere da dischetto di riferimento perchè non si può conoscre il < serial
code > e il < number code > dello spesso prima di trasferire il programma.(
o sbaglio?)
  si può ovviare distribuendo il programma su CD e allegare un dischetto di
riferimento preconfezionato da utilizzare durante l'esecuzione del
programma.
- se voglio distribuire il programma via internet come si potrebbe fare?
  a mio avviso si potrebbe chiedere il <serial number > ed il < code number >
di un dischetto formattato dall'utente e scaricare poi il programma via
internet con le istruzione sulla installazione, sull'allocazione dei files e
sull'utilizzo del dischetto di riferimento.
Poichè la soluzione migliore sarebbe la distribuzione via Internet (prima in
versione trial e poi registrarla) ho l'impressione che il meccanismo sia
complicato.
Avreste da suggerirmi qualche soluzione più pratica?
Grazie ancora e saluti, Sergio
--------------------------------
Inviato via 
http://usenet.libero.it

io uso metodi di crittografia del codice dell' HD; in questo modo, con una
crittografia di questo codice, l'utente può richiederti il codice
corrispondente, e lo faccio controllare ad ogni avvio del software!
Ciao Biagio.

 complicato.
Lo è e non è sicuro in quanto basterebbe copiare il supporto di verifica,
pur fornito in originale.
Credo che la soluzione migliore sia quella (comunque non sicura perchè di
sicure non ne esistono) di abilitare dopo l'installazione sul disco fisso.
Occhio però che non tutti i dischi hanno gli elementi sui quali si tende a
contare. Bisogna trovare dei surrogati hard/soft...


abilitare dopo l'installazione significa comunque dare il software di
abilitazione ????
il mio problema non č tanto la protezione quanto la distribuzione di un
software cosě protetto.
Purtroppo all'utente io devo consegnare un file (da modificare) allocato su
dischetto (o su CD ??) e del quale non deve esistere copia.
L'unica cosa che non si puň copiare č il codice di formattazione.
Tuttavia si sembra scomodo spedire un discetto per ogni versione anche
Trial.
Saluti,
sergio


 Trial.
E' scomodo e dai per scontato qualcosa che può non essere vero e/o non
sempre diponibile su tutte le macchine e/o sistemi.

 sempre diponibile su tutte le macchine e/o sistemi.
Non so se è possibile, ma credo che sia comunque difficie.


 e il suo Code Namber non mi sembra facile (o mi sbaglio?)
Non lo so, francamente. Parto però dal presupposto che si possa fare. Si
sono visti dei copiatori cui mancava solo la possibilità di duplicare
esattamente anche l'etichetta e la scritta sopra, anche se storta. :-)
Il mio dubbio (leggendo un po' in giro) era anche questo (e tale resta
perchè io non ho una risposta certa): Ammesso che il dischetto originale lo
faccia tu con un sistema adeguato, tutti i sistemi solo poi in grado di
reperire le informazioni che ti interessa verificare?
Inoltre (e questo è anche il tuo dubbio), la cosa è abbastanza pratica nella
realtà (come ti auguro) di decine/centinaia/etc. di clienti?
Ti metto un'altra pulce: Io ti chiamo, dichiaro di essere il cliente Pinco e
tu non mi vedi. Ti dico che il dischetto non si legge. Ovviamente io sono
Pallino (e non sono fra i tuoi clienti) e non ho alcun dischetto. Tu che
fai? Mi mandi il dischetto all'indirizzo che ti do io? Bada bene, non voglio
polemizzare, ma i casi possibili sono tanti.
Intendiamoci, nemmeno con altri metodi c'è la certezza, io comunque
preferisco concentrare tutto sulla macchina di esecuzione, senza accessori
aggiuntivi. Potremo (tu ed io, ma anche tutti gli altri) parlare per anni,
ma non c'è una soluzione totalmente sicura (nemmeno le chiavi hardware). Si
tratta di chiedersi, ciascuno di noi: cosa fa il mio software, quali sono i
punti critici e irrinunciabili, cosa potrebbe fare un potenziale pirata per
usarlo senza pagarlo, come posso ridurne le possibilità senza passar più
tempo a proteggere che a programmare/vendere/incassare?

Penso che il tuo dischetto con un programma di copia 'fisica' si
duplichi, come qualsiasi altro supporto magnetico. Basterebbe il vecchio
CopyII PC (1985) per farlo. Se ha una protezione 'fisica' (buco laser o
altro) può essere più complicato... Ma non dimenticare che il è il SO
che legge il floppy, e se lo legge il tuo programma (passando per il SO)
può farlo qualsiasi altro applicativo.
Comunque tieni presente che:
A) prg di alto interesse
Non c'è modo di proteggere adeguatamente un software.
Qualsiasi cosa ti inventi, se serve davvero qualcuno lo stronca.
AutoCAD, ad esempio, è protetto hw, ma nella rete ce ne sono quanti ne
vuoi che funzionano anche senza chiave.
B) prg di basso interesse
Non proteggerlo, perché non vale la pena.
È più il costo dell'implementazione che il vantaggio che ne ricavi.
Oggi 'per divertimento' c'è chi copia anche prg da 2$.
Con il non proteggere si deve considerare il vantaggio, in temini di
notorietà, che la diffusione di un prg comporta.
Magari avessi un prg scaricato da decine di migliaia di persone!
Queste sono le tipologie più diffise di protezione:
0 - (aggiunta dopo)
Validazione on-line dalla rete.
È una possibilità, ma se in quel momento la rete non va?
L'uso della rete è ancora inaffidabile da questo punto di vista.
1 - chiave hw
Abbastanza (non totalmente) sicura, ma costa (dai 20 ai 50 E a chiave,
dipende dalle caratteristiche).
2 - chiave software
Sicuro nel caso di prg (B), comporta la creazione di un codice che può
essere 'del cliente' o 'della macchina'. Nel primo caso se trovi una
copia (come la troveresti?) sai da chi è partita, nel secondo ogni volta
che il prog viene installato chiede un codice univoco, legato al serial
number dell'hd della macchina usata (o qualsiasi altra cosa vuoi, come
ad esempio il MAC Address della scheda di rete). Questo comporta che se
il disco viene formattato o cambiato devi fornire un altro codice. I
programmi che realizzo per Buffetti sono protetti con un codice
'cliente', mentre alcuni dei miei sono protetti con un codice
'macchina'. Hanno vantaggi e svantaggi entrambe le soluzioni; e ricorda
che devi mettere una data di 'scadenza' della protezione (non so... due
anni dopo la data di creazione del prg?), altrimenti diventi uno schiavo
di quel prg perché chi l'ha comprato ha diritto di usarlo quanto vuole.
3 - scadenze, ecc...
Il programma del cliente deve funzionare sempre.
Rischi di passare dei guai.
Cosa si arguisce da tutto questo?
Che proteggere aumenta i costi di gestione (molto) e di sviluppo (poco).
Quindi proteggi solo ciò che è indispensabile.
Anzi, non proteggere tanto è la stessa cosa...
Magari, se puoi, personalizza il programma con i dati del cliente (nome,
cognome, ecc.) e fa vedere queste informazioni sempre ed inseriscile in
tutte le stampe. Certo, lo puoi fare solo con prg poco diffusi (ogni prg
richiederebbe una ricompilazione, perché se metti i dati, anche
criptati, in un file esterno il gioco è fatto), ma alle volte basta.
Bye
-> GbC
http://www.gbcweb.com
PS: è ovvio che si tratta della mia opinione sull'argomento.

copia (come la troveresti?) sai da chi è partita, nel secondo ogni volta
credo sia la più laboriosa e fastidiosa e impegnativa, ma credo pure che sia
quella che fa stare un poco più tranquilli.
Vedo comunque che sei molto esperto dell'argomento,
dove ti trovi?
magari ci potrebbe essere una collaborazione.
Fammi sapere
studiost...@libero.it


VR
-> GbC
http://www.gbcweb.com

 VR
troppo lontano da Lecce
sergio
