2011-02-08 10 views
13

Sto lavorando a un piccolo prodotto multipiattaforma per Windows e Mac scritto in C++/Obj-C. Mi è stato chiesto di implementare un modulo di licenza per lo stesso. Questo compito è parte di un progetto molto ambizioso per introdurre la licenza per tutti i nostri prodotti. Alla fine avremo un programma di licenze completo in cui saremo in grado di vendere licenze ai nostri clienti che supportano rinnovi annuali, livelli di licenza, ecc. Il mio problema è che non conosco la prima cosa sull'implementazione dei correttori di licenze. Qualcuno può indicarmi qualche how-to per lo stesso? Ci sono dei moduli di licenza open source su cui posso studiare?Libreria di controllo delle licenze di implementazione

risposta

16

Uso un sistema di verifica parziale delle chiavi (PKV) e l'ho implementato in C# con un generatore PHP. Google presenterà vari successi, spiegazioni e implementazioni; ma Brandon Staggs ha scritto una buona panoramica (anche se in Delphi!), qui:

http://www.brandonstaggs.com/2007/07/26/implementing-a-partial-serial-number-verification-system-in-delphi/

PKV funziona codificando determinate informazioni (tipo di licenza, numero di serie, la data, ecc) nella chiave insieme a un hash del nome utente e degli hash delle informazioni codificate. Gran parte della chiave consiste in realtà di più hash char. L'idea è di controllare solo un sottoinsieme di questi hash. Il sottoinsieme esatto emesso può essere modificato nel tempo per una certa sicurezza e per proteggersi da determinati tipi di reverse engineering.

Vorrei anche crittografare la chiave per aiutare a nascondere ciò che ogni carattere nella licenza significa. Altrimenti qualcuno con più chiavi potrebbe determinare che determinate posizioni dei caratteri significano certe cose ("oh, i caratteri 3-4 sono il numero di serie"). Potrebbe essere una crepa nella tua armatura!

Qualsiasi sistema di licenza che si sta sviluppando sarà imperfetto. Sarà crackabile, e se i tuoi prodotti sono popolari, sarà rotto. Tuttavia c'è una forte argomentazione che esiste un sistema di licenze per mantenere onesti le persone oneste e produrre abbastanza ostacoli per le persone un po 'disoneste - ma non così tanti ostacoli che diventa un inconveniente (ad esempio, sono generalmente contrario al blocco hardware). Quelli che hanno hackerato il tuo sistema probabilmente non lo avrebbero comunque pagato.

+2

+1 per l'ultimo paragrafo, non sarà mai perfetto, ma se è abbastanza difficile andrà tutto bene. –

+0

Amo la tua spiegazione e specialmente l'ultimo paragrafo. Riassume tutto! –

Problemi correlati