Associazione e trasferimento delle licenze tra dispositivi
Con una licenza per dispositivo singolo, la copia del software e della relativa cache su un altro computer normale non trasferisce l'autorizzazione del computer originale.
Device binding vs user account licensing
Account sign-in identifies the customer and their purchases; device binding determines which machine may use the license. After sign-in, the SDK must still verify device identity, signatures and feature entitlements. Copying account session data or cache files to another computer does not replace that computer's own license verification.
Come fa SDK a identificare il computer?
Ad ogni avvio, SDK legge l'identità della macchina del sistema operativo e la sottopone ad hashing con l'ID del prodotto. La firma del server include questo hash, anch'esso controllato localmente.
Windows legge MachineGuid, Linux legge machine-id e macOS legge IOPlatformUUID. L'identità grezza della macchina non viene caricata, ma solo il suo hash calcolato. Il campo di configurazione legacy device_id non prevale sull’effettiva identità locale.
Cosa succede se i file dalla macchina A vengono copiati su B?
- A si attiva e riceve una firma legata all'hash del dispositivo di A.
- B legge la propria identità, ottiene un hash diverso e rifiuta la cache di A.
- B deve attivarsi online. Con il limite di un dispositivo e A ancora vincolato, il server rifiuta B.
Come può un cliente cambiare computer?
Chiedi al cliente di scollegare il vecchio computer e quindi di attivare quello nuovo. Se quello vecchio è rotto, rilascia il suo collegamento in Attivazioni dispositivo nella console. Lo spostamento dei computer non reimposta la scadenza della licenza.
La reinstallazione del sistema operativo potrebbe modificarne l'identità e richiedere l'attivazione di un nuovo dispositivo. La clonazione completa del sistema operativo, le identità contraffatte o i client modificati rappresentano attacchi più potenti; questo hash del dispositivo da solo non può fermarli in modo affidabile.
Con un lungo utilizzo offline, la firma esistente di A non può apprendere immediatamente che è stata rilasciata. Per aggiornare tale stato è necessaria una richiesta del server riuscita. Periodi offline più lunghi ritardano l'applicazione remota.
Hash del dispositivo in più lingue
SHA256(UTF8(
"LicenovaDevice/v2\n"
+ lower(product_id) + "\n"
+ lower(trim(OS_machine_identity))
))