Che cos'è la protezione del software?
La protezione del software si riferisce a misure che possono essere prese da uno sviluppatore software per impedire l'uso non autorizzato del software, implementando accordi di licenza e l'uso di tecniche contro il debugging e il reverse-engineering per proteggere la proprietà intellettuale dal furto.
Secondo il BSA almeno il 37% del software in uso nel mondo è oggetto di pirateria. Questa cifra è superiore in modo significativo in Asia, America Latina e nei Paesi BRIC. Questo rappresenta una perdita enorme nei profitti per gli sviluppatori di software.
La pirateria del software può assumere molte forme. Software senza licenza possono facilmente essere distribuiti gratuitamente online o attraverso reti peer-to-peer. A volte copie illegali sono realizzate in modo da essere praticamente uguali al prodotto originale e vendute a un determinato costo. Tuttavia la pirateria può verificarsi spesso quando i clienti vanno oltre i termini dell'accordo di licenza installando copie extra o consentendo a molti utenti di usare una singola licenza in una rete.
Prevenzione della pirateria del software
La pirateria viene impedita usando una miscela di codifica forte e tecniche che impediscono debugging, analisi, manomissioni, vendita a basso prezzo e decompilazione del software degli sviluppatori. La strategia centrale della protezione da copia si ottiene collegando in modo forte il software protetto a un token di sicurezza. Questo può essere un dispositivo hardware, come una chiave di sicurezza USB o una chiave o un blocco basati su software, che esiste sul computer. Se il token di sicurezza non è presente o è compromesso, allora il software non funziona.
Di solito la codifica asimmetrica, come RSA, è usata perché il software protetto possa comunicare in modo sicuro con il token di sicurezza. La chiave pubblica è memorizzata nell'applicazione protetta e la chiave privata è memorizzata nel token di sicurezza. I token sono concepiti con un livello molto alto di sicurezza che può impedire l'estrazione e la modifica del contenuto del token e la clonazione del token stesso.
A volte gli sviluppatori cercano di implementare i loro sistemi di protezione da copia primitivi sulla base di alcuni elementi unici del computer. Tuttavia la maggior parte, se non tutti, scopre che questo genera una enorme quantità di supporto e che scrivere tali sistemi in modo affidabile e con sufficiente flessibilità per l'uso generale è molto difficile. Per non parlare della prevenzione di debugging e reverse-engineering del software, che sono argomenti avanzati che è meglio lasciare agli esperti. Microcosm da oltre 30 anni sta perfezionando i suoi sistemi di protezione da copia e offre due soluzioni: Dinkey Pro, una soluzione hardware basata su chiave e CopyMinder, un sistema di protezione puramente basato su software.
Soluzioni di protezione del software di Microcosm
Entrambe le nostre soluzioni di protezione del software supportano due metodi per integrare la protezione:
Il metodo Shell aggiunge automaticamente una protezione (una custodia protettiva) all'applicazione, forzandola a confermare l'esistenza e lo stato del token di sicurezza prima che l'applicazione possa essere eseguita. Il metodo Shell codifica anche il codice e i dati del software per impedire il reverse-engineering. Con questo metodo di protezione è possibile applicare la protezione al software senza modificare il codice sorgente.
L'altro approccio è richiamare la nostra API di protezione. Questo dà all'utente la flessibilità necessaria a innescare una verifica di protezione e capire quali azioni intraprendere in base alla presenza del token o ai valori dei parametri memorizzati in modo sicuro all'interno del token. Ad esempio è possibile scegliere di terminare il programma o di eseguirlo in modalità demo se non si trova il token. Oppure è possibile decidere quali funzioni del programma sono abilitate a seconda dei dati memorizzati all'interno del token.
Tutti i dettagli della licenza all'interno del token possono essere aggiornati in modo sicuro e in remoto. Ad esempio è possibile usare questa funzione per prolungare una data di scadenza o modificare le funzioni del software che un cliente può usare.
Si possono usare le soluzioni di protezione del software per implementare tutti i tipi di modelli di licenza, tra cui:
- Acquisto unico
- Abbonamento/noleggio
- Trial/demo sicuri
- Licenza basata su rete (incluso il controllo del numero di utenti su una rete che usano il software contemporaneamente)
- Per computer/per chiave
- Basata sulle funzioni
- Pay-per-use: controllo del numero di esecuzioni del software o di un comando all'interno del software