Hai diverse scelte.
Puoi certamente fare ciò che stai pianificando e legare la licenza a un indirizzo MAC. Non ci vuole abilità super hacker per riassegnare un indirizzo MAC, o per assegnare lo stesso indirizzo MAC a un adattatore virtuale, ma è scomodo farlo. Inoltre interromperà il loro networking se quegli adattatori si trovano tutti sulla stessa LAN. Questo approccio farà sì che gli utenti si adattino quando cambiano computer e il software si rompe.
Esiste una chiave di sicurezza in cui viene venduto un dongle USB al cliente. Questi costano un sacco di soldi ciascuno e possono essere sconfitti da un hacker, che può quindi vendere copie. Sono scomodi per gli utenti con licenza.
Esistono prodotti per le licenze di sicurezza, in cui si vende al cliente un key server con licenza e chiave. Come utente finale, questi sono estremamente difficili e costosi da installare ed eseguire; anche se meno fastidioso dei dongle hardware. Ancora una volta, molto costoso per licenza; di nuovo, non molto sicuro contro gli hacker.
Puoi costruire una parte critica della tua applicazione come "servizio" e vendere "chiavi API" ai tuoi utenti. Solo una chiave valida consentirà loro di utilizzare il tuo servizio. Avete altre opzioni per quotarlo a consumo o in abbonamento. Ma non funzionerà per i tuoi clienti quando sono offline al tuo servizio. E ti costa denaro in corso per ospitare un servce.
Puoi utilizzare un servizio di distribuzione di terze parti, come Steam, e sfruttare i loro servizi per installare ed eseguire la tua app. Ma è orientato verso i giocatori e non è stato accettato dagli ambienti aziendali. E ti costerà anche una notevole quantità di denaro.
È possibile filigranare il software, in modo che ogni copia sia identificata in modo univoco per ciascun cliente. Se scopri copie condivise in natura, puoi identificare chi era la fonte della perdita e denunciarle. La distribuzione diventa un po 'complicata, ma nel complesso è abbastanza economica.
È possibile aggiornare continuamente il software, distribuendo nuove funzionalità e risolti solo per i clienti paganti. Ciò fornisce incentivi per i clienti a non utilizzare copie pirata o ad eseguire l'aggiornamento a una versione con licenza se desiderano veramente le nuove funzionalità.
E puoi comunicare con i tuoi acquirenti. È possibile forzare il "clic per concordare" con EULA densi e difficili da leggere che li minacciano con azioni legali se consentono copie. Oppure puoi chiedere gentilmente di supportarti come sviluppatore di software indipendente e non condividere copie.
La cosa principale è che probabilmente sei preoccupato per nulla. La maggior parte dei software fallisce commercialmente perché non ha abbastanza utenti, non perché i pirati lo stanno copiando. Dovresti concentrarti innanzitutto sulla distribuzione senza preoccuparti di copiare. Se ha successo, e la copia sta mangiando i profitti, quindi preoccupati per i pirati.
Indipendentemente dall'approccio, devi accettare il rischio che il tuo software possa essere piratato. Questo è vero sin dagli albori dell '"informazione come valore", e da allora nulla è cambiato.