Motor de tránsito
1. ¿Qué es?
El Motor de tránsito proporciona cifrado como servicio sin almacenar el texto plano. Cifra y descifra datos en tránsito usando claves nombradas con versiones — los datos en texto plano nunca residen en el vault; solo lo hace la clave criptográfica.
2. ¿Para qué sirve?
Cifrado transparente de base de datos
Cifra el valor de una columna antes de INSERT y descífralo en SELECT, sin almacenar texto plano en la base de datos.
Delegación de claves de aplicación
Las aplicaciones cifran y descifran sin gestionar material clave.
Separación de gestión de claves y almacenamiento de datos
Almacena texto cifrado en tu propia infraestructura mientras QuantumAPI retiene el control exclusivo sobre las claves.
Cifrado auditado con versiones para cumplimiento
Cada operación de tránsito se registra con el nombre y versión de la clave.
3. Conceptos clave
| Term | Definition |
|---|---|
| Clave de tránsito | Clave nombrada gestionada por el Motor de tránsito. Se referencia por nombre en todas las operaciones. |
| Versión de clave | Cada rotación crea una nueva versión. El número de versión está embebido en el prefijo del texto cifrado. |
| Cifrado convergente | Modo opcional donde el mismo texto plano + contexto siempre produce el mismo texto cifrado. |
| Claves derivadas | Sub-claves por contexto derivadas de la clave de tránsito usando un valor de contexto. |
| Re-envoltorio | Re-cifra textos cifrados existentes con la última versión de clave sin descifrarlos. |
| Operaciones por lotes | Cifra o descifra múltiples registros independientes en una sola llamada a la API. |
4. Cómo usarlo
Crear una clave de tránsito
Abrir Motor de tránsito
Introduce un nombre de clave
Elige el algoritmo
Configura opciones
Guardar
Cifrar mediante tránsito
Referencia la clave de tránsito por nombre:
POST /api/v1/transit/encrypt/orders-db
{ "plaintext": "SGVsbG8gV29ybGQ=" }Descifrar mediante tránsito
La versión de la clave está embebida en el texto cifrado y se selecciona automáticamente:
POST /api/v1/transit/decrypt/orders-db
{ "ciphertext": "vault:v1:..." }Rotar la clave de tránsito
La rotación crea una nueva versión de clave. Los textos cifrados existentes pueden seguir descifrándose usando su número de versión embebido.
Re-envolver textos cifrados
Tras la rotación, re-envuelve los textos cifrados existentes a la nueva versión de clave:
POST /api/v1/transit/rewrap/orders-db
{ "ciphertext": "vault:v1:..." }
# Returns: { "ciphertext": "vault:v2:..." }5. Referencia de campos
| Field | Type | Required | Description |
|---|---|---|---|
| Nombre de clave | cadena | Sí (al crear) | Nombre de la clave de tránsito. Usado como identificador en todas las operaciones. |
| plaintext | Cadena Base64 | Sí (cifrado) | Datos a cifrar, codificados en Base64. |
| ciphertext | cadena | Sí (descifrado/re-envoltorio) | El texto cifrado devuelto por una llamada de cifrado anterior. |
| keyVersion | entero | No | Versión de clave a usar para cifrado. Por defecto es la última versión. |
| context | Cadena Base64 | No | Contexto para claves derivadas o cifrado convergente. |
6. Relaciones
Claves de cifrado
Las claves de tránsito son una vista especializada de las claves de cifrado.
Cifrar / Descifrar
El Motor de tránsito usa las mismas primitivas de cifrado/descifrado subyacentes pero añade versionado de claves y capacidades de re-envoltorio.
Claves API
Se requieren Claves API con ámbito transit:invoke para usar los endpoints de tránsito.
SDKs
Los SDKs de TypeScript, Python, .NET y Rust incluyen un TransitClient para operaciones de tránsito.
7. Preguntas frecuentes
¿Es el Motor de tránsito lo mismo que Cifrar / Descifrar?
Comparten la misma criptografía subyacente, pero el Motor de tránsito añade versionado de claves, re-envoltorio, cifrado convergente y referencias de claves por nombre.
¿Cuándo debo usar el Motor de tránsito frente a Cifrar / Descifrar directamente?
Usa el Motor de tránsito cuando almacenes textos cifrados a largo plazo y necesites rotar claves sin re-cifrar desde cero, o cuando necesites cifrado convergente.
¿Qué es el cifrado convergente y es seguro?
El cifrado convergente produce el mismo texto cifrado para el mismo texto plano + contexto. Es seguro cuando el contexto es único por registro.
¿Cómo re-cifro datos antiguos tras una rotación de clave?
Usa el endpoint de re-envoltorio de la API. Toma un texto cifrado existente (de cualquier versión) y devuelve uno nuevo cifrado con la última versión de clave.
8. Referencia API / CLI
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/transit/keys | Crea una nueva clave de tránsito. |
| GET | /api/v1/transit/keys | Lista todas las claves de tránsito. |
| GET | /api/v1/transit/keys/{name} | Obtiene detalles y versiones de la clave de tránsito. |
| POST | /api/v1/transit/keys/{name}/rotate | Rota la clave de tránsito. |
| DELETE | /api/v1/transit/keys/{name} | Elimina una clave de tránsito. |
| POST | /api/v1/transit/encrypt/{name} | Cifra datos usando la clave de tránsito. |
| POST | /api/v1/transit/decrypt/{name} | Descifra datos usando la clave de tránsito. |
| POST | /api/v1/transit/rewrap/{name} | Re-envuelve texto cifrado con la última versión de clave. |
| POST | /api/v1/transit/encrypt/{name}/batch | Cifra múltiples registros por lotes. |
| POST | /api/v1/transit/decrypt/{name}/batch | Descifra múltiples registros por lotes. |
qapi transit keys create ordenes-db --algorithm AES-256-GCM
qapi transit encrypt ordenes-db --plaintext <base64>
qapi transit decrypt ordenes-db --ciphertext <texto-cifrado>
qapi transit keys rotate ordenes-db
qapi transit rewrap ordenes-db --ciphertext <texto-cifrado-antiguo>