Branding / restrizione di un software per licenza / seriale

2

Ho creato un sistema POS per un mio cliente utilizzando l'approccio MS-Server-Client.

Mi ha chiesto di marcare il suo software per consentire solo un certo "numero" di utenti (cassieri) ad accedere al Sistema POS, e deve essere determinato alla licenza che il suo cliente acquisterà.

EX: 10 User License = 10 Cashiers (non necessariamente 10 utenti, può essere 30 utenti, shifting) = significa che saranno installati 10 PC con il software client che ho creato.

Come e dove inserisco la logica che determinerà se è licenziata o meno.

Cosa ho fatto:

Ho creato un generatore di chiavi seriale usando Nome. Il problema è che può essere duplicato una volta che dai il nome + la combinazione seriale, funzionerebbe comunque.

Sto contando il numero di utenti registrati alla volta. Questo potrebbe essere problematico in quanto utilizzo MSAccess e non MSSQL. Ho demolito questa idea,

Mi ha anche chiesto se potevo inserire la combinazione di indirizzo seriale + mac. Che potrei fare ma avrà difficoltà a implementarlo e a venderlo se ha bisogno dell'indirizzo mac di ogni computer da installare con il mio POS.

Sono perso su cosa posso fare. Vorrei chiedere suggerimenti e suggerimenti.

Grazie.

    
posta Sid 23.11.2012 - 03:51
fonte

3 risposte

2

L'attività che si sta tentando di eseguire si chiama "gestione delle licenze" e lo strumento che si sta cercando è un programma "gestore delle licenze".

Puoi trovare alcuni programmi di gestione delle licenze diversi, ma, ancora meglio, puoi anche scrivere i tuoi con uno sforzo relativamente piccolo.

La maggior parte dei gestori di licenze sono solo servizi web (al giorno d'oggi sono quasi sempre RESTful webservices, come quello che puoi creare con Sinatra , ad esempio) che esegue questi passaggi di base:

  1. Accetta una richiesta per una chiave di autorizzazione da un programma client (che risiede sulla stessa LAN o su Internet).
  2. Consegna al client una chiave di autorizzazione (prelevata da un pool di chiavi), se è disponibile una chiave nel pool.
  3. Recupera la chiave (questa è una metafora. In realtà, il server delle licenze reimposta la chiave dopo un periodo predefinito).

Il programma client, da parte sua, richiede la chiave quando viene avviata e la restituisce (la cancella) quando si ferma.

Ovviamente:

  1. Devi essere in grado di fidarti sia del server delle licenze che del programma client. Il server viene eseguito su un server che controlli, quindi è facile fidarsi di esso. Il programma client deve essere compilato (fonte chiusa) per impedire a qualsiasi "hacker" di creare una nuova copia del programma che non cancelli mai le sue chiavi.
  2. Client e server devono essere in grado di comunicare attraverso una LAN o su Internet.

Il server deve essere sotto il tuo controllo o deve essere collegato alla macchina di hosting in qualche modo (di solito usando una chiave hardware).

Spero che questo aiuti.

    
risposta data 23.11.2012 - 13:48
fonte
1

L'accoppiamento delle licenze agli indirizzi MAC non è perfetto (dal momento che il software può essere eseguito su una macchina virtuale o utilizzare un altro tipo di spoofing MAC), ma non è necessariamente indebitamente oneroso. Hai solo bisogno di creare un'utilità che lui (o un rivenditore) può eseguire sulle macchine di destinazione che raccolgono gli indirizzi MAC e crea un file di licenza firmato digitalmente.

Potresti anche prendere in considerazione l'utilizzo di un dongle hardware.

    
risposta data 23.11.2012 - 04:14
fonte
1

Qualunque schema di licenza ti venga in mente, qualsiasi utente ragionevolmente intelligente potrebbe aggirare.

Perché non si codifica il limite degli utenti nel software e si generano versioni separate per le licenze utente 10,20,30.

    
risposta data 23.11.2012 - 06:12
fonte

Leggi altre domande sui tag