Files

45 lines
2.2 KiB
Markdown

# Licenze manuali LME Pro
## Regola di accesso
L'app considera Pro l'utente quando e valida almeno una delle due licenze:
- abbonamento Google Play attivo;
- licenza manuale crittografata e non scaduta.
Senza una licenza valida l'app resta Base. Alla scadenza della licenza manuale le funzioni Pro vengono disabilitate automaticamente, senza cancellare o alterare i dati dell'utente. Un abbonamento Google valido continua a dare accesso Pro anche se la licenza manuale e scaduta.
## Emissione
Il gestore si trova in `tools/LmeLicenseManager` e registra in SQLite:
- nome e cognome;
- email;
- identificativo univoco della licenza;
- data di emissione e scadenza;
- hash e codice emesso;
- note e data di eventuale revoca amministrativa.
Il codice `LME1...` e cifrato con AES-GCM e firmato con RSA 3072. L'utente lo incolla nella sezione Licenza manuale delle impostazioni. L'app possiede solo la chiave pubblica RSA e non puo generare codici validi.
## Portabilita della chiave
La licenza non e vincolata al PC che la genera, all'account Windows o al dispositivo dell'utente finale. La chiave privata operativa e protetta localmente con Windows DPAPI, ma dal gestore puo essere esportata come file `.lmekey` cifrato con una password di almeno 12 caratteri e importata su un altro PC o da un altro utente Windows.
Conservare il file `.lmekey` e la password in luoghi separati e protetti. Senza questo backup non e possibile ricreare la stessa autorita di firma su un nuovo sistema.
Percorsi locali predefiniti:
```text
%LOCALAPPDATA%\LME\LicenseManager\licenses.db
%LOCALAPPDATA%\LME\LicenseManager\manual-license-private.dpapi
```
Il database puo essere copiato per conservare lo storico. La chiave DPAPI non e un backup portabile: per la portabilita usare esclusivamente l'esportazione `.lmekey`.
## Limiti offline
Una licenza manuale gia consegnata viene verificata interamente offline. Marcarla come revocata nel database conserva l'audit amministrativo, ma non puo disattivare a distanza un codice gia installato: rimane valido fino alla sua scadenza. Una revoca immediata richiederebbe un servizio online di verifica.
Chiavi private, backup `.lmekey`, database delle licenze e password non devono mai essere inseriti nel repository o negli artefatti pubblici.