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
| Tipo | Creación | Propósito |
|---|---|---|
| Usuario | Al registrarse | Balance personal y firmas |
| Proyecto | Al crear proyecto | Wallet principal (Dirección) |
| Departamento | Al crear departamento | Presupuesto departamental |
Rotación de Claves
Las claves de cifrado se rotan periódicamente. Cuando se rota una clave:
- 1. Se genera nueva clave maestra
- 2. Todas las claves de wallet se re-cifran
- 3. Clave anterior se invalida
- 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)