Il modo migliore per controllare chi può eseguire la mia applicazione? [chiuso]

-2

Sto pensando di creare un'applicazione e non voglio che tutti la usino (solo le persone permesse). Quello che stavo per fare è ottenere l'indirizzo MAC dell'utente e aggiungerlo al nostro database "allowed_users" in modo che possa usare l'applicazione senza problemi.

Ho visto poche applicazioni su Internet che consentono agli utenti di modificare il loro indirizzo MAC che rendono la mia applicazione vulnerabile e può essere utilizzata dalle persone semplicemente cambiando i loro indirizzi. Anche l'indirizzo IP non è la soluzione, quindi cosa dovrei fare esattamente? Mi piacerebbe vedere qual è il modo più sicuro. So che tutto può essere reverse engineering, ma lo voglio abbastanza sicuro.

    
posta Da black ninja 31.05.2016 - 18:43
fonte

1 risposta

1

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.

    
risposta data 31.05.2016 - 19:46
fonte

Leggi altre domande sui tag