← Blog
Tutorial9 Luglio 2026·7 min di lettura

Come verificare una licenza software offline senza fidarti di un file sul disco.

La tua app è su un laptop senza wifi — un volo, un cliente con una rete blindata, una macchina che non dovrebbe mai raggiungere internet. Se il tuo controllo di licenza ha bisogno di una chiamata al server ogni volta, fallisce esattamente quando l'utente ha bisogno che funzioni. Ecco come verificare una licenza completamente offline, senza limitarti a fidarti di quello che dice un file locale.

Perché "salva solo l'ultimo risultato" non funziona davvero

La soluzione ovvia è ricordare l'ultimo controllo riuscito in un file locale o nel registro, e saltare la chiamata di rete la volta successiva. Risolve il problema offline, ma non verifica nulla — è una stringa su disco che chiunque con un editor di testo può cambiare da false a true. Non scade neanche in modo pulito (un file copiato funziona per sempre su una seconda macchina), e non può dirti quando è stato davvero validato l'ultima volta. Hai scambiato "nessun supporto offline" con "supporto offline che non è davvero un controllo" — il file è fidato, non verificato.

Perché costruire da soli una vera verifica offline è più difficile che salvare un flag

Una vera verifica offline significa che l'app deve poter dimostrare che una licenza è valida senza chiedere a un server, usando solo dati che potrebbero provenire solo da quel server. Serve una coppia di chiavi privata/pubblica (il server firma, l'app tiene solo la metà pubblica), un payload firmato compatto con la chiave di licenza, l'ID macchina e una scadenza che l'app può controllare contro l'orologio, un modo per rendere rilevabile la manomissione — cambia un byte e la firma deve fallire — e una decisione su quanto a lungo un risultato firmato ma non fresco resta fidato prima che l'app sia costretta a ricontattare il server. Niente di tutto questo è crittografia esotica, ma collegarlo correttamente — verificare la firma prima ancora di analizzare il payload, controllare ogni claim al suo interno, scegliere una finestra di scadenza sensata — è esattamente il tipo di cosa facile da sbagliare in modo sottile una volta e non accorgersene mai.

Lease firmati: il server firma, l'app verifica soltanto

Questo è ciò che fa la verifica offline di SublimeKeys. Ogni chiamata activate/verify restituisce un lease — un piccolo token firmato Ed25519 contenente la chiave di licenza, l'ID macchina, l'ID prodotto e una scadenza, valido 7 giorni. La tua app lo mette in cache localmente e controlla la firma contro una chiave pubblica inclusa nel tuo stesso binario — la chiave privata non lascia mai il nostro server, quindi non c'è nulla sul disco dell'utente che possa essere modificato in un lease valido. Un lease manomesso fallisce la verifica della firma immediatamente, prima ancora che il suo contenuto venga analizzato. Quando la finestra di 7 giorni scade, il controllo successivo va online silenziosamente, ottiene un lease fresco, e il ciclo si ripete — così una macchina completamente offline resta verificabilmente licenziata fino a una settimana alla volta, e una licenza revocata viene rilevata alla successiva riconnessione.

Come aggiungerlo — 3 passaggi con gli SDK ufficiali

1pip install sublimekeys (Python) o npm install sublimekeys (Node.js/Electron) — entrambi gli SDK includono già la chiave pubblica e la logica di verifica
2Chiama activate() una volta con la chiave dell'utente — salva un lease firmato in locale, senza codice extra
3Chiama verify() ad ogni avvio successivo — controlla prima il lease in cache, interamente offline, e chiama l'API solo quando la finestra di fiducia di 7 giorni scade

Cosa ottieni davvero

La tua app verifica una licenza in microsecondi con zero chiamate di rete in una giornata normale, continua a funzionare correttamente durante una settimana in modalità aereo o su una rete aziendale blindata, e cattura comunque una licenza revocata o rimborsata entro 7 giorni dalla riconnessione della macchina — senza che tu scriva una sola riga di crittografia, ospiti un sistema di gestione chiavi, o inventi un tuo formato di token che qualcuno prima o poi trova il modo di modificare.

A chi serve davvero

✈️

Utenti in viaggio

Consulenti, tecnici sul campo, chiunque il cui laptop passi del tempo reale offline tra voli e clienti.

🏢

Reti aziendali blindate

Macchine dietro firewall che bloccano le chiamate API in uscita verso tutto ciò che non è esplicitamente in whitelist.

🐍

Strumenti desktop Python

pip install sublimekeys — verifica offline integrata nell'SDK ufficiale.

App Electron

npm install sublimekeys — stessa verifica con lease firmato, zero dipendenze native.

🔒

Ambienti air-gapped / regolamentati

Macchine che non devono mai raggiungere internet, solo sincronizzarsi occasionalmente.

Prova SublimeKeys gratis →1 prodotto · 25 chiavi · Senza carta di credito · keys.sublimearts.io

About

Patrick Chen — sviluppatore indie dietro Sublimearts.io. Ha costruito la verifica offline in SublimeKeys dopo aver capito che ogni app desktop venduta a utenti in viaggio o aziendali prima o poi sbatte contro lo stesso muro "niente internet".

Did you find this helpful?