feat: prepare Pro licensing and Android API 36
This commit is contained in:
1 parent
b600412285
commit
11a91863a3
25 files changed
+2447
-62
No files matched your search
@@ -0,0 +1,44 @@
|
||||
# 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.
|
||||
Reference in new issue
Block a user