nella mia azienda, la maggior parte del software è garantita da un paio di diversi sistemi di licenza antiquati. Ad esempio, dopo l'installazione, l'utente deve avviare un altro programma che indichi il suo ID macchina calcolato. Ha bisogno di inviarci questo id, che è incorporato in un file, crittografato e spedito con un'altra configurazione, che copia semplicemente il file nella cartella pertinente. Non solo questo genera molto carico di lavoro e un ostacolo per l'utente, la chiave di decrittografia deve essere incorporata nel nostro software e può essere facilmente estratta, consentendo all'utente di eludere questa misura di "sicurezza".
Dopo aver sviluppato la mia prima applicazione per questa azienda, mi piacerebbe sviluppare un prototipo per un sistema di licenze più avanzato con il mio servizio. Sto cercando di eseguire il mio piano generale da parte tua, sono sicuro di aver trascurato alcune cose e mi piacerebbe averle indicate prima di portarlo alla gestione ..
Piano:
- Il client riceve automaticamente una chiave di licenza dopo la registrazione
- Il client inserisce questa chiave di licenza nella mia applicazione
- L'applicazione invia questa chiave con le informazioni sulla macchina e invia una richiesta
GET_LICENSE
al nostro server - Il server controlla se la chiave di licenza è nel nostro sistema e restituisce un messaggio crittografato con pgp al client
- Il client usa la sua chiave pubblica incorporata per controllare il file di licenza e la data del segno (che dovrebbe essere sicuro, (finché è stato firmato dalla nostra parte) ( link ))
- Se non è disponibile alcuna connessione Internet, avviare l'applicazione se il file di licenza è disponibile e la data di firma non è precedente a n giorni
- Aggiorna il file di licenza ogni volta che viene effettuata una connessione a Internet
Ora mi rendo conto che non esiste una sicurezza completa, ma questo dovrebbe darci molta più sicurezza e avvantaggiare i nostri clienti onesti con un'esperienza più constrongvole di prima. Una connessione Internet sarebbe richiesta solo al primo avvio e poi a giorni alterni, ma la nostra applicazione ha già bisogno di una connessione per la maggior parte delle attività. Risparmieremmo le ore di lavoro per la creazione di licenze manuali e la comunicazione con il cliente permettendogli di registrarsi e utilizzare la nostra applicazione, indipendentemente dalle ore di ufficio e dalla disponibilità. Nessuna informazione sulle credenziali potrebbe essere estratta dalla nostra applicazione.
Contro?