Impedisce che il codice prodotto venga utilizzato su più macchine virtuali

1

Ho un prodotto software. probabilmente funzionerà su macchine virtuali che non hanno alcuna connessione di rete.

Voglio che l'utente paghi per ogni VM eseguito dall'utente.

Ho pensato di chiedere all'utente un qualche tipo di ID hardware e fornirgli un seriale che è unico per la sua macchina.

Ma l'utente può semplicemente copiare l'immagine della VM e avere due macchine in funzione?

Quindi pensavo di avere un dongle di sicurezza. Ma come posso evitare che l'utente esegua due VM sulla stessa macchina entrambe connesse allo stesso dongle?

Questa dovrebbe essere solo la difesa di base in modo che sia richiesto l'effettivo hacking per violare la licenza e non solo girare un'altra VM.

    
posta Nahum 19.08.2014 - 13:25
fonte

2 risposte

3

Un dongle di sicurezza può facilmente fare ciò che vuoi, poiché questo è un requisito comune. Il dongle emette una sequenza di valori secondo uno schema predeterminato. Due copie del software in esecuzione consecutivamente vedranno due sequenze, ciascuna valida. Due copie in esecuzione contemporaneamente visualizzeranno interruzioni di sequenza, in cui gli accessi di una copia interrompono la sequenza per l'altra. Parla con il tuo fornitore di dongle per i dettagli. Questo è quello che fanno pagare i soldi.

Pensando un po 'lateralmente, non devi risolvere questo problema finchè il tuo software scade. Assicurati che possa funzionare solo per alcune settimane o mesi e che debba essere riattivato e / o aggiornato a intervalli. Dovrebbe essere facile garantire che sia possibile aggiornare una sola copia per chiave di licenza e che l'utente debba quindi ridefinire tutte le VM. Man mano che apprendi di più sul fatto che tu abbia effettivamente un problema e su quale sia la sua forma, puoi aggiornare il software per prendere contromisure sempre più aggressive.

Potrebbe non essere mai necessario. I clienti che arrivano a dipendere dal tuo software ma non stanno ancora pagando abbastanza sono solo prospettive di vendita future.

    
risposta data 20.08.2014 - 05:09
fonte
1

Il dongle di sicurezza è una buona idea.

Il tuo software può eseguire strette di mano ogni minuto (o secondo) con il dispositivo. Se il dispositivo non risponde, il programma termina.

Il dongle, d'altra parte, mantiene un contatore interno e emette hash univoci ogni volta che viene effettuata una richiesta di sessione e dispone di un timer interno che mantiene attive le sessioni. Ogni volta che viene effettuata una richiesta di continuazione, il dongle tiene traccia se l'hash restituito corrisponde all'hash previsto e, in caso contrario, la richiesta di continuazione viene negata e il programma viene forzato a terminare.

Ora la risposta alla richiesta di continuazione potrebbe essere sotto forma di un hash mutante anche per rendere l'emulazione un po 'più difficile.

    
risposta data 19.08.2014 - 18:42
fonte

Leggi altre domande sui tag