Come implementare “l’autodistruzione” di un software shareware?

Aggiornato il: 21-02-2021 10:53
In questo articolo affronteremo una delle curiosità  più interessanti mai dibattute nella storia dell’informatica, e che riguardano la possibilità  per un programmatore di creare software “a scadenza”.

Come creare un software da usare gratis entro un certo periodo?

Lo scenario è il seguente: un utente crea un software che vorrebbe mettere online in “periodo di prova”, cioè seguendo essenzialmente la definizione dei programmi shareware diffusi negli ultimi anni. Come fare ad implementare una caratteristica del genere?

Problemi nel creare software “a scadenza”

Secondo alcuni, di fatto, si tratta di un qualcosa di impossibile, su cui molte case produttrici hanno speso anni senza riuscire a trovare una soluzione realmente robusta: di sicuro una soluzione autocontenuta, ovvero un’installazione in locale, non è adatta al caso. Il software potrà  sempre essere reinstallato, emulato su una Virtual Machine, resettato ed utilizzato in questo modo teoricamente all’infinito. Diventa allora necessario ricorrere all’autenticazione su un server remoto: in prima istanza ciò corrisponde a fare un check di credenziali di accesso sul server della casa produttrice, ad esempio. Se lo stesso fosse ad esempio irraggiungibile o in downtime, tuttavia, si porrebbe un serio problema di discontinuità  nell’uso da parte degli utenti che l’hanno acquistato, senza contare che legare l’utilizzo ad una connessione ad internet può risultare fastidioso, oltre che dallo scarso appeal commerciale, per moltissimi utenti.

Il problema dei crack, dei keygen e dei malware

Del resto, rimane comunque il problema dei crack: qualsiasi funzione che controlli se l’utente è autorizzato ad usare il software si riconduce, in prima approssimazione, alla restituzione di un valore 0/1 oppure true/false. Chiunque, presto o tardi, potrebbe riuscire a manipolare il valore restituito da questa funzione di autenticazione ed aggirare cosଠil controllo, permettendo a chiunque di usare il software senza pagarlo.

In linea di massima, comunque, per garantire l’autenticità  di un software commerciale si ricorre al confronto delle date, memorizzate in forma preferibilmente criptata all’interno del registro del sistema operativo. Si cerca anche di fronteggiare il fatto che l’utente potrebbe retrodatare il sistema al fine di utilizzare la versione pirata del software, mentre si cerca sempre di memorizzare la data attuale, quella di prima esecuzione del software e quella di scadenza cercando di verificare che la prima sia compresa tra le altre due. Tecniche molto utilizzate sui programmi proprietari di Microsoft ed Adobe, ma che in qualche modo si riescono – l’informatica insegna – quasi sempre ad aggirare con diversi gradi di difficoltà . Un’ulteriore opzione di autenticazione, inoltre, richiede la presenza di chiavi fisiche (USB) da associare al programma creato: in questo modo l’utente sarà  vincolato dal possedere una chiave per utilizzare quel software, per quanto poi – anche qui – sia possibile emulare il comportamento di qualsiasi chiave di crittografia mediante un software artigianale (crack, generatore di seriali e cosଠvia).

In breve: non c’è una soluzione sicura al 100%

La soluzione definitiva a questo problema, quindi, sembra non esistere: possono essere architettati al più sistemi per rallentare il processo, ma non – soprattutto – per costringere seriamente un utente a spendere soldi che non spenderebbe comunque. (articolo tratto molto liberamente da arstechnica)

Photo by DLR_de



Questo blog pubblica contenuti ed offre servizi free da 11 anni. – Leggi un altro articolo a caso – Per informazioni contattaci
Non ha ancora votato nessuno.

Ti sembra utile o interessante? Vota e fammelo sapere.

Come implementare “l’autodistruzione” di un software shareware?
5665401600 7b81ccf684 countdown1
Torna su