Come implementare la licenza? [chiuso]

0

Il seguente è un modo accettabile di fare le licenze del programma?

Un file di licenza contenente le seguenti informazioni:

  • Identificatore magico (per verificare che si tratti di un file di licenza per il programma)
  • ID licenza
  • ID cliente
  • Data di creazione della licenza
  • Data di scadenza della licenza (per verificare se è scaduta)
  • Data ultimo utilizzo (per verificare che l'ora del sistema non sia stata modificata in precedenza)
  • Campi aggiuntivi, ad es. funzioni sbloccate

La licenza è crittografata con una stringa crittografata contenente l'ID della scheda madre del computer, l'id della CPU e l'ID del BIOS.

Il cliente riceve una chiave di licenza, che è una stringa generata casualmente che verrà archiviata su un server.

Un file di licenza viene ottenuto dal server utilizzando la chiave di licenza e l'id del computer crittografato.

All'avvio del programma, controllerà la connessione Internet e controllerà la licenza online. (ad esempio se è stato revocato)

    
posta RaphaelH 06.07.2016 - 20:35
fonte

1 risposta

2

Il tuo schema sembra abbastanza completo.

Tuttavia vedo diversi difetti:

  1. Il fatto di aggiungere l'ultima data di utilizzo nel file di licenza ti obbliga a modificare il file ad ogni esecuzione:

    • Ciò richiede che il file si trovi in un luogo condiviso con accesso R / W per tutti gli utenti. Se su Windows, assicurati che non richieda i privilegi di amministratore.
    • Questo solleva immediatamente la questione dell'uso simultaneo se la posizione condivisa si trova su un file server. Prevedi una licenza per un certo numero di utenti?
    • Infine, questo meccanismo comporta il rischio di danneggiare il file in caso di interruzione improvvisa, che a sua volta aumenterà i reclami all'organizzazione helpdesk
  2. Immagino che per tutte queste date, prendi in considerazione il tempo GMT per non avere problemi con i cambiamenti del fuso orario e passare all'ora legale (che potrebbe creare un falso positivo per l'alterazione temporale)

  3. Come gestirai i clienti che hanno acquistato una licenza, ma riparano il loro PC o cambiano attrezzatura?

  4. Come Robert ha detto nei commenti, è facile eseguire l'eseguibile in modalità di debug, trovare il luogo in cui avviene questo controllo e monitorare cosa succede (sia per fare un salto, o per accedere a chiavi crittografate / crittografate in memoria Ti consiglio caldamente di aggiungere un po 'di tempismo nel tuo codice di avvio, che controlla l'intervallo di tempo richiesto per arrivare alla tua routine di controllo, e se è troppo lungo (modalità debug) esegui qualcosa di diverso dal normale controllo (distrazione) e termina con un messaggio di errore non chiaro.

risposta data 06.07.2016 - 21:08
fonte

Leggi altre domande sui tag