Newsgroup: it.comp.dotnet
Titolo: Protezione del codice: offuscamento, attivazione, firma degli assembly, etc.

Ciao a tutti
mi servirebbe un'opinione sulle best practices per proteggere la
proprietà intellettuale del codice.
 
La mia situazione è un po' estrema in quanto dovremo installare un
nostro applicativo (ovviamente .net) su un server "partner" al quale
però non avremo accesso.
Manutenzione, gestione e tutto il resto verranno eseguite dal
"partner".
Uso partner tra virgolette non a caso: purtroppo è uno di quei partner
dai quali si deve stare bene in guardia.
In pratica il codice deve andare dritto nella tana del leone.
 
Abbiamo già provveduto a gestire offuscamento e chiave di attivazione.
Sull'offuscamento vi chiedo solamente se secondo voi "basta" qualcosa
di free tipo Dotfuscator Community Edition o se è (quasi)obbligatorio
usare le versioni a pagamento, e in tal caso quale sia la migliore.
 
Sulla chiave di attivazione non ho particolari richieste ma qualsiasi
suggerimento è ben accetto.
 
Pensavo inoltre di aggiungere la firma di tutti gli assembly in modo
da non permetterne l'utilizzo da parte di programmi esterni.
 
Ci sono altri accorgimenti da prendere in considerazione?
 
Grazie mille,
Simone

 da non permetterne l'utilizzo da parte di programmi esterni.
 
non serve a quello e quindi non funzionerebbe.
 
.m
 
-- 
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCTS
http://mvp.support.microsoft.com/profile/mauro
 
blog @ 
http://milestone.topics.it
 
whynot [ at ] topics [ dot ] it
 
 

 whynot [ at ] topics [ dot ] it
 
grazie Mauro per la dritta su Goliath!
 
firmare assembly: utilizzo != modifica.
firmando un assembly, tra le altre cose, si nega la possibilità di
modificare l'assembly ma non di utilizzarlo, corretto?
se capisco bene non esiste un modo per negare l'utilizzo di terzi ma
solo tecniche che rendono più difficile riuscirci
 
cosa ne pensi di Goliath + ILMerge?
magari modificando tutti i public in internal, può essere un giusto
compromesso?
 

 .m
 
ciao,
Marcello Cantelmo
www.cantelmosoftware.com
 

 cosa ne pensi di Goliath + ILMerge?
 
Goliath .NET Obfuscator dispone all'interno di un parametro di
protezione /merge che serve proprio per fondere due o più assembly
 
la tecnica utilizzata non usa ilmerge per possibili problemi di
utilizzo/licenza (di prodotti Microsoft)
 
se mi posso permettere: consiglio di *non* utilizzare questa
tecnica!!! l'aggressore in questo modo si ritrova a dover analizzare
un solo assembly! ;-)
 
usa tranquillamente un main assembly e le eventuali dll referenziate.
addirittura in goliath puoi usare: exe+dll (referenziate)+altro exe
che referenzia le stesse dll :-ooo e processare tutto in un'unica
passata
 
chi cerca di spacchettare il tuo codice DEVE, necessariamente,
lavorare in contemporanea come Goliath .NET Obfuscator
 
grazie per l'attenzione
Marcello Cantelmo
www.cantelmosoftware.com
 
 


Ottime info, grazie.
Mi guarderò la documentazione di Goliath con piacere.
 
Non è stato elencato Babel, anche quello è tra i "craccati"?

 Non è stato elencato Babel, anche quello è tra i "craccati"?
 
...lo stai già usando?
 
il "clone" inizia a fare beneficenza (regalando versioni
free) ...sulle "idee" (tecniche di protezione) degli altri (periodo di
riferimento 2006-2008):
 
http://www.cantelmosoftware.com/download/obfuscator_clone.pdf
 
 
...per poi diventare, successivamente, a pagamento. questo "clone",
attualmente, fa parte degli obfuscator generici.
 
grazie per l'attenzione,
 
Marcello Cantelmo
www.cantelmosoftware.com
 


Si, Babel l'ho usato ma non per il progetto in questione.
Ho usato la versione free 3.5.0, adesso ho visto che è cambiato molto.
 
 

 struttura interna dei file xaml/baml?
 
non credo, dovresti chiedere a Raff, una volta abbiamo parlato del 
parser/compilatore baml ma non ricordo i dettagli.
