Gestión de Claves

Cómo My Business Studio protege y gestiona las claves privadas de wallets.

Claves Cifradas

Todas las claves privadas se almacenan cifradas con AES-256-GCM en Supabase. Ni siquiera el equipo de My Business Studio puede acceder a ellas sin la clave maestra.

Modelo de Custodia

My Business Studio utiliza un modelo de custodia gestionada donde:

  • Generación segura

    Las claves se generan en el servidor usando CSPRNG (Generador de Números Pseudoaleatorios Criptográficamente Seguros)

  • Cifrado inmediato

    La clave privada se cifra antes de tocar cualquier almacenamiento persistente

  • Almacenamiento en Supabase

    La clave cifrada se guarda con RLS para que solo el usuario/proyecto tenga acceso

Flujo de Almacenamiento

// Almacenamiento de clave en Supabase (cifrada)
const encryptedKey = await encrypt(
  companyPrivateKey,
  POLARIS_MASTER_KEY,
  {
    algorithm: 'AES-256-GCM',
    additionalData: companyId  // Asociada con empresa
  }
)

// Guardada en Supabase con RLS
await supabase.from('company_keys').insert({
  company_id: companyId,
  encrypted_key: encryptedKey,
  key_version: 1,
  created_at: new Date()
})

Tipos de Wallet

TipoCreaciónPropósito
UsuarioAl registrarseBalance personal y firmas
ProyectoAl crear proyectoWallet principal (Dirección)
DepartamentoAl crear departamentoPresupuesto departamental

Rotación de Claves

Las claves de cifrado se rotan periódicamente. Cuando se rota una clave:

  1. 1. Se genera nueva clave maestra
  2. 2. Todas las claves de wallet se re-cifran
  3. 3. Clave anterior se invalida
  4. 4. Evento de rotación se registra

Seguridad Adicional

  • Las claves nunca se transmiten en texto plano
  • TLS 1.3 para todas las comunicaciones
  • Registros de acceso con pista de auditoría
  • Separación de entornos (dev/staging/prod)