- Nueva estructura de carpetas según Skynet v7 - Añadidos schemas SQL completos - Documentación de entidades, componentes e integraciones - Modelo de seguridad actualizado - Infraestructura y operaciones reorganizadas
171 lines
4.6 KiB
Markdown
171 lines
4.6 KiB
Markdown
# Cifrado
|
|
|
|
**Estado:** Especificación
|
|
|
|
---
|
|
|
|
## Principio KEY VAULT
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ │
|
|
│ "Las llaves nunca viajan con los datos que protegen" │
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Envelope Encryption
|
|
|
|
### Jerarquía de Llaves
|
|
|
|
```
|
|
MASTER KEY (MK)
|
|
(HSM / KMS externo)
|
|
│
|
|
┌───────────┼───────────┐
|
|
│ │ │
|
|
▼ ▼ ▼
|
|
KEK-DATA KEK-SECRETS KEK-SIGNING
|
|
(Cifra (Cifra API (Firma
|
|
datos) keys) tokens)
|
|
│ │ │
|
|
▼ ▼ ▼
|
|
DEK-1..n API Keys JWT Keys
|
|
(Efímeras) (Rotables) (Rotables)
|
|
```
|
|
|
|
---
|
|
|
|
## Niveles
|
|
|
|
### 1. MASTER KEY (MK)
|
|
|
|
| Aspecto | Valor |
|
|
|---------|-------|
|
|
| Almacenamiento | HSM/KMS externo |
|
|
| Exposición | Nunca se expone |
|
|
| Rotación | Anual |
|
|
| Uso | Deriva KEKs |
|
|
|
|
### 2. Key Encryption Keys (KEK)
|
|
|
|
| KEK | Función | Rotación |
|
|
|-----|---------|----------|
|
|
| KEK-DATA | Cifra datos | 365 días |
|
|
| KEK-SECRETS | Cifra API keys | 365 días |
|
|
| KEK-SIGNING | Firma tokens | 180 días |
|
|
|
|
### 3. Data Encryption Keys (DEK)
|
|
|
|
| Aspecto | Valor |
|
|
|---------|-------|
|
|
| Generación | Por operación |
|
|
| Cifrado | Con KEK correspondiente |
|
|
| Rotación | Por uso (efímeras) |
|
|
|
|
---
|
|
|
|
## Ventajas de Envelope Encryption
|
|
|
|
| Ventaja | Descripción |
|
|
|---------|-------------|
|
|
| **Rotación eficiente** | Rotar KEKs sin re-cifrar todos los datos |
|
|
| **Separación** | Diferentes KEKs para diferentes propósitos |
|
|
| **Trazabilidad** | Cada nivel tiene su propio ciclo de vida |
|
|
| **Seguridad en capas** | Compromiso de DEK no expone otras DEKs |
|
|
|
|
---
|
|
|
|
## Cifrado en Reposo
|
|
|
|
### Base de Datos
|
|
|
|
| Componente | Cifrado |
|
|
|------------|---------|
|
|
| PostgreSQL | Transparent Data Encryption (TDE) |
|
|
| Backups | AES-256-GCM con KEK-DATA |
|
|
| Logs sensibles | AES-256-GCM con KEK-DATA |
|
|
|
|
### Almacenamiento
|
|
|
|
| Componente | Cifrado |
|
|
|------------|---------|
|
|
| Cloudflare R2 | SSE con llaves gestionadas |
|
|
| Backups locales | AES-256-GCM |
|
|
| Archivos temporales | Cifrado en memoria |
|
|
|
|
---
|
|
|
|
## Cifrado en Tránsito
|
|
|
|
| Conexión | Protocolo |
|
|
|----------|-----------|
|
|
| HTTPS | TLS 1.3 |
|
|
| PostgreSQL | SSL required |
|
|
| Redis | TLS |
|
|
| SSH | Ed25519 |
|
|
|
|
---
|
|
|
|
## Gestión de Llaves
|
|
|
|
### Ubicación
|
|
|
|
| Llave | Ubicación |
|
|
|-------|-----------|
|
|
| MASTER KEY | HSM / KMS externo |
|
|
| KEKs | Infisical (cifradas) |
|
|
| DEKs | Generadas en runtime |
|
|
| API Keys | Infisical |
|
|
|
|
### Acceso
|
|
|
|
```
|
|
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
│ Servicio │────▶│ Infisical │────▶│ KEK/DEK │
|
|
│ │ │ (API) │ │ │
|
|
└─────────────┘ └─────────────┘ └─────────────┘
|
|
│ │
|
|
│ (nunca en mismo lugar) │
|
|
▼ ▼
|
|
┌─────────────┐ ┌─────────────┐
|
|
│ Datos │ │ Llaves │
|
|
│ Cifrados │ │ │
|
|
└─────────────┘ └─────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Algoritmos
|
|
|
|
| Uso | Algoritmo |
|
|
|-----|-----------|
|
|
| Cifrado simétrico | AES-256-GCM |
|
|
| Hashing | SHA-256, SHA-512 |
|
|
| Firmas | Ed25519, ECDSA |
|
|
| KDF | Argon2id |
|
|
| TLS | TLS 1.3 |
|
|
|
|
---
|
|
|
|
## Rotación de Llaves
|
|
|
|
| Llave | Proceso |
|
|
|-------|---------|
|
|
| **MASTER KEY** | Re-derivar todas las KEKs, re-cifrar DEKs |
|
|
| **KEK** | Re-cifrar DEKs asociadas |
|
|
| **DEK** | Generar nueva, re-cifrar datos específicos |
|
|
|
|
---
|
|
|
|
## Auditoría
|
|
|
|
| Evento | Log |
|
|
|--------|-----|
|
|
| Acceso a KEK | SENTINEL-LIGHT |
|
|
| Uso de DEK | Trace en S-CONTRACT |
|
|
| Rotación | Alerta + registro |
|
|
| Compromiso | SENTINEL-DEEP + alerta crítica |
|