Tecniche di applicazione di Easy Licensing per il programma C ++ in Windows

5

Sto sviluppando software in Window 10 e Visual Studio in C ++. Vorrei limitare l'uso del software a un insieme di computer, implementando un controllo della licenza.

Il mio pensiero è di interrogare alcuni parametri chiave dal sistema tipo CPU, numero di serie Harddrive, indirizzo MAC e creare un hash. Quindi prenderei l'hash sul mio computer e cifrarlo usando una chiave privata e poi quando il software è usato rigenera l'hash e lo confronta con il valore decifrato usando una chiave pubblica distribuita con il sistema.

Quale sarebbe un valido (e facile accesso) insieme di valori per identificare univocamente il sistema? Idealmente, mi piacerebbe che fosse abbastanza flessibile da consentire una riformattazione del sistema operativo ma non consentire la copia del codice su un altro sistema senza permesso.

    
posta Steve 01.10.2017 - 00:21
fonte

2 risposte

10

Realisticamente, non ce ne sono. Se si esegue un hash basato sull'hardware dell'utente, quando aggiornano un disco rigido o una CPU o una scheda di rete, o se il cielo non compra un nuovo computer, il software smette di funzionare. Gli utenti si arrabbieranno per quello. Se fossi un'azienda e mi imbatterei in un software come questo, smetterei di acquistare da quello sviluppatore. Se fossi un utente domestico e mi fossi imbattuto in un software come questo, lo restituirei ovunque sia stato acquistato e non comprerò più da loro.

A seconda del tipo di software, un dongle potrebbe essere una soluzione migliore. Quindi l'utente può spostarlo nel sistema desiderato, ma può solo eseguirlo sul sistema su cui è installato il dongle. Tuttavia, se questo è un software destinato agli utenti mobili, a molti non piacerà dover portare con sé il dongle. Avrai anche a che fare con gli utenti che perdono il dongle.

Un'altra soluzione è avere un server di licenza a cui gli utenti possono connettersi. Se è in uso una licenza per un particolare utente, nessun altro utente può utilizzare il software con quella stessa licenza. Ciò consente all'utente di spostarlo su un nuovo computer senza preoccuparsi che continui a funzionare. Si potrebbe anche riconoscere che si tratta di un nuovo computer e che non può essere utilizzato da quello vecchio quando ciò accade e che abbia una politica ragionevole circa la frequenza con cui può essere spostato. Questo soffre del problema di aver bisogno di un server in esecuzione e la possibilità che gli utenti vengano lasciati in asso se il server si arresta o la tua azienda fallisce.

    
risposta data 01.10.2017 - 01:49
fonte
0

Per le licenze basate su cloud (ad esempio attivazione della licenza online), ho creato Keygen , una licenza software e API di distribuzione, esattamente per questo scopo. È possibile impostare un criterio di licenza che consente di associare una singola macchina a una licenza, ovvero una politica "bloccata dal nodo", ed è possibile associare una macchina alla licenza dell'utente corrente effettuando una richiesta simile a questa:

curl -X POST 'https://api.keygen.sh/v1/accounts/example/machines' \
  -H 'Content-Type: application/vnd.api+json' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Authorization: Bearer {TOKEN}' \
  -d '{
        "data": {
          "type": "machines",
          "attributes": {
            "fingerprint": "{MAC_ADDRESS_FINGERPRINT}",
            "platform": "Windows",
            "name": "Office Laptop"
          },
          "relationships": {
            "license": {
              "data": {
                "type": "licenses",
                "id": "4097d726-6cc5-4156-8575-3a96387e19b4"
              }
            }
          }
        }
      }'

Il modo più semplice per "impronta digitale" di una macchina sarebbe quello di utilizzare l'indirizzo MAC e, se tale valore dovesse mai cambiare (ad esempio, hanno acquistato un nuovo PC), è facile chiedere all'utente di rimuovere la vecchia associazione macchine e sostituirla con la loro nuova macchina.

Ora è possibile convalidare la propria chiave di licenza nell'ambito delle impronte digitali della macchina corrente; la convalida verrà restituita non valida se l'impronta digitale della macchina non corrisponde.

    
risposta data 17.11.2017 - 18:17
fonte

Leggi altre domande sui tag