Saltar al contenido
Privacidad y Seguridad

Local-first.
Conectado a la nube en tus términos.

Korva está diseñado con una separación estricta entre lo público, lo que el equipo gestiona en la nube y lo que vive en tu máquina. Cero telemetría. El sync cloud es opt-in. Cada secreto cruza un límite explícito.

La arquitectura de 3 capas

Layer 01

Público — github.com/AlcanDev/korva

Core MIT: CLI, motor Vault, Sentinel, motor Lore, herramientas MCP, reglas de arquitectura genéricas. Cero conocimiento de los datos de tu equipo — cada byte aquí es industria-genérico.

Motor core · CLI · Vault · Sentinel · Lore · 25 scrolls curados

Ver en GitHub
Layer 02

Nube — licensing.korva.dev

La config privada del equipo vive en la nube, cifrada por equipo con AES-256-GCM. Gestiona scrolls, reglas, instrucciones de IA y skills desde el portal. La config se descarga localmente bajo demanda — la nube nunca inicia contacto.

Scrolls del equipo · Reglas custom · Instrucciones IA · Skills · Cifrado AES-256

Ir al portal del equipo
Layer 03

Local — ~/.korva en cada máquina

Donde vive la data real: vault.db (tus observaciones), admin.key (modo 0600), hive.key, install.id, runtime state. Nunca sale de esta máquina sin tu acción explícita — el sync Hive es opt-in y filtrado.

vault.db · admin.key · hive.key · install.id · session token

Cómo funciona el Vault

admin.key — 0600 + auth en tiempo constante

32 bytes random generados con crypto/rand. Almacenada en ~/.korva/admin.key con permiso 0600. Comparada con crypto/subtle.ConstantTimeCompare — inmune a ataques de timing. Nunca se loggea, nunca se sincroniza.

Filtro de privacidad en el límite

Cada observación pasa por internal/privacy.Filter() antes de cualquier INSERT en SQLite. Redacción built-in para password, token, secret, api_key, headers Bearer y bloques <private>...</private>. Patrones custom via vault.private_patterns.

Licencia JWS RS256 verificada offline

Los tiers de pago entregan un token JWS firmado con RSA-4096. Verificado localmente con la clave pública embebida en el binario — sin llamada de red. Un heartbeat de 24h opcional la mantiene fresca; degrada gentilmente si está offline 7+ días.

Hive opt-in con filtro default-deny

El sync opcional cross-team (Hive) solo envía chunks content-addressed de tipos en allow-list (pattern / decision / learning) y solo después de que el privacy filter pasa. KORVA_HIVE_DISABLE=1 mata el tráfico saliente con una sola variable de entorno.

Reportar una vulnerabilidad

Manejamos reportes de seguridad por GitHub Security Advisories. Respondemos en 48 horas y publicamos parches críticos en ~7 días.