2009-03-12 15 views
8

Stiamo cercando di offrire un meccanismo di licenza per ogni caratteristica la nostra applicazione Linux è in esecuzione, e stiamo pensando di controllare in modo centralizzato utilizzando un server di licenza C++:caratteristiche Gestione su base licenza per un'applicazione

Il nostro obiettivo per le licenze è:

  1. Nega le funzioni che l'operatore non ha acquistato.
  2. Test di offerta (caratteristiche che scadono se non vengono acquistate).
  3. Attiva le funzionalità per periodi di tempo e le rende disponibili solo per un certo periodo di tempo.

C'è qualche licenza server che ci consente di fare questo (in pratica, useremmo i socket per comunicare con la nostra applicazione)? Che altro possiamo fare (ad esempio, utilizzare software open source, leggere, ecc.) Per iniziare?

+1

Perché qualcuno dovrebbe contrassegnare questa domanda? È una domanda perfettamente valida che richiede una soluzione di programmazione. Non segnarlo solo perché non si è d'accordo con la licenza di un software –

+1

Buona domanda. Sarei divertito a conoscere qualsiasi strumento DRM Open Source :) – rkb

risposta

0

Dopo aver utilizzato vari pacchetti che fanno uso di server di licenze come questo, posso dirvi che è un modo sicuro per rendere il vostro software universalmente odiato dai suoi utenti.

+0

Ciao Neil, puoi dare qualche esempio di tali pacchetti? –

1

Questo è un tale modo di fare le cose Dilbert-esque. Dì semplicemente di no.

Anche se odiato, questa è una caratteristica standard nel software specializzato di fascia alta che costa decine di migliaia di dollari. Pensa agli scanner 3D e al materiale CNC.

4

Se si desidera veramente utilizzare un server di licenza, assicurarsi che l'applicazione non debba contattarlo in ogni momento per autorizzarne l'uso - questo porterà alla fine dei problemi quando le persone perdono la connessione Internet o il server va giù o si blocca.

Suggerirei di avere qualcosa in cui una chiave viene scaricata e memorizzata localmente, riducendo così i viaggi di andata e ritorno verso il server tutto il tempo. La chiave può essere crittografata in base ai dettagli della macchina dell'utente, in modo che le chiavi non possano essere condivise.

Abbiamo utilizzato la chiave hardware HASP in passato e mentre funzionano e forniscono una soluzione defnitely, non penso che siano ciò che si desidera in quanto sono programmati una volta e basta. Ad esempio, non è possibile aggiornare la chiave HASP per chiudere un periodo di prova.

+0

È possibile programmare una chiave HASP per morire dopo un periodo di prova di 30 giorni. Questo è comunemente fatto per il software che è concesso in licenza per qualsiasi periodo di tempo. Ho fatto questo con un numero di chiavi hardware diverse tra cui la gamma di chiavi HASP. Tuttavia, l'uso di una chiave HASP per un periodo di prova è un metodo costoso. Inoltre, qualsiasi informazione memorizzata su una chiave hardware può essere facilmente modificata sul campo utilizzando un programma software. Si tratta solo di ricompilare le routine che controllano la chiave e il riconfezionamento in un nuovo programma di aggiornamento. – jay

2

Ci sono volte in cui il software ha bisogno di protezione - dai un'occhiata a questi ragazzi here - forniscono soluzioni hardware e software.

4

Hai davvero bisogno di "telefonare a casa"?

Ho visto un sistema di licenza relativamente indolore, tramite il quale all'utente è stato fornito un file XML che descriveva il periodo di validità della licenza, un indirizzo IP opzionale e l'elenco di funzioni "sbloccate". Una firma digitale è stata generata utilizzando la chiave privata del venditore, che è stata reinserita nel file di licenza. All'avvio, l'applicazione stava leggendo la licenza, confermandola, controllando l'IP e sbloccando le funzionalità di conseguenza.

Il fornitore può fornire nuove licenze al client quando necessario.

Sebbene si possa teoricamente ingannare la licenza modificando l'ora locale della macchina e correggendo l'indirizzo IP, in tal caso ciò avrebbe reso l'applicazione piuttosto ingombrante da utilizzare, quindi questo non era un problema.

0

Un software di licenza comune è flexlm. Comunque ci penserei due volte se imporre queste restrizioni ai miei utenti. A molti utenti non piacciono; specialmente dall'ambiente FOSS/Linux.

0

Se si pianifica di codificare qualcosa da soli, un meccanismo comune che ho visto è quello di legare la licenza a MAC address.

1

FLEXnet (precedentemente noto come FLEXlm) è un pacchetto di licenze che viene comunemente utilizzato da pacchetti software specializzati o di fascia alta, ad esempio nel mercato dell'automazione della progettazione elettronica. È possibile bloccare una licenza su un singolo computer (tramite hostid, di solito un indirizzo MAC Ethernet) o su un dongle hardware portatile, oppure disporre di una maniglia server in rete che condivide un pool limitato di licenze simultanee per i client che eseguono il software. Le licenze possono essere concesse per un periodo limitato o in modo permanente e possono anche essere limitate da un numero di versione. Un file di licenza descrive le funzionalità concesse in licenza.

FLEXnet include diverse API per l'integrazione con l'applicazione, inclusa una per C++. Immagino che usi una crittografia a chiave pubblica di qualche tipo. In genere, un'applicazione che utilizza FLEXnet viene chiamata "home page" solo quando viene richiesta tramite l'utilizzo dell'API. Molte applicazioni controllano la licenza una volta, all'avvio o riservano una licenza dal pool per la durata del runtime dell'applicazione.

Paghi un canone annuale, ovviamente, per utilizzare FLEXnet nei tuoi prodotti, a partire da 1k USD. La commissione varia in base alle entrate della vostra azienda e al numero di piattaforme (combinazione OS/CPU) su cui il vostro sistema di licenze può essere eseguito.

Direi che non vale la pena utilizzare qualcosa come FLEXnet se il tuo prodotto vende per meno di diverse migliaia di dollari per posto. È oneroso da usare (la fonte di una buona percentuale di richieste di supporto per la nostra azienda), ma i clienti aziendali potrebbero già averne familiarità con l'utilizzo, a seconda del mercato.

FLEXnet, come ogni schema DRM di cui ho sentito parlare, è facilmente incrinato. Almeno suppongo lo sia, dal momento che le versioni sbloccate dei nostri prodotti sono regolarmente presenti sui siti warez.

Problemi correlati