Newsgroup: it.comp.programmare.win32
Titolo: protezione usb

Ho bisogno di una mano per la protezione di un mio programma che gira su una
memoria usb,vorrei fare in modo che l'utente finale veda una parte del disco
mentre a mio piacimento ,all'interno del mio programma,posso accedervi a
tutto.
grazie
Nicola

, 
nm...@ssst.it
 says...

Chiedi a Sony-BMG... ;)
http://www.sysinternals.com/blog/2005/10/sony-rootkits-and-digital-rights.html
-- 
Luc

 ha scritto nel messaggio
news:MPG.1de3b5a9f...@tornado.fastwebnet.it...


 wrote in
news:bzgef.1018$
EV3...@tornado.fastwebnet.it
: 

Ci sono dei disk-on-key (sicuramente m-systems, forse anche di altri 
produttori) che consentono di crittografare una parte del filesystem e 
accedervi solo dopo aver inserito una password.
Non so se forniscano anche delle API. Se il programma è mono-utente (o 
comunque può essere protetto con una password comune tra gli 
utilizzatori della stessa chiavetta), il problema dovrebbe essere 
risolto.
Se lo distribuisci devi scrivere la password da qualche parte e il 
tutto torna a essere vulnerabile.
-- 
Valter Minute
(the reply address of this message is invalid)
(l'indirizzo di reply di questo messaggio non è valido)

 tutto torna a essere vulnerabile.
Tutte le protezioni sono vulnerabili. Alcune più facilmente, altre meno. 
-- 
Luc

 wrote in
news:MPG.1de3c574c...@tornado.fastwebnet.it
: 

Giusta precisazione. Era più giusto dire "diventa più vulnerabile".
E su come la penso riguardo alle protezioni software ci sono parecchi 
post, anche su questo newsgroup.
Crittografare l'eseguibile o associarlo in qualche modo alla memoria 
USB (con un numero di serie o un dato crittografato) sono sistemi che 
non possono reggere un tentativo di crack determinato e rischiano di 
creare più casini agli utenti legali (perchè il driver usato per 
leggere i dati non si installa correttamente, perchè non hanno porte 
USB libere, perchè hanno un dispositivo USB che rallenta gli altri e 
rende la memoria lentissima etc.) che problemi a un eventuale 
"pirata".
Partivo dal presupposto che il nostro amico volesse proteggere dei 
dati associati al programma, non tanto il programma stesso.
Nel primo caso (password nella testa dell'utente), per violare la 
protezione è necessario catturare in qualche modo (keylogger, dump 
della memoria) la password digitata dall'utente oppure farsela dire 
(social engineering, è più frequente e facile di quanto si pensi) o 
trovare il post-it dove l'ha scritta :)
Nel secondo caso (password nel programma) si può usare un debugger e, 
se non c'è una password diversa e assolutamente casuale per ogni 
installazione, si può lavorare su una copia del programma per poi 
leggere i dati "segreti" di tutte. 
Anche se la password fosse diversa per ogni installazione, con un 
debugger si potrebbe trovare dove e come è salvata e quindi 
sproteggere poi i dati a colpo sicuro con un solo accesso al PC 
dell'utente, mentre nel caso dei keylogger etc. bisogna accedere 
(fisicamente o sfruttando qualche buco di sicurezza) almeno due 
volte. Una per piazzare il logger e una per leggere i dati catturati 
e, una volta sprotetti, quelli "nascosti" dal programma.
Visto che parliamo di memorie flash è probabile che il driver sia 
ottimizzato per ridurre al minimo il numero di cancellazioni e 
riscritture e allungare così la vita della memoria. Se così fosse, 
bisogna verificare che anche la cache in scrittura sia crittografata 
e che sia possibile bypassare la cache il lettura.
La sicurezza di un sistema è data dal costo (in termini di risorse, 
tempo e rischi che si corrono) necessario per violarla e aggiungere 
livelli di sicurezza fa si che violare il sistema non sia 
economicamente conveniente.


la mia idea era quella di far girare il mio programma direttamente dalla
memory stick e in qualche modo
creare una zona visibile solo dallo stesso dove aggiungere o togliere dati
che ottimizzano l'esecuzione.La mia è una piccola applicazione, non credo
che ci possa essere un grosso interesse a forzare in un modo cosi
specialistico la protezione del software
per  me sarebbe sufficiente che l'utente medio abbia delle grosse difficoltà
ad effettuare una copia dei miei programmi senza pagare il dazio.
ciao Nicola
"Valter Minute" <vmi...@GoogleMAILservice.com> ha scritto nel messaggio
news:Xns970F739867D...@130.225.247.90...


 il dazio. 
Potrebbe fare una copia settore per settore della memoria USB su una 
identica e, anche collegando la singola installazione a un numero di 
serie "fisico" del device USB (non so se tutte le chiavette l'hanno), 
non è difficile fare in modo che il numero di serie della chiavetta 
sia sempre lo stesso.
Se è un'applicazione "piccola" nel senso del prezzo, allora fornire 
un minimo di assistenza (solo via e-mail agli utenti registrati) e 
aggiornamenti puntuali e gratuiti potrebbe funzionare meglio di tante 
protezioni. E se l'applicazione costa poco il costo della memoria USB 
potrebbe incidere pesantemente.
Se è piccola per funzionalità e ha un costo alto (magari perchè è 
rivolta a un mercato specialistico) basta un utente con un cugino 
smanettone per far saltare la protezione e magari ridistribuire 
l'applicazione tra diverse persone che operano in quel settore (e 
quindi tuoi potenziali clienti). In quel caso una registrazione del 
numero di serie potrebbe bastare (magari abilitando alcune funzioni 
solo a registrazione avvenuta). Anche quella protezione è superabile 
(passando il numero di serie), ma il rischio che un eventuale copia 
pirata possa essere associata a un altro utente potrebbe bastare per 
dissuadere un eventuale "copiatore".
Capisco l'esigenza di tutelare i tuoi interessi e i tuoi guadagni, ma 
molti meccanismi di protezione (per quella che è la mia esperienza) 
creano più fastidi agli utenti onesti che ai cracker.
P.S. quando rispondi riporta solo le parti del messaggio originale 
necessarie a caoure la tua risposta e mettile _sopra_ ai tuoi 
commenti, altrimenti sembra di leggere le scritte dell'autostrada.


ti ringrazio per le tue precise osservazioni
ciao nicola