Por qué "solo cachear el último resultado" no funciona en realidad
La solución obvia es recordar la última verificación exitosa en un archivo local o en el registro, y saltarse la llamada de red la próxima vez. Resuelve el problema offline, pero no verifica nada — es una cadena en el disco que cualquier usuario con un editor de texto puede cambiar de false a true. Tampoco expira limpiamente (un archivo copiado funciona para siempre en una segunda máquina), y no puede decirte cuándo se validó realmente por última vez. Has cambiado "sin soporte offline" por "soporte offline que en realidad no es una verificación" — el archivo es confiado, no verificado.
Por qué construir tu propia verificación offline real es más difícil que cachear una bandera
Una verificación offline real significa que la app debe poder demostrar que una licencia es válida sin preguntarle a un servidor, usando solo datos que solo podrían haber venido de ese servidor. Eso necesita un par de claves privada/pública (el servidor firma, la app solo tiene la mitad pública), un payload firmado compacto con la clave de licencia, el ID de máquina y una expiración que la app pueda comprobar contra el reloj, una forma de hacer detectable la manipulación — cambia un byte y la firma debe fallar — y una decisión sobre cuánto tiempo un resultado firmado pero desactualizado sigue siendo confiable antes de que la app se vea forzada a contactar al servidor de nuevo. Nada de esto es criptografía exótica, pero conectarlo correctamente — verificar la firma antes incluso de analizar el payload, comprobar cada claim dentro de él, elegir una ventana de expiración sensata — es exactamente el tipo de cosa fácil de equivocar sutilmente una vez y nunca notarlo.
Leases firmados: el servidor firma, la app solo verifica
Esto es lo que hace la verificación offline de SublimeKeys. Cada llamada activate/verify devuelve un lease — un pequeño token firmado con Ed25519 que contiene la clave de licencia, el ID de máquina, el ID de producto y una expiración, válido por 7 días. Tu app lo cachea localmente y comprueba la firma contra una clave pública que va incluida dentro de tu propio binario — la clave privada nunca sale de nuestro servidor, así que no hay nada en el disco del usuario que pueda editarse para convertirse en un lease válido. Un lease manipulado falla la verificación de firma inmediatamente, antes incluso de que se analice su contenido. Cuando la ventana de 7 días expira, la siguiente comprobación va online silenciosamente, obtiene un lease fresco, y el ciclo se repite — así que una máquina completamente offline permanece verificablemente licenciada hasta por una semana, y una licencia revocada se detecta la próxima vez que la máquina se reconecta.
Cómo añadirlo — 3 pasos con los SDKs oficiales
Qué te aporta esto en realidad
Tu app verifica una licencia en microsegundos con cero llamadas de red en un día normal, sigue funcionando correctamente durante una semana en modo avión o en una red corporativa blindada, y aun así detecta una licencia revocada o reembolsada dentro de los 7 días tras la reconexión de la máquina — sin que escribas una sola línea de criptografía tú mismo, hospedes un sistema de gestión de claves, o inventes tu propio formato de token que alguien eventualmente encuentra la forma de editar.
A quién le sirve esto realmente
Usuarios en viaje
Consultores, técnicos de campo, cualquiera cuyo portátil pase tiempo real offline entre vuelos y clientes.
Redes corporativas blindadas
Máquinas detrás de firewalls que bloquean llamadas API salientes a cualquier cosa no incluida explícitamente en whitelist.
Herramientas de escritorio Python
pip install sublimekeys — verificación offline integrada en el SDK oficial.
Apps Electron
npm install sublimekeys — misma verificación con lease firmado, cero dependencias nativas.
Entornos air-gapped / regulados
Máquinas que nunca deben llegar a internet, solo sincronizarse ocasionalmente.
About
Patrick Chen — desarrollador indie detrás de Sublimearts.io. Construyó la verificación offline en SublimeKeys después de darse cuenta de que toda app de escritorio vendida a usuarios en viaje o empresariales eventualmente choca con el mismo muro de "sin internet".
Did you find this helpful?